Index: trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm	(revision 258)
+++ trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm	(revision 259)
@@ -23,8 +23,7 @@
 	mov		bp, sp
 
-	call	RamVars_IsDriveHandledByThisBIOS				
+	call	RamVars_IsDriveHandledByThisBIOS_And_FindDPT_ForDriveNumber
 	jc		.notOurs
 
-	call	FindDPT_ForDriveNumber					; if it is one of ours, print the string in bootnfo
 	call	BootMenuInfo_ConvertDPTtoBX
 	mov		si, g_szDriveNumBOOTNFO					; special g_szDriveNum that prints from BDA
@@ -112,15 +111,12 @@
 	mov		si, g_szCapacity							; Setup print string now, carries through to print call
 
-	xor		di, di
-	call	RamVars_IsDriveHandledByThisBIOS
-	jc		SHORT .notours
-	call	FindDPT_ForDriveNumber						; DS:DI to point DPT
-.notours:		
-		
+	xor		di, di										; Zero DI for checks for our drive later on
+	call	RamVars_IsDriveHandledByThisBIOS_And_FindDPT_ForDriveNumber
+
 	test	dl, dl										; are we a hard disk?
-	js		BootMenuPrint_HardDiskRefreshInformation		
-
-	test	di,di
-	jnz		.ours
+	js		BootMenuPrint_HardDiskRefreshInformation	
+
+	test	di, di
+	jnz		.ours										; Based on CF from RamVars_IsDriveHandledByThisBIOS above
 	call	FloppyDrive_GetType							; Get Floppy Drive type to BX
 	jmp		.around
@@ -187,5 +183,4 @@
 ; BootMenuPrint_HardDiskMenuitemInformation
 ;	Parameters:
-;		DL:		Untranslated Hard Disk number
 ;		DS:		RAMVARS segment
 ;	Returns:
@@ -196,12 +191,10 @@
 ALIGN JUMP_ALIGN
 BootMenuPrint_HardDiskRefreshInformation:		
-	test	di,di
+	test	di, di
 	jz		.HardDiskMenuitemInfoForForeignDrive		
 
 .HardDiskMenuitemInfoForOurDrive:
-	ePUSH_T	ax, g_szInformation
-
-	; Get and push total LBA size
-	call	BootMenuInfo_GetTotalSectorCount
+	ePUSH_T ax, g_szInformation						; Add substring for our hard disk information
+	call	BootMenuInfo_GetTotalSectorCount		; Get Total LBA Size
 	jmp		.ConvertSectorCountInBXDXAXtoSizeAndPushForFormat
 		
Index: trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm	(revision 258)
+++ trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AH0h_HReset.asm	(revision 259)
@@ -22,4 +22,28 @@
 	eMOVZX	bx, dl						; Copy requested drive to BL, zero BH to assume no errors
 	call	ResetFloppyDrivesWithInt40h
+
+%ifdef MODULE_SERIAL_FLOPPY
+;
+; "Reset" emulatd serial floppy drives, if any.  There is nothing to actually do for this reset,
+; but record the proper error return code if one of these floppy drives is the drive requested.
+;
+	call	RamVars_UnpackFlopCntAndFirstToAL
+	cbw													; Clears AH (there are flop drives) or ffh (there are not)
+														; Either AH has success code (flop drives are present)
+														; or it doesn't matter because we won't match drive ffh
+
+	cwd													; clears DX (there are flop drives) or ffffh (there are not)
+
+	adc		dl, al										; second drive (CF set) if present
+														; If no drive is present, this will result in ffh which 
+														; won't match a drive
+	call	BackupErrorCodeFromTheRequestedDriveToBH
+	mov		dl, al										; We may end up doing the first drive twice (if there is
+	call	BackupErrorCodeFromTheRequestedDriveToBH	; only one drive), but doing it again is not harmful.
+%endif
+
+	test	bl, bl										; If we were called with a floppy disk, then we are done,
+	jns		SHORT .SkipHardDiskReset					; don't do hard disks.
+		
 	call	ResetForeignHardDisks
 	call	AH0h_ResetHardDisksHandledByOurBIOS
@@ -129,27 +153,7 @@
 	jb		SHORT .DriveResetLoop		;  If not, reset next drive
 .AllDrivesReset:
