From 27e83d1b5a304c829703f4fefe2fd0ac037d7fc8 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Mon, 6 Jul 2020 22:28:59 +0300 Subject: [PATCH] GVP A1230 Jaws Turbo+ --- cpuboard.cpp | 29 +++++++++++++++++++++++++++++ expansion.cpp | 10 +++++++++- include/cpuboard.h | 5 +++-- include/rommgr.h | 1 + rommgr.cpp | 6 ++++-- 5 files changed, 46 insertions(+), 5 deletions(-) diff --git a/cpuboard.cpp b/cpuboard.cpp index de4e6424..fc8a499b 100644 --- a/cpuboard.cpp +++ b/cpuboard.cpp @@ -356,6 +356,10 @@ static bool is_tqm(struct uae_prefs *p) { return ISCPUBOARDP(p, BOARD_HARDITAL, BOARD_HARDITAL_SUB_TQM); } +static bool is_a1230s1(struct uae_prefs *p) +{ + return ISCPUBOARDP(p, BOARD_GVP, BOARD_GVP_SUB_A1230SI); +} static bool is_a1230s2(struct uae_prefs *p) { return ISCPUBOARDP(p, BOARD_GVP, BOARD_GVP_SUB_A1230SII); @@ -1653,6 +1657,9 @@ void cpuboard_map(void) if (is_apollo(&currprefs)) { map_banks(&blizzardf0_bank, 0xf00000 >> 16, 131072 >> 16, 0); } + if (is_a1230s1(&currprefs)) { + map_banks(&blizzardf0_bank, 0xf00000 >> 16, 65536 >> 16, 0); + } if (is_dkb_wildfire(&currprefs)) { map_banks(&blizzardf0_bank, 0xf00000 >> 16, 0x80000 >> 16, 0); } @@ -1687,6 +1694,12 @@ void cpuboard_map(void) } } + if (is_a1230s1(&currprefs)) { + if (cpuboardmem1_bank.allocated_size) { + map_banks(&cpuboardmem1_bank, cpuboardmem1_bank.start >> 16, cpuboardmem1_bank.allocated_size >> 16, cpuboardmem1_bank.allocated_size >> 16); + } + } + if (is_falcon40(&currprefs)) { map_banks(&blizzardram_bank, blizzardram_bank.start >> 16, cpuboard_size >> 16, 0); } @@ -1860,6 +1873,13 @@ static void cpuboard_init_2(void) } } + } else if (is_a1230s1(&currprefs)) { + + blizzardf0_bank.start = 0x00f00000; + blizzardf0_bank.reserved_size = 65536; + blizzardf0_bank.mask = blizzardf0_bank.reserved_size - 1; + mapped_malloc(&blizzardf0_bank); + } else if (is_aca500(&currprefs)) { blizzardf0_bank.start = 0x00f00000; @@ -2598,6 +2618,9 @@ bool cpuboard_autoconfig_init(struct autoconfig_info *aci) case BOARD_GVP_SUB_QUIKPAK: romtype = romtype = ROMTYPE_CB_QUIKPAK; break; + case BOARD_GVP_SUB_A1230SI: + romtype = romtype = ROMTYPE_CB_A1230S1; + break; } break; @@ -2812,6 +2835,12 @@ bool cpuboard_autoconfig_init(struct autoconfig_info *aci) autoconf = false; aci->start = 0xf00000; aci->size = f0rom_size; + } else if (is_a1230s1(p)) { + f0rom_size = 65536; + zfile_fread(blizzardf0_bank.baseaddr, 1, 32768, autoconfig_rom); + autoconf = false; + aci->start = 0xf00000; + aci->size = f0rom_size; } else if (is_fusionforty(p)) { f0rom_size = 262144; zfile_fread(blizzardf0_bank.baseaddr, 1, 131072, autoconfig_rom); diff --git a/expansion.cpp b/expansion.cpp index e2aad7c2..7728e490 100644 --- a/expansion.cpp +++ b/expansion.cpp @@ -6137,13 +6137,21 @@ static const struct cpuboardsubtype gvpboard_sub[] = { BOARD_MEMORY_HIGHMEM, 128 * 1024 * 1024 }, + { + _T("A1230 Turbo+"), + _T("A1230SI"), + ROMTYPE_CB_A1230S1, 0, 3, + NULL, 0, + BOARD_MEMORY_25BITMEM, + 32 * 1024 * 1024 + }, { _T("A1230 Turbo+ Series II"), _T("A1230SII"), ROMTYPE_CB_A1230S2, 0, 3, gvp_s2_add_accelerator_scsi_unit, EXPANSIONTYPE_SCSI, BOARD_MEMORY_25BITMEM, - 128 * 1024 * 1024, + 32 * 1024 * 1024, 0, gvp_init_accelerator, NULL, BOARD_AUTOCONFIG_Z2, 1, gvpa1230s2_settings, NULL, diff --git a/include/cpuboard.h b/include/cpuboard.h index d1ee9753..92f6b666 100644 --- a/include/cpuboard.h +++ b/include/cpuboard.h @@ -68,8 +68,9 @@ void cpuboard_gvpmaprom(int); #define BOARD_GVP_SUB_A530 2 #define BOARD_GVP_SUB_GFORCE030 3 #define BOARD_GVP_SUB_TEKMAGIC 4 -#define BOARD_GVP_SUB_A1230SII 5 -#define BOARD_GVP_SUB_QUIKPAK 6 +#define BOARD_GVP_SUB_A1230SI 5 +#define BOARD_GVP_SUB_A1230SII 6 +#define BOARD_GVP_SUB_QUIKPAK 7 #define BOARD_KUPKE 6 diff --git a/include/rommgr.h b/include/rommgr.h index b061c3eb..220379f1 100644 --- a/include/rommgr.h +++ b/include/rommgr.h @@ -51,6 +51,7 @@ extern int decode_cloanto_rom_do (uae_u8 *mem, int size, int real_size); #define ROMTYPE_CB_QUIKPAK 0x0004001e #define ROMTYPE_CB_12GAUGE 0x0004001f #define ROMTYPE_CB_HARMS3KP 0x00040020 +#define ROMTYPE_CB_A1230S1 0x00040021 #define ROMTYPE_FREEZER 0x00080000 #define ROMTYPE_AR 0x00080001 diff --git a/rommgr.cpp b/rommgr.cpp index ab235b46..9052d645 100644 --- a/rommgr.cpp +++ b/rommgr.cpp @@ -95,7 +95,7 @@ struct romdata *getromdatabypath (const TCHAR *path) return NULL; } -#define NEXT_ROM_ID 260 +#define NEXT_ROM_ID 261 #define ALTROM(id,grp,num,size,flags,crc32,a,b,c,d,e) \ { _T("X"), 0, 0, 0, 0, 0, size, id, 0, 0, flags, (grp << 16) | num, 0, NULL, crc32, a, b, c, d, e }, @@ -413,6 +413,8 @@ static struct romdata roms[] = { 0xa2ba67d1, 0x2015685f, 0xaadfbaf6, 0x8b19b07e, 0x5f4e888f, 0x738b99d7, NULL, NULL }, { _T("GVP A1230 Turbo+ Series II"), 0, 0, 0, 0, _T("A1230SII\0"), 16384, 230, 0, 0, ROMTYPE_CB_A1230S2, 0, 0, NULL, 0x96bd351f, 0xb7648daf, 0x52d0732d, 0x897548f3, 0x29ebf624, 0x101474d5, NULL, NULL }, + { _T("GVP A1230 Turbo+"), 0, 0, 0, 0, _T("A1230SI\0"), 16384, 260, 0, 0, ROMTYPE_CB_A1230S1, 0, 0, NULL, + 0x3f0b8d7a, 0x258c6ee7, 0x5d8dfee5, 0x7871c5be, 0x79a83fa3, 0xca53a1a9, NULL, NULL }, { _T("Harms 3000 Professional"), 0, 0, 0, 00, _T("HARMS3000PRO\0"), 65536, 248, 0, 0, ROMTYPE_CB_HARMS3KP, 0, 0, NULL, 0x80da32b5,0x0a3ded88,0x20a24238,0xd3e43baf,0x7163226c,0x861e2d88, NULL, NULL }, ALTROMPN(248, 1, 1, 32768, ROMTYPE_ODD | ROMTYPE_8BIT, NULL, 0xc22c5ee5, 0xc211f305, 0xacb2ce10, 0x32b1b296, 0xc5780dde, 0x78dba814) @@ -579,7 +581,7 @@ static struct romdata roms[] = { { _T("Microbotics HardFrame v1.5"), 1, 5, 1, 5, _T("HARDFRAME\0"), 32768, 173, 0, 0, ROMTYPE_HARDFRAME, 0, 0, NULL, 0x8d144212, 0xc5a4f497, 0x5216c1b1, 0xe08760d0, 0x0bd579ef, 0xea226354, NULL, NULL }, { _T("Microbotics HardFrame v1.8"), 1, 8, 1, 8, _T("HARDFRAME\0"), 32768, 258, 0, 0, ROMTYPE_HARDFRAME, 0, 0, NULL, - 0x10de5e2d, 0x3e25af5, 0x9e6bb0d69, 0xd925f07b, 0x200b1b0e, 0x45e57d33, NULL, NULL }, + 0x10de5e2d, 0x3e25af59, 0xe6bb0d69, 0xd925f07b, 0x200b1b0e, 0x45e57d33, NULL, NULL }, { _T("Microbotics HardFrame v1.9"), 1, 9, 1, 9, _T("HARDFRAME\0"), 32768, 256, 0, 0, ROMTYPE_HARDFRAME, 0, 0, NULL, 0x948a3de8, 0xc34cb0ef, 0xa0ebdd71, 0x9d604d38, 0x625a160d, 0x9e2ca95d, NULL, NULL }, { _T("Mainhattan Data A-Team v1.8"), 1, 8, 1, 8, _T("ATEAM\0"), 65536, 174, 0, 0, ROMTYPE_ATEAM, 0, 0, NULL, -- 2.47.3