Index: trunk/Assembly_Library/Src/Serial/SerialServer.asm
===================================================================
--- trunk/Assembly_Library/Src/Serial/SerialServer.asm	(revision 291)
+++ trunk/Assembly_Library/Src/Serial/SerialServer.asm	(revision 292)
@@ -37,4 +37,5 @@
 		mov		al,[bp+SerialServer_Command.bSectorCount]
 		mov		ah,[bp+SerialServer_Command.bCommand]
+		
 ;
 ; Command byte and sector count live at the top of the stack, pop/push are used to access
@@ -116,7 +117,9 @@
 		push	ax
 
+%ifndef SERIALSERVER_NO_ZERO_SECTOR_COUNTS
 		test	al,al			; if no sectors to be transferred, wait for the ACK checksum on the command
 		jz		.zeroSectors
-
+%endif
+		
 ;
 ; Top of the read/write loop, one iteration per sector
Index: trunk/XTIDE_Universal_BIOS/Src/Device/Serial/SerialCommand.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Device/Serial/SerialCommand.asm	(revision 291)
+++ trunk/XTIDE_Universal_BIOS/Src/Device/Serial/SerialCommand.asm	(revision 292)
@@ -4,4 +4,7 @@
 ; Section containing code
 SECTION .text
+
+%define SERIALSERVER_AH_ALREADY_HAS_COMMAND_BYTE
+%define SERIALSERVER_NO_ZERO_SECTOR_COUNTS		
 
 ;--------------------------------------------------------------------
@@ -43,9 +46,20 @@
 .readOrWrite:
 		mov		[bp+IDEPACK.bFeatures],ah		; store protocol command
-
+				
 		mov		dx, [di+DPT_SERIAL.wSerialPortAndBaud]
 
-		jmp		SerialServer_SendReceive
+ALIGN JUMP_ALIGN
+SerialCommand_FallThroughToSerialServer_SendReceive:
 
+%include "SerialServer.asm"
+
+%if SerialCommand_FallThroughToSerialServer_SendReceive <> SerialServer_SendReceive
+%error "SerialServer_SendReceive must be the first routine at the top of SerialServer.asm in the Assembly_Library"
+%endif
+
+ALIGN JUMP_ALIGN		
+SerialCommand_ReturnError:		
+		stc
+		ret		
 
 ;--------------------------------------------------------------------
@@ -133,5 +147,5 @@
 
 		test	ax,ax			; Take care of the case that is different between master and slave.
-		jz		.error			
+		jz		SerialCommand_ReturnError
 
 ; fall-through
@@ -142,8 +156,14 @@
 		xchg	dx, ax			;  move ax to dx (move previously found serial drive to dx, could be zero)
 
-.identifyDeviceInDX:	
-		jmp		SerialServerScan_ScanForServer
+.identifyDeviceInDX:
 
-.error:
-		stc
-		ret
+ALIGN JUMP_ALIGN
+SerialCommand_FallThroughToSerialServerScan_ScanForServer:		
+		
+%include "SerialServerScan.asm"
+
+%if SerialCommand_FallThroughToSerialServerScan_ScanForServer <> SerialServerScan_ScanForServer
+%error "SerialServerScan_ScanForServer must be the first routine at the top of SerialServerScan.asm in the Assembly_Library"
+%endif				
+
+
Index: trunk/XTIDE_Universal_BIOS/Src/Main.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Main.asm	(revision 291)
+++ trunk/XTIDE_Universal_BIOS/Src/Main.asm	(revision 292)
@@ -17,8 +17,4 @@
 %define MENUEVENT_INLINE_OFFSETS    ; Only one menu required, save space and inline offsets
 
-%ifdef MODULE_SERIAL
-%define INCLUDE_SERIALSERVER_LIBRARY
-%endif
-		
 	; Included .inc files
 	%include "AssemblyLibrary.inc"	; Assembly Library. Must be included first!
