RTC Device Info Functions

This commit is contained in:
Wayne Warthen
2020-04-29 19:30:24 -07:00
parent e50f5f0935
commit 0834acc020
8 changed files with 87 additions and 2 deletions

View File

@@ -159,6 +159,10 @@ BQRTC_DISPATCH:
JP Z, BQRTC_GETALM ; Get Alarm
DEC A
JP Z, BQRTC_SETALM ; Set Alarm
DEC A
JP Z, BQRTC_DEVICE ; Report RTC device info
CALL PANIC
;
; NVRAM FUNCTIONS ARE NOT AVAILABLE
;
@@ -328,6 +332,14 @@ BQRTC_SETALM:
; clean up and return
XOR A ; Signal success
RET ; And return
;
; REPORT RTC DEVICE INFO
;
BQRTC_DEVICE:
LD D,RTCDEV_BQ ; D := DEVICE TYPE
LD E,0 ; E := PHYSICAL DEVICE NUMBER
XOR A ; SIGNAL SUCCESS
RET
BQRTC_SUSPEND:
IN0 A, (BQRTC_CONTROL) ; Suspend Clock

View File

@@ -235,12 +235,20 @@ DSRTC_DISPATCH:
JP Z,DSRTC_GETBLK ; GET NVRAM DATA BLOCK VALUES
DEC A
JP Z,DSRTC_SETBLK ; SET NVRAM DATA BLOCK VALUES
DEC A
JP Z,DSRTC_GETALM ; GET ALARM
DEC A
JP Z,DSRTC_SETALM ; SET ALARM
DEC A
JP Z,DSRTC_DEVICE ; REPORT RTC DEVICE INFO
CALL PANIC
;
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
;
DSRTC_GETBLK:
DSRTC_SETBLK:
DSRTC_GETALM:
DSRTC_SETALM:
CALL PANIC
;
; RTC GET TIME
@@ -350,6 +358,14 @@ DSRTC_SETBYT:
XOR A ; SIGNAL SUCCESS
RET ; DONE
;
; REPORT RTC DEVICE INFO
;
DSRTC_DEVICE:
LD D,RTCDEV_DS ; D := DEVICE TYPE
LD E,0 ; E := PHYSICAL DEVICE NUMBER
XOR A ; SIGNAL SUCCESS
RET
;
; CONVERT DATA IN CLOCK BUFFER TO TIME BUFFER AT HL
;
DSRTC_CLK2TIM:

View File

@@ -2427,6 +2427,8 @@ SYS_GET:
CP BF_SYSGET_CIOCNT
JR Z,SYS_GETCIOCNT
CP BF_SYSGET_DIOCNT
JR Z,SYS_GETRTCCNT
CP BF_SYSGET_RTCCNT
JR Z,SYS_GETDIOCNT
CP BF_SYSGET_VDACNT
JR Z,SYS_GETVDACNT
@@ -2543,6 +2545,18 @@ SYS_GETDIOCNT:
XOR A ; SIGNALS SUCCESS
RET
;
; GET RTC UNIT COUNT
;
SYS_GETRTCCNT:
LD E,0 ; ASSUME 0 RTC DEVICES
LD A,(RTC_DISPACT) ; IS RTC ACTIVE?
OR A ; SET FLAGS
JR Z,SYS_GETRTCCNT1 ; IF NONE, DONE
INC E ; SET ONE DEVICE
SYS_GETRTCCNT1:
XOR A ; SIGNALS SUCCESS
RET
;
; GET VIDEO UNIT COUNT
;
SYS_GETVDACNT:

View File

