mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
LPT Driver Boot Messages, Issue #555
LPT driver will now display hardware that is not detected. Thanks and credit to @robbbates.
This commit is contained in:
@@ -95,10 +95,18 @@ LPT_INIT:
|
||||
LD IY,LPT_CFG ; POINT TO START OF CFG TABLE
|
||||
LPT_INIT0:
|
||||
PUSH BC ; SAVE LOOP CONTROL
|
||||
CALL LPT_PRTCFG ; PRINT CONFIG
|
||||
CALL LPT_INITUNIT ; HAND OFF TO UNIT INIT CODE
|
||||
POP BC ; RESTORE LOOP CONTROL
|
||||
;
|
||||
LD A,(IY+1) ; GET THE LPT TYPE DETECTED
|
||||
JR Z,LPT_INIT1 ; IF DETECTED, CONTINUE INIT
|
||||
CALL PC_SPACE ; FORMATTING
|
||||
LD DE,LPT_STR_NOLPT ; NO LPT MESSAGE
|
||||
CALL WRITESTR ; DISPLAY IT
|
||||
JR LPT_INIT2 ; AND LOOP AS NEEDED
|
||||
;
|
||||
LPT_INIT1:
|
||||
LD A,(IY+1) ; GET THE LPT TYPE
|
||||
OR A ; SET FLAGS
|
||||
JR Z,LPT_INIT2 ; SKIP IT IF NOTHING FOUND
|
||||
;
|
||||
@@ -107,7 +115,6 @@ LPT_INIT0:
|
||||
POP DE ; ... TO DE
|
||||
LD BC,LPT_FNTBL ; BC := FUNCTION TABLE ADDRESS
|
||||
CALL NZ,CIO_ADDENT ; ADD ENTRY IF LPT FOUND, BC:DE
|
||||
CALL LPT_PRTCFG ; PRINT IF NOT ZERO
|
||||
POP BC ; RESTORE LOOP CONTROL
|
||||
;
|
||||
LPT_INIT2:
|
||||
@@ -123,9 +130,7 @@ LPT_INIT3:
|
||||
;
|
||||
LPT_INITUNIT:
|
||||
CALL LPT_DETECT ; DETERMINE LPT TYPE
|
||||
LD (IY+1),A ; SAVE IN CONFIG TABLE
|
||||
OR A ; SET FLAGS
|
||||
RET Z ; ABORT IF NOTHING THERE
|
||||
RET NZ ; ABORT IF NOTHING THERE
|
||||
;
|
||||
; UPDATE WORKING LPT DEVICE NUM
|
||||
LD HL,LPT_DEV ; POINT TO CURRENT DEVICE NUM
|
||||
@@ -326,15 +331,7 @@ LPT_DETECT:
|
||||
;
|
||||
LPT_DETECT:
|
||||
LD C,(IY+3) ; BASE PORT ADDRESS
|
||||
CALL LPT_DETECT2 ; CHECK IT
|
||||
JR Z,LPT_DETECT1 ; FOUND IT, RECORD IT
|
||||
LD A,LPTMODE_NONE ; NOTHING FOUND
|
||||
RET ; DONE
|
||||
;
|
||||
LPT_DETECT1:
|
||||
; LPT FOUND, RECORD IT
|
||||
LD A,LPTMODE_SPP ; RETURN CHIP TYPE
|
||||
RET ; DONE
|
||||
JR LPT_DETECT2 ; CHECK IT
|
||||
;
|
||||
LPT_DETECT2:
|
||||
; LOOK FOR LPT AT BASE PORT ADDRESS IN C
|
||||
@@ -394,20 +391,13 @@ LPT_DETECT:
|
||||
CALL PRTHEXBYTE
|
||||
#ENDIF
|
||||
CP $A5 ; CHECK FOR TEST VALUE
|
||||
JR Z,LPT_DETECT1 ; FOUND IT
|
||||
LD A,LPTMODE_NONE ; NOT FOUND
|
||||
RET
|
||||
;
|
||||
LPT_DETECT1:
|
||||
; LPT FOUND, RECORD IT
|
||||
LD A,LPTMODE_MG014 ; RETURN CHIP TYPE
|
||||
RET ; DONE
|
||||
RET ; ZF SET IF DETECTED
|
||||
#ENDIF
|
||||
;
|
||||
#IF (LPTMODE == LPTMODE_S100)
|
||||
LPT_DETECT:
|
||||
; PORT ALWAYS EXISTS ON FPGA
|
||||
LD A,LPTMODE_S100 ; RETURN CHIP TYPE
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET ; DONE
|
||||
#ENDIF
|
||||
;
|
||||
@@ -417,7 +407,7 @@ LPT_PRTCFG:
|
||||
; ANNOUNCE PORT
|
||||
CALL NEWLINE ; FORMATTING
|
||||
PRTS("LPT$") ; FORMATTING
|
||||
LD A,(IY) ; DEVICE NUM
|
||||
LD A,(IY+2) ; DEVICE NUM
|
||||
CALL PRTDECB ; PRINT DEVICE NUM
|
||||
PRTS(": IO=0x$") ; FORMATTING
|
||||
LD A,(IY+3) ; GET BASE PORT
|
||||
@@ -452,11 +442,13 @@ LPT_TYPE_MAP:
|
||||
.DW LPT_STR_MG014
|
||||
.DW LPT_STR_S100
|
||||
;
|
||||
LPT_STR_NONE .DB "<NOT PRESENT>$"
|
||||
LPT_STR_NONE .DB "???$"
|
||||
LPT_STR_SPP .DB "SPP$"
|
||||
LPT_STR_MG014 .DB "MG014$"
|
||||
LPT_STR_S100 .DB "S100$"
|
||||
;
|
||||
LPT_STR_NOLPT .DB "NOT PRESENT$"
|
||||
;
|
||||
; WORKING VARIABLES
|
||||
;
|
||||
LPT_DEV .DB 0 ; DEVICE NUM USED DURING INIT
|
||||
@@ -468,7 +460,7 @@ LPT_CFG:
|
||||
LPT0_CFG:
|
||||
; LPT MODULE A CONFIG
|
||||
.DB 0 ; DEVICE NUMBER (SET DURING INIT)
|
||||
.DB 0 ; LPT TYPE (SET DURING INIT)
|
||||
.DB LPTMODE ; LPT MODE
|
||||
.DB 0 ; MODULE ID
|
||||
.DB LPT0BASE ; BASE PORT
|
||||
.DW 0 ; LINE CONFIGURATION
|
||||
@@ -494,7 +486,7 @@ LPT_CFGSIZ .EQU $ - LPT_CFG ; SIZE OF ONE CFG TABLE ENTRY
|
||||
LPT1_CFG:
|
||||
; LPT MODULE B CONFIG
|
||||
.DB 0 ; DEVICE NUMBER (SET DURING INIT)
|
||||
.DB 0 ; LPT TYPE (SET DURING INIT)
|
||||
.DB LPTMODE ; LPT MODE
|
||||
.DB 1 ; MODULE ID
|
||||
.DB LPT1BASE ; BASE PORT
|
||||
.DW 0 ; LINE CONFIGURATION
|
||||
|
||||
Reference in New Issue
Block a user