Index: trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenu.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenu.asm	(revision 93)
+++ trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenu.asm	(revision 95)
@@ -12,8 +12,5 @@
 ;		DS:		RAMVARS segment
 ;	Returns:
-;		DX:		Untranslated drive number to be used for booting (if CF cleared)
-;				Function number (if CF set)
-;		CF:		Cleared if drive selected
-;				Set if function selected
+;		DX:		Untranslated drive number to be used for booting
 ;	Corrupts registers:
 ;		All General Purpose Registers
@@ -26,5 +23,5 @@
 	call	BootMenuPrint_ClearScreen
 	cmp		cx, BYTE NO_ITEM_SELECTED
-	je		SHORT BootMenu_DisplayAndReturnSelection
+	je		SHORT BootMenu_DisplayAndReturnSelection	; Clear screen and display menu
 	jmp		SHORT BootMenu_ConvertMenuitemFromCXtoDriveInDX
 
Index: trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuEvent.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuEvent.asm	(revision 93)
+++ trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuEvent.asm	(revision 95)
@@ -108,5 +108,5 @@
 	cmp		ah, ROM_BOOT_HOTKEY_SCANCODE
 	jne		SHORT .CheckDriveHotkeys
-	int		INTV_BOOT_FAILURE		; ROM Boot, never returns
+	jmp		Int19hMenu_RomBoot
 ALIGN JUMP_ALIGN
 .CheckDriveHotkeys:
Index: trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm	(revision 93)
+++ trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm	(revision 95)
@@ -20,8 +20,8 @@
 	mov		bp, sp
 
-	mov		ax, g_szHardDrv
+	mov		ax, g_szHDD
 	test	dl, 80h
-	eCMOVZ	ax, g_szFloppyDrv
-	push	ax					; "Hard Drive" or "Floppy Drive"
+	eCMOVZ	ax, g_szFDD
+	push	ax
 
 	call	DriveXlate_ToOrBack
@@ -35,7 +35,7 @@
 
 ;--------------------------------------------------------------------
-; BootPrint_BootSectorLoaded
+; BootPrint_BootSectorResultStringFromBX
 ;	Parameters:
-;		Nothing
+;		CS:BX:	Ptr to "found" or "not found"
 ;	Returns:
 ;		Nothing
@@ -44,27 +44,9 @@
 ;--------------------------------------------------------------------
 ALIGN JUMP_ALIGN
-BootPrint_BootSectorLoaded:
+BootPrint_BootSectorResultStringFromBX:
 	push	bp
 	mov		bp, sp
 	ePUSH_T	ax, g_szBootSector
-	ePUSH_T	ax, g_szFound
-	jmp		SHORT PrintBootSectorResult
-
-;--------------------------------------------------------------------
-; BootPrint_FirstSectorNotBootable
-;	Parameters:
-;		Nothing
-;	Returns:
-;		Nothing
-;	Corrupts registers:
-;		AX, SI
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-BootPrint_FirstSectorNotBootable:
-	push	bp
-	mov		bp, sp
-	ePUSH_T	ax, g_szBootSector
-	ePUSH_T	ax, g_szNotFound
-PrintBootSectorResult:
+	push	bx			; "found" or "not found"
 	mov		si, g_szSectRead
 	jmp		BootMenuPrint_FormatCSSIfromParamsInSSBP
@@ -78,5 +60,5 @@
 ;		Nothing
 ;	Corrupts registers:
-;		AX, CX, SI
+;		AX, BX, SI
 ;--------------------------------------------------------------------
 ALIGN JUMP_ALIGN
@@ -84,6 +66,6 @@
 	push	bp
 	mov		bp, sp
-	eMOVZX	cx, ah				; Error code to CX
-	push	cx					; Push INT 13h error code
+	eMOVZX	bx, ah
+	push	bx					; Push INT 13h error code
 	mov		si, g_szReadError
 	jmp		BootMenuPrint_FormatCSSIfromParamsInSSBP
Index: trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm	(revision 93)
+++ trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm	(revision 95)
@@ -25,5 +25,5 @@
 Int19h_TryToLoadBootSectorFromDL:
 	call	BootPrint_TryToBootFromDL
-	call	Int19h_LoadFirstSectorFromDL
+	call	LoadFirstSectorFromDriveDL
 	jc		SHORT .FailedToLoadFirstSector
 
@@ -33,5 +33,6 @@
 	jne		SHORT .FirstHardDiskSectorNotBootable
 .AlwaysBootFromFloppyDriveForBooterGames:
-	call	BootPrint_BootSectorLoaded
+	mov		bx, g_szFound
+	call	BootPrint_BootSectorResultStringFromBX
 	stc
 	ret
@@ -41,12 +42,11 @@
 	ret
 .FirstHardDiskSectorNotBootable:
-	call	BootPrint_FirstSectorNotBootable
+	mov		bx, g_szNotFound
+	call	BootPrint_BootSectorResultStringFromBX
 	clc
 	ret
 
 ;--------------------------------------------------------------------
-; Reads first sector (boot sector) from drive DL.
-;
-; Int19h_LoadFirstSectorFromDL
+; LoadFirstSectorFromDriveDL
 ;	Parameters:
 ;		DL:		Drive to boot from (translated, 00h or 80h)
@@ -60,8 +60,8 @@
 ;--------------------------------------------------------------------
 ALIGN JUMP_ALIGN
