home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / ZSYS / ZNODE-12 / I / NUC-XERO.INS < prev    next >
Text File  |  2000-06-30  |  2KB  |  73 lines

  1. ; NUC-XERO.INS - Xerox 820-II, 16/8 - 04/21/86
  2. ;
  3. ; Note: This is an insert, not an overlay.
  4. ;
  5. ; ========
  6. ; 04/21/86  Modified for NUBYE
  7. ; 07/15/85  Adapted from MBC-XERO.ASM (I. Salzman)    - Wayne Masters
  8. ; ========
  9. ;
  10. ; This routine will not work on the Xerox 820.
  11. ;
  12. ; When called this routine will check the RTCBUF. If a '99H' is in the first
  13. ; byte, the clock is initialized.  Next the seconds are checked and if
  14. ; changed since last update of RTC buffer, the clock is stopped, data copied
  15. ; to RTCBUF and the clock is restarted (if no change in seconds, the routine
  16. ; returns immediately).
  17. ;
  18. ; clock initialization
  19. ;
  20. XERCLK    EQU    0F039H        ; Location of Xerox 820-II time vector
  21.                 ; Monitor routine. When called, it returns
  22.                 ; The addr of the 820's clock in high mem.
  23. TIME:    LXI    H,0        ; Clear HL
  24.     CALL    XERCLK        ; Get pointer to TOD in HL
  25.     MOV    A,M
  26.     CALL    MOVETM
  27.     STA    RTCBUF+6    ; Get day
  28.     INX    H
  29.     MOV    A,M
  30.     CALL    MOVETM
  31.     STA    RTCBUF+5    ; Get month
  32.     INX    H
  33.     MOV    A,M
  34.     CALL    MOVETM
  35.     STA    RTCBUF+4    ; Get year
  36.     INX    H
  37.     MOV    A,M
  38.     CALL    MOVETM
  39.     STA    RTCBUF        ; Update hours
  40.     INX    H
  41.     MOV    A,M
  42.     CALL    MOVETM
  43.     STA    RTCBUF+1    ; Update minutes
  44.     INX    H
  45.     MOV    A,M
  46.     CALL    MOVETM
  47.     STA    RTCBUF+2    ; Update seconds
  48.     LDA    RTCBUF        ; Get BCD HH
  49.     CALL    BCDBIN        ; And convert to binary
  50.     STA    CCHOUR        ; For NUBYE
  51.     LDA    RTCBUF+1    ; Get BCD MM
  52.     CALL    BCDBIN
  53.     STA    CCMIN        ; Binary for NUBYE
  54.     RET            ; And return (for now..)
  55. ;
  56. MOVETM:    MVI    B,0        ; Clear reg B
  57. ;
  58. CONV:    CPI    10        ; Are we >= 10 ?
  59.     JC    ADDREST        ; No, add the rest
  60.     SUI    10        ; Subtract 10 from A
  61.     MOV    C,A        ; Put A in C (store it for a sec)
  62.     MOV    A,B        ; Put B in A
  63.     ADI    16        ; Add 16
  64.     MOV    B,A        ; Store it back in B
  65.     MOV    A,C        ; Get our original value back in A
  66.     JMP    CONV
  67. ;
  68. ADDREST:ADD    B        ; Add the rest to what's in A
  69.     RET            ; Return
  70. ;
  71. ; end of insert
  72. ; -------------
  73.