Changeset 567 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeTransfer.asm
- Timestamp:
- May 26, 2014, 1:25:15 PM (11 years ago)
- google:author:
- krille_n_@hotmail.com
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeTransfer.asm
r558 r567 228 228 229 229 ; Get transfer function based on bus type 230 xchg ax, bx ; Lookup table offset to AX231 mov bl, [di+DPT_ATA.bDevice]230 mov al, [di+DPT_ATA.bDevice] 231 add bx, ax 232 232 %ifdef MODULE_8BIT_IDE_ADVANCED 233 mov dl, bl 234 %endif 235 add bx, ax 233 cmp al, DEVICE_8BIT_XTCF_DMA 234 %endif 236 235 mov ax, [cs:bx] ; Load offset to transfer function 237 236 mov [bp+PIOVARS.fnXfer], ax … … 239 238 ; Normalize pointer for PIO-transfers and convert to physical address for DMA transfers 240 239 %ifdef MODULE_8BIT_IDE_ADVANCED 241 cmp dl, DEVICE_8BIT_XTCF_DMA242 240 jb SHORT IdeTransfer_NormalizePointerInESSI 243 241 244 242 ; Convert ES:SI to physical address 245 %ifdef USE_186 ; Bytes EU Cycles(286) 243 %ifdef USE_186 244 ; Bytes EU Cycles(286) 246 245 mov ax, es ; 2 2 247 246 rol ax, 4 ; 3 9 … … 255 254 ; 18 24 256 255 %else ; 808x 257 258 %if 0259 256 ; Bytes EU Cycles(808x) 260 257 mov al, 4 ; 2 4 … … 279 276 ; In other words, we could use a real world test here. 280 277 ; 281 % endif ;0278 %if 0 282 279 ; Bytes EU Cycles(808x/286) 283 280 xor dx, dx ; 2 3/2 … … 291 288 mov es, dx ; 2 2/2 292 289 ;------------------------------------ 293 %endif ; 26 29/26 294 clc 295 ret 290 ; 26 29/26 291 %endif ; 0 292 %endif 293 294 ret ; With CF cleared (taken care of by the physical address conversion) 296 295 %endif ; MODULE_8BIT_IDE_ADVANCED 297 296 ; Fall to IdeTransfer_NormalizePointerInESSI if no MODULE_8BIT_IDE_ADVANCED
Note:
See TracChangeset
for help on using the changeset viewer.