On this episode, we talk with Martin Haye about his experience writing an assembler/disassembler for the Apple /// as his HackFest entry at KansasFest 2015. Martin is an experienced Apple II programmer, who decided to spend KansasFest familiarizing himself with the Apple ///. After initial forays into SOS didn’t go well, and realizing that in order to write assembly language programs on the Apple /// it would be useful to have a system monitor more like the one familiar from the Apple II, and a mini-assembler for 6502 code as well, Martin dug into the ROM code and wrote M0N5T3R, a small mini-assembler and disassembler for the Apple ///. And it boots instantly, too! Although it’s small, it was written in the space of a couple of days as part of the HackFest contest (and won second place!) at KansasFest. But he learned a lot from the experience, and we learned a lot from talking to him about it. Martin also gave us some first-hand descriptions of his trip to the Stanford archives of Apple documents (which we had discussed a bit in the previous episode). We also talk of one of the first e-books, written on an Apple /// and uploaded to The Source in real time, and an Apple /// found in the woods.
Some interesting links:
- Martin’s video demo of M0N5T3R booting
- DTCA3DOC-085 Apple /// boot ROM listing
- DTCA3DOC-193 Inside the Apple /// Computer ROM
- Archive guide to the Stanford collection
- KansasFest
- DSK file of M0N5T3R as of KansasFest 2015
- Computerworld: “First all-electronic novel published” (Jan 31, 1983)
- Burke Campbell: Prophesy to the Wind (blog post about e-book)
- An elegant computer for a more civilized age (Ryan Powers found an Apple /// in the woods)
Podcast: Play in new window | Download
Subscribe: Apple Podcasts | RSS
If you have more than 1 5.25 drive, you are able to change 2 bytes in sos.kernel to use the second or third drive to load the sos.driver. This works but the same patch for sos.interp does not work. The sos.driver also has the number of 5.25 disks in the same byte location.
sos.interp is loaded before sos.driver
All the best – Great podcast!, Stevew
Ah, nifty. I’ll have to try to track that down. I expect that it’s re-discoverable even if I can’t find a “tips & tricks” reference anywhere, now that the SOS source is out there and available. This is giving me various ideas of things I’d like to try. One thing that would be nice is to be able to start booting from .D1 but finish the boot from a mass storage device, though I think BOS does this already. It would be interesting to see if any of the CF/SD drive emulators can be tricked into emulating two drives, too, so that all of this can be done without any magnetic media. Thanks for the note!
In sos.kernel, offset 0Ah is 01h – set to 02h for the number of drives. 03h for 3 drives etc
Offset 3Fh is 31h – set to 32h
This was .D1/ and now is .D2/
Try in the Sara emulator then onto the real machine.
Works on the real lll for me.
Remember that the driver also has the number of drives registered
Yes, it is in the source on SOS1 disk
Stevew