From 2d77d4f03640dcc921dcbecdd7c39664b4df0642 Mon Sep 17 00:00:00 2001 From: "H.J.Berends" <112617808+b3rendsh@users.noreply.github.com> Date: Sat, 11 Oct 2025 13:21:16 +0200 Subject: [PATCH] Added IDE driver detect option --- Doc/ChangeLog.txt | 1 + Source/HBIOS/cfg_MASTER.asm | 1 + Source/HBIOS/cfg_MSX.asm | 1 + Source/HBIOS/ide.asm | 7 +++++++ 4 files changed, 10 insertions(+) diff --git a/Doc/ChangeLog.txt b/Doc/ChangeLog.txt index 4317223b..ea905135 100644 --- a/Doc/ChangeLog.txt +++ b/Doc/ChangeLog.txt @@ -31,6 +31,7 @@ Version 3.6 - M?R: Update Timer app with "zero" option - HJB: Update PPIDE driver, add support for MSX BEER IDE interface - HJB: Added loader for MSX +- HJB: Added IDE driver master media detect option Version 3.5.1 ------------- diff --git a/Source/HBIOS/cfg_MASTER.asm b/Source/HBIOS/cfg_MASTER.asm index 6e987846..07f13fb6 100644 --- a/Source/HBIOS/cfg_MASTER.asm +++ b/Source/HBIOS/cfg_MASTER.asm @@ -338,6 +338,7 @@ RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4) ; IDEENABLE .EQU FALSE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) +IDEDETECTMEDIA .EQU FALSE ; IDE: PROBE FOR MEDIA IN MASTER UNIT, IF NOT DETECTED THEN DON'T ENABLE DRIVER IDETRACE .EQU 1 ; IDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) IDECNT .EQU 1 ; IDE: NUMBER OF IDE INTERFACES TO DETECT (1-3), 2 DRIVES EACH IDE0MODE .EQU IDEMODE_NONE ; IDE 0: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC|GIDE] diff --git a/Source/HBIOS/cfg_MSX.asm b/Source/HBIOS/cfg_MSX.asm index 13e1f374..72c56afc 100644 --- a/Source/HBIOS/cfg_MSX.asm +++ b/Source/HBIOS/cfg_MSX.asm @@ -282,6 +282,7 @@ FD1TYPE .SET FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8] RFENABLE .SET FALSE ; RF: ENABLE RAM FLOPPY DRIVER ; IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM) +IDEDETECTMEDIA .SET TRUE ; IDE: PROBE FOR MEDIA IN MASTER UNIT, IF NOT DETECTED THEN DON'T ENABLE DRIVER IDETRACE .SET 1 ; IDE: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) IDECNT .SET 1 ; IDE: NUMBER OF IDE INTERFACES TO DETECT (1-3), 2 DRIVES EACH IDE0MODE .SET IDEMODE_RC ; IDE 0: DRIVER MODE: IDEMODE_[DIO|DIDE|MK4|RC|GIDE] diff --git a/Source/HBIOS/ide.asm b/Source/HBIOS/ide.asm index 96d2626b..c365f8e1 100644 --- a/Source/HBIOS/ide.asm +++ b/Source/HBIOS/ide.asm @@ -610,8 +610,15 @@ IDE_DETECT: ;#IF (IDEMODE == IDEMODE_DIO) ;#ENDIF ; +#IF (IDEDETECTMEDIA) + ; PROBE FOR MEDIA IN MASTER UNIT, IF NOT DETECTED THEN DON'T ENABLE DRIVER + LD A,IDE_DRVMASTER + LD (IDE_DRVHD),A + JP IDE_PROBE +#ELSE XOR A ; SIGNAL SUCCESS RET ; AND RETURN +#ENDIF ; ;============================================================================= ; DRIVER FUNCTION TABLE