Index: trunk/XTIDE_Universal_BIOS/Inc/ModuleDependency.inc
===================================================================
--- trunk/XTIDE_Universal_BIOS/Inc/ModuleDependency.inc	(revision 395)
+++ trunk/XTIDE_Universal_BIOS/Inc/ModuleDependency.inc	(revision 395)
@@ -0,0 +1,26 @@
+; /*
+; Project name	:	XTIDE Universal BIOS
+; Description	:	Dependencies for optional modules.
+
+;
+; XTIDE Universal BIOS and Associated Tools 
+; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
+;
+; This program is free software; you can redistribute it and/or modify
+; it under the terms of the GNU General Public License as published by
+; the Free Software Foundation; either version 2 of the License, or
+; (at your option) any later version.
+; 
+; This program is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+; GNU General Public License for more details.		
+; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+;
+
+; Boot Menu requires Hotkey support
+%ifdef MODULE_BOOT_MENU
+	%ifndef MODULE_HOTKEYS
+		%define MODULE_HOTKEYS
+	%endif
+%endif
Index: trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm	(revision 394)
+++ trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h.asm	(revision 395)
@@ -43,5 +43,7 @@
 	call	RamVars_GetSegmentToDS
 
+%ifdef MODULE_HOTKEYS
 	call	DriveXlate_ToOrBack
+%endif
 	mov		[RAMVARS.xlateVars+XLATEVARS.bXlatedDrv], dl
 
Index: trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm	(revision 394)
+++ trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm	(revision 395)
@@ -90,4 +90,5 @@
 ;--------------------------------------------------------------------
 SelectDriveToBootFrom:
+%ifdef MODULE_HOTKEYS
 	call	HotkeyBar_UpdateDuringDriveDetection
 
@@ -103,4 +104,5 @@
 .DoNotDisplayBootMenu:
 %endif
+%endif
 
 	; Check if ROM boot (INT 18h) wanted
@@ -109,10 +111,21 @@
 
 	; Try to boot from Primary boot drive (00h by default)
+%ifdef MODULE_HOTKEYS
 	call	HotkeyBar_GetPrimaryBootDriveNumberToDL
+%else
+	mov		dl, [cs:ROMVARS.bBootDrv]
+	and		dl, 80h		; Only 00h and 80h allowed when not using MODULE_HOTKEYS
+%endif
 	call	TryToBootFromPrimaryOrSecondaryBootDevice
 	jc		SHORT JumpToBootSector_or_RomBoot
 
 	; Try to boot from Secondary boot device (80h by default)
+%ifdef MODULE_HOTKEYS
 	call	HotkeyBar_GetSecondaryBootDriveNumberToDL
+%else
+	mov		dl, [cs:ROMVARS.bBootDrv]
+	and		dl, 80h
+	xor		dl, 80h
+%endif
 	call	TryToBootFromPrimaryOrSecondaryBootDevice
 
@@ -179,6 +192,11 @@
 ;		AX, CX, DH, SI, DI, (DL if failed to read boot sector)
 ;--------------------------------------------------------------------
+%ifndef MODULE_HOTKEYS
+TryToBootFromPrimaryOrSecondaryBootDevice	EQU		BootSector_TryToLoadFromDriveDL
+
+%else
 TryToBootFromPrimaryOrSecondaryBootDevice:
 	call	DriveXlate_SetDriveToSwap
 	call	DriveXlate_ToOrBack
 	jmp		BootSector_TryToLoadFromDriveDL
+%endif
Index: trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectDrives.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectDrives.asm	(revision 394)
+++ trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectDrives.asm	(revision 395)
@@ -154,5 +154,7 @@
 StartDetectionWithDriveSelectByteInBHandStringInCX:
 	call	DetectPrint_StartDetectWithMasterOrSlaveStringInCXandIdeVarsInCSBP
+%ifdef MODULE_HOTKEYS
 	call	HotkeyBar_UpdateDuringDriveDetection
+%endif
 	; Fall to .ReadAtaInfoFromHardDisk
 
Index: trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm	(revision 394)
+++ trunk/XTIDE_Universal_BIOS/Src/Initialization/DetectPrint.asm	(revision 395)
@@ -206,4 +206,6 @@
 	mov		bp, sp
 
+%ifdef MODULE_HOTKEYS
+
 	call	DriveXlate_ToOrBack	; DL = Untranslated Drive number
 	mov		dh, dl
@@ -217,5 +219,19 @@
 	push	dx
 
-	call	ConvertDriveLetterInDLtoDriveNumber	; Restore DL
+	call	HotkeyBar_ConvertDriveLetterInDLtoDriveNumber	; Restore DL
+
+%else
+	ePUSH_T	ax, ' '			; No drive translation so print space
+
+	; Get boot drive letters
+	call	FloppyDrive_GetCountToAX
+	mov		ah, 'A'			; AH = First Floppy Drive letter (always 'A')
+	add		al, ah
+	MAX_U	al, 'C'			; AL = First Hard Drive letter ('C', 'D', or 'E')
+	test	dl, dl
+	eCMOVNS	al, ah
+	push	ax
+
+%endif ; MODULE_HOTKEYS
 
 	mov		si, g_szTryToBoot
Index: trunk/XTIDE_Universal_BIOS/Src/Initialization/DriveXlate.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Initialization/DriveXlate.asm	(revision 394)
+++ 	(revision )
@@ -1,103 +1,0 @@
-; Project name	:	XTIDE Universal BIOS
-; Description	:	Functions for swapping drive letters.
-
-;
-; XTIDE Universal BIOS and Associated Tools 
-; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
-;
-; This program is free software; you can redistribute it and/or modify
-; it under the terms of the GNU General Public License as published by
-; the Free Software Foundation; either version 2 of the License, or
-; (at your option) any later version.
-; 
-; This program is distributed in the hope that it will be useful,
-; but WITHOUT ANY WARRANTY; without even the implied warranty of
-; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-; GNU General Public License for more details.		
-; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
-;		
-
-; Section containing code
-SECTION .text
-
-;--------------------------------------------------------------------
-; DriveXlate_ToOrBack
-;	Parameters:
-;		DL:		Drive number to be possibly translated
-;		DS:		RAMVARS segment
-;	Returns:
-;		DL:		Translated drive number
-;	Corrupts registers:
-;		DI
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-DriveXlate_ToOrBack:
-	test	BYTE [cs:ROMVARS.wFlags], FLG_ROMVARS_DRVXLAT
-	jz		SHORT .Return			; Return if translation disabled
-	xchg	di, ax					; Backup AX
-
-	mov		ah, 80h					; Assume hard disk
-	mov		al, [RAMVARS.xlateVars+XLATEVARS.bHDSwap]
-	test	dl, ah					; Hard disk?
-	jnz		SHORT .SwapDrive		; If so, jump to swap
-	mov		al, [RAMVARS.xlateVars+XLATEVARS.bFDSwap]
-	cbw
-
-ALIGN JUMP_ALIGN
-.SwapDrive:
-	cmp		ah, dl					; Swap DL from 00h/80h to xxh?
-	je		SHORT .SwapToXXhInAL
-	cmp		al, dl					; Swap DL from xxh to 00h/80h?
-	jne		SHORT .RestoreAXandReturn
-	mov		al, ah
-ALIGN JUMP_ALIGN
-.SwapToXXhInAL:
-	mov		dl, al
-ALIGN JUMP_ALIGN
-.RestoreAXandReturn:
-	xchg	ax, di					; Restore AX
-ALIGN JUMP_ALIGN, ret
-.Return:
-	ret
-
-
-;--------------------------------------------------------------------
-; Resets drive swapping variables to defaults (no swapping).
-;
-; DriveXlate_Reset
-;	Parameters:
-;		DS:		RAMVARS segment
-;	Returns:
-;		Nothing
-;	Corrupts registers:
-;		Nothing
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-DriveXlate_Reset:
-	mov		WORD [RAMVARS.xlateVars+XLATEVARS.wFDandHDswap], 8000h
-	ret
-
-
-;--------------------------------------------------------------------
-; Stores drive to be swapped.
-;
-; DriveXlate_SetDriveToSwap
-;	Parameters:
-;		DL:		Drive to swap to 00h or 80h
-;		DS:		RAMVARS segment
-;	Returns:
-;		Nothing
-;	Corrupts registers:
-;		Nothing
-;--------------------------------------------------------------------
-ALIGN JUMP_ALIGN
-DriveXlate_SetDriveToSwap:
-	test	dl, dl				; Floppy drive?
-	js		SHORT .SetHardDiskToSwap
-.SetFloppyDriveToSwap:
-	mov		[RAMVARS.xlateVars+XLATEVARS.bFDSwap], dl
-	ret
-ALIGN JUMP_ALIGN
-.SetHardDiskToSwap:
-	mov		[RAMVARS.xlateVars+XLATEVARS.bHDSwap], dl
-	ret
Index: trunk/XTIDE_Universal_BIOS/Src/Main.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Main.asm	(revision 394)
+++ trunk/XTIDE_Universal_BIOS/Src/Main.asm	(revision 395)
@@ -47,4 +47,5 @@
 	%include "AssemblyLibrary.inc"	; Assembly Library. Must be included first!
 	%include "Version.inc"
+	%include "ModuleDependency.inc"	; Dependency checks for optional modules
 	%include "IntController.inc"	; For Interrupt Controller equates
 	%include "ATA_ID.inc"			; For ATA Drive Information structs
@@ -224,5 +225,10 @@
 	%include "DetectDrives.asm"		; For detecting IDE drives
 	%include "DetectPrint.asm"		; For printing drive detection strings
+
+	; Hotkey Bar
+%ifdef MODULE_HOTKEYS
 	%include "HotkeyBar.asm"		; For hotkeys during drive detection and boot menu
+	%include "DriveXlate.asm"		; For swapping drive numbers
+%endif
 
 	; Boot menu
@@ -297,5 +303,4 @@
 	%include "AH24h_HSetBlocks.asm"	; Required by Int13h_Jump.asm
 	%include "AH25h_HDrvID.asm"		; Required by Int13h_Jump.asm
-	%include "DriveXlate.asm"		; For swapping drive numbers
 	%include "Address.asm"			; For sector address translations
 	%include "Prepare.asm"			; For buffer pointer normalization
Index: trunk/XTIDE_Universal_BIOS/Src/Menus/BootMenu/BootMenuEvent.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Menus/BootMenu/BootMenuEvent.asm	(revision 394)
+++ trunk/XTIDE_Universal_BIOS/Src/Menus/BootMenu/BootMenuEvent.asm	(revision 395)
@@ -87,18 +87,4 @@
 
 ;--------------------------------------------------------------------
-; ConvertKeystrokeToAXfromDriveLetterInDL
-;	Parameters:
-;		DL:		Drive Letter ('A'...)
-;	Returns:
-;		AX:		Hotkey keystroke
-;	Corrupts registers:
-;		Nothing
-;--------------------------------------------------------------------
-ConvertKeystrokeToAXfromDriveLetterInDL:
-	eMOVZX	ax, dl
-	jmp		Char_ChangeCaseInAL	; Upper case drive letter to lower case keystroke
-
-
-;--------------------------------------------------------------------
 ; BootMenuEvent_Handler
 ;	Common parameters for all events:
@@ -228,7 +214,5 @@
 	; The secondary boot drive is selected by highlighting it using menu keys
 	; and the primary boot drive is selected by pressing drive letter hotkey.
-	call	HotkeyBar_ConvertDriveNumberFromDLtoDriveLetter
-	call	ConvertKeystrokeToAXfromDriveLetterInDL
-	call	HotkeyBar_StoreHotkeyToBootvarsIfValidKeystrokeInAX
+	call	BootVars_StoreHotkeyForDriveNumberInDL
 	call	RedrawHotkeyBarFromInsideMenuEventHandler
 
@@ -248,27 +232,4 @@
 
 ;--------------------------------------------------------------------
-; EventItemSelectedFromCX
-;	Parameters
-;		CX:		Index of selected item
-;		DS:		Ptr to RAMVARS
-;		ES:		Ptr to BDA (zero)
-;		SS:BP:	Menu library handle
-;	Returns:
-;		CF:		Set if event processed
-;				Cleared if event not processed
-;	Corrupts registers:
-;		Does not matter
-;--------------------------------------------------------------------
-EventItemSelectedFromCX:
-	call	BootMenu_GetDriveToDXforMenuitemInCX
-	jnc		SHORT BootMenuEvent_Completed	; No menuitem selected
-
-	; Convert selected drive to hotkey keystroke
-	call	HotkeyBar_ConvertDriveNumberFromDLtoDriveLetter
-	call	ConvertKeystrokeToAXfromDriveLetterInDL
-	; Fall to EventKeyStrokeInAX
-
-
-;--------------------------------------------------------------------
 ; EventKeyStrokeInAX
 ;	Parameters
@@ -291,4 +252,26 @@
 
 	; Hotkey is now stored to BOOTVARS and menu can be closed
+	jmp		SHORT CloseBootMenu
+
+
+;--------------------------------------------------------------------
+; EventItemSelectedFromCX
+;	Parameters
+;		CX:		Index of selected item
+;		DS:		Ptr to RAMVARS
+;		ES:		Ptr to BDA (zero)
+;		SS:BP:	Menu library handle
+;	Returns:
+;		CF:		Set if event processed
+;				Cleared if event not processed
+;	Corrupts registers:
+;		Does not matter
+;--------------------------------------------------------------------
+EventItemSelectedFromCX:
+	call	BootMenu_GetDriveToDXforMenuitemInCX
+	jnc		SHORT BootMenuEvent_Completed	; No menuitem selected
+
+	; Convert selected drive to hotkey keystroke
+	call	HotkeyBar_StoreHotkeyToBootvarsForDriveLetterInDL
 	; Fall to CloseBootMenu
 
Index: trunk/XTIDE_Universal_BIOS/Src/Menus/DriveXlate.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Menus/DriveXlate.asm	(revision 395)
+++ trunk/XTIDE_Universal_BIOS/Src/Menus/DriveXlate.asm	(revision 395)
@@ -0,0 +1,103 @@
+; Project name	:	XTIDE Universal BIOS
+; Description	:	Functions for swapping drive letters.
+
+;
+; XTIDE Universal BIOS and Associated Tools 
+; Copyright (C) 2009-2010 by Tomi Tilli, 2011-2012 by XTIDE Universal BIOS Team.
+;
+; This program is free software; you can redistribute it and/or modify
+; it under the terms of the GNU General Public License as published by
+; the Free Software Foundation; either version 2 of the License, or
+; (at your option) any later version.
+; 
+; This program is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+; GNU General Public License for more details.		
+; Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+;		
+
+; Section containing code
+SECTION .text
+
+;--------------------------------------------------------------------
+; DriveXlate_ToOrBack
+;	Parameters:
+;		DL:		Drive number to be possibly translated
+;		DS:		RAMVARS segment
+;	Returns:
+;		DL:		Translated drive number
+;	Corrupts registers:
+;		DI
+;--------------------------------------------------------------------
+ALIGN JUMP_ALIGN
+DriveXlate_ToOrBack:
+	test	BYTE [cs:ROMVARS.wFlags], FLG_ROMVARS_DRVXLAT
+	jz		SHORT .Return			; Return if translation disabled
+	xchg	di, ax					; Backup AX
+
+	mov		ah, 80h					; Assume hard disk
+	mov		al, [RAMVARS.xlateVars+XLATEVARS.bHDSwap]
+	test	dl, ah					; Hard disk?
+	jnz		SHORT .SwapDrive		; If so, jump to swap
+	mov		al, [RAMVARS.xlateVars+XLATEVARS.bFDSwap]
+	cbw
+
+ALIGN JUMP_ALIGN
+.SwapDrive:
+	cmp		ah, dl					; Swap DL from 00h/80h to xxh?
+	je		SHORT .SwapToXXhInAL
+	cmp		al, dl					; Swap DL from xxh to 00h/80h?
+	jne		SHORT .RestoreAXandReturn
+	mov		al, ah
+ALIGN JUMP_ALIGN
+.SwapToXXhInAL:
+	mov		dl, al
+ALIGN JUMP_ALIGN
+.RestoreAXandReturn:
+	xchg	ax, di					; Restore AX
+ALIGN JUMP_ALIGN, ret
+.Return:
+	ret
+
+
+;--------------------------------------------------------------------
+; Resets drive swapping variables to defaults (no swapping).
+;
+; DriveXlate_Reset
+;	Parameters:
+;		DS:		RAMVARS segment
+;	Returns:
+;		Nothing
+;	Corrupts registers:
+;		Nothing
+;--------------------------------------------------------------------
+ALIGN JUMP_ALIGN
+DriveXlate_Reset:
+	mov		WORD [RAMVARS.xlateVars+XLATEVARS.wFDandHDswap], 8000h
+	ret
+
+
+;--------------------------------------------------------------------
+; Stores drive to be swapped.
+;
+; DriveXlate_SetDriveToSwap
+;	Parameters:
+;		DL:		Drive to swap to 00h or 80h
+;		DS:		RAMVARS segment
+;	Returns:
+;		Nothing
+;	Corrupts registers:
+;		Nothing
+;--------------------------------------------------------------------
+ALIGN JUMP_ALIGN
+DriveXlate_SetDriveToSwap:
+	test	dl, dl				; Floppy drive?
+	js		SHORT .SetHardDiskToSwap
+.SetFloppyDriveToSwap:
+	mov		[RAMVARS.xlateVars+XLATEVARS.bFDSwap], dl
+	ret
+ALIGN JUMP_ALIGN
+.SetHardDiskToSwap:
+	mov		[RAMVARS.xlateVars+XLATEVARS.bHDSwap], dl
+	ret
Index: trunk/XTIDE_Universal_BIOS/Src/Menus/HotkeyBar.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Menus/HotkeyBar.asm	(revision 394)
+++ trunk/XTIDE_Universal_BIOS/Src/Menus/HotkeyBar.asm	(revision 395)
@@ -305,4 +305,21 @@
 
 ;--------------------------------------------------------------------
+; HotkeyBar_StoreHotkeyToBootvarsForDriveLetterInDL
+;	Parameters:
+;		DS:		RAMVARS segment
+;		ES:		BDA segment (zero)
+;		DL:		Drive Letter ('A'...)
+;	Returns:
+;		Nothing
+;	Corrupts registers:
+;		AX, CX, DI
+;--------------------------------------------------------------------
+HotkeyBar_StoreHotkeyToBootvarsForDriveLetterInDL:
+	eMOVZX	ax, dl
+	call	Char_ChangeCaseInAL	; Upper case drive letter to lower case keystroke
+	jmp		SHORT HotkeyBar_StoreHotkeyToBootvarsIfValidKeystrokeInAX
+
+
+;--------------------------------------------------------------------
 ; ScanHotkeysFromKeyBufferAndStoreToBootvars
 ;	Parameters:
@@ -399,9 +416,9 @@
 	test	BYTE [es:BOOTVARS.hotkeyVars+HOTKEYVARS.bFlags], FLG_HOTKEY_HD_FIRST
 	eCMOVZ	dl, dh
-	; Fall to ConvertDriveLetterInDLtoDriveNumber
-
-
-;--------------------------------------------------------------------
-; ConvertDriveLetterInDLtoDriveNumber
+	; Fall to HotkeyBar_ConvertDriveLetterInDLtoDriveNumber
+
+
+;--------------------------------------------------------------------
+; HotkeyBar_ConvertDriveLetterInDLtoDriveNumber
 ;	Parameters:
 ;		DS:		RAMVARS segment
@@ -412,5 +429,5 @@
 ;		AX, DH
 ;--------------------------------------------------------------------
-ConvertDriveLetterInDLtoDriveNumber:
+HotkeyBar_ConvertDriveLetterInDLtoDriveNumber:
 	call	HotkeyBar_GetLetterForFirstHardDriveToAX
 	cmp		dl, al
Index: trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/BootVars.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/BootVars.asm	(revision 394)
+++ trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/BootVars.asm	(revision 395)
@@ -39,22 +39,29 @@
 	sub		ax, di
 	xchg	cx, ax
+
+%ifdef MODULE_HOTKEYS
 	call	Memory_ZeroESDIwithSizeInCX
 
 	; Store default drives to boot from
-	mov		di, BOOTVARS.hotkeyVars+HOTKEYVARS.wHddAndFddLetters
-	call	HotkeyBar_GetLetterForFirstHardDriveToAX
-	mov		ah, DEFAULT_FLOPPY_DRIVE_LETTER
-	mov		[es:di], ax
+	mov		dl, [cs:ROMVARS.bBootDrv]
 
-	; Check if boot drive is overridden in ROMVARs
-	mov		al, [cs:ROMVARS.bBootDrv]
-	test	al, al
-	js		SHORT .StoreUserHardDiskToBootFrom
-	inc		di
-	jmp		SHORT .AddToDefaultDrive
+;--------------------------------------------------------------------
+; BootVars_StoreHotkeyForDriveNumberInDL
+;	Parameters:
+;		DL:		Floppy or Hard Drive number
+;		DS:		RAMVARS Segment
+;		ES:		BDA Segment
+;	Returns:
+;		Nothing
+;	Corrupts registers:
+;		AX, CX, DI
+;--------------------------------------------------------------------
+BootVars_StoreHotkeyForDriveNumberInDL:
+	mov		WORD [es:BOOTVARS.hotkeyVars+HOTKEYVARS.wHddAndFddLetters], DEFAULT_HARD_DRIVE_LETTER | (DEFAULT_FLOPPY_DRIVE_LETTER<<8)
+	call	HotkeyBar_ConvertDriveNumberFromDLtoDriveLetter
+	jmp		HotkeyBar_StoreHotkeyToBootvarsForDriveLetterInDL
 
-.StoreUserHardDiskToBootFrom:
-	sub		al, 80h					; Clear HD bit
-.AddToDefaultDrive:
-	add		[es:di], al
-	ret
+%else
+	jmp		Memory_ZeroESDIwithSizeInCX
+
+%endif ; MODULE_HOTKEYS
Index: trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/RamVars.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/RamVars.asm	(revision 394)
+++ trunk/XTIDE_Universal_BIOS/Src/VariablesAndDPTs/RamVars.asm	(revision 395)
@@ -91,5 +91,9 @@
 .InitializeDriveTranslationAndReturn:
 	pop		es
+%ifdef MODULE_HOTKEYS
 	jmp		DriveXlate_Reset
+%else
+	ret
+%endif
 
 
Index: trunk/XTIDE_Universal_BIOS/makefile
===================================================================
--- trunk/XTIDE_Universal_BIOS/makefile	(revision 394)
+++ trunk/XTIDE_Universal_BIOS/makefile	(revision 395)
@@ -18,4 +18,5 @@
 # MODULE_BOOT_MENU          Boot Menu for selection of drive to boot from                        #
 # MODULE_EBIOS              Enhanced functions for accessing drives over 8.4 GB                  #
+# MODULE_HOTKEYS            Hotkey Bar to boot from any drive                                    #
 # MODULE_JRIDE              Support for JR-IDE/ISA                                               #
 # MODULE_SERIAL             Virtual hard disks using serial port                                 #
@@ -89,5 +90,5 @@
 # Assembler preprocessor defines.                               #
 #################################################################
-DEFINES_COMMON = MODULE_STRINGS_COMPRESSED MODULE_EBIOS
+DEFINES_COMMON = MODULE_STRINGS_COMPRESSED MODULE_HOTKEYS MODULE_EBIOS
 
 DEFINES_XT = ELIMINATE_CGA_SNOW MODULE_SERIAL MODULE_SERIAL_FLOPPY
