]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
SupraDrive 2000DMA boot ROM support
authorToni Wilen <twilen@winuae.net>
Sat, 3 Dec 2022 12:25:48 +0000 (14:25 +0200)
committerToni Wilen <twilen@winuae.net>
Sat, 3 Dec 2022 12:25:48 +0000 (14:25 +0200)
rommgr.cpp
scsi.cpp

index 2732edfb0f3045bc6f91578589f5afada519771c..f1118506f401d0ff70e2bc6bc19b2580252fd657 100644 (file)
@@ -97,7 +97,7 @@ struct romdata *getromdatabypath (const TCHAR *path)
        return NULL;
 }
 
-#define NEXT_ROM_ID 298
+#define NEXT_ROM_ID 299
 
 #if NEXT_ROM_ID >= MAX_ROMMGR_ROMS
 #error Increase MAX_ROMMGR_ROMS!
@@ -447,6 +447,8 @@ static struct romdata roms[] = {
        { _T("A4091 v40.13"), 40, 13, 40, 13, _T("A4091\0"), 32768, 58, 0, 0, ROMTYPE_A4091, 0, 0, _T("391592-02"),
        0x54cb9e85, 0x3CE66919,0xF6FD6797,0x4923A12D,0x91B730F1,0xFFB4A7BA },
 
+       { _T("SupraDrive 2000DMA"), 0, 0, 0, 0, _T("SUPRADMA\0"), 8192, 298, 0, 0, ROMTYPE_SUPRADMA, 0, 0, NULL,
+       0x0f040976, 0x9faa3201,0xd09e57bf,0xb0e95b45,0x4fff3b90,0xdf219105 },
        { _T("SupraDrive AMAB6"), 3, 8, 3, 8, _T("SUPRA\0"), 16384, 121, 0, 0, ROMTYPE_SUPRA, 0, 0, _T("AMAB6"),
        0xf40bd349, 0x82168556,0x07525067,0xe9263431,0x1fb9c347,0xe737f247 },
        { _T("SupraDrive AMAB5"), 3, 0, 3, 0, _T("SUPRA\0"), 16384, 134, 0, 0, ROMTYPE_SUPRA, 0, 0, _T("AMAB5"),
index 29dda9c42b1de0c1760b3dffeb9c30a077dc5fcf..5b968a6f4601d13d7dae964292173b2bf849046f 100644 (file)
--- a/scsi.cpp
+++ b/scsi.cpp
@@ -3,7 +3,7 @@
 *
 * SCSI and SASI emulation (not uaescsi.device)
 *
-* Copyright 2007-2015 Toni Wilen
+* Copyright 2007-2022 Toni Wilen
 *
 */
 
@@ -3094,8 +3094,10 @@ static uae_u32 ncr80_bget2(struct soft_scsi *ncr, uaecptr addr, int size)
                if (ncr->subtype == 4) {
                        if ((addr & 0xc000) == 0xc000) {
                                v = read_684xx_dma(ncr, addr);
-                       } else if (addr & 0x8000) {
-                               addresstype = (addr & 1) ? 0 : 1;
+                       } else if ((addr & 0x8001) == 0x8001) {
+                               addresstype = 0;
+                       } else if ((addr & 0x4001) == 0x4000) {
+                               addresstype = 1;
                        }
                } else if (ncr->subtype == 3) {
                        if ((addr & 0x8000) && !(addr & 1))