|
|
|
@ -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: |
|
|
|
|