/
/ VERSION 5A 4-27-77  PT
/
	SECT	CHARS
	ENTRY	CGET
	ENTRY	CPUT
	TEXT	+CHARS+
CHARXR,	SETX	XRCHAR
	SETB	BPCHAR
BPCHAR,	F 0.
XRCHAR,	F 0.
FROM,	F 0.
NCHAR,	F 0.
	ORG	10*3+BPCHAR
	FNOP
	JA	CHARXR
	0
CHARTN,	JA	.
	BASE	0
START,	JA	.
	STARTD
	FLDA	10*3
	FSTA	CHARTN
	FLDA	0
	SETX	XRCHAR
	SETB	BPCHAR
	BASE	BPCHAR
	LDX	1,1
	FSTA	BPCHAR	/STR SAVED IN BPCHAR
	FLDA%	BPCHAR,1
	FSTA	STR
	FLDA%	BPCHAR,1+
	FSTA	NCHAR
	FLDA%	BPCHAR,1+
	FSTA	FROM	/ADDR OF F
	STARTF
	FLDA%	NCHAR
	ATX	0
	JA	START
/
CGET,	JSA	START
	TRAP4	CGETIT
	XTA	0
	FSTA%	FROM	/TO 3 WORDS
	JA	CHARTN
/
CPUT,	JSA	START
	FLDA%	FROM
	ATX	1
	FCLA
	TRAP4	CPUTIT
	JA	CHARTN
/
	SECT8	CHAR		/ALL IN 1 PAGE
CGETIT,	0
	JMS	FLDRTN
	TAD	O2FLD
	DCA	ORGFLD
	TAD	XFLD
	DCA	XR2FLD
	TAD	PFLD
	DCA	GFLD
GFLD,	0		/STR FIELD
	TAD%	STR-1
ORGFLD,	0			/THIS ROUTINE
	DCA	LOC
	TAD	XR		/N
	RAR
	SNL	CLA
	JMP	RIGHT
	CLL
	TAD	LOC
	RTR
	RTR
	RTR
BOTH,	AND	P77
XR2FLD,	0
	DCA%	QXR+1		/PASS TO FPP
	CDF CIF 0
	JMP%	CGETIT
RIGHT,	TAD	LOC
	JMP	BOTH
CADD,	ADDR	CGETIT
	0
STR,	0
	0
/
CPUTIT,	0
	JMS	FLDRTN
	TAD	QXR1
	AND	P7
	RTL
	RAL
	TAD	CDFINS
	DCA	XR1FLD
	TAD	O2FLD
	DCA	O1FLD
	TAD	O2FLD
	DCA	O3FLD
	TAD	PFLD
	DCA	P1FLD
XR1FLD,	0
	TAD%	QXR1+1	/F VALUE
O1FLD,	0
	AND	P77
	DCA	LOC
P1FLD,	0
	TAD%	STR-1
O3FLD,	0
	DCA	XR1FLD		/USE AS A TMP
	TAD	XR
	RAR
	SNL CLA
	JMP PRIGHT
	CLL
	TAD	XR1FLD
	AND	P77		/SAVE RIGHT HALF
	DCA	XR1FLD
	TAD	LOC
	RTL
	RTL
	RTL
	TAD	XR1FLD
PFLD,	0
	DCA%	STR-1
	CIF CDF 0
	JMP%	CPUTIT
PRIGHT,	TAD	XR1FLD
	AND	P7700
	TAD	LOC
	JMP	PFLD
/
FLDRTN,	0
	TAD	CADD
	AND	P7
	RTL 
	RAL
	TAD	CDFINS
	DCA	O2FLD
	TAD	QXR
	AND	P7
	RAL
	RTL
	TAD	CDFINS
	DCA	XFLD
XFLD,	0
	TAD%	QXR+1	
O2FLD,	0
	DCA	XR
	TAD	XR
	RAR
	SNL
	TAD	M1
	CLL
	TAD	STR+1
	DCA	STR-1
	SZL	CLA
	IAC
	CLL
	TAD	STR
	AND	P7
	RAL
	RTL
	TAD	CDFINS
	DCA	PFLD		/STR FLD
	JMP%	FLDRTN
P77,	77
CDFINS,	6203
P7,	7
QXR,	ADDR	XRCHAR
LOC,	0
XR,	0
M1,	-1
QXR1,	ADDR	XRCHAR+1
P7700,	7700