-%ifdef MODULE_SERIAL_FLOPPY
-;
-; "Reset" emulatd serial floppy drives, if any.  There is nothing to actually do for this reset,
-; but record the proper error return code if one of these floppy drives is the drive requested.
-;
-	call	RamVars_UnpackFlopCntAndFirstToAL
-
-	cbw													; Clears AH (there are flop drives) or ffh (there are not)
-														; Either AH has success code (flop drives are present)
-														; or it doesn't matter because we won't match drive ffh
-
-	cwd													; clears DX (there are flop drives) or ffffh (there are not)
-
-	adc		dl, al										; second drive (CF set) if present
-														; If no drive is present, this will result in ffh which 
-														; won't match a drive
-	call	BackupErrorCodeFromTheRequestedDriveToBH
-	mov		dl, al										; We may end up doing the first drive twice (if there is
-	jmp		BackupErrorCodeFromTheRequestedDriveToBH	; only one drive), but doing it again is not harmful.
-%else
-	ret
-%endif
-		
+	ret
+
+				
 ;--------------------------------------------------------------------
 ; .BackupErrorCodeFromMasterOrSlaveToBH
Index: trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm	(revision 258)
+++ trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm	(revision 259)
@@ -72,14 +72,12 @@
 .StoreDptPointersToIntVectors:
 	mov		dl, 80h
-	call	RamVars_IsDriveHandledByThisBIOS
+	call	RamVars_IsDriveHandledByThisBIOS_And_FindDPT_ForDriveNumber   ; DPT to DS:DI
 	jc		SHORT .FindForDrive81h	; Store nothing if not our drive
-	call	FindDPT_ForDriveNumber	; DPT to DS:DI
 	mov		[es:HD0_DPT_POINTER_41h*4], di
 	mov		[es:HD0_DPT_POINTER_41h*4+2], ds
 .FindForDrive81h:
 	inc		dx
-	call	RamVars_IsDriveHandledByThisBIOS
+	call	RamVars_IsDriveHandledByThisBIOS_And_FindDPT_ForDriveNumber
 	jc		SHORT .ResetDetectedDrives
-	call	FindDPT_ForDriveNumber
 	mov		[es:HD1_DPT_POINTER_46h*4], di
 	mov		[es:HD1_DPT_POINTER_46h*4+2], ds
Index: trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/FindDPT.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/FindDPT.asm	(revision 258)
+++ trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/FindDPT.asm	(revision 259)
@@ -23,7 +23,6 @@
 	add		al, [RAMVARS.xlateVars+XLATEVARS.bFlopCreateCnt]
 %endif
-	xchg	ax, dx		
-	; Fall to FindDPT_ForDriveNumber
-
+	xchg	ax, dx
+	; fall-through to FindDPT_ForDriveNumber
 
 ;--------------------------------------------------------------------
@@ -66,5 +65,27 @@
 	xchg	di, ax						; Restore AX and put result in DI
 	pop		dx
-	ret
+		
+	ret
+
+;--------------------------------------------------------------------
+; Consolidator for checking the result from RamVars_IsDriveHandledByThisBIOS
+; and then if it is our drive, getting the DPT with FindDPT_ForDriveNumber
+;
+; RamVars_IsDriveHandledByThisBIOS_And_FindDPT_ForDriveNumber
+;	Parameters:
+;		DL:		Drive number
+;		DS:		RAMVARS segment
+;	Returns:
+;		DS:DI:	Ptr to DPT, if it is our drive
+;       CF:     Set if not our drive, clear if it is our drive
+;	Corrupts registers:
+;		Nothing
+;--------------------------------------------------------------------
+ALIGN JUMP_ALIGN
+RamVars_IsDriveHandledByThisBIOS_And_FindDPT_ForDriveNumber:
+	call	RamVars_IsDriveHandledByThisBIOS
+	jnc		FindDPT_ForDriveNumber
+	ret
+
 
 ;--------------------------------------------------------------------
@@ -212,10 +233,10 @@
 	push	cx
 
-	mov		cl, [RAMVARS.bDrvCnt]		
-	mov		ch, 0
-		
 	mov		di, RAMVARS_size			; Point DS:DI to first DPT
 		
-	jcxz	.NotFound					; Return if no drives
+	mov		cl, [RAMVARS.bDrvCnt]
+	xor		ch, ch						; Clears CF  
+		
+	jcxz	.AllDptsIterated			; Return if no drives, CF will be clear from xor above
 		
 ALIGN JUMP_ALIGN
@@ -223,9 +244,8 @@
 	call	si							; Is wanted DPT?
 	jc		SHORT .AllDptsIterated		;  If so, return
-	add		di, BYTE LARGEST_DPT_SIZE	; Point to next DPT
+	add		di, BYTE LARGEST_DPT_SIZE	; Point to next DPT, clears CF
 	loop	.LoopWhileDPTsLeft
-		
-.NotFound:		
-	clc									; Clear CF since DPT not found
+	
+	; fall-through: DPT was not found, CF is already clear from ADD di inside the loop
 		
 ALIGN JUMP_ALIGN
@@ -233,2 +253,3 @@
 	pop		cx
 	ret
+
