Subject: [stella] zero page 6-digit routine From: Robin Harbron <macbeth@xxxxxxxxxxxxxxxxxxx> Date: Thu, 26 Mar 1998 13:38:54 -0500 |
I'm sure this has been done before, but I did it just to try - ends up leaving 13 cycles free per scanline, again, I don't see the point in wasting time with a wsync in this sort of routine. 6 cycles were saved by using regular indexing instead of indirect indexing... another 4 were saved over my original routine because I could load directly into x : LDX $FFFF,Y instead of having to load it into A then transferring it. So, what can be done with these spare 13 cycles? :) ;This routine is meant to be copied and run in ;zero page. selfx labels indicate where the ;self-modifying code is. tsx stx temps zeroloop ldy count1 ;3 self0 lda $ffff,y ;4 sta grp0 ;3 = 10 ;waste 13 cycles bit $00 bit $00 bit $00 ;9 nop nop ;4 self1 lda $ffff,y ;4 sta grp1 ;3 self5 ldx $ffff,y ;4 txs ;2 self2 lda $ffff,y ;4 sta tmp ;3 self3 ldx $ffff,y ;4 self4 lda $ffff,y ;4 ldy tmp ;3 sty grp0 ;3 stx grp1 ;3 sta grp0 ;3 tsx ;2 stx grp1 ;3 dec count1 ;5 bpl zeroloop;3 ldx temps txs rts -- Robin Harbron <macbeth@xxxxxxxxxxx> http://www.tbaytel.net/macbeth
Attachment:
test.bin
Description: Binary data
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[stella] New puzzle game kernel..., Colin_Hughes | Thread | Re: [stella] zero page 6-digit rout, Erik Mooney |
[stella] New puzzle game kernel..., Colin_Hughes | Date | Re: [stella] zero page 6-digit rout, Erik Mooney |
Month |