Index: trunk/Assembly_Library/Inc/Macros.inc
===================================================================
--- trunk/Assembly_Library/Inc/Macros.inc	(revision 601)
+++ trunk/Assembly_Library/Inc/Macros.inc	(revision 602)
@@ -4,4 +4,43 @@
 %ifndef MACROS_INC
 %define MACROS_INC
+
+
+;--------------------------------------------------------------------
+; Skips the immediately following 1 byte instruction by using it
+; as an immediate value to a dummy instruction.
+; Destroys the contents of %1.
+;
+; SKIP1B
+;	Parameters:
+;		%1:		Any 8 bit general purpose register or F for flags.
+;	Returns:
+;		Nothing
+;	Corrupts registers:
+;		%1
+;--------------------------------------------------------------------
+%macro SKIP1B 1.nolist
+	%ifidni		%1, f
+		db	03Ch					; Opcode byte for CMP AL, <immed>
+		;db	0A8h					; Alt. version TEST AL, <immed>
+	%elifidni	%1, al
+		db	0B0h					; Opcode byte for MOV AL, <immed>
+	%elifidni	%1, ah
+		db	0B4h					; Opcode byte for MOV AH, <immed>
+	%elifidni	%1, bl
+		db	0B3h					; Opcode byte for MOV BL, <immed>
+	%elifidni	%1, bh
+		db	0B7h					; Opcode byte for MOV BH, <immed>
+	%elifidni	%1, cl
+		db	0B1h					; Opcode byte for MOV CL, <immed>
+	%elifidni	%1, ch
+		db	0B5h					; Opcode byte for MOV CH, <immed>
+	%elifidni	%1, dl
+		db	0B2h					; Opcode byte for MOV DL, <immed>
+	%elifidni	%1, dh
+		db	0B6h					; Opcode byte for MOV DH, <immed>
+	%else
+		%error "Invalid parameter passed to SKIP1B"
+	%endif
+%endmacro
 
 ;--------------------------------------------------------------------
Index: trunk/Assembly_Library/Src/Keyboard/Keyboard.asm
===================================================================
--- trunk/Assembly_Library/Src/Keyboard/Keyboard.asm	(revision 601)
+++ trunk/Assembly_Library/Src/Keyboard/Keyboard.asm	(revision 602)
@@ -44,6 +44,6 @@
 	push	cx
 
-	mov		cx, BUFFER_SIZE_FOR_WORD_INPUT
-	call	Memory_ReserveCXbytesFromStackToDSSI
+	mov		cl, BUFFER_SIZE_FOR_WORD_INPUT
+	call	Memory_ReserveCLbytesFromStackToDSSI
 
 	call	Char_GetFilterFunctionToDXforNumericBaseInBX
Index: trunk/Assembly_Library/Src/Menu/Dialog/DialogFile.asm
===================================================================
--- trunk/Assembly_Library/Src/Menu/Dialog/DialogFile.asm	(revision 601)
+++ trunk/Assembly_Library/Src/Menu/Dialog/DialogFile.asm	(revision 602)
@@ -612,6 +612,6 @@
 	jz		SHORT ReturnWithoutHandlingKeystroke
 
-	mov		cx, STRING_DIALOG_IO_size
-	call	Memory_ReserveCXbytesFromStackToDSSI
+	mov		cl, STRING_DIALOG_IO_size
+	call	Memory_ReserveCLbytesFromStackToDSSI
 
 ;;;	InitializeStringDialogIoInDSSIforInputtingFileName
@@ -682,6 +682,6 @@
 
 	call	DisplayLoadingMessageInInformationArea
-	mov		cx, DRIVE_DIALOG_IO_size
-	call	Memory_ReserveCXbytesFromStackToDSSI
+	mov		cl, DRIVE_DIALOG_IO_size
+	call	Memory_ReserveCLbytesFromStackToDSSI
 	call	.DisplayDriveSelectionDialogWithIoInDSSI
 	call	.ChangeDriveToUserSelectionFromIoInDSSI
@@ -741,5 +741,5 @@
 	push	ss
 	pop		ds
-	ePUSH_T	ax, CURRENTDIR_CHARACTERS
+	ePUSH_T	ax, CURRENTDIR_CHARACTERS			; The high byte is zero
 	mov		cx, FLG_FILEATTR_DIRECTORY
 	mov		dx, sp
Index: trunk/Assembly_Library/Src/Util/Memory.asm
===================================================================
--- trunk/Assembly_Library/Src/Util/Memory.asm	(revision 601)
+++ trunk/Assembly_Library/Src/Util/Memory.asm	(revision 602)
@@ -122,7 +122,8 @@
 
 ;--------------------------------------------------------------------
+; Memory_ReserveCLbytesFromStackToDSSI
 ; Memory_ReserveCXbytesFromStackToDSSI
 ;	Parameters
-;		CX:		Number of bytes to reserve
+;		CL/CX:	Number of bytes to reserve
 ;	Returns:
 ;		DS:SI:	Ptr to reserved buffer
@@ -132,4 +133,6 @@
 %ifndef EXCLUDE_FROM_XUB
 ALIGN JUMP_ALIGN
+Memory_ReserveCLbytesFromStackToDSSI:
+	xor		ch, ch
 Memory_ReserveCXbytesFromStackToDSSI:
 	pop		ax
Index: trunk/Assembly_Library/Src/Util/Sort.asm
===================================================================
--- trunk/Assembly_Library/Src/Util/Sort.asm	(revision 601)
+++ trunk/Assembly_Library/Src/Util/Sort.asm	(revision 602)
@@ -32,5 +32,5 @@
 ;		ES:DI:	Ptr to second item to compare
 ;	Returns:
-;		FLAGS:	Signed comparition between first and second item
+;		FLAGS:	Signed comparison between first and second item
 ;	Corrupts registers:
 ;		Nothing
@@ -56,15 +56,13 @@
 Sort_ItemsFromDSSIwithCountInDXsizeInCXandComparatorInBX:
 	push	es
-	push	di
-	mov		di, cx
-	eSHL_IM	cx, 1						; Reserve temp and pivot items
-	add		cx, BYTE QSORT_PARAMS_size
-	eENTER_STRUCT cx
-	push	cx
+	mov		ax, cx
+	eSHL_IM	ax, 1						; Reserve temp and pivot items
+	add		ax, BYTE QSORT_PARAMS_size
+	eENTER_STRUCT ax
+	push	ax
 
 %ifdef CLD_NEEDED
 	cld
 %endif
-	mov		cx, di						; Restore item size to CX
 	xor		ax, ax						; Zero starting index
 	dec		dx							; Count to index of last item
@@ -76,5 +74,4 @@
 	pop		ax
 	eLEAVE_STRUCT ax
-	pop		di
 	pop		es
 	ret
