Subject: Re: [stella] Delightful horizontal position code... From: "Andrew Davie" <adavie@xxxxxxxxxxxxx> Date: Mon, 12 Feb 2001 20:53:45 +1100 |
There's a small optimisation to be made to Thomas's version of the routine. I think I saved 3 cycles. New code below. CalcXPos: tay ; 2 lsr ; 2 lsr ; 2 lsr ; 2 lsr ; 2 sta tmpVar ; 3 = 13 tya ; 2 and #$0f ; 2 clc ; 2 adc tmpVar ; 3 ldy tmpVar ; 3 << moved this to here cmp #$0f ; 2 bcc .nextPos ; 2³ sbc #$0f ; 2 iny ; 2 << added this (+2 cycles) ;inc removed from here (-5 cycles) .nextPos: ; = 14/20 eor #%00000111 ; 2 asl ; 2 asl ; 2 asl ; 2 asl ; 2 ;ldy removed from here rts ; 6 = 19 OK, so its a lousy three cycles better... but in the interest of efficency, etc :) I just removed the inc of tmpVar (5 cycles) and shifted the load up to just before that. Then you just "iny" instead of the costly inc. Should work :) Cheers A -- _ _ _| _ _ _| _ * _ _ , (_|| )(_|( (/_\/\/ (_|(_|\/(_(/_ ,~' L_|\ ,-' \ see my Museum of Soviet Calculators at ( \ http://www.taswegian.com/MOSCOW/soviet.html \ __ / L,~' "\__/ @--> v - Archives (includes files) at http://www.biglist.com/lists/stella/archives/ Unsub & more at http://www.biglist.com/lists/stella/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [stella] Delightful horizontal , Andrew Davie | Thread | [stella] single line kernels and ho, Glenn Saunders |
Re: [stella] single line kernels an, Manuel Polik | Date | [stella] pseudoplayers, Glenn Saunders |
Month |