diff --git a/Source/HBIOS/gm7303.asm b/Source/HBIOS/gm7303.asm index 2231ae53..732926c0 100644 --- a/Source/HBIOS/gm7303.asm +++ b/Source/HBIOS/gm7303.asm @@ -340,10 +340,6 @@ GM7303_EVT_CPUSPD: ; 0123456789012345 ; GM7303_EVT_DSKACT: -; - LD A,(GM7303_PRESENT) ; GET PRESENCE FLAG - OR A ; SET FLAGS - JR Z,GM7303_DSKACT_Z ; HANDLE NOT PRESENT ; PUSH HL LD HL,$0100 ; ROW 1, COL 0 diff --git a/Source/HBIOS/icm.asm b/Source/HBIOS/icm.asm index 41781e6a..49b558f7 100644 --- a/Source/HBIOS/icm.asm +++ b/Source/HBIOS/icm.asm @@ -49,9 +49,10 @@ ICM_COLS .EQU 8 ; DISPLAY COLUMNS ;__________________________________________________________________________________________________ ; ICM_PREINIT: - LD A,(DSKY_DISPACT) ; DSKY DISPATCHER ALREADY SET? - OR A ; SET FLAGS - RET NZ ; IF ALREADY ACTIVE, ABORT +; + ; RESET PRESENCE FLAG + XOR A ; ASSUME NOT PRESENT + LD (ICM_PRESENT),A ; SAVE IT ; OR $FF ; SIGNAL TO WAIT FOR KEY RELEASE LD (ICM_KEYBUF),A ; SET IT diff --git a/Source/HBIOS/lcd.asm b/Source/HBIOS/lcd.asm index 87266bc0..4f42d4d7 100644 --- a/Source/HBIOS/lcd.asm +++ b/Source/HBIOS/lcd.asm @@ -232,10 +232,6 @@ LCD_EVT_CPUSPD: ; 01234567890123456789 ; LCD_EVT_DSKACT: -; - LD A,(LCD_PRESENT) ; GET PRESENCE FLAG - OR A ; SET FLAGS - RET Z ; HANDLE NOT PRESENT ; LD HL,$0300 ; ROW 3, COL 0 CALL LCD_GOTORC ; SET DISPLAY ADDRESS diff --git a/Source/HBIOS/pkd.asm b/Source/HBIOS/pkd.asm index ed35cd4b..b89d794c 100644 --- a/Source/HBIOS/pkd.asm +++ b/Source/HBIOS/pkd.asm @@ -87,9 +87,10 @@ PKD_PRESCL .EQU PKDOSC/100000 ; PRESCALER ; HARDWARE RESET 8279 BY PULSING RESET LINE ; PKD_PREINIT: - LD A,(DSKY_DISPACT) ; DSKY DISPATCHER ALREADY SET? - OR A ; SET FLAGS - RET NZ ; IF ALREADY ACTIVE, ABORT +; + ; RESET PRESENCE FLAG + XOR A ; ASSUME NOT PRESENT + LD (PKD_PRESENT),A ; SAVE IT ; ; CHECK FOR PPI CALL PKD_PPIDETECT ; TEST FOR PPI HARDWARE @@ -247,9 +248,6 @@ PKD_RESET2: ; CHECK FOR KEY PRESS, SAVE RAW VALUE, RETURN STATUS ; PKD_STAT: - LD A,(PKD_PRESENT) ; DOES IT EXIST? - OR A ; SET FLAGS - RET Z ; ABORT WITH A=0 IF NOT THERE CALL PKD_ST AND $0F ; ISOLATE THE CUR FIFO LEN RET @@ -257,9 +255,6 @@ PKD_STAT: ; WAIT FOR A DSKY KEYPRESS AND RETURN ; PKD_GETKEY: - LD A,(PKD_PRESENT) ; DOES IT EXIST? - OR A ; SET FLAGS - JR Z,PKD_GETKEY1A ; ABORT IF NOT PRESENT CALL PKD_STAT JR Z,PKD_GETKEY ; LOOP IF NOTHING THERE LD A,PKD_CMD_FIFO @@ -278,7 +273,6 @@ PKD_GETKEY1: INC C ; BUMP INDEX DJNZ PKD_GETKEY1 ; LOOP UNTIL EOT POP AF ; FIX STACK -PKD_GETKEY1A: LD A,$FF ; NOT FOUND ERR, RETURN $FF RET PKD_GETKEY2: diff --git a/Source/HBIOS/ppide.asm b/Source/HBIOS/ppide.asm index a2769198..d44d4f58 100644 --- a/Source/HBIOS/ppide.asm +++ b/Source/HBIOS/ppide.asm @@ -1357,16 +1357,17 @@ PPIDE_RESET: ; THERE IS NO CHECK FOR THE SPECIFIC PPI PORT SINCE IT DOES NO HARM ; IF THE DSKYNG IS SAVED AND RESTORED. ; -; THIS DOES NOT TEST THAT A DSKYNG IS ACTUALLY PRESENT -; AND OPERATING -- COULD CAUSE PROBLEMS -; ;;;#IF (DSKYENABLE) #IF (PKDENABLE) ; SAVE CONTENTS OF DSKYNG DISPLAY ACROSS RESET - LD B,8 - LD C,0 - LD HL,PKD_BUF - CALL PKD_GETSTR + LD A,(PKD_PRESENT) ; GET PKD PRESENCE FLAG + OR A ; TEST FOR ZERO + JR Z,PPIDE_RESET_PKD1 ; IF ZERO, NOT THERE, BYPASS + LD B,8 ; LENGTH + LD C,0 ; START + LD HL,PKD_BUF ; BUFFER + CALL PKD_GETSTR ; GET CURRENT DISPLAY TO BUF +PPIDE_RESET_PKD1: #ENDIF ;;;#ENDIF ; @@ -1391,11 +1392,15 @@ PPIDE_RESET: ;;;#IF (DSKYENABLE) #IF (PKDENABLE) ; REININT DSKYNG AND RESTORE CONTENTS - CALL PKD_REINIT - LD B,8 - LD C,0 - LD HL,PKD_BUF - CALL PKD_PUTSTR + LD A,(PKD_PRESENT) ; GET PKD PRESENCE FLAG + OR A ; TEST FOR ZERO + JR Z,PPIDE_RESET_PKD2 ; IF ZERO, NOT THERE, BYPASS + CALL PKD_REINIT ; REINIT PKD + LD B,8 ; LENGTH + LD C,0 ; START + LD HL,PKD_BUF ; BUFFER + CALL PKD_PUTSTR ; RESTORE DISPLAY CONTENTS +PPIDE_RESET_PKD2: #ENDIF ;;;#ENDIF ; diff --git a/Source/ver.inc b/Source/ver.inc index 548a5cac..79f57ff6 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,7 +2,7 @@ #DEFINE RMN 5 #DEFINE RUP 0 #DEFINE RTP 0 -#DEFINE BIOSVER "3.5.0-dev.85" +#DEFINE BIOSVER "3.5.0-dev.86" #define rmj RMJ #define rmn RMN #define rup RUP diff --git a/Source/ver.lib b/Source/ver.lib index fc8bdc80..e3a1221b 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 5 rup equ 0 rtp equ 0 biosver macro - db "3.5.0-dev.85" + db "3.5.0-dev.86" endm