|
|
1.1 ! root 1: /* ! 2: Previous - dlgMemoryAdvanced.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: */ ! 8: const char DlgMemoryAdvanced_fileid[] = "Hatari dlgMemoryAdvanced.c : " __DATE__ " " __TIME__; ! 9: ! 10: #include "main.h" ! 11: #include "configuration.h" ! 12: #include "dialog.h" ! 13: #include "sdlgui.h" ! 14: ! 15: ! 16: #define DLGMA_BANK0_2MB 4 ! 17: #define DLGMA_BANK0_4MB 5 ! 18: #define DLGMA_BANK0_8MB 6 ! 19: #define DLGMA_BANK0_16MB 7 ! 20: #define DLGMA_BANK0_32MB 8 ! 21: #define DLGMA_BANK0_NONE 9 ! 22: ! 23: #define DLGMA_BANK1_2MB 12 ! 24: #define DLGMA_BANK1_4MB 13 ! 25: #define DLGMA_BANK1_8MB 14 ! 26: #define DLGMA_BANK1_16MB 15 ! 27: #define DLGMA_BANK1_32MB 16 ! 28: #define DLGMA_BANK1_NONE 17 ! 29: ! 30: #define DLGMA_BANK2_2MB 20 ! 31: #define DLGMA_BANK2_4MB 21 ! 32: #define DLGMA_BANK2_8MB 22 ! 33: #define DLGMA_BANK2_16MB 23 ! 34: #define DLGMA_BANK2_32MB 24 ! 35: #define DLGMA_BANK2_NONE 25 ! 36: ! 37: #define DLGMA_BANK3_2MB 28 ! 38: #define DLGMA_BANK3_4MB 29 ! 39: #define DLGMA_BANK3_8MB 30 ! 40: #define DLGMA_BANK3_16MB 31 ! 41: #define DLGMA_BANK3_32MB 32 ! 42: #define DLGMA_BANK3_NONE 33 ! 43: ! 44: #define DLGMA_CHECK 37 ! 45: #define DLGMA_EXIT 38 ! 46: ! 47: ! 48: void Dialog_MemAdvancedDlgDraw(int *memorybank); ! 49: void Dialog_MemAdvancedDlgRead(int *memorybank); ! 50: ! 51: static SGOBJ memoryadvanceddlg[] = ! 52: { ! 53: { SGBOX, 0, 0, 0,0, 63,24, NULL }, ! 54: { SGTEXT, 0, 0, 22,1, 14,1, "Custom memory setup" }, ! 55: ! 56: { SGBOX, 0, 0, 2,4, 14,10, NULL }, ! 57: { SGTEXT, 0, 0, 3,5, 14,1, "Bank0" }, ! 58: { SGRADIOBUT, 0, 0, 4,7, 6,1, "2 MB" }, ! 59: { SGRADIOBUT, 0, 0, 4,8, 6,1, "4 MB" }, ! 60: { SGRADIOBUT, 0, 0, 4,9, 6,1, "8 MB" }, ! 61: { SGRADIOBUT, 0, 0, 4,10, 7,1, "16 MB" }, ! 62: { SGRADIOBUT, 0, 0, 4,11, 7,1, "32 MB" }, ! 63: { SGRADIOBUT, 0, 0, 4,12, 6,1, "none" }, ! 64: ! 65: { SGBOX, 0, 0, 17,4, 14,10, NULL }, ! 66: { SGTEXT, 0, 0, 18,5, 14,1, "Bank1" }, ! 67: { SGRADIOBUT, 0, 0, 19,7, 6,1, "2 MB" }, ! 68: { SGRADIOBUT, 0, 0, 19,8, 6,1, "4 MB" }, ! 69: { SGRADIOBUT, 0, 0, 19,9, 6,1, "8 MB" }, ! 70: { SGRADIOBUT, 0, 0, 19,10, 7,1, "16 MB" }, ! 71: { SGRADIOBUT, 0, 0, 19,11, 7,1, "32 MB" }, ! 72: { SGRADIOBUT, 0, 0, 19,12, 6,1, "none" }, ! 73: ! 74: { SGBOX, 0, 0, 32,4, 14,10, NULL }, ! 75: { SGTEXT, 0, 0, 33,5, 14,1, "Bank2" }, ! 76: { SGRADIOBUT, 0, 0, 34,7, 6,1, "2 MB" }, ! 77: { SGRADIOBUT, 0, 0, 34,8, 6,1, "4 MB" }, ! 78: { SGRADIOBUT, 0, 0, 34,9, 6,1, "8 MB" }, ! 79: { SGRADIOBUT, 0, 0, 34,10, 7,1, "16 MB" }, ! 80: { SGRADIOBUT, 0, 0, 34,11, 7,1, "32 MB" }, ! 81: { SGRADIOBUT, 0, 0, 34,12, 6,1, "none" }, ! 82: ! 83: { SGBOX, 0, 0, 47,4, 14,10, NULL }, ! 84: { SGTEXT, 0, 0, 48,5, 14,1, "Bank3" }, ! 85: { SGRADIOBUT, 0, 0, 49,7, 6,1, "2 MB" }, ! 86: { SGRADIOBUT, 0, 0, 49,8, 6,1, "4 MB" }, ! 87: { SGRADIOBUT, 0, 0, 49,9, 6,1, "8 MB" }, ! 88: { SGRADIOBUT, 0, 0, 49,10, 7,1, "16 MB" }, ! 89: { SGRADIOBUT, 0, 0, 49,11, 7,1, "32 MB" }, ! 90: { SGRADIOBUT, 0, 0, 49,12, 6,1, "none" }, ! 91: ! 92: { SGTEXT, 0, 0, 3,15, 14,1, "Some values are only valid on certain machines. They will" }, ! 93: { SGTEXT, 0, 0, 3,16, 14,1, "be corrected automatically when leaving this dialog." }, ! 94: { SGTEXT, 0, 0, 3,18, 14,1, "For booting Bank0 must contain at least 4 MB of memory." }, ! 95: ! 96: { SGBUTTON, 0, 0, 20,21, 9,1, "Check" }, ! 97: { SGBUTTON, SG_DEFAULT, 0, 35,21, 8,1, "OK" }, ! 98: { -1, 0, 0, 0,0, 0,0, NULL } ! 99: }; ! 100: ! 101: ! 102: ! 103: /*-----------------------------------------------------------------------*/ ! 104: /** ! 105: * Show and process the "Memory Advanced" dialog. ! 106: */ ! 107: void Dialog_MemAdvancedDlg(int *membank) { ! 108: ! 109: int but; ! 110: ! 111: SDLGui_CenterDlg(memoryadvanceddlg); ! 112: ! 113: /* Set up dialog from actual values: */ ! 114: Dialog_MemAdvancedDlgDraw(membank); ! 115: ! 116: /* Draw and process the dialog: */ ! 117: do ! 118: { ! 119: but = SDLGui_DoDialog(memoryadvanceddlg, NULL); ! 120: printf("Button: %i\n", but); ! 121: switch (but) { ! 122: case DLGMA_CHECK: ! 123: Dialog_MemAdvancedDlgRead(membank); ! 124: Configuration_CheckMemory(membank); ! 125: Dialog_MemAdvancedDlgDraw(membank); ! 126: break; ! 127: default: ! 128: break; ! 129: } ! 130: } ! 131: while (but != DLGMA_EXIT && but != SDLGUI_QUIT ! 132: && but != SDLGUI_ERROR && !bQuitProgram); ! 133: ! 134: ! 135: /* Read values from dialog: */ ! 136: Dialog_MemAdvancedDlgRead(membank); ! 137: } ! 138: ! 139: ! 140: /* Function to set up the dialog from the actual values */ ! 141: void Dialog_MemAdvancedDlgDraw(int *bank) { ! 142: int i, j; ! 143: for (i = 0; i<4; i++) { ! 144: ! 145: for (j = (DLGMA_BANK0_2MB+(8*i)); j <= (DLGMA_BANK0_NONE+(8*i)); j++) ! 146: { ! 147: memoryadvanceddlg[j].state &= ~SG_SELECTED; ! 148: } ! 149: ! 150: switch (bank[i]) ! 151: { ! 152: case 0: ! 153: memoryadvanceddlg[DLGMA_BANK0_NONE+(i*8)].state |= SG_SELECTED; ! 154: break; ! 155: case 2: ! 156: memoryadvanceddlg[DLGMA_BANK0_2MB+(i*8)].state |= SG_SELECTED; ! 157: break; ! 158: case 4: ! 159: memoryadvanceddlg[DLGMA_BANK0_4MB+(i*8)].state |= SG_SELECTED; ! 160: break; ! 161: case 8: ! 162: memoryadvanceddlg[DLGMA_BANK0_8MB+(i*8)].state |= SG_SELECTED; ! 163: break; ! 164: case 16: ! 165: memoryadvanceddlg[DLGMA_BANK0_16MB+(i*8)].state |= SG_SELECTED; ! 166: break; ! 167: case 32: ! 168: memoryadvanceddlg[DLGMA_BANK0_32MB+(i*8)].state |= SG_SELECTED; ! 169: break; ! 170: ! 171: default: ! 172: break; ! 173: } ! 174: } ! 175: } ! 176: ! 177: ! 178: /* Function to read the actual values from the dialog */ ! 179: void Dialog_MemAdvancedDlgRead(int *bank) { ! 180: int i; ! 181: for (i = 0; i<4; i++) { ! 182: if (memoryadvanceddlg[(DLGMA_BANK0_2MB)+(i*8)].state & SG_SELECTED) ! 183: bank[i] = 2; ! 184: else if (memoryadvanceddlg[(DLGMA_BANK0_4MB)+(i*8)].state & SG_SELECTED) ! 185: bank[i] = 4; ! 186: else if (memoryadvanceddlg[(DLGMA_BANK0_8MB)+(i*8)].state & SG_SELECTED) ! 187: bank[i] = 8; ! 188: else if (memoryadvanceddlg[(DLGMA_BANK0_16MB)+(i*8)].state & SG_SELECTED) ! 189: bank[i] = 16; ! 190: else if (memoryadvanceddlg[(DLGMA_BANK0_32MB)+(i*8)].state & SG_SELECTED) ! 191: bank[i] = 32; ! 192: else if (memoryadvanceddlg[(DLGMA_BANK0_NONE)+(i*8)].state & SG_SELECTED) ! 193: bank[i] = 0; ! 194: } ! 195: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.