PACL:		CLD
		LODSB
		XOR AH, AH
		MOV CX, AX
		ADD CX, SI
		XOR AL, AL
		MOV BX, DI
		STOSW
		MOV DX, DI
PACLL:		LODSB
		MOV AH, AL
		OR AL, AL
		JZ PACL0
		CMP AL, 0DH
		JZ PACL0
		CMP AL, 21H
		JC PSKIP
		CMP AL, 22H
		JZ PQUO
		CMP AL, 29H
		JNA PLTR
		CMP AL, 2DH
		JZ PLTR
		CMP AL, 2EH
		JZ PLTR
		CMP AL, 2FH
		JZ PSYM
		CMP AL, 30H
		JC PSKIP
		CMP AL, 39H
		JNA PLTR
		CMP AL, 40H
		JC PSKIP
		CMP AL, 5AH
		JNA PLTR
		CMP AL, 5EH
		JC PSKIP
		CMP AL, 7BH
		JNA PLTR
		CMP AL, 7DH
		JZ PLTR
		CMP AL, 7EH
		JZ PLTR
PSKIP:		CMP DI, DX
		JA PNEW
		CMP SI, CX
		JC PACLL
		JMP SHORT PNEW
PACL0:		MOV SI, CX
		JMP SHORT PNEW
PSYM:		CMP DI, DX
		JNA $+5
		DEC SI
		JMP SHORT PNEW
		CMP BYTE PTR [SI], 3FH
		JNZ PLTR
		CMP SI, CX
		JNC PLTR
		STOSB
		LODSB
PLTR:		STOSB
		CMP SI, CX
		JC PACLL
		JMP SHORT PNEW
PQUO:		CMP DI, DX
		JNA $+5
		DEC SI
		JMP SHORT PNEW
PQUOL:		STOSB
		LODSB
		OR AL, AL
		JZ PACL0
		CMP AL, 0DH
		JZ PACL0
		CMP AL, AH
		JZ PQUO0
		CMP SI, CX
		JC PQUOL
PQUO0:		STOSB
PNEW:		MOV AX, DI
		SUB AX, DX
		JNA PNEW0
		PUSH DI
		MOV DI, DX
		DEC DI
		STOSB
		POP DI
		INC DI
		MOV DX, DI
		INC BYTE PTR [BX]
PNEW0:		CMP SI, CX
		JNC PACLX
		JMP PACLL
PACLX:		DEC DI
		XOR AL, AL
		STOSB
		RET
