Index: trunk/XTIDE_Universal_BIOS/Inc/RomVars.inc
===================================================================
--- trunk/XTIDE_Universal_BIOS/Inc/RomVars.inc	(revision 140)
+++ trunk/XTIDE_Universal_BIOS/Inc/RomVars.inc	(revision 143)
@@ -16,4 +16,5 @@
 
 	.wFlags			resb	2	; Word for ROM flags
+	.wDisplayMode	resb	2	; Display mode for boot menu
 	.wBootTimeout	resb	2	; Boot Menu selection timeout in system timer ticks
 	.bIdeCnt		resb	1	; Number of available IDE controllers
@@ -31,4 +32,7 @@
 FLG_ROMVARS_FULLMODE	EQU	(1<<0)	; Full operating mode (steals base RAM, supports EBIOS etc.)
 FLG_ROMVARS_DRVXLAT		EQU	(1<<2)	; Enable drive number translation
+
+; Boot Menu Display Modes (see Assembly Library Display.inc for standard modes)
+DEFAULT_TEXT_MODE		EQU	4
 
 
Index: trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm	(revision 140)
+++ trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm	(revision 143)
@@ -37,23 +37,4 @@
 
 ;--------------------------------------------------------------------
-; BootPrint_BootSectorResultStringFromAX
-;	Parameters:
-;		CS:AX:	Ptr to "found" or "not found"
-;	Returns:
-;		Nothing
-;	Corrupts registers:
-;		AX, CX, SI, DI
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-BootPrint_BootSectorResultStringFromAX:
-	push	bp
-	mov		bp, sp
-	ePUSH_T	cx, g_szBootSector
-	push	ax			; "found" or "not found"
-	mov		si, g_szSectRead
-	jmp		BootMenuPrint_FormatCSSIfromParamsInSSBP
-
-
-;--------------------------------------------------------------------
 ; BootPrint_FailedToLoadFirstSector
 ;	Parameters:
Index: trunk/XTIDE_Universal_BIOS/Src/Boot/BootSector.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Boot/BootSector.asm	(revision 140)
+++ trunk/XTIDE_Universal_BIOS/Src/Boot/BootSector.asm	(revision 143)
@@ -15,5 +15,5 @@
 ;				Cleared if failed to load boot sector
 ;	Corrupts registers:
-;		AX, CX, DH, DI, (DL if failed to read boot sector)
+;		AX, CX, DH, SI, DI, (DL if failed to read boot sector)
 ;--------------------------------------------------------------------
 ALIGN JUMP_ALIGN
@@ -28,6 +28,4 @@
 	jne		SHORT .FirstHardDiskSectorNotBootable
 .AlwaysBootFromFloppyDriveForBooterGames:
-	mov		ax, g_szFound
-	call	BootPrint_BootSectorResultStringFromAX
 	stc
 	ret
@@ -37,6 +35,6 @@
 	ret
 .FirstHardDiskSectorNotBootable:
-	mov		ax, g_szNotFound
-	call	BootPrint_BootSectorResultStringFromAX
+	mov		si, g_szBootSectorNotFound
+	call	BootMenuPrint_NullTerminatedStringFromCSSIandSetCF
 	clc
 	ret
Index: trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AHDh_HReset.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AHDh_HReset.asm	(revision 140)
+++ trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/AHDh_HReset.asm	(revision 143)
@@ -90,5 +90,5 @@
 	call	HDrvSel_OutputDeviceControlByte
 	mov		ax, 5						; Delay at least 5us
-	call	Delay_MicrosecondsFromAX
+	call	HTimer_MicrosecondsFromAX
 
 	; HSR1: Clear_wait
@@ -96,5 +96,5 @@
 	out		dx, al						; End Reset
 	mov		ax, 2000					; Delay at least 2ms
-	call	Delay_MicrosecondsFromAX
+	call	HTimer_MicrosecondsFromAX
 
 	; HSR2: Check_status
Index: trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Common/HTimer.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Common/HTimer.asm	(revision 140)
+++ trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Common/HTimer.asm	(revision 143)
@@ -45,5 +45,5 @@
 ; RTC resolution is 977 microsecs.
 ;
-; Delay_MicrosecondsFromAX
+; HTimer_MicrosecondsFromAX
 ;	Parameters:
 ;		AX:		Number of microsecs to wait
@@ -53,5 +53,5 @@
 ;		AX
 ;--------------------------------------------------------------------
-Delay_MicrosecondsFromAX:
+HTimer_MicrosecondsFromAX:
 %ifndef USE_AT
 	mov		ax, 1
@@ -70,5 +70,5 @@
 	pop		dx
 	mov		ax, 1							; Prepare to wait 1 timer tick
-	jc		SHORT Delay_TimerTicksFromAX	; Event Wait was unsupported or busy
+	jc		SHORT HTimer_TimerTicksFromAX	; Event Wait was unsupported or busy
 	ret
 %endif
@@ -79,5 +79,5 @@
 ; will occur at 54.9 ms intervals.
 ;
-; Delay_TimerTicksFromAX
+; HTimer_TimerTicksFromAX
 ;	Parameters:
 ;		AX:		Number of timer ticks to wait
@@ -87,5 +87,5 @@
 ;		AX
 ;--------------------------------------------------------------------
-Delay_TimerTicksFromAX:
+HTimer_TimerTicksFromAX:
 	sti								; Make sure that interrupts are enabled
 	call	ReadTimeFromBdaToCX
Index: trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19hMenu.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19hMenu.asm	(revision 140)
+++ trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19hMenu.asm	(revision 143)
@@ -20,6 +20,24 @@
 	STORE_POST_STACK_POINTER
 	SWITCH_TO_BOOT_MENU_STACK
