Memory setup - UncleBod/z88dk GitHub Wiki
All of MZ-80x/MZ700/MZ800 have a character VRAM that is not counted in the total memory of the machine. In most cases it is placed at $D000 and upwards. All machines except MZ-80K/C have a memory banking system that can change the memory map in different ways. The exact commands to swap the banks differs between the machines. Computers also differs in if they use memory mapped I/O or the Z80s IN/OUT commands
Memmory mapped I/O MZ-80A
Address | Memory Read | Memory Write | Device |
E000 | D7 : Resets cursor timer | 8255 | |
D3 ~ D0 : Key strobe | 8255 | ||
E001 | D7 ~ D0 : Key data | 8255 | |
E002 | D7 : V-Blank | D3 : Motor ON/OFF (cassette) | 8255 |
D6 : Status of cursor timer | D2 : Masking of timer interrupt | 8255 | |
D5 : Read data (cassette) | D1 ; Write data (cassette) | 8255 | |
D4 : READ/WRITE status (cassette) | D0 : V-Gate | 8255 | |
E003 | Mode control | 8255 | |
E004 | Setting of counter #0 | 8253 | |
E005 | Reading of counter # 1 | Setting of counter # 1 | 8253 |
E006 | Reading of counter #2 | Setting of counter #2 | 8253 |
E007 | Mode control | 8253 | |
E008 | D7 : Status of tempo timer | ||
Dâ : H-Blank | |||
D0 ; Sound ON/OFF | |||
EOOC | Memory swap | ||
E010 | Resets memory swap | ||
E014 | Normal (CRT display) | ||
E015 | Reverse (CRT display) | ||
E200 | Roll up/roll down | ||
E2FF |