Ignore:
Timestamp:
Dec 21, 2014, 5:37:53 PM (9 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • SerDrive: Using named pipe mode (serdrive -p) now works under Windows XP/2000/Server 2003.
  • checksum.pl: Added a compatibility fix for 3Com 3C503 cards.
  • XTIDECFG will now scan every possible segment address to find and load the BIOS and/or its settings from EEPROM. This should simplify things for people using combined option ROMs.
  • Fixed a bug from r521 in BootSector.asm where the BIOS would not display a timeout error if it failed to load the boot sector from harddrive.
  • Fixed a bug from r541 in CompatibleDPT.asm where CompatibleDPT_CreateDeviceParameterTableExtensionToESBXfromDPTinDSSI would generate an invalid checksum in the DPTE.
  • Optimizations and other fixes.
File:
1 edited

Legend:

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

    r526 r568  
    8383
    8484    push    cx
    85     call    .GetSdpCommandFunctionToDXwithFlashvarsInSSBP
     85    call    .GetSdpCommandFunctionToAXwithFlashvarsInSSBP
    8686    mov     cx, [bp+FLASHVARS.wEepromPageSize]
    8787    mov     si, [bp+FLASHVARS.fpNextSourcePage]
     
    9494
    9595;--------------------------------------------------------------------
    96 ; .GetSdpCommandFunctionToDXwithFlashvarsInSSBP
    97 ;   Parameters:
    98 ;       SS:BP:  Ptr to FLASHVARS
    99 ;   Returns:
    100 ;       DX:     Ptr to SDP Command function
     96; .GetSdpCommandFunctionToAXwithFlashvarsInSSBP
     97;   Parameters:
     98;       SS:BP:  Ptr to FLASHVARS
     99;   Returns:
     100;       AX:     Ptr to SDP Command function
    101101;   Corrupts registers:
    102102;       BX, SI
    103103;--------------------------------------------------------------------
    104104ALIGN JUMP_ALIGN
    105 .GetSdpCommandFunctionToDXwithFlashvarsInSSBP:
     105.GetSdpCommandFunctionToAXwithFlashvarsInSSBP:
    106106    eMOVZX  bx, [bp+FLASHVARS.bEepromSdpCommand]
    107107    mov     si, [cs:bx+.rgpSdpCommandToEepromTypeLookupTable]
    108108    mov     bl, [bp+FLASHVARS.bEepromType]
    109     mov     dx, [cs:bx+si]
     109    mov     ax, [cs:bx+si]
    110110    ret
    111111
     
    182182;       Nothing
    183183;   Corrupts registers:
    184 ;       Nothing
     184;       AX
    185185;--------------------------------------------------------------------
    186186%macro DISABLE_SDP 2
    187     mov     BYTE [%1], 0AAh
    188     mov     BYTE [%2], 55h
    189     mov     BYTE [%1], 80h
    190     mov     BYTE [%1], 0AAh
    191     mov     BYTE [%2], 55h
    192     mov     BYTE [%1], 20h
     187    mov     ax, 80AAh
     188%%Again:
     189    mov     [%1], al        ; 0AAh
     190    shr     al, 1
     191    mov     [%2], al        ; 55h
     192    mov     [%1], ah        ; 80h/20h
     193    xor     ax, 0A0FFh
     194    jns     SHORT %%Again
    193195%endmacro
    194196
     
    215217WriteSdpEnableCommandFor2864mod:
    216218    ENABLE_SDP 155Ch, 0AA3h
    217     jmp     ReturnFromSdpCommand
     219    jmp     SHORT ReturnFromSdpCommand
    218220
    219221ALIGN JUMP_ALIGN
    220222WriteSdpEnableCommandFor28256or28512:
    221223    ENABLE_SDP 5555h, 2AAAh
    222     jmp     ReturnFromSdpCommand
     224    jmp     SHORT ReturnFromSdpCommand
    223225
    224226
     
    241243WriteSdpDisableCommandFor28256or28512:
    242244    DISABLE_SDP 5555h, 2AAAh
    243 DoNotWriteAnySdpCommand:
    244     jmp     SHORT ReturnFromSdpCommand
    245 
    246 
    247 ;--------------------------------------------------------------------
    248 ; WriteNextChangedByteFromPageToEeprom
    249 ;   Parameters:
     245    jmp     SHORT ReturnFromSdpCommand
     246
     247DoNotWriteAnySdpCommand EQU ReturnFromSdpCommand
     248
     249
     250;--------------------------------------------------------------------
     251; WriteAllChangedBytesFromPageToEeprom
     252;   Parameters:
     253;       AX:     Offset to SDP command function
     254;       BX:     Offset to next destination byte
    250255;       CX:     Number of bytes left to write
    251 ;       DX:     Offset to SDP command function
    252 ;       BX:     Offset to next destination byte
    253256;       SI:     Offset to next source byte
    254257;       ES:DI:  Ptr to next comparison byte
     
    258261;               Cleared if page written successfully
    259262;   Corrupts registers:
    260 ;       AX, BX, CX, SI, DI, DS, ES
     263;       AX, BX, CX, DX, SI, DI, DS, ES
    261264;--------------------------------------------------------------------
    262265ALIGN JUMP_ALIGN
    263266WriteAllChangedBytesFromPageToEeprom:
    264     mov     ax, [bp+FLASHVARS.fpNextSourcePage+2]       ; AX = Source segment
     267    mov     dx, [bp+FLASHVARS.fpNextSourcePage+2]       ; DX = Source segment
    265268    mov     ds, [bp+FLASHVARS.fpNextDestinationPage+2]  ; DS = EEPROM segment
    266269    cli                     ; Disable interrupts
    267     jmp     dx              ; Write SDP command (once to the beginning of page)
     270    jmp     ax              ; Write SDP command (once to the beginning of page)
    268271ALIGN JUMP_ALIGN
    269272ReturnFromSdpCommand:
    270     mov     ds, ax          ; DS:SI now points to source byte
     273    mov     ds, dx          ; DS:SI now points to source byte
    271274
    272275ALIGN JUMP_ALIGN
     
    278281    mov     ds, [bp+FLASHVARS.fpNextDestinationPage+2]  ; DS:BX now points to EEPROM
    279282    mov     [bx], al        ; Write byte to EEPROM
    280     mov     ds, [bp+FLASHVARS.fpNextSourcePage+2]       ; Restore DS
     283    mov     ds, dx          ; Restore DS
    281284    mov     [bp+FLASHVARS.wLastOffsetWritten], bx
    282285    mov     [bp+FLASHVARS.bLastByteWritten], al
Note: See TracChangeset for help on using the changeset viewer.