|
|
1.1 root 1: /* 1.1.1.3 ! root 2: Previous - dlgMemory.c 1.1 root 3: 4: This file is distributed under the GNU Public License, version 2 or at 5: your option any later version. Read the file gpl.txt for details. 6: */ 1.1.1.3 ! root 7: const char DlgMemory_fileid[] = "Previous dlgMemory.c : " __DATE__ " " __TIME__; 1.1 root 8: 9: #include "main.h" 10: #include "dialog.h" 11: #include "sdlgui.h" 12: #include "memorySnapShot.h" 13: #include "file.h" 14: #include "screen.h" 15: 1.1.1.3 ! root 16: #define GUI_SAVE_MEMORY 0 1.1 root 17: 1.1.1.2 root 18: #define DLGMEM_8MB 4 19: #define DLGMEM_16MB 5 20: #define DLGMEM_32MB 6 21: #define DLGMEM_64MB 8 22: #define DLGMEM_128MB 9 23: #define DLGMEM_CUSTOM 7 24: 25: #define DLGMEM_120NS 12 26: #define DLGMEM_100NS 13 27: #define DLGMEM_80NS 14 28: #define DLGMEM_60NS 15 29: 1.1.1.3 ! root 30: #if GUI_SAVE_MEMORY 1.1.1.2 root 31: #define DLGMEM_FILENAME 19 32: #define DLGMEM_SAVE 20 33: #define DLGMEM_RESTORE 21 34: #define DLGMEM_AUTOSAVE 22 1.1 root 35: 1.1.1.2 root 36: #define DLGMEM_EXIT 23 1.1.1.3 ! root 37: #else ! 38: #define DLGMEM_EXIT 16 ! 39: #endif 1.1 root 40: 1.1.1.2 root 41: void Dialog_MemDlgDraw(void); 42: static char dlgSnapShotName[36+1]; 43: char custom_memsize[16] = "Customize"; 1.1 root 44: 45: /* The memory dialog: */ 46: static SGOBJ memorydlg[] = 47: { 1.1.1.3 ! root 48: #if GUI_SAVE_MEMORY 1.1.1.2 root 49: { SGBOX, 0, 0, 0,0, 41,28, NULL }, 1.1.1.3 ! root 50: #else ! 51: { SGBOX, 0, 0, 0,0, 41,18, NULL }, ! 52: #endif 1.1.1.2 root 53: { SGTEXT, 0, 0, 14,1, 12,1, "Memory options" }, 1.1 root 54: 1.1.1.2 root 55: { SGBOX, 0, 0, 1,3, 19,10, NULL }, 56: { SGTEXT, 0, 0, 2,4, 12,1, "Memory size" }, 57: { SGRADIOBUT, 0, 0, 3,6, 6,1, "8 MB" }, 58: { SGRADIOBUT, 0, 0, 3,7, 7,1, "16 MB" }, 59: { SGRADIOBUT, 0, 0, 3,8, 7,1, "32 MB" }, 60: { SGRADIOBUT, 0, 0, 3,11, 11,1, custom_memsize }, 61: { SGRADIOBUT, 0, 0, 3,9, 7,1, "64 MB" }, 62: { SGRADIOBUT, 0, 0, 3,10, 8,1, "128 MB" }, 63: 64: { SGBOX, 0, 0, 21,3, 19,10, NULL }, 65: { SGTEXT, 0, 0, 22,4, 12,1, "Memory speed" }, 66: { SGRADIOBUT, 0, 0, 23,6, 8,1, "120 ns" }, 67: { SGRADIOBUT, 0, 0, 23,7, 8,1, "100 ns" }, 68: { SGRADIOBUT, 0, 0, 23,8, 7,1, "80 ns" }, 69: { SGRADIOBUT, 0, 0, 23,9, 7,1, "60 ns" }, 1.1.1.3 ! root 70: ! 71: { SGBUTTON, SG_DEFAULT, 0, 10,15, 23,1, "Back to system menu" }, ! 72: #if GUI_SAVE_MEMORY 1.1.1.2 root 73: { SGBOX, 0, 0, 1,14, 39,10, NULL }, 74: { SGTEXT, 0, 0, 2,15, 17,1, "Load/Save memory state (untested)" }, 75: { SGTEXT, 0, 0, 2,17, 20,1, "Snap-shot file name:" }, 76: { SGTEXT, 0, 0, 2,18, 36,1, dlgSnapShotName }, 77: { SGBUTTON, 0, 0, 8,20, 10,1, "Save" }, 78: { SGBUTTON, 0, 0, 22,20, 10,1, "Restore" }, 79: { SGCHECKBOX, 0, 0, 2,22, 37,1, "Load/save state at start-up/exit" }, 1.1.1.3 ! root 80: ! 81: { SGBUTTON, SG_DEFAULT, 0, 10,26, 21,1, "Back to main menu" }, ! 82: #endif 1.1 root 83: { -1, 0, 0, 0,0, 0,0, NULL } 84: }; 85: 1.1.1.2 root 86: /* Variable objects */ 87: SGOBJ disable_128mb_option = { SGTEXT, 0, 0, 3,10, 8,1, " " }; 88: SGOBJ enable_128mb_option = { SGRADIOBUT, 0, 0, 3,10, 8,1, "128 MB" }; 89: SGOBJ disable_64mb_option = { SGTEXT, 0, 0, 3,9, 7,1, " " }; 90: SGOBJ enable_64mb_option = { SGRADIOBUT, 0, 0, 3,9, 7,1, "64 MB" }; 91: 92: /* Default configuration constants */ 93: int defsize[9][4] = { 94: { 4, 4, 0, 0}, /* 8 MB for monochrome non-turbo */ 95: { 8, 0, 0, 0}, /* 8 MB for turbo and non-turbo color */ 96: {16, 0, 0, 0}, /* 16 MB for monochrome non-turbo */ 97: { 8, 8, 0, 0}, /* 16 MB for turbo and non-turbo color */ 98: {16,16, 0, 0}, /* 32 MB for monochrome non-turbo */ 99: { 8, 8, 8, 8}, /* 32 MB for turbo and non-turbo color */ 100: {16,16,16,16}, /* 64 MB for monochrome non-turbo */ 101: {32,32, 0, 0}, /* 64 MB for turbo */ 102: {32,32,32,32} /* 128 MB for turbo */ 103: }; 104: int defsizecount=0; /* Compare defsizes up to this value */ 1.1 root 105: 106: /** 107: * Show and process the memory dialog. 108: * @return true if a memory snapshot has been loaded, false otherwise 109: */ 110: bool Dialog_MemDlg(void) 111: { 112: int but; 113: 114: SDLGui_CenterDlg(memorydlg); 1.1.1.2 root 115: 116: /* Remove 64 and 128MB option if system is non-Turbo Slab, 117: * remove 128MB option if system is not Turbo */ 118: if (ConfigureParams.System.bTurbo) { 119: memorydlg[DLGMEM_64MB] = enable_64mb_option; 120: memorydlg[DLGMEM_128MB] = enable_128mb_option; 121: defsizecount = 9; 122: } else if (ConfigureParams.System.bColor || 123: ConfigureParams.System.nMachineType == NEXT_STATION) { 124: memorydlg[DLGMEM_64MB] = disable_64mb_option; 125: memorydlg[DLGMEM_128MB] = disable_128mb_option; 126: defsizecount = 6; 127: } else { 128: memorydlg[DLGMEM_64MB] = enable_64mb_option; 129: memorydlg[DLGMEM_128MB] = disable_128mb_option; 130: defsizecount = 8; 131: } 1.1.1.3 ! root 132: ! 133: /* Display memory speed options depending on system type */ ! 134: if (ConfigureParams.System.bTurbo) { ! 135: memorydlg[DLGMEM_120NS].txt = "60 ns"; ! 136: memorydlg[DLGMEM_100NS].txt = "70 ns"; ! 137: memorydlg[DLGMEM_80NS].txt = "80 ns"; ! 138: memorydlg[DLGMEM_60NS].txt = "100 ns"; ! 139: } else { ! 140: memorydlg[DLGMEM_120NS].txt = "120 ns"; ! 141: memorydlg[DLGMEM_100NS].txt = "100 ns"; ! 142: memorydlg[DLGMEM_80NS].txt = "80 ns"; ! 143: memorydlg[DLGMEM_60NS].txt = "60 ns"; ! 144: } 1.1 root 145: 1.1.1.2 root 146: /* Draw dialog from actual values */ 1.1 root 147: 1.1.1.2 root 148: Dialog_MemDlgDraw(); 1.1 root 149: 150: do 151: { 152: but = SDLGui_DoDialog(memorydlg, NULL); 1.1.1.2 root 153: 1.1 root 154: switch (but) 155: { 1.1.1.2 root 156: case DLGMEM_8MB: 157: if (ConfigureParams.System.bColor || ConfigureParams.System.bTurbo) { 158: memcpy(ConfigureParams.Memory.nMemoryBankSize, defsize[1], 159: sizeof(ConfigureParams.Memory.nMemoryBankSize)); 160: } else { 161: memcpy(ConfigureParams.Memory.nMemoryBankSize, defsize[0], 162: sizeof(ConfigureParams.Memory.nMemoryBankSize)); 163: } 164: sprintf(custom_memsize, "Customize"); 165: break; 166: case DLGMEM_16MB: 167: if (ConfigureParams.System.bColor || ConfigureParams.System.bTurbo) { 168: memcpy(ConfigureParams.Memory.nMemoryBankSize, defsize[3], 169: sizeof(ConfigureParams.Memory.nMemoryBankSize)); 170: } else { 171: memcpy(ConfigureParams.Memory.nMemoryBankSize, defsize[2], 172: sizeof(ConfigureParams.Memory.nMemoryBankSize)); 173: } 174: sprintf(custom_memsize, "Customize"); 175: break; 176: case DLGMEM_32MB: 177: if (ConfigureParams.System.bColor || ConfigureParams.System.bTurbo) { 178: memcpy(ConfigureParams.Memory.nMemoryBankSize, defsize[5], 179: sizeof(ConfigureParams.Memory.nMemoryBankSize)); 180: } else { 181: memcpy(ConfigureParams.Memory.nMemoryBankSize, defsize[4], 182: sizeof(ConfigureParams.Memory.nMemoryBankSize)); 183: } 184: sprintf(custom_memsize, "Customize"); 185: break; 186: case DLGMEM_64MB: 187: if (ConfigureParams.System.bTurbo) { 188: memcpy(ConfigureParams.Memory.nMemoryBankSize, defsize[7], 189: sizeof(ConfigureParams.Memory.nMemoryBankSize)); 190: } else { 191: memcpy(ConfigureParams.Memory.nMemoryBankSize, defsize[6], 192: sizeof(ConfigureParams.Memory.nMemoryBankSize)); 193: } 194: sprintf(custom_memsize, "Customize"); 195: break; 196: case DLGMEM_128MB: 197: memcpy(ConfigureParams.Memory.nMemoryBankSize, defsize[8], 198: sizeof(ConfigureParams.Memory.nMemoryBankSize)); 199: sprintf(custom_memsize, "Customize"); 200: break; 201: case DLGMEM_CUSTOM: 202: Dialog_MemAdvancedDlg(ConfigureParams.Memory.nMemoryBankSize); 203: Dialog_MemDlgDraw(); 204: break; 1.1.1.3 ! root 205: #if GUI_SAVE_MEMORY 1.1.1.2 root 206: case DLGMEM_SAVE: /* Save memory snap-shot */ 207: if (SDLGui_FileConfSelect(dlgSnapShotName, 208: ConfigureParams.Memory.szMemoryCaptureFileName, 209: memorydlg[DLGMEM_FILENAME].w, true)) 210: { 211: MemorySnapShot_Capture(ConfigureParams.Memory.szMemoryCaptureFileName, true); 212: } 213: break; 214: case DLGMEM_RESTORE: /* Load memory snap-shot */ 215: if (SDLGui_FileConfSelect(dlgSnapShotName, 216: ConfigureParams.Memory.szMemoryCaptureFileName, 217: memorydlg[DLGMEM_FILENAME].w, false)) 218: { 219: MemorySnapShot_Restore(ConfigureParams.Memory.szMemoryCaptureFileName, true); 220: return true; 221: } 222: break; 1.1.1.3 ! root 223: #endif 1.1 root 224: } 225: } 226: while (but != DLGMEM_EXIT && but != SDLGUI_QUIT 1.1.1.2 root 227: && but != SDLGUI_ERROR && !bQuitProgram ); 1.1 root 228: 229: /* Read new values from dialog: */ 230: 1.1.1.2 root 231: if (memorydlg[DLGMEM_120NS].state & SG_SELECTED) 232: ConfigureParams.Memory.nMemorySpeed = MEMORY_120NS; 233: else if (memorydlg[DLGMEM_100NS].state & SG_SELECTED) 234: ConfigureParams.Memory.nMemorySpeed = MEMORY_100NS; 235: else if (memorydlg[DLGMEM_80NS].state & SG_SELECTED) 236: ConfigureParams.Memory.nMemorySpeed = MEMORY_80NS; 237: else 238: ConfigureParams.Memory.nMemorySpeed = MEMORY_60NS; 1.1.1.3 ! root 239: #if GUI_SAVE_MEMORY 1.1 root 240: ConfigureParams.Memory.bAutoSave = (memorydlg[DLGMEM_AUTOSAVE].state & SG_SELECTED); 1.1.1.3 ! root 241: #endif 1.1 root 242: return false; 243: } 1.1.1.2 root 244: 245: 246: void Dialog_MemDlgDraw(void) { 247: int i; 248: int memsum, memsize; 249: 250: sprintf(custom_memsize, "Customize"); 251: 252: for (i = DLGMEM_8MB; i <= DLGMEM_128MB; i++) 253: { 254: memorydlg[i].state &= ~SG_SELECTED; 255: } 256: 257: for (i = DLGMEM_120NS; i <= DLGMEM_60NS; i++) 258: { 259: memorydlg[i].state &= ~SG_SELECTED; 260: } 261: 262: /* Check memory configuration and find out if it is one of our default configurations */ 263: memsum = Configuration_CheckMemory(ConfigureParams.Memory.nMemoryBankSize); 264: 265: for (i=0; i<defsizecount; i++) { 266: if (memcmp(ConfigureParams.Memory.nMemoryBankSize, defsize[i], 267: sizeof(ConfigureParams.Memory.nMemoryBankSize))) { 268: memsize = 0; 269: } else { 270: memsize = memsum; 271: break; 272: } 273: } 274: 275: switch (memsize) 276: { 277: case 8: 278: memorydlg[DLGMEM_8MB].state |= SG_SELECTED; 279: break; 280: case 16: 281: memorydlg[DLGMEM_16MB].state |= SG_SELECTED; 282: break; 283: case 32: 284: memorydlg[DLGMEM_32MB].state |= SG_SELECTED; 285: break; 286: case 64: 287: memorydlg[DLGMEM_64MB].state |= SG_SELECTED; 288: break; 289: case 128: 290: memorydlg[DLGMEM_128MB].state |= SG_SELECTED; 291: break; 292: default: 293: memorydlg[DLGMEM_CUSTOM].state |= SG_SELECTED; 294: sprintf(custom_memsize, "Custom (%i MB)", memsum); 295: break; 296: } 297: 298: switch (ConfigureParams.Memory.nMemorySpeed) { 299: case MEMORY_120NS: 300: memorydlg[DLGMEM_120NS].state |= SG_SELECTED; 301: break; 302: case MEMORY_100NS: 303: memorydlg[DLGMEM_100NS].state |= SG_SELECTED; 304: break; 305: case MEMORY_80NS: 306: memorydlg[DLGMEM_80NS].state |= SG_SELECTED; 307: break; 308: case MEMORY_60NS: 309: memorydlg[DLGMEM_60NS].state |= SG_SELECTED; 310: break; 311: 312: default: 313: ConfigureParams.Memory.nMemorySpeed = MEMORY_100NS; 314: memorydlg[DLGMEM_100NS].state |= SG_SELECTED; 315: break; 316: } 1.1.1.3 ! root 317: #if GUI_SAVE_MEMORY 1.1.1.2 root 318: File_ShrinkName(dlgSnapShotName, ConfigureParams.Memory.szMemoryCaptureFileName, memorydlg[DLGMEM_FILENAME].w); 319: 320: 321: if (ConfigureParams.Memory.bAutoSave) 322: memorydlg[DLGMEM_AUTOSAVE].state |= SG_SELECTED; 323: else 324: memorydlg[DLGMEM_AUTOSAVE].state &= ~SG_SELECTED; 1.1.1.3 ! root 325: #endif 1.1.1.2 root 326: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.