Changeset 609 in xtideuniversalbios


Ignore:
Timestamp:
May 21, 2021, 11:36:47 PM (3 years ago)
Author:
krille_n_
Message:

Changes:

  • Added autodetection of Arco Computer Products AC-1075 / AC-1070 controllers to XTIDECFG. These are MCA bus controllers and probably rare as hens teeth but apparently compatible with XUB as one person has confirmed using an AC-1075 as a regular 16-bit IDE controller. The port ranges used by these controllers are not used by anything else according to RBIL so autodetection should be fairly safe.
Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AtaGeometry.asm

    r606 r609  
    8484    dec     dx                      ; Set ZF if TRANSLATEMODE_LARGE, SF if TRANSLATEMODE_NORMAL
    8585    jns     SHORT .CheckIfLargeTranslationWanted
    86     MIN_U   ax, MAX_LCHS_CYLINDERS  ; TRANSLATEMODE_NORMAL maximum cylinders
     86    call    AH8h_LimitAXtoMaximumLCylinders ; TRANSLATEMODE_NORMAL maximum cylinders
    8787    inc     dx
    8888.CheckIfLargeTranslationWanted:
  • trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/IdeAutodetect.asm

    r592 r609  
    9999;--------------------------------------------------------------------
    100100DetectPortMappedDeviceFromPortDX:
     101    mov     si, dx
     102    mov     bx, STATUS_REGISTER_in | (ALTERNATE_STATUS_REGISTER_in << 8)
     103    ; *** Try to detect AC-1075 / AC-1070 controllers ***
     104    cmp     dh, 25h
     105    jne     SHORT .NotArcoComputerProducts
     106    add     si, BYTE 8                  ; Add control block offset
     107    call    DetectIdeDeviceFromPortsDXandSIwithOffsetsInBLandBH
     108    mov     al, DEVICE_16BIT_ATA
     109    ret
     110.NotArcoComputerProducts:
    101111    ; *** Try to detect Standard 16- and 32-bit IDE Devices ***
    102112    mov     al, DEVICE_16BIT_ATA        ; Assume 16-bit ISA slot for AT builds
     
    105115
    106116    ; Start with standard Control Block base port used by Primary and Secondary IDE
    107     mov     si, dx
    108117    add     si, STANDARD_CONTROL_BLOCK_OFFSET
    109     mov     bx, STATUS_REGISTER_in | (ALTERNATE_STATUS_REGISTER_in << 8)
    110118.RedetectTertiaryOrQuaternaryWithDifferentControlBlockAddress:
    111119    push    ax                          ; Store device type
     
    120128    call    ChangeControlBlockAddressInSI
    121129    jz      SHORT .RedetectTertiaryOrQuaternaryWithDifferentControlBlockAddress
    122 
    123130
    124131    ; Detect 8-bit devices only if MODULE_8BIT_IDE is available
     
    258265    ; Fall to .TrySecondAlternative
    259266.TrySecondAlternative:
    260     sub     si, BYTE 8h     ; 368h to 360h, 3E8h to 3E0h
    261     cmp     sp, sp          ; Set ZF
     267    lea     si, [si-8]      ; 368h to 360h, 3E8h to 3E0h
    262268.Return:
    263269    ret
     
    284290.CompareNextIdeBasePort:
    285291    cmp     [cs:si], dx
    286     lea     si, [si+2]  ; Increment SI and preserve FLAGS
     292    lea     si, [si+2]          ; Increment SI and preserve FLAGS
    287293    jne     SHORT .CompareNextIdeBasePort
    288294
     
    320326    dw      3C0h
    321327    dw      3E0h
     328    ; Arco Computer Products AC-1075 / AC-1070 (16-bit MCA IDE adapters with Control Block at +8 and no IRQ)
     329    dw      2510h
     330    dw      2520h
    322331    ; Memory Segment Addresses
    323332    dw      0C000h  ; JR-IDE/ISA
Note: See TracChangeset for help on using the changeset viewer.