|
|
@ -215,6 +215,8 @@ CB_SERDEV .DB 0 ; PRIMARY SERIAL UNIT IS UNIT #0 BY FIAT |
|
|
CB_CRTDEV .DB $FF ; PRIMARY CRT UNIT, $FF UNTIL AFTER HBIOS INIT |
|
|
CB_CRTDEV .DB $FF ; PRIMARY CRT UNIT, $FF UNTIL AFTER HBIOS INIT |
|
|
CB_CONDEV .DB $FF ; CONSOLE UNIT, $FF UNTIL AFTER HBIOS INIT |
|
|
CB_CONDEV .DB $FF ; CONSOLE UNIT, $FF UNTIL AFTER HBIOS INIT |
|
|
; |
|
|
; |
|
|
|
|
|
CB_DIAGLVL .DB DIAGLVL ; ROMWBW HBIOS DIAGNOSTIC LEVEL |
|
|
|
|
|
; |
|
|
; MEMORY MANAGEMENT VARIABLES START AT $20 |
|
|
; MEMORY MANAGEMENT VARIABLES START AT $20 |
|
|
; |
|
|
; |
|
|
.FILL (HCB + $20 - $),0 |
|
|
.FILL (HCB + $20 - $),0 |
|
|
@ -2950,13 +2952,13 @@ HB_DISPCALL: |
|
|
; CHECK INCOMING UNIT INDEX IN C FOR VAILIDITY |
|
|
; CHECK INCOMING UNIT INDEX IN C FOR VAILIDITY |
|
|
LD A,C ; A := INCOMING DISK UNIT INDEX |
|
|
LD A,C ; A := INCOMING DISK UNIT INDEX |
|
|
CP (IY-1) ; COMPARE TO COUNT |
|
|
CP (IY-1) ; COMPARE TO COUNT |
|
|
JR NC,HB_FUNCERR ; HANDLE INVALID UNIT INDEX |
|
|
|
|
|
|
|
|
JR NC,HB_UNITERR ; HANDLE INVALID UNIT INDEX |
|
|
|
|
|
|
|
|
; CHECK FUNCTION INDEX FOR VALIDITY |
|
|
; CHECK FUNCTION INDEX FOR VALIDITY |
|
|
LD A,B ; A := INCOMING FUNCTION NUMBER |
|
|
LD A,B ; A := INCOMING FUNCTION NUMBER |
|
|
AND $0F ; LOW NIBBLE ONLY FOR FUNC INDEX |
|
|
AND $0F ; LOW NIBBLE ONLY FOR FUNC INDEX |
|
|
CP (IY-3) ; CHECK FN NUM AGAINST MAX |
|
|
CP (IY-3) ; CHECK FN NUM AGAINST MAX |
|
|
JR NC,HB_UNITERR ; HANDLE FN NUM OUT OF RANGE ERROR |
|
|
|
|
|
|
|
|
JR NC,HB_FUNCERR ; HANDLE FN NUM OUT OF RANGE ERROR |
|
|
|
|
|
|
|
|
; BUMP IY TO ACTUAL XXX_TBL ENTRY FOR INCOMING UNIT INDEX |
|
|
; BUMP IY TO ACTUAL XXX_TBL ENTRY FOR INCOMING UNIT INDEX |
|
|
PUSH BC ; SAVE BC |
|
|
PUSH BC ; SAVE BC |
|
|
@ -3548,6 +3550,69 @@ HB_RDSEC: |
|
|
; |
|
|
; |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
|
|
|
; SYSTEM CHECK: DUMP MACHINE STATE AND CONTINUE? |
|
|
|
|
|
; |
|
|
|
|
|
SYSCHK: |
|
|
|
|
|
; 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 |
|
|
|
|
|
POP AF ; RESTORE INCOMING AF VALUE |
|
|
|
|
|
; |
|
|
|
|
|
; DISPLAY SYSCHK MESSAGE |
|
|
|
|
|
PUSH DE ; PRESERVE DE VALUE |
|
|
|
|
|
LD DE,STR_SYSCHK ; POINT TO PREFIX STRING |
|
|
|
|
|
CALL WRITESTR ; PRINT IT |
|
|
|
|
|
POP DE ; RESTORE DE VALUE |
|
|
|
|
|
CALL XREGDMP ; DUMP REGISTERS |
|
|
|
|
|
JR CONTINUE ; CHECK W/ USER |
|
|
|
|
|
; |
|
|
|
|
|
SYSCHK1: |
|
|
|
|
|
; RETURN IF MESSAGING BYPASSED BY DIAG LEVEL |
|
|
|
|
|
POP AF |
|
|
|
|
|
RET |
|
|
|
|
|
; |
|
|
|
|
|
; PANIC: DUMP MACHINE STATE AND HALT |
|
|
|
|
|
; |
|
|
|
|
|
PANIC: |
|
|
|
|
|
PUSH DE |
|
|
|
|
|
LD DE,STR_PANIC |
|
|
|
|
|
CALL WRITESTR |
|
|
|
|
|
POP DE |
|
|
|
|
|
CALL XREGDMP ; DUMP REGISTERS |
|
|
|
|
|
JR SYSHALT ; FULL STOP |
|
|
|
|
|
; |
|
|
|
|
|
; |
|
|
|
|
|
; |
|
|
|
|
|
CONTINUE: |
|
|
|
|
|
PUSH AF |
|
|
|
|
|
CONTINUE1: |
|
|
|
|
|
PUSH DE |
|
|
|
|
|
LD DE,STR_CONTINUE |
|
|
|
|
|
CALL WRITESTR |
|
|
|
|
|
POP DE |
|
|
|
|
|
CALL CIN |
|
|
|
|
|
RES 5,A ; FORCE UPPERCASE (IMPERFECTLY) |
|
|
|
|
|
CALL COUT ; ECHO |
|
|
|
|
|
CP 'Y' |
|
|
|
|
|
JR Z,CONTINUE3 |
|
|
|
|
|
CP 'N' |
|
|
|
|
|
JR Z,SYSHALT |
|
|
|
|
|
JR CONTINUE1 |
|
|
|
|
|
CONTINUE3: |
|
|
|
|
|
CALL NEWLINE |
|
|
|
|
|
POP AF |
|
|
|
|
|
RET |
|
|
|
|
|
; |
|
|
|
|
|
; |
|
|
|
|
|
; |
|
|
|
|
|
SYSHALT: |
|
|
|
|
|
LD DE,STR_HALT |
|
|
|
|
|
CALL WRITESTR |
|
|
|
|
|
DI |
|
|
|
|
|
HALT |
|
|
|
|
|
; |
|
|
; PRINT VALUE OF HL AS THOUSANDTHS, IE. 0.000 |
|
|
; PRINT VALUE OF HL AS THOUSANDTHS, IE. 0.000 |
|
|
; |
|
|
; |
|
|
PRTD3M: |
|
|
PRTD3M: |
|
|
@ -4289,6 +4354,10 @@ STR_SWITCH .DB "*** Activating CRT Console ***$" |
|
|
STR_BADINT .DB "\r\n*** BAD INT ***\r\n$" |
|
|
STR_BADINT .DB "\r\n*** BAD INT ***\r\n$" |
|
|
STR_LOWBAT .DB "\r\n\r\n+++ LOW BATTERY +++$" |
|
|
STR_LOWBAT .DB "\r\n\r\n+++ LOW BATTERY +++$" |
|
|
; |
|
|
; |
|
|
|
|
|
STR_PANIC .TEXT "\r\n>>> PANIC: $" |
|
|
|
|
|
STR_SYSCHK .TEXT "\r\n>>> SYSCHK: $" |
|
|
|
|
|
STR_CONTINUE .TEXT "\r\nContinue (Y/N)? $" |
|
|
|
|
|
; |
|
|
#IF (DSKYENABLE) ; 'H','B','I','O',' ',' ',' ',' ' |
|
|
#IF (DSKYENABLE) ; 'H','B','I','O',' ',' ',' ',' ' |
|
|
MSG_HBVER .DB $BE,$FF,$8A,$FB,$80,$80,$80,$80 ; "HBIO " |
|
|
MSG_HBVER .DB $BE,$FF,$8A,$FB,$80,$80,$80,$80 ; "HBIO " |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|