Skip to content

Commit

Permalink
Use SECCON to override default secondary console selection
Browse files Browse the repository at this point in the history
  • Loading branch information
dylanhall committed Nov 17, 2023
1 parent 39446d5 commit 291cdd2
Showing 1 changed file with 13 additions and 5 deletions.
18 changes: 13 additions & 5 deletions Source/HBIOS/hbios.asm
Original file line number Diff line number Diff line change
Expand Up @@ -2852,19 +2852,27 @@ HB_FP1:
;
HB_FP2:
; IF SEC SWITCH IS SET, WE WANT TO BUMP TO SECONDARY
; CRT OR SERIAL DEVICE. FOR NOW, WE ARE GOING TO CHEAT AND
; JUST INCREMENT THE CONSOLE DEVICE UNIT. THIS SHOULD WORK
; ASSUMING NORMAL ORDERING OF THE CHARACTER DEVICE UNITS.
; CRT OR SERIAL DEVICE. IF AN OVERRIDE IS SPECIFIED USING
; SECCON, USE THAT, OTHERWISE INCREMENT THE DEFAULT UNIT.
; THIS SHOULD WORK ASSUMING NORMAL ORDERING OF THE
; CHARACTER DEVICE UNITS.
LD A,B ; RECOVER SWITCH SETTINGS
AND SW_SEC ; TEST SEC BIT
JR Z,HB_FPZ ; IF NOT SET, THEN ALL DONE
;
; INCREMENT CONSOLE UNIT, BUT MAKE SURE IT DOES NOT EXCEED
; THE HIGHEST CHAR UNIT IN SYSTEM.
LD A,(CIO_CNT) ; GET CHAR UNIT COUNT
LD B,A ; MOVE TO B
LD A,SECCON ; GET SEC CONSOLE SETTING
CP $FF ; $FF MEANS USE INCREMENT
JR NZ,HB_FP3 ; BYPASS IF NOT $FF
;
; INCREMENT CONSOLE UNIT
LD A,(HB_NEWCON) ; GET NEW CONSOLE UNIT
INC A ; BUMP TO SECONDARY
;
HB_FP3:
; MAKE SURE NEW CONSOLE UNIT DOES NOT EXCEED THE HIGHEST
; CHAR UNIT IN SYSTEM.
CP B ; A (UNIT) >= B (CNT)?
JR NC,HB_FPZ ; ABORT IF UNIT TOO HIGH
LD (HB_NEWCON),A ; UPDATE NEW CONSOLE UNIT
Expand Down

0 comments on commit 291cdd2

Please sign in to comment.