home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
bye5
/
b5c-kpav.izs
/
B5C-KPAV.INS
Wrap
Text File
|
1988-03-12
|
2KB
|
67 lines
;*********************************************************************
;
; B5C-KPAV.INS - KAYPRO WITH ADVENT REAL-TIME CLOCK
;
; 5/09/86 - First Version (1.0)
; Robert J. Dix, PENKUG RBBS, (804) 838-1645
;
;*********************************************************************
;
CLKPORT EQU 090H ; PORT FOR ADVENT CLOCK ON KAYPROS
TCENTURY EQU 019H ; Current century . . . . to changed
; on January 1, 2000
THOUR EQU 04H ; Real Time Clock Hour Register
TMINUTE EQU 03H ; Real Time Clock Minute Register
TSECOND EQU 02H ; Real Time Clock Second Register
TMONTH EQU 07H ; Real Time Clock Month Register
TDAY EQU 06H ; Real Time Clock Day Register
TYEAR EQU 09H ; Real Time Clock Year Register
;
;---------------------------------------------------------------------
;
TIME:
;
; Read Seconds First to Guard Against Rollover
;
MVI A,TSECOND ; Put RTC register # in A
IN CLKPORT ; Get Seconds count
MOV E,A ; and store it in E for Rollover Test
; later on
MVI A,TYEAR ; Put RTC register # in A
IN CLKPORT ; Get Year
STA RTCBUF+4 ; Store in RTCBuf BCD buffer
MVI A,TCENTURY ; Move Century to RTC BCD buffer
STA RTCBUF+3
MVI A,TMONTH ; Put RTC register # in A
IN CLKPORT ; Get Month
STA RTCBUF+5 ; Store in RTCBuf BCD buffer
MVI A,TDAY ;
IN CLKPORT ; Get Day
STA RTCBUF+6 ;
MVI A,THOUR ;
IN CLKPORT ; Get Hour
STA RTCBUF+0 ;
MVI A,TMINUTE ;
IN CLKPORT ; Get Minute
STA RTCBUF+1 ;
MVI A,TSECOND ;
IN CLKPORT ; Get Second
STA RTCBUF+2 ;
;
; Check for rollover first before doing the binary conversion and exit
;
CMP E ; Compare current second value with
; what was stored in register E
JNZ TIME ; If not the same value, then retry
; otherwise....proceed
LDA RTCBUF ; Get Hour Value
CALL BCDBIN ; Convert it to binary format
STA CCHOUR ; Store it for BYE5
LDA RTCBUF+1 ;
CALL BCDBIN ; Do the same for Minute
STA CCMIN ;
;
; All done, return to caller . . . . . until next time
;
RET