Changeset 592 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Initialization/AdvancedAta/PDC20x30.asm
- Timestamp:
- Jun 25, 2018, 10:29:27 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Initialization/AdvancedAta/PDC20x30.asm
r589 r592 127 127 128 128 ; PDC20230C and PDC20630 clears the bit we set at the beginning 129 in al, dx 129 in al, dx ; 1F2h 130 130 dec dx 131 131 dec dx ; Base port … … 139 139 ; AX: ID WORD specific for detected controller 140 140 ; Returns: 141 ; AL: Max supported PIO mode 142 ; AH: FLGH_DPT_IORDY if IORDY supported, zero otherwise141 ; AL: Max supported PIO mode (only if ZF set) 142 ; AH: ~FLGH_DPT_IORDY if IORDY not supported, -1 otherwise (only if ZF set) 143 143 ; BX: Min PIO cycle time (only if ZF set) 144 144 ; ZF: Set if PIO limit necessary … … 148 148 ;-------------------------------------------------------------------- 149 149 PDC20x30_GetMaxPioModeToALandMinPioCycleTimeToBX: 150 cmp ah, ID_PDC20 630151 j e SHORT .Return ; No need to limit anything152 mov ax, 2; Limit PIO to 2 for ID_PDC20230150 cmp ah, ID_PDC20230 151 jne SHORT .Return ; No need to limit anything for ID_PDC20630 152 mov ax, (~FLGH_DPT_IORDY & 0FFh) << 8 | 2 ; Limit PIO to 2 for ID_PDC20230 153 153 mov bx, PIO_2_MIN_CYCLE_TIME_NS 154 stc155 154 .Return: 156 155 ret … … 206 205 ;-------------------------------------------------------------------- 207 206 SetSpeedForDriveInCX: 208 eMOVZX bx, BYTE [di+DPT_ADVANCED_ATA.bPioMode] 209 MIN_U bl, 2 ; Limit to PIO2 210 mov bl, [cs:bx+.rgbPioModeToPDCspeedValue] 207 mov bx, .rgbPioModeToPDCspeedValue 208 mov al, [di+DPT_ADVANCED_ATA.bPioMode] 209 MIN_U al, 2 ; Limit to PIO2 210 cs xlat 211 xchg bx, ax 211 212 212 213 add dx, BYTE SECTOR_NUMBER_REGISTER
Note:
See TracChangeset
for help on using the changeset viewer.