Annotation of previous_trunk/src/gui-sdl/dlgMemory.c, revision 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.