Index: /trunk/XTIDE_Universal_BIOS/Inc/BootVars.inc
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Inc/BootVars.inc	(revision 412)
+++ /trunk/XTIDE_Universal_BIOS/Inc/BootVars.inc	(revision 413)
@@ -47,4 +47,5 @@
 %ifdef MODULE_HOTKEYS
 struc HOTKEYVARS
+	.wTimeToClose		resb	2		; Earliest system time when Hotkey Bar can be closed
 	.bScancode			resb	1		; Function hotkey scancode
 	.bFlags				resb	1		; Must be just before .bHddLetter! 
Index: /trunk/XTIDE_Universal_BIOS/Inc/HotkeyBar.inc
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Inc/HotkeyBar.inc	(revision 412)
+++ /trunk/XTIDE_Universal_BIOS/Inc/HotkeyBar.inc	(revision 413)
@@ -21,4 +21,7 @@
 %define HOTKEYBAR_INC
 
+MIN_TIME_TO_DISPLAY_HOTKEY_BAR			EQU	(5000/55)	; 5000 ms
+
+
 ; Hotkeys
 BOOT_MENU_HOTKEY_SCANCODE				EQU	3Ch	; F2
Index: /trunk/XTIDE_Universal_BIOS/Inc/RamVars.inc
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Inc/RamVars.inc	(revision 412)
+++ /trunk/XTIDE_Universal_BIOS/Inc/RamVars.inc	(revision 413)
@@ -95,4 +95,5 @@
 							resb	1
 
+%ifdef MODULE_EBIOS
 	; Parameters for 48-bit LBA
 	.bLbaLowExt				resb	1	; LBA48 31...24
@@ -100,5 +101,5 @@
 	.bLbaMiddleExt			resb	1	; LBA48 39...32
 	.bLbaHighExt			resb	1	; LBA48 47...40
-
+%endif
 	.intpack				resb	INTPACK_size
 endstruc
Index: /trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Prepare.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Prepare.asm	(revision 412)
+++ /trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Prepare.asm	(revision 413)
@@ -148,5 +148,7 @@
 	db		COMMAND_READ_SECTORS_EXT	; 01b, LBA48 single sector
 	db		COMMAND_READ_MULTIPLE		; 10b, CHS or LBA28 block mode
+%ifdef MODULE_EBIOS
 	db		COMMAND_READ_MULTIPLE_EXT	; 11b, LBA48 block mode
+%endif
 
 g_rgbWriteCommandLookup:
@@ -154,5 +156,7 @@
 	db		COMMAND_WRITE_SECTORS_EXT
 	db		COMMAND_WRITE_MULTIPLE
+%ifdef MODULE_EBIOS
 	db		COMMAND_WRITE_MULTIPLE_EXT
+%endif
 
 g_rgbVerifyCommandLookup:
@@ -160,3 +164,5 @@
 	db		COMMAND_VERIFY_SECTORS_EXT
 	db		COMMAND_VERIFY_SECTORS
+%ifdef MODULE_EBIOS
 	db		COMMAND_VERIFY_SECTORS_EXT
+%endif
Index: /trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm	(revision 412)
+++ /trunk/XTIDE_Universal_BIOS/Src/Handlers/Int19h.asm	(revision 413)
@@ -77,5 +77,18 @@
 ;		DS:		RAMVARS segment
 ;--------------------------------------------------------------------
-	call	Initialize_AndDetectDrives	
+%ifdef MODULE_HOTKEYS
+	call	TimerTicks_ReadFromBdaToAX
+	add		ax, MIN_TIME_TO_DISPLAY_HOTKEY_BAR
+	mov		[es:BOOTVARS.hotkeyVars+HOTKEYVARS.wTimeToClose], ax
+%endif
+
+	call	Initialize_AndDetectDrives
+
+%ifdef MODULE_HOTKEYS
+.WaitUntilTimeToCloseHotkeyBar:
+	call	TimerTicks_ReadFromBdaToAX
+	cmp		ax, [es:BOOTVARS.hotkeyVars+HOTKEYVARS.wTimeToClose]
+	jb		SHORT .WaitUntilTimeToCloseHotkeyBar
+%endif
 	; Fall to SelectDriveToBootFrom
 
Index: /trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm	(revision 412)
+++ /trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm	(revision 413)
@@ -33,24 +33,29 @@
 ;		Nothing
 ;--------------------------------------------------------------------
-Initialize_FromMainBiosRomSearch:			; unused entrypoint ok
-	pushf
-	push	es
+Initialize_FromMainBiosRomSearch:		; unused entrypoint ok
+	pushf								; To store IF
 	push	ds
-	ePUSHA
 
-	LOAD_BDA_SEGMENT_TO	es, ax
-	sti										; Enable interrupts
-	test	BYTE [es:BDA.bKBFlgs1], (1<<2)	; Clears ZF if CTRL is held down
+%ifndef USE_186
+	push	ax
+	LOAD_BDA_SEGMENT_TO	ds, ax
+%else
+	push	BYTE 0
+	pop		ds
+%endif
+
+	sti									; Enable interrupts for keystrokes
+	test	BYTE [BDA.bKBFlgs1], (1<<2)	; Clears ZF if CTRL is held down
 	jnz		SHORT .SkipRomInitialization
 
 	; Install INT 19h handler (boot loader) where drives are detected
-	mov		al, BIOS_BOOT_LOADER_INTERRUPT_19h
-	mov		si, Int19h_BootLoaderHandler
-	call	Interrupts_InstallHandlerToVectorInALFromCSSI
+	mov		WORD [BIOS_BOOT_LOADER_INTERRUPT_19h*4], Int19h_BootLoaderHandler
+	mov		[BIOS_BOOT_LOADER_INTERRUPT_19h*4+2], cs
 
 .SkipRomInitialization:
-	ePOPA
+%ifndef USE_186
+	pop		ax
+%endif
 	pop		ds
-	pop		es
 	popf
 	retf
@@ -66,5 +71,5 @@
 ;		DS:		RAMVARS segment
 ;	Corrupts registers:
-;		All
+;		All, except ES
 ;--------------------------------------------------------------------
 Initialize_AndDetectDrives:
