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


Ignore:
Timestamp:
Feb 19, 2015, 1:38:02 PM (10 years ago)
Author:
krille_n_@…
google:author:
krille_n_@hotmail.com
Message:

Changes:

  • XTIDECFG: Fixed a bug from r459 where the menu option for selection of default boot drive would be missing if the BIOS had been built without MODULE_HOTKEYS. The menu option is now visible if either or both of MODULE_HOTKEYS and MODULE_BOOT_MENU is available.
  • BIOS: Disabled ATA-ID validation by adding a new define (NO_ATAID_VALIDATION) and making it the default for all builds since at least two WD Caviar drive models are incompatible with it.
  • Fixed the "No Fixed Disk Present in FDISK"-bug introduced in r551 which means the Tiny build now works without including MODULE_DRIVEXLATE.
  • Fixed a bug from r528 where pressing hotkey F6 would not initiate detection of serial drives.
  • Fixed a bug from r186 in DisplayFormatCompressed.asm where the boot menu would print the IRQ in hexadecimal format when it should be in decimal format.
  • Optimizations and fixes.
File:
1 edited

Legend:

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

    r567 r580  
    4949ALIGN JUMP_ALIGN
    5050.InswLoop:
    51     %rep 8 ; WORDs
     51    %rep 8  ; WORDs
    5252        XTIDE_INSW
    5353    %endrep
     
    7676    rep insb
    7777    ret
    78 %else ; If 8088/8086
     78%else ; 808x
    7979    UNROLL_SECTORS_IN_CX_TO_OWORDS
    8080ALIGN JUMP_ALIGN
     
    112112    ret
    113113
    114 %else ; If 8088/8086
     114%else ; 808x
    115115    UNROLL_SECTORS_IN_CX_TO_OWORDS
    116116ALIGN JUMP_ALIGN
     
    130130    db      0C1h        ; SHL
    131131    db      0E1h        ; CX
    132     db      7           ; 7 (Sectors to DWORDs)
     132    db      7           ; 7 (Sectors to DWORDs)
    133133    rep
    134134    db      66h         ; Override operand size to 32-bit
     
    155155;       Nothing
    156156;   Corrupts registers:
    157 ;       AX, BX, CX, DX
     157;       AX, BX, CX
    158158;--------------------------------------------------------------------
    159159ALIGN JUMP_ALIGN
     
    162162    UNROLL_SECTORS_IN_CX_TO_QWORDS
    163163    mov     bl, 8       ; Bit mask for toggling data low/high reg
    164     push    es          ; Copy ES...
    165     pop     ds          ; ...to DS
     164    push    es
     165    pop     ds
    166166ALIGN JUMP_ALIGN
    167167.OutswLoop:
     
    183183;       Nothing
    184184;   Corrupts registers:
    185 ;       AX, BX, CX, DX
     185;       AX, BX, CX
    186186;--------------------------------------------------------------------
    187187ALIGN JUMP_ALIGN
     
    189189    UNROLL_SECTORS_IN_CX_TO_QWORDS
    190190    push    ds
    191     push    es      ; Copy ES...
    192     pop     ds      ; ...to DS
     191    push    es
     192    pop     ds
    193193ALIGN JUMP_ALIGN
    194194.WriteNextQword:
    195195    %rep 4  ; WORDs
    196         XTIDE_MOD_OUTSW ; special macro
     196        XTIDE_MOD_OUTSW
    197197    %endrep
    198198    loop    .WriteNextQword
     
    210210;       Nothing
    211211;   Corrupts registers:
    212 ;       AX, BX, CX, DX
     212;       AX, BX, CX
    213213;--------------------------------------------------------------------
    214214ALIGN JUMP_ALIGN
     
    220220    ret
    221221
    222 %else ; If 8088/8086
    223     UNROLL_SECTORS_IN_CX_TO_QWORDS
    224     push    ds
    225     ;mov    ax, es
    226     ;mov    ds, ax  ; move es to ds via ax (does this run faster on 8088?)
     222%else ; 808x
     223    UNROLL_SECTORS_IN_CX_TO_QWORDS
     224    push    ds
    227225    push    es
    228226    pop     ds
     
    231229    %rep 8  ; BYTEs
    232230        lodsb           ; Load BYTE from [DS:SI]
    233         out dx, al      ; Write BYTE
     231        out     dx, al  ; Write BYTE
    234232    %endrep
    235233    loop    .WriteNextQword
     
    251249;       Nothing
    252250;   Corrupts registers:
    253 ;       AX, BX, CX, DX
     251;       AX, BX, CX
    254252;--------------------------------------------------------------------
    255253ALIGN JUMP_ALIGN
     
    261259    ret
    262260
    263 %else ; If 8088/8086
    264     UNROLL_SECTORS_IN_CX_TO_QWORDS
    265     push    ds
    266     ;mov    ax, es
    267     ;mov    ds, ax      ; move es to ds via ax (does this run faster on 8088?)
     261%else ; 808x
     262    UNROLL_SECTORS_IN_CX_TO_QWORDS
     263    push    ds
    268264    push    es
    269265    pop     ds
     
    272268    %rep 4  ; WORDs
    273269        lodsw           ; Load WORD from [DS:SI]
    274         out dx, ax      ; Write WORD
     270        out     dx, ax  ; Write WORD
    275271    %endrep
    276272    loop    .WriteNextQword
    277273    pop     ds
    278274    ret
    279 %endif  ; if/else USE_186
     275%endif
    280276
    281277;--------------------------------------------------------------------
     
    284280    db      0C1h        ; SHL
    285281    db      0E1h        ; CX
    286     db      7           ; 7 (Sectors to DWORDs)
     282    db      7           ; 7 (Sectors to DWORDs)
    287283    es                  ; Source is ES segment
    288284    rep
Note: See TracChangeset for help on using the changeset viewer.