Browse Source

RTC Device Info Functions

pull/116/head
Wayne Warthen 6 years ago
parent
commit
0834acc020
  1. 12
      Source/HBIOS/bqrtc.asm
  2. 16
      Source/HBIOS/dsrtc.asm
  3. 14
      Source/HBIOS/hbios.asm
  4. 11
      Source/HBIOS/hbios.inc
  5. 16
      Source/HBIOS/intrtc.asm
  6. 16
      Source/HBIOS/simrtc.asm
  7. 2
      Source/ver.inc
  8. 2
      Source/ver.lib

12
Source/HBIOS/bqrtc.asm

@ -159,6 +159,10 @@ BQRTC_DISPATCH:
JP Z, BQRTC_GETALM ; Get Alarm JP Z, BQRTC_GETALM ; Get Alarm
DEC A DEC A
JP Z, BQRTC_SETALM ; Set Alarm JP Z, BQRTC_SETALM ; Set Alarm
DEC A
JP Z, BQRTC_DEVICE ; Report RTC device info
CALL PANIC
; ;
; NVRAM FUNCTIONS ARE NOT AVAILABLE ; NVRAM FUNCTIONS ARE NOT AVAILABLE
; ;
@ -328,6 +332,14 @@ BQRTC_SETALM:
; clean up and return ; clean up and return
XOR A ; Signal success XOR A ; Signal success
RET ; And return 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: BQRTC_SUSPEND:
IN0 A, (BQRTC_CONTROL) ; Suspend Clock IN0 A, (BQRTC_CONTROL) ; Suspend Clock

16
Source/HBIOS/dsrtc.asm

@ -235,12 +235,20 @@ DSRTC_DISPATCH:
JP Z,DSRTC_GETBLK ; GET NVRAM DATA BLOCK VALUES JP Z,DSRTC_GETBLK ; GET NVRAM DATA BLOCK VALUES
DEC A DEC A
JP Z,DSRTC_SETBLK ; SET NVRAM DATA BLOCK VALUES 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 CALL PANIC
; ;
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR ; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
; ;
DSRTC_GETBLK: DSRTC_GETBLK:
DSRTC_SETBLK: DSRTC_SETBLK:
DSRTC_GETALM:
DSRTC_SETALM:
CALL PANIC CALL PANIC
; ;
; RTC GET TIME ; RTC GET TIME
@ -350,6 +358,14 @@ DSRTC_SETBYT:
XOR A ; SIGNAL SUCCESS XOR A ; SIGNAL SUCCESS
RET ; DONE 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 ; CONVERT DATA IN CLOCK BUFFER TO TIME BUFFER AT HL
; ;
DSRTC_CLK2TIM: DSRTC_CLK2TIM:

14
Source/HBIOS/hbios.asm

@ -2427,6 +2427,8 @@ SYS_GET:
CP BF_SYSGET_CIOCNT CP BF_SYSGET_CIOCNT
JR Z,SYS_GETCIOCNT JR Z,SYS_GETCIOCNT
CP BF_SYSGET_DIOCNT CP BF_SYSGET_DIOCNT
JR Z,SYS_GETRTCCNT
CP BF_SYSGET_RTCCNT
JR Z,SYS_GETDIOCNT JR Z,SYS_GETDIOCNT
CP BF_SYSGET_VDACNT CP BF_SYSGET_VDACNT
JR Z,SYS_GETVDACNT JR Z,SYS_GETVDACNT
@ -2543,6 +2545,18 @@ SYS_GETDIOCNT:
XOR A ; SIGNALS SUCCESS XOR A ; SIGNALS SUCCESS
RET 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 ; GET VIDEO UNIT COUNT
; ;
SYS_GETVDACNT: SYS_GETVDACNT:

11
Source/HBIOS/hbios.inc

