Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Although it's the source code for the Atari 800 version of PCS, it seems to have been built on an Apple II. From MAKE1 [1] for example:

    CALL -151
    3F2:69 FF 5A
    BLOAD GPAK.OBJ,A$1300
    BLOAD CDRAW.O,A$2480
    BLOAD PCSA800.PIC,A$2B00
    BLOAD DLIST.O,A$4910
    BLOAD SWAP.O,D2,A$4A00
    BLOAD TST.O,D1,A$4B00
    BLOAD GOATARI.O,D2,A$4B45
    BLOAD BOOT.O,D2,A$8E00
    BLOAD BOOT2.O,A$8E80
    BLOAD ZAP1.O,A$8F00
    BLOAD DOWNLOAD.O,D1,A$300
The first line invokes the Apple II "System Monitor", the second writes 3 bytes to memory at address $3F2 (the effect of which is to tell the computer to enter the Monitor whenever someone resets the computer from the keyboard), and the rest load binary files into different memory areas. I'm guessing it's all to build an image to be written to disk. (See [2] for more on the System Monitor.)

[1] https://github.com/billbudge/PCS_Atari800/blob/master/Disk1/...

[2] http://apple2.info/wiki/index.php?title=System_Monitor#Gener...

EDIT: added additional details



It looks like he used an Apple II as the development environment, which is straight forward since both machines use the same CPU. The .S files are assembled to 6502 object files. The "makefile" loads each object file to a specific area in RAM, then Download.o transfers the contents of RAM to a waiting Atari 800 via serial connection.


At Broderbund we used Apple II's to develop for both the Atari 800 and the C64. I worked on a cable and software for both ends so we wouldn't have to change systems. It is MUCH faster to develop on one machine, and test on another.


And a development session would have looked somewhat like this:

http://www.youtube.com/watch?v=CDPlfqpgW8c

(I may miss the Merlin assembler, but I don't miss disk ][ drives at all.)


Wow, that brings back so many memories: thank you for posting this.

I loved Merlin.


wow - neat. i'm glad people capture this stuff for posterity. i remember doing stuff like that back then.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: