Sunday, May 20, 2012

Woz Mon


The Woz Monitor is the machine language monitor program written by Steve Wozniak for the Apple 1. It was burned into the 256 byte PROM in the original computer. It was and still is quite a functional monitor program, and he had two bytes of memory left to spare!

I noticed that the Woz Monitor in the Replica 1 does not quite match the published code for the original Apple 1. The reason is that the code is part of the Krusader assembler. It was slighly modified to support the mini monitor "!" command which can run Woz Monitor commands from the assembler. It also supports i/o for characters where bit 7 is not set. See the Krusader source code for details. I'm not sure why the IRQ/BRK vector was set to $0100 in the Replica 1 since Krusader points it to its minimonitor entry point. The original Apple 1 pointed it to address $0000.

The original Woz Mon code works fine on the Replica 1. The source code listing is widely available. It was included in the original Apple 1 Operation Manual and it is reproduced in the Replica 1 manual. Note that there is an error in the listing in the Replica 1 manual.

I have a version here which can be assembled with the CC65 assembler. The start address can be changed to run it out of RAM if desired.

Some people have extended the monitor with new functions, such as this one here.

2 comments:

Ed said...

Thanks for that - especially the pointer to EWoz. Please consider adding a pointer into your git repo! I've snaffled it into a gist just in case the forum post goes away. (https://gist.github.com/2760560)

Jeff Tranter said...

Good suggestion. I updated the README file in git with a pointer to EWoz:

https://github.com/jefftranter/6502/blob/master/asm/wozmon/README.txt