; renvoi le nombre de secondes dans d0 opt a+,o+,p+,o1+,o2+ movem.l d1-d7/a0-a6,-(sp) move.w #$2c,-(sp) ; getdate trap #1 addq.l #2,sp move.w d0,d1 and #%1111,d0 move.w d0,d2 ; sec ext.l d2 lsr.w #4,d1 move.w d1,d0 and.w #%111111,d0 move.w d0,d3 ; min lsr.w #6,d1 mulu.w #60,d3 ; min->s ext.l d3 move.l #3600,d0 bsr.s lmul ; h->s d0=d0*d1 add.l d3,d0 add.l d2,d0 movem.l (sp)+,d1-d7/a0-a6 rts ; Sous-routine de multiplication longue ; MULS.L D0,D1 --> Jsr LMul (remplace l'instruction 68030) ; multiplie d0 par d1 (utilise d2) ; TIRE DE LA LIBRAIRIE GFA LMul: Tst.L D1 Bpl.S _LMul_L2 Neg.L D1 Neg.L D0 Bpl.S _LMul_L3 _LMul_L1: Neg.L D0 Bsr.s _LMul_L3 Neg.L D0 RTS _LMul_L2: Tst.L D0 Bmi.S _LMul_L1 _LMul_L3: Cmp.L D0,D1 Bhi.S _LMul_L5 Cmpi.L #$10000,D0 Bcc.S _LMul_L6 _LMul_L4: Mulu D1,D0 RTS _LMul_L5: Cmpi.L #$10000,D1 Bcs.S _LMul_L4 Exg D1,D0 _LMul_L6: Move.L D0,D2 Mulu D1,D0 Swap D2 Mulu D1,D2 Swap D2 Clr.W D2 Add.L D2,D0 RTS