Index: /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm	(revision 191)
+++ /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm	(revision 192)
@@ -22,5 +22,5 @@
 ALIGN JUMP_ALIGN
 BootMenuPrint_FloppyMenuitem:
-	js		BootMenuPrint_FloppyMenuitemInformation
+	js		short BootMenuPrint_FloppyMenuitemInformation
 	call	PrintDriveNumberAfterTranslationFromDL
 	push	bp
@@ -30,42 +30,30 @@
 	add		dl, 'A'
 	push	dx					; Drive letter
-	jmp		BootMenuPrint_FormatCSSIfromParamsInSSBP
+	jmp		short BootMenuPrint_FormatCSSIfromParamsInSSBP
 
 %if BootMenuPrint_FloppyMenuitem <> BootMenuEvent_FallThroughToFloppyMenuitem
 %error "BootMenuPrint.asm must follow BootMenuEvent.asm, and BootMenuPrint_FloppyMenuitem must be the first routine in BootMenuPrint.asm"
 %endif
-		
-;--------------------------------------------------------------------
-; BootMenuPrint_ClearScreen
-;	Parameters:
-;		Nothing
-;	Returns:
-;		Nothing
-;	Corrupts registers:
-;		AX, DI
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-BootMenuPrint_ClearScreen:
-	call	BootMenuPrint_InitializeDisplayContext
-	xor		ax, ax
-	CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
-	mov		ax, ' ' | (MONO_NORMAL<<8)
-	CALL_DISPLAY_LIBRARY ClearScreenWithCharInALandAttrInAH
-	ret
-
-
-;--------------------------------------------------------------------
-; BootMenuPrint_InitializeDisplayContext
-;	Parameters:
-;		Nothing
-;	Returns:
-;		Nothing
-;	Corrupts registers:
-;		AX, DI
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-BootMenuPrint_InitializeDisplayContext:
-	CALL_DISPLAY_LIBRARY InitializeDisplayContext
-	ret
+
+		
+;--------------------------------------------------------------------
+; ConvertSectorCountInBXDXAXtoSizeAndPushForFormat
+;	Parameters:
+;		BX:DX:AX:	Sector count
+;	Returns:
+;		Size in stack
+;	Corrupts registers:
+;		AX, BX, CX, DX, SI
+;--------------------------------------------------------------------
+ALIGN JUMP_ALIGN
+ConvertSectorCountInBXDXAXtoSizeAndPushForFormat:
+	pop		si		; Pop return address
+	call	Size_ConvertSectorCountInBXDXAXtoKiB
+	mov		cx, BYTE_MULTIPLES.kiB
+	call	Size_GetSizeToAXAndCharToDLfromBXDXAXwithMagnitudeInCX
+	push	ax		; Size in magnitude
+	push	cx		; Tenths
+	push	dx		; Magnitude character
+	jmp		si
 
 
@@ -109,6 +97,7 @@
 	push	bp
 	mov		bp,sp
-	jmp		BootMenuPrint_FormatCSSIfromParamsInSSBP
-
+	jmp		short BootMenuPrint_FormatCSSIfromParamsInSSBP
+
+		
 ;--------------------------------------------------------------------
 ; BootMenuPrint_HardDiskMenuitem
@@ -124,5 +113,5 @@
 ALIGN JUMP_ALIGN
 BootMenuPrint_HardDiskMenuitem:
-	js		BootMenuPrint_HardDiskMenuitemInformation
+	js		short BootMenuPrint_HardDiskMenuitemInformation
 	call	PrintDriveNumberAfterTranslationFromDL
 	call	RamVars_IsDriveHandledByThisBIOS
@@ -165,36 +154,28 @@
 
 ;--------------------------------------------------------------------
-; PrintDriveNumberAfterTranslationFromDL
+; BootMenuPrint_FloppyMenuitemInformation
 ;	Parameters:
 ;		DL:		Untranslated Floppy Drive number
 ;		DS:		RAMVARS segment
 ;	Returns:
