Memory map of the Apple II ROMs
Monitor. Handles screen I/O and keyboard input. Also has a
disassembler, memory dump, memory move, memory compare, step and trace
functions, lo-res graphics routines, multiply and divide routines, and
more. This monitor has the cleanest code of all the Apple II
monitors. Every one after this had to patch the monitor to add
functions while still remaining (mostly) compatible. Complete source
code is in the manual.
Sweet-16 interpreter. Sweet-16 code has been benchmarked to be
about half the size of pure 6502 code but 5-8 times slower. The
renumber routine in the Programmer's Aid #1 is written in Sweet-16,
where small size was much more important than speed.
Complete source code is in the manual.
- $F500-F63C and $F666-F668
Mini-assembler. This lets you type in assembly code, one line at a
time, and it will assemble the proper bytes. No labels or equates
are supported--it is a MINI assembler. Complete source code is in the
- $F425-F4FB and $F63D-F65D
Floating point routines. Woz's first plans for his 6502 BASIC included
floating point, but he abandoned them when he realized he could finish
faster by going integer only. He put these routines in the ROMs but
they are not called from anywhere. Complete source code is in the
Integer BASIC by Woz (Steve Wozniak, creator of the Apple II).
"That BASIC, which we shipped with the first Apple II's, was
never assembled--ever. There was one handwritten copy, all
handwritten, all hand assembled." Woz, October 1984.
Empty ROM socket. There was at least one third party ROM add-on.
Programmer's Aid #1--missing from the original Apple II, this is a ROM
add-on Apple sold that contains Integer BASIC utilities such as
high-resolution graphics support, renumber, append, tape verify, music,
and a RAM test. Complete source code is in the manual.