Changeset 623 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeDPT.asm


Ignore:
Timestamp:
Jun 15, 2022, 2:48:59 PM (22 months ago)
Author:
krille_n_
Message:

Changes:

  • Reversed the change to IdeDPT.asm in r622 as it didn't work as intended.
  • Reordered some procedures to reduce alignment padding.
  • Added two new defines (EXTRA_LOOP_UNROLLING_SMALL and EXTRA_LOOP_UNROLLING_LARGE) that should improve transfer speeds for some hardware combinations, specifically 808x CPUs with any IDE controller using port I/O and any CPU with XT-IDE controllers.
  • Added a new define (USE_086) for use with 8086 and V30 CPUs only. Unlike the other USE_x86 defines, this define will not change the instruction set used and is therefore compatible with all CPUs. However, it will apply padding to make jump destinations WORD aligned which should improve performance on 8086/V30 CPUs but on 8088/V20 CPUs there is no benefit and, in addition to wasting ROM space, it might in fact be slower on these machines. Since the vast majority of XT class machines are using 8088/V20 CPUs this define is not used in the official XT builds - it's primarily intended for custom BIOS builds.
  • XTIDECFG: The URL to the support forum has been updated.
File:
1 edited

Legend:

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

    r622 r623  
    133133    mov     [di+DPT_ADVANCED_ATA.wMinPioCycleTime], bx
    134134
    135     ; We have detected 32-bit controller so change Device Type since
    136     ; it might have been set to 16-bit on IDEVARS
    137     ;
    138     ; Change to 32-bit on 386 builds only. We leave AT builds unchanged for faster troubleshooting
    139     ; and for uncommon systems, like IBM 486SLC2 processors that can have VLB motherboard even though
    140     ; the IBM 486SLC2 is externally 16-bit CPU
     135    ; We have detected 32-bit controller so change Device Type
     136    ; since it might have been set to 16-bit on IDEVARS
    141137.ChangeTo32bitDevice:
    142 %ifdef USE_386
     138    ; *FIXME* We might need to add code to detect the IBM 486SLC2 CPU (and possibly other
     139    ; 386+ class CPUs with a 16-bit external bus?) to avoid changing to DEVICE_32BIT_ATA.
    143140    mov     BYTE [di+DPT_ATA.bDevice], DEVICE_32BIT_ATA
    144 %endif
    145141.NoAdvancedControllerDetected:
    146142%endif  ; MODULE_ADVANCED_ATA
Note: See TracChangeset for help on using the changeset viewer.