Index: /trunk/Assembly_Library/Src/Display/DisplayPrint.asm
===================================================================
--- /trunk/Assembly_Library/Src/Display/DisplayPrint.asm	(revision 531)
+++ /trunk/Assembly_Library/Src/Display/DisplayPrint.asm	(revision 532)
@@ -137,5 +137,5 @@
 	jnz		SHORT .DivideLoop	;  If not, loop
 
-PrintAllPushedDigits:
+PrintAllPushedDigits:			; Unused entrypoint OK
 	mov		bx, g_rgcDigitToCharacter
 ALIGN DISPLAY_JUMP_ALIGN
@@ -298,4 +298,7 @@
 %ifdef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
 	%define EXCLUDE
+	%ifndef MODULE_STRINGS_COMPRESSED
+		%undef EXCLUDE
+	%endif
 	%ifdef MODULE_HOTKEYS
 		%undef EXCLUDE
Index: /trunk/Assembly_Library/Src/Menu/MenuInit.asm
===================================================================
--- /trunk/Assembly_Library/Src/Menu/MenuInit.asm	(revision 531)
+++ /trunk/Assembly_Library/Src/Menu/MenuInit.asm	(revision 532)
@@ -153,5 +153,4 @@
 	sub		ax, [bp+MENUINIT.wHighlightedItem]
 	jmp		MenuScrollbars_MoveHighlightedItemByAX
-%endif
 
 
@@ -169,4 +168,5 @@
 	mov		ax, [bp+MENUINIT.wHighlightedItem]
 	ret
+%endif ; EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
 
 
Index: /trunk/Tools/unused.pl
===================================================================
--- /trunk/Tools/unused.pl	(revision 531)
+++ /trunk/Tools/unused.pl	(revision 532)
@@ -56,4 +56,5 @@
 		/^([a-z0-9_]+\:)?\s+call\s+(.*)$/i ||
 		/^([a-z0-9_]+\:)?\s+push\s+(.*)$/i ||
+		/^([a-z0-9_]+\:)?\s+loop\s+(.*)$/i ||
         /^([a-z0-9_]+\:)?\s+j[a-z]?[a-z]?[a-z]?[a-z]?[a-z]?\s+(.*)$/i ||
 		/^([a-z0-9_]+)?\s+equ\s+(.*)$/i )
Index: /trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeWait.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeWait.asm	(revision 531)
+++ /trunk/XTIDE_Universal_BIOS/Src/Device/IDE/IdeWait.asm	(revision 532)
@@ -77,4 +77,5 @@
 	mov		cl, bh
 	call	Timer_InitializeTimeoutWithTicksInCL
+	call	IdeIO_InputStatusRegisterToAL		; Discard contents of first read
 	and		ah, ~FLG_STATUS_BSY
 	jz		SHORT PollBsyOnly
@@ -94,6 +95,4 @@
 ;--------------------------------------------------------------------
 PollBsyAndFlgInAH:
-	call	IdeIO_InputStatusRegisterToAL		; Discard contents of first read
-
 .PollLoop:
 	call	IdeIO_InputStatusRegisterToAL
@@ -125,6 +124,4 @@
 ;--------------------------------------------------------------------
 PollBsyOnly:
-	call	IdeIO_InputStatusRegisterToAL		; Discard contents of first read
-
 .PollLoop:
 	call	IdeIO_InputStatusRegisterToAL
Index: /trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm	(revision 531)
+++ /trunk/XTIDE_Universal_BIOS_Configurator_v2/Src/Strings.asm	(revision 532)
@@ -22,6 +22,5 @@
 
 ; Menu title
-g_szProgramTitle:
-	db	"Configuration and Flashing program for XTIDE Universal BIOS v2.0.0.",LF,CR,NULL
+g_szProgramTitle:					db	"Configuration and Flashing program for XTIDE Universal BIOS v2.0.0.",LF,CR,NULL
 g_szXtideUniversalBiosSignature:	db	"XTIDE203",NULL
 g_szBiosIsNotLoaded:				db	"BIOS is not loaded!",NULL
@@ -29,6 +28,5 @@
 g_szSourceAndTypeSeparator:			db	" : ",NULL
 g_szUnidentified:					db	"Unidentified",NULL
-g_szUnsaved:						db	" ",SINGLE_LEFT_HORIZONTAL_TO_VERTICAL,
-									db	"Unsaved",SINGLE_RIGHT_HORIZONTAL_TO_VERTICAL,NULL
+g_szUnsaved:						db	" ",SINGLE_LEFT_HORIZONTAL_TO_VERTICAL,"Unsaved",SINGLE_RIGHT_HORIZONTAL_TO_VERTICAL,NULL
 
 ; Item formatting
@@ -38,6 +36,5 @@
 
 g_szNo:								db	"No",NULL
-g_szMultichoiceBooleanFlag:
-									db	"No",LF
+g_szMultichoiceBooleanFlag:			db	"No",LF
 g_szYes:							db	"Yes",NULL
 
@@ -96,6 +93,9 @@
 g_szNfoMainHomePage:	db	"Visit http://code.google.com/p/ xtideuniversalbios (home page) and http://vintage-computer.com/ vcforum (support)",NULL
 
-g_szHelpMainLicense:	incbin	"Main_License.txt"
-						db	NULL
+g_szHelpMainLicense:	db	"XTIDE Universal BIOS and XTIDECFG Configuration program are Copyright 2009-2010 by Tomi Tilli,"
+						db	" 2011-2013 by XTIDE Universal BIOS Team. Released under GNU GPL v2. This software comes with ABSOLUTELY NO WARRANTY."
+						db	" This is free software, and you are welcome to redistribute it under certain conditions."
+						db	" See the LICENSE.TXT file that was included with this distribution,"
+						db	" visit http://www.gnu.org/licenses/ gpl-2.0.html, or visit http://code.coogle.com/p/ xtideuniversalbios.",NULL
 
 ; Strings for XTIDE Universal BIOS configuration menu
@@ -131,8 +131,18 @@
 						db	" No further action is required. Serial Controllers must be placed at the end of the list.",NULL
 
-g_szHelpCfgFullMode:	incbin	"Configuration_FullMode.txt"
-						db	NULL
-g_szHelpCfgStealSize:	incbin	"Configuration_StealSize.txt"
-						db	NULL
+g_szHelpCfgFullMode:	db	"Full mode supports up to 4 IDE controllers (8 drives). Full mode reserves a bit of RAM from the top of"
+						db	" Conventional memory. This makes it possible to use ROM BASIC and other software that requires"
+						db	" the interrupt vectors where XTIDE Universal BIOS parameters would be stored in Lite mode.",LF,LF
+						db	"Lite mode supports only one IDE controller (2 drives) and stores parameters to the top of the interrupt vectors"
+						db	" (30:0h) so no Conventional memory needs to be reserved. Lite mode cannot be used if some software requires"
+						db	" the top of interrupt vectors. Usually this is not a problem since only IBM ROM BASIC uses them.",LF,LF
+						db	"Tandy 1000 models with 640 kiB or less memory need to use Lite mode since the top of Conventional memory gets"
+						db	" dynamically reserved by video hardware. This happens only with Tandy integrated video controller and not when"
+						db	" using expansion graphics cards. It is possible to use Full mode if reserving RAM for video memory + what is"
+						db	" required for XTIDE Universal BIOS. This would mean 65 kiB but most software should work with 33 kiB reserved.",NULL
+
+g_szHelpCfgStealSize:	db	"Parameters for detected hard disks must be stored somewhere. In Full mode they are stored at the top of Conventional"
+						db	" memory. 1 kiB is usually enough but you may have to reserve more if you want to use Full mode on a Tandy 1000.",NULL
+
 g_szHelpCfgIdleTimeout:	db	"This option enables the standby timer for all harddrives handled by XTIDE Universal BIOS,"
 						db	" allowing the drives to spin down after idling the selected amount of time."
@@ -140,6 +150,6 @@
 						db	" Also note that timeouts less than 5 minutes may cause unnecessary wear on the drives and is not recommended"
 						db	" (use for compatibility testing only).",NULL
-g_szMultichoiceIdleTimeout:
-							db	"Disabled",LF
+
+g_szMultichoiceIdleTimeout:	db	"Disabled",LF
 							db	"1 m",LF
 							db	"2 m",LF
@@ -166,93 +176,111 @@
 							db	"1 h 30 m",LF
 g_szIdleTimeoutChoice24:	db	"2 h",NULL
-
+g_szIdleTimeoutChoice23:	db	"1 h 30 m",NULL
+g_szIdleTimeoutChoice22:	db	"1 h",NULL
+g_szIdleTimeoutChoice21:	db	"30 m",NULL
+g_szIdleTimeoutChoice20:	db	"20 m",NULL
+g_szIdleTimeoutChoice19:	db	"19 m",NULL
+g_szIdleTimeoutChoice18:	db	"18 m",NULL
+g_szIdleTimeoutChoice17:	db	"17 m",NULL
+g_szIdleTimeoutChoice16:	db	"16 m",NULL
+g_szIdleTimeoutChoice15:	db	"15 m",NULL
+g_szIdleTimeoutChoice14:	db	"14 m",NULL
+g_szIdleTimeoutChoice13:	db	"13 m",NULL
+g_szIdleTimeoutChoice12:	db	"12 m",NULL
+g_szIdleTimeoutChoice11:	db	"11 m",NULL
+g_szIdleTimeoutChoice10:	db	"10 m",NULL
+g_szIdleTimeoutChoice9:		db	"9 m",NULL
+g_szIdleTimeoutChoice8:		db	"8 m",NULL
+g_szIdleTimeoutChoice7:		db	"7 m",NULL
+g_szIdleTimeoutChoice6:		db	"6 m",NULL
+g_szIdleTimeoutChoice5:		db	"5 m",NULL
+g_szIdleTimeoutChoice4:		db	"4 m",NULL
+g_szIdleTimeoutChoice3:		db	"3 m",NULL
+g_szIdleTimeoutChoice2:		db	"2 m",NULL
+g_szIdleTimeoutChoice1:		db	"1 m",NULL
 g_szIdleTimeoutChoice0:		db	"Disabled",NULL
-g_szIdleTimeoutChoice1:		db	"1 m",NULL
-g_szIdleTimeoutChoice2:		db	"2 m",NULL
-g_szIdleTimeoutChoice3:		db	"3 m",NULL
-g_szIdleTimeoutChoice4:		db	"4 m",NULL
-g_szIdleTimeoutChoice5:		db	"5 m",NULL
-g_szIdleTimeoutChoice6:		db	"6 m",NULL
-g_szIdleTimeoutChoice7:		db	"7 m",NULL
-g_szIdleTimeoutChoice8:		db	"8 m",NULL
-g_szIdleTimeoutChoice9:		db	"9 m",NULL
-g_szIdleTimeoutChoice10:	db	"10 m",NULL
-g_szIdleTimeoutChoice11:	db	"11 m",NULL
-g_szIdleTimeoutChoice12:	db	"12 m",NULL
-g_szIdleTimeoutChoice13:	db	"13 m",NULL
-g_szIdleTimeoutChoice14:	db	"14 m",NULL
-g_szIdleTimeoutChoice15:	db	"15 m",NULL
-g_szIdleTimeoutChoice16:	db	"16 m",NULL
-g_szIdleTimeoutChoice17:	db	"17 m",NULL
-g_szIdleTimeoutChoice18:	db	"18 m",NULL
-g_szIdleTimeoutChoice19:	db	"19 m",NULL
-g_szIdleTimeoutChoice20:	db	"20 m",NULL
-g_szIdleTimeoutChoice21:	db	"30 m",NULL
-g_szIdleTimeoutChoice22:	db	"1 h",NULL
-g_szIdleTimeoutChoice23:	db	"1 h 30 m",NULL
 
 ; Strings for IDE Controller menu
-g_szItemBackToCfgMenu:	db	"Back to Configuration Menu",NULL
-g_szItemIdeMaster:		db	"Master Drive",NULL
-g_szItemIdeSlave:		db	"Slave Drive",NULL
-g_szItemIdeDevice:		db	"Device type",NULL
-g_szItemIdeCmdPort:		db	"Base (cmd block) address",NULL
-g_szItemIdeCtrlPort:	db	"Control block address",NULL
-g_szItemIdeEnIRQ:		db	"Enable interrupt",NULL
-g_szItemIdeIRQ:			db	"IRQ",NULL
-g_szItemIdeXTCFwindow:	db	"XT-CF v2 Sector Window",NULL
-g_szItemSerialCOM:		db	"COM Port",NULL
-g_szItemSerialBaud:		db	"Baud Rate",NULL
-g_szItemSerialPort:		db	"COM Port I/O address",NULL
+g_szItemBackToCfgMenu:		db	"Back to Configuration Menu",NULL
+g_szItemIdeMaster:			db	"Master Drive",NULL
+g_szItemIdeSlave:			db	"Slave Drive",NULL
+g_szItemIdeDevice:			db	"Device type",NULL
+g_szItemIdeCmdPort:			db	"Base (cmd block) address",NULL
+g_szItemIdeCtrlPort:		db	"Control block address",NULL
+g_szItemIdeEnIRQ:			db	"Enable interrupt",NULL
+g_szItemIdeIRQ:				db	"IRQ",NULL
+g_szItemIdeXTCFwindow:		db	"XT-CF v2 Sector Window",NULL
+g_szItemSerialCOM:			db	"COM Port",NULL
+g_szItemSerialBaud:			db	"Baud Rate",NULL
+g_szItemSerialPort:			db	"COM Port I/O address",NULL
 g_szItemIdeSerialComPort:	db	"COM port",NULL
 g_szItemIdeSerialBaudRate:	db	"Baud rate",NULL
 
-g_szDlgDevice:			db	"Select controller type.",NULL
-g_szDlgIdeCmdPort:		db	"Enter IDE command block (base port) address.",NULL
-g_szDlgIdeCtrlPort:		db	"Enter IDE control block address (usually command block + 200h).",NULL
-g_szDlgIdeEnIRQ:		db	"Enable interrupt?",NULL
-g_szDlgIdeIRQ:			db	"Enter IRQ channel (2...7 for 8-bit controllers, 2...15 for any other controller).",NULL
-g_szDlgIdeXTCFwindow:	db	"XT-CF v2 Sector Window segment (A000h...E800h).",NULL
-
-g_szNfoIdeBackToCfgMenu:db	"Back to XTIDE Universal BIOS Configuration Menu.",NULL
-g_szNfoIdeMaster:		db	"Settings for Master Drive.",NULL
-g_szNfoIdeSlave:		db	"Settings for Slave Drive.",NULL
-g_szNfoIdeDevice:		db	"Select controller device type.",NULL
-g_szNfoIdeCmdPort:		db	"IDE Controller Command Block (base port) address or segment address for JR-IDE/ISA.",NULL
-g_szNfoIdeCtrlPort:		db	"IDE Controller Control Block address. Usually Cmd Block + 8 for XTIDE, and Cmd Block + 200h for ATA.",NULL
-g_szNfoIdeEnIRQ:		db	"Interrupt or polling mode.",NULL
-g_szNfoIdeIRQ:			db	"IRQ channel to use.",NULL
-g_szNfoIdeXTCFwindow:	db	"Segment Address for XT-CF v2 4 kiB Sector Access Window.",NULL
-g_szNfoIdeSerialCOM:	db	"Select a COM port by number.",NULL
-g_szNfoIdeSerialBaud:	db	"Select the COM port's Baud Rate. The server must match this speed."
-						db	" Note that UART clock multipliers may impact the actual speed.",NULL
-g_szNfoIdeSerialPort:	db	"Select a COM port by custom I/O port address. Any address is valid up to 3f8h, but must be on an 8-byte boundary.",NULL
-
-g_szHelpIdeCmdPort:		incbin	"IDE_CommandPort.txt"
-						db	NULL
-g_szHelpIdeCtrlPort:	incbin	"IDE_ControlPort.txt"
-						db	NULL
-g_szHelpIdeEnIRQ:		incbin	"IDE_EnableInterrupt.txt"
-						db	NULL
-g_szHelpIdeIRQ:			incbin	"IDE_IRQ.txt"
-						db	NULL
-g_szHelpIdeSerialCOM:	incbin  "IDE_SerialCOM.txt"
-						db	NULL
-g_szHelpIdeSerialPort:	incbin  "IDE_SerialPort.txt"
-						db  NULL
-g_szHelpIdeSerialBaud:	incbin  "IDE_SerialBaud.txt"
-						db  NULL
-
-g_szMultichoiceCfgDevice:
-						db	"16-bit ISA/VLB/PCI IDE",LF
-						db	"32-bit VLB/PCI IDE",LF
-						db	"16-bit ISA IDE in 8-bit mode",LF
-						db	"XTIDE rev 1",LF
-						db	"XTIDE rev 2 or modded rev 1",LF
-						db	"XT-CF v2/v3/Lite in PIO mode",LF
-						db	"XT-CF v2 in DMA mode",LF
-						db	"XT-CF v2 in memory mode",LF
-						db	"JR-IDE/ISA",LF
-						db	"Serial port virtual device",NULL
+g_szDlgDevice:				db	"Select controller type.",NULL
+g_szDlgIdeCmdPort:			db	"Enter IDE command block (base port) address.",NULL
+g_szDlgIdeCtrlPort:			db	"Enter IDE control block address (usually command block + 200h).",NULL
+g_szDlgIdeEnIRQ:			db	"Enable interrupt?",NULL
+g_szDlgIdeIRQ:				db	"Enter IRQ channel (2...7 for 8-bit controllers, 2...15 for any other controller).",NULL
+g_szDlgIdeXTCFwindow:		db	"XT-CF v2 Sector Window segment (A000h...E800h).",NULL
+
+g_szNfoIdeBackToCfgMenu:	db	"Back to XTIDE Universal BIOS Configuration Menu.",NULL
+g_szNfoIdeMaster:			db	"Settings for Master Drive.",NULL
+g_szNfoIdeSlave:			db	"Settings for Slave Drive.",NULL
+g_szNfoIdeDevice:			db	"Select controller device type.",NULL
+g_szNfoIdeCmdPort:			db	"IDE Controller Command Block (base port) address or segment address for JR-IDE/ISA.",NULL
+g_szNfoIdeCtrlPort:			db	"IDE Controller Control Block address. Usually Cmd Block + 8 for XTIDE, and Cmd Block + 200h for ATA.",NULL
+g_szNfoIdeEnIRQ:			db	"Interrupt or polling mode.",NULL
+g_szNfoIdeIRQ:				db	"IRQ channel to use.",NULL
+g_szNfoIdeXTCFwindow:		db	"Segment Address for XT-CF v2 4 kiB Sector Access Window.",NULL
+g_szNfoIdeSerialCOM:		db	"Select a COM port by number.",NULL
+g_szNfoIdeSerialBaud:		db	"Select the COM port's Baud Rate. The server must match this speed."
+							db	" Note that UART clock multipliers may impact the actual speed.",NULL
+g_szNfoIdeSerialPort:		db	"Select a COM port by custom I/O port address. Any address is valid up to 3F8h, but must be on an 8-byte boundary.",NULL
+
+g_szHelpIdeCmdPort:			db	"IDE controller command block address is the usual address mentioned for IDE controllers."
+							db	" By default the primary IDE controller uses port 1F0h and secondary controller uses port 170h."
+							db	" XTIDE card uses port 300h by default."
+							db	" JR-IDE/ISA do not use ports but you need to set ROM space segment address for JR-IDE/ISA.",NULL
+
+g_szHelpIdeCtrlPort:		db	"IDE controller Control Block address is normally Command Block address + 200h."
+							db	" For XTIDE card the Control Block registers are mapped right after Command Block"
+							db	" registers so use Command Block address + 8h for XTIDE card.",NULL
+
+g_szHelpIdeEnIRQ:			db	"IDE controller can use interrupts to signal when it is ready to transfer data."
+							db	" This makes possible to do other tasks while waiting drive to be ready."
+							db	" That is usually not useful in MS-DOS but using interrupts frees the bus for any DMA transfers."
+							db	" Polling mode is used when interrupts are disabled."
+							db	" Polling usually gives a little better access times since interrupt handling requires extra processing."
+							db	" There can be some compatibility issues with some old drives when polling is used with Block Mode transfers.",NULL
+
+g_szHelpIdeIRQ:				db	"IRQ channel to use. All controllers managed by XTIDE Universal BIOS can use the same IRQ when MS-DOS is used."
+							db	" Other operating systems are likely to require different interrupts for each controller.",NULL
+
+g_szHelpIdeSerialCOM:		db	"Select a serial port by COM port number. COM1 through COM4 have well established I/O port assignments,"
+							db	' COM5 and onward are less well established. "COMA" represents COM10, "COMB" represents COM11, and "COMC"'
+							db	' represents COM12. Selecting "COMx" enables the manual selection of an I/O port address.',NULL
+
+g_szHelpIdeSerialPort:		db	"Select a serial port by I/O address. Any port address is supported up to 3F8h, but must be on an 8-byte boundary."
+							db	" If the entered value corresponds to one of the established COM port numbers, then the selection will snap"
+							db	' to that COM port and "COMx" must be selected again for custom I/O address entry.',NULL
+
+g_szHelpIdeSerialBaud:		db	"Supported baud rates are 2400, 4800, 9600, 19.2K, 28.8K, 38.4K, 57.6K, and 115.2K. The server must also be set to"
+							db	" this same speed. Older UARTs may only support up to 9600 baud, but sometimes can be pushed to 38.4K. 115.2K will"
+							db	" likely only be possible with a newer UART that includes a FIFO. Some high speed serial ports include UART clock"
+							db	" multipliers, allowing for speeds at 230.4K (2x multiplier) and 460.8K (4x multiplier) above 115.2K. These high"
+							db	" speeds are supported by these BIOS, even on original 4.77MHz 8088 systems. Note that UART clock multipliers are"
+							db	" not detectable by the software and 115.2K will still be used during configuration for high speeds; but if"
+							db	" a multiplier is used, the actual speed (including the multiplier) will need to be used by the server.",NULL
+
+g_szMultichoiceCfgDevice:	db	"16-bit ISA/VLB/PCI IDE",LF
+							db	"32-bit VLB/PCI IDE",LF
+							db	"16-bit ISA IDE in 8-bit mode",LF
+							db	"XTIDE rev 1",LF
+							db	"XTIDE rev 2 or modded rev 1",LF
+							db	"XT-CF v2/v3/Lite in PIO mode",LF
+							db	"XT-CF v2 in DMA mode",LF
+							db	"XT-CF v2 in memory mode",LF
+							db	"JR-IDE/ISA",LF
+							db	"Serial port virtual device",NULL
 
 g_szValueCfgDevice16b:		db	"16-bit",NULL
@@ -267,12 +295,11 @@
 g_szValueCfgDeviceSerial:	db	"Serial",NULL
 
-g_szSerialCOMChoice:
-						db  "COM1 - address 3f8h",LF
-						db	"COM2 - address 2f8h",LF
-						db  "COM3 - address 3e8h",LF
-						db  "COM4 - address 2e8h",LF
-						db  "COM5 - address 2f0h",LF
-						db  "COM6 - address 3e0h",LF
-						db	"COM7 - address 2e0h",LF
+g_szSerialCOMChoice:	db  "COM1 - address 3F8h",LF
+						db	"COM2 - address 2F8h",LF
+						db  "COM3 - address 3E8h",LF
+						db  "COM4 - address 2E8h",LF
+						db  "COM5 - address 2F0h",LF
+						db  "COM6 - address 3E0h",LF
+						db	"COM7 - address 2E0h",LF
 						db	"COM8 - address 260h",LF
 						db	"COM9 - address 368h",LF
@@ -282,20 +309,19 @@
 						db  "COMx - Custom address",NULL
 
-g_szValueCfgCOM1:		db		"COM1",NULL
-g_szValueCfgCOM2:		db		"COM2",NULL
-g_szValueCfgCOM3:		db		"COM3",NULL
-g_szValueCfgCOM4:		db		"COM4",NULL
-g_szValueCfgCOM5:		db		"COM5",NULL
-g_szValueCfgCOM6:		db		"COM6",NULL
-g_szValueCfgCOM7:		db		"COM7",NULL
-g_szValueCfgCOM8:		db		"COM8",NULL
-g_szValueCfgCOM9:		db		"COM9",NULL
-g_szValueCfgCOMA:		db		"COMA",NULL
-g_szValueCfgCOMB:		db		"COMB",NULL
-g_szValueCfgCOMC:		db		"COMC",NULL
-g_szValueCfgCOMx:		db		"Custom",NULL
-
-g_szSerialBaudChoice:
-						db  "115.2K baud",LF
+g_szValueCfgCOM1:		db	"COM1",NULL
+g_szValueCfgCOM2:		db	"COM2",NULL
+g_szValueCfgCOM3:		db	"COM3",NULL
+g_szValueCfgCOM4:		db	"COM4",NULL
+g_szValueCfgCOM5:		db	"COM5",NULL
+g_szValueCfgCOM6:		db	"COM6",NULL
+g_szValueCfgCOM7:		db	"COM7",NULL
+g_szValueCfgCOM8:		db	"COM8",NULL
+g_szValueCfgCOM9:		db	"COM9",NULL
+g_szValueCfgCOMA:		db	"COMA",NULL
+g_szValueCfgCOMB:		db	"COMB",NULL
+g_szValueCfgCOMC:		db	"COMC",NULL
+g_szValueCfgCOMx:		db	"Custom",NULL
+
+g_szSerialBaudChoice:	db  "115.2K baud",LF
 						db  "57.6K baud",LF
 						db	"38.4K baud",LF
@@ -306,13 +332,12 @@
 						db  "2400 baud",NULL
 
-g_szValueCfgBaud115_2:	db		"115.2K",NULL
-g_szValueCfgBaud57_6:	db		"57.6K",NULL
-g_szValueCfgBaud38_4:	db		"38.4K",NULL
-g_szValueCfgBaud28_8:	db		"28.8K",NULL
-g_szValueCfgBaud19_2:	db		"19.2K",NULL
-g_szValueCfgBaud9600:	db		"9600",NULL
-g_szValueCfgBaud4800:	db		"4800",NULL
-g_szValueCfgBaud2400:	db		"2400",NULL
-
+g_szValueCfgBaud115_2:	db	"115.2K",NULL
+g_szValueCfgBaud57_6:	db	"57.6K",NULL
+g_szValueCfgBaud38_4:	db	"38.4K",NULL
+g_szValueCfgBaud28_8:	db	"28.8K",NULL
+g_szValueCfgBaud19_2:	db	"19.2K",NULL
+g_szValueCfgBaud9600:	db	"9600",NULL
+g_szValueCfgBaud4800:	db	"4800",NULL
+g_szValueCfgBaud2400:	db	"2400",NULL
 
 
@@ -349,12 +374,23 @@
 g_szNfoDrvLbaSectors:	db	"Millions of sectors (1024*1024). 1M sectors = 512 MiB.",NULL
 
-g_szHelpDrvBlockMode:	incbin	"Drive_BlockMode.txt"
-						db	NULL
-g_szHelpDrvWriteCache:	incbin	"Drive_WriteCache.txt"
-						db	NULL
-g_szHelpDrvUserCHS:		incbin	"Drive_UserCHS.txt"
-						db	NULL
-g_szHelpDrvUserLBA:		incbin	"Drive_UserLBA.txt"
-						db	NULL
+g_szHelpDrvBlockMode:	db	"Block Mode will speed up transfers since multiple sectors can be transferred before waiting next data request."
+						db	" Normally Block Mode should always be kept enabled but there is at"
+						db	" least one drive with buggy Block Mode implementation.",NULL
+
+g_szHelpDrvWriteCache:	db	"Modern Hard Drives have large internal write cache."
+						db	" The cache will speed up writes since the drive can free the bus right after data has been written in cache."
+						db	" The drive then starts to write the data from cache by itself."
+						db	" That can be dangerous since all unwritten data in cache is lost if power is turned off or the system is reset."
+						db	" Modern operating systems will flush the cache when user shuts down the system."
+						db	" DOS does not have that sort of protection so it is up to the user to make sure cache is flushed."
+						db	" WARNING!!! Write cache should be left disabled.",NULL
+
+g_szHelpDrvUserCHS:		db	"Specify (P-)CHS parameters manually instead of autodetecting them."
+						db	" This can be used to limit drive size for old operating systems that do not support large hard disks."
+						db	" Some early IDE drives have buggy autodetection so they require CHS to be specified manually."
+						db	" Limiting Cylinders will work for all drives but drives may not accept all values for Heads and Sectors per Track.",NULL
+
+g_szHelpDrvUserLBA:		db	"Limit drive size to X million sectors for EBIOS functions. This option is useful to"
+						db	" prevent large drive compatibility problems with MS-DOS 7.x (Windows 95 and 98).",NULL
 
 g_szMultichoiseXlateMode:
@@ -397,27 +433,26 @@
 						db	" This can also be invoked by holding down ALT at the end of normal drive detection.",NULL
 
-g_szHelpBootTimeout:	incbin	"Bootmenu_Timeout.txt"
-						db	NULL
-g_szHelpBootDrive:		incbin	"Bootmenu_DefaultDrive.txt"
-						db	NULL
-g_szHelpBootFloppyDrvs:	incbin	"Bootmenu_FloppyDrives.txt"
-						db	NULL
-g_szHelpSerialDetect:	incbin  "Bootmenu_SerialDetect.txt"
-						db  NULL
-
-g_szMultichoiceBootDispMode:
-						db	"Default",LF
-						db	"40x25 Black & White",LF
-						db	"40x25 Color",LF
-						db	"80x25 Black & White",LF
-						db	"80x25 Color",LF
-						db	"80x25 Monochrome",NULL
-
-g_szMultichoiceBootFloppyDrvs:
-						db	"Autodetect",LF
-						db	"1",LF
-						db	"2",LF
-						db	"3",LF
-						db	"4",NULL
+g_szHelpBootTimeout:	db	"Boot Menu selection timeout in BIOS timer ticks (1 second = 18.2 ticks)."
+						db	" When timer goes to zero, currently selected drive will be booted automatically."
+						db	" Timeout can be disabled by setting this to 0.",NULL
+
+g_szHelpBootDrive:		db	"Drive to be set selected by default when Boot Menu is displayed.",NULL
+
+g_szHelpBootFloppyDrvs:	db	"Detecting the correct number of floppy drives might fail when using a floppy controller with its own BIOS."
+						db	" A minimum number of floppy drives can be specified to force non-detected drives to appear on boot menu.",NULL
+
+g_szHelpSerialDetect:	db	"Set to Yes, at the end of normal drive detection, COM ports 1-7 (in reverse order) will be scanned for a connection"
+						db	" to a serial drive server. This option provides flexibility with the COM port and baud rate to be used,"
+						db	" it need not be configured ahead of time, but at the expense of a slower boot process."
+						db	" Even when this option is set to No, this functionality can still be invoked by holding down the ALT key at the end"
+						db	" of normal drive detection. Note that if any serial drives are detected during the normal drive detection,"
+						db	" no scan will take place (to avoid finding the same drive twice).",NULL
+
+g_szMultichoiceBootDispMode:	db	"Default",LF
+								db	"40x25 Black & White",LF
+								db	"40x25 Color",LF
+								db	"80x25 Black & White",LF
+								db	"80x25 Color",LF
+								db	"80x25 Monochrome",NULL
 
 g_szValueBootDispModeDefault:	db	"Default",NULL
@@ -428,9 +463,13 @@
 g_szValueBootDispModeMono:		db	"Mono",NULL
 
+g_szMultichoiceBootFloppyDrvs:	db	"Autodetect",LF
+								db	"1",LF
+								db	"2",LF
+								db	"3",LF
+g_szValueBootFloppyDrvs4:		db	"4",NULL
+g_szValueBootFloppyDrvs3:		db	"3",NULL
+g_szValueBootFloppyDrvs2:		db	"2",NULL
+g_szValueBootFloppyDrvs1:		db	"1",NULL
 g_szValueBootFloppyDrvsAuto:	db	"Auto",NULL
-g_szValueBootFloppyDrvs1:		db	"1",NULL
-g_szValueBootFloppyDrvs2:		db	"2",NULL
-g_szValueBootFloppyDrvs3:		db	"3",NULL
-g_szValueBootFloppyDrvs4:		db	"4",NULL
 
 
@@ -456,10 +495,16 @@
 g_szNfoFlashChecksum:	db	"Generate checksum byte to the end of BIOS image.",NULL
 
-g_szHelpFlashSDP:		incbin	"Flash_SdpCommand.txt"
-						db	NULL
-g_szHelpFlashPageSize:	incbin	"Flash_PageSize.txt"
-						db	NULL
-g_szHelpFlashChecksum:	incbin	"Flash_Checksum.txt"
-						db	NULL
+g_szHelpFlashSDP:		db	"Software Data Protection Command:",LF
+						db	"None    = Do not use Software Data Protection. Meant for EEPROMs that do not support SDP.",LF,LF
+						db	"Enable  = Write protects the EEPROM after flashing."
+						db	" Software Data Protection should always be enabled if EEPROM supports it.",LF,LF
+						db	"Disable = Disables Software Data Protection after flashing.",NULL
+
+g_szHelpFlashPageSize:	db	"Larger page size will improve write performance but not all EEPROMs support large pages or page writing at all."
+						db	" Byte writing mode will be used when page size is set to 1. Byte writing mode is supported by all EEPROMs."
+						db	" Large pages cannot be flashed with slow CPUs.",NULL
+
+g_szHelpFlashChecksum:	db	"PC BIOSes require a checksum byte at the end of expansion card BIOS ROMs."
+						db	" You might not want to generate checksum byte when flashing some other images than XTIDE Universal BIOS.",NULL
 
 g_szMultichoiceEepromType:
@@ -479,6 +524,6 @@
 						db	"Enable",LF
 g_szValueFlashDisable:	db	"Disable",NULL
+g_szValueFlashEnable:	db	"Enable",NULL
 g_szValueFlashNone:		db	"None",NULL
-g_szValueFlashEnable:	db	"Enable",NULL
 
 g_szMultichoicePageSize:
@@ -490,15 +535,13 @@
 						db	"32 bytes",LF
 g_szValueFlash64bytes:	db	"64 bytes",NULL
+g_szValueFlash32bytes:	db	"32 bytes",NULL
+g_szValueFlash16bytes:	db	"16 bytes",NULL
+g_szValueFlash8bytes:	db	"8 bytes",NULL
+g_szValueFlash4bytes:	db	"4 bytes",NULL
+g_szValueFlash2bytes:	db	"2 bytes",NULL
 g_szValueFlash1byte:	db	"1 byte",NULL
-g_szValueFlash2bytes:	db	"2 bytes",NULL
-g_szValueFlash4bytes:	db	"4 bytes",NULL
-g_szValueFlash8bytes:	db	"8 bytes",NULL
-g_szValueFlash16bytes:	db	"16 bytes",NULL
-g_szValueFlash32bytes:	db	"32 bytes",NULL
 
 g_szSelectionTimeout:	db	DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2u s",NULL
-
 g_szDashForZero:		db	"- ",NULL
-
 g_szValueUnknownError:	db	"Error!",NULL
 
