home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 15 / CDACTUAL15.iso / cdactual / program / asm / OKTIMDAT.ZIP / DATEBITS.ASM < prev    next >
Encoding:
Assembly Source File  |  1988-10-29  |  1.6 KB  |  36 lines

  1. Title   DateBits.ASM -- Converts CX, DX Date Values to DX Date Bit Map
  2. COMMENT~
  3.         Call With:  CX = Year (1980 - 2099)
  4.                     DH = Month (1 - 12)
  5.                     DL = Day (1 - 31)
  6.         Returns:    DX = compressed date in directory entry format
  7.                      y = year bits (0 - 119)
  8.                      m = month bits (1 - 12)
  9.                      d = day bits (1 - 31)
  10.                      <     DH      > <     DL      >
  11.                      y y y y y y y m m m m d d d d d
  12.  
  13.                     BX and CX are destroyed
  14.         ~
  15.         .MODEL  small
  16.         .CODE
  17.             PUBLIC DateBits
  18. DateBits    Proc
  19.             sub     cx,80               ; If => 80
  20.             jnc     CkCentury           ; then continue
  21.             add     cx,2080             ; else make 20th century
  22.             jmp     SHORT DateBits
  23. CkCentury:  cmp     cx,1900             ; If two digit
  24.             jc      OkYears             ; then is offset
  25.             sub     cx,1900             ; else make offset
  26. OkYears:    shl     cl,1                ; Move to 7 high bits
  27.             mov     bl,dh               ; Let BX hold the
  28.             xor     bh,bh               ; month value and
  29.             mov     dh,cl               ; DX = yyyyyyyxxxxddddd
  30.             mov     cl,5                ; Use CL for Shift Count to
  31.             shl     bx,cl               ; Move Month to Mid 4 digits
  32.             or      dx,bx               ; Combine to Return DX =
  33.             ret                         ; "yyyyyyymmmmddddd"
  34. DateBits    EndP
  35.             END
  36.