I've been poking around in ROM, trying to learn a bit more about
Hook tables in System RAM. A few years ago Acadiel asked me to
write a pgm to dump the CC40 system ROMs - I'd thought the 4-8K
ROM pages @>D000-E000 were accessible in DEBUG with the "R"
command, but this turns out to be only partially true; you can only
see Page 3 in DEBUG with the "D" or "M" commands - So I wrote a
short asm routine that uses the ROM paging bits @ P25.0 & P25.1 to
read the 4 ROM pages consecutively into cartridge RAM, where they
are directly accessible from BASIC. This turns out to be useful for
disassembling ROM with DEBUG, so I thought I'd post the routine I'm
using now - It moves the page you're interested in from >D000-E000
to >5000-6FFF in cartridge RAM; you can put it anywhere you want,
but 4K boundaries are convenient, as >D000 = >5000, & so on... And
sInce the code's in RAM you can set breakpoints & run it, after adjusting
hard-coded addresses...
Not a world-beater, but very short (39 bytes) which means you can enter
the code by hand, through DEBUG - No PCIF necessary.
Jack
Hook tables in System RAM. A few years ago Acadiel asked me to
write a pgm to dump the CC40 system ROMs - I'd thought the 4-8K
ROM pages @>D000-E000 were accessible in DEBUG with the "R"
command, but this turns out to be only partially true; you can only
see Page 3 in DEBUG with the "D" or "M" commands - So I wrote a
short asm routine that uses the ROM paging bits @ P25.0 & P25.1 to
read the 4 ROM pages consecutively into cartridge RAM, where they
are directly accessible from BASIC. This turns out to be useful for
disassembling ROM with DEBUG, so I thought I'd post the routine I'm
using now - It moves the page you're interested in from >D000-E000
to >5000-6FFF in cartridge RAM; you can put it anywhere you want,
but 4K boundaries are convenient, as >D000 = >5000, & so on... And
sInce the code's in RAM you can set breakpoints & run it, after adjusting
hard-coded addresses...
Not a world-beater, but very short (39 bytes) which means you can enter
the code by hand, through DEBUG - No PCIF necessary.
Jack