home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
bye3
/
b3c-bin.ins
< prev
next >
Wrap
Text File
|
1994-07-13
|
3KB
|
87 lines
;
; BYE3 CLOCK INSERT
; for
; Zilog Z80A CTC Binary Clock
; by Don Brown
;
; This routine is for a clock that is maintained in low memory, CP/M page 0.
; Channel 3 of a Zilog Z80A CTC (60 hertz) clock is preprogrammed to interrupt
; every 1/60th of a second so that the BIOS can maintain the current date &
; time in locations 40h - 46h, represented in Binary.
;
; This is in insert (not an overly) to implement the BYE3 'RTC' and must be
; inserted into BYE3 at the appropriately marked location in that code.
;
;=============================================================================
;
; 07/27/85 Initial Release. Compatible with BYE337 - Don Brown
;
;=============================================================================
;
; The Real-Time clock buffer 'RTCBUF', is organized: 'HH:MM:SS YYYY/MM/DD'.
;
; RTCBUF: DB 99h,99h,99h ; HH:MM:SS (BCD 24 Hr. Time)
; DB 19h,84h,01h,31h ; YYYY/MM/DD (BCD ISO Date) 1984/01/31
;
; BCD 24 Hr. Time: HH = 0-23
; MM = 0-59
; SS = 0-59
;
; The BIOS stores the current Date and time, in Binary, as follows:
;
; 40h = Fractions of a Second (1/62nds)
; 41h = Seconds (0-59)
; 42h = Minutes (0-59)
; 43h = Hours (0-23)
; 44h = Months (1-12)
; 45h = Days (1-31)
; 46h = Years (1-99)
;
; This insert requires the 'BINBCD:', (BIN2BCD EQU YES), routine in BYE3 to
; convert the binary date and time to BCD date and time.
;
;=============================================================================
;
; CONFIGURATION SECTION
; ---------------------
;
IF RTC
CLKBASE EQU 40h ; Base address of time & date in page 0
CENTURY EQU 19h ; Century (BCD) our clock doesn't have it
;
;=============================================================================
;
TIME: LDA CLKBASE+3 ; Read the Clock - Binary Hours
STA CCHOUR ; Store Binary Hours
CALL BINBCD ; Convert Hours from Binary to BCD
STA RTCBUF+0 ; Store BCD Hours
;
LDA CLKBASE+2 ; Read the Clock - Binary Minutes
STA CCMIN ; Store Binary Minutes
CALL BINBCD ; Convert Minutes from Binary to BCD
STA RTCBUF+1 ; Store BCD Minutes
;
LDA CLKBASE+1 ; Read the Clock - Binary Seconds
CALL BINBCD ; Convert Seconds from Binary to BCD
STA RTCBUF+2 ; Store BCD Seconds
;
LDA CLKBASE+4 ; Read the Clock - Binary Months
CALL BINBCD ; Convert Months from Binary to BCD
STA RTCBUF+5 ; Store BCD Months
;
LDA CLKBASE+5 ; Read the Clock - Binary Days
CALL BINBCD ; Convert Days from Binary to BCD
STA RTCBUF+6 ; Store the BCD Days
;
LDA CLKBASE+6 ; Read the Clock - Binary Years
CALL BINBCD ; Convert Years from Binary to BCD
STA RTCBUF+4 ; Store the BCD Years
;
LDA CENTURY ; Get the Century Configured in this insert
STA RTCBUF+3 ; Store the BCD Century
;
RET ; Return to Bye
ENDIF ; RTC
;
;=============================================================================