--- previous/src/gui-sdl/dlgAdvanced.c 2018/04/24 19:28:22 1.1 +++ previous/src/gui-sdl/dlgAdvanced.c 2018/04/24 19:32:49 1.1.1.4 @@ -1,15 +1,9 @@ /* - Hatari - dlgSystem.c + Previous - dlgSystem.c This file is distributed under the GNU Public License, version 2 or at your option any later version. Read the file gpl.txt for details. - This file contains 2 system panels : - - 1 for the old uae CPU - - 1 for the new WinUae cpu - - The selection is made during compilation with the ENABLE_WINUAE_CPU define - */ const char DlgAdvanced_fileid[] = "Hatari dlgAdvanced.c : " __DATE__ " " __TIME__; @@ -19,79 +13,205 @@ const char DlgAdvanced_fileid[] = "Hatar #include "sdlgui.h" -#define DLGADV_68030 4 -#define DLGADV_68040 5 -#define DLGADV_68060 6 - -#define DLGADV_16MHZ 9 -#define DLGADV_20MHZ 10 -#define DLGADV_25MHZ 11 -#define DLGADV_33MHZ 12 -#define DLGADV_40MHZ 13 - -#define DLGADV_FPU68881 16 -#define DLGADV_FPU68882 17 -#define DLGADV_FPU040 18 - -#define DLGADV_SCSI_OLD 21 -#define DLGADV_SCSI_NEW 22 - -#define DLGADV_RTC_OLD 25 -#define DLGADV_RTC_NEW 26 +#define DLGADV_REALTIME 4 +#define DLGADV_16MHZ 5 +#define DLGADV_20MHZ 6 +#define DLGADV_25MHZ 7 +#define DLGADV_33MHZ 8 +#define DLGADV_40MHZ 9 + +#define DLGADV_CUSTOM 12 +#define DLGADV_8MB 13 +#define DLGADV_16MB 14 +#define DLGADV_32MB 15 +#define DLGADV_64MB 16 +#define DLGADV_128MB 17 + +#define DLGADV_120NS 20 +#define DLGADV_100NS 21 +#define DLGADV_80NS 22 +#define DLGADV_60NS 23 + +#define DLGADV_DSPNONE 26 +#define DLGADV_DSP56001 27 +#define DLGADV_DSPMEM24 29 +#define DLGADV_DSPMEM96 30 + +#define DLGADV_NBIC 33 + +#define DLGADV_SCSI_OLD 36 +#define DLGADV_SCSI_NEW 37 + +#define DLGADV_RTC_OLD 40 +#define DLGADV_RTC_NEW 41 -#define DLGADV_ADB 29 +#define DLGADV_EXIT 42 -#define DLGADV_EXIT 30 +char custom_memory[16] = "Customize"; +#define DLG_VAR_Y 16 +#define DLG_MEM_Y 16 static SGOBJ advanceddlg[] = { - { SGBOX, 0, 0, 0,0, 57,29, NULL }, - { SGTEXT, 0, 0, 18,1, 14,1, "Advanced system options" }, + { SGBOX, 0, 0, 0,0, 63,31, NULL }, + { SGTEXT, 0, 0, 20,1, 23,1, "Advanced system options" }, - { SGBOX, 0, 0, 2,3, 14,13, NULL }, - { SGTEXT, 0, 0, 3,4, 14,1, "CPU type" }, - { SGRADIOBUT, 0, 0, 4,6, 7,1, "68030" }, - { SGRADIOBUT, 0, 0, 4,8, 7,1, "68040" }, - { SGRADIOBUT, 0, 0, 4,10, 7,1, "68060" }, - - { SGBOX, 0, 0, 17,3, 14,13, NULL }, - { SGTEXT, 0, 0, 18,4, 14,1, "CPU clock" }, - { SGRADIOBUT, 0, 0, 19,6, 8,1, "16 MHz" }, - { SGRADIOBUT, 0, 0, 19,8, 8,1, "20 MHz" }, - { SGRADIOBUT, 0, 0, 19,10, 8,1, "25 MHz" }, - { SGRADIOBUT, 0, 0, 19,12, 8,1, "33 MHz" }, - { SGRADIOBUT, 0, 0, 19,14, 8,1, "40 MHz" }, - - { SGBOX, 0, 0, 32,3, 23,13, NULL }, - { SGTEXT, 0, 0, 33,4, 14,1, "FPU type" }, - { SGRADIOBUT, 0, 0, 34,6, 7,1, "68881" }, - { SGRADIOBUT, 0, 0, 34,8, 7,1, "68882" }, - { SGRADIOBUT, 0, 0, 34,10, 16,1, "68040 internal" }, - - { SGBOX, 0, 0, 2,17, 18,7, NULL }, - { SGTEXT, 0, 0, 3,18, 14,1, "SCSI controller" }, - { SGRADIOBUT, 0, 0, 4,20, 10,1, "NCR53C90" }, - { SGRADIOBUT, 0, 0, 4,22, 11,1, "NCR53C90A" }, - - { SGBOX, 0, 0, 21,17, 16,7, NULL }, - { SGTEXT, 0, 0, 22,18, 14,1, "RTC chip" }, - { SGRADIOBUT, 0, 0, 23,20, 12,1, "MC68HC68T1" }, - { SGRADIOBUT, 0, 0, 23,22, 9,1, "MCS1850" }, - - { SGBOX, 0, 0, 38,17, 17,7, NULL }, - { SGTEXT, 0, 0, 39,18, 14,1, "ADB" }, - { SGCHECKBOX, 0, 0, 40,20, 13,1, "Emulate ADB" }, - - { SGBUTTON, SG_DEFAULT, 0, 18,26, 22,1, "Back to system menu" }, + { SGBOX, 0, 0, 2,3, 14,15, NULL }, + { SGTEXT, 0, 0, 3,4, 12,1, "CPU clock" }, + { SGRADIOBUT, 0, 0, 4,DLG_VAR_Y, 10,1, "Variable" }, + { SGRADIOBUT, 0, 0, 4,6, 8,1, "16 MHz" }, + { SGRADIOBUT, 0, 0, 4,8, 8,1, "20 MHz" }, + { SGRADIOBUT, 0, 0, 4,10, 8,1, "25 MHz" }, + { SGRADIOBUT, 0, 0, 4,12, 8,1, "33 MHz" }, + { SGRADIOBUT, 0, 0, 4,14, 8,1, "40 MHz" }, + + { SGBOX, 0, 0, 17,3, 14,15, NULL }, + { SGTEXT, 0, 0, 18,4, 12,1, "Memory size" }, + { SGRADIOBUT, 0, 0, 19,DLG_MEM_Y, 8,1, custom_memory }, + { SGRADIOBUT, 0, 0, 19,6, 6,1, "8 MB" }, + { SGRADIOBUT, 0, 0, 19,8, 7,1, "16 MB" }, + { SGRADIOBUT, 0, 0, 19,10, 7,1, "32 MB" }, + { SGRADIOBUT, 0, 0, 19,12, 7,1, "64 MB" }, + { SGRADIOBUT, 0, 0, 19,14, 8,1, "128 MB" }, + + { SGBOX, 0, 0, 32,3, 14,15, NULL }, + { SGTEXT, 0, 0, 33,4, 12,1, "Memory speed" }, + { SGRADIOBUT, 0, 0, 34,6, 8,1, "120 ns" }, + { SGRADIOBUT, 0, 0, 34,8, 8,1, "100 ns" }, + { SGRADIOBUT, 0, 0, 34,10, 7,1, "80 ns" }, + { SGRADIOBUT, 0, 0, 34,12, 7,1, "60 ns" }, + + { SGBOX, 0, 0, 47,3, 14,15, NULL }, + { SGTEXT, 0, 0, 48,4, 12,1, "DSP type" }, + { SGRADIOBUT, 0, 0, 49,6, 6,1, "none" }, + { SGRADIOBUT, 0, 0, 49,8, 7,1, "56001" }, + { SGTEXT, 0, 0, 48,10, 8,1, "DSP memory" }, + { SGRADIOBUT, 0, 0, 49,12, 7,1, "24 kB" }, + { SGRADIOBUT, 0, 0, 49,14, 7,1, "96 kB" }, + + { SGBOX, 0, 0, 2,19, 19,7, NULL }, + { SGTEXT, 0, 0, 3,20, 14,1, "NBIC" }, + { SGCHECKBOX, 0, 0, 4,22, 10,1, "present" }, + + { SGBOX, 0, 0, 22,19, 19,7, NULL }, + { SGTEXT, 0, 0, 23,20, 14,1, "SCSI chip" }, + { SGRADIOBUT, 0, 0, 24,22, 10,1, "NCR53C90" }, + { SGRADIOBUT, 0, 0, 24,24, 11,1, "NCR53C90A" }, + + { SGBOX, 0, 0, 42,19, 19,7, NULL }, + { SGTEXT, 0, 0, 43,20, 14,1, "RTC chip" }, + { SGRADIOBUT, 0, 0, 44,22, 12,1, "MC68HC68T1" }, + { SGRADIOBUT, 0, 0, 44,24, 10,1, "MCCS1850" }, + + { SGBUTTON, SG_DEFAULT, 0, 20,28, 23,1, "Back to system menu" }, { -1, 0, 0, 0,0, 0,0, NULL } }; +/* Variable objects */ +SGOBJ disable_128mb_opt = { SGTEXT, 0, 0, 19,14, 0,1, "" }; +SGOBJ enable_128mb_opt = { SGRADIOBUT, 0, 0, 19,14, 8,1, "128 MB" }; +SGOBJ disable_64mb_opt = { SGTEXT, 0, 0, 19,12, 0,1, "" }; +SGOBJ enable_64mb_opt = { SGRADIOBUT, 0, 0, 19,12, 7,1, "64 MB" }; +SGOBJ disable_40mhz_opt = { SGTEXT, 0, 0, 4,14, 0,1, "" }; +SGOBJ enable_40mhz_opt = { SGRADIOBUT, 0, 0, 4,14, 8,1, "40 MHz" }; + +/* Default configuration constants */ +int defmemsize[9][4] = { + { 4, 4, 0, 0}, /* 8 MB for monochrome non-turbo */ + { 8, 0, 0, 0}, /* 8 MB for turbo and non-turbo color */ + {16, 0, 0, 0}, /* 16 MB for monochrome non-turbo */ + { 8, 8, 0, 0}, /* 16 MB for turbo and non-turbo color */ + {16,16, 0, 0}, /* 32 MB for monochrome non-turbo */ + { 8, 8, 8, 8}, /* 32 MB for turbo and non-turbo color */ + {16,16,16,16}, /* 64 MB for monochrome non-turbo */ + {32,32, 0, 0}, /* 64 MB for turbo */ + {32,32,32,32} /* 128 MB for turbo */ +}; +int defmemsizecount=0; /* Compare defsizes up to this value */ + +/*-----------------------------------------------------------------------*/ +/** + * Draw the memory options. + */ +static void Dialog_AdvancedDlg_MemDraw(void) { + int i; + int memsum, memsize; + + sprintf(custom_memory, "Customize"); + + for (i = DLGADV_CUSTOM; i <= DLGADV_128MB; i++) + { + advanceddlg[i].state &= ~SG_SELECTED; + } + + for (i = DLGADV_120NS; i <= DLGADV_60NS; i++) + { + advanceddlg[i].state &= ~SG_SELECTED; + } + + /* Check memory configuration and find out if it is one of our default configurations */ + memsum = Configuration_CheckMemory(ConfigureParams.Memory.nMemoryBankSize); + + for (i=0; i