Changeset 473 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Inc/IdeIO.inc


Ignore:
Timestamp:
Oct 10, 2012, 6:22:23 PM (12 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • Large changes to prepare full XT-CF support (DMA not yet implemented and memory mapped transfers are not working).
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/XTIDE_Universal_BIOS/Inc/IdeIO.inc

    r400 r473  
    2121%define IDE_IO_INC
    2222
    23 JRIDE_SECTOR_ACCESS_WINDOW_OFFSET           EQU 3C00h   ; 512 byte IDE Sector Access Window
    24 JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET  EQU 3E00h   ; 8 byte CS0 IDE Register Window
    25 JRIDE_CONTROL_BLOCK_REGISTER_WINDOW_OFFSET  EQU 3E08h   ; 8 byte CS1 IDE Register Window
    26 JRIDE_SECTOR_ACCESS_WINDOW_SIZE             EQU 512     ; 512 bytes
    27 
    28 
    2923;--------------------------------------------------------------------
    30 ; OUTPUT_AL_TO_IDE_REGISTER_IN_DL
    31 ; JUMP_TO_OUTPUT_AL_TO_IDE_REGISTER_IN_DL
    32 ; OUTPUT_AL_TO_IDE_CONTROL_BLOCK_REGISTER_IN_DL
     24; OUTPUT_AL_TO_IDE_REGISTER
     25; OUTPUT_AL_TO_IDE_CONTROL_BLOCK_REGISTER
    3326;   Parameters:
    3427;       AL:     Byte to output
     
    4235;--------------------------------------------------------------------
    4336%macro OUTPUT_AL_TO_IDE_REGISTER 1
    44 %ifnidni %1, dl
    45     mov     dl, %1
     37%ifndef MODULE_8BIT_IDE ; Standard IDE controllers only
     38
     39    %ifnidni %1, dx
     40        mov     dx, %1
     41    %endif
     42    add     dx, [di+DPT.wBasePort]
     43    out     dx, al
     44
     45%else   ; Register translations required
     46
     47    %ifnidni %1, dl
     48        mov     dl, %1
     49    %endif
     50    call    IdeIO_OutputALtoIdeRegisterInDL
     51
    4652%endif
    47     call    IdeIO_OutputALtoIdeRegisterInDL
    4853%endmacro
    4954
    50 %macro JUMP_TO_OUTPUT_AL_TO_IDE_REGISTER 1
    51 %ifnidni %1, dl
    52     mov     dl, %1
    53 %endif
    54     jmp     IdeIO_OutputALtoIdeRegisterInDL
    55 %endmacro
    5655
    5756%macro OUTPUT_AL_TO_IDE_CONTROL_BLOCK_REGISTER 1
    58 %ifnidni %1, dl
    59     mov     dl, %1
     57%ifndef MODULE_8BIT_IDE ; Standard IDE controllers only
     58
     59    %ifnidni %1, dx
     60        mov     dx, %1
     61    %endif
     62    eMOVZX  bx, BYTE [di+DPT.bIdevarsOffset]
     63    add     dx, [cs:bx+IDEVARS.wControlBlockPort]
     64    out     dx, al
     65
     66%else   ; Register translations required
     67
     68    %ifnidni %1, dl
     69        mov     dl, %1
     70    %endif
     71    call    IdeIO_OutputALtoIdeControlBlockRegisterInDL
     72
    6073%endif
    61     call    IdeIO_OutputALtoIdeControlBlockRegisterInDL
    6274%endmacro
    6375
     
    7486;--------------------------------------------------------------------
    7587%macro INPUT_TO_AL_FROM_IDE_REGISTER 1
    76 %ifnidni %1, dl
    77     mov     dl, %1
     88%ifndef MODULE_8BIT_IDE ; Standard IDE controllers only
     89
     90    %ifnidni %1, dx
     91        mov     dx, %1
     92    %endif
     93    add     dx, [di+DPT.wBasePort]
     94    in      al, dx
     95
     96%else   ; Register translations required
     97
     98    %ifnidni %1, dl
     99        mov     dl, %1
     100    %endif
     101        call    IdeIO_InputToALfromIdeRegisterInDL
     102
    78103%endif
    79     call    IdeIO_InputToALfromIdeRegisterInDL
    80104%endmacro
    81105
Note: See TracChangeset for help on using the changeset viewer.