[Coco] auto-starting game paks
robert.gault at worldnet.att.net
Mon Jan 19 22:57:17 EST 2009
Roger Taylor wrote:
> I've got a little question.
> What keeps an auto-starting ROM Pak (Q signal tied to CART) from
> continuously looping to $C000 instead of running the ROM code?
> If BASIC is responsible for resetting the FIRQ behavior before jumping
> into the ROM, I can understand how this would work right, but if the CPU
> itself is responsible by using the upper hardware vectors to jump
> directly to $C000 before BASIC even gets a chance to start, then if the
> ROM code doesn't start with ORCC #80 (mask IRQ/FIRQ), then I can't see
> the code ever getting past the first instruction, which in some cases is
> a NOP.
> Any ideas?
It's the PIA at $FF23 that controls whether the CPU responds to the CART
line. Basic turns this on, the ROM pak triggers the interrupt, the
interrupt vectors to $A0F6 which vectors to $A02A where the PIA's are
reset (turning off the CART I assume), initialization exits at $A108 and
jumps to the ROM pak.
A ROM pak is not likely to turn on the CART line interrupt, which as you
say, would cause a loop.
More information about the Coco