Changeset 473 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Inc/IdeIO.inc
- Timestamp:
- Oct 10, 2012, 6:22:23 PM (13 years ago)
- google:author:
- aitotat@gmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Inc/IdeIO.inc
r400 r473 21 21 %define IDE_IO_INC 22 22 23 JRIDE_SECTOR_ACCESS_WINDOW_OFFSET EQU 3C00h ; 512 byte IDE Sector Access Window24 JRIDE_COMMAND_BLOCK_REGISTER_WINDOW_OFFSET EQU 3E00h ; 8 byte CS0 IDE Register Window25 JRIDE_CONTROL_BLOCK_REGISTER_WINDOW_OFFSET EQU 3E08h ; 8 byte CS1 IDE Register Window26 JRIDE_SECTOR_ACCESS_WINDOW_SIZE EQU 512 ; 512 bytes27 28 29 23 ;-------------------------------------------------------------------- 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 33 26 ; Parameters: 34 27 ; AL: Byte to output … … 42 35 ;-------------------------------------------------------------------- 43 36 %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 46 52 %endif 47 call IdeIO_OutputALtoIdeRegisterInDL48 53 %endmacro 49 54 50 %macro JUMP_TO_OUTPUT_AL_TO_IDE_REGISTER 151 %ifnidni %1, dl52 mov dl, %153 %endif54 jmp IdeIO_OutputALtoIdeRegisterInDL55 %endmacro56 55 57 56 %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 60 73 %endif 61 call IdeIO_OutputALtoIdeControlBlockRegisterInDL62 74 %endmacro 63 75 … … 74 86 ;-------------------------------------------------------------------- 75 87 %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 78 103 %endif 79 call IdeIO_InputToALfromIdeRegisterInDL80 104 %endmacro 81 105
Note:
See TracChangeset
for help on using the changeset viewer.