Changeset 380 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS_Configurator_v2
- Timestamp:
- Apr 8, 2012, 6:17:37 PM (13 years ago)
- google:author:
- krille_n_@hotmail.com
- Location:
- trunk/XTIDE_Universal_BIOS_Configurator_v2/Src
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/ConfigurationMenu.asm
r376 r380 3 3 4 4 ; 5 ; XTIDE Universal BIOS and Associated Tools 5 ; XTIDE Universal BIOS and Associated Tools 6 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 7 7 ; … … 10 10 ; the Free Software Foundation; either version 2 of the License, or 11 11 ; (at your option) any later version. 12 ; 12 ; 13 13 ; This program is distributed in the hope that it will be useful, 14 14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 15 15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 ; GNU General Public License for more details. 16 ; GNU General Public License for more details. 17 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 18 ; 18 ; 19 19 20 20 ; Section containing initialized data … … 26 26 at MENUPAGE.fnEnter, dw ConfigurationMenu_EnterMenuOrModifyItemVisibility 27 27 at MENUPAGE.fnBack, dw MainMenu_EnterMenuOrModifyItemVisibility 28 at MENUPAGE.wMenuitems, dw 928 at MENUPAGE.wMenuitems, dw 10 29 29 iend 30 30 … … 135 135 iend 136 136 137 g_MenuitemConfigurationIdleTimeout: 138 istruc MENUITEM 139 at MENUITEM.fnActivate, dw Menuitem_ActivateMultichoiceSelectionForMenuitemInDSSI 140 at MENUITEM.fnFormatValue, dw MenuitemPrint_WriteLookupValueStringToBufferInESDIfromRawItemInDSSI 141 at MENUITEM.szName, dw g_szItemCfgIdleTimeout 142 at MENUITEM.szQuickInfo, dw g_szNfoCfgIdleTimeout 143 at MENUITEM.szHelp, dw g_szHelpCfgIdleTimeout 144 at MENUITEM.bFlags, db FLG_MENUITEM_VISIBLE | FLG_MENUITEM_BYTEVALUE | FLG_MENUITEM_CHOICESTRINGS 145 at MENUITEM.bType, db TYPE_MENUITEM_MULTICHOICE 146 at MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset, dw ROMVARS.bIdleTimeout 147 at MENUITEM.itemValue + ITEM_VALUE.szDialogTitle, dw g_szDlgCfgIdleTimeout 148 at MENUITEM.itemValue + ITEM_VALUE.szMultichoice, dw g_szMultichoiceIdleTimeout 149 at MENUITEM.itemValue + ITEM_VALUE.rgwChoiceToValueLookup, dw g_rgwChoiceToValueLookupForIdleTimeout 150 at MENUITEM.itemValue + ITEM_VALUE.rgszChoiceToStringLookup, dw g_rgszChoiceToStringLookupForIdleTimeout 151 iend 152 153 g_rgwChoiceToValueLookupForIdleTimeout: 154 %assign i -12 155 %rep 21 156 %assign i i+12 157 dw i ; i / 12 = 0 (disabled) or 1...20 minutes 158 %endrep 159 %rep 4 160 %assign i i+1 161 dw i ; 241...244 = (i - 240) * 30 minutes 162 %endrep 163 g_rgszChoiceToStringLookupForIdleTimeout: 164 %assign i 0 165 %rep 25 166 dw g_szIdleTimeoutChoice%[i] 167 %assign i i+1 168 %endrep 169 ; dw NULL ; Is this needed? *FIXME* 137 170 138 171 ; Section containing code … … 297 330 ; ConfigurationMenu_CheckAndMoveSerialDrivesToBottom 298 331 ; 299 ; Checks to ensure that serial adapters are at the end of the 300 ; IDEVARS structures list, as serial floppies (if present) need to be 332 ; Checks to ensure that serial adapters are at the end of the 333 ; IDEVARS structures list, as serial floppies (if present) need to be 301 334 ; the last drives detected by the BIOS. If there are other controllers 302 335 ; after a serial controller, the other controllers are moved up on the list … … 309 342 ; Corrupts registers: 310 343 ; All 311 ;---------------------------------------------------------------------- 312 ConfigurationMenu_CheckAndMoveSerialDrivesToBottom: 344 ;---------------------------------------------------------------------- 345 ConfigurationMenu_CheckAndMoveSerialDrivesToBottom: 313 346 push es 314 347 push ds … … 319 352 push es 320 353 pop ds 321 mov ch, 0 ; clearing high order of CX and notification flag 322 mov dx, cx ; (probably unncessary, CX should be less than 127, but just to be sure) 323 jcxz .done ; probably unnecessary, but make sure there is at least one controller 324 325 add di, ROMVARS.ideVars0 ; add in offset of first idevars 326 mov bx, di 354 xor ch, ch ; clearing high order of CX and notification flag 355 mov dx, cx ; (probably unnecessary, CX should be less than 127, but just to be sure) 356 jcxz .done ; probably unnecessary, but make sure there is at least one controller 357 358 lea bx, [di+ROMVARS.ideVars0] ; add in offset of first idevars 327 359 328 360 .outerLoop: … … 331 363 xor ax, ax ; first non-serial found 332 364 mov cl, dl ; idevars count 333 mov ch, 0365 xor ch, ch 334 366 335 367 .loop: … … 337 369 jnz .notSerial 338 370 339 test si, si ; record the first serial controller tthat we find340 jnz .next 371 test si, si ; record the first serial controller that we find 372 jnz .next 341 373 mov si, di 342 374 jmp .next … … 345 377 mov ax, di ; record the *last* non-serial controller that we find 346 378 347 .next: 379 .next: 348 380 add di, IDEVARS_size 349 381 loop .loop 350 382 351 test si, si ; no serial drives, nothing to do383 test si, si ; no serial drives, nothing to do 352 384 jz .done 353 cmp si, ax ; serial port is already later on the list than any other controllers354 ja .done ; (also takes care of the case where ther are no other controllers)385 cmp si, ax ; serial port is already later on the list than any other controllers 386 ja .done ; (also takes care of the case where there are no other controllers) 355 387 356 388 ; … … 371 403 rep movsb 372 404 373 mov di, si ; move up all the idevars below the serial, by one slot 374 sub di, IDEVARS_size 405 lea di, [si-IDEVARS_size] ; move up all the idevars below the serial, by one slot 375 406 376 407 mov cx, ax ; restore end pointer of list, subtract off end of serial idevars … … 387 418 mov cx, IDEVARS_size 388 419 ; di is already at last IDEVARS position 389 420 390 421 rep movsb 391 422 392 add sp, IDEVARS_size 423 add sp, IDEVARS_size 393 424 394 425 push es … … 396 427 397 428 mov dh, 1 ; set flag that we have done a relocation 398 429 399 430 jmp .outerLoop 400 431 … … 407 438 test dh, dh 408 439 jz .noWorkDone 409 440 410 441 mov dx, g_szSerialMoved 411 442 call Dialogs_DisplayNotificationFromCSDX 412 443 413 .noWorkDone: 444 .noWorkDone: 414 445 ret -
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm
r376 r380 3 3 4 4 ; 5 ; XTIDE Universal BIOS and Associated Tools 5 ; XTIDE Universal BIOS and Associated Tools 6 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. 7 7 ; … … 10 10 ; the Free Software Foundation; either version 2 of the License, or 11 11 ; (at your option) any later version. 12 ; 12 ; 13 13 ; This program is distributed in the hope that it will be useful, 14 14 ; but WITHOUT ANY WARRANTY; without even the implied warranty of 15 15 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16 ; GNU General Public License for more details. 16 ; GNU General Public License for more details. 17 17 ; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html 18 ; 18 ; 19 19 20 20 ; Section containing initialized data … … 71 71 g_szItemMainConfigure: db "Configure XTIDE Universal BIOS",NULL 72 72 g_szItemMainFlash: db "Flash EEPROM",NULL 73 g_szItemMainSave: db "Save BIOS back to original file",NULL 73 g_szItemMainSave: db "Save BIOS back to original file",NULL 74 74 g_szItemMainLicense: db "Copyright and License Information",NULL 75 75 g_szItemMainHomePage: db "Web Links",NULL … … 92 92 g_szNfoMainFlash: db "Flash loaded BIOS image to EEPROM.",NULL 93 93 g_szNfoMainSave: db "Save BIOS changes back to original file from which it was loaded.",NULL 94 g_szNfoMainLicense: db "XTIDE Universal BIOS and XTIDECFG Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team. Released under GNU GPL v2, with ABSOLUTELY NO WARRANTY. Press ENTER for more details...",NULL 94 g_szNfoMainLicense: db "XTIDE Universal BIOS and XTIDECFG Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team." 95 db " Released under GNU GPL v2, with ABSOLUTELY NO WARRANTY. Press ENTER for more details...",NULL 95 96 g_szNfoMainHomePage: db "Visit http://code.google.com/p/ xtideuniversalbios (home page) and http://vintage-computer.com/ vcforum (support)",NULL 96 97 97 g_szHelpMainLicense: incbin "Main_License.txt" 98 db NULL 98 g_szHelpMainLicense: incbin "Main_License.txt" 99 db NULL 99 100 100 101 ; Strings for XTIDE Universal BIOS configuration menu … … 108 109 g_szItemCfgStealSize: db "kiB to steal from RAM",NULL 109 110 g_szItemCfgIdeCnt: db "IDE controllers",NULL 111 g_szItemCfgIdleTimeout: db "Power Management",NULL 110 112 111 113 g_szDlgCfgFullMode: db "Enable full operating mode?",NULL 112 114 g_szDlgCfgStealSize: db "How many kiB of base memory to steal for XTIDE Universal BIOS variables (1...255)?",NULL 113 115 g_szDlgCfgIdeCnt: db "How many IDE controllers to manage (1...4)?",NULL 116 g_szDlgCfgIdleTimeout: db "Select the amount of time before idling drives should enter standby mode.",NULL 114 117 115 118 g_szNfoCfgIde: db "IDE controller and drive configuration.",NULL … … 118 121 g_szNfoCfgStealSize: db "How many kiB's to steal from Conventional memory for XTIDE Universal BIOS variables.",NULL 119 122 g_szNfoCfgIdeCnt: db "Number of IDE controllers to manage.",NULL 120 121 g_szSerialMoved: db "A Serial Controller has been moved to the end of the Controller list. No further action is required. Serial Controllers must be placed at the end of the list.",NULL 123 g_szNfoCfgIdleTimeout: db "Enable Power Management to set the harddrive(s) to spin down after idling a certain amount of time.",NULL 124 125 g_szSerialMoved: db "A Serial Controller has been moved to the end of the Controller list." 126 db " No further action is required. Serial Controllers must be placed at the end of the list.",NULL 122 127 123 128 g_szHelpCfgFullMode: incbin "Configuration_FullMode.txt" … … 125 130 g_szHelpCfgStealSize: incbin "Configuration_StealSize.txt" 126 131 db NULL 132 g_szHelpCfgIdleTimeout: db "This option enables the standby timer for all harddrives handled by XTIDE Universal BIOS," 133 db " allowing the drives to spin down after idling the selected amount of time." 134 db " Note that this does not work with old drives that lack the Power Management feature set." 135 db " Also note that timeouts less than 5 minutes may cause unnecessary wear on the drives and is not recommended" 136 db " (use for compatibility testing only).",NULL 137 g_szMultichoiceIdleTimeout: 138 db "Disabled",LF 139 db "1 m",LF 140 db "2 m",LF 141 db "3 m",LF 142 db "4 m",LF 143 db "5 m",LF 144 db "6 m",LF 145 db "7 m",LF 146 db "8 m",LF 147 db "9 m",LF 148 db "10 m",LF 149 db "11 m",LF 150 db "12 m",LF 151 db "13 m",LF 152 db "14 m",LF 153 db "15 m",LF 154 db "16 m",LF 155 db "17 m",LF 156 db "18 m",LF 157 db "19 m",LF 158 db "20 m",LF 159 db "30 m",LF 160 db "1 h",LF 161 db "1 h 30 m",LF 162 g_szIdleTimeoutChoice24: db "2 h",NULL 163 164 g_szIdleTimeoutChoice0: db "Disabled",NULL 165 g_szIdleTimeoutChoice1: db "1 m",NULL 166 g_szIdleTimeoutChoice2: db "2 m",NULL 167 g_szIdleTimeoutChoice3: db "3 m",NULL 168 g_szIdleTimeoutChoice4: db "4 m",NULL 169 g_szIdleTimeoutChoice5: db "5 m",NULL 170 g_szIdleTimeoutChoice6: db "6 m",NULL 171 g_szIdleTimeoutChoice7: db "7 m",NULL 172 g_szIdleTimeoutChoice8: db "8 m",NULL 173 g_szIdleTimeoutChoice9: db "9 m",NULL 174 g_szIdleTimeoutChoice10: db "10 m",NULL 175 g_szIdleTimeoutChoice11: db "11 m",NULL 176 g_szIdleTimeoutChoice12: db "12 m",NULL 177 g_szIdleTimeoutChoice13: db "13 m",NULL 178 g_szIdleTimeoutChoice14: db "14 m",NULL 179 g_szIdleTimeoutChoice15: db "15 m",NULL 180 g_szIdleTimeoutChoice16: db "16 m",NULL 181 g_szIdleTimeoutChoice17: db "17 m",NULL 182 g_szIdleTimeoutChoice18: db "18 m",NULL 183 g_szIdleTimeoutChoice19: db "19 m",NULL 184 g_szIdleTimeoutChoice20: db "20 m",NULL 185 g_szIdleTimeoutChoice21: db "30 m",NULL 186 g_szIdleTimeoutChoice22: db "1 h",NULL 187 g_szIdleTimeoutChoice23: db "1 h 30 m",NULL 127 188 128 189 ; Strings for IDE Controller menu … … 139 200 g_szItemSerialPort: db "COM Port I/O address",NULL 140 201 141 g_szItemIdeSerialComPort: db"COM port",NULL142 g_szItemIdeSerialBaudRate: db"Baud rate",NULL202 g_szItemIdeSerialComPort: db "COM port",NULL 203 g_szItemIdeSerialBaudRate: db "Baud rate",NULL 143 204 144 205 g_szDlgDevice: db "Select controller type.",NULL … … 157 218 g_szNfoIdeIRQ: db "IRQ channel to use.",NULL 158 219 g_szNfoIdeSerialCOM: db "Select a COM port by number.",NULL 159 g_szNfoIdeSerialBaud: db "Select the COM port's Baud Rate. The server must match this speed. Note that UART clock multipliers may impact the actual speed.",NULL 220 g_szNfoIdeSerialBaud: db "Select the COM port's Baud Rate. The server must match this speed." 221 db " Note that UART clock multipliers may impact the actual speed.",NULL 160 222 g_szNfoIdeSerialPort: db "Select a COM port by custom I/O port address. Any address is valid up to 3f8h, but must be on an 8-byte boundary.",NULL 161 223 … … 279 341 g_szHelpDrvUserLBA: incbin "Drive_UserLBA.txt" 280 342 db NULL 281 343 282 344 g_szMultichoiseWrCache: db "Drive Default",LF 283 345 db "Disable Write Cache",LF … … 311 373 g_szNfoBootFloppyDrvs: db "Number of Floppy Drives to display on boot menu.",NULL 312 374 g_szNfoBootSwap: db "Drive Number Translation (swap first drive with selected).",NULL 313 g_szNfoSerialDetect: db "Scans all standard COM ports for serial drives. This can also be invoked by holding down ALT at the end of normal drive detection.",NULL 375 g_szNfoSerialDetect: db "Scans all standard COM ports for serial drives." 376 db " This can also be invoked by holding down ALT at the end of normal drive detection.",NULL 314 377 315 378 g_szHelpBootTimeout: incbin "Bootmenu_Timeout.txt" … … 415 478 g_szValueFlash32bytes: db "32 bytes",NULL 416 479 417 g_szSelectionTimeout: db 418 419 g_szDashForZero: db 480 g_szSelectionTimeout: db DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2u s",NULL 481 482 g_szDashForZero: db "- ",NULL 420 483 421 484 g_szValueUnknownError: db "Error!",NULL
Note:
See TracChangeset
for help on using the changeset viewer.