Changeset 612 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src
- Timestamp:
- May 26, 2021, 1:42:14 PM (3 years ago)
- Location:
- trunk/XTIDE_Universal_BIOS/Src
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeCommand.asm
r611 r612 173 173 ; Output Sector Address High (only used by LBA48) 174 174 %ifdef MODULE_EBIOS 175 eMOVZX ax, [bp+IDEPACK.bLbaLowExt] ; Zero sector count176 x chg al, ah ; LBA low ext to AH, zero sectors to AL175 mov ah, [bp+IDEPACK.bLbaLowExt] 176 xor al, al ; Zero sector count 177 177 mov cx, [bp+IDEPACK.wLbaMiddleAndHighExt] 178 178 call OutputSectorCountAndAddress -
trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH8h_HParams.asm
r606 r612 102 102 AH8h_GetDriveParameters: 103 103 call AccessDPT_GetLCHStoAXBLBH 104 call A H8h_LimitAXtoMaximumLCylinders104 call AtaGeometry_LimitAXtoMaximumLCylinders 105 105 ; Fall to .PackReturnValues 106 106 … … 136 136 eSHR_IM bl, FLGH_DPT_SERIAL_FLOPPY_TYPE_FIELD_POSITION 137 137 %endif 138 ret139 140 141 ;--------------------------------------------------------------------142 ; AH8h_LimitAXtoMaximumLCylinders143 ; Parameters:144 ; AX: Number of total L-CHS cylinders (1...1027)145 ; Returns:146 ; AX: Number of usable L-CHS cylinders (1...1024)147 ; Corrupts registers:148 ; Nothing149 ;--------------------------------------------------------------------150 AH8h_LimitAXtoMaximumLCylinders:151 MIN_U ax, MAX_LCHS_CYLINDERS152 138 ret 153 139 -
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AtaGeometry.asm
r609 r612 84 84 dec dx ; Set ZF if TRANSLATEMODE_LARGE, SF if TRANSLATEMODE_NORMAL 85 85 jns SHORT .CheckIfLargeTranslationWanted 86 call A H8h_LimitAXtoMaximumLCylinders ; TRANSLATEMODE_NORMAL maximum cylinders86 call AtaGeometry_LimitAXtoMaximumLCylinders ; TRANSLATEMODE_NORMAL maximum cylinders 87 87 inc dx 88 88 .CheckIfLargeTranslationWanted: … … 239 239 mov bl, [es:si+ATA1.wHeadCnt] ; Heads (1...16) 240 240 mov bh, [es:si+ATA1.wSPT] ; Sectors per Track (1...63) 241 %ifndef EXCLUDE_FROM_BIOSDRVS ; We want the true value in BIOSDRVS 242 ; Some CF cards (for example Sandisk Ultra 16/32 GB) violates 243 ; the ATA specification by reporting more than 16383 cylinders. 244 MIN_U ax, MAX_PCHS_CYLINDERS ; Limit the count to avoid problems. 245 %endif 241 246 ret 242 247 … … 360 365 ret 361 366 367 368 ;-------------------------------------------------------------------- 369 ; AtaGeometry_LimitAXtoMaximumLCylinders 370 ; Parameters: 371 ; AX: Number of total L-CHS cylinders (1...1027) 372 ; Returns: 373 ; AX: Number of usable L-CHS cylinders (1...1024) 374 ; Corrupts registers: 375 ; Nothing 376 ;-------------------------------------------------------------------- 377 AtaGeometry_LimitAXtoMaximumLCylinders: 378 MIN_U ax, MAX_LCHS_CYLINDERS 379 ret 380 -
trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/CompatibleDPT.asm
r589 r612 96 96 FillToESDIusingDPTfromDSSI: 97 97 mov ax, [si+DPT.wLchsCylinders] 98 call A H8h_LimitAXtoMaximumLCylinders98 call AtaGeometry_LimitAXtoMaximumLCylinders 99 99 test BYTE [si+DPT.bFlagsLow], MASKL_DPT_TRANSLATEMODE 100 100 jz SHORT FillStandardDPTtoESDIfromDPTinDSSI
Note:
See TracChangeset
for help on using the changeset viewer.