Changeset 612 in xtideuniversalbios for trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs
- Timestamp:
- May 26, 2021, 1:42:14 PM (4 years ago)
- Location:
- trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
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.