@ -2274,6 +2274,29 @@ HB_BOOTDLY:
LD A , BOOTCON ; GET REQUESTED CONSOLE DEV
LD A , BOOTCON ; GET REQUESTED CONSOLE DEV
LD ( CB_CONDEV ), A ; SAVE IT
LD ( CB_CONDEV ), A ; SAVE IT
HB_CONRDY:
HB_CONRDY:
;
; MOST SERIAL PORTS ARE CONFIGURED WITH HARDWARE FLOW CONTROL ENABLED.
; IF THERE IS A PROBLEM WITH THE RTS SIGNAL, THEN OUTPUT TO THE CONSOLE
; WILL BE STALLED WHICH CAN LEAD A USER TO THINK THE SYSTEM IS TOTALLY
; DEAD WHEN, IN FACT, IT IS JUST WAITING FOR RTS TO BE ASSERTED. ALSO,
; IF THE USER IS BOOTING TO A CRT DEVICE AND DISCONNECTS THE CONSOLE
; SERIAL PORT, THE SYSTEM WILL WAIT FOR RTS AND NEVER BOOT. SO, HERE
; WE SAVE THE ACTIVE CONSOLE CONFIGURATION, THEN TURN OFF HARDWARE
; FLOW CONTROL. THE ORIGINAL CONFIGURATION WILL BE RESTORED BELOW
; PRIOR TO LAUNCING THE ROM LOADER.
;
; RETRIEVE THE CONFIG FROM THE CONSOLE PORT
LD B , BF_CIOQUERY ; HBIOS QUERY CIO CONFIG
LD A ,( CB_CONDEV ) ; GET CONSOLE DEVICE
LD ( HB_BOOTCONSAV ), A ; SAVE IT FOR LATER
LD C , A ; BOOT CONSOLE TO C
CALL HB_DISPATCH ; INTERNAL HBIOS CALL
LD ( HB_CONCFGSAV ), DE ; SAVE CONFIG
RES 5 , D ; CLEAR RTS BIT
LD B , BF_CIOINIT ; HBIOS CIO INIT
LD A ,( CB_CONDEV ) ; GET CONSOLE DEVICE
LD C , A ; BOOT CONSOLE TO C
CALL HB_DISPATCH ; INTERNAL HBIOS CALL
# IF ( WBWDEBUG = = USEMIO ) ; OUTPUT ANY CACHED DEBUG TEXT
# IF ( WBWDEBUG = = USEMIO ) ; OUTPUT ANY CACHED DEBUG TEXT
LD HL , MIOOUTPTR
LD HL , MIOOUTPTR
@ -2749,11 +2772,30 @@ HB_WDZ:
LD A ,( CB_CRTDEV ) ; GET CRT DISPLAY DEVICE
LD A ,( CB_CRTDEV ) ; GET CRT DISPLAY DEVICE
LD ( CB_CONDEV ), A ; SAVE IT AS ACTIVE CONSOLE DEVICE
LD ( CB_CONDEV ), A ; SAVE IT AS ACTIVE CONSOLE DEVICE
;
;
; DISPLAY HBIOS BANNER ON NEW CONSOLE
PRTX ( STR_BANNER )
# ENDIF
# ENDIF
;
;
INITSYS3:
INITSYS3:
;
; RESTORE BOOT CONSOLE CONFIGURATION
;
CALL LDELAY ; ALLOW SERIAL PORT TO FLUSH
LD B , BF_CIOINIT ; HBIOS CIO INIT
LD A ,( HB_BOOTCONSAV ) ; ORIGINAL BOOT CONSOLE DEVICE
LD C , A ; BOOT CONSOLE TO C
LD DE ,( HB_CONCFGSAV ) ; SAVED ORIGINAL CONSOLE CFG
CALL HB_DISPATCH ; INTERNAL HBIOS CALL
;
LD A ,( HB_BOOTCONSAV ) ; GET ORIGINAL BOOT CONSOLE DEV
LD C , A ; PUT IN C
LD A ,( CB_CONDEV ) ; GET ACTIVE CONSOLE DEVICE
CP C ; COMPARE
JR Z , INITSYS3A ; SKIP AHEAD IF NO CHANGE
;
; DISPLAY HBIOS BANNER ON NEW CONSOLE IF WE SWITCHED TO NEW
; CONSOLE DEVICE
PRTX ( STR_BANNER ) ; DISPLAY HBIOS BANNER
;
INITSYS3A:
CALL PRTSUM ; PRINT UNIT/DEVICE SUMMARY TABLE
CALL PRTSUM ; PRINT UNIT/DEVICE SUMMARY TABLE
;
;
# IF 0
# IF 0
@ -7269,6 +7311,9 @@ HB_CURSEC .DB 0 ; CURRENT SECOND (TEMP)
;
;
HB_BCDTMP .FILL 5 , 0 ; BCD NUMBER STORAGE (TEMP)
HB_BCDTMP .FILL 5 , 0 ; BCD NUMBER STORAGE (TEMP)
;
;
HB_BOOTCONSAV .DB 0 ; INITIAL BOOT CONSOLE SAVE AREA
HB_CONCFGSAV .DW 0 ; CONSOLE CONFIG SAVE AREA
;
HB_WRKBUF .FILL 512 , 0 ; INTERNAL DISK BUFFER
HB_WRKBUF .FILL 512 , 0 ; INTERNAL DISK BUFFER
;
;
HB_END .EQU $
HB_END .EQU $