Index: trunk/XTIDE_Universal_BIOS/Src/Strings.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/Strings.asm	(revision 291)
+++ trunk/XTIDE_Universal_BIOS/Src/Strings.asm	(revision 292)
@@ -8,77 +8,4 @@
 ; Section containing code
 SECTION .text
-
-; POST drive detection strings
-g_szRomAt:		db	"%s @ %x",LF,CR,NULL
-
-; Boot loader strings
-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
-
-g_szAddressingModes:
-g_szLCHS:		db	"L-CHS",NULL
-g_szPCHS:		db	"P-CHS",NULL
-g_szLBA28:		db	"LBA28",NULL
-g_szLBA48:		db	"LBA48",NULL
-g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes)
-;
-; Ensure that addressing modes are correctly spaced in memory
-;
-%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
-	%if g_szLCHS <> g_szAddressingModes
-		%error "g_szAddressingModes Displacement Incorrect 1"
-	%endif
-	%if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement
-		%error "g_szAddressingModes Displacement Incorrect 2"
-	%endif
-	%if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement
-		%error "g_szAddressingModes Displacement Incorrect 3"
-	%endif
-	%if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement
-		%error "g_szAddressingModes Displacement Incorrect 4"
-	%endif
-%endif
-
-g_szBusTypeValues:
-g_szBusTypeValues_8Dual:		db		"D8 ",NULL
-g_szBusTypeValues_8Reversed:	db		"X8 ",NULL
-g_szBusTypeValues_8Single:		db		"S8 ",NULL
-g_szBusTypeValues_16:			db		" 16",NULL
-g_szBusTypeValues_32:			db		" 32",NULL
-g_szBusTypeValues_Serial:		db		"SER",NULL
-g_szBusTypeValues_8MemMapped:	db		"M8 ",NULL
-g_szBusTypeValues_Displacement equ (g_szBusTypeValues_8Reversed - g_szBusTypeValues)
-;
-; Ensure that bus type strings are correctly spaced in memory
-;
-%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
-	%if g_szBusTypeValues_8Dual <> g_szBusTypeValues
-		%error "g_szBusTypeValues Displacement Incorrect 1"
-	%endif
-	%if g_szBusTypeValues_8Reversed <> g_szBusTypeValues + g_szBusTypeValues_Displacement
-		%error "g_szBusTypeValues Displacement Incorrect 2"
-	%endif
-	%if g_szBusTypeValues_8Single <> g_szBusTypeValues_8Reversed + g_szBusTypeValues_Displacement
-		%error "g_szBusTypeValues Displacement Incorrect 3"
-	%endif
-	%if g_szBusTypeValues_16 <> g_szBusTypeValues_8Single + g_szBusTypeValues_Displacement
-		%error "g_szBusTypeValues Displacement Incorrect 4"
-	%endif
-	%if g_szBusTypeValues_32 <> g_szBusTypeValues_16 + g_szBusTypeValues_Displacement
-		%error "g_szBusTypeValues Displacement Incorrect 5"
-	%endif
-	%if g_szBusTypeValues_Serial <> g_szBusTypeValues_32 + g_szBusTypeValues_Displacement
-		%error "g_szBusTypeValues Displacement Incorrect 6"
-	%endif
-	%if g_szBusTypeValues_8MemMapped <> g_szBusTypeValues_Serial + g_szBusTypeValues_Displacement
-		%error "g_szBusTypeValues Displacement Incorrect 7"
-	%endif
-%endif
-
-g_szSelectionTimeout:	db		DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2-u s",NULL
-
-g_szDashForZero:		db		"- ",NULL
 
 ; Boot Menu Floppy Disk strings
@@ -144,4 +71,77 @@
 	%endif
 %endif
