Memory Mapping
Here’s some of the mapping I know about :
-
boot rom is at
0x0000_0000
, it’s taken from the first part of the flashed rom -
bootloader is at
0x0000_0300
with theLV777
thenCASIOABS
at0x0000_3380
-
Clock Pulse Generator (CPG) is at
0xA415_0000
to0xA415_FFFF
-
0xA405_0100
may be the touchscreen, where0xA405_01F3
changes when screen it touched -
RAM is
0x8c00_0000
to0x8cff_ffff
-
MCS starts at
0x8e00_0000
-
ROM is
0x8000_0000
to0x81ff_ffff
-
Cached rom is
0xa000_0000
to0xa1ff_ffff
-
Display DMAC start at
0xb400_0000
-
There are some “direct Io” from
0xFEC0_0000
to0xFEFF_FFFF
RAM
When loading a .bin program, it is copied at 0x8cff_0000
and the PC jump to this offset
For hollyhock, we usually use the end of the ram, that space is usually occupied by the mcs file system, but if it’s not fully full, then it should work. Just note that the hollyhock launcher is running from ram, so it can’t overwrite itself…
8C00_0000
to8CFF_FFFF
is ram, we use8CFE_0000
for the launcher (from the run.bin file) and8CFF_0000
for programs, just look at the launcher how big it is, you can squeeze out a bit if you start your program at8CFE_8000
…