Subject: Re: [stella] Arrrg, Arrrg, and Double Arrrg!!!|
From: Chris Cracknell <crackers@xxxxxxxx>
Date: Wed, 15 Apr 1998 17:09:53 -0400 (EDT)
In article <22.214.171.124.19980415151656.0076840c@xxxxxxxxxxxxxxxxxxxxx>, you wrote: >The same behaviour occurs on my system too and the problem lies here: > >> ldx #$ab >>blow sta WSYNC >> dex >> bpl blow >> rts > >When X is decreased to $7f the branch isn't taken anymore and >therefore you are doing a lot less lines than you wanted to. >Your TV isn't ready to sync again after such a small number >of lines and just goes on displaying. The black stipes in your >display is the VBLANK routine. ~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~ How the heckety heck did you figure out that the branch wasn't being taken after $7F? Changing the BPL to BNE fixed the problem, although I don't know why the problem existed in the first place. I can't see what would make the BLOW routine stop at $7F with a BPL in there, unless there is something about the nature of BPL that I just don't understand. Doesn't it just branch if the result is a positive number? BEQ branches if the result is zero, BMI branches if the result is a negative number, and BNE branches if the result is anything other than zero. ~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~ >BTW your VSYNC routine is of the kind, that doesn't work on my >Supercharger. Please move the TIM64T stuff out of that routine. >And two of the three WSYNCs before the VSYNC are not nessessary. ~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~^~ Yeah, that VSYNC routine was pretty sloppy. I've pushed and pulled it out of a lot of programs now so I've trimmed it down and changed the location of the TIM64T. Although I don't see how code in the VSYNC could affect your Supercharger. Is it your Supercharger that goes wonky or is it that your TV set won't sync to it? The timers set up for the VBLANK and Overscan arn't accurate to the cycle (or maybe even scanline!) so it might mean I'd need to adjust the timer value then pad it with a few WSYNCs to get a VBLANK and Overscan that will work on all TVs. But I've cleaned up the VSYNC. I've got the program running successfully on my machine now so I'll send the new BIN up here you can tell me if it'll work on your machine now. Maybe PAL TVs are more sensative to these timing issues. Here's the new VSYNC segment of the vertical blank... vertb LDA #$02 STA VSYNC STA WSYNC STA WSYNC STA WSYNC LDA #$00 STA VSYNC LDA #$2C STA TIM64T RTS CRACKERS (Dazed and confused from hell!!!) -- Accordionist - Wethifl Musician - Atari 2600 Collector | /\/\ *NEW CrAB URL* http://www.hwcn.org/~ad329/crab.html ***| \^^/ Bira Bira Devotee - FES Member - Samurai Pizza Cats Fan| =\/= -- Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/stella.html Don't post pirate BINs to Stellalist. Be a programmer, not a pirate. Write the best game, win framed autographs of famous Atari alumni!!