mirror of https://github.com/wwarthen/RomWBW.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.1 KiB
81 lines
2.1 KiB
VERS EQU 03
|
|
.Z80
|
|
|
|
COMMON /_CLKID/
|
|
|
|
DESCST: DEFW 0000 ; Add label here if a static year byte
|
|
; is used by your clock driver. The
|
|
; label should point to the year byte
|
|
; 123456789012345678901234
|
|
CLKNAM: DEFB 'Altair Z80 SIMH Clock ' ; Exactly 24 chars in name
|
|
DEFB VERS/10+'0','.',VERS MOD 10 +'0',0
|
|
|
|
DESCR: DEFB 'This is the Altair Z80 SIMH clock',0
|
|
|
|
|
|
COMMON /_PARM_/
|
|
|
|
PARBAS: DEFW 0 ; # of parameters (Set to 00 if none)
|
|
DEFW 0 ; Pointer to STRS (Set to 00 if none)
|
|
|
|
CSEG
|
|
|
|
;-----------------------------------------------------------
|
|
; Z S D O S C L O C K H E A D E R
|
|
;-----------------------------------------------------------
|
|
; Enter: HL points to a 6-byte buffer to Get/Set time
|
|
; Exit : A=1 on Success, A=FFH if error
|
|
; HL points to last char in buffer
|
|
; E contains original seconds (HL+5)
|
|
|
|
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
; R e a d T h e C l o c k
|
|
;- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
|
|
SIMHPORT EQU 0FEH
|
|
READCLOCK EQU 7
|
|
WRITECLOCK EQU 8
|
|
PARBLOCKSIZE EQU 6
|
|
|
|
PRGBAS: JP GETTIM ; Jump to Read Clock
|
|
JP WRCLK ; Jump to Set Clock
|
|
GETTIM: LD A,READCLOCK
|
|
OUT (SIMHPORT),A
|
|
LD BC,256*(PARBLOCKSIZE-1)+SIMHPORT ; B := 5, C := 0FEH
|
|
INIR
|
|
; bug fixed by Howard Goldstein (via Lee Bradley), 26-Jul-2007
|
|
LD E,(HL) ; Save original seconds in E
|
|
INI ; READ SECONDS
|
|
DEC HL
|
|
LD A,1 ; Set OK status return
|
|
RET
|
|
|
|
WRCLK: LD A,WRITECLOCK
|
|
OUT (SIMHPORT),A
|
|
LD A,L
|
|
OUT (SIMHPORT),A
|
|
LD A,H
|
|
OUT (SIMHPORT),A
|
|
LD A,1
|
|
RET
|
|
|
|
COMMON /_POST_/
|
|
RET ; This RETURN MUST be present even if no other
|
|
; code is included in this section
|
|
|
|
COMMON /_PRE_/
|
|
|
|
;---------------------------------------------------------------
|
|
; Read clock and wait for seconds to roll - watchdog protected
|
|
; Enter with: DE pointing to relocated clock read routine
|
|
; HL pointing to base of high module
|
|
|
|
TSTRD: JR TSTRD0 ; Jump around address store
|
|
|
|
DEFW TSTRD ; Org location of the code
|
|
TSTRD0: SCF
|
|
LD A,1
|
|
RET
|
|
|
|
END
|
|
|