Changeset 625 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS_Configurator_v2
- Timestamp:
- Feb 19, 2023, 9:26:52 PM (21 months ago)
- Location:
- trunk/XTIDE_Universal_BIOS_Configurator_v2/Src
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menuitem.asm
r603 r625 4 4 ; 5 5 ; XTIDE Universal BIOS and Associated Tools 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-20 13 by XTIDE Universal BIOS Team.6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2023 by XTIDE Universal BIOS Team. 7 7 ; 8 8 ; This program is free software; you can redistribute it and/or modify … … 312 312 ALIGN JUMP_ALIGN 313 313 Menuitem_GetValueToAXfromMenuitemInDSSI: 314 ; Note! Changes to this procedure might require changes to 315 ; ReadRamVars in ConfigurationMenu.asm as well! 314 316 push es 315 317 push di -
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/MenuitemPrint.asm
r592 r625 4 4 ; 5 5 ; XTIDE Universal BIOS and Associated Tools 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-20 13 by XTIDE Universal BIOS Team.6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2023 by XTIDE Universal BIOS Team. 7 7 ; 8 8 ; This program is free software; you can redistribute it and/or modify … … 264 264 ALIGN JUMP_ALIGN 265 265 MenuitemPrint_WriteHexValueStringToBufferInESDIfromItemInDSSI: 266 ; Note! Changes to this procedure might require changes to 267 ; ReadRamVars in ConfigurationMenu.asm as well! 266 268 mov bx, di 267 269 mov cx, MAX_VALUE_STRING_LENGTH -
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/BootMenuSettingsMenu.asm
r621 r625 4 4 ; 5 5 ; XTIDE Universal BIOS and Associated Tools 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-20 13 by XTIDE Universal BIOS Team.6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2023 by XTIDE Universal BIOS Team. 7 7 ; 8 8 ; This program is free software; you can redistribute it and/or modify … … 185 185 186 186 ColorThemeTable: 187 ; Note! If there's ever a need to remove a theme or change a theme or reorder the themes then the ROMVARS version must be incremented. 188 ; This is for backwards compatibility. Adding new themes (at the bottom) however should work with no change to the ROMVARS version. 187 ; Note! If there's ever a need to add, remove or change a theme or reorder the themes then the ROMVARS version must be incremented. 189 188 ; Classic (default) 190 189 db COLOR_ATTRIBUTE(COLOR_YELLOW, COLOR_BLUE) ; .cBordersAndBackground … … 396 395 loopne .NextTheme 397 396 cld 398 mov ax, cx 397 mov ax, cx ; Return the color theme index in AX; zero (default theme) if a theme was not found 399 398 jne SHORT .SkipCopy 400 399 -
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/ConfigurationMenu.asm
r592 r625 4 4 ; 5 5 ; XTIDE Universal BIOS and Associated Tools 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-20 13 by XTIDE Universal BIOS Team.6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2023 by XTIDE Universal BIOS Team. 7 7 ; 8 8 ; This program is free software; you can redistribute it and/or modify … … 26 26 at MENUPAGE.fnEnter, dw ConfigurationMenu_EnterMenuOrModifyItemVisibility 27 27 at MENUPAGE.fnBack, dw MainMenu_EnterMenuOrModifyItemVisibility 28 at MENUPAGE.wMenuitems, dw 1 128 at MENUPAGE.wMenuitems, dw 12 29 29 iend 30 30 … … 113 113 at MENUITEM.itemValue + ITEM_VALUE.rgszValueToStringLookup, dw g_rgszValueToStringLookupForFlagBooleans 114 114 at MENUITEM.itemValue + ITEM_VALUE.wValueBitmask, dw FLG_ROMVARS_FULLMODE 115 at MENUITEM.itemValue + ITEM_VALUE.fnValueWriter, dw WriteFullOperatingMode 116 iend 117 118 g_MenuitemConfigurationRamVars: 119 istruc MENUITEM 120 at MENUITEM.fnActivate, dw Menuitem_ActivateHexInputForMenuitemInDSSI 121 at MENUITEM.fnFormatValue, dw MenuitemPrint_WriteHexValueStringToBufferInESDIfromItemInDSSI 122 at MENUITEM.szName, dw g_szItemCfgRamVars 123 at MENUITEM.szQuickInfo, dw g_szNfoCfgRamVars 124 at MENUITEM.szHelp, dw g_szHelpCfgRamVars 125 at MENUITEM.bFlags, db FLG_MENUITEM_MODIFY_MENU 126 at MENUITEM.bType, db TYPE_MENUITEM_HEX 127 at MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset, dw ROMVARS.wRamVars 128 at MENUITEM.itemValue + ITEM_VALUE.szDialogTitle, dw g_szDlgCfgRamVars 129 at MENUITEM.itemValue + ITEM_VALUE.wMinValue, dw 0A000h 130 at MENUITEM.itemValue + ITEM_VALUE.wMaxValue, dw 0FFFFh ; Disables use of UMB 131 at MENUITEM.itemValue + ITEM_VALUE.fnValueReader, dw ReadRamVars 132 at MENUITEM.itemValue + ITEM_VALUE.fnValueWriter, dw WriteRamVars 115 133 iend 116 134 … … 122 140 at MENUITEM.szQuickInfo, dw g_szNfoCfgStealSize 123 141 at MENUITEM.szHelp, dw g_szHelpCfgStealSize 124 at MENUITEM.bFlags, db FLG_MENUITEM_ VISIBLE | FLG_MENUITEM_BYTEVALUE142 at MENUITEM.bFlags, db FLG_MENUITEM_BYTEVALUE 125 143 at MENUITEM.bType, db TYPE_MENUITEM_UNSIGNED 126 144 at MENUITEM.itemValue + ITEM_VALUE.wRomvarsValueOffset, dw ROMVARS.bStealSize … … 199 217 call .EnableIdeControllerMenuitemsBasedOnConfiguration 200 218 call .EnableOrDisableOperatingModeSelection 219 call Buffers_GetRomvarsFlagsToAX 220 call .EnableOrDisableRamVarsSegmentSelection 201 221 call .EnableOrDisableKiBtoStealFromRAM 202 222 call .EnableOrDisableIdleTimeout … … 251 271 mov bx, g_MenuitemConfigurationFullOperatingMode 252 272 call Buffers_IsXTbuildLoaded 253 j eSHORT .EnableMenuitemFromCSBX273 jz SHORT .EnableMenuitemFromCSBX 254 274 jmp SHORT .DisableMenuitemFromCSBX 255 275 256 276 257 277 ;-------------------------------------------------------------------- 258 ; .EnableOrDisable KiBtoStealFromRAM259 ; Parameters: 260 ; SS:BP: Menu handle261 ; Returns:262 ; Nothing263 ; Corrupts registers:264 ; AX, BX265 ; --------------------------------------------------------------------266 ALIGN JUMP_ALIGN 267 .EnableOrDisableKiBtoStealFromRAM: 268 call Buffers_GetRomvarsFlagsToAX 269 mov bx, g_MenuitemConfiguration KiBtoStealFromRAM278 ; .EnableOrDisableRamVarsSegmentSelection 279 ; Parameters: 280 ; AX: ROMVARS.wFlags 281 ; SS:BP: Menu handle 282 ; Returns: 283 ; Nothing 284 ; Corrupts registers: 285 ; BX 286 ;-------------------------------------------------------------------- 287 ALIGN JUMP_ALIGN 288 .EnableOrDisableRamVarsSegmentSelection: 289 mov bx, g_MenuitemConfigurationRamVars 270 290 test al, FLG_ROMVARS_FULLMODE 271 291 jz SHORT .DisableMenuitemFromCSBX … … 274 294 275 295 ;-------------------------------------------------------------------- 296 ; .EnableOrDisableKiBtoStealFromRAM 297 ; Parameters: 298 ; SS:BP: Menu handle 299 ; Returns: 300 ; Nothing 301 ; Corrupts registers: 302 ; BX 303 ;-------------------------------------------------------------------- 304 ALIGN JUMP_ALIGN 305 .EnableOrDisableKiBtoStealFromRAM: 306 mov bx, g_MenuitemConfigurationKiBtoStealFromRAM 307 cmp WORD [es:ROMVARS.wRamVars], 0 308 jne SHORT .DisableMenuitemFromCSBX 309 jmp SHORT .EnableMenuitemFromCSBX 310 311 312 ;-------------------------------------------------------------------- 276 313 ; .EnableOrDisableIdleTimeout 277 314 ; Parameters: 278 ; SS:BP: Menu handle 279 ; Returns: 280 ; Nothing 281 ; Corrupts registers: 282 ; AX, BX 315 ; AX: ROMVARS.wFlags 316 ; SS:BP: Menu handle 317 ; Returns: 318 ; Nothing 319 ; Corrupts registers: 320 ; BX 283 321 ;-------------------------------------------------------------------- 284 322 ALIGN JUMP_ALIGN 285 323 .EnableOrDisableIdleTimeout: 286 call Buffers_GetRomvarsFlagsToAX287 324 mov bx, g_MenuitemConfigurationIdleTimeout 288 325 test al, FLG_ROMVARS_MODULE_POWER_MANAGEMENT … … 308 345 .DisableMenuitemFromCSBX: 309 346 jmp DisableMenuitemFromCSBX 347 348 349 ;-------------------------------------------------------------------- 350 ; WriteFullOperatingMode 351 ; Parameters: 352 ; AX: Value that the MENUITEM system was interacting with 353 ; ES:DI: ROMVARS location where the value is to be stored 354 ; DS:SI: MENUITEM pointer 355 ; Returns: 356 ; AX: Value to actually write to ROMVARS 357 ; Corrupts registers: 358 ; BX 359 ;-------------------------------------------------------------------- 360 ALIGN JUMP_ALIGN 361 WriteFullOperatingMode: 362 test ax, ax ; FOM disabled? 363 mov bx, LITE_MODE_RAMVARS_SEGMENT 364 jz SHORT .WriteDefaultValueToRamVars ; Yes, Lite mode it is 365 xor bx, bx ; No, use Conventional memory 366 .WriteDefaultValueToRamVars: 367 mov [es:ROMVARS.wRamVars], bx 368 ret 369 370 371 ;-------------------------------------------------------------------- 372 ; ReadRamVars 373 ; Parameters: 374 ; AX: Value read from the ROMVARS location 375 ; ES:DI: ROMVARS location where the value was just read from 376 ; DS:SI: MENUITEM pointer 377 ; Returns: 378 ; AX: Value that the MENUITEM system will interact with and display 379 ; Corrupts registers: 380 ; Nothing 381 ;-------------------------------------------------------------------- 382 ALIGN JUMP_ALIGN 383 ReadRamVars: 384 test ax, ax 385 jz SHORT .PrintNoInsteadOfValue 386 cmp ax, LITE_MODE_RAMVARS_SEGMENT 387 jne SHORT WriteRamVars.Return 388 389 .PrintNoInsteadOfValue: 390 push si 391 mov si, g_szNo 392 CALL_DISPLAY_LIBRARY PrintNullTerminatedStringFromCSSI 393 pop si 394 ; This is a humongous hack. The menu system should not be (ab)used like this. 395 pop ax ; Return from ReadRamVars to Menuitem_GetValueToAXfromMenuitemInDSSI 396 pop bx ; Restore registers 397 pop di 398 pop es 399 pop ax ; Return from Menuitem_GetValueToAXfromMenuitemInDSSI to MenuitemPrint_WriteHexValueStringToBufferInESDIfromItemInDSSI 400 jmp MenuitemPrint_FinishPrintingUnsignedOrHexValue 401 402 403 ;-------------------------------------------------------------------- 404 ; WriteRamVars 405 ; Parameters: 406 ; AX: Value that the MENUITEM system was interacting with 407 ; ES:DI: ROMVARS location where the value is to be stored 408 ; DS:SI: MENUITEM pointer 409 ; Returns: 410 ; AX: Value to actually write to ROMVARS 411 ; Corrupts registers: 412 ; Nothing 413 ;-------------------------------------------------------------------- 414 ALIGN JUMP_ALIGN 415 WriteRamVars: 416 inc ax ; FFFF -> 0000 = Disable UMB usage 417 jz SHORT .Return 418 dec ax 419 .Return: 420 ret 310 421 311 422 -
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/IdeControllerMenu.asm
r621 r625 4 4 ; 5 5 ; XTIDE Universal BIOS and Associated Tools 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-20 13 by XTIDE Universal BIOS Team.6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2023 by XTIDE Universal BIOS Team. 7 7 ; 8 8 ; This program is free software; you can redistribute it and/or modify … … 229 229 dw 'B' 230 230 dw 'C' 231 dw 'x' ; must be last entry (see reader/write routines)231 dw 'x' ; must be last entry (see reader/writer routines) 232 232 g_rgszChoiceToStringLookupForCOM: 233 233 dw g_szValueCfgCOM1 -
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/MainMenu.asm
r621 r625 4 4 ; 5 5 ; XTIDE Universal BIOS and Associated Tools 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-20 13 by XTIDE Universal BIOS Team.6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2023 by XTIDE Universal BIOS Team. 7 7 ; 8 8 ; This program is free software; you can redistribute it and/or modify … … 292 292 add di, ROMVARS.pColorTheme 293 293 call WriteColorTheme 294 ; We did not copy over wFlags but we did copy over wRamVars so we 295 ; must ensure that the Full Operating Mode setting matches wRamVars. 296 cmp WORD [es:ROMVARS.wRamVars], LITE_MODE_RAMVARS_SEGMENT 297 jne SHORT .SetFullOperatingMode ; All builds supports FOM 298 call Buffers_IsXTbuildLoaded 299 jz SHORT .ClearFullOperatingMode 300 ; The loaded file is an AT build and we just copied the settings from 301 ; an XT build in ROM configured for Lite mode. Resolve the conflict 302 ; by clearing wRamVars thereby setting it to the default for FOM. 303 mov WORD [es:ROMVARS.wRamVars], 0 304 ; Tell the user there was a change in the configuration 305 mov dx, g_szDlgFomEnabled 306 call Dialogs_DisplayNotificationFromCSDX 307 ; We don't need to set the FOM flag but fall through anyway 308 .SetFullOperatingMode: 309 or BYTE [es:ROMVARS.wFlags], FLG_ROMVARS_FULLMODE 310 jmp SHORT .Done 311 312 .ClearFullOperatingMode: 313 and BYTE [es:ROMVARS.wFlags], ~FLG_ROMVARS_FULLMODE 314 315 .Done: 294 316 .FileNotLoaded: 295 317 jmp MainMenu_EnterMenuOrModifyItemVisibility -
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm
r624 r625 4 4 ; 5 5 ; XTIDE Universal BIOS and Associated Tools 6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-20 13 by XTIDE Universal BIOS Team.6 ; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2023 by XTIDE Universal BIOS Team. 7 7 ; 8 8 ; This program is free software; you can redistribute it and/or modify … … 98 98 g_szNfoMainFlash: db "Flash loaded BIOS image to EEPROM.",NULL 99 99 g_szNfoMainSave: db "Save BIOS changes back to original file from which it was loaded.",NULL 100 g_szNfoMainLicense: db "XTIDE Universal BIOS and XTIDECFG Copyright (C) 2009-2010 by Tomi Tilli, 2011-202 2by XTIDE Universal BIOS Team."100 g_szNfoMainLicense: db "XTIDE Universal BIOS and XTIDECFG Copyright (C) 2009-2010 by Tomi Tilli, 2011-2023 by XTIDE Universal BIOS Team." 101 101 db " Released under GNU GPL v2, with ABSOLUTELY NO WARRANTY. Press ENTER for more details...",NULL 102 102 g_szNfoMainHomePage: db "Visit http://xtideuniversalbios.org (home page) and http://forum.vcfed.org (support)",NULL 103 103 104 104 g_szHelpMainLicense: db "XTIDE Universal BIOS and XTIDECFG Configuration program are Copyright 2009-2010 by Tomi Tilli," 105 db " 2011-202 2by XTIDE Universal BIOS Team. Released under GNU GPL v2. This software comes with ABSOLUTELY NO WARRANTY."105 db " 2011-2023 by XTIDE Universal BIOS Team. Released under GNU GPL v2. This software comes with ABSOLUTELY NO WARRANTY." 106 106 db " This is free software, and you are welcome to redistribute it under certain conditions." 107 107 db " See the LICENSE.TXT file that was included with this distribution," … … 117 117 g_szItemAutoConfigure: db "Auto Configure",NULL 118 118 g_szItemCfgFullMode: db "Full operating mode",NULL 119 g_szItemCfgRamVars: db "Use UMB for variables",NULL 119 120 g_szItemCfgStealSize: db "kiB to steal from RAM",NULL 120 121 g_szItemCfgIdeCnt: db "IDE controllers",NULL … … 128 129 db "Zenith Data Systems Z-161",LF,LF 129 130 db "The Boot settings menu option 'Remove other hard drives' has been set to YES for this reason.",NULL 131 g_szDlgFomEnabled db "The loaded file does not support Lite mode - Full operating mode has been enabled.",NULL 130 132 g_szDlgCfgFullMode: db "Enable full operating mode?",NULL 133 g_szDlgCfgRamVars: db "Store variables in UMB?",NULL 131 134 g_szDlgCfgStealSize: db "How many kiB of base memory to steal for XTIDE Universal BIOS variables (1...255)?",NULL 132 135 g_szDlgCfgIdeCnt: db "How many IDE controllers to manage (1...4)?",NULL … … 136 139 g_szNfoCfgBootMenu: db "Boot configuration.",NULL 137 140 g_szNfoAutoConfigure: db "Automatically Configure XTIDE Universal BIOS for this system.",NULL 138 g_szNfoCfgFullMode: db "Full mode supports multiple controllers and has more features.",NULL 141 g_szNfoCfgFullMode: db "Full mode supports up to four controllers and has more features.",NULL 142 g_szNfoCfgRamVars: db "Enter UMB segment address (FFFF=Disable UMB usage and use the top of Conventional memory instead).",NULL 139 143 g_szNfoCfgStealSize: db "How many kiB's to steal from Conventional memory for XTIDE Universal BIOS variables.",NULL 140 144 g_szNfoCfgIdeCnt: db "Number of IDE controllers to manage.",NULL … … 144 148 db " No further action is required. Serial Controllers must be placed at the end of the list.",NULL 145 149 146 g_szHelpCfgFullMode: db "Full mode supports up to 4 IDE controllers (8 drives). Full mode reserves a bit of RAM from the top of" 147 db " Conventional memory. This makes it possible to use ROM BASIC and other software that requires" 148 db " the interrupt vectors where XTIDE Universal BIOS parameters would be stored in Lite mode.",LF,LF 150 g_szHelpCfgFullMode: db "Full mode supports up to 4 IDE controllers (8 drives) and requires 1 kiB of RAM to store hard disk parameters and" 151 db " other variables. This bit of RAM can be reserved from the top of Conventional memory, or, if RAM is available in" 152 db " the Upper Memory Area (UMA), by configuring the BIOS to use an Upper Memory Block (UMB). Full mode makes it" 153 db " possible to use ROM BASIC and other software that requires the memory range where" 154 db " XTIDE Universal BIOS parameters would be stored in Lite mode.",LF,LF 149 155 db "Lite mode supports only 2 IDE controllers (4 drives) and stores parameters to the top of the interrupt vectors" 150 db " (30:0h) so no Conventional memory needs to be reserved. Lite mode cannot be used if some software requires"151 db " the top of interrupt vectors. Usually this is not a problem since only IBM ROM BASIC uses them.",LF,LF156 db " (30:0h) so no Conventional memory needs to be reserved. Lite mode cannot be used if you intend to use" 157 db " IBM ROM BASIC or software such as Turbo BASIC or BASICA.",LF,LF 152 158 db "Tandy 1000 models with 640 kiB or less memory need to use Lite mode since the top of Conventional memory gets" 153 159 db " dynamically reserved by video hardware. This happens only with Tandy integrated video controller and not when" 154 db " using expansion graphics cards. It is possible to use Full mode if reserving RAM for video memory + what is" 155 db " required for XTIDE Universal BIOS. This would mean 65 kiB but most software should work with 33 kiB reserved.",NULL 156 157 g_szHelpCfgStealSize: db "Parameters for detected hard disks must be stored somewhere. In Full mode they are stored at the top of Conventional" 158 db " memory. 1 kiB is usually enough but you may have to reserve more if you want to use Full mode on a Tandy 1000.",NULL 160 db " using expansion graphics cards. It is possible to use Full mode if configuring the BIOS to use an UMB or by" 161 db " reserving RAM for video memory in addition to what is required for XTIDE Universal BIOS. Most software should" 162 db " work with 33 kiB reserved but some will require 65 kiB. Theoretically speaking, a lot more could be required" 163 db " - it is just that we are not aware of any software with higher video memory requirements.",NULL 164 165 g_szHelpCfgRamVars: db "The UMB segment address entered here will be used to store hard disk parameters and other variables leaving all" 166 db " of the Conventional memory free for other uses.",LF,LF 167 db "Do not use this option unless you know for certain that memory actually exists at this address and that it is" 168 db " writable without any prerequisite chipset programming. If you are using any sort of DOS memory manager or UMB" 169 db " provider then it is probably a good idea to use whatever memory range exclusion option it provides to prevent it" 170 db " from trying to use this memory range. Note that only 1 kiB of the UMB will be used.",NULL 171 172 g_szHelpCfgStealSize: db "Parameters for detected hard disks and other variables must be stored somewhere. If in Full mode, and the BIOS has" 173 db " not been configured to use an UMB, then they are stored at the top of Conventional memory." 174 db " 1 kiB is usually enough but you may have to reserve more if you want to use Full mode on a Tandy 1000.",NULL 159 175 160 176 g_szHelpCfgIdleTimeout: db "This option enables the standby timer for all harddrives handled by XTIDE Universal BIOS,"
Note:
See TracChangeset
for help on using the changeset viewer.