| |
Frantic
Registered: Mar 2003 Posts: 1648 |
Cartridge coding questions (Retro Replay hardware)
I am fiddling with some code for the retro replay hardware, i.e. I am making my own cartrige ROM software which is supposed to run from the Retro Replay hardware (and compatibles). The basic stuff works, such as autostarting the code in the cart and switching between ROM banks so that I am able to jmp/jsr between banks. I am also able to handle presses on the freeze button.
...but apart from this, I am quite puzzled in a number of ways. :) If someone could set me straight I would be most happy. Questions come here:
Q1. If I have understood correctly, it is not possible to disable BASIC ROM and KERNAL ROM and still have the cartridge ROM enabled. True? (If it is actually possible, then what is the correct value to write to $01 to set this up?)
Q2. If it is not possible to disable BASIC/KERNAL ROM and still have the cartridge ROM enabled, the following question emerges: Is the only way to bypass the KERNAL IRQ handler (the one that $fffe points to) to map the cartridge ROM to $e000-$ffff? (The idea would be that the cartridge ROM then occupies the $fffe/$ffff bytes, so one is able to respecify the IRQ vector this way.)
Q3. If one has to have the cartridge ROM mapped to the $e000-$ffff area, is it then possible to use the cartridge RAM of the retro replay? The "Inside Replay.txt" document somewhat cryptically states that "RAM can only be accessed in $8000-$9fff."
Q4. Is there some source code available that shows how to use the Retro Replay ram? (In general: Please add more cartridge coding stuff to codebase64 if you got something!!)
Q5. How come cartridge ROMs like the Action Replay ROM can "disappear" during normal operation of the C64 and still magically be invoked when it is time to do loading/saving etc? I mean.. either the ROM banks are enabled or they are not? What makes the AR ROM magically "invisible" at one moment, only to suddenly appear again at the right moment to provide some turbo loading code and such? :)
I realize that I am quite confused over the operation of the RR hardware, so bear with me if the questions above do not really make sense. :) |
|
| |
Count Zero
Registered: Jan 2003 Posts: 1932 |
Phew ...
You checked the available documentation at rr.c64.org closely? It should answer a few questions. Meet me on IRC for more details and pointers. Don't feel like it _right now_ :)
|
| |
chatGPZ
Registered: Dec 2001 Posts: 11386 |
just a quick one:
Q5: a common technique (used by AR and also a bunch of other freezers) is to map rom (or ram) into the i/o area (one page at $de00 and/or $df00). the load/save etc vectors then point to this area, which contains the code to enable/disable the actual cartridge ram (at $8000 for example). |
| |
Count Zero
Registered: Jan 2003 Posts: 1932 |
Nearly forgot:
http://rr.c64.org/wiki/Inside_Replay_Essentials.txt
Not perfectly written but when read closely I hope it solves most plain coding problems.
Not me on errors and hard to understand sentences.
|