[PATCH] Replace magic constants for IDE port address

[ Thread Index | Date Index | More lists.tuxfamily.org/hatari-devel Archives ]


---
 src/ide.c          | 19 +++++++++++++------
 src/includes/ide.h |  1 +
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/ide.c b/src/ide.c
index 3400c1b6..8564a1ad 100644
--- a/src/ide.c
+++ b/src/ide.c
@@ -25,6 +25,8 @@
 #include "stMemory.h"
 #include "sysdeps.h"
 
+uaecptr ide_addr = 0xf00000;
+
 int nIDEPartitions = 0;
 
 struct IDEState;
@@ -111,6 +113,11 @@ bool Ide_IsAvailable(void)
 	       (Config_IsMachineFalcon() && !ConfigureParams.System.bFastBoot);
 }
 
+bool Ide_IsValid(uaecptr address)
+{
+	return Ide_IsAvailable() && address >= ide_addr && address < ide_addr + 0x40;
+}
+
 /**
  * Convert Falcon IDE registers to "normal" IDE register numbers.
  * (taken from Aranym - cheers!)
@@ -156,7 +163,7 @@ uae_u32 REGPARAM3 Ide_Mem_bget(uaecptr addr)
 
 	addr &= 0x00ffffff;                           /* Use a 24 bit address */
 
-	if (addr >= 0xf00040 || !Ide_IsAvailable())
+	if (!Ide_IsValid(addr))
 	{
 		/* invalid memory addressing --> bus error */
 		M68000_BusError(addr_in, BUS_ERROR_READ, BUS_ERROR_SIZE_BYTE, BUS_ERROR_ACCESS_DATA, 0);
@@ -193,7 +200,7 @@ uae_u32 REGPARAM3 Ide_Mem_wget(uaecptr addr)
 
 	addr &= 0x00ffffff;                           /* Use a 24 bit address */
 
-	if (addr >= 0xf00040 || !Ide_IsAvailable())
+	if (!Ide_IsValid(addr))
 	{
 		/* invalid memory addressing --> bus error */
 		M68000_BusError(addr_in, BUS_ERROR_READ, BUS_ERROR_SIZE_WORD, BUS_ERROR_ACCESS_DATA, 0);
@@ -224,7 +231,7 @@ uae_u32 REGPARAM3 Ide_Mem_lget(uaecptr addr)
 
 	addr &= 0x00ffffff;                           /* Use a 24 bit address */
 
-	if (addr >= 0xf00040 || !Ide_IsAvailable())
+	if (!Ide_IsValid(addr))
 	{
 		/* invalid memory addressing --> bus error */
 		M68000_BusError(addr_in, BUS_ERROR_READ, BUS_ERROR_SIZE_LONG, BUS_ERROR_ACCESS_DATA, 0);
@@ -263,7 +270,7 @@ void REGPARAM3 Ide_Mem_bput(uaecptr addr, uae_u32 val)
 
 	LOG_TRACE(TRACE_IDE, "IDE: bput($%x, $%x)\n", addr, val);
 
-	if (addr >= 0xf00040 || !Ide_IsAvailable())
+	if (!Ide_IsValid(addr))
 	{
 		/* invalid memory addressing --> bus error */
 		M68000_BusError(addr_in, BUS_ERROR_WRITE, BUS_ERROR_SIZE_BYTE, BUS_ERROR_ACCESS_DATA, val);
@@ -295,7 +302,7 @@ void REGPARAM3 Ide_Mem_wput(uaecptr addr, uae_u32 val)
 
 	LOG_TRACE(TRACE_IDE, "IDE: wput($%x, $%x)\n", addr, val);
 
-	if (addr >= 0xf00040 || !Ide_IsAvailable())
+	if (!Ide_IsValid(addr))
 	{
 		/* invalid memory addressing --> bus error */
 		M68000_BusError(addr_in, BUS_ERROR_WRITE, BUS_ERROR_SIZE_WORD, BUS_ERROR_ACCESS_DATA, val);
@@ -320,7 +327,7 @@ void REGPARAM3 Ide_Mem_lput(uaecptr addr, uae_u32 val)
 
 	LOG_TRACE(TRACE_IDE, "IDE: lput($%x, $%x)\n", addr, val);
 
-	if (addr >= 0xf00040 || !Ide_IsAvailable())
+	if (!Ide_IsValid(addr))
 	{
 		/* invalid memory addressing --> bus error */
 		M68000_BusError(addr_in, BUS_ERROR_WRITE, BUS_ERROR_SIZE_LONG, BUS_ERROR_ACCESS_DATA, val);
diff --git a/src/includes/ide.h b/src/includes/ide.h
index d7a012e9..0363edc0 100644
--- a/src/includes/ide.h
+++ b/src/includes/ide.h
@@ -15,6 +15,7 @@ extern int nIDEPartitions;
 extern void Ide_Init(void);
 extern void Ide_UnInit(void);
 extern bool Ide_IsAvailable(void);
+extern bool Ide_IsValid(uaecptr addr);
 extern uae_u32 REGPARAM3 Ide_Mem_bget(uaecptr addr);
 extern uae_u32 REGPARAM3 Ide_Mem_wget(uaecptr addr);
 extern uae_u32 REGPARAM3 Ide_Mem_lget(uaecptr addr);
-- 
2.49.0


--G5aGR/naYdGbnWQk--



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/