|
|
@ -2852,19 +2852,27 @@ HB_FP1: |
|
|
; |
|
|
; |
|
|
HB_FP2: |
|
|
HB_FP2: |
|
|
; IF SEC SWITCH IS SET, WE WANT TO BUMP TO SECONDARY |
|
|
; 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 |
|
|
LD A,B ; RECOVER SWITCH SETTINGS |
|
|
AND SW_SEC ; TEST SEC BIT |
|
|
AND SW_SEC ; TEST SEC BIT |
|
|
JR Z,HB_FPZ ; IF NOT SET, THEN ALL DONE |
|
|
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 A,(CIO_CNT) ; GET CHAR UNIT COUNT |
|
|
LD B,A ; MOVE TO B |
|
|
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 |
|
|
LD A,(HB_NEWCON) ; GET NEW CONSOLE UNIT |
|
|
INC A ; BUMP TO SECONDARY |
|
|
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)? |
|
|
CP B ; A (UNIT) >= B (CNT)? |
|
|
JR NC,HB_FPZ ; ABORT IF UNIT TOO HIGH |
|
|
JR NC,HB_FPZ ; ABORT IF UNIT TOO HIGH |
|
|
LD (HB_NEWCON),A ; UPDATE NEW CONSOLE UNIT |
|
|
LD (HB_NEWCON),A ; UPDATE NEW CONSOLE UNIT |
|
|
|