home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / sigm / vol147 / rdtime86.lib < prev    next >
Text File  |  1984-04-29  |  1KB  |  42 lines

  1. RDTIME:    ;READS COMPUPRO SYSTEM SUPPORT CLOCK
  2.     IF    CLOCK            ;SUPPLY YOUR OWN ROUTINE
  3. CLKCP    EQU    50H+10            ;CLOCK COMMAND PORT
  4. ;DATESTR DB    'DD/MM/YY  HH:MM:SS'    ;DATE STRING FORMAT
  5.  
  6.     MOV    BX,OFFSET DATESTR     ;POINT TO DATE STRING
  7.     MOV    SI,OFFSET DIGTAB     ;POINT TO DIGIT TABLE
  8.     MOV    CL,6            ;READ TWO COUNTER
  9. RTWO:    MOV    CH,2            ;READ ONE COUNTER
  10. ;
  11. ; READ A DIGIT FROM CLOCK CHIP
  12. ; ENTRY: SI => DIGIT TABLE DATA ENTRY
  13. ;        BX => STRING POSITION
  14. ; EXIT:  ASCII DIGIT LOADED IN STRING
  15. ;        SI & BX INCREMENTED
  16. ;
  17. RONE:    MOV    AL,[SI]        ;GET DIGIT TABLE DATA
  18.     INC    SI        ;BUMP TO NEXT ENTRY
  19.     ADD    AL,10H        ;SET READ BIT
  20.     OUT    CLKCP,AL    ;OUTPUT DIGIT DATA
  21.     CMP    AL,15H        ;CHECK FOR HOURS 10 DIGIT
  22.     IN    AL,CLKCP+1    ;READ BCD DIGIT FROM CLOCK
  23.     JNE    NOHOUR
  24.     SUB    AL,8
  25. NOHOUR:    ADD    AL,'0'        ;MAKE ASCII
  26.     MOV    [BX],AL
  27.     INC    BX        ;POINT TO NEXT STR POSITION
  28.     DEC    CH
  29.     JNZ    RONE        ;GET SECOND DIGIT
  30.     INC    BX        ;BUMP OVER SEPERATOR
  31.     CMP    CL,4
  32.     JNE    NOBUMP
  33.     INC    BX        ;BIG BUMP OVER WHITE SPACE
  34. NOBUMP:    DEC    CL
  35.     JNZ    RTWO        ;READ TWO MORE DIGITS
  36.     RET            ;RETURN TO CALLER
  37.  
  38. DIGTAB    DB    10,9,8,7,12,11,5,4,3,2,1,0 ;CLOCK DIGIT TABLE
  39.     ENDIF    ;CLOCK
  40.     RET
  41.  
  42.