Browse Source

SYSCHK changes

Display the error code of syschk enabled
pull/306/head
b1ackmai1er 3 years ago
parent
commit
e25107309b
  1. 8
      Source/HBIOS/dsrtc.asm
  2. 72
      Source/HBIOS/hbios.asm
  3. 8
      Source/HBIOS/md.asm
  4. 4
      Source/HBIOS/ppide.asm
  5. 4
      Source/HBIOS/sio.asm

8
Source/HBIOS/dsrtc.asm

@ -247,9 +247,7 @@ DSRTC_DISPATCH:
JP Z,DSRTC_SETALM ; SET ALARM
DEC A
JP Z,DSRTC_DEVICE ; REPORT RTC DEVICE INFO
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
SYSCHKERR(ERR_NOFUNC)
RET
;
; NVRAM FUNCTIONS ARE NOT AVAILABLE IN SIMULATOR
@ -258,9 +256,7 @@ DSRTC_GETBLK:
DSRTC_SETBLK:
DSRTC_GETALM:
DSRTC_SETALM:
CALL SYSCHK
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL)
RET
;
; RTC GET TIME

72
Source/HBIOS/hbios.asm

@ -132,6 +132,11 @@ MODCNT .SET MODCNT + 1
#DEFINE LED(N) \;
#ENDIF
;
#DEFINE SYSCHKERR(HB_ERR) \
#DEFCONT \ CALL SYSCHKA
#DEFCONT \ LD A,HB_ERR
#DEFCONT \ OR A
;
;
;
#IF (INTMODE == 0)
@ -3128,7 +3133,7 @@ HB_DISPATCH:
PUSH AF
LD A,(HB_STACK - HB_STKSIZ + $08)
CP $FF
CALL SYSCHK
SYSCHKERR(ERR_INTERNAL)
LD A,$FF
LD (HB_STACK - HB_STKSIZ + $08),A
POP AF
@ -3156,9 +3161,7 @@ HB_DISPATCH1:
; FALL THRU
;
HB_DISPERR:
CALL SYSCHK
LD A,ERR_NOFUNC
OR A
SYSCHKERR(ERR_NOFUNC)
RET
;
;==================================================================================================
@ -3620,9 +3623,7 @@ RTC_DISPATCH:
RET
;
RTC_DISPERR:
CALL SYSCHK
LD A,ERR_NOHW
OR A
SYSCHKERR(ERR_NOHW)
RET
;
; SET RTC DISPATCH ADDRESS, USED BY RTC DRIVERS DURING INIT
@ -3820,9 +3821,7 @@ SYS_RESET:
JR Z,SYS_RESCOLD
CP BF_SYSRES_USER
JR Z,SYS_RESUSER
CALL SYSCHK
LD A,ERR_NOFUNC
OR A ; SIGNAL ERROR
SYSCHKERR(ERR_NOFUNC)
RET
;
; SOFT RESET HBIOS, RELEASE HEAP MEMORY NOT USED BY HBIOS
@ -4026,9 +4025,7 @@ SYS_ALLOC:
; ALL OTHER REGISTERS PRESERVED
;
SYS_FREE:
CALL SYSCHK ; NOT YET IMPLEMENTED
LD A,ERR_NOTIMPL ; NOT YET INMPLEMENTED
OR A ; SET FLAGS
SYSCHKERR(ERR_NOTIMPL) ; NOT YET INMPLEMENTED
RET
;
; GET SYSTEM INFORMATION
@ -4068,9 +4065,7 @@ SYS_GET:
JP Z,SYS_GETBNKINFO
CP BF_SYSGET_CPUSPD
JP Z,SYS_GETCPUSPD
CALL SYSCHK
LD A,ERR_NOFUNC ; SIGNAL ERROR
OR A ; SET FLAGS
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR
RET
;
; GET TIMER
@ -4157,7 +4152,7 @@ SYS_GETBNKINFO:
XOR A
RET
;
; GET SYSTEM CPU SPEED ORMANCE ATTRIBUTES
; GET SYSTEM CPU SPEED PERFORMANCE ATTRIBUTES
; RETURNS:
; L: CLOCK MULT (0:HALF, 1:FULL, 2: DOUBLE)
; D: MEMORY WAIT STATES
@ -4362,9 +4357,7 @@ SYS_SET:
JR Z,SYS_SETBOOTINFO
CP BF_SYSSET_CPUSPD
JR Z,SYS_SETCPUSPD
CALL SYSCHK
LD A,ERR_NOFUNC ; SIGNAL ERROR
OR A ; SET FLAGS
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR
RET
;
; SET BOOT INFORMATION
@ -4725,9 +4718,7 @@ SYS_INT:
JR Z,SYS_INTGET
CP BF_SYSINT_SET
JR Z,SYS_INTSET
CALL SYSCHK
LD A,ERR_NOFUNC ; SIGNAL ERROR
OR A ; SET FLAGS
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR
RET
;
; GET INTERRUPT SYSTEM INFORMATION
@ -4753,9 +4744,7 @@ SYS_INTINFO:
;
SYS_INTVECADR:
#IF (INTMODE == 0)
CALL SYSCHK ; INVALID FOR INT MODE 0
LD A,ERR_BADCFG ; SIGNAL ERROR
OR A ; SET FLAGS
SYSCHKERR(ERR_BADCFG) ; SIGNAL ERROR. INVALID FOR INT MODE 0
RET
#ENDIF
#IF (INTMODE == 1)
@ -4769,9 +4758,7 @@ SYS_INTVECADR:
LD A,E ; INCOMING INDEX POSITION TO A
CP C ; COMPARE TO VECTOR COUNT
JR C,SYS_INTGET1 ; CONTINUE IF POSITION IN RANGE
CALL SYSCHK ; ELSE ERROR
LD A,ERR_RANGE ; SIGNAL ERROR
OR A ; SET FLAGS
SYSCHKERR(ERR_RANGE) ; ELSE ERROR
RET
SYS_INTGET1:
OR A ; CLEAR CARRY
@ -5252,15 +5239,11 @@ HB_DISPCALC:
RET ; JUMP TO DRIVER FUNC ADR ON TOS
;
HB_FUNCERR:
CALL SYSCHK
LD A,ERR_NOFUNC ; SIGNAL ERROR
OR A ; SET FLAGS
SYSCHKERR(ERR_NOFUNC) ; SIGNAL ERROR
RET
;
HB_UNITERR:
CALL SYSCHK
LD A,ERR_NOUNIT ; SIGNAL ERROR
OR A ; SET FLAGS
SYSCHKERR(ERR_NOUNIT) ; SIGNAL ERROR
RET
;
; ADD AN ENTRY TO THE UNIT TABLE AT ADDRESS IN HL
@ -5347,9 +5330,7 @@ HB_ALLOC:
HB_ALLOC1:
; ERROR RETURN
POP DE ; RESTORE INCOMING DE
CALL SYSCHK
LD A,ERR_NOMEM ; SIGNAL ERROR
OR A ; SET FLAGS
SYSCHKERR(ERR_NOMEM) ; SIGNAL ERROR
RET
;
HB_TMPSZ .DW 0
@ -6337,12 +6318,12 @@ HB_RDSEC:
;
; SYSTEM CHECK: DUMP MACHINE STATE AND CONTINUE?
;
SYSCHK:
SYSCHKA:
; CHECK DIAG LEVEL TO SEE IF WE SHOULD DISPLAY
PUSH AF ; PRESERVE INCOMING AF VALUE
LD A,(CB_DIAGLVL) ; GET DIAGNOSTIC LEVEL
CP DL_ERROR ; >= ERROR LEVEL
JR C,SYSCHK1 ; IF NOT, GO HOME
; JR C,SYSCHK1 ; IF NOT, GO HOME
POP AF ; RESTORE INCOMING AF VALUE
;
; DISPLAY SYSCHK MESSAGE
@ -6351,6 +6332,17 @@ SYSCHK:
CALL WRITESTR ; PRINT IT
POP DE ; RESTORE DE VALUE
CALL XREGDMP ; DUMP REGISTERS
; DISPLAY ERROR CODE. IT IS AT RETURN ADDRESS+1 .. LD A,XX
EX (SP),HL ; GET RETURN ADDRESS
INC HL ; POINT TO THE ERROR CODE
PUSH AF
LD A,(HL) ; DISPLAY
CALL PRTHEXBYTE
POP AF
DEC HL ; RESTORE RETURN ADDRESS
EX (SP),HL
;
JR CONTINUE ; CHECK W/ USER
;
SYSCHK1:

