12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- .xdef OSVRegisterTimer
- .text
- OSVRegisterTimer:
- subq.w #1,%d0
- cmpi.w #2,%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
- cmpi.l #-1,(%a1)
- bne.s .L__timer_rfai
- move.l %d3,(%a1)+
- move.l %d3,(%a1)+
- move.l %d4,(%a1)
- bclr.b #2,0x600001
- move.l %a0,0x74:w
- bset.b #2,0x600001
- 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
- .L__timer_i5lp:
- cmpi.l #-1,(%a4)
- beq.s .L__timer_i5sk
- subq.l #1,(%a4,4)
- bne.s .L__timer_i5sk
- move.l (%a4),(%a4,4)
- move.l (%a4,8),%a0
- jsr (%a0)
- .L__timer_i5sk:
- lea (%a4,12),%a4
- dbra %d4,.L__timer_i5lp
- movem.l (%sp)+,%d0-%d7/%a0-%a6
- move.l .L__timer_told(%pc),-(%sp)
- rts
|