@ -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_RTCSETBYT .EQU BF_RTC + 3 ; SET NVRAM BYTE BY INDEX
BF_RTCGETBLK .EQU BF_RTC + 4 ; GET NVRAM DATA BLOCK BF_RTCGETBLK .EQU BF_RTC + 4 ; GET NVRAM DATA BLOCK
BF_RTCSETBLK .EQU BF_RTC + 5 ; SET 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 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_CIOCNT .EQU $00 ; GET CHAR UNIT COUNT
BF_SYSGET_DIOCNT .EQU $10 ; GET DISK 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_VDACNT .EQU $40 ; GET VDA UNIT COUNT
BF_SYSGET_SNDCNT .EQU $50 ; GET VDA UNIT COUNT BF_SYSGET_SNDCNT .EQU $50 ; GET VDA UNIT COUNT
BF_SYSGET_TIMER .EQU $D0 ; GET CURRENT TIMER VALUE BF_SYSGET_TIMER .EQU $D0 ; GET CURRENT TIMER VALUE
@ -140,6 +144,13 @@ DIODEV_PRPSD .EQU $70
DIODEV_PPPSD .EQU $80 DIODEV_PPPSD .EQU $80
DIODEV_HDSK .EQU $90 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 ; VIDEO DEVICE IDS
; ;
VDADEV_VDU .EQU $00 ; ECB VDU - MOTOROLA 6545 VDADEV_VDU .EQU $00 ; ECB VDU - MOTOROLA 6545

16
Source/HBIOS/intrtc.asm

@ -50,6 +50,12 @@ INTRTC_DISPATCH:
JP Z,INTRTC_GETBLK ; GET NVRAM DATA BLOCK VALUES JP Z,INTRTC_GETBLK ; GET NVRAM DATA BLOCK VALUES
DEC A DEC A
JP Z,INTRTC_SETBLK ; SET NVRAM DATA BLOCK VALUES 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 CALL PANIC
; ;
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR ; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
@ -58,6 +64,8 @@ INTRTC_GETBYT:
INTRTC_SETBYT: INTRTC_SETBYT:
INTRTC_GETBLK: INTRTC_GETBLK:
INTRTC_SETBLK: INTRTC_SETBLK:
INTRTC_GETALM:
INTRTC_SETALM:
CALL PANIC CALL PANIC
; ;
; RTC GET TIME ; RTC GET TIME
@ -119,6 +127,14 @@ INTRTC_SETTIM:
XOR A ; SIGNAL SUCCESS XOR A ; SIGNAL SUCCESS
RET ; AND RETURN 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 ; HANDLER FOR TIMER SECONDS INTERRUPT
; ;
INTRTC_INT: INTRTC_INT:

16
Source/HBIOS/simrtc.asm

@ -49,6 +49,12 @@ SIMRTC_DISPATCH:
JP Z,SIMRTC_GETBLK ; GET NVRAM DATA BLOCK VALUES JP Z,SIMRTC_GETBLK ; GET NVRAM DATA BLOCK VALUES
DEC A DEC A
JP Z,SIMRTC_SETBLK ; SET NVRAM DATA BLOCK VALUES 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 CALL PANIC
; ;
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR ; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
@ -57,6 +63,8 @@ SIMRTC_GETBYT:
SIMRTC_SETBYT: SIMRTC_SETBYT:
SIMRTC_GETBLK: SIMRTC_GETBLK:
SIMRTC_SETBLK: SIMRTC_SETBLK:
SIMRTC_GETALM:
SIMRTC_SETALM:
CALL PANIC CALL PANIC
; ;
; RTC GET TIME ; RTC GET TIME
@ -121,6 +129,14 @@ SIMRTC_SETTIM:
XOR A ; SIGNAL SUCCESS XOR A ; SIGNAL SUCCESS
RET ; AND RETURN 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 ; WORKING VARIABLES
; ;
SIMRTC_BUF: ; ALL IN BCD!!! SIMRTC_BUF: ; ALL IN BCD!!!

2
Source/ver.inc

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

2
Source/ver.lib

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

Loading…
Cancel
Save