8
Source/HBIOS/md.asm

@ -157,9 +157,7 @@ MD_FNTBL:
MD_VERIFY:
MD_FORMAT:
MD_DEFMED:
CALL SYSCHK ; INVALID SUB-FUNCTION
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; INVALID SUB-FUNCTION
RET
;
;
@ -182,9 +180,7 @@ MD_CAP: ; ASSUMES THAT UNIT 0 IS RAM, UNIT 1 IS ROM
JR Z,MD_CAP0 ; UNIT 0
DEC A ; TRY UNIT 1
JR Z,MD_CAP1 ; UNIT 1
CALL SYSCHK ; INVALID UNIT
LD A,ERR_NOUNIT
OR A
SYSCHKERR(ERR_NOUNIT) ; INVALID UNIT
RET
MD_CAP0:
LD A,(HCB + HCB_RAMBANKS) ; POINT TO RAM BANK COUNT

4
Source/HBIOS/ppide.asm

@ -470,9 +470,7 @@ PPIDE_FNTBL:
PPIDE_VERIFY:
PPIDE_FORMAT:
PPIDE_DEFMED:
CALL SYSCHK ; NOT IMPLEMENTED
LD A,ERR_NOTIMPL
OR A
SYSCHKERR(ERR_NOTIMPL) ; NOT IMPLEMENTED
RET
;
;

4
Source/HBIOS/sio.asm

@ -843,9 +843,7 @@ SIO_INITGO:
LD L,SIO1_VEC ; ASSUME CHIP 1
DEC A ; CHIP 1?
JR Z,SIO_INITIVT ; IF SO, DO IT
CALL SYSCHK ; IMPOSSIBLE SITUATION
LD A,ERR_NOUNIT
OR A
SYSCHKERR(ERR_NOUNIT) ; IMPOSSIBLE SITUATION
RET
SIO_INITIVT:
LD A,L ; VALUE TO A

Loading…
Cancel
Save