Index: /trunk/Assembly_Library/Src/Display/DisplayContext.asm
===================================================================
--- /trunk/Assembly_Library/Src/Display/DisplayContext.asm	(revision 193)
+++ /trunk/Assembly_Library/Src/Display/DisplayContext.asm	(revision 194)
@@ -100,4 +100,5 @@
 	pop		ax						; Pop return address
 
+%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
 	%assign i 0
 	%rep DISPLAY_CONTEXT_size / 2
@@ -105,5 +106,6 @@
 	%assign i i+2
 	%endrep
-
+%endif
+		
 	mov		ds, di					; Restore DS
 	jmp		ax
@@ -124,4 +126,5 @@
 	pop		ax						; Pop return address
 
+%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS		
 	%assign i DISPLAY_CONTEXT_size-2
 	%rep DISPLAY_CONTEXT_size / 2
@@ -129,5 +132,6 @@
 	%assign i i-2
 	%endrep
-
+%endif
+		
 	push	ax						; Push return address
 	push	dx
@@ -226,5 +230,5 @@
 	mov		[VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fnCharOut], ax
 	ret
-
+		
 
 ;--------------------------------------------------------------------
@@ -259,4 +263,5 @@
 	ret
 
+		
 ;--------------------------------------------------------------------
 ; DisplayContext_GetCharacterOutputParameterToDX
@@ -286,4 +291,5 @@
 ;		Nothing
 ;--------------------------------------------------------------------
+%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
 ALIGN JUMP_ALIGN
 DisplayContext_GetCharacterOffsetToAXfromByteOffsetInAX:
@@ -292,5 +298,7 @@
 	sar		ax, 1		; BYTE count to WORD count
 	ret
-
+%endif
+
+		
 ;--------------------------------------------------------------------
 ; DisplayContext_GetByteOffsetToAXfromCharacterOffsetInAX
@@ -303,4 +311,5 @@
 ;		Nothing
 ;--------------------------------------------------------------------
+%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS		
 ALIGN JUMP_ALIGN
 DisplayContext_GetByteOffsetToAXfromCharacterOffsetInAX:
@@ -311,2 +320,3 @@
 ReturnOffsetInAX:
 	ret
+%endif
Index: /trunk/Assembly_Library/Src/Display/DisplayFormatCompressed.asm
===================================================================
--- /trunk/Assembly_Library/Src/Display/DisplayFormatCompressed.asm	(revision 193)
+++ /trunk/Assembly_Library/Src/Display/DisplayFormatCompressed.asm	(revision 194)
@@ -70,5 +70,5 @@
 %define DisplayFormatCompressed_Format_s DisplayFormat_ParseCharacters_FromAX
 
-DisplayFormatCompressed_Format_A:	
+DisplayFormatCompressed_Format_A:
 	mov		[VIDEO_BDA.displayContext+DISPLAY_CONTEXT.bAttribute], al
 DisplayFormatCompressed_ret:			; jump target for other routines who need a "ret"
@@ -86,9 +86,9 @@
 	test	ax,ax						; if parameter equals zero, emit dash string instead
 	jz		DisplayFormat_ParseCharacters
-;;; fall through
+	; fall through
 		
 DisplayFormatCompressed_Format_2_u:
 	mov		bh,2						; only two characters (instead of the default 5)
-;;; fall through
+	; fall through
 		
 DisplayFormatCompressed_Format_u:
@@ -150,9 +150,9 @@
 ;--------------------------------------------------------------------		
 
-DisplayFormatCompressed_BaseFormatOffset:	
-		
-DisplayFormat_ParseCharacters_FromAX:	
+DisplayFormatCompressed_BaseFormatOffset:
+		
+DisplayFormat_ParseCharacters_FromAX:
 	mov		si,ax
-;;; Fall-through
+	; fall through to DisplayFormat_ParseCharacters
 
 ALIGN JUMP_ALIGN		
Index: /trunk/Assembly_Library/Src/Display/DisplayPage.asm
===================================================================
--- /trunk/Assembly_Library/Src/Display/DisplayPage.asm	(revision 193)
+++ /trunk/Assembly_Library/Src/Display/DisplayPage.asm	(revision 194)
@@ -15,4 +15,5 @@
 ;		AX, DX
 ;--------------------------------------------------------------------
+%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
 ALIGN JUMP_ALIGN
 DisplayPage_SetFromAL:
@@ -21,4 +22,5 @@
 	mov		[VIDEO_BDA.displayContext+DISPLAY_CONTEXT.fpCursorPosition], ax
 	ret
