Changeset 568 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Device


Ignore:
Timestamp:
Dec 21, 2014, 5:37:53 PM (10 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.
Location:
trunk/XTIDE_Universal_BIOS/Src/Device
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Device/Device.asm

    r526 r568  
    4747%ifdef MODULE_SERIAL    ; IDE + Serial
    4848Device_FinalizeDPT:
    49     ; needs to check IDEVARS vs. checking the DPT as the serial bit in the DPT is set in the Finalize routine
    50     CMP_USING_IDEVARS_IN_CSBP_AND_JUMP_IF   DEVICE_SERIAL_PORT, .FinalizeDptForSerialPortDevice
     49    ; Needs to check IDEVARS vs. checking the DPT as the serial bit in the DPT is set in the Finalize routine
     50    cmp     BYTE [cs:bp+IDEVARS.bDevice], DEVICE_SERIAL_PORT
     51%ifdef USE_386
     52    jne     IdeDPT_Finalize
     53    jmp     SerialDPT_Finalize
     54%else
     55    je      SHORT .FinalizeDptForSerialPortDevice
    5156    jmp     IdeDPT_Finalize
    5257.FinalizeDptForSerialPortDevice:
    5358    jmp     SerialDPT_Finalize
     59%endif
    5460
    5561%else                   ; IDE
     
    94100%ifdef MODULE_SERIAL    ; IDE + Serial
    95101Device_IdentifyToBufferInESSIwithDriveSelectByteInBH:
    96     CMP_USING_IDEVARS_IN_CSBP_AND_JUMP_IF   DEVICE_SERIAL_PORT, .IdentifyDriveFromSerialPort
     102    cmp     BYTE [cs:bp+IDEVARS.bDevice], DEVICE_SERIAL_PORT
     103%ifdef USE_386
     104    jne     IdeCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH
     105    jmp     SerialCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH
     106%else
     107    je      SHORT .IdentifyDriveFromSerialPort
    97108    jmp     IdeCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH
    98109.IdentifyDriveFromSerialPort:
    99110    jmp     SerialCommand_IdentifyDeviceToBufferInESSIwithDriveSelectByteInBH
     111%endif
    100112
    101113%else                   ; IDE
     
    122134ALIGN JUMP_ALIGN
    123135Device_OutputCommandWithParameters:
    124     TEST_USING_DPT_AND_JUMP_IF_SERIAL_DEVICE .OutputCommandToSerialPort
     136    test    BYTE [di+DPT.bFlagsHigh], FLGH_DPT_SERIAL_DEVICE
     137%ifdef USE_386
     138    jz      IdeCommand_OutputWithParameters
     139    jmp     SerialCommand_OutputWithParameters
     140%else
     141    jnz     SHORT .OutputCommandToSerialPort
    125142    jmp     IdeCommand_OutputWithParameters
    126143
     
    128145.OutputCommandToSerialPort:
    129146    jmp     SerialCommand_OutputWithParameters
     147%endif
    130148
    131149%else                   ; IDE
     
    147165%ifdef MODULE_SERIAL    ; IDE + Serial
    148166Device_SelectDrive:
    149     TEST_USING_DPT_AND_JUMP_IF_SERIAL_DEVICE    ReturnSuccessForSerialPort
     167    test    BYTE [di+DPT.bFlagsHigh], FLGH_DPT_SERIAL_DEVICE
     168%ifndef USE_386
     169    jnz     SHORT ReturnSuccessForSerialPort
    150170    jmp     IdeCommand_SelectDrive
     171%else
     172    jz      IdeCommand_SelectDrive
     173    ; Fall to ReturnSuccessForSerialPort
     174%endif
    151175
    152176%else                   ; IDE
  • trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeTransfer.asm

    r567 r568  
    189189    mov     cl, [bp+PIOVARS.bSectorsLeft]       ; CH is already zero
    190190    push    cx
    191 %ifdef USE_186
    192     push    CheckErrorsAfterTransferringLastBlock
    193     jmp     [bp+PIOVARS.fnXfer]                 ; Transfer possibly partial block
    194 %else
    195191    call    [bp+PIOVARS.fnXfer]                 ; Transfer possibly partial block
    196192    jmp     SHORT CheckErrorsAfterTransferringLastBlock
    197 %endif
    198193
    199194
     
    241236
    242237    ; Convert ES:SI to physical address
    243 %ifdef USE_186
     238%ifdef USE_386
     239
     240    mov     dx, es
     241    xor     ax, ax
     242    shld    ax, dx, 4
     243    shl     dx, 4
     244    add     si, dx
     245    adc     al, ah
     246    mov     es, ax
     247
     248%elifdef USE_186
    244249                        ; Bytes EU Cycles(286)
    245250    mov     ax, es      ; 2     2
Note: See TracChangeset for help on using the changeset viewer.