+
+; POST drive detection strings
+g_szRomAt:		db	"%s @ %x",LF,CR,NULL
+
+; Boot loader strings
+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
+
+g_szAddressingModes:
+g_szLCHS:		db	"L-CHS",NULL
+g_szPCHS:		db	"P-CHS",NULL
+g_szLBA28:		db	"LBA28",NULL
+g_szLBA48:		db	"LBA48",NULL
+g_szAddressingModes_Displacement equ (g_szPCHS - g_szAddressingModes)
+;
+; Ensure that addressing modes are correctly spaced in memory
+;
+%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
+	%if g_szLCHS <> g_szAddressingModes
+		%error "g_szAddressingModes Displacement Incorrect 1"
+	%endif
+	%if g_szPCHS <> g_szLCHS + g_szAddressingModes_Displacement
+		%error "g_szAddressingModes Displacement Incorrect 2"
+	%endif
+	%if g_szLBA28 <> g_szPCHS + g_szAddressingModes_Displacement
+		%error "g_szAddressingModes Displacement Incorrect 3"
+	%endif
+	%if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement
+		%error "g_szAddressingModes Displacement Incorrect 4"
+	%endif
+%endif
+
+g_szBusTypeValues:
+g_szBusTypeValues_8Dual:		db		"D8 ",NULL
+g_szBusTypeValues_8Reversed:	db		"X8 ",NULL
+g_szBusTypeValues_8Single:		db		"S8 ",NULL
+g_szBusTypeValues_16:			db		" 16",NULL
+g_szBusTypeValues_32:			db		" 32",NULL
+g_szBusTypeValues_Serial:		db		"SER",NULL
+g_szBusTypeValues_8MemMapped:	db		"M8 ",NULL
+g_szBusTypeValues_Displacement equ (g_szBusTypeValues_8Reversed - g_szBusTypeValues)
+;
+; Ensure that bus type strings are correctly spaced in memory
+;
+%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
+	%if g_szBusTypeValues_8Dual <> g_szBusTypeValues
+		%error "g_szBusTypeValues Displacement Incorrect 1"
+	%endif
+	%if g_szBusTypeValues_8Reversed <> g_szBusTypeValues + g_szBusTypeValues_Displacement
+		%error "g_szBusTypeValues Displacement Incorrect 2"
+	%endif
+	%if g_szBusTypeValues_8Single <> g_szBusTypeValues_8Reversed + g_szBusTypeValues_Displacement
+		%error "g_szBusTypeValues Displacement Incorrect 3"
+	%endif
+	%if g_szBusTypeValues_16 <> g_szBusTypeValues_8Single + g_szBusTypeValues_Displacement
+		%error "g_szBusTypeValues Displacement Incorrect 4"
+	%endif
+	%if g_szBusTypeValues_32 <> g_szBusTypeValues_16 + g_szBusTypeValues_Displacement
+		%error "g_szBusTypeValues Displacement Incorrect 5"
+	%endif
+	%if g_szBusTypeValues_Serial <> g_szBusTypeValues_32 + g_szBusTypeValues_Displacement
+		%error "g_szBusTypeValues Displacement Incorrect 6"
+	%endif
+	%if g_szBusTypeValues_8MemMapped <> g_szBusTypeValues_Serial + g_szBusTypeValues_Displacement
+		%error "g_szBusTypeValues Displacement Incorrect 7"
+	%endif
+%endif
+
+g_szSelectionTimeout:	db		DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2-u s",NULL
+
+g_szDashForZero:		db		"- ",NULL
 
 ; Boot menu bottom of screen strings
Index: trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm
===================================================================
--- trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm	(revision 291)
+++ trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm	(revision 292)
@@ -17,4 +17,121 @@
 SECTION .text
 
