home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / OTL-MC6.DMS / in.adf / libsrc.lha / LIBSRC / mktime.asm < prev    next >
Encoding:
Assembly Source File  |  1994-04-15  |  1.4 KB  |  74 lines

  1.  
  2. *    Maxon C++:
  3. *    Library-Modul "mktime"
  4. *    Jens Gelhar 28.05.92, 15.04.94
  5.  
  6.     xdef    _mktime,mktime__P02tm
  7.  
  8. _mktime:
  9. mktime__P02tm:
  10.     movem.l d1/d2/a0,-(a7)
  11.     move.l 12+4(a7),a0
  12.     move.l 20(a0),d0
  13.     move.l d0,d1            ; Anzahl ganzer Jahre
  14.     moveq #3,d2
  15.     and.w d0,d2             ; Schaltjahr-Flag
  16.     mulu #365,d0
  17.     sub.w #78*365+1,d0      ; minus 78 Jahre - und 1.1.78 zählt nicht
  18.     subq.w #1,d1
  19.     lsr.l #2,d1             ; Anzahl der _vergangenen_ Schaltjahre
  20.     sub.w #78/4,d1
  21.     add.l d1,d0             ; Schalttage seit 78
  22.     add.l 12(a0),d0         ; + Monatstage
  23.     move.w 16+2(a0),d1      ; Monat:
  24.     beq.b m0
  25.     add.w #31,d0            ; Januar
  26.     subq.w #1,d1
  27.     beq.b m0
  28.     add.w #28,d0            ; Februar
  29.     tst.w d2
  30.     bne.b m1
  31.     addq.w #1,d0            ; im Schaltjahr
  32. m1    subq.w #1,d1
  33.     beq.b m0
  34.     add.w #31,d0            ; März
  35.     subq.w #1,d1
  36.     beq.b m0
  37.     add.w #30,d0            ; April
  38.     subq.w #1,d1
  39.     beq.b m0
  40.     add.w #31,d0            ; Mai
  41.     subq.w #1,d1
  42.     beq.b m0
  43.     add.w #30,d0            ; Juni
  44.     subq.w #1,d1
  45.     beq.b m0
  46.     add.w #31,d0            ; Juli
  47.     subq.w #1,d1
  48.     beq.b m0
  49.     add.w #31,d0            ; August
  50.     subq.w #1,d1
  51.     beq.b m0
  52.     add.w #30,d0            ; Sept
  53.     subq.w #1,d1
  54.     beq.b m0
  55.     add.w #31,d0            ; Okt
  56.     subq.w #1,d1
  57.     beq.b m0
  58.     add.w #30,d0            ; Nov
  59.     subq.w #1,d1
  60.     beq.b m0
  61.     add.w #31,d0            ; Dez
  62. m0    moveq #17,d1
  63.     asl.l d1,d0
  64.     move.l 8(a0),d1
  65.     mulu #60,d1
  66.     add.l 4(a0),d1
  67.     mulu #60,d1
  68.     add.l (a0),d1
  69.     or.l d1,d0
  70.     movem.l (a7)+,d1/d2/a0
  71.     rts
  72.  
  73.     end
  74.