| 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 |