The Aquarius doesn't let you PEEK() any memory location less than 2FFFh so you I had to write an assembly routine that would copy ROM to RAM 32 bytes at a time.
After each 32 bytes were copied into RAM a basic program LPRINTed the value of each location, then incremented the base address and looped back to the start.
Here is a BASIC program to do it all for you!
Here is the assembly routine called from basic-:
ASSEMBLY | HEX | Comments | |
PUSH AF | F5 | Save all registers before starting | |
PUSH HL | E5 | ||
PUSH DE | D5 | ||
PUSH BC | C5 | ||
LD HL,<baseaddr> | 21,00,00 | Base address of ROM, modified by +32 each time it was called. | |
LD DE,6300h | 11,00,3F | Destination address in RAM | |
LD BC,0020h | 01,20,00 | 32 bytes to copy | |
LDIR | ED,B0 | Copy from ROM to RAM | |
POP BC | C1 | Restore all registers | |
POP DE | D1 | ||
POP HL | E1 | ||
POP AF | F1 | ||
RET | C9 | Return | |