x: bra main ********************************************** * Mini-program to determine the number of * * clockcycles a routine uses * * by Niclas Thisell * ********************************************** testrout: ;***************************************************** ; The routine you want to test here! ; move.l (a0)+,(a1)+ nop rts testinit: ;**************************************************** ; Stuff the right values into registers movea.l #spr2,a0 movea.l #spr2,a1 rts main pea introtext move.w #9,-(sp) trap #1 addq.l #6,sp pea 0 move.w #$0020,-(sp) trap #1 addq.l #6,sp move.l $00000010,saveillegal move.w #$0765,$ffff8240.w move.b #2,$ffff820a.w loop move.w #37,-(sp) trap #14 addq.l #2,sp move #$2700,sr jsr testinit move.l a0,-(sp) move.w d0,-(sp) lea $ffff8209.w,a0 moveq #0,d0 .wait move.b (a0),d0 beq.s .wait not.w d0 lsr.w d0,d0 move.w #128,d0 sub.w nopno(pc),d0 add.w d0,d0 jmp .jmpbase(pc,d0.w) .jmpbase dcb.w 128,$00004e71 move.w (sp)+,d0 movea.l (sp)+,a0 ;************************************ ;sprite-routine or whatever here! jsr testrout continue: ;*********************************** move.b $ffff8209.w,d0 move.b $ffff8207.w,d1 move.b $ffff8205.w,d2 move.b $ffff8209.w,d3 sub.b d0,d3 cmp.b #18,d3 beq.s .found_values addq.w #5,nopno andi.w #127,nopno beq something_wrong_here move.w #$0765,$ffff8240.w move #$2300,sr bra loop .found_values move.w #$0770,$ffff8240.w move #$2300,sr and.l #$000000ff,d0 and.l #$000000ff,d1 and.l #$000000ff,d2 lsl.w #8,d2 add.w d1,d2 lsl.l #8,d2 add.w d0,d2 sub.l $0000044e,d2 divu #160,d2 move.l d2,d0 mulu #256,d0 swap d2 add.w d2,d0 sub.w nopno(pc),d0 sub.w nopno(pc),d0 add.w d0,d0 sub.w #252,d0 bra getouttahere something_wrong_here move.w #10000,d0 .p addi.w #$0123,$ffff8240.w dbra d0,.p moveq #0,d0 bra getouttahere nopno dc.w 0 getouttahere move #$2300,sr move.b #2,$ffff820a.w move.w #$0777,$ffff8240.w move.w d0,-(sp) lea numbertext+5(pc),a0 moveq #4,d7 .decoutloop divu #10,d0 swap d0 add.w #"0",d0 move.b d0,-(a0) clr.w d0 swap d0 dbra d7,.decoutloop pea numbertext move.w #9,-(sp) trap #1 addq.l #6,sp cmpi.w #0,(sp)+ beq.s .notlasttext pea lasttext move.w #9,-(sp) trap #1 addq.l #6,sp .notlasttext move.w #7,-(sp) trap #1 addq.l #2,sp move.l saveillegal,$00000010 clr.w -(sp) trap #1 saveillegal dc.l 0 introtext dc.b 27,"EYour routine takes ",0 numbertext dc.b " clockcycles.",10,13,10,13,0 lasttext dc.b "I think you need to speed it up!",10,13,0 even spr2 ds.b 4096 end