Changeset 474 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Handlers


Ignore:
Timestamp:
Oct 11, 2012, 5:30:15 PM (12 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Drive detection now displays autodetected XT-CF port and skips slave drives for XT-CF.
  • AH=1Eh no longer tries to disable 8-bit mode for memory mapped and DMA transfer modes.
  • Preparations to implement DMA.
Location:
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH1Eh_XTCF.asm

    r473 r474  
    111111    ; Set DMA Mode
    112112    mov     BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_DMA
    113     jmp     AH23h_Disable8bitPioMode
     113    mov     al, [di+DPT_ATA.bBlockSize]
     114    jmp     AH24h_SetBlockSize  ; AH=24h limits block size if necessary
    114115
    115116.SetMemoryMappedMode:
    116117    mov     BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_MEMMAP
    117     jmp     AH23h_Disable8bitPioMode
     118    jmp     SHORT .Enable8bitPioMode
    118119
    119120.Set8bitPioMode:
    120121    mov     BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_PIO8
     122.Enable8bitPioMode:
    121123    jmp     AH23h_Enable8bitPioMode
    122124
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH23h_HFeatures.asm

    r473 r474  
    7979;--------------------------------------------------------------------
    8080; AH23h_Enable8bitPioMode
    81 ; AH23h_Disable8bitPioMode
    8281;   Parameters:
    8382;       DS:DI:  Ptr to DPT (in RAMVARS segment)
     
    9291    mov     si, FEATURE_ENABLE_8BIT_PIO_TRANSFER_MODE
    9392    jmp     SHORT AH23h_SetControllerFeatures
    94 AH23h_Disable8bitPioMode:
    95     mov     si, FEATURE_DISABLE_8BIT_PIO_TRANSFER_MODE
    96     jmp     SHORT AH23h_SetControllerFeatures
    9793%endif ; MODULE_8BIT_IDE
  • trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Prepare.asm

    r445 r474  
    8282;   Parameters:
    8383;       AL:     Number of sectors to transfer
     84;       DS:DI:  Ptr to DPT (in RAMVARS segment)
    8485;       SS:BP:  Ptr to IDEPACK
    8586;   Parameters on INTPACK:
     
    9394ALIGN JUMP_ALIGN
    9495Prepare_BufferToESSIforOldInt13hTransfer:
    95     ; Normalize buffer pointer
     96    cmp     BYTE [di+DPT_ATA.bDevice], DEVICE_8BIT_XTCF_DMA
     97    jne     SHORT .NormalizeForSmallestPossibleOffset
     98
     99    ; Normalize segment for physical 64k pages
     100    xor     bx, bx
     101    mov     si, [bp+IDEPACK.intpack+INTPACK.es] ; Load segment
     102%rep 4
     103    shl     si, 1
     104    rcl     bx, 1
     105%endrep
     106    add     si, [bp+IDEPACK.intpack+INTPACK.bx]
     107    adc     bx, BYTE 0
     108    mov     es, bx                              ; ES:SI now has physical address
     109    jmp     SHORT Prepare_ByValidatingSectorsInALforOldInt13h
     110
     111    ; Normalize segment for 16b pages
     112.NormalizeForSmallestPossibleOffset:
    96113    mov     bx, [bp+IDEPACK.intpack+INTPACK.bx] ; Load offset
    97114    mov     si, bx
Note: See TracChangeset for help on using the changeset viewer.