Changeset 621 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/FlashMenu.asm
- Timestamp:
- Nov 21, 2021, 2:15:32 PM (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Menupages/FlashMenu.asm
r620 r621 205 205 mov si, g_MenupageForFlashMenu 206 206 ePUSH_T bx, Menupage_ChangeToNewMenupageInDSSI 207 cmp WORD [g_cfgVars+CFGVARS.bEepromType], EEPROM_TYPE.SST_39SF 208 jz SHORT .DisableMenuitemsUnusedBySstFlash 209 ; Fall to .EnableMenuitemsUnusedBySstFlash 210 211 ;-------------------------------------------------------------------- 212 ; .EnableMenuitemsUnusedBySstFlash 213 ; Parameters: 207 cmp BYTE [g_cfgVars+CFGVARS.bEepromType], EEPROM_TYPE.SST_39SF 208 mov ax, DisableMenuitemFromCSBX 209 je SHORT .EnableOrDisableMenuitemsUnusedBySstFlash 210 mov ax, EnableMenuitemFromCSBX 211 ; Fall to .EnableOrDisableMenuitemsUnusedBySstFlash 212 213 ;-------------------------------------------------------------------- 214 ; .EnableOrDisableMenuitemsUnusedBySstFlash 215 ; Parameters: 216 ; AX: Offset to EnableMenuitemFromCSBX / DisableMenuitemFromCSBX 214 217 ; SS:BP: Menu handle 215 218 ; Returns: 216 219 ; Nothing 217 220 ; Corrupts registers: 218 ; AX, BX 219 ;-------------------------------------------------------------------- 220 ALIGN JUMP_ALIGN 221 .EnableMenuitemsUnusedBySstFlash: 221 ; BX 222 ;-------------------------------------------------------------------- 223 .EnableOrDisableMenuitemsUnusedBySstFlash: 222 224 mov bx, g_MenuitemFlashSdpCommand 223 call EnableMenuitemFromCSBX225 call ax 224 226 mov bx, g_MenuitemFlashPageSize 225 jmp EnableMenuitemFromCSBX 226 227 ;-------------------------------------------------------------------- 228 ; .DisableMenuitemsUnusedBySstFlash 229 ; Parameters: 230 ; SS:BP: Menu handle 231 ; Returns: 232 ; Nothing 233 ; Corrupts registers: 234 ; AX, BX 235 ;-------------------------------------------------------------------- 236 ALIGN JUMP_ALIGN 237 .DisableMenuitemsUnusedBySstFlash: 238 mov bx, g_MenuitemFlashSdpCommand 239 call DisableMenuitemFromCSBX 240 mov bx, g_MenuitemFlashPageSize 241 jmp DisableMenuitemFromCSBX 227 jmp ax 242 228 243 229 ;-------------------------------------------------------------------- … … 254 240 call .MakeSureThatImageFitsInEeprom 255 241 jc SHORT .InvalidFlashingParameters 256 cmp WORD [cs:g_cfgVars+CFGVARS.bEepromType], EEPROM_TYPE.SST_39SF257 jn zSHORT .SkipAlignmentCheck242 cmp BYTE [g_cfgVars+CFGVARS.bEepromType], EEPROM_TYPE.SST_39SF 243 jne SHORT .SkipAlignmentCheck 258 244 call .MakeSureAddress32KAligned 259 j cSHORT .InvalidFlashingParameters245 jnz SHORT .InvalidFlashingParameters 260 246 .SkipAlignmentCheck: 261 247 push es … … 267 253 call .InitializeFlashvarsFromDSSI 268 254 mov bx, si ; DS:BX now points to FLASHVARS 269 cmp WORD [cs:g_cfgVars+CFGVARS.bEepromType], EEPROM_TYPE.SST_39SF270 j zSHORT .FlashWithoutProgressBar255 cmp BYTE [g_cfgVars+CFGVARS.bEepromType], EEPROM_TYPE.SST_39SF 256 je SHORT .FlashWithoutProgressBar 271 257 add si, BYTE FLASHVARS_size ; DS:SI now points to PROGRESS_DIALOG_IO 272 258 call Dialogs_DisplayProgressDialogForFlashingWithDialogIoInDSSIandFlashvarsInDSBX … … 282 268 .FlashWithoutProgressBar: ; Worst case. SST devices will 283 269 call FlashSst_WithFlashvarsInDSBX ; either complete flashing 284 jmp SHORT .FlashComplete ; or timeout within 2 seconds. 270 jmp SHORT .FlashComplete ; or timeout within 2 seconds. 285 271 286 272 ;-------------------------------------------------------------------- … … 296 282 .MakeSureThatImageFitsInEeprom: 297 283 call Buffers_GetSelectedEepromSizeInWordsToAX 298 cmp ax, [ cs:g_cfgVars+CFGVARS.wImageSizeInWords]284 cmp ax, [g_cfgVars+CFGVARS.wImageSizeInWords] 299 285 jae SHORT .ImageFitsInSelectedEeprom 300 286 mov dx, g_szErrEepromTooSmall … … 312 298 ; SS:BP: Ptr to MENU 313 299 ; Returns: 314 ; CF: Setif EEPROM segment is not 32K aligned315 ; Corrupts registers: 316 ; AX, BX,DX300 ; ZF: Cleared if EEPROM segment is not 32K aligned 301 ; Corrupts registers: 302 ; AX, DX 317 303 ;-------------------------------------------------------------------- 318 304 ALIGN JUMP_ALIGN 319 305 .MakeSureAddress32KAligned: 320 mov ax, [cs:g_cfgVars+CFGVARS.wEepromSegment] 321 and ax, 007FFh 306 test WORD [g_cfgVars+CFGVARS.wEepromSegment], 07FFh 322 307 jz SHORT .AlignmentIs32K 323 308 mov dx, g_szErrAddrNot32KAligned 324 call Dialogs_DisplayErrorFromCSDX 325 stc 326 ret 309 jmp Dialogs_DisplayErrorFromCSDX 327 310 328 311 ;-------------------------------------------------------------------- … … 339 322 call EEPROM_LoadFromRomToRamComparisonBuffer 340 323 call Buffers_AppendZeroesIfNeeded 341 test BYTE [ cs:g_cfgVars+CFGVARS.wFlags], FLG_CFGVARS_CHECKSUM324 test BYTE [g_cfgVars+CFGVARS.wFlags], FLG_CFGVARS_CHECKSUM 342 325 jz SHORT .DoNotGenerateChecksumByte 343 326 jmp Buffers_GenerateChecksum … … 363 346 mov [si+FLASHVARS.fpNextComparisonPage+2], es 364 347 365 mov ax, [ cs:g_cfgVars+CFGVARS.wEepromSegment]348 mov ax, [g_cfgVars+CFGVARS.wEepromSegment] 366 349 mov WORD [si+FLASHVARS.fpNextDestinationPage], 0 367 350 mov [si+FLASHVARS.fpNextDestinationPage+2], ax 368 351 369 mov al, [ cs:g_cfgVars+CFGVARS.bEepromType]352 mov al, [g_cfgVars+CFGVARS.bEepromType] 370 353 mov [si+FLASHVARS.bEepromType], al 371 354 372 mov al, [ cs:g_cfgVars+CFGVARS.bSdpCommand]355 mov al, [g_cfgVars+CFGVARS.bSdpCommand] 373 356 mov [si+FLASHVARS.bEepromSdpCommand], al 374 357 375 358 mov ax, SST_PAGE_SIZE 376 cmp WORD[g_cfgVars+CFGVARS.bEepromType], EEPROM_TYPE.SST_39SF377 j zSHORT .UseSstPageSize378 379 eMOVZX bx, [ cs:g_cfgVars+CFGVARS.bEepromPage]380 mov ax, [ cs:bx+g_rgwEepromPageToSizeInBytes]359 cmp BYTE [g_cfgVars+CFGVARS.bEepromType], EEPROM_TYPE.SST_39SF 360 je SHORT .UseSstPageSize 361 362 eMOVZX bx, [g_cfgVars+CFGVARS.bEepromPage] 363 mov ax, [bx+g_rgwEepromPageToSizeInBytes] 381 364 .UseSstPageSize: 382 365 mov [si+FLASHVARS.wEepromPageSize], ax
Note:
See TracChangeset
for help on using the changeset viewer.