Ignore:
Timestamp:
Nov 21, 2021, 2:15:32 PM (2 years ago)
Author:
krille_n_
Message:

Changes:

  • Fixed three different bugs all causing the boot menu to show drives using IRQs even though the BIOS had been built without MODULE_IRQ.
  • Fixed two bugs in XTIDECFG where loading a BIOS from file and then loading the old settings from EEPROM would
    • overwrite ROMVARS.wFlags in the loaded BIOS file (in RAM). The possibly resulting mismatch of module flags could make it impossible to change settings for modules included in the BIOS or allow changing settings for modules not included in the BIOS.
    • not copy the color theme over to the loaded BIOS.
  • Also fixed two very minor bugs in XTIDECFG in BiosFile_LoadFileFromDSSItoRamBuffer and BiosFile_SaveRamBufferToFileInDSSI where the error handling in these routines would close whatever file handle that happened to match the error code returned by DOS in AX.
  • Made significant changes to the new flash ROM programming routines to reduce the size. Also fixed a minor bug that would cause the second verification to be skipped and return success when programming a 64 KB block of data.
  • Changed the custom BIOS build file names to the 8.3 format.
  • Changed some help strings in XTIDECFG to clarify things.
  • Other minor optimizations and fixes.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/EEPROM.asm

    r620 r621  
    9999ALIGN JUMP_ALIGN
    100100EEPROM_LoadOldSettingsFromRomToRamBuffer:
    101     mov     cx, ROMVARS_size - ROMVARS.wFlags   ; Number of bytes to load
    102     mov     si, ROMVARS.wFlags                  ; Offset where to start loading
     101    mov     cx, ROMVARS_size - ROMVARS.wFlags - 2   ; Number of bytes to load
     102    mov     si, ROMVARS.wFlags + 2                  ; Offset where to start loading
    103103    ; Fall to LoadBytesFromRomToRamBuffer
    104104
     
    123123    jc      SHORT .XtideUniversalBiosNotFound
    124124    push    es
    125     pop     ds                                          ; DS:SI points to ROM
     125    pop     ds                                      ; DS:SI points to ROM
    126126
    127127    call    Buffers_GetFileBufferToESDI
    128     mov     di, si                                      ; ES:DI points to RAM buffer
     128    mov     di, si                                  ; ES:DI points to RAM buffer
    129129
    130130%ifdef CLD_NEEDED
    131131    cld
    132132%endif
    133     call    Memory_CopyCXbytesFromDSSItoESDI            ; Clears CF
     133    call    Memory_CopyCXbytesFromDSSItoESDI        ; Clears CF
    134134
    135135.XtideUniversalBiosNotFound:
     
    163163    call    Buffers_IsXtideUniversalBiosSignatureInESDI
    164164    je      SHORT .RomFound         ; If equal, CF=0
    165     add     bx, 80h                 ; Increment by 2kB (minimum possible distance from the beginning of one option ROM to the next)
    166     jnc     SHORT .SegmentLoop      ; Loop until segment overflows
     165    sub     bx, -80h                ; Increment by 2kB (minimum possible distance from the beginning of one option ROM to the next)
     166    jc      SHORT .SegmentLoop      ; Loop until segment overflows
     167    stc
    167168.RomFound:
    168169    pop     cx
     
    185186    push    ds
    186187
    187     mov     ds, [cs:g_cfgVars+CFGVARS.wEepromSegment]
     188    eMOVZX  bx, [g_cfgVars+CFGVARS.bEepromType]
     189    mov     cx, [bx+g_rgwEepromTypeToSizeInWords]
     190    mov     ds, [g_cfgVars+CFGVARS.wEepromSegment]
    188191    xor     si, si
    189192    call    Buffers_GetFlashComparisonBufferToESDI
    190     eMOVZX  bx, [cs:g_cfgVars+CFGVARS.bEepromType]
    191193%ifdef CLD_NEEDED
    192194    cld
    193195%endif
    194     mov     cx, [cs:bx+g_rgwEepromTypeToSizeInWords]
    195196    rep movsw
    196197
Note: See TracChangeset for help on using the changeset viewer.