home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CP/M
/
CPM_CDROM.iso
/
cpm
/
bye5
/
b5c-tv1.ins
< prev
next >
Wrap
Text File
|
1994-07-13
|
2KB
|
72 lines
;
;**********************************************************************
;
; B5C-TV1.INS A 'TIME' insert for BYE5
; 03/24/86 Note: This is an insert--not an overlay
; Ian Cottrell
; ICBBS, 613-990-9774
; Adapted from:
; MBC-BBII.ASM -- Version 1 -- 10/31/84 -- by Mark A. Matthews
;
;
; TIME routine for BYE5 running on Televideo 803H
;
; This overlay is designed to work on a TeleVideo 803H running BYE5.
; (Find your own clock set program...I wrote one called TIMSET
; which you might find on some BBS's)
;
; 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)
;
;
; BYE5 saves and restores registers before/after calling TIME.
;
TVCLK EQU 0F6E6H ; Address of TeleVideo 803H's own clock
; Registers (in SS:MM:HH/DD-MM-YY format)
; Backwards from what we want.
TIME: LXI H, TVCLK+1 ; HL points to TV 803H array - skip 1/100 secs
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 BYE5
LDA RTCBUF+1 ; Pick up BCD MM
CALL BCDBIN ; Convert to binary
STA CCMIN ; For BYE
RET ; And return (for now..)
;.....
;
; end
;-----------------------------------------------------------------------