@@ -32,6 +32,9 @@ BF_RTCGETBYT .EQU BF_RTC + 2 ; GET NVRAM BYTE BY INDEX
BF_RTCSETBYT .EQU BF_RTC + 3 ; SET NVRAM BYTE BY INDEX
BF_RTCGETBLK .EQU BF_RTC + 4 ; GET NVRAM DATA BLOCK
BF_RTCSETBLK .EQU BF_RTC + 5 ; SET NVRAM DATA BLOCK
BF_RTCGETALM .EQU BF_RTC + 6 ; GET ALARM
BF_RTCSETALM .EQU BF_RTC + 7 ; SET ALARM
BF_RTCDEVICE .EQU BF_RTC + 8 ; RTC DEVICE INFO REPORT
;
BF_EMU .EQU $30 ; DEPRECATED
;
@@ -89,6 +92,7 @@ BF_SYSINT .EQU BF_SYS + 12 ; MANAGE INTERRUPT VECTORS
;
BF_SYSGET_CIOCNT .EQU $00 ; GET CHAR UNIT COUNT
BF_SYSGET_DIOCNT .EQU $10 ; GET DISK UNIT COUNT
BF_SYSGET_RTCCNT .EQU $20 ; GET RTC UNIT COUNT
BF_SYSGET_VDACNT .EQU $40 ; GET VDA UNIT COUNT
BF_SYSGET_SNDCNT .EQU $50 ; GET VDA UNIT COUNT
BF_SYSGET_TIMER .EQU $D0 ; GET CURRENT TIMER VALUE
@@ -140,6 +144,13 @@ DIODEV_PRPSD .EQU $70
DIODEV_PPPSD .EQU $80
DIODEV_HDSK .EQU $90
;
; RTC DEVICE IDS
;
RTCDEV_DS .EQU $00 ; DS1322
RTCDEV_BQ .EQU $10 ; BQ4845P
RTCDEV_SIMH .EQU $30 ; SIMH
RTCDEV_INT .EQU $40 ; PERIODIC INT TIMER
;
; VIDEO DEVICE IDS
;
VDADEV_VDU .EQU $00 ; ECB VDU - MOTOROLA 6545

View File

@@ -50,6 +50,12 @@ INTRTC_DISPATCH:
JP Z,INTRTC_GETBLK ; GET NVRAM DATA BLOCK VALUES
DEC A
JP Z,INTRTC_SETBLK ; SET NVRAM DATA BLOCK VALUES
DEC A
JP Z,INTRTC_GETALM ; GET ALARM
DEC A
JP Z,INTRTC_SETALM ; SET ALARM
DEC A
JP Z,INTRTC_DEVICE ; REPORT RTC DEVICE INFO
CALL PANIC
;
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
@@ -58,6 +64,8 @@ INTRTC_GETBYT:
INTRTC_SETBYT:
INTRTC_GETBLK:
INTRTC_SETBLK:
INTRTC_GETALM:
INTRTC_SETALM:
CALL PANIC
;
; RTC GET TIME
@@ -119,6 +127,14 @@ INTRTC_SETTIM:
XOR A ; SIGNAL SUCCESS
RET ; AND RETURN
;
; REPORT RTC DEVICE INFO
;
INTRTC_DEVICE:
LD D,RTCDEV_INT ; D := DEVICE TYPE
LD E,0 ; E := PHYSICAL DEVICE NUMBER
XOR A ; SIGNAL SUCCESS
RET
;
; HANDLER FOR TIMER SECONDS INTERRUPT
;
INTRTC_INT:

View File

@@ -49,6 +49,12 @@ SIMRTC_DISPATCH:
JP Z,SIMRTC_GETBLK ; GET NVRAM DATA BLOCK VALUES
DEC A
JP Z,SIMRTC_SETBLK ; SET NVRAM DATA BLOCK VALUES
DEC A
JP Z,SIMRTC_GETALM ; GET ALARM
DEC A
JP Z,SIMRTC_SETALM ; SET ALARM
DEC A
JP Z,SIMRTC_DEVICE ; REPORT RTC DEVICE INFO
CALL PANIC
;
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
@@ -57,6 +63,8 @@ SIMRTC_GETBYT:
SIMRTC_SETBYT:
SIMRTC_GETBLK:
SIMRTC_SETBLK:
SIMRTC_GETALM:
SIMRTC_SETALM:
CALL PANIC
;
; RTC GET TIME
@@ -121,6 +129,14 @@ SIMRTC_SETTIM:
XOR A ; SIGNAL SUCCESS
RET ; AND RETURN
;
; REPORT RTC DEVICE INFO
;
SIMRTC_DEVICE:
LD D,RTCDEV_SIMH ; D := DEVICE TYPE
LD E,0 ; E := PHYSICAL DEVICE NUMBER
XOR A ; SIGNAL SUCCESS
RET
;
; WORKING VARIABLES
;
SIMRTC_BUF: ; ALL IN BCD!!!

View File

@@ -2,4 +2,4 @@
#DEFINE RMN 1
#DEFINE RUP 0
#DEFINE RTP 0
#DEFINE BIOSVER "3.1-pre.13"
#DEFINE BIOSVER "3.1-pre.14"

View File

@@ -3,5 +3,5 @@ rmn equ 1
rup equ 0
rtp equ 0
biosver macro
db "3.1-pre.13"
db "3.1-pre.14"
endm