Annotation of previous_trunk/src/gui-sdl/dlgMemory.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.