]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
Trifecta jumper update.
authorToni Wilen <twilen@winuae.net>
Wed, 7 Aug 2019 18:19:23 +0000 (21:19 +0300)
committerToni Wilen <twilen@winuae.net>
Wed, 7 Aug 2019 18:19:23 +0000 (21:19 +0300)
expansion.cpp
idecontrollers.cpp

index b5cd76eefefaca4370370d6929fbb38b323574dd..eea20618c75cbdd38fcc70e5881d35692c62c6ca 100644 (file)
@@ -4199,14 +4199,15 @@ static const struct expansionsubromtype rochard_sub[] = {
                NULL
        }
 };
+
 static const struct expansionsubromtype trifecta_sub[] = {
        {
-               _T("EC"), _T("ec"), 0, // IDE-only
+               _T("EC (IDE)"), _T("ec"), 0, // IDE-only
                2071, 32, 0, false,
                { 0 }
        },
        {
-               _T("LX"), _T("lx"), 0, // IDE+SCSI
+               _T("LX (IDE + SCSI)"), _T("lx"), 0, // IDE+SCSI
                2071, 32, 0, false,
                { 0 }
        },
@@ -4214,6 +4215,26 @@ static const struct expansionsubromtype trifecta_sub[] = {
                NULL
        }
 };
+static const struct expansionboardsettings trifecta_settings[] = {
+       {
+               _T("Boot delay\0") _T("off (A=0,B=0)\0") _T("8s (A=1,B=0)\0") _T("16s (A=0,B=1)\0") _T("24s (A=1,B=1)\0"),
+               _T("bootdelay\0") _T("bootdelay0\0") _T("bootdelay8\0") _T("bootdelay16\0") _T("bootdelay24\0"),
+               true
+       },
+       {
+               _T("Buffers (C)"), _T("jumper_c")
+       },
+       {
+               _T("Unused (D)"), _T("jumper_d")
+       },
+       {
+               _T("Adspeed (E)"), _T("jumper_e")
+       },
+       {
+               NULL
+       }
+};
+
 static const struct expansionsubromtype supra_sub[] = {
        {
                _T("A500 ByteSync/XP"), _T("bytesync"), ROMTYPE_NONE | ROMTYPE_SUPRA,
@@ -5287,7 +5308,7 @@ const struct expansionromtype expansionroms[] = {
                trifecta_sub, 0,
                true, EXPANSIONTYPE_SCSI | EXPANSIONTYPE_IDE,
                2071, 32, 0, false, NULL,
-               true, 0, NULL,
+               true, 0, trifecta_settings,
                { 0xd1, 0x23, 0x40, 0x00, 0x08, 0x17, 0x00, 0x00, 0x00, 0x00, 0x10, 0x00 }
        },
        {
index 3d7ec3e3b17c77cfbd6fdfd1fbcce3f2fc9561e1..7ad6b9911d3aed71ca6845d7d1c91030ae43148b 100644 (file)
@@ -748,10 +748,13 @@ static uae_u32 ide_read_byte(struct ide_board *board, uaecptr addr)
                }
                if (addr == 0x401) {
                        if (board->subtype) {
+                               // LX (SCSI+IDE)
                                v = (board->aci->rc->device_id ^ 7) & 7; // inverted SCSI ID
                        } else {
-                               v = 0xff;
+                               // EC (IDE)
+                               v = 0;
                        }
+                       v |= (board->aci->rc->device_settings ^ 0xfc) << 3;
                } else if (addr >= 0x1000) {
                        if (board->rom)
                                v = board->rom[addr & board->rom_mask];