[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