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