Voltmace Delta 14B/1 KEYPAD loader and resident driver Memory Map
Addresses outside the ROM used by Voltmace Delta 14B/1 KEYPAD loader and resident driver at run time — zero-page
workspace, RAM buffers, and memory-mapped I/O. For the ROM code
itself (&1900–&3A7F), see the
disassembly listing.
Access:
R read, W write,
B indexing base — the address is named as
base,X/,Y, so the byte actually touched is
base + index and the literal byte at this address is
never itself accessed.
Zero page
| Address | Name | Access | Description |
|---|---|---|---|
&0070–&0071 |
copy_dst |
R/W | Block-copy destination pointer used by the relocator. |
&0072–&0073 |
copy_src |
R/W | Block-copy source pointer used by the relocator. |
&0074 |
copy_rem |
R/W | Leftover (part-page) byte count for the relocator. |
&0075 |
copy_pages |
R/W | Whole-page count for the relocator. |
&0080–&0081 |
decode_ptr |
R/W | ROL-decode cursor sweeping the encrypted BASIC in place. |
OS vectors
| Address | Name | Access | Description |
|---|---|---|---|
&0220–&0221 |
evntv |
R/W | EVNTV, the event vector: the resident driver saves the old value and points it at its vsync-event handler. |
OS workspace
| Address | Name | Access | Description |
|---|---|---|---|
&023C |
autorun_index |
R/W | Running fill index into the keyboard buffer as the loader queues its PAGE / OLD / RUN commands. |
&0300 |
kbd_buffer |
W/B | Base of the &0300 page holding the MOS keyboard buffer (&03E0-&03FF), written directly on the fast hand-off path. |
BASIC workspace
| Address | Name | Access | Description |
|---|---|---|---|
&0C03 |
basic_line10_len |
W | Length byte of the relocated BASIC's line 10, patched from 0 back to &16 so the protected program lists and runs. |
OS ROM
| Address | Name | Access | Description |
|---|---|---|---|
&E8AA |
os_signature |
R | OS ROM byte read (for 'O') to distinguish OS versions and choose the command hand-off path. |
Hardware I/O
| Address | Name | Access | Description |
|---|---|---|---|
&FE60 |
user_via_orb |
R/W | User VIA port B: writes column strobes and the 74LS157 handset-select bit (bit 7); reads the four matrix rows. |
&FE62 |
user_via_ddrb |
W | User VIA data-direction register B: set to &F0 so the four strobe/select lines are outputs, the four rows inputs. |
OS entry points
| Address | Name | Access | Description |
|---|---|---|---|
&FFF1 |
osword |
OSWORD: the resident driver calls OSWORD 7 to sound the key-click. |
|
&FFF4 |
osbyte |
OSBYTE: used with A=&99 to insert a key into the buffer, A=&0E to enable the vsync event, and to read/set vectors. |
|
&FFF7 |
oscli |
OSCLI: issues the KEY / FX-style commands the loader queues. |
