Annotation of previous/src/gui-sdl/dlgMemory.c, revision 1.1.1.3

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: }

unix.superglobalmegacorp.com

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