]> git.unchartedbackwaters.co.uk Git - francis/winuae.git/commitdiff
1M chip address jumper emulation.
authorToni Wilen <twilen@winuae.net>
Sun, 23 Nov 2014 15:19:09 +0000 (17:19 +0200)
committerToni Wilen <twilen@winuae.net>
Sun, 23 Nov 2014 15:19:09 +0000 (17:19 +0200)
cfgfile.cpp
custom.cpp
include/options.h
main.cpp
memory.cpp
od-win32/resources/resource.h
od-win32/resources/winuae.rc
od-win32/win32gui.cpp

index 1e3dd3faeb072bfd1be7a4f70908994a13b0f2a8..8953218c62c04ccd9ad6582c053ec4f71f7340bb 100644 (file)
@@ -1488,6 +1488,7 @@ void cfgfile_save_options (struct zfile *f, struct uae_prefs *p, int type)
        cfgfile_dwrite_bool (f, _T("ics_agnus"), p->cs_dipagnus);
        cfgfile_dwrite_bool (f, _T("cia_todbug"), p->cs_ciatodbug);
        cfgfile_dwrite_bool (f, _T("z3_autoconfig"), p->cs_z3autoconfig);
+       cfgfile_dwrite_bool (f, _T("1mchipjumper"), p->cs_1mchipjumper);
        cfgfile_dwrite (f, _T("chipset_hacks"), _T("0x%x"), p->cs_hacks);
 
        cfgfile_dwrite_str (f, _T("z3mapping"), z3mapping[p->z3_mapping_mode]);
@@ -3659,6 +3660,7 @@ static int cfgfile_parse_hardware (struct uae_prefs *p, const TCHAR *option, TCH
                || cfgfile_yesno (option, value, _T("denise_noehb"), &p->cs_denisenoehb)
                || cfgfile_yesno (option, value, _T("ics_agnus"), &p->cs_dipagnus)
                || cfgfile_yesno (option, value, _T("z3_autoconfig"), &p->cs_z3autoconfig)
+               || cfgfile_yesno (option, value, _T("1mchipjumper"), &p->cs_1mchipjumper)
                || cfgfile_yesno (option, value, _T("agnus_bltbusybug"), &p->cs_agnusbltbusybug)
                || cfgfile_yesno (option, value, _T("fastmem_autoconfig"), &p->fastmem_autoconfig)
                || cfgfile_yesno (option, value, _T("gfxcard_hardware_vblank"), &p->rtg_hardwareinterrupt)
@@ -5737,6 +5739,7 @@ static void buildin_default_prefs (struct uae_prefs *p)
        p->cs_df0idhw = 1;
        p->cs_resetwarning = 0;
        p->cs_ciatodbug = false;
+       p->cs_1mchipjumper = false;
 
        _tcscpy (p->romextfile, _T(""));
        _tcscpy (p->romextfile2, _T(""));
index 1d5c39cb3a0f81f51696cefc39100a6c22f9544f..a9d8b1429bc38bf3b09167ef565ae95fb41a7827 100644 (file)
@@ -9207,6 +9207,7 @@ uae_u8 *restore_custom_extra (uae_u8 *src)
        currprefs.cs_ksmirror_e0 = changed_prefs.cs_ksmirror_e0 = RBB;
        currprefs.cs_resetwarning = changed_prefs.cs_resetwarning = RBB;
        currprefs.cs_z3autoconfig = changed_prefs.cs_z3autoconfig = RBB;
+       currprefs.cs_1mchipjumper = changed_prefs.cs_1mchipjumper = RBB;
 
        return src;
 }
@@ -9259,6 +9260,7 @@ uae_u8 *save_custom_extra (int *len, uae_u8 *dstptr)
        SB (currprefs.cs_ksmirror_e0 ? 1 : 0);
        SB (currprefs.cs_resetwarning ? 1 : 0);
        SB (currprefs.cs_z3autoconfig ? 1 : 0);
+       SB (currprefs.cs_1mchipjumper ? 1 : 0);
 
        *len = dst - dstbak;
        return dstbak;
index cbd991a5c742eb4e302a6214a0df3f570841d707..b16ed65904c95c5cffd6ec40d9c7601cec658b78 100644 (file)
@@ -467,6 +467,7 @@ struct uae_prefs {
        bool cs_agnusbltbusybug;
        bool cs_ciatodbug;
        bool cs_z3autoconfig;
+       bool cs_1mchipjumper;
        int cs_hacks;
 
        struct boardromconfig a2091rom;
index 227cd6f99f00db7e80205308578eda8cbed844db..f1429aedafc63c838e55cf1a879fcc4a467685f2 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -586,6 +586,9 @@ void fixup_prefs (struct uae_prefs *p)
                                p->cs_ramseyrev = 0x0f;
                }
        }
+       if (p->chipmem_size >= 0x100000)
+               p->cs_1mchipjumper = true;
+
        /* Can't fit genlock and A2024 or Graffiti at the same time,
         * also Graffiti uses genlock audio bit as an enable signal
         */
