Subject: Re: [stella] An Efficient Waste Of Time From: Christopher Tumber <christophertumber@xxxxxxxxxx> Date: Fri, 18 Oct 2002 01:21:30 -0400 |
>12 cycles (3Bytes): > >JSR AnyRTS > >14 cycles and more > >- jsr to any subroutine point wasting the desired # of >cycles without destroying other data. > >Or do something like: > >... >Waste16 > NOP >Waste14 > NOP >Waste12 > RTS Yup, good point though I've kinda been focussed on the <10 cycles to maximise a bytes/cycles ratio (least bytes, most cycles..) since usually it's for timing in the display kernal (spacing RESP0's or altering other TIA registers at appropriate times). A good variant where the length of the pause is variable is:: jmp ($ZeroPage) nop nop nop (Whole bunch of NOPs) Where the value in $ZeroPage is an address down the list of NOPs depending upon the length of the pause. Much more usefull on a CPU with 16-bit registers so you can determine (add) the address quickly but could still be usefull... There's a little bit of overhead to setting it up (The jump and whatever adc type instructions you need) but you have a much higher degree of cycle count accuracy for "long" pauses than a loop like: ldy $ZeroPage NextPause: dey bne NextPause gives you. (The "resolution" of the loop pause is 4 cycles, the jmp () pause is 2 cycles...) Chris... ---------------------------------------------------------------------------------------------- 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] An Efficient Waste Of , Manuel Polik | Thread | Re: [stella] An Efficient Waste Of , Thomas Jentzsch |
Re: [stella] An Efficient Waste Of , Chris Wilkson | Date | Re: [stella] An Efficient Waste Of , Christopher Tumber |
Month |