Electronics -> The Z80 project -> Memory and IO map
Last modified on Thu, 3rd Apr 2008 at 12:20 UTC by zippletMemory map:
--------------------------------------------------------------------------------
| Address range | Size | Description |
--------------------------------------------------------------------------------
| $0000 - $1FFF | 8KB | BIOS |
| $2000 - $3FFF | 8KB | Static RAM |
| $4000 - $BFFF | 32KB | Pageable memory 128KB RAM in first version of unit |
| $C000 - $FFFF | 16KB | Unused, reserved for future expansion (video?) |
--------------------------------------------------------------------------------
IO map:
--------------------------------------------------------------------------------
| IO | Chip | Description |
--------------------------------------------------------------------------------
| $00 | 8255A | Port A |
| $01 | 8255A | Port B |
| $02 | 8255A | Port C |
| $03 | 8255A | Control register |
| $10 | Z80 CTC | Channel 0 |
| $11 | Z80 CTC | Channel 1 |
| $12 | Z80 CTC | Channel 2 |
| $13 | Z80 CTC | Channel 3 |
--------------------------------------------------------------------------------
Detailed memory map:
--------------------------------------------------------------------------------
| Address range | Size | Description |
--------------------------------------------------------------------------------
| $0000 | | Reset vector (jumps to BIOS reset vector) |
| $0038 | | IRQ vector (calls MSC #01) |
| $0066 | | NMI vector (calls MSC #00) |
| $0100 | | BIOS reset vector / code starts here |
| $2000 - $20FF | 256b | Machine service call vectors |
| $2100 - $21FF | 256b | Z80 stack |
| $2200 - $22FF | 256b | System settings (reserved) |
| $2300 - $23FF | 256b | Reserved for BIOS / BIOS work area |
--------------------------------------------------------------------------------
MSC vector location = $2000 + (N * 4) where N is the call required.
The BIOS may use all system RAM until the OS is started. Once the OS is started,
it will only use it's reserved areas unless the calling program gives it
permission to use another area e.g. a buffer to read data into.
The IRQ+NMI vectors will save and restore the current memory bank selected before
calling the MSC.
<<< Back to The Z80 project