Memory
RAM / ROM
The 'Pecom 64' is called '64' due to the amount of memory used, this includes 32 KB user RAM and a 32 KB ROM. Roughly 30 KB RAM is available for BASIC storage. The rest is used for system parameters. The Pecom also has an additional 3 KB Video RAM.
At startup of the computer the ROM is mapped from @0000-@7FFF and @8000-@FFFF however this is changed by the first OUT 1 instruction at which time the RAM is mapped from @0000-@7FFF. Similar bank switching is performed for the video memory access, bit 1 = 1 in OUT 1 will select the video RAM, bit 1 = 0 will select ROM.
DMA & Refresh
Dynamic RAM is refreshed by DMA. A counter is implemented with HW to count the number of CPU execution cycles, my current assumption is that every 5 machine cycles a DMA Out request is generated. This is very frequent but in the COMX emulator it looks like this figure gives the right speed so I have assumed the same for the Pecom 64. If anyone has any facts on this please don't hesitate to drop me an email. DMA Out generates a dummy memory read on the R[0] register location and after that a step of R[0] with 1.
Memory Map
Startup | After first OUT1 | |
---|---|---|
0000 - 01FF | Build in system ROM | RAM: BASIC System Parameters |
0200 - 7CFF | Build in system ROM | RAM: BASIC Program and Data storage |
7D00 - 7FFF | Build in system ROM | RAM: Reserved ? |
8000 - FFFF | Build in system ROM | Build in system ROM |
OUT 1, bit 1 = 0 | OUT 1, bit 1 = 1 | |
---|---|---|
8000 - F3FF | Build in system ROM | Build in system ROM |
F400 - F7FF | Build in system ROM | Character Memory Access |
F800 - FFFF | Build in system ROM | Screen Page Memory Access |