]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
GVP T-Rex II
authorToni Wilen <twilen@winuae.net>
Sun, 15 Sep 2024 14:51:17 +0000 (17:51 +0300)
committerToni Wilen <twilen@winuae.net>
Sun, 15 Sep 2024 14:51:17 +0000 (17:51 +0300)
cpuboard.cpp
expansion.cpp
include/cpuboard.h
include/rommgr.h
rommgr.cpp

index dde8f32eb2a44fa4ece2f37c8785019476c145e4..fd2e110bbad0ca28205d6c67d337820d73db68ea 100644 (file)
@@ -296,6 +296,10 @@ static bool is_tekmagic(struct uae_prefs *p)
 {
        return ISCPUBOARDP(p, BOARD_GVP, BOARD_GVP_SUB_TEKMAGIC);
 }
+static bool is_trexii(struct uae_prefs *p)
+{
+       return ISCPUBOARDP(p, BOARD_GVP, BOARD_GVP_SUB_TREXII);
+}
 static bool is_a2630(struct uae_prefs *p)
 {
        return ISCPUBOARDP(p, BOARD_COMMODORE, BOARD_COMMODORE_SUB_A26x0);
@@ -778,7 +782,7 @@ static uae_u32 REGPARAM2 blizzardea_bget(uaecptr addr)
        uae_u8 v = 0;
 
        addr &= blizzardea_bank.mask;
-       if (is_tekmagic(&currprefs)) {
+       if (is_tekmagic(&currprefs) || is_trexii(&currprefs)) {
                cpuboard_non_byte_ea = true;
                v = cpuboard_ncr710_io_bget(addr);
        } else if (is_quikpak(&currprefs)) {
@@ -836,7 +840,7 @@ static void REGPARAM2 blizzardea_wput(uaecptr addr, uae_u32 w)
 static void REGPARAM2 blizzardea_bput(uaecptr addr, uae_u32 b)
 {
        addr &= blizzardea_bank.mask;
-       if (is_tekmagic(&currprefs)) {
+       if (is_tekmagic(&currprefs) || is_trexii(&currprefs)) {
                cpuboard_non_byte_ea = true;
                cpuboard_ncr710_io_bput(addr, b);
        } else if (is_quikpak(&currprefs)) {
@@ -1647,7 +1651,7 @@ void cpuboard_map(void)
                        map_banks(&dummy_bank, 0xf00000 >> 16, 0x80000 >> 16, 0);
                }
        }
-       if (is_tekmagic(&currprefs) || is_quikpak(&currprefs)) {
+       if (is_tekmagic(&currprefs) || is_quikpak(&currprefs) || is_trexii(&currprefs)) {
                map_banks(&blizzardf0_bank, 0xf00000 >> 16, 131072 >> 16, 0);
                map_banks(&blizzardea_bank, 0xf40000 >> 16, 65536 >> 16, 0);
        }
@@ -1985,7 +1989,7 @@ static void cpuboard_init_2(void)
                blizzardram_bank.label = _T("fusionforty");
                mapped_malloc(&blizzardram_bank);
 
-       } else if (is_tekmagic(&currprefs) || is_quikpak(&currprefs)) {
+       } else if (is_tekmagic(&currprefs) || is_quikpak(&currprefs) || is_trexii(&currprefs)) {
 
                blizzardf0_bank.start = 0x00f00000;
                blizzardf0_bank.reserved_size = 131072;
@@ -2894,6 +2898,14 @@ bool cpuboard_autoconfig_init(struct autoconfig_info *aci)
                cpuboard_non_byte_ea = false;
                aci->start = 0xf00000;
                aci->size = f0rom_size;
+       } else if (is_trexii(p)) {
+               earom_size = 65536;
+               f0rom_size = 131072;
+               zfile_fread(blizzardf0_bank.baseaddr, 1, f0rom_size, autoconfig_rom);
+               autoconf = false;
+               cpuboard_non_byte_ea = false;
+               aci->start = 0xf00000;
+               aci->size = f0rom_size;
        } else if (is_quikpak(p)) {
                earom_size = 65536;
                f0rom_size = 131072;
index 372ab56846196c169d20a28d7390f799a9f79ae0..f84e371408054afc34c8270156c1f2d3902550e4 100644 (file)
@@ -6477,6 +6477,14 @@ static const struct cpuboardsubtype gvpboard_sub[] = {
                BOARD_MEMORY_HIGHMEM,
                128 * 1024 * 1024,
        },
+       {
+               _T("T-Rex II"),
+               _T("trexii"),
+               ROMTYPE_CB_TREXII, 0, 4,
+               tekmagic_add_scsi_unit, EXPANSIONTYPE_SCSI,
+               BOARD_MEMORY_HIGHMEM,
+               128 * 1024 * 1024
+       },
        {
                NULL
        }
index be7c0b3501fbaf4f7fae119d98d0fa31eca74788..5b7787e3320bb9b82d334cfc36c946baf2d58d78 100644 (file)
@@ -74,6 +74,7 @@ void cpuboard_gvpmaprom(int);
 #define BOARD_GVP_SUB_A1230SI 6
 #define BOARD_GVP_SUB_A1230SII 7
 #define BOARD_GVP_SUB_QUIKPAK 8
+#define BOARD_GVP_SUB_TREXII 9
 
 #define BOARD_KUPKE 6
 
index 2b33fc4a7193dddb5ffbbeb7e86f5a5452dc75e5..fe397aed37a4fe9bdff98f9cf49a16a3c69b1eff 100644 (file)
@@ -57,6 +57,7 @@ extern int decode_cloanto_rom_do(uae_u8 *mem, int size, int real_size);
 #define ROMTYPE_CB_DRACO       0x00040022
 #define ROMTYPE_CB_CASAB       0x00040023
 #define ROMTYPE_CB_APOLLO_630 0x00040024
+#define ROMTYPE_CB_TREXII      0x00040025
 
 #define ROMTYPE_FREEZER                0x00080000
 #define ROMTYPE_AR                     0x00080001
index 161ae1d1ae7ca9812bb75e13adda185d2e060663..17476320c25a07d4e6743ea756ff33baacae8359 100644 (file)
@@ -522,6 +522,8 @@ static struct romdata roms[] = {
        0xff60cfe3, 0xea208934,0x5e2602cf,0xc715b2fc,0x50a392dd,0xd751823a, NULL,  _T("tekmagic2040.rom") },
        ALTROMPN(303, 1, 1, 32768, ROMTYPE_ODD  | ROMTYPE_8BIT, NULL, 0xc19580de, 0x691b1119, 0x5163fd52, 0xb8a9025e, 0x3ac4311f, 0x7bc84013)
        ALTROMPN(303, 1, 2, 32768, ROMTYPE_EVEN | ROMTYPE_8BIT, NULL, 0xbf3551fd, 0x4dc520fa, 0x7868e01b, 0xd6bfa3d6, 0x396f1e55 ,0x18d55372)
+       { _T("GVP T-Rex II v1.0"), 1, 0, 1, 0, _T("GVPTREXII\0"), 32768, 317, 0, 0, ROMTYPE_CB_TREXII, 0, 0, NULL,
+       0xd908947a, 0x888b53f0,0xb7f064e5,0xf068279f,0x855dba0e,0x5a42249f, NULL, NULL },
 
        { _T("Zeus 040"), 2, 98, 2, 98, _T("ZEUS040\0"), 16384, 225, 0, 0, ROMTYPE_CB_ZEUS040, 0, 0, NULL,
        0x2c609194, 0x9a91cf45,0x6816067a,0x943c18f1,0xbd30effe,0x482d4aaf, NULL, NULL },