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


Ignore:
Timestamp:
May 3, 2012, 12:56:04 PM (13 years ago)
Author:
aitotat@…
google:author:
aitotat@gmail.com
Message:

Changes to XTIDE Universal BIOS:

  • MEMPIOVARS no longer overflow when not building MODULE_EBIOS.
Location:
trunk/XTIDE_Universal_BIOS/Src/Device/IDE
Files:
3 edited

Legend:

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

    r412 r414  
    3333;--------------------------------------------------------------------
    3434IdeIO_OutputALtoIdeControlBlockRegisterInDL:
    35 %ifdef MODULE_8BIT_IDE
    36     mov     dh, [di+DPT_ATA.bDevice]
    37 %ifdef MODULE_JRIDE
    38     test    dh, dh
    39     jnz     SHORT .OutputToIoMappedIde
    40 
    41     add     dx, JRIDE_CONTROL_BLOCK_REGISTER_WINDOW_OFFSET
    42     jmp     SHORT OutputToJrIdeRegister
    43 .OutputToIoMappedIde:
    44 %endif  ; MODULE_JRIDE
    45 %endif  ; MODULE_8BIT_IDE
     35    %ifdef MODULE_8BIT_IDE
     36        mov     dh, [di+DPT_ATA.bDevice]
     37        %ifdef MODULE_JRIDE
     38            test    dh, dh
     39            jnz     SHORT .OutputToIoMappedIde
     40       
     41            add     dx, JRIDE_CONTROL_BLOCK_REGISTER_WINDOW_OFFSET
     42            jmp     SHORT OutputToJrIdeRegister
     43        .OutputToIoMappedIde:
     44        %endif  ; MODULE_JRIDE
     45    %endif  ; MODULE_8BIT_IDE
    4646
    4747    mov     bl, IDEVARS.wPortCtrl
     
    6262ALIGN JUMP_ALIGN
    6363IdeIO_OutputALtoIdeRegisterInDL:
    64 %ifdef MODULE_8BIT_IDE
    65     mov     dh, [di+DPT_ATA.bDevice]
    66 %ifdef MODULE_JRIDE
    67     test    dh, dh
    68     jnz     SHORT OutputALtoIOmappedIdeRegisterInDL
    69 
    70 %if JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET & 0FFh = 0
    71     mov     dh, JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET >> 8
    72 %else
    73     add     dx, JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET
    74 %endif
    75 OutputToJrIdeRegister:
    76     mov     bx, dx
    77     mov     [cs:bx], al
    78     ret
    79 ALIGN JUMP_ALIGN
    80 OutputALtoIOmappedIdeRegisterInDL:
    81 %endif  ; MODULE_JRIDE
    82 %endif  ; MODULE_8BIT_IDE
     64    %ifdef MODULE_8BIT_IDE
     65        mov     dh, [di+DPT_ATA.bDevice]
     66        %ifdef MODULE_JRIDE
     67            test    dh, dh
     68            jnz     SHORT OutputALtoIOmappedIdeRegisterInDL
     69       
     70        %if JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET & 0FFh = 0
     71            mov     dh, JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET >> 8
     72        %else
     73            add     dx, JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET
     74        %endif
     75        OutputToJrIdeRegister:
     76            mov     bx, dx
     77            mov     [cs:bx], al
     78            ret
     79        ALIGN JUMP_ALIGN
     80        OutputALtoIOmappedIdeRegisterInDL:
     81        %endif  ; MODULE_JRIDE
     82    %endif  ; MODULE_8BIT_IDE
    8383
    8484    mov     bl, IDEVARS.wPort
     
    114114;--------------------------------------------------------------------
    115115IdeIO_InputToALfromIdeRegisterInDL:
    116 %ifdef MODULE_8BIT_IDE
    117     mov     dh, [di+DPT_ATA.bDevice]
    118 %ifdef MODULE_JRIDE
    119     test    dh, dh
    120     jnz     SHORT .InputToALfromIOmappedIdeRegisterInDL
    121 
    122 %if JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET & 0FFh = 0
    123     mov     dh, JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET >> 8
    124 %else
    125     add     dx, JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET
    126 %endif
    127     mov     bx, dx
    128     mov     al, [cs:bx]
    129     ret
    130 .InputToALfromIOmappedIdeRegisterInDL:
    131 %endif  ; MODULE_JRIDE
    132 %endif  ; MODULE_8BIT_IDE
     116    %ifdef MODULE_8BIT_IDE
     117        mov     dh, [di+DPT_ATA.bDevice]
     118        %ifdef MODULE_JRIDE
     119            test    dh, dh
     120            jnz     SHORT .InputToALfromIOmappedIdeRegisterInDL
     121       
     122        %if JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET & 0FFh = 0
     123            mov     dh, JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET >> 8
     124        %else
     125            add     dx, JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET
     126        %endif
     127            mov     bx, dx
     128            mov     al, [cs:bx]
     129            ret
     130        .InputToALfromIOmappedIdeRegisterInDL:
     131        %endif  ; MODULE_JRIDE
     132    %endif  ; MODULE_8BIT_IDE
    133133    mov     bl, IDEVARS.wPort
    134134    call    GetIdePortToDX
  • trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeTransfer.asm

    r402 r414  
    2020; Structure containing variables for PIO transfer functions.
    2121; This struct must not be larger than IDEPACK without INTPACK.
    22 struc PIOVARS
    23     .wDataPort              resb    2   ; 0, IDE Data Port
    24     .fnXfer                 resb    2   ; 2, Offset to transfer function
    25     .wSectorsInBlock        resb    2   ; 4, Block size in sectors
     22struc PIOVARS   ; Must not be larger than 9 bytes! See IDEPACK in RamVars.inc.
     23    .wDataPort              resb    2   ; 0-1, IDE Data Port
     24    .fnXfer                 resb    2   ; 2-3, Offset to transfer function
     25    .wSectorsInBlock        resb    2   ; 4-5, Block size in sectors
    2626    .bSectorsLeft           resb    1   ; 6, Sectors left to transfer
    2727                            resb    1   ; 7, IDEPACK.bDeviceControl
  • trunk/XTIDE_Universal_BIOS/Src/Device/IDE/JrIdeTransfer.asm

    r412 r414  
    2020; Structure containing variables for PIO transfer functions.
    2121; This struct must not be larger than IDEPACK without INTPACK.
    22 struc MEMPIOVARS
    23     .wSectorsInBlock        resb    2   ; 0, Block size in sectors
    24     .bSectorsLeft           resb    1   ; 2, Sectors left to transfer
    25     .bSectorsDone           resb    1   ; 3, Number of sectors xferred
    26                             resb    3   ; 4, 5, 6
     22struc MEMPIOVARS    ; Must not be larger than 9 bytes! See IDEPACK in RamVars.inc.
     23    .wSectorsInBlock        resb    2   ; 0-1, Block size in sectors
     24    .fpDPT                  resb    4   ; 2-5, Far pointer to DPT
     25    .bSectorsLeft           resb    1   ; 6, Sectors left to transfer
    2726                            resb    1   ; 7, IDEPACK.bDeviceControl
    28     .fpDPT                  resb    4   ; 8, Far pointer to DPT
     27    .bSectorsDone           resb    1   ; 8, Number of sectors xferred
    2928endstruc
    3029
Note: See TracChangeset for help on using the changeset viewer.