From: Toni Wilen Date: Sun, 17 Aug 2025 16:22:29 +0000 (+0300) Subject: GVP QuikPak non-XP accelerator board + ROM. X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=01b75e66412426070b74b2d9a43112e31cc14cb2;p=francis%2Fwinuae.git GVP QuikPak non-XP accelerator board + ROM. --- diff --git a/cpuboard.cpp b/cpuboard.cpp index 6cbb2e37..de95dd5f 100644 --- a/cpuboard.cpp +++ b/cpuboard.cpp @@ -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); diff --git a/expansion.cpp b/expansion.cpp index 5a052f8a..fc51225c 100644 --- a/expansion.cpp +++ b/expansion.cpp @@ -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, diff --git a/include/cpuboard.h b/include/cpuboard.h index 4c30ea54..47abc17a 100644 --- a/include/cpuboard.h +++ b/include/cpuboard.h @@ -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 diff --git a/include/rommgr.h b/include/rommgr.h index 13924a8f..ec034dba 100644 --- a/include/rommgr.h +++ b/include/rommgr.h @@ -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 diff --git a/rommgr.cpp b/rommgr.cpp index 8500f4aa..c4945a2a 100644 --- a/rommgr.cpp +++ b/rommgr.cpp @@ -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 },