+; Boot Menu Floppy Disk strings
+;
+; The following strings are used by BootMenuPrint_RefreshInformation
+; To support optimizations in that code, these strings must start on the same 256 byte page,
+; which is checked at assembly time below.
+;
+g_szFddStart:
+g_szFddUnknown:	; db	"Unknown",NULL
+               	; db	 55h,  6eh,  6bh,  6eh,  6fh,  77h,  6eh,  00h    ; uncompressed
+               	  db	 5bh,  74h,  71h,  74h,  75h,  7dh, 0b4h          ; compressed
+
+g_szFddSizeOr:	; db	"5",ONE_QUARTER,QUOTATION_MARK," or 3",ONE_HALF,QUOTATION_MARK," DD",NULL
+              	; db	 35h, 0ach,  22h,  20h,  6fh,  72h,  20h,  33h, 0abh,  22h,  20h,  44h,  44h,  00h    ; uncompressed
+              	  db	 2fh,  21h,  26h,  20h,  75h, 0f8h,  2dh,  22h,  26h,  20h,  4ah,  8ah                ; compressed
+
+g_szFddSize:	; db	"%s",QUOTATION_MARK,", %u kiB",NULL	; 3½", 1440 kiB
+            	; db	 25h,  73h,  22h,  2ch,  20h,  25h,  75h,  20h,  6bh,  69h,  42h,  00h    ; uncompressed
+            	  db	 3eh,  26h,  27h,  20h,  37h,  20h,  71h,  6fh,  88h                      ; compressed
+
+g_szFddThreeHalf:		; db  "3",ONE_HALF,NULL
+                 		; db   33h, 0abh,  00h    ; uncompressed
+                 		  db   2dh,  02h          ; compressed
+
+g_szFddEnd:
+g_szFddFiveQuarter:		; db  "5",ONE_QUARTER,NULL
+                   		; db   35h, 0ach,  00h    ; uncompressed
+                   		  db   2fh,  01h          ; compressed
+
+
+%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
+%if ((g_szFddStart-$$) & 0xff00) <> ((g_szFddEnd-$$) & 0xff00)
+%error "g_szFdd* strings must start on the same 256 byte page, required by the BootMenuPrint_RefreshInformation routines for floppy drives.  Please move this block up or down within strings.asm"
+%endif
+%endif
+
+; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP
+; To support an optimization in that code, these strings must start on the same 256 byte page,
+; which is checked at assembly time below.
+;
+g_szDetectStart:
+g_szDetectMaster:		; db	"Master",NULL
+                 		; db	 4dh,  61h,  73h,  74h,  65h,  72h,  00h    ; uncompressed
+                 		  db	 53h,  67h,  79h,  7ah,  6bh, 0b8h          ; compressed
+
+g_szDetectSlave:		; db	"Slave ",NULL
+                		; db	 53h,  6ch,  61h,  76h,  65h,  20h,  00h    ; uncompressed
+                		  db	 59h,  72h,  67h,  7ch,  6bh,  00h          ; compressed
+
+g_szDetectOuter:		; db	"IDE %s at %s: ",NULL
+                		; db	 49h,  44h,  45h,  20h,  25h,  73h,  20h,  61h,  74h,  20h,  25h,  73h,  3ah,  20h,  00h    ; uncompressed
+                		  db	 4fh,  4ah, 0cbh,  3eh,  20h,  67h, 0fah,  3eh,  40h,  00h                                  ; compressed
+
+%ifdef MODULE_SERIAL		;%%; is stripped off after string compression, %ifdef won't compress properly
+g_szDetectOuterSerial:	; db	"Serial %s on %s: ",NULL
+                      	; db	 53h,  65h,  72h,  69h,  61h,  6ch,  20h,  25h,  73h,  20h,  6fh,  6eh,  20h,  25h,  73h,  3ah,  20h,  00h    ; uncompressed
+                      	  db	 59h,  6bh,  78h,  6fh,  67h, 0f2h,  3eh,  20h,  75h, 0f4h,  3eh,  40h,  00h                                  ; compressed
+
+g_szDetectCOM:			; db  "COM%c%s",NULL
+              			; db   43h,  4fh,  4dh,  25h,  63h,  25h,  73h,  00h    ; uncompressed
+              			  db   49h,  55h,  53h,  35h,  1eh                      ; compressed
+
+g_szDetectCOMAuto:		; db	" Detect",NULL
+                  		; db	 20h,  44h,  65h,  74h,  65h,  63h,  74h,  00h    ; uncompressed
+                  		  db	 20h,  4ah,  6bh,  7ah,  6bh,  69h, 0bah          ; compressed
+
+g_szDetectCOMSmall:		; db	"/%u%u00",NULL					; IDE Master at COM1/9600:
+                   		; db	 2fh,  25h,  75h,  25h,  75h,  30h,  30h,  00h    ; uncompressed
+                   		  db	 2ah,  37h,  37h,  34h,  14h                      ; compressed
+
+g_szDetectCOMLarge:		; db	"/%u.%uK",NULL					; IDE Master at COM1/19.2K:
+                   		; db	 2fh,  25h,  75h,  2eh,  25h,  75h,  4bh,  00h    ; uncompressed
+                   		  db	 2ah,  37h,  29h,  37h,  91h                      ; compressed
+
+%endif						;%%; is stripped off after string compression, %ifdef won't compress properly
+g_szDetectEnd:
+g_szDetectPort:			; db	"%x",NULL					   	; IDE Master at 1F0h:
+               			; db	 25h,  78h,  00h    ; uncompressed
+               			  db	 19h                ; compressed
+
+
+%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
+%if ((g_szDetectEnd-$$) & 0xff00) <> ((g_szDetectStart-$$) & 0xff00)
+%error "g_szDetect* strings must start on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP.  Please move this block up or down within strings.asm"
+%endif
+%endif
+
+; Boot Menu menuitem strings
+;
+; The following strings are used by BootMenuPrint_* routines.
+; To support optimizations in that code, these strings must start on the same 256 byte page,
+; which is checked at assembly time below.
+;
+g_szBootMenuPrintStart:
+g_szDriveNum:			; db	"%x %s",NULL
+             			; db	 25h,  78h,  20h,  25h,  73h,  00h    ; uncompressed
+             			  db	 39h,  20h,  1eh                      ; compressed
+
+g_szDriveNumBOOTNFO:	; db	"%x %z",NULL
+                    	; db	 25h,  78h,  20h,  25h,  7ah,  00h    ; uncompressed
+                    	  db	 39h,  20h,  1fh                      ; compressed
+
+g_szFloppyDrv:			; db	"Floppy Drive %c",NULL
+              			; db	 46h,  6ch,  6fh,  70h,  70h,  79h,  20h,  44h,  72h,  69h,  76h,  65h,  20h,  25h,  63h,  00h    ; uncompressed
+              			  db	 4ch,  72h,  75h,  76h,  76h, 0ffh,  4ah,  78h,  6fh,  7ch, 0ebh,  15h                            ; compressed
+
+g_szBootMenuPrintEnd:
+g_szForeignHD:			; db	"Foreign Hard Disk",NULL
+              			; db	 46h,  6fh,  72h,  65h,  69h,  67h,  6eh,  20h,  48h,  61h,  72h,  64h,  20h,  44h,  69h,  73h,  6bh,  00h    ; uncompressed
+              			  db	 4ch,  75h,  78h,  6bh,  6fh,  6dh, 0f4h,  4eh,  67h,  78h, 0eah,  4ah,  6fh,  79h, 0b1h                      ; compressed
+
+
+%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
+%if ((g_szBootMenuPrintStart-$$) & 0xff00) <> ((g_szBootMenuPrintEnd-$$) & 0xff00)
+%error "g_szBootMenuPrint* strings must start on the same 256 byte page, required by the BootMenuPrint_* routines.  Please move this block up or down within strings.asm"
+%endif
+%endif
+
 ; POST drive detection strings
 g_szRomAt:		; db	"%s @ %x",LF,CR,NULL
