|
|
@ -2148,6 +2148,11 @@ HB_START2: |
|
|
LD (RTC_DISPACT),A ; RTC DEVICE |
|
|
LD (RTC_DISPACT),A ; RTC DEVICE |
|
|
LD (DSKY_DISPACT),A ; DSKY DEVICE |
|
|
LD (DSKY_DISPACT),A ; DSKY DEVICE |
|
|
; |
|
|
; |
|
|
|
|
|
; INITIALIZE SOME HCB ENTRIES |
|
|
|
|
|
; |
|
|
|
|
|
OR $FF ; $FF TO ACCUM |
|
|
|
|
|
LD (CB_CRTDEV),A ; RESET CRT DEVICE |
|
|
|
|
|
; |
|
|
; CLEAR INTERRUPT VECTOR TABLES |
|
|
; CLEAR INTERRUPT VECTOR TABLES |
|
|
; |
|
|
; |
|
|
; THIS IS REALLY ONLY REQUIRED ON A RESTART, BUT IT DOESN'T HURT TO |
|
|
; THIS IS REALLY ONLY REQUIRED ON A RESTART, BUT IT DOESN'T HURT TO |
|
|
@ -3324,11 +3329,27 @@ HB_WDZ: |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
#IF (PLATFORM == PLT_FZ80) |
|
|
#IF (PLATFORM == PLT_FZ80) |
|
|
|
|
|
; IOBYTE: XXXXXVVC |
|
|
|
|
|
; 00- FORCE ONBOARD VGA/PS2 KBD (FV) |
|
|
|
|
|
; --1 FORCE PROPELLER CONSOLE (SCON) |
|
|
|
|
|
; 110 NORMAL USB SERIAL BOOT |
|
|
|
|
|
; |
|
|
|
|
|
; WE ASSUME THAT THE ONBOARD VGA (FV) IS ALWAYS DETECTED AND |
|
|
|
|
|
; WILL BE THE CURRENT CRTDEV. SCON IS ASSUMED TO BE THE |
|
|
|
|
|
; DEVICE AT CRTDEV + 1. THESE ARE REASONABLE ASSUMPTIONS |
|
|
|
|
|
; UNLESS THE DRIVER DETECTION OR DRIVER ORDER IS CHANGED. |
|
|
IN A,($36) ; GET IO BYTE |
|
|
IN A,($36) ; GET IO BYTE |
|
|
AND %00000001 ; ISOLATE CONSOLE BIT |
|
|
|
|
|
JR Z,INITSYS3 ; NOT SET, BYPASS CONSOLE SWITCH |
|
|
|
|
|
|
|
|
AND %00000110 ; ISOLATE BITS |
|
|
|
|
|
JR Z,HB_CRTACT ; FORCE ONBOARD CRT |
|
|
|
|
|
IN A,($36) ; GET IO BYTE |
|
|
|
|
|
AND %00000001 ; ISOLATE BIT |
|
|
|
|
|
JR Z,INITSYS3 ; NORMAL USB SERIAL BOOT |
|
|
|
|
|
LD A,(CB_CRTDEV) ; GET CRT DEV |
|
|
|
|
|
INC A ; SWITCH FROM FV -> SCON |
|
|
|
|
|
LD (CB_CRTDEV),A ; SAVE IT AND DO CONSOLE SWITCH |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
|
|
|
HB_CRTACT: |
|
|
LD A,(CB_CRTDEV) ; GET CRT DISPLAY DEVICE |
|
|
LD A,(CB_CRTDEV) ; GET CRT DISPLAY DEVICE |
|
|
LD (HB_NEWCON),A ; AND QUEUE TO SWITCH |
|
|
LD (HB_NEWCON),A ; AND QUEUE TO SWITCH |
|
|
; |
|
|
; |
|
|
@ -3805,6 +3826,15 @@ HB_INITTBL: |
|
|
#IF (FVENABLE) |
|
|
#IF (FVENABLE) |
|
|
.DW FV_INIT |
|
|
.DW FV_INIT |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
|
|
|
#IF (PRPENABLE) |
|
|
|
|
|
.DW PRP_INIT |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
#IF (PPPENABLE) |
|
|
|
|
|
.DW PPP_INIT |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
#IF (SCONENABLE) |
|
|
|
|
|
.DW SCON_INIT |
|
|
|
|
|
#ENDIF |
|
|
#IF (DMAENABLE) |
|
|
#IF (DMAENABLE) |
|
|
.DW DMA_INIT |
|
|
.DW DMA_INIT |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
@ -3838,15 +3868,6 @@ HB_INITTBL: |
|
|
#IF (SYQENABLE) |
|
|
#IF (SYQENABLE) |
|
|
.DW SYQ_INIT |
|
|
.DW SYQ_INIT |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
#IF (PRPENABLE) |
|
|
|
|
|
.DW PRP_INIT |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
#IF (PPPENABLE) |
|
|
|
|
|
.DW PPP_INIT |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
#IF (SCONENABLE) |
|
|
|
|
|
.DW SCON_INIT |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
#IF (CHENABLE) |
|
|
#IF (CHENABLE) |
|
|
.DW CH_INIT |
|
|
.DW CH_INIT |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
@ -3980,6 +4001,24 @@ CIO_SIZ .EQU CIO_MAX * 4 ; EACH ENTRY IS 4 BYTES |
|
|
CIO_CNT .DB 0 ; ENTRY COUNT PREFIX |
|
|
CIO_CNT .DB 0 ; ENTRY COUNT PREFIX |
|
|
CIO_TBL .FILL CIO_SIZ,0 ; SPACE FOR ENTRIES |
|
|
CIO_TBL .FILL CIO_SIZ,0 ; SPACE FOR ENTRIES |
|
|
; |
|
|
; |
|
|
|
|
|
; CRT TYPE CHAR DEVICES CALL THIS TO REGISTER THAT THEY WANT TO BE THE |
|
|
|
|
|
; DEFAULT CRT DEVICE. THIS ROUTINE WILL SET CB_CRTDEV WHEN CALLED THE |
|
|
|
|
|
; FIRST TIME. SUBSEQUENT CALLS ARE IGNORED. THIS ENSURES THAT THE |
|
|
|
|
|
; *FIRST* CRT DEVICE WINS. |
|
|
|
|
|
; |
|
|
|
|
|
CIO_SETCRT: |
|
|
|
|
|
PUSH AF ; SAVE INCOMING CRT DEV NUM |
|
|
|
|
|
LD A,(CB_CRTDEV) ; GET CURRENT CRT DEV NUM |
|
|
|
|
|
INC A ; $FF -> $00 |
|
|
|
|
|
JR NZ,CIO_SETCRT_Z ; IF ALREADY SET, LEAVE IT ALONE |
|
|
|
|
|
POP AF ; RESTORE AF |
|
|
|
|
|
LD (CB_CRTDEV),A ; SAVE CRT DEV NUM |
|
|
|
|
|
RET ; AND DONE |
|
|
|
|
|
; |
|
|
|
|
|
CIO_SETCRT_Z: |
|
|
|
|
|
POP AF ; RESTORE AF |
|
|
|
|
|
RET ; AND DONE |
|
|
|
|
|
; |
|
|
;-------------------------------------------------------------------------------------------------- |
|
|
;-------------------------------------------------------------------------------------------------- |
|
|
; DISK I/O DEVICE FUNCTION DISPATCHER |
|
|
; DISK I/O DEVICE FUNCTION DISPATCHER |
|
|
;-------------------------------------------------------------------------------------------------- |
|
|
;-------------------------------------------------------------------------------------------------- |
|
|
|