Subject: Re: [stella] BRK instruction: Request for clarification! From: "Eckhard Stolberg" <Eckhard_Stolberg@xxxxxx> Date: Tue, 26 Jul 2005 16:53:23 -0400 |
>> The B flag is wired directly to the interrupt input pin on the >> 6502. In the 6507 this pin is internally set high, so on the VCS >> the B flag should always be set. > ... >> >> None of the instructions in the 6502 affects the B flag. >> It's hardwired to the interrupt input pin, so you can't change >> the bit yourself. > > You sure about that? > > If you're right, someone needs to fix this tutorial: > > http://www.6502.org/tutorials/register_preservation.html > > It claims that: > > The B (Break) flag, bit 4 of the P (Processor status) register, is a > frequent source of confusion on the 6502. The sole purpose of this flag > is to distinguish a BRK from a IRQ. > > ...which is what I always thought it was for, too... but I'm none too > confident that I know what I'm talking about, since I haven't actually > used any of this interrupt-related stuff in 15+ years. It is used to distinguish a BRK from an IRQ. But as the tutorial says, the only way to find out what caused the interrupt to happen is by testing bit 4 of the status byte that was pushed to the stack by the BRK/IRQ. Pushing the status byte to the stack yourself won't work reliably. The reason for that is the fact that the only time the B bit is low in the status register is while the IRQ line on the 6502 is pulled low to trigger an external interrupt. Since the B flag is connected directly to the IRQ pin on the 6502, it will be low in the status value that the IRQ pushes to the stack. At least that's the theory I think is most plausible. I guess it would be possible that the tutorial is correct and the BRK/IRQ mask out the B flag before pushing it to the stack. But to me it seems easier to just connect it directly to the IRQ pin on the 6502. I guess to find out for sure someone would need to connect the IRQ line on a 6502 to ground and check what value a PHP would push to the stack. Ciao, Eckhard Stolberg Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://stella.biglist.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] BRK instruction: Reque, B. Watson | Thread | Re: [stella] BRK instruction: Reque, Dennis Debro |
Re: [stella] Stella debugger minimu, Fred Quimby | Date | Re: [stella] Stella debugger minimu, B. Watson |
Month |