index b9475b374a77cd28c53f278e445b1d2f1cca8813..1bba5ef092132837331e40f5f8b3f7f9748b8003 100644 (file)
@@ -2074,9 +2074,11 @@ void map_overlay (int chip)
                        if ((currprefs.chipset_mask & CSMASK_ECS_AGNUS) && bogomem_bank.allocated == 0) {
                                int start = chipmem_bank.allocated >> 16;
                                if (chipmem_bank.allocated < 0x100000) {
-                                       int dummy = (0x100000 - chipmem_bank.allocated) >> 16;
-                                       map_banks (&chipmem_dummy_bank, start, dummy, 0);
-                                       map_banks (&chipmem_dummy_bank, start + 16, dummy, 0);
+                                       if (currprefs.cs_1mchipjumper) {
+                                               int dummy = (0x100000 - chipmem_bank.allocated) >> 16;
+                                               map_banks (&chipmem_dummy_bank, start, dummy, 0);
+                                               map_banks (&chipmem_dummy_bank, start + 16, dummy, 0);
+                                       }
                                } else if (chipmem_bank.allocated < 0x200000 && chipmem_bank.allocated > 0x100000) {
                                        int dummy = (0x200000 - chipmem_bank.allocated) >> 16;
                                        map_banks (&chipmem_dummy_bank, start, dummy, 0);
index 61e480d049958d2819223fab130677ea8dc41b85..644b3ef15d7f329e1ef17b50bb9d604204c9d21b 100644 (file)
 #define IDC_DBG_MEMINPUT                1753
 #define IDC_CS_Z3AUTOCONFIG             1753
 #define IDC_DBG_MEMDOWN                 1754
+#define IDC_CS_1MCHIPJUMPER             1754
 #define IDC_DBG_MEMUP                   1755
 #define IDC_DBG_MEM                     1756
 #define IDC_DBG_DASM                    1757
index c779102c229715740913c2782e144796d1c6b75c..a3b1c7293bcebdcf35d41f3e10c86b6e794ddb0a 100644 (file)
@@ -696,22 +696,22 @@ BEGIN
                     "Button",BS_AUTORADIOBUTTON | WS_TABSTOP,182,147,181,10
 END
 
-IDD_CHIPSET2 DIALOGEX 0, 0, 396, 296
+IDD_CHIPSET2 DIALOGEX 0, 0, 396, 305
 STYLE DS_LOCALEDIT | DS_SETFONT | DS_3DLOOK | DS_CONTROL | WS_CHILD
 FONT 8, "MS Sans Serif", 0, 0, 0x0
 BEGIN
     CONTROL         "Compatible Settings",IDC_CS_COMPATIBLE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,6,234,10
-    GROUPBOX        "Battery Backed Up Real Time Clock",IDC_STATIC,1,22,393,31
+    GROUPBOX        "Battery Backed Up Real Time Clock",IDC_STATIC,1,22,394,31
     CONTROL         "None",IDC_CS_RTC1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,15,36,57,10
     CONTROL         "MSM6242B",IDC_CS_RTC2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,90,36,77,10
     CONTROL         "RF5C01A",IDC_CS_RTC3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,171,36,67,10
     CONTROL         "A2000 MSM6242B",IDC_CS_RTC4,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,242,36,78,10
     EDITTEXT        IDC_CS_RTCADJUST,325,34,64,13,ES_AUTOHSCROLL
-    GROUPBOX        "CIA-A TOD Clock Source",IDC_STATIC,1,56,393,29
+    GROUPBOX        "CIA-A TOD Clock Source",IDC_STATIC,1,56,394,29
     CONTROL         "Vertical Sync",IDC_CS_CIAA_TOD1,"Button",BS_AUTORADIOBUTTON | WS_GROUP | WS_TABSTOP,41,68,86,10
     CONTROL         "Power Supply 50Hz",IDC_CS_CIAA_TOD2,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,133,68,109,10
     CONTROL         "Power Supply 60Hz",IDC_CS_CIAA_TOD3,"Button",BS_AUTORADIOBUTTON | WS_TABSTOP,249,68,116,10
-    GROUPBOX        "Chipset Features",IDC_STATIC,0,88,393,110
+    GROUPBOX        "Chipset Features",IDC_STATIC,0,88,395,123
     CONTROL         "CIA ROM Overlay",IDC_CS_CIAOVERLAY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,102,104,11
     CONTROL         "CD32 CD",IDC_CS_CD32CD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,116,104,11
     CONTROL         "CDTV CD",IDC_CS_CDTVCD,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,130,105,11
@@ -731,21 +731,22 @@ BEGIN
     CONTROL         "PCMCIA",IDC_CS_PCMCIA,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,156,125,11
     CONTROL         "C00000 is Fast RAM",IDC_CS_SLOWISFAST,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,170,125,11
     CONTROL         "A1000 Agnus (8361/8367)",IDC_CS_DIPAGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,184,125,11
-    GROUPBOX        "Internal SCSI Hardware",IDC_STATIC,0,201,393,45
-    CONTROL         "A3000 WD33C93 SCSI",IDC_CS_DMAC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,216,121,11
-    CONTROL         "CDTV WD33C93 SCSI",IDC_CS_CDTVSCSI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,229,121,11
-    CONTROL         "A4000T NCR53C710 SCSI",IDC_CS_DMAC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,171,216,125,11
-    GROUPBOX        "Chipset Revision",IDC_STATIC,1,249,393,46
-    CONTROL         "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,261,97,11
-    CONTROL         "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,275,97,11
-    EDITTEXT        IDC_CS_RAMSEYREV,136,260,45,13,ES_AUTOHSCROLL
-    EDITTEXT        IDC_CS_FATGARYREV,136,275,45,13,ES_AUTOHSCROLL
-    CONTROL         "Agnus/Alice revision:",IDC_CS_AGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,261,107,11
-    CONTROL         "Denise/Lisa revision:",IDC_CS_DENISE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,275,107,11
-    EDITTEXT        IDC_CS_AGNUSREV,311,260,45,13,ES_AUTOHSCROLL
-    EDITTEXT        IDC_CS_DENISEREV,311,275,45,13,ES_AUTOHSCROLL
+    GROUPBOX        "Internal SCSI Hardware",IDC_STATIC,0,212,395,45
+    CONTROL         "A3000 WD33C93 SCSI",IDC_CS_DMAC,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,227,121,11
+    CONTROL         "CDTV WD33C93 SCSI",IDC_CS_CDTVSCSI,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,240,121,11
+    CONTROL         "A4000T NCR53C710 SCSI",IDC_CS_DMAC2,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,171,227,125,11
+    GROUPBOX        "Chipset Revision",IDC_STATIC,1,259,393,46
+    CONTROL         "Ramsey revision:",IDC_CS_RAMSEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,275,97,11
+    CONTROL         "Fat Gary revision:",IDC_CS_FATGARY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,34,289,97,11
+    EDITTEXT        IDC_CS_RAMSEYREV,136,274,45,13,ES_AUTOHSCROLL
+    EDITTEXT        IDC_CS_FATGARYREV,136,288,45,13,ES_AUTOHSCROLL
+    CONTROL         "Agnus/Alice revision:",IDC_CS_AGNUS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,275,107,11
+    CONTROL         "Denise/Lisa revision:",IDC_CS_DENISE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,200,289,107,11
+    EDITTEXT        IDC_CS_AGNUSREV,311,274,45,13,ES_AUTOHSCROLL
+    EDITTEXT        IDC_CS_DENISEREV,311,289,45,13,ES_AUTOHSCROLL
     CONTROL         "Z3 Autoconfig",IDC_CS_Z3AUTOCONFIG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,127,184,104,11
     CONTROL         "CDTV-CR",IDC_CS_CDTVCR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,264,143,123,11
+    CONTROL         "1M Chip / 0.5M+0.5M",IDC_CS_1MCHIPJUMPER,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,197,104,11
 END
 
 IDD_AVIOUTPUT DIALOGEX 0, 0, 396, 260
index c183e3f4900ab1fad1b2ae33ec29d5904f9207f4..ea1058dd982374df3182f199baddfeeeecf28e4e 100644 (file)
@@ -7218,6 +7218,7 @@ static void values_to_chipsetdlg2 (HWND hDlg)
        CheckDlgButton (hDlg, IDC_CS_Z3AUTOCONFIG, workprefs.cs_z3autoconfig);
        CheckDlgButton (hDlg, IDC_CS_IDE1, workprefs.cs_ide > 0 && (workprefs.cs_ide & 1));
        CheckDlgButton (hDlg, IDC_CS_IDE2, workprefs.cs_ide > 0 && (workprefs.cs_ide & 2));
+       CheckDlgButton (hDlg, IDC_CS_1MCHIPJUMPER, workprefs.cs_1mchipjumper || workprefs.chipmem_size >= 0x100000);
        txt[0] = 0;
        _stprintf (txt, _T("%d"), workprefs.cs_rtc_adjust);
        SetDlgItemText(hDlg, IDC_CS_RTCADJUST, txt);
@@ -7295,6 +7296,7 @@ static void values_from_chipsetdlg2 (HWND hDlg, UINT msg, WPARAM wParam, LPARAM
                : (ischecked (hDlg, IDC_CS_CIAA_TOD2) ? 1 : 2);
        workprefs.cs_rtc = ischecked (hDlg, IDC_CS_RTC1) ? 0
                : ischecked (hDlg, IDC_CS_RTC2) ? 1 : ischecked (hDlg, IDC_CS_RTC3) ? 2 : 3;
+       workprefs.cs_1mchipjumper = ischecked (hDlg, IDC_CS_1MCHIPJUMPER);
 
        if (workprefs.cs_rtc) {
                txt[0] = 0;
@@ -7376,6 +7378,7 @@ static void enable_for_chipsetdlg2 (HWND hDlg)
        ew (hDlg, IDC_CS_RTC3, e);
        ew (hDlg, IDC_CS_RTC4, e);
        ew (hDlg, IDC_CS_RTCADJUST, e);
+       ew (hDlg, IDC_CS_1MCHIPJUMPER, e && workprefs.chipmem_size < 0x100000);
 }
 
 static INT_PTR CALLBACK ChipsetDlgProc2 (HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam)