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 >
Wrap
Text File
|
2000-06-30
|
2KB
|
73 lines
; NUC-XERO.INS - Xerox 820-II, 16/8 - 04/21/86
;
; Note: This is an insert, not an overlay.
;
; ========
; 04/21/86 Modified for NUBYE
; 07/15/85 Adapted from MBC-XERO.ASM (I. Salzman) - Wayne Masters
; ========
;
; This routine will not work on the Xerox 820.
;
; When called this routine will check the RTCBUF. If a '99H' is in the first
; byte, the clock is initialized. Next the seconds are checked and if
; changed since last update of RTC buffer, the clock is stopped, data copied
; to RTCBUF and the clock is restarted (if no change in seconds, the routine
; returns immediately).
;
; clock initialization
;
XERCLK EQU 0F039H ; Location of Xerox 820-II time vector
; Monitor routine. When called, it returns
; The addr of the 820's clock in high mem.
TIME: LXI H,0 ; Clear HL
CALL XERCLK ; Get pointer to TOD in HL
MOV A,M
CALL MOVETM
STA RTCBUF+6 ; Get day
INX H
MOV A,M
CALL MOVETM
STA RTCBUF+5 ; Get month
INX H
MOV A,M
CALL MOVETM
STA RTCBUF+4 ; Get year
INX H
MOV A,M
CALL MOVETM
STA RTCBUF ; Update hours
INX H
MOV A,M
CALL MOVETM
STA RTCBUF+1 ; Update minutes
INX H
MOV A,M
CALL MOVETM
STA RTCBUF+2 ; Update seconds
LDA RTCBUF ; Get BCD HH
CALL BCDBIN ; And convert to binary
STA CCHOUR ; For NUBYE
LDA RTCBUF+1 ; Get BCD MM
CALL BCDBIN
STA CCMIN ; Binary for NUBYE
RET ; And return (for now..)
;
MOVETM: MVI B,0 ; Clear reg B
;
CONV: CPI 10 ; Are we >= 10 ?
JC ADDREST ; No, add the rest
SUI 10 ; Subtract 10 from A
MOV C,A ; Put A in C (store it for a sec)
MOV A,B ; Put B in A
ADI 16 ; Add 16
MOV B,A ; Store it back in B
MOV A,C ; Get our original value back in A
JMP CONV
;
ADDREST:ADD B ; Add the rest to what's in A
RET ; Return
;
; end of insert
; -------------