Changeset 592 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/Initialization/AdvancedAta
- Timestamp:
- Jun 25, 2018, 10:29:27 PM (6 years ago)
- Location:
- trunk/XTIDE_Universal_BIOS/Src/Initialization/AdvancedAta
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Initialization/AdvancedAta/AdvAtaInit.asm
r589 r592 60 60 ; AX: ID WORD specific for detected controller 61 61 ; Returns: 62 ; AL: Max supported PIO mode 63 ; AH: FLGH_DPT_IORDY if IORDY supported, zero otherwise62 ; AL: Max supported PIO mode (only if ZF set) 63 ; AH: ~FLGH_DPT_IORDY if IORDY not supported, -1 otherwise (only if ZF set) 64 64 ; BX: Min PIO cycle time (only if ZF set) 65 65 ; ZF: Set if PIO limit necessary -
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 -
trunk/XTIDE_Universal_BIOS/Src/Initialization/AdvancedAta/Vision.asm
r589 r592 131 131 ; AH: QDI Vision Controller ID 132 132 ; Returns: 133 ; AL: Max supported PIO mode 134 ; AH: FLGH_DPT_IORDY if IORDY supported, zero otherwise133 ; AL: Max supported PIO mode (only if ZF set) 134 ; AH: ~FLGH_DPT_IORDY if IORDY not supported, -1 otherwise (only if ZF set) 135 135 ; BX: Min PIO Cycle Time (only if ZF set) 136 136 ; ZF: Set if PIO limit necessary … … 142 142 cmp ah, ID_QD6500 143 143 jne SHORT .NoNeedToLimitForQD6580 144 145 mov ax, 2 ; Limit to PIO 2 because QD6500 does not support IORDY 144 mov ax, (~FLGH_DPT_IORDY & 0FFh) << 8 | 2 ; Limit to PIO 2 because QD6500 does not support IORDY 146 145 mov bx, PIO_2_MIN_CYCLE_TIME_NS 147 146 .NoNeedToLimitForQD6580:
Note:
See TracChangeset
for help on using the changeset viewer.