-;		Nothing
-;	Corrupts registers:
-;		AX, DI
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-PrintDriveNumberAfterTranslationFromDL:
-	mov		ax, dx
-	call	DriveXlate_ToOrBack
-	xchg	dx, ax				; Restore DX, WORD to print in AL
-	xor		ah, ah
-	push	bp
-	mov		bp, sp
-	mov		si, g_szDriveNum
-	push	ax
-	jmp		SHORT BootMenuPrint_FormatCSSIfromParamsInSSBP
-
-
-;--------------------------------------------------------------------
-; BootMenuPrint_FloppyMenuitemInformation
-;	Parameters:
-;		DL:		Untranslated Floppy Drive number
-;		DS:		RAMVARS segment
-;	Returns:
 ;		CF:		Set since menu event was handled successfully
 ;	Corrupts registers:
 ;		AX, BX, CX, DX, SI, DI, ES
 ;--------------------------------------------------------------------
+
+FloppyTypes:
+.rgbCapacityMultiplier equ 20	        ; Multiplier to reduce word sized values to byte size
+.rgbCapacity:
+	db		360   / FloppyTypes.rgbCapacityMultiplier    ;  type 1
+	db		1200  / FloppyTypes.rgbCapacityMultiplier    ;  type 2
+	db		720   / FloppyTypes.rgbCapacityMultiplier    ;  type 3
+	db		1440  / FloppyTypes.rgbCapacityMultiplier    ;  type 4
+	db		2880  / FloppyTypes.rgbCapacityMultiplier    ;  type 5
+	db		2880  / FloppyTypes.rgbCapacityMultiplier    ;  type 6
+
+%if g_szFddFiveQuarter <> g_szFddThreeHalf+g_szFddThreeFive_Displacement
+%error "FddThreeFive_Displacement incorrect"
+%endif
+		
 ALIGN JUMP_ALIGN
 BootMenuPrint_FloppyMenuitemInformation:
@@ -258,21 +239,25 @@
 
 ALIGN JUMP_ALIGN		
-.output:		
-	jmp		SHORT BootMenuPrint_FormatCSSIfromParamsInSSBP
-		
-FloppyTypes:
-.rgbCapacityMultiplier equ 20	        ; Multiplier to reduce word sized values to byte size
-.rgbCapacity:
-	db		360   / FloppyTypes.rgbCapacityMultiplier    ;  type 1
-	db		1200  / FloppyTypes.rgbCapacityMultiplier    ;  type 2
-	db		720   / FloppyTypes.rgbCapacityMultiplier    ;  type 3
-	db		1440  / FloppyTypes.rgbCapacityMultiplier    ;  type 4
-	db		2880  / FloppyTypes.rgbCapacityMultiplier    ;  type 5
-	db		2880  / FloppyTypes.rgbCapacityMultiplier    ;  type 6
-
-%if g_szFddFiveQuarter <> g_szFddThreeHalf+g_szFddThreeFive_Displacement
-%error "FddThreeFive_Displacement incorrect"
-%endif
-				
+.output:
+;;; fall-through
+
+;--------------------------------------------------------------------
+; BootMenuPrint_FormatCSSIfromParamsInSSBP
+;	Parameters:
+;		CS:SI:	Ptr to string to format
+;		BP:		SP before pushing parameters
+;	Returns:
+;		BP:		Popped from stack
+;	Corrupts registers:
+;		AX, DI
+;--------------------------------------------------------------------
+ALIGN JUMP_ALIGN
+BootMenuPrint_FormatCSSIfromParamsInSSBP:
+	CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
+	stc				; Successfull return from menu event
+	pop		bp
+	ret		
+
+		
 ;--------------------------------------------------------------------
 ; Prints Hard Disk Menuitem information strings.
@@ -346,46 +331,7 @@
 
 	mov		si, g_szSizeSingle