+%endif
 
 
Index: /trunk/Assembly_Library/Src/Display/DisplayPrint.asm
===================================================================
--- /trunk/Assembly_Library/Src/Display/DisplayPrint.asm	(revision 193)
+++ /trunk/Assembly_Library/Src/Display/DisplayPrint.asm	(revision 194)
@@ -151,4 +151,6 @@
 ;		AX, DX
 ;--------------------------------------------------------------------
+%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
+		
 ALIGN JUMP_ALIGN
 DisplayPrint_CharacterBufferFromBXSIwithLengthInCX:
@@ -170,4 +172,5 @@
 .NothingToPrintSinceZeroLength:
 	ret
+%endif
 
 
@@ -328,5 +331,5 @@
 	inc		bp					; we didn't need a parameter after all, readjust BP 
 	inc		bp
-;;; fall-through
+	; fall through to DisplayPrint_Newline
 %endif
 
Index: /trunk/Assembly_Library/Src/Menu/MenuBorders.asm
===================================================================
--- /trunk/Assembly_Library/Src/Menu/MenuBorders.asm	(revision 193)
+++ /trunk/Assembly_Library/Src/Menu/MenuBorders.asm	(revision 194)
@@ -60,4 +60,5 @@
 ;		AX, BX, CX, DX, SI, DI
 ;--------------------------------------------------------------------
+%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
 ALIGN JUMP_ALIGN
 MenuBorders_RefreshItemBorders:
@@ -68,6 +69,7 @@
 	call	MenuBorders_GetNumberOfMiddleCharactersToDX
 	jmp		SHORT RefreshItemBorders
-
-
+%endif
+
+		
 ;--------------------------------------------------------------------
 ; MenuBorders_AdjustDisplayContextForDrawingBorders
Index: /trunk/Assembly_Library/Src/Menu/MenuText.asm
===================================================================
--- /trunk/Assembly_Library/Src/Menu/MenuText.asm	(revision 193)
+++ /trunk/Assembly_Library/Src/Menu/MenuText.asm	(revision 194)
@@ -15,4 +15,5 @@
 ;		AX, BX, CX, DX, SI, DI
 ;--------------------------------------------------------------------
+%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
 ALIGN JUMP_ALIGN
 MenuText_ClearTitleArea:
@@ -20,6 +21,7 @@
 	call	PrepareToDrawTitleArea
 	mov		cl, [bp+MENUINIT.bTitleLines]
-	jmp		SHORT ClearCLlinesOfText
-
+	jmp		SHORT MenuText_ClearInformationArea.ClearCLlinesOfText
+%endif
+		
 ALIGN JUMP_ALIGN
 MenuText_ClearInformationArea:
@@ -27,5 +29,5 @@
 	call	MenuText_PrepareToDrawInformationArea
 	mov		cl, [bp+MENUINIT.bInfoLines]
-ClearCLlinesOfText:
+.ClearCLlinesOfText:
 	mov		al, [bp+MENUINIT.bWidth]
 	sub		al, MENU_HORIZONTAL_BORDER_LINES+(MENU_TEXT_COLUMN_OFFSET/2)
Index: /trunk/Assembly_Library/Src/String/Char.asm
===================================================================
--- /trunk/Assembly_Library/Src/String/Char.asm	(revision 193)
+++ /trunk/Assembly_Library/Src/String/Char.asm	(revision 194)
@@ -88,9 +88,10 @@
 ;		Nothing
 ;--------------------------------------------------------------------
+%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
 ALIGN JUMP_ALIGN
 Char_IsDecimalDigitInAL:
 	IS_BETWEEN_IMMEDIATES al, '0', '9'
 	ret
-
+%endif
 
 ;--------------------------------------------------------------------
Index: /trunk/Assembly_Library/Src/Util/Memory.asm
===================================================================
--- /trunk/Assembly_Library/Src/Util/Memory.asm	(revision 193)
+++ /trunk/Assembly_Library/Src/Util/Memory.asm	(revision 194)
@@ -116,4 +116,5 @@
 ;		AX
 ;--------------------------------------------------------------------
+%ifndef EXCLUDE_FROM_XTIDE_UNIVERSAL_BIOS
 ALIGN JUMP_ALIGN
 Memory_ReserveCXbytesFromStackToDSSI:
@@ -124,2 +125,3 @@
 	mov		si, sp
 	jmp		ax
+%endif
Index: /trunk/Tools/unused.pl
===================================================================
--- /trunk/Tools/unused.pl	(revision 194)
+++ /trunk/Tools/unused.pl	(revision 194)
@@ -0,0 +1,66 @@
+#
+# Looks for unused entry points, to aid in discovering dead code that can be removed
+#
+# Usage: unused.pl listing unused.asm
+#        
+# where: listing is the normal listing from assembly
+#        unused.asm is assembled with the -E nasm flag
+#
+# Annotations can be placed in the source to eliminate false positives:
+#   a) if a label can be fallen into, place "; fall through to label" above the label
+#   b) "; unused entrypoint ok" can be placed on the same line with the label
+#   c) "; jump table entrypoint" can be placed on the same line with the label
+#
+
+print "::".$ARGV[0]."::".$ARGV[1]."::\n";
+
+open( LST, "<", $ARGV[0] ) || die "cannot open listing: ".$ARGV[0];
+open( UNUSED, "<", $ARGV[1] ) || die "cannot open unused.asm: ".$ARGV[1];
+
+while(<LST>)
+{
+	if( /fall\s+(-?through\s+)?(to\s+)?([a-z0-9_]+)/i )
+	{
+		$ok{ $3 } = 1;
+	}
+	if( /unused\s+entrypoint\s+ok/i && /^\s*\d+\s+\<\d\>\s([a-z0-9_]+)\:/i )
+	{
+		$ok{ $1 } = 1;
+	}
+	if( /jump\s*table\s+entrypoint/i && /^\s*\d+\s+\<\d\>\s([a-z0-9_]+)\:/i )
+	{
+		$ok{ $1 } = 1;
+	}
+}
+
+while(<UNUSED>)
+{
+	if( /^([a-z0-9_]+\:)?\s+db\s+(.*)$/i || /^([a-z0-9_]+\:)?\s+dw\s+(.*)$/i || /^([a-z0-9_]+\:)?\s+mov\s+(.*)$/i ||
+		/^([a-z0-9_]+\:)?\s+call\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 )
+	{
+		$rem = $2;
+		@words = split( /([a-z0-9_]+)/i, $_ );
+		for( $t = 0; $t <= $#words; $t++ )
+		{
+			$jumptable{ $words[$t] } = 1;
+		}
+	}
+	if( !(/^g_sz/) && /^([a-z0-9_]+)\:/i )
+	{
+		push( @definition, $1 );
+	}
+}
+
+$results = 0;
+for( $t = 0; $t <= $#definition; $t++ )
+{
+	$d = $definition[$t];
+	if( !$ok{$d} && !$jumptable{$d} )
+	{
+		print $definition[$t]."\n";
+		$results++;
+	}
+}
+
+print ">>>> Unused Count: ".$results."\n";
Index: /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuEvent.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuEvent.asm	(revision 193)
+++ /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuEvent.asm	(revision 194)
@@ -182,4 +182,5 @@
 	shl		bl,1				;  drive letter high order bit to CF, Item/Information bit to SF
 	jc		SHORT BootMenuPrint_HardDiskMenuitem
+	; fall through to BootMenuEvent_FallThroughToFloppyMenuitem
 		
 ;;; 
@@ -189,3 +190,3 @@
 ALIGN JUMP_ALIGN
 BootMenuEvent_FallThroughToFloppyMenuitem:	
-
+	; fall through to BootMenuPrint_FloppyMenuitem
Index: /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm	(revision 193)
+++ /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrint.asm	(revision 194)
@@ -32,8 +32,9 @@
 	jmp		short BootMenuPrint_FormatCSSIfromParamsInSSBP
 
+%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
 %if BootMenuPrint_FloppyMenuitem <> BootMenuEvent_FallThroughToFloppyMenuitem
 %error "BootMenuPrint.asm must follow BootMenuEvent.asm, and BootMenuPrint_FloppyMenuitem must be the first routine in BootMenuPrint.asm"
 %endif
-
+%endif
 		
 ;--------------------------------------------------------------------
@@ -174,6 +175,8 @@
 	db		2880  / FloppyTypes.rgbCapacityMultiplier    ;  type 6
 
+%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
 %if g_szFddFiveQuarter <> g_szFddThreeHalf+g_szFddThreeFive_Displacement
 %error "FddThreeFive_Displacement incorrect"
+%endif
 %endif
 		
@@ -225,4 +228,5 @@
 	cmp		bl, FLOPPY_TYPE_525_HD
 	ja		.ThreeHalf
+%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
 %if g_szFddThreeFive_Displacement = 2 		
 	inc		ax						; compressed string case
@@ -230,4 +234,5 @@
 %else
 	add		ax, g_szFddThreeFive_Displacement
+%endif
 %endif
 .ThreeHalf:		
Index: /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrintCfg.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrintCfg.asm	(revision 193)
+++ /trunk/XTIDE_Universal_BIOS/Src/Boot/BootMenuPrintCfg.asm	(revision 194)
@@ -26,5 +26,5 @@
 	eMOVZX	ax, BYTE [di+DPT.bIdevarsOffset]
 	xchg	si, ax						; CS:SI now points to IDEVARS
-	; Fall to PushAndFormatCfgString
+	; Fall to .PushAndFormatCfgString
 
 ;--------------------------------------------------------------------
@@ -38,5 +38,5 @@
 ;		AX, DX, SI, DI
 ;--------------------------------------------------------------------
-PushAndFormatCfgString:
+.PushAndFormatCfgString:
 	push	bp
 	mov		bp, sp
@@ -53,5 +53,5 @@
 ;		AX, BX
 ;--------------------------------------------------------------------
-PushAddressingMode:
+.PushAddressingMode:
 	CustomDPT_GetUnshiftedAddressModeToALZF
 	;; 
@@ -76,5 +76,5 @@
 ;		AX
 ;--------------------------------------------------------------------
-PushBlockMode:
+.PushBlockMode:
 	mov		ax, 1
 	test	BYTE [di+DPT.bFlagsHigh], FLGH_DPT_BLOCK_MODE_SUPPORTED
@@ -94,5 +94,5 @@
 ;		AX, DX
 ;--------------------------------------------------------------------
-;PushBusType:
+.PushBusType:
 	mov		al,g_szBusTypeValues_Displacement
 	mul		BYTE [cs:si+IDEVARS.bDevice]
@@ -113,5 +113,5 @@
 ;		AX, DX
 ;--------------------------------------------------------------------
-PushIRQ:
+.PushIRQ:
 	eMOVZX	ax, BYTE [cs:si+IDEVARS.bIRQ]
 	push	ax
@@ -127,5 +127,5 @@
 ;		AX
 ;--------------------------------------------------------------------
-PushResetStatus:
+.PushResetStatus:
 	mov		al, [di+DPT.bFlagsHigh]
 	and		ax, MASKH_DPT_RESET
@@ -141,5 +141,5 @@
 ;		AX, SI, DI
 ;--------------------------------------------------------------------
-PrintValuesFromStack:
+.PrintValuesFromStack:
 	mov		si, g_szCfgFormat
 	jmp		BootPrint_BootMenuPrint_FormatCSSIfromParamsInSSBP_Relay
Index: /trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Address.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Address.asm	(revision 193)
+++ /trunk/XTIDE_Universal_BIOS/Src/Handlers/Int13h/Tools/Address.asm	(revision 194)
@@ -85,17 +85,21 @@
 ALIGN JUMP_ALIGN
 Address_OldInt13hAddressToIdeAddress:
-	call	Address_ExtractLCHSparametersFromOldInt13hAddress
+		call	Address_ExtractLCHSparametersFromOldInt13hAddress
+			
+		CustomDPT_GetUnshiftedAddressModeToALZF
 		
-	CustomDPT_GetUnshiftedAddressModeToALZF
-	jz		DoNotConvertLCHS	; 0, ADDR_DPT_LCHS
+;;; 0: ADDR_DPT_LCHS		
+		jz		DoNotConvertLCHS	
 		
-	;; 
-	;; Since we are only checking for zero, we can do our math in the high order bits,
-	;; in this case effectively subtracting 1 from the address mode.
-	;; 
-	sub		al,(1<<ADDRESSING_MODE_FIELD_POSITION)
-	jz		ConvertLCHStoPCHS	; 1, ADDR_DPT_PCHS
-		
-;; Fall-through                 ; 2, ADDR_DPT_LBA28 and 3, ADDR_DPT_LBA48
+;;; 1: ADDR_DPT_PCHS
+		; 
+		; Since we are only checking for zero, we can do our math in the high order bits,
+		; in this case effectively subtracting 1 from the address mode.
+		;
+		sub		al,(1<<ADDRESSING_MODE_FIELD_POSITION)
+		jz		ConvertLCHStoPCHS	
+
+;;; 2: ADDR_DPT_LBA28 and 3: ADDR_DPT_LBA48				
+		; Fall through to ConvertLCHStoLBARegisterValues  
 		
 ;---------------------------------------------------------------------
Index: /trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm	(revision 193)
+++ /trunk/XTIDE_Universal_BIOS/Src/Initialization/Initialize.asm	(revision 194)
@@ -17,5 +17,5 @@
 ;		Nothing
 ;--------------------------------------------------------------------
-Initialize_FromMainBiosRomSearch:
+Initialize_FromMainBiosRomSearch:             ; unused entrypoint ok
 	pushf
 	push	es
Index: /trunk/XTIDE_Universal_BIOS/Src/Strings.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/Strings.asm	(revision 193)
+++ /trunk/XTIDE_Universal_BIOS/Src/Strings.asm	(revision 194)
@@ -51,4 +51,5 @@
 ; 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"
@@ -62,5 +63,6 @@
 %if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement		
 %error "g_szAddressingModes Displacement Incorrect 4"
-%endif				
+%endif
+%endif		
 		
 g_szFddUnknown:	db	"%sUnknown",NULL
@@ -83,4 +85,5 @@
 ; 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"
@@ -100,5 +103,6 @@
 %if g_szBusTypeValues_Serial <> g_szBusTypeValues_32 + g_szBusTypeValues_Displacement
 %error "g_szBusTypeValues Displacement Incorrect 6"				
-%endif				
+%endif
+%endif
 		
 g_szSelectionTimeout:	db		DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2-u s",NULL
Index: /trunk/XTIDE_Universal_BIOS/Src/StringsCompress.pl
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/StringsCompress.pl	(revision 193)
+++ /trunk/XTIDE_Universal_BIOS/Src/StringsCompress.pl	(revision 194)
@@ -203,4 +203,5 @@
 # Ensure that branch targets are within reach
 #
+print "%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS\n";
 for( $t = $format_begin; $format_index[$t]; $t++ )
 {
@@ -209,4 +210,5 @@
 	print "%endif\n";
 }
+print "%endif\n";
 
 #--------------------------------------------------------------------------------
Index: /trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm
===================================================================
--- /trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm	(revision 193)
+++ /trunk/XTIDE_Universal_BIOS/Src/StringsCompressed.asm	(revision 194)
@@ -137,4 +137,5 @@
 ; 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"
@@ -148,5 +149,6 @@
 %if g_szLBA48 <> g_szLBA28 + g_szAddressingModes_Displacement		
 %error "g_szAddressingModes Displacement Incorrect 4"
-%endif				
+%endif
+%endif		
 
 g_szFddUnknown:	; db	"%sUnknown",NULL
@@ -202,4 +204,5 @@
 ; 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"
@@ -219,5 +222,6 @@
 %if g_szBusTypeValues_Serial <> g_szBusTypeValues_32 + g_szBusTypeValues_Displacement
 %error "g_szBusTypeValues Displacement Incorrect 6"				
-%endif				
+%endif
+%endif
 
 g_szSelectionTimeout:	; db		DOUBLE_BOTTOM_LEFT_CORNER,DOUBLE_LEFT_HORIZONTAL_TO_SINGLE_VERTICAL,"%ASelection in %2-u s",NULL
@@ -268,4 +272,5 @@
         db     (DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_A)    ; 29
 
+%ifndef CHECK_FOR_UNUSED_ENTRYPOINTS
 %if DisplayFormatCompressed_BaseFormatOffset < DisplayFormatCompressed_Format_s || DisplayFormatCompressed_BaseFormatOffset - DisplayFormatCompressed_Format_s > 255
 %error "DisplayFormatCompressed_Format_s is out of range of DisplayFormatCompressed_BaseFormatOffset"
@@ -298,4 +303,5 @@
 %error "DisplayFormatCompressed_Format_A is out of range of DisplayFormatCompressed_BaseFormatOffset"
 %endif
+%endif
 
 ;; translated usage stats
@@ -304,13 +310,13 @@
 ;; format usage stats
 ;; A:4
-;; c:6
-;; s:14
 ;; 2-u:1
-;; u:5
 ;; 5-u:3
-;; 2-I:1
 ;; x:6
 ;; 5-x:1
+;; s:14
 ;; nl:6
+;; 2-I:1
+;; c:6
+;; u:5
 ;; total format: 10
 
Index: /trunk/XTIDE_Universal_BIOS/makefile
===================================================================
--- /trunk/XTIDE_Universal_BIOS/makefile	(revision 193)
+++ /trunk/XTIDE_Universal_BIOS/makefile	(revision 194)
@@ -145,2 +145,7 @@
 
 $(SRC_ASM):		src\StringsCompressed.asm
+
+xt_unused:  xt
+	$(AS) "$(SRC_ASM)" $(ASFLAGS) $(DEFS_XT) -o"$(TARGET)_xt_unused.asm" -E -DCHECK_FOR_UNUSED_ENTRYPOINTS
+	perl ..\tools\unused.pl $(TARGET)_xt.lst $(TARGET)_xt_unused.asm
+
