1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- .xdef OSVRegisterTimer
- .text
- OSVRegisterTimer:
- moveq.l #2,%d1
- moveq.l #-1,%d2
- subq.w #1,%d0
- cmp.w %d1,%d0
- bcc.s .L__timer_rfai
- muls.w #12,%d0
- move.l 0x74,%a0
- cmpi.l #132133782,(%a0,-4)
- beq.s .L__timer_rins
- lea .L__timer_told(%pc),%a1
- move.l %a0,(%a1)
- lea .L__timer_rti5(%pc),%a0
- .L__timer_rins:
- lea -32(%a0,%d0.w),%a1
- cmp.l (%a1),%d2
- bne.s .L__timer_rfai
- move.l %d3,(%a1)+
- move.l %d3,(%a1)+
- move.l %d4,(%a1)
- lea.l 0x600001,%a1
- bclr.b %d1,(%a1)
- move.l %a0,0x74:w
- bset.b %d1,(%a1)
- moveq #1,%d0
- rts
- .L__timer_rfai:
- clr.w %d0
- rts
- .even
- .L__timer_ttab:
- .long -1,0,0,-1,0,0
- .L__timer_told:
- .long 0
- .long 132133782 /* magic */
- .even
- .L__timer_rti5:
- move.w #0x2700,%sr
- movem.l %d0-%d7/%a0-%a6,-(%sp)
- lea .L__timer_ttab(%pc),%a4
- moveq #1,%d4
- moveq #-1,%d3
- .L__timer_i5lp:
- cmp.l (%a4)+,%d3
- beq.s .L__timer_i5sk
- subq.l #1,(%a4)
- bne.s .L__timer_i5sk
- move.l -4(%a4),(%a4)
- move.l 4(%a4),%a0
- jsr (%a0)
- .L__timer_i5sk:
- addq.l #8,%a4
- dbra %d4,.L__timer_i5lp
- movem.l (%sp)+,%d0-%d7/%a0-%a6
- move.l .L__timer_told(%pc),-(%sp)
- rts
|