-	; Fall to BootMenuPrint_FormatCSSIfromParamsInSSBP
-
-
-;--------------------------------------------------------------------
-; BootMenuPrint_FormatCSSIfromParamsInSSBP
-;	Parameters:
-;		CS:SI:	Ptr to string to format
-;		BP:		SP before pushing parameters
-;	Returns:
-;		BP:		Popped from stack
-;	Corrupts registers:
-;		AX, DI
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-BootMenuPrint_FormatCSSIfromParamsInSSBP:
-	CALL_DISPLAY_LIBRARY FormatNullTerminatedStringFromCSSI
-	stc				; Successfull return from menu event
-	pop		bp
-	ret
-
-
-;--------------------------------------------------------------------
-; ConvertSectorCountInBXDXAXtoSizeAndPushForFormat
-;	Parameters:
-;		BX:DX:AX:	Sector count
-;	Returns:
-;		Size in stack
-;	Corrupts registers:
-;		AX, BX, CX, DX, SI
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-ConvertSectorCountInBXDXAXtoSizeAndPushForFormat:
-	pop		si		; Pop return address
-	call	Size_ConvertSectorCountInBXDXAXtoKiB
-	mov		cx, BYTE_MULTIPLES.kiB
-	call	Size_GetSizeToAXAndCharToDLfromBXDXAXwithMagnitudeInCX
-	push	ax		; Size in magnitude
-	push	cx		; Tenths
-	push	dx		; Magnitude character
-	jmp		si
-
-
+ 	jmp		SHORT BootMenuPrint_FormatCSSIfromParamsInSSBP
+
+		
 ;--------------------------------------------------------------------
 ; BootMenuPrint_ClearInformationArea
@@ -402,4 +348,48 @@
 	stc
 	ret
+
+		
+;--------------------------------------------------------------------
+; BootMenuPrint_ClearScreen
+;	Parameters:
+;		Nothing
+;	Returns:
+;		Nothing
+;	Corrupts registers:
+;		AX, DI
+;--------------------------------------------------------------------
+ALIGN JUMP_ALIGN
+BootMenuPrint_ClearScreen:
+	call	BootMenuPrint_InitializeDisplayContext
+	xor		ax, ax
+	CALL_DISPLAY_LIBRARY SetCursorCoordinatesFromAX
+	mov		ax, ' ' | (MONO_NORMAL<<8)
+	CALL_DISPLAY_LIBRARY ClearScreenWithCharInALandAttrInAH
+	ret
+
+		
+;--------------------------------------------------------------------
+; PrintDriveNumberAfterTranslationFromDL
+;	Parameters:
+;		DL:		Untranslated Floppy Drive number
+;		DS:		RAMVARS segment
+;	Returns:
+;		Nothing
+;	Corrupts registers:
+;		AX, DI
+;--------------------------------------------------------------------
+ALIGN JUMP_ALIGN
+PrintDriveNumberAfterTranslationFromDL:
+	mov		ax, dx
+	call	DriveXlate_ToOrBack
+	xchg	dx, ax				; Restore DX, WORD to print in AL
+	xor		ah, ah
+	push	bp
+	mov		bp, sp
+	mov		si, g_szDriveNum
+	push	ax
+		
+BootMenuPrint_FormatCSSIfromParamsInSSBP_Relay:	
+	jmp		SHORT BootMenuPrint_FormatCSSIfromParamsInSSBP
 
 
@@ -514,5 +504,24 @@
 	push	cx			; Key attribute for last space
 	mov		si, g_szHotkey
-	jmp		SHORT BootMenuPrint_FormatCSSIfromParamsInSSBP
-
-
+	jmp		SHORT BootMenuPrint_FormatCSSIfromParamsInSSBP_Relay
+
+
+;--------------------------------------------------------------------
+; BootMenuPrint_InitializeDisplayContext
+;	Parameters:
+;		Nothing
+;	Returns:
+;		Nothing
+;	Corrupts registers:
+;		AX, DI
+;--------------------------------------------------------------------
+ALIGN JUMP_ALIGN
+BootMenuPrint_InitializeDisplayContext:
+	CALL_DISPLAY_LIBRARY InitializeDisplayContext
+	ret
+
+
+		
+
+
+		
Index: /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrintCfg.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrintCfg.asm	(revision 191)
+++ /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrintCfg.asm	(revision 192)
@@ -137,4 +137,4 @@
 PrintValuesFromStack:
 	mov		si, g_szCfgFormat
-	jmp		BootMenuPrint_FormatCSSIfromParamsInSSBP
+	jmp		BootPrint_BootMenuPrint_FormatCSSIfromParamsInSSBP_Relay
 
Index: /trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm	(revision 191)
+++ /trunk/XTIDE_Universal_BIOS/Src/Boot/BootPrint.asm	(revision 192)
@@ -4,4 +4,25 @@
 ; Section containing code
 SECTION .text
