]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
GVP QuikPak non-XP accelerator board + ROM.
authorToni Wilen <twilen@winuae.net>
Sun, 17 Aug 2025 16:22:29 +0000 (19:22 +0300)
committerToni Wilen <twilen@winuae.net>
Sun, 17 Aug 2025 16:22:29 +0000 (19:22 +0300)
cpuboard.cpp
expansion.cpp
include/cpuboard.h
include/rommgr.h
rommgr.cpp

index 6cbb2e377d0d508c05b17bef127d4dd99c3608d7..de95dd5f6b2ff20f782b759cc757bfd9b3d19520 100644 (file)
@@ -381,6 +381,10 @@ static bool is_quikpak(struct uae_prefs *p)
 {
        return ISCPUBOARDP(p, BOARD_GVP, BOARD_GVP_SUB_QUIKPAK);
 }
+static bool is_quikpakxp(struct uae_prefs *p)
+{
+       return ISCPUBOARDP(p, BOARD_GVP, BOARD_GVP_SUB_QUIKPAKXP);
+}
 
 static bool is_aca500(struct uae_prefs *p)
 {
@@ -793,7 +797,7 @@ static uae_u32 REGPARAM2 blizzardea_bget(uaecptr addr)
        if (is_tekmagic(&currprefs) || is_trexii(&currprefs)) {
                cpuboard_non_byte_ea = true;
                v = cpuboard_ncr710_io_bget(addr);
-       } else if (is_quikpak(&currprefs)) {
+       } else if (is_quikpakxp(&currprefs)) {
                cpuboard_non_byte_ea = true;
                v = cpuboard_ncr720_io_bget(addr);
        } else if (is_blizzard2060(&currprefs) && addr >= BLIZZARD_2060_SCSI_OFFSET) {
@@ -851,7 +855,7 @@ static void REGPARAM2 blizzardea_bput(uaecptr addr, uae_u32 b)
        if (is_tekmagic(&currprefs) || is_trexii(&currprefs)) {
                cpuboard_non_byte_ea = true;
                cpuboard_ncr710_io_bput(addr, b);
-       } else if (is_quikpak(&currprefs)) {
+       } else if (is_quikpakxp(&currprefs)) {
                cpuboard_non_byte_ea = true;
                cpuboard_ncr720_io_bput(addr, b);
        } else if (is_blizzard1230mk2(&currprefs) && addr >= 0x10000 && (currprefs.cpuboard_settings & 2)) {
@@ -1671,10 +1675,13 @@ void cpuboard_map(void)
                        map_banks(&dummy_bank, 0xf00000 >> 16, 0x80000 >> 16, 0);
                }
        }
-       if (is_quikpak(&currprefs) || is_trexii(&currprefs)) {
+       if (is_quikpakxp(&currprefs) || is_trexii(&currprefs)) {
                map_banks(&blizzardf0_bank, 0xf00000 >> 16, 131072 >> 16, 0);
                map_banks(&blizzardea_bank, 0xf40000 >> 16, 65536 >> 16, 0);
        }
+       if (is_quikpak(&currprefs)) {
+               map_banks(&blizzardf0_bank, 0xf00000 >> 16, 131072 >> 16, 0);
+       }
        if (is_fusionforty(&currprefs)) {
                map_banks(&blizzardf0_bank, 0x00f40000 >> 16, 131072 >> 16, 0);
                map_banks(&blizzardf0_bank, 0x05000000 >> 16, 131072 >> 16, 0);
@@ -2043,7 +2050,7 @@ static void cpuboard_init_2(void)
                cpuboardmem1_bank.mask = cpuboardmem1_bank.reserved_size - 1;
                mapped_malloc(&cpuboardmem1_bank);
 
-       } else if (is_quikpak(&currprefs) || is_trexii(&currprefs)) {
+       } else if (is_quikpakxp(&currprefs) || is_trexii(&currprefs)) {
 
                blizzardf0_bank.start = 0x00f00000;
                blizzardf0_bank.reserved_size = 131072;
@@ -2054,6 +2061,13 @@ static void cpuboard_init_2(void)
                blizzardea_bank.mask = blizzardea_bank.reserved_size - 1;
                mapped_malloc(&blizzardea_bank);
 
+       } else if (is_quikpak(&currprefs)) {
+
+               blizzardf0_bank.start = 0x00f00000;
+               blizzardf0_bank.reserved_size = 131072;
+               blizzardf0_bank.mask = blizzardf0_bank.reserved_size - 1;
+               mapped_malloc(&blizzardf0_bank);
+
        } else if (is_blizzard1230mk2(&currprefs)) {
 
                blizzardea_bank.reserved_size = 2 * 65536;
@@ -2707,6 +2721,9 @@ bool cpuboard_autoconfig_init(struct autoconfig_info *aci)
                        case BOARD_GVP_SUB_TEKMAGIC:
                                romtype = ROMTYPE_CB_TEKMAGIC;
                                break;
+                       case BOARD_GVP_SUB_QUIKPAKXP:
+                               romtype = ROMTYPE_CB_QUIKPAKXP;
+                               break;
                        case BOARD_GVP_SUB_QUIKPAK:
                                romtype = ROMTYPE_CB_QUIKPAK;
                                break;
@@ -2974,6 +2991,12 @@ bool cpuboard_autoconfig_init(struct autoconfig_info *aci)
                aci->start = 0xf00000;
                aci->size = f0rom_size;
        } else if (is_quikpak(p)) {
+               f0rom_size = 65536;
+               zfile_fread(blizzardf0_bank.baseaddr, 1, f0rom_size, autoconfig_rom);
+               autoconf = false;
+               aci->start = 0xf00000;
+               aci->size = f0rom_size;
+       } else if (is_quikpakxp(p)) {
                earom_size = 65536;
                f0rom_size = 131072;
                zfile_fread(blizzardf0_bank.baseaddr, 1, f0rom_size, autoconfig_rom);
index 5a052f8a623873c2e6013a0683320301aace5a89..fc51225c623e7f8f76d6951d44410e435e662a1b 100644 (file)
@@ -6606,11 +6606,19 @@ static const struct cpuboardsubtype gvpboard_sub[] = {
                gvpa1230s2_settings, NULL,
                2017, 9, 0, false
        },
+       {
+               _T("QuikPak"),
+               _T("quikpak"),
+               ROMTYPE_CB_QUIKPAK, 0, 6,
+               NULL, 0,
+               BOARD_MEMORY_HIGHMEM,
+               128 * 1024 * 1024,
+       },
 #ifdef NCR
        {
                _T("QuikPak XP"),
                _T("quikpakxp"),
-               ROMTYPE_CB_QUIKPAK, 0, 6,
+               ROMTYPE_CB_QUIKPAKXP, 0, 6,
                quikpak_add_scsi_unit, EXPANSIONTYPE_SCSI,
                BOARD_MEMORY_HIGHMEM,
                128 * 1024 * 1024,
index 4c30ea54b3c99b8592befadb55e4efe726bedc88..47abc17a6940587bb077641472112e17d436233d 100644 (file)
@@ -75,7 +75,8 @@ bool cpuboard_fc_check(uaecptr addr, uae_u32 *v, int size, bool write);
 #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_GVP_SUB_QUIKPAKXP 9
+#define BOARD_GVP_SUB_TREXII 10
 
 #define BOARD_KUPKE 6
 
index 13924a8f473e5d14139fef258aea4c4a2225359d..ec034dba00eea30ddeea9a67f03bc4c70c3ec036 100644 (file)
@@ -50,7 +50,7 @@ extern int decode_cloanto_rom_do(uae_u8 *mem, int size, int real_size);
 #define ROMTYPE_CB_FALCON40    0x0004001b
 #define ROMTYPE_CB_A1230S2     0x0004001c
 #define ROMTYPE_CB_TYPHOON2    0x0004001d
-#define ROMTYPE_CB_QUIKPAK     0x0004001e
+#define ROMTYPE_CB_QUIKPAKXP   0x0004001e
 #define ROMTYPE_CB_12GAUGE     0x0004001f
 #define ROMTYPE_CB_HARMS3KP    0x00040020
 #define ROMTYPE_CB_A1230S1     0x00040021
@@ -58,6 +58,7 @@ extern int decode_cloanto_rom_do(uae_u8 *mem, int size, int real_size);
 #define ROMTYPE_CB_CASAB       0x00040023
 #define ROMTYPE_CB_APOLLO_630 0x00040024
 #define ROMTYPE_CB_TREXII      0x00040025
+#define ROMTYPE_CB_QUIKPAK     0x00040026
 
 #define ROMTYPE_FREEZER                0x00080000
 #define ROMTYPE_AR                     0x00080001
index 8500f4aaec4a87bac3737e337499a29f27d0ddb3..c4945a2ac059f87d5f6a3009fe2591a5d3f87c73 100644 (file)
@@ -615,9 +615,9 @@ static struct romdata roms[] = {
        0x3befa0c0, 0x4414673c, 0xa52f78a0, 0xae656824, 0xfd08b54f, 0xa1de237c, NULL, NULL },
        ALTROMPN(166, 1, 1, 32768, ROMTYPE_ODD  | ROMTYPE_8BIT, NULL, 0xb64e3bbf, 0xd6f4fc81, 0x38325a78, 0x74ff1c15, 0x7c93f1a2, 0x444904ae)
        ALTROMPN(166, 1, 2, 32768, ROMTYPE_EVEN | ROMTYPE_8BIT, NULL, 0x541b5988, 0x3546517b, 0x57cecd2f, 0x9fbfcd0c, 0xf26fdbbf, 0xfb009e3e)
-       { _T("QuikPak 4060 XP v2.1"), 2, 1, 2, 1, _T("QUIKPAK\0"), 32768, 239, 0, 0, ROMTYPE_CB_QUIKPAK, 0, 0, NULL,
+       { _T("QuikPak 4060 XP v2.1"), 2, 1, 2, 1, _T("QUIKPAK\0"), 32768, 239, 0, 0, ROMTYPE_CB_QUIKPAKXP, 0, 0, NULL,
        0x3a8eb518, 0x902dd0ba, 0x56c2afd0, 0xbb425bf5, 0x264fbc62, 0x90ad2c4e, NULL, NULL },
-       { _T("QuikPak 4060 XP v2.2"), 2, 2, 2, 2, _T("QUIKPAK\0"), 65536, 319, 0, 0, ROMTYPE_CB_QUIKPAK, 0, 0, NULL,
+       { _T("QuikPak 4060 XP v2.2"), 2, 2, 2, 2, _T("QUIKPAK\0"), 65536, 319, 0, 0, ROMTYPE_CB_QUIKPAKXP, 0, 0, NULL,
        0x47009144, 0x547fd232, 0xd774e872, 0x37a83d30, 0xeb06e3d6, 0xb88456c2, NULL, NULL },
        { _T("QuikPak 4060"), 0, 0, 0, 0, _T("QUIKPAK\0"), 32768, 320, 0, 0, ROMTYPE_CB_QUIKPAK, 0, 0, NULL,
        0x2b12aa6d, 0x023cd8a5, 0x7f24a992, 0x12d64c93, 0x69da614a, 0x3f6d0932, NULL, NULL },