1 .xdef OSVRegisterTimer 2 3.text 4OSVRegisterTimer: 5 subq.w #1,%d0 6 cmpi.w #2,%d0 7 bcc.s .L__timer_rfai 8 muls.w #12,%d0 9 move.l 0x74,%a0 10 cmpi.l #132133782,(%a0,-4) 11 beq.s .L__timer_rins 12 lea .L__timer_told(%pc),%a1 13 move.l %a0,(%a1) 14 lea .L__timer_rti5(%pc),%a0 15.L__timer_rins: 16 lea -32(%a0,%d0.w),%a1 17 cmpi.l #-1,(%a1) 18 bne.s .L__timer_rfai 19 move.l %d3,(%a1)+ 20 move.l %d3,(%a1)+ 21 move.l %d4,(%a1) 22 bclr.b #2,0x600001 23 move.l %a0,0x74:w 24 bset.b #2,0x600001 25 moveq #1,%d0 26 rts 27.L__timer_rfai: 28 clr.w %d0 29 rts 30 .even 31.L__timer_ttab: 32 .long -1,0,0,-1,0,0 33.L__timer_told: 34 .long 0 35 .long 132133782 /* magic */ 36 .even 37.L__timer_rti5: 38 move.w #0x2700,%sr 39 movem.l %d0-%d7/%a0-%a6,-(%sp) 40 lea .L__timer_ttab(%pc),%a4 41 moveq #1,%d4 42.L__timer_i5lp: 43 cmpi.l #-1,(%a4) 44 beq.s .L__timer_i5sk 45 subq.l #1,(%a4,4) 46 bne.s .L__timer_i5sk 47 move.l (%a4),(%a4,4) 48 move.l (%a4,8),%a0 49 jsr (%a0) 50.L__timer_i5sk: 51 lea (%a4,12),%a4 52 dbra %d4,.L__timer_i5lp 53 movem.l (%sp)+,%d0-%d7/%a0-%a6 54 move.l .L__timer_told(%pc),-(%sp) 55 rts 56