[Coco] auto-starting game paks
John Eric
jet.pack at ymail.com
Thu Jan 22 16:16:01 EST 2009
Roger, the simplest answer to your question is: The 6809 interrupts are (obviously) NMI*, FIRQ*, IRQ*, RESET* (yes, that's an interrupt), SWI1, SWI2, and SWI3. The reason that the Q clock will not continuously trigger the interrupt is that all of the above interrupts, except SWI2 and SWI3, will AUTOMATICALLY (when triggered) set the I flag during their respective interrupt sequences, thereby disabling interrupts before the interrupt service routine even begins execution. Interrupts must then be re-enabled, if needed. -Jeric
________________________________
From: Roger Taylor <operator at coco3.com>
To: cocolist for Color Computer Enthusiasts <coco at maltedmedia.com>
Sent: Monday, January 19, 2009 9:39:03 PM
Subject: [Coco] auto-starting game paks
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?
-- Roger Taylor
http://www.wordofthedayonline.com
--
Coco mailing list
Coco at maltedmedia.com
http://five.pairlist.net/mailman/listinfo/coco
More information about the Coco
mailing list