home *** CD-ROM | disk | FTP | other *** search
/ CP/M / CPM_CDROM.iso / cpm / bye5 / b5c-kpav.izs / B5C-KPAV.INS
Text File  |  1988-03-12  |  2KB  |  67 lines

  1. ;*********************************************************************
  2. ;
  3. ;  B5C-KPAV.INS      -  KAYPRO WITH ADVENT REAL-TIME CLOCK
  4. ;
  5. ;    5/09/86      -  First Version (1.0)
  6. ;             Robert J. Dix, PENKUG RBBS, (804) 838-1645
  7. ;
  8. ;*********************************************************************
  9. ;
  10. CLKPORT    EQU    090H    ; PORT FOR ADVENT CLOCK ON KAYPROS
  11. TCENTURY EQU    019H    ; Current century . . . . to changed
  12.             ; on January 1, 2000
  13. THOUR    EQU    04H    ; Real Time Clock Hour Register
  14. TMINUTE    EQU    03H    ; Real Time Clock Minute Register
  15. TSECOND    EQU    02H    ; Real Time Clock Second Register
  16. TMONTH    EQU    07H    ; Real Time Clock Month Register
  17. TDAY    EQU    06H    ; Real Time Clock Day Register
  18. TYEAR    EQU    09H    ; Real Time Clock Year Register
  19. ;
  20. ;---------------------------------------------------------------------
  21. ;
  22. TIME:
  23. ;
  24. ;  Read Seconds First to Guard Against Rollover
  25. ;
  26.     MVI    A,TSECOND    ; Put RTC register # in A
  27.     IN    CLKPORT        ; Get Seconds count
  28.     MOV    E,A        ; and store it in E for Rollover Test
  29.                 ; later on
  30.     MVI    A,TYEAR        ; Put RTC register # in A
  31.     IN    CLKPORT        ; Get Year
  32.     STA    RTCBUF+4    ; Store in RTCBuf BCD buffer
  33.     MVI    A,TCENTURY    ; Move Century to RTC BCD buffer
  34.     STA    RTCBUF+3
  35.     MVI    A,TMONTH    ; Put RTC register # in A
  36.     IN    CLKPORT        ; Get Month
  37.     STA    RTCBUF+5    ; Store in RTCBuf BCD buffer
  38.     MVI    A,TDAY        ;
  39.     IN    CLKPORT        ; Get Day
  40.     STA    RTCBUF+6    ;
  41.     MVI    A,THOUR        ;
  42.     IN    CLKPORT        ; Get Hour
  43.     STA    RTCBUF+0    ;
  44.     MVI    A,TMINUTE    ;
  45.     IN    CLKPORT        ; Get Minute
  46.     STA    RTCBUF+1    ;
  47.     MVI    A,TSECOND    ;
  48.     IN    CLKPORT        ; Get Second
  49.     STA    RTCBUF+2    ;
  50. ;
  51. ;  Check for rollover first before doing the binary conversion and exit
  52. ;
  53.     CMP    E        ; Compare current second value with
  54.                 ; what was stored in register E
  55.     JNZ    TIME        ; If not the same value, then retry
  56.                 ; otherwise....proceed
  57.     LDA    RTCBUF        ; Get Hour Value
  58.     CALL    BCDBIN        ; Convert it to binary format
  59.     STA    CCHOUR        ; Store it for BYE5
  60.     LDA    RTCBUF+1    ;
  61.     CALL    BCDBIN        ; Do the same for Minute
  62.     STA    CCMIN        ;
  63. ;
  64. ; All done, return to caller . . . . . until next time
  65. ;
  66.     RET
  67.