[Coco] How does the cartridge port work, anyway?
Phill Harvey-Smith
afra at ramoth.org.uk
Fri Feb 15 06:46:34 EST 2013
On 15/02/2013 11:38, T. Franklin wrote:
> If memory serves... Isn't there a CART signal that when the cartridge
> is inserted, this signal is shorted to a "0" state and the CPU sees
> this bit during boot?
The FIRQ line, is shorted to one of the clock signals, which causes an
interrupt, once it's enabled.
> The BIOS then knows the cartridge is inserted
> and calls the code at $c000 (or some predetermined address in the
> cart. address area) for initialization.
Yes that is what the interrupt handler does, so that games cartridges
auto-start.
> I remember that you could
> grab the cartridge code by placing a small piece of tape over this
> signal to prevent the BIOS from calling the cartridge initialization
> code. Then you can grab the cart image with a short assembly
> program.
Yep that will work with FIRQ starting carts.
The other way a cart can auto-start is if the first two characters of
the ROM at $C000 contain 'DK' the basic roms will assume that the
cartridge is a disk controller and jump to the initialization code at $C002.
This was used by the various CoCo/Dragon dos cartridges and by Edit+ on
the Dragon which added the 51 column hi-res screen driver to basic.
Cheers.
Phill.
More information about the Coco
mailing list