+
+;--------------------------------------------------------------------
+; BootPrint_FailedToLoadFirstSector
+;	Parameters:
+;		AH:		INT 13h error code
+;	Returns:
+;		Nothing
+;	Corrupts registers:
+;		AX, CX, SI, DI
+;--------------------------------------------------------------------
+ALIGN JUMP_ALIGN
+BootPrint_FailedToLoadFirstSector:
+	push	bp
+	mov		bp, sp
+	eMOVZX	cx, ah
+	push	cx					; Push INT 13h error code
+	mov		si, g_szReadError
+		
+BootPrint_BootMenuPrint_FormatCSSIfromParamsInSSBP_Relay:		
+	jmp		short BootMenuPrint_FormatCSSIfromParamsInSSBP_Relay
+		
 
 ;--------------------------------------------------------------------
@@ -33,22 +54,6 @@
 
 	mov		si, g_szTryToBoot
-	jmp		BootMenuPrint_FormatCSSIfromParamsInSSBP
+	jmp		short BootPrint_BootMenuPrint_FormatCSSIfromParamsInSSBP_Relay		
 
 
-;--------------------------------------------------------------------
-; BootPrint_FailedToLoadFirstSector
-;	Parameters:
-;		AH:		INT 13h error code
-;	Returns:
-;		Nothing
-;	Corrupts registers:
-;		AX, CX, SI, DI
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-BootPrint_FailedToLoadFirstSector:
-	push	bp
-	mov		bp, sp
-	eMOVZX	cx, ah
-	push	cx					; Push INT 13h error code
-	mov		si, g_szReadError
-	jmp		BootMenuPrint_FormatCSSIfromParamsInSSBP
+
Index: /trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm	(revision 191)
+++ /trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm	(revision 192)
@@ -22,4 +22,6 @@
 	ePUSH_T	ax, ROMVARS.szTitle			; Bios title string
 	push	cs							; BIOS segment
+		
+DetectPrint_BootMenuPrint_FormatCSSIfromParamsInSSBP_Relay:		
 	jmp		BootMenuPrint_FormatCSSIfromParamsInSSBP
 
@@ -42,5 +44,5 @@
 	push	ax							; Push "Master" or "Slave"
 	push	di							; Push port number
-	jmp		BootMenuPrint_FormatCSSIfromParamsInSSBP
+	jmp		DetectPrint_BootMenuPrint_FormatCSSIfromParamsInSSBP_Relay
 
 
Index: /trunk/XTIDE_Universal_BIOS/Src/Main.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Main.asm	(revision 191)
+++ /trunk/XTIDE_Universal_BIOS/Src/Main.asm	(revision 192)
@@ -170,13 +170,14 @@
 	%include "DetectDrives.asm"		; For detecting IDE drives
 	%include "DetectPrint.asm"		; For printing drive detection strings
-
+		
 	; Boot menu
 	%include "BootMenu.asm"			; For Boot Menu operations
 	%include "BootMenuEvent.asm"	; For menu library event handling
-	%include "BootMenuPrint.asm"	; For printing Boot Menu strings (needs to come after BootMenuEvent.asm)
+									; NOTE: BootMenuPrint needs to come immediately after BootMenuEvent
+	%include "BootMenuPrint.asm"	; For printing Boot Menu strings 
+	%include "BootPrint.asm"		; For printing boot information
+	%include "BootMenuPrintCfg.asm"	; For printing hard disk configuration
 	%include "FloppyDrive.asm"		; Floppy Drive related functions
 	%include "BootSector.asm"		; For loading boot sector
-	%include "BootPrint.asm"		; For printing boot information
-	%include "BootMenuPrintCfg.asm"	; For printing hard disk configuration
 
 	; Boot loader
@@ -187,6 +188,6 @@
 
 	; For all device types
+	%include "Idepack.asm"
 	%include "Device.asm"
-	%include "Idepack.asm"
 	%include "Timer.asm"			; For timeout and delay
 
@@ -194,9 +195,9 @@
 	%include "IdeCommand.asm"
 	%include "IdeTransfer.asm"		; Must be included after IdeCommand.asm
+	%include "IdeWait.asm"
+	%include "IdeError.asm"			; Must be included after IdeWait.asm		
 	%include "IdeDPT.asm"
 	%include "IdeIO.asm"
 	%include "IdeIrq.asm"
-	%include "IdeWait.asm"
-	%include "IdeError.asm"			; Must be included after IdeWait.asm
 
 %ifdef MODULE_SERIAL				; Serial Port Device support
