home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
bye3
/
b3c-bbii.ins
< prev
next >
Wrap
Text File
|
1994-07-13
|
2KB
|
71 lines
;
; B3C-BBII.INS A TIME insert for BYE335 and up
; 07/15/85 Note: This is an insert--not an overlay
;
; Adapted from:
; MBC-BBII.ASM -- Version 1.0 -- 10/31/84 -- by Mark A. Matthews
;
; TIME routine for BYE3 running on BigBoard_II
;
; This overlay is designed to work on a BIGBOARD_II running BYE3.
; (Find your own clock set program...I use DDT myself and stuff
; the current time/date in by hand...works pretty good)
;
; 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.)
;
;**********************************************************************
;
; Real-Time clock buffer - is organized as HH:MM:SS YYYY/MM/DD
;
;RTCBUF:
; DB 99H,99H,99H ;HH:MM:SS (BCD 24HR TIME) 00:00:00-23:59:59
; DB 19H,84H,01H,31H ;YYYY/MM/DD (BCD ISO DATE)
;
;
; BYE3 saves and restores registers before/after calling TIME.
;
BB2CLK EQU 0FF7DH ; Address of BigBoard_II's own clock
; Registers (in SS:MM:HH/DD-MM-YY format)
; Backwards from what we want.
IF RTC
TIME: LXI H, BB2CLK ; HL points to BB_II array
LDA RTCBUF+2 ; Get old secs
XRA M ; Compared to current secs
ANI 0FH
JZ CLKEXIT ; If no change, skip update
MOV A, M ; Start with seconds
STA RTCBUF+2 ; And copy to RTCBUF (secs)
INX H ; Now minutes
MOV A, M
STA RTCBUF+1 ; Copy into RTCBUF (mins)
INX H ; Now hours
MOV A, M
STA RTCBUF+0 ; Copy into RTCBUF (hours)
INX H ; Days
MOV A, M
STA RTCBUF+6 ; Copy into RTCBUF (days)
INX H ; Now do months
MOV A, M
STA RTCBUF+5 ; Copy into RTCBUF (months)
INX H ; And finally, years
MOV A, M
STA RTCBUF+4 ; Copy it into RTCBUF (years)
;
CLKEXIT:
LDA RTCBUF ; Pick up BCD HH
CALL BCDBIN ; Convert to binary
STA CCHOUR ; For BYE3
LDA RTCBUF+1 ; Pick up BCD MM
CALL BCDBIN ; Convert to binary
STA CCMIN ; For BYE
RET ; And return (for now..)
ENDIF ;RTC
;
;**********************************************************************
;