Subject: [stella] Variable cycle delays From: Jim Nitchals <jimn8@xxxxxxxxxx> Date: Wed, 18 Mar 1998 12:22:13 -0800 (PST) |
Hi, Here's a way to implement single cycle resolution without the use of the carry flag (which adds overhead in the setup and at the end): ; A is assumed to hold the delay value plus the offset address of JumpTable. ; Or, you can align JumpTable to a page boundary. sta indjmp jmp (indjmp) ; point indjmp+1 to JumpTable somewhere in your init code 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. -- 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 -> |
---|---|---|
[stella] Vectrex Frogger..., Chrissalo | Thread | Re: [stella] Variable cycle delays, Erik Mooney |
Re: [stella] Real or not? Why?, bwmott | Date | Re: [stella] Variable cycle delays, Erik Mooney |
Month |