+	call	RamVars_GetSegmentToDS
+	; Fall to .InitializeDisplayForBootMenu
+
+;--------------------------------------------------------------------
+; .InitializeDisplayForBootMenu
+;	Parameters:
+;		Nothing
+;	Returns:
+;		Nothing
+;	Corrupts registers:
+;		AX, DI
+;--------------------------------------------------------------------
+.InitializeDisplayForBootMenu:
+	; Change display mode if necessary
+	mov		ax, [cs:ROMVARS.wDisplayMode]	; AH 00h = Set Video Mode
+	cmp		al, DEFAULT_TEXT_MODE
+	je		SHORT .InitializeDisplayLibrary
+	int		BIOS_VIDEO_INTERRUPT_10h
+.InitializeDisplayLibrary:	
 	call	BootMenuPrint_InitializeDisplayContext
-	call	RamVars_GetSegmentToDS
 	; Fall to .ProcessMenuSelectionsUntilBootable
 
Index: trunk/XTIDE_Universal_BIOS/Src/Main.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Main.asm	(revision 140)
+++ trunk/XTIDE_Universal_BIOS/Src/Main.asm	(revision 143)
@@ -53,4 +53,5 @@
 %ifdef USE_AT
 	at	ROMVARS.wFlags,			dw	FLG_ROMVARS_FULLMODE | FLG_ROMVARS_DRVXLAT
+	at	ROMVARS.wDisplayMode,	dw	DEFAULT_TEXT_MODE
 	at	ROMVARS.wBootTimeout,	dw	30 * TICKS_PER_SECOND	; Boot Menu selection timeout
 	at	ROMVARS.bIdeCnt,		db	3						; Number of supported controllers
@@ -79,4 +80,11 @@
 	at	ROMVARS.ideVars2+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags,	db	FLG_DRVPARAMS_BLOCKMODE
 	at	ROMVARS.ideVars2+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags,	db	FLG_DRVPARAMS_BLOCKMODE
+
+	at	ROMVARS.ideVars3+IDEVARS.wPort,			dw	168h			; Controller Command Block base port
+	at	ROMVARS.ideVars3+IDEVARS.wPortCtrl,		dw	368h			; Controller Control Block base port
+	at	ROMVARS.ideVars3+IDEVARS.bBusType,		db	BUS_TYPE_16		; Bus type
+	at	ROMVARS.ideVars3+IDEVARS.bIRQ,			db	0				; IRQ
+	at	ROMVARS.ideVars3+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags,	db	FLG_DRVPARAMS_BLOCKMODE
+	at	ROMVARS.ideVars3+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags,	db	FLG_DRVPARAMS_BLOCKMODE
 %else
 ;-----------------------------------;
@@ -84,4 +92,5 @@
 ;-----------------------------------;
 	at	ROMVARS.wFlags,			dw	FLG_ROMVARS_DRVXLAT
+	at	ROMVARS.wDisplayMode,	dw	DEFAULT_TEXT_MODE
 	at	ROMVARS.wBootTimeout,	dw	30 * TICKS_PER_SECOND	; Boot Menu selection timeout
 	at	ROMVARS.bIdeCnt,		db	1						; Number of supported controllers
@@ -96,4 +105,13 @@
 	at	ROMVARS.ideVars0+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags,	db	FLG_DRVPARAMS_BLOCKMODE
 	at	ROMVARS.ideVars0+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags,	db	FLG_DRVPARAMS_BLOCKMODE
+
+	at	ROMVARS.ideVars1+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags,	db	FLG_DRVPARAMS_BLOCKMODE
+	at	ROMVARS.ideVars1+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags,	db	FLG_DRVPARAMS_BLOCKMODE
+
+	at	ROMVARS.ideVars2+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags,	db	FLG_DRVPARAMS_BLOCKMODE
+	at	ROMVARS.ideVars2+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags,	db	FLG_DRVPARAMS_BLOCKMODE
+
+	at	ROMVARS.ideVars3+IDEVARS.drvParamsMaster+DRVPARAMS.wFlags,	db	FLG_DRVPARAMS_BLOCKMODE
+	at	ROMVARS.ideVars3+IDEVARS.drvParamsSlave+DRVPARAMS.wFlags,	db	FLG_DRVPARAMS_BLOCKMODE
 %endif
 iend
Index: trunk/XTIDE_Universal_BIOS/Src/Strings.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Strings.asm	(revision 140)
+++ trunk/XTIDE_Universal_BIOS/Src/Strings.asm	(revision 143)
@@ -10,12 +10,11 @@
 g_szSlave:		db	"Slave ",NULL
 g_szDetect:		db	"IDE %s at %x: ",NULL			; IDE Master at 1F0h:
-g_szNotFound:	db	"not found",LF,CR,NULL
+
 
 ; Boot loader strings
-g_szTryToBoot:	db	"Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
-g_szBootSector:	db	"Boot sector",NULL
-g_szFound:		db	"found",NULL
-g_szSectRead:	db	"%s %s!",LF,CR,NULL
-g_szReadError:	db	"Error %x!",LF,CR,NULL
+g_szTryToBoot:			db	"Booting from %s %x",ANGLE_QUOTE_RIGHT,"%x",LF,CR,NULL
+g_szBootSectorNotFound:	db	"Boot sector "
+g_szNotFound:			db	"not found",LF,CR,NULL
+g_szReadError:			db	"Error %x!",LF,CR,NULL
 
 ; Boot menu bottom of screen strings
