|
Subject: Re: [stella] Variable cycle delays From: Chris Wilkson <cwilkson@xxxxxxxxxxxxx> Date: Wed, 18 Mar 1998 13:36:32 -0800 (PST) |
> JumpTable:
> dc.b $C9
> dc.b $C9
> ; repeat as many $C9's as you need for the maximum number of cycles you
> ; you need to delay by.
> dc.b $C9 ; opcode: CMP immediate (4 cycles: uses the $C5, executes
> ; the NOP below.)
> dc.b $C5 ; opcode: CMP zero page (3 cycles, uses up the NOP as a
> ; destination address of $EA)
> nop ; opcode: NOP (2 cycles by itself)
>
> You may find the reduced overhead of this technique useful.
This rocks! I was looking for a way to do this very thing. But software
is such an abstract thing to me. Heh...guess that's sorta the point. :)
(chants "I'm not worthy! I'm not worthy!")
It might be more illustrative if you extend the comments a few lines back.
Also might help to show the actual commands that are executed. Took me a
while to wrap my mind around what was happening...
dc.b $C9 ; opcode: CMP immediate 7 cycles; CMP #$C9
; CMP #$C9
; CMP $EA
;
dc.b $C9 ; opcode: CMP immediate 6 cycles; CMP #$C9
; CMP #$C5
; NOP
;
dc.b $C9 ; opcode: CMP immediate 5 cycles; CMP #$C9
; CMP $EA
;
dc.b $C9 ; opcode: CMP immediate 4 cycles; CMP #$C5
; NOP
;
dc.b $C5 ; opcode: CMP zero page 3 cycles; CMP $EA
;
nop ; opcode: NOP 2 cycles ; NOP
This is the kind of thing that makes me consider subcontracting code warriors
even for simple tasks...ack!!
-Chris
--
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!!
| Current Thread |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [stella] Variable cycle delays, Chris Wilkson | Thread | [stella] 6502 Asm References?, Ruffin Bailey |
| Re: [stella] Variable cycle delays, Erik Mooney | Date | [stella] 6502 Asm References?, Ruffin Bailey |
| Month |