Index: /trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH8h_HParams.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH8h_HParams.asm	(revision 605)
+++ /trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH8h_HParams.asm	(revision 606)
@@ -61,5 +61,4 @@
 
 	mov		[bp+IDEPACK.intpack+INTPACK.bl], bl
-
 	mov		[bp+IDEPACK.intpack+INTPACK.es], es
 	mov		[bp+IDEPACK.intpack+INTPACK.di], di
@@ -150,7 +149,4 @@
 ;--------------------------------------------------------------------
 AH8h_LimitAXtoMaximumLCylinders:
-%ifdef RESERVE_DIAGNOSTIC_CYLINDER
-	dec		ax
-%endif
 	MIN_U	ax, MAX_LCHS_CYLINDERS
 	ret
Index: /trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AtaGeometry.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AtaGeometry.asm	(revision 605)
+++ /trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/AtaGeometry.asm	(revision 606)
@@ -74,7 +74,7 @@
 ;		BH:		Number of L-CHS sectors per track (1...63)
 ;		CX:		Number of bits shifted (0...3)
-;		DL:		CHS Translate Mode
-;	Corrupts registers:
-;		DH
+;		DX:		CHS Translate Mode
+;	Corrupts registers:
+;		Nothing
 ;--------------------------------------------------------------------
 AtaGeometry_GetLCHStoAXBLBHfromAtaInfoInESSIwithTranslateModeInDX:
@@ -100,4 +100,9 @@
 	cmp		ax, 8192
 	jbe		SHORT ConvertPCHfromAXBLtoEnhancedCHinAXBL
+%else
+	; Check if the drive is within the limits of NORMAL addressing.
+	; If it is, then no CHS translation is necessary.
+	cmp		ax, MAX_LCHS_CYLINDERS
+	jbe		SHORT ConvertPCHfromAXBLtoEnhancedCHinAXBL
 %endif
 
@@ -161,7 +166,7 @@
 ;		BH:		Number of sectors per track (always 63)
 ;		CX:		Number of bits shifted (0)
-;		DL:		TRANSLATEMODE_ASSISTED_LBA
-;	Corrupts registers:
-;		DH
+;		DX:		TRANSLATEMODE_ASSISTED_LBA
+;	Corrupts registers:
+;		Nothing
 ;--------------------------------------------------------------------
 ConvertChsSectorCountFromDXAXtoLbaAssistedLCHSinAXBLBH:
@@ -213,4 +218,6 @@
 	xchg	bh, cl						; Sectors per Track to BH, zero to CL (CX)
 	mov		dl, TRANSLATEMODE_ASSISTED_LBA
+	; All combinations of value CH from 1 to 262128 divided by number of heads
+	; (16/32/64/128/255) has been verified to return with DH cleared.
 ReturnLCHSinAXBLBH:
 	ret
Index: /trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/CreateDPT.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/CreateDPT.asm	(revision 605)
+++ /trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/CreateDPT.asm	(revision 606)
@@ -108,5 +108,5 @@
 	; Store P-CHS and flags
 	call	AtaGeometry_GetPCHStoAXBLBHfromAtaInfoInESSI
-	dec		dl						; Set ZF if TRANSLATEMODE_LARGE, SF if TRANSLATEMODE_NORMAL
+	dec		dx						; Set ZF if TRANSLATEMODE_LARGE, SF if TRANSLATEMODE_NORMAL
 	jle		SHORT .JumpOverSetBitForAssistedLBA
 
Index: /trunk/XTIDE_Universal_BIOS/makefile
===================================================================
--- /trunk/XTIDE_Universal_BIOS/makefile	(revision 605)
+++ /trunk/XTIDE_Universal_BIOS/makefile	(revision 606)
@@ -36,5 +36,4 @@
 # ELIMINATE_CGA_SNOW          Prevents CGA snowing at the cost of a few bytes                      #
 # RELOCATE_INT13H_STACK **    Relocates INT 13h stack to beginning of stolen conventional memory   #
-# RESERVE_DIAGNOSTIC_CYLINDER Reserve one L-CHS cylinder for compatibility with old BIOSes         #
 # NO_ATAID_VALIDATION ***     Excludes code that tries to ensure proper communication with drives  #
 # USE_186                     Use instructions supported by 80188/80186 and V20/V30 and later      #
@@ -107,5 +106,5 @@
 # Assembler preprocessor defines.                               #
 #################################################################
-DEFINES_COMMON = MODULE_STRINGS_COMPRESSED MODULE_HOTKEYS MODULE_8BIT_IDE MODULE_EBIOS MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_POWER_MANAGEMENT RESERVE_DIAGNOSTIC_CYLINDER NO_ATAID_VALIDATION CLD_NEEDED
+DEFINES_COMMON = MODULE_STRINGS_COMPRESSED MODULE_HOTKEYS MODULE_8BIT_IDE MODULE_EBIOS MODULE_SERIAL MODULE_SERIAL_FLOPPY MODULE_POWER_MANAGEMENT NO_ATAID_VALIDATION CLD_NEEDED
 DEFINES_COMMON_LARGE = MODULE_BOOT_MENU MODULE_8BIT_IDE_ADVANCED MODULE_COMPATIBLE_TABLES
 
