home *** CD-ROM | disk | FTP | other *** search
-
- * Maxon C++:
- * Library-Modul "mktime"
- * Jens Gelhar 28.05.92, 15.04.94
-
- xdef _mktime,mktime__P02tm
-
- _mktime:
- mktime__P02tm:
- movem.l d1/d2/a0,-(a7)
- move.l 12+4(a7),a0
- move.l 20(a0),d0
- move.l d0,d1 ; Anzahl ganzer Jahre
- moveq #3,d2
- and.w d0,d2 ; Schaltjahr-Flag
- mulu #365,d0
- sub.w #78*365+1,d0 ; minus 78 Jahre - und 1.1.78 zählt nicht
- subq.w #1,d1
- lsr.l #2,d1 ; Anzahl der _vergangenen_ Schaltjahre
- sub.w #78/4,d1
- add.l d1,d0 ; Schalttage seit 78
- add.l 12(a0),d0 ; + Monatstage
- move.w 16+2(a0),d1 ; Monat:
- beq.b m0
- add.w #31,d0 ; Januar
- subq.w #1,d1
- beq.b m0
- add.w #28,d0 ; Februar
- tst.w d2
- bne.b m1
- addq.w #1,d0 ; im Schaltjahr
- m1 subq.w #1,d1
- beq.b m0
- add.w #31,d0 ; März
- subq.w #1,d1
- beq.b m0
- add.w #30,d0 ; April
- subq.w #1,d1
- beq.b m0
- add.w #31,d0 ; Mai
- subq.w #1,d1
- beq.b m0
- add.w #30,d0 ; Juni
- subq.w #1,d1
- beq.b m0
- add.w #31,d0 ; Juli
- subq.w #1,d1
- beq.b m0
- add.w #31,d0 ; August
- subq.w #1,d1
- beq.b m0
- add.w #30,d0 ; Sept
- subq.w #1,d1
- beq.b m0
- add.w #31,d0 ; Okt
- subq.w #1,d1
- beq.b m0
- add.w #30,d0 ; Nov
- subq.w #1,d1
- beq.b m0
- add.w #31,d0 ; Dez
- m0 moveq #17,d1
- asl.l d1,d0
- move.l 8(a0),d1
- mulu #60,d1
- add.l 4(a0),d1
- mulu #60,d1
- add.l (a0),d1
- or.l d1,d0
- movem.l (a7)+,d1/d2/a0
- rts
-
- end
-