home *** CD-ROM | disk | FTP | other *** search
/ Oakland CPM Archive / oakcpm.iso / cpm / bye5 / b5-clock.lbr / B5C-H8F2.IQS / B5C-H8F2.INS
Encoding:
Text File  |  1986-03-09  |  1.9 KB  |  80 lines

  1. ;*************************************************************************
  2. ;  B5C-H8F2.INS    ( H89 RTC clock code for BYE5xx
  3. ;   09/06/85         w/ FBE UTI board)
  4. ;
  5. ;  v1    September 1985     Adam Koczarski  206-827-9198
  6. ;  v2    October   1985 - Had century and year reversed...Oops
  7. ;
  8. ; This is to be inserted in the BYE5 code right after IF TIMEON label following
  9. ; the machine insert.
  10. ;
  11. ;****************************************************************************
  12. ;
  13. CLKA    EQU    0D4H    ;CLOCK ADDRESS PORT
  14. CLKD    EQU    0D2H    ;CLOCK DATA PORT
  15. PPIX    EQU    0D7H    ;8255 COMMAND PORT
  16. ;
  17. ;
  18. TIME:
  19.     CALL    CREAD        ; read data from clock chip
  20.     LDA    TBFR+4
  21.     STA    RTCBUF+0    ; Hour
  22.     LDA    TBFR+5
  23.     STA    RTCBUF+1    ; Minute
  24.     LDA    TBFR+6
  25.     STA    RTCBUF+2    ; Second
  26.     LDA    TBFR+0
  27.     STA    RTCBUF+3    ; Century
  28.     LDA    TBFR+1
  29.     STA    RTCBUF+4    ; Year
  30.     LDA    TBFR+2
  31.     STA    RTCBUF+5    ; Month
  32.     LDA    TBFR+3
  33.     STA    RTCBUF+6    ; Day
  34.     LDA    RTCBUF        ; Pick up BCD HH
  35.     CALL    BCDBIN        ; And convert to binary
  36.     STA    CCHOUR        ; For BYE5
  37.     LDA    RTCBUF+1    ; BCD MM
  38.     CALL    BCDBIN
  39.     STA    CCMIN        ; To binary for BYE5
  40.     RET            ; And return (for now..)
  41. ;
  42. ;=========
  43. ;
  44. ; Time/Date buffer consists of 7 bytes of packed BCD-encoded information
  45. ; located in buffer TBFR.   Time/Date buffer is of the following format:
  46. ;
  47. ;     TBFR  + 0    = century
  48. ;           + 1    = year
  49. ;           + 2    = month
  50. ;           + 3    = day
  51. ;           + 4    = hour
  52. ;           + 5    = minute
  53. ;           + 6    = second
  54. ;
  55. CREAD:
  56.     DI
  57.     MVI    A,81H
  58.     OUT    PPIX
  59.     MVI    A,80H
  60.     OUT    CLKA
  61.     EI
  62. ;
  63.     LXI    H,TBFR
  64.     LXI    D,ADRTBL
  65.     MVI    B,7
  66. TDLOOP:    LDAX    D
  67.     OUT    CLKA
  68.     IN    CLKD
  69.     MOV    M,A
  70.     INX    H
  71.     INX    D
  72.     DCR    B
  73.     JNZ    TDLOOP
  74.     RET
  75. ;
  76. TBFR:    DS    7        ;Real-time clock buffer - see above
  77. ADRTBL:    DB    8EH,89H,87H,86H,84H,83H,82H ;Clock memory addr's
  78. ;
  79. ;***************************************************************************
  80.