Changeset 160 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeCommand.asm
- Timestamp:
- May 4, 2011, 5:49:22 PM (13 years ago)
- google:author:
- aitotat
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeCommand.asm
r158 r160 20 20 or al, FLG_DEVCONTROL_SRST | FLG_DEVCONTROL_nIEN ; Set Reset bit 21 21 mov dl, DEVICE_CONTROL_REGISTER_out 22 call Device_OutputALtoIdeControlBlockRegisterInDL22 call IdeIO_OutputALtoIdeControlBlockRegisterInDL 23 23 mov ax, HSR0_RESET_WAIT_US 24 24 call Timer_DelayMicrosecondsFromAX … … 29 29 and al, ~FLG_DEVCONTROL_SRST ; Clear reset bit 30 30 mov dl, DEVICE_CONTROL_REGISTER_out 31 call Device_OutputALtoIdeControlBlockRegisterInDL31 call IdeIO_OutputALtoIdeControlBlockRegisterInDL 32 32 mov ax, HSR1_RESET_WAIT_US 33 33 call Timer_DelayMicrosecondsFromAX … … 55 55 call FindDPT_ForNewDriveToDSDI 56 56 eMOVZX ax, bh 57 cmp BYTE [cs:bp+IDEVARS.bDevice], DEVICE_XTIDE_WITH_REVERSED_A3_AND_A058 eCMOVE ah, FLGH_DPT_REVERSED_A0_AND_A359 57 mov [di+DPT.wFlags], ax 60 58 mov [di+DPT.bIdevarsOffset], bp 61 59 mov BYTE [di+DPT_ATA.bSetBlock], 1 ; Block = 1 sector 60 call IdeDPT_StoreReversedAddressLinesFlagIfNecessary 62 61 63 62 ; Wait until drive motors have reached max speed … … 121 120 .DoNotSetInterruptInServiceFlag: 122 121 mov dl, DEVICE_CONTROL_REGISTER_out 123 call Device_OutputALtoIdeControlBlockRegisterInDL122 call IdeIO_OutputALtoIdeControlBlockRegisterInDL 124 123 125 124 ; Output Feature Number 126 125 mov dl, FEATURES_REGISTER_out 127 126 mov al, [bp+IDEPACK.bFeatures] 128 call Device_OutputALtoIdeRegisterInDL127 call IdeIO_OutputALtoIdeRegisterInDL 129 128 130 129 ; Output Sector Address High (only used by LBA48) … … 141 140 mov dl, COMMAND_REGISTER_out 142 141 mov al, [bp+IDEPACK.bCommand] 143 call Device_OutputALtoIdeRegisterInDL142 call IdeIO_OutputALtoIdeRegisterInDL 144 143 145 144 ; Wait until command completed … … 184 183 mov dl, DRIVE_AND_HEAD_SELECT_REGISTER 185 184 mov al, [bp+IDEPACK.bDrvAndHead] 186 call Device_OutputALtoIdeRegisterInDL185 call IdeIO_OutputALtoIdeRegisterInDL 187 186 mov bx, TIMEOUT_AND_STATUS_TO_WAIT(TIMEOUT_DRDY, FLG_STATUS_DRDY) 188 187 cmp BYTE [bp+IDEPACK.bCommand], COMMAND_IDENTIFY_DEVICE … … 207 206 OutputSectorCountAndAddress: 208 207 mov dl, SECTOR_COUNT_REGISTER 209 call Device_OutputALtoIdeRegisterInDL208 call IdeIO_OutputALtoIdeRegisterInDL 210 209 211 210 mov al, ah 212 211 mov dl, LBA_LOW_REGISTER 213 call Device_OutputALtoIdeRegisterInDL212 call IdeIO_OutputALtoIdeRegisterInDL 214 213 215 214 mov al, cl 216 215 mov dl, LBA_MIDDLE_REGISTER 217 call Device_OutputALtoIdeRegisterInDL216 call IdeIO_OutputALtoIdeRegisterInDL 218 217 219 218 mov al, ch 220 219 mov dl, LBA_HIGH_REGISTER 221 jmp Device_OutputALtoIdeRegisterInDL220 jmp IdeIO_OutputALtoIdeRegisterInDL
Note: See TracChangeset
for help on using the changeset viewer.