@@ -143,121 +260,4 @@
                 		  db		 28h,  00h          ; compressed
 
-
-; Boot Menu Floppy Disk strings
-;
-; The following strings are used by BootMenuPrint_RefreshInformation
-; To support optimizations in that code, these strings must start on the same 256 byte page,
-; which is checked at assembly time below.
-;
-g_szFddStart:
-g_szFddUnknown:	; db	"Unknown",NULL
-               	; db	 55h,  6eh,  6bh,  6eh,  6fh,  77h,  6eh,  00h    ; uncompressed
-               	  db	 5bh,  74h,  71h,  74h,  75h,  7dh, 0b4h          ; compressed
-
-g_szFddSizeOr:	; db	"5",ONE_QUARTER,QUOTATION_MARK," or 3",ONE_HALF,QUOTATION_MARK," DD",NULL
-              	; db	 35h, 0ach,  22h,  20h,  6fh,  72h,  20h,  33h, 0abh,  22h,  20h,  44h,  44h,  00h    ; uncompressed
-              	  db	 2fh,  21h,  26h,  20h,  75h, 0f8h,  2dh,  22h,  26h,  20h,  4ah,  8ah                ; compressed
-
-g_szFddSize:	; db	"%s",QUOTATION_MARK,", %u kiB",NULL	; 3½", 1440 kiB
-            	; db	 25h,  73h,  22h,  2ch,  20h,  25h,  75h,  20h,  6bh,  69h,  42h,  00h    ; uncompressed
-            	  db	 3eh,  26h,  27h,  20h,  37h,  20h,  71h,  6fh,  88h                      ; compressed
-
-g_szFddThreeHalf:		; db  "3",ONE_HALF,NULL
-                 		; db   33h, 0abh,  00h    ; uncompressed
-                 		  db   2dh,  02h          ; compressed
-
-g_szFddEnd:
-g_szFddFiveQuarter:		; db  "5",ONE_QUARTER,NULL
-                   		; db   35h, 0ach,  00h    ; uncompressed
-                   		  db   2fh,  01h          ; compressed
-
-
-%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
-%if ((g_szFddStart-$$) & 0xff00) <> ((g_szFddEnd-$$) & 0xff00)
-%error "g_szFdd* strings must start on the same 256 byte page, required by the BootMenuPrint_RefreshInformation routines for floppy drives.  Please move this block up or down within strings.asm"
-%endif
-%endif
-
-; The following strings are used by DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP
-; To support an optimization in that code, these strings must start on the same 256 byte page,
-; which is checked at assembly time below.
-;
-g_szDetectStart:
-g_szDetectMaster:		; db	"Master",NULL
-                 		; db	 4dh,  61h,  73h,  74h,  65h,  72h,  00h    ; uncompressed
-                 		  db	 53h,  67h,  79h,  7ah,  6bh, 0b8h          ; compressed
-
-g_szDetectSlave:		; db	"Slave ",NULL
-                		; db	 53h,  6ch,  61h,  76h,  65h,  20h,  00h    ; uncompressed
-                		  db	 59h,  72h,  67h,  7ch,  6bh,  00h          ; compressed
-
-g_szDetectOuter:		; db	"IDE %s at %s: ",NULL
-                		; db	 49h,  44h,  45h,  20h,  25h,  73h,  20h,  61h,  74h,  20h,  25h,  73h,  3ah,  20h,  00h    ; uncompressed
-                		  db	 4fh,  4ah, 0cbh,  3eh,  20h,  67h, 0fah,  3eh,  40h,  00h                                  ; compressed
-
-;%%; %ifdef MODULE_SERIAL		;%%; is stripped off after string compression, %ifdef won't compress properly
-g_szDetectOuterSerial:	; db	"Serial %s on %s: ",NULL
-                      	; db	 53h,  65h,  72h,  69h,  61h,  6ch,  20h,  25h,  73h,  20h,  6fh,  6eh,  20h,  25h,  73h,  3ah,  20h,  00h    ; uncompressed
-                      	  db	 59h,  6bh,  78h,  6fh,  67h, 0f2h,  3eh,  20h,  75h, 0f4h,  3eh,  40h,  00h                                  ; compressed
-
-g_szDetectCOM:			; db  "COM%c%s",NULL
-              			; db   43h,  4fh,  4dh,  25h,  63h,  25h,  73h,  00h    ; uncompressed
-              			  db   49h,  55h,  53h,  35h,  1eh                      ; compressed
-
-g_szDetectCOMAuto:		; db	" Detect",NULL
-                  		; db	 20h,  44h,  65h,  74h,  65h,  63h,  74h,  00h    ; uncompressed
-                  		  db	 20h,  4ah,  6bh,  7ah,  6bh,  69h, 0bah          ; compressed
-
-g_szDetectCOMSmall:		; db	"/%u%u00",NULL					; IDE Master at COM1/9600:
-                   		; db	 2fh,  25h,  75h,  25h,  75h,  30h,  30h,  00h    ; uncompressed
-                   		  db	 2ah,  37h,  37h,  34h,  14h                      ; compressed
-
-g_szDetectCOMLarge:		; db	"/%u.%uK",NULL					; IDE Master at COM1/19.2K:
-                   		; db	 2fh,  25h,  75h,  2eh,  25h,  75h,  4bh,  00h    ; uncompressed
-                   		  db	 2ah,  37h,  29h,  37h,  91h                      ; compressed
-
-;%%; %endif						;%%; is stripped off after string compression, %ifdef won't compress properly
-g_szDetectEnd:
-g_szDetectPort:			; db	"%x",NULL					   	; IDE Master at 1F0h:
-               			; db	 25h,  78h,  00h    ; uncompressed
-               			  db	 19h                ; compressed
-
-
-%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
-%if ((g_szDetectEnd-$$) & 0xff00) <> ((g_szDetectStart-$$) & 0xff00)
-%error "g_szDetect* strings must start on the same 256 byte page, required by DetectPrint_StartDetectWithMasterOrSlaveStringInAXandIdeVarsInCSBP.  Please move this block up or down within strings.asm"
-%endif
-%endif
-
-; Boot Menu menuitem strings
-;
-; The following strings are used by BootMenuPrint_* routines.
-; To support optimizations in that code, these strings must start on the same 256 byte page,
-; which is checked at assembly time below.
-;
-g_szBootMenuPrintStart:
-g_szDriveNum:			; db	"%x %s",NULL
-             			; db	 25h,  78h,  20h,  25h,  73h,  00h    ; uncompressed
-             			  db	 39h,  20h,  1eh                      ; compressed
-
-g_szDriveNumBOOTNFO:	; db	"%x %z",NULL
-                    	; db	 25h,  78h,  20h,  25h,  7ah,  00h    ; uncompressed
-                    	  db	 39h,  20h,  1fh                      ; compressed
-
-g_szFloppyDrv:			; db	"Floppy Drive %c",NULL
-              			; db	 46h,  6ch,  6fh,  70h,  70h,  79h,  20h,  44h,  72h,  69h,  76h,  65h,  20h,  25h,  63h,  00h    ; uncompressed
-              			  db	 4ch,  72h,  75h,  76h,  76h, 0ffh,  4ah,  78h,  6fh,  7ch, 0ebh,  15h                            ; compressed
-
-g_szBootMenuPrintEnd:
-g_szForeignHD:			; db	"Foreign Hard Disk",NULL
-              			; db	 46h,  6fh,  72h,  65h,  69h,  67h,  6eh,  20h,  48h,  61h,  72h,  64h,  20h,  44h,  69h,  73h,  6bh,  00h    ; uncompressed
-              			  db	 4ch,  75h,  78h,  6bh,  6fh,  6dh, 0f4h,  4eh,  67h,  78h, 0eah,  4ah,  6fh,  79h, 0b1h                      ; compressed
-
-
-%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
-%if ((g_szBootMenuPrintStart-$$) & 0xff00) <> ((g_szBootMenuPrintEnd-$$) & 0xff00)
-%error "g_szBootMenuPrint* strings must start on the same 256 byte page, required by the BootMenuPrint_* routines.  Please move this block up or down within strings.asm"
-%endif
-%endif
 
 ; Boot menu bottom of screen strings