-Int19h_LoadFirstSectorFromDL:
+LoadFirstSectorFromDriveDL:
 	LOAD_BDA_SEGMENT_TO	es, bx				; ES:BX now points to...
 	mov		bx, BOOTVARS.rgbBootSect		; ...boot sector location
-	mov		di, B_READ_RETRY_TIMES			; Retry counter
+	mov		di, B_READ_RETRY_TIMES			; Initialize retry counter
 ALIGN JUMP_ALIGN
 .ReadRetryLoop:
@@ -90,7 +90,5 @@
 	xor		ax, ax							; AH=0h, Disk Controller Reset
 	test	dl, 80h							; Floppy drive?
-	jz		SHORT .ResetDriveFromDL			;  If so, jump to reset
-	mov		ah, 0Dh							; AH=Dh, Reset Hard Disk (Alternate reset)
-.ResetDriveFromDL:
+	eCMOVNZ	ah, 0Dh							; AH=Dh, Reset Hard Disk (Alternate reset)
 	int		INTV_DISK_FUNC
 	ret
@@ -155,19 +153,2 @@
 	mov		es, ax
 	ret
-
-
-;--------------------------------------------------------------------
-; Calls INT 18h (ROM Basic or Boot Failure). Called after booting from
-; floppy drive or hard disk fails.
-;
-; Int19h_BootFailure
-;	Parameters:
-;		Nothing
-;	Returns:
-;		Should never return (but might)
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-Int19h_BootFailure:
-	call	Int19h_ClearSegmentsForBoot
-	int		INTV_BOOT_FAILURE
-	ret
Index: trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19hMenu.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19hMenu.asm	(revision 93)
+++ trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19hMenu.asm	(revision 95)
@@ -53,57 +53,22 @@
 ALIGN JUMP_ALIGN
 Int19hMenu_ProcessMenuSelectionsUntilBootable:
-	call	Int19hMenu_GetDriveOrFunctionFromBootMenu
-	jc		SHORT Int19hMenu_ExecuteSelectedFunction
+	call	BootMenu_DisplayAndReturnSelection
+	call	DriveXlate_ToOrBack			; Translate drive number
 	call	Int19h_TryToLoadBootSectorFromDL
-	jnc		SHORT Int19hMenu_ProcessMenuSelectionsUntilBootable	; Boot failure
+	jnc		SHORT Int19hMenu_ProcessMenuSelectionsUntilBootable	; Boot failure, show menu again
 	call	BootVars_SwitchBackToPostStack
-	jmp		SHORT Int19h_JumpToBootSector
+	jmp		Int19h_JumpToBootSector
 
 
 ;--------------------------------------------------------------------
-; Selects Floppy or Hard Disk Drive to boot from or some function.
-;
-; Int19hMenu_GetDriveOrFunctionFromBootMenu
+; Int19hMenu_RomBoot
 ;	Parameters:
 ;		DS:		RAMVARS segment
 ;	Returns:
-;		DX:		Drive number (translated, 00h or 80h) or
-;				Function ID
-;		CF:		Cleared if drive selected
-;				Set if function selected
-;	Corrupts registers:
-;		All non segment regs
+;		Never returns
 ;--------------------------------------------------------------------
 ALIGN JUMP_ALIGN
-Int19hMenu_GetDriveOrFunctionFromBootMenu:
-	call	BootMenu_DisplayAndReturnSelection
-	jc		SHORT .ReturnFunction
-	call	DriveXlate_ToOrBack			; Translate drive number
-	clc
-ALIGN JUMP_ALIGN
-.ReturnFunction:
-	ret
-
-
-;--------------------------------------------------------------------
-; Executes any function (non-drive) selected from Boot Menu.
-;
-; Int19hMenu_ExecuteSelectedFunction
-;	Parameters:
-;		DX:		Function ID (selected from Boot Menu)
-;		DS:		RAMVARS segment
-;	Returns:
-;		Nothing
-;	Corrupts registers:
-;		All non segment regs
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-Int19hMenu_ExecuteSelectedFunction:
-	ePUSH_T	ax, Int19hMenu_ProcessMenuSelectionsUntilBootable
-	test	dx, dx						; 0, IDF_BOOTMNU_ROM
-	jz		SHORT .Int18hRomBoot
-	ret
-ALIGN JUMP_ALIGN
-.Int18hRomBoot:
+Int19hMenu_RomBoot:
 	call	BootVars_SwitchBackToPostStack
-	jmp		Int19h_BootFailure			; Never returns
+	call	Int19h_ClearSegmentsForBoot
+	int		INTV_BOOT_FAILURE		; Never returns
Index: trunk/XTIDE_Universal_BIOS/Src/Strings.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Strings.asm	(revision 93)
+++ trunk/XTIDE_Universal_BIOS/Src/Strings.asm	(revision 95)
@@ -13,8 +13,6 @@
 
 ; Boot loader strings
-g_szFloppyDrv:	db	"Floppy Drive",NULL
-g_szHardDrv:	db	" Hard Drive ",NULL
-g_szTryToBoot:	db	"Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x ... ",NULL
-g_szBootSector:	db	"Boot Sector",NULL
+g_szTryToBoot:	db	"Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",CR,LF,NULL
+g_szBootSector:	db	"Boot sector",NULL
 g_szFound:		db	"found",NULL
 g_szSectRead:	db	"%s %s!",CR,LF,NULL
@@ -30,4 +28,5 @@
 ; Boot Menu menuitem strings
 g_szFDLetter:	db	"%s %c",NULL
+g_szFloppyDrv:	db	"Floppy Drive",NULL
 g_szforeignHD:	db	"Foreign Hard Disk",NULL
 
