From c9af906a1c6817636e2a8cd1bc7e06cb21e73467 Mon Sep 17 00:00:00 2001 From: Toni Wilen Date: Sat, 21 Sep 2024 20:23:43 +0300 Subject: [PATCH] Fix TekMagic RAM mapping. --- cpuboard.cpp | 28 ++++++++++++++++++++++++++-- expansion.cpp | 2 +- 2 files changed, 27 insertions(+), 3 deletions(-) diff --git a/cpuboard.cpp b/cpuboard.cpp index fd2e110b..6f200cd0 100644 --- a/cpuboard.cpp +++ b/cpuboard.cpp @@ -1651,7 +1651,7 @@ void cpuboard_map(void) map_banks(&dummy_bank, 0xf00000 >> 16, 0x80000 >> 16, 0); } } - if (is_tekmagic(&currprefs) || is_quikpak(&currprefs) || is_trexii(&currprefs)) { + if (is_quikpak(&currprefs) || is_trexii(&currprefs)) { map_banks(&blizzardf0_bank, 0xf00000 >> 16, 131072 >> 16, 0); map_banks(&blizzardea_bank, 0xf40000 >> 16, 65536 >> 16, 0); } @@ -1713,6 +1713,14 @@ void cpuboard_map(void) } } + if (is_tekmagic(&currprefs)) { + map_banks(&blizzardf0_bank, 0xf00000 >> 16, 131072 >> 16, 0); + map_banks(&blizzardea_bank, 0xf40000 >> 16, 65536 >> 16, 0); + 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); } @@ -1989,7 +1997,23 @@ static void cpuboard_init_2(void) blizzardram_bank.label = _T("fusionforty"); mapped_malloc(&blizzardram_bank); - } else if (is_tekmagic(&currprefs) || is_quikpak(&currprefs) || is_trexii(&currprefs)) { + } else if (is_tekmagic(&currprefs)) { + + blizzardf0_bank.start = 0x00f00000; + blizzardf0_bank.reserved_size = 131072; + blizzardf0_bank.mask = blizzardf0_bank.reserved_size - 1; + mapped_malloc(&blizzardf0_bank); + + blizzardea_bank.reserved_size = 65536; + blizzardea_bank.mask = blizzardea_bank.reserved_size - 1; + mapped_malloc(&blizzardea_bank); + + cpuboardmem1_bank.start = 0x02000000; + cpuboardmem1_bank.reserved_size = cpuboard_size; + cpuboardmem1_bank.mask = cpuboardmem1_bank.reserved_size - 1; + mapped_malloc(&cpuboardmem1_bank); + + } else if (is_quikpak(&currprefs) || is_trexii(&currprefs)) { blizzardf0_bank.start = 0x00f00000; blizzardf0_bank.reserved_size = 131072; diff --git a/expansion.cpp b/expansion.cpp index f84e3714..a71f6da9 100644 --- a/expansion.cpp +++ b/expansion.cpp @@ -6446,7 +6446,7 @@ static const struct cpuboardsubtype gvpboard_sub[] = { _T("TekMagic"), ROMTYPE_CB_TEKMAGIC, 0, 4, tekmagic_add_scsi_unit, EXPANSIONTYPE_SCSI, - BOARD_MEMORY_HIGHMEM, + BOARD_MEMORY_25BITMEM, 128 * 1024 * 1024 }, { -- 2.47.3