Google
 

Trailing-Edge - PDP-10 Archives - BB-H506D-SM_1983 - conversion/utility/comuni.unv
There are 15 other files named comuni.unv in the archive. Click here to see a list.
x
,5#@P C;uP E'P E2\I@ 13
Xp
	IFNB	<1HA>,<A::>
	BLOCK	B
:>
	BLOCK5G31E2\I[ 2(3Y
	IFNB	<2XA>,<A::>
	IFN	2xB,<IFB	<C>,<BLOC3K	B>
		    IFNB38	<C>,<REPEAT	B,3X<
					C>>
		>
				C>>
		>5H31G3YQ @G3[Q G>l: O5
	IFG	A-O8COMSIZ,<
	XXX.==OXA-COMSIZ
  DEFIOxNE PEXCS(OVRFLO),P<
	PRINTX	?COMSIP8Z EXCEEDED BY 'OVPXRFLO (OCTAL) WORDPxS - REGENERATE THQE COMPILER
Q8>
	PEXCS(\XXX.)
>QX;END IFG A-COMSIZ
IFG A-COMSIG>n:=P pI
n0P I4.: sx/s

IFNDEFt .BITST,<	.BITST=t8=0>	;START AT 0
tX
IF1,<			;ALL THtxIS STUFF HAPPENS uONLY IN PASS 1
u8
;ERROR CHECKS
IuXFDEF YA,<	PRINTXux ?A ALREADY DEFIvNED WITH DEFBYT
v8	>

IFG <.BITSTvX+B-^D36>,< PRINTvxX ?DEFBYT: A DOEwS NOT FIT IN WORDw8>
; END OF ERRORwX CHECKS

;DEFINwxE YA TO BE THE WxORD C
	YA==C

	DFENDP==B+.BxXITST-1	;END POSITxxION

;COMPUTE FyLAGS
	DFBF==DFB.y8BT		;ASSUME BYTE yXINSTRUCTION NEEDEyxD
IFE B-^D36,<
	DFBF==DFB.FW> ;z8FULL WORD
IFE BzX-^D18,<
	IFE DFEzxNDP-^D17,<
	DFBF{==DFB.LH>		;LEFT {8HALF-WORD INSTRUC{XTION NEEDED
	IFE{x DFENDP-^D35,<
	|DFBF==DFB.RH>		;R|8IGHT HALF-WORD IN|XSTRUCTION NEEDED
	>

	XA==<DFB}F>B21+B,,DFENDP

	.BITST==B+.B}XITST

IFE <.BIT}xST-^D36>,<.BITST=~=0>	;.BITST IS NE~8W STARTING POSITION
>;END IF1
IhZP Ii[P IkP IlTP I' @x4
	ADR==HIA.PUR	
	DEFINE	DIA8SEL%	(N%)	<
	N%=AX:ADR		
	ADR==ADRAx+1
	>
	DEFINE	DBSTBL%	(NAM,IR)	<DB8ISEL%	(NAM)>

	BXDISTB%				

	PUBxRGE	DISEL%,DSTBL%,ADR
L%,DSTBL%I'HB 5x/

	DISEL6%	C.RSET
	DISEL%68	STOPR.
	DISEL%	6XC.STOP
	DISEL%	K6xILL.
	DISEL%	GOT7O.
	DISEL%	TODAY78.
	DISEL%	KDECL.7X
	DISEL%	KPROG.
	DISEL%	DSP.FP
8	DISEL%	LINE.C
	88DISEL%	LINE.D
	D8XISEL%	LINE.H
	DI8xSEL%	LIN.RH
	DIS9EL%	CANCL.
IFN A98NS74,<
	DISEL%	S9X.CALL
>
	DISEL%9x	M.INIT
	DISEL%	:M.RMW
	DISEL%	M.:8RSW
	DISEL%	M.RM:XNW
	DISEL%	M.RSN:xW
	DISEL%	M.SEND;
	DISEL%	M.AC
	;8DISEL%	M.IFM
	DI;XSEL%	M.DI
	DISEL;x%	M.DIT
	DISEL%	<M.DO
	DISEL%	M.E<8I
	DISEL%	M.EIT
	DISEL%	M.EO
	D<xISEL%	STR.
	DISE=L%	STR.O
	DISEL%=8	UNS.
	DISEL%	UN=XS.O
	DISEL%	FUNC=xT.
	DISEL%	FIX.
	DISEL%	PERF.
	>8DISEL%	FLOT.1
	D>XISEL%	FLOT.2
	DI>xSEL%	PD6.
	DISEL?%	PD7.
	DISEL%	G?8D6.
	DISEL%	GD7.?X
	DISEL%	NEG.
	?xDISEL%	MAG.
	DIS@EL%	ADD.12
	DISE@8L%	ADD.21
	DISEL@X%	ADD.22
	DISEL%@x	SUB.12
	DISEL%	ASUB.21
	DISEL%	SA8UB.22
	DISEL%	MUAXL.12
	DISEL%	MULAx.21
	DISEL%	MUL.B22
	DISEL%	DIV.1B81
	DISEL%	DIV.12BX
	DISEL%	DIV.21
	DISEL%	DIV.22
C	DISEL%	C.OPEN
	C8DISEL%	C.CLOS
	DCXISEL%	DSPLY.
	DICxSEL%	ACEPT.
	DISDEL%	READ.
	DISELD8%	WRITE.
	DISEL%DX	WADV.
IFN ANS68Dx,<DISEL%	SEEK.>
EIFN ANS74,<DISEL%E8	RDNXT.>
	DISEL%EX	DELET.
	DISEL%	ExRERIT.
	DISEL%	PFURGE.
	DISEL%	INF8IT.
	DISEL%	TERMFX.
	DISEL%	COMP.
	DISEL%	CMP.76
G	DISEL%	SPAC.6
	G8DISEL%	NUM.6
	DIGXSEL%	ALF.6
	DISEGxL%	ZERO.6
	DISELH%	POS.6
	DISEL%	H8NEG.6
	DISEL%	SPHXAC.7
	DISEL%	NUMHx.7
	DISEL%	ALF.7I
	DISEL%	ZERO.7
	DISEL%	POS.7
	IXDISEL%	NEG.7
	DIIxSEL%	COMP.D
	DISJEL%	DBMS.
	DISELJ8%	MOVE.
	DISEL%	JXLFENQ.
	DISEL%	LJxRENQ.
	DISEL%	LRKDEQ.
	DISEL%	C.DK86D7
	DISEL%	C.D7KXD6
	DISEL%	CMP.EKx
	DISEL%	CMP.G
L	DISEL%	CMP.GE
	L8DISEL%	CMP.L
	DILXSEL%	CMP.LE
	DISLxEL%	CMP.N
	DISELM%	EDIT.S
	DISEL%M8	EDIT.U
IFN ANS6MX8,<
	DISEL%	EXAMMx.
>
IFN ANS74,<N
	DISEL%	INSP.
N8>
	DISEL%	SUBSC.NX
	DISEL%	SIZE.1
	DISEL%	SIZE.2
O	DISEL%	SIZE.3
	O8DISEL%	E.C3C1
	DOXISEL%	E.C3C3
	DIOxSEL%	OVLAY.
	DISPEL%	C.EXIT
	DISEP8L%	ARGS.
	DISEL%PX	PUTF.
	DISEL%	RPxESF.
	DISEL%	GETQNM.
	DISEL%	ILLCQ8.
	DISEL%	C.D6D9QX
	DISEL%	C.D7D9
	DISEL%	C.D9D6
R	DISEL%	C.D9D7
	R8DISEL%	PC3.
	DISRXEL%	PD9.
	DISEL%Rx	GC3.
	DISEL%	GDS9.
	DISEL%	POS.9S8
	DISEL%	NEG.9
SX	DISEL%	ZERO.9
	SxDISEL%	ALF.9
	DITSEL%	NUM.9
	DISET8L%	ALF.9
	DISEL%TX	SPAC.9
	DISEL%	TxCMP.96
	DISEL%	CUMP.97
	DISEL%	EDU8IT.B
	DISEL%	RSTUXAB.
	DISEL%	ZERCUx.6
	DISEL%	ZERC.V7
	DISEL%	ZERC.9V8
IFN ANS74,<
	DVXISEL%	C.STRT
	DIVxSEL%	DATE.
	DISEWL%	DAY.
	DISEL%	W8TIME.
>

	DSTBWXL%	USRTB.,15

Wx

	DISEL%	DSPL.6X
	DISEL%	DSPL.7

	DISEL%	SUBE1.XX
	DISEL%	SUBE2.
	DISEL%	SUBE3.
Y	DISEL%	EXIT.E
IY8FN BIS,<
	DISEL%YX	XTND.E
	DISEL%	YxALP.66
	DISEL%	AZLP.67
	DISEL%	ALZ8P.69
	DISEL%	ALPZX.76
	DISEL%	ALP.Zx77
	DISEL%	ALP.7[9
	DISEL%	ALP.96[8
	DISEL%	ALP.97
	DISEL%	ALP.99
[x	DISEL%	ALPS.6
	\DISEL%	ALPS.7
	D\8ISEL%	ALPS.9
	DI\XSEL%	NUM.66
	DIS\xEL%	NUM.67
	DISE]L%	NUM.69
	DISEL]8%	NUM.76
	DISEL%]X	NUM.77
	DISEL%	]xNUM.79
	DISEL%	N^UM.96
	DISEL%	NU^8M.97
	DISEL%	NUM^X.99
	DISEL%	CVTD^xB.
	DISEL%	CBDOV_.
	DISEL%	CVBD.6_8
	DISEL%	CVBD.7
	DISEL%	CVBD.9
_x	DISEL%	MUL.41
	`DISEL%	MUL.42
	D`8ISEL%	DIV.41
	DI`XSEL%	DIV.42
	DIS`xEL%	DVI41.
	DISEaL%	DVI42.
>;END a8IFN BIS
	DISEL%	aXKEY.
IFN TOPS20,ax<
	DISEL%	PSORT.b
	DISEL%	PMERG.
	DISEL%	RELES.
bX	DISEL%	MERGE.
	bxDISEL%	MCLOS.
	DcISEL%	RETRN.
	DIc8SEL%	ENDS.
>

cX
IFN BIS,<
	DIScxEL%	ADD.4R
>;ENDd IFN BIS
IFN TCSd8,<
	DISEL%	MBINDdX
	DISEL%	MNAME
dx>
	DISEL%	MVD.ALe
	DISEL%	NUM.3
e8	DISEL%	WADVV.
	eXDISEL%	WRITV.

ex
	DISEL%	METER.
IFN BIS,<			;[55f84] QUAD-WORD SIZEfX ERROR ROUTINES
fx	DISEL%	SIZE.4
	gDISEL%	SIZE.5
>;g8END IFN BIS			;[5gX54]
	DISEL%	FLT.gx12
	DISEL%	FLT.2h2
	DISEL%	FIX.2
	DISEL%	E.F2D1
hX	DISEL%	E.F2D2
	hxDISEL%	E.F2FP
	DiISEL%	E.F2F2
	DIi8SEL%	PPOT4.
	DISiXEL%	ISBPS.
	DISEixL%	MROUT.
				;[j621] (MUST BE PREj8SENT IN ALL FLAVOjXRS OF LIBOL)
;V1jx2B RMS ENTRY POINkTS
IFN ANS74,<
k8	DISEL%	OP.MIX
	kXDISEL%	CL.MIX
	DkxISEL%	WT.MIR
	DIlSEL%	WT.MIS
	DISl8EL%	RD.MIR
	DISElXL%	RD.MIS
	DISELlx%	DL.MIR
	DISEL%m	DL.MIS
	DISEL%	m8RW.MIR
	DISEL%	RmXW.MIS
	DISEL%	STmx.MEQ
	DISEL%	ST.nMGT
	DISEL%	ST.Mn8NL
>;END IFN ANSnX74

	DISEL%	%STnxR.
	DISEL%	%STR.oO
	DISEL%	%UNS.
	DISEL%	%UNS.O
oXIFN ANS74,<
	DISoxEL%	SWT.ON
	DISEpL%	SWT.OF
	DISELp8%	CMP.67
	DISEL%pX	CMP.69
	DISEL%	pxCMP.79
	DISEL%	CqOMP.6
	DISEL%	COq8MP.7
	DISEL%	COMqXP.9
	DISEL%	SU.Sqx69
	DISEL%	SU.S7r9
	DISEL%	SU.S97r8
>
IFN ANS74,<
IFN BIS,<
	DISErxL%	CVDBT.
	DISELs%	CVDBL.
>;END Is8FN BIS
>;END IFN ANS74

D IFNK:$IH x05
PRINTX % ENDDFB: THERE AR8E A BITS STILL UXNASSIGNED BY "DEFBYT"
D BY "DEFK:$IQ X0+
IF1,<
IxFN .BITST,<
	.BITLFT==^D36-.BITST8	;COMPUTE # OF FRXEE BITS
	RADIX 1x0		;MAKE IT COME OUT IN DECIMAL.
8	ENDDF1 (\.BITLFTX)	;CALL MACRO TO xPRINT NUMBER
	RADIX 8			;BACK TO 8OCTAL
>
>;END IF1

>
>;END IM&t.: 80
IF1,<
	X.BITST==0	; Resetx bit position to 0
>; END if1	

>; END if1	
M'Em6P	Q$u|SP&Q$v
	
	DEFI=xNE	SYMH%%	(N%,V)	><N%==:0>	
	DEFIN>8E	SYML%%	(N%,V)	<>XSYM%%	N%,V>	
	DE>xFINE	ELMT%%	(N%,L?<1>,V)	<BLKDFV	N%?8,L,<V>>	

	RELO?XC	0
	CHK==.

	?x%LOSEG

	COMCHK@	.-CHK		

	PURG@8E	SYML%%,SYMH%%,ELMT%%
SYMH%%,ES:4*b (!~
	ELMT%%	HFILES.
	ELMT%%	UhSES.
	ELMT%%	SEGWD.
	ELMT%%	ALTE(R.
	ELMT%%	OVRFNH.
	ELMT%%	POINT.h
	ELMT%%	COMMA.
	ELMT%%	MONEY.
(	ELMT%%	MEMRY.
	HELMT%%	%NM.
	ELMhT%%	%DT.
	ELMT%%	%PR.
	ELMT%%	CO(BVR.
	ELMT%%	COBHSW.
	ELMT%%	PUSHhL.
	ELMT%%	SURRT.
	ELMT%%	SUEQT.(
	ELMT%%	SUFBT.
 IFN ANS74,<
	EhLMT%%	%DB.
 >
MT%%	%DB.
 >
S:5 R5%
	INC==0	R8	
	DEFINE	ELMT%%RX	(N%,L<1>,V)	<
	RxIFNB	<N%>,<%'N%==S:INC>
	INC==INC+S81
	>
	DEFINE	SYSXML%%	(N%,L<1>,V)	Sx<
	IFNB	<N%>,<%'TN%==:INC>
	>
	IT8NFBK%

	PURGE	ETXLMT%%,SYML%%,INC

,SYML%%,INC++
	ELMT%%	PxUEBLK.,4
	ELMT%%Q	ULBLK.,4
	ELMT%Q8%	TTOBP.,1
	ELMTQX%%	TTOBC.,1
	ELMQxT%%	TTOBF.,^D27
R	ELMT%%	STDLB.,16R8

	ELMT%%	RRFLGRX.,1
	ELMT%%	REDMRxP.,1
	ELMT%%	SHRSDX.,1
	ELMT%%	TES8MP.,1
	ELMT%%	TESXMP.1,1
	ELMT%%	JSxSARR.,1
	ELMT%%	TTEMP.2,1
	ELMT%%T8	AINFO.,1
	ELMT%TX%	OVRBF.,3
	ELMTTx%%	FLDCT.,1
	ELMUT%%	OVRIX.,1
	ELU8MT%%	NOCR.,1
	ELUXMT%%	PRGFLG,1
	EUxLMT%%	TTYOPN,1
V
	ELMT%%	ACSAV0,1V87
	ELMT%%	MXIE,1VX
	ELMT%%	IESAVE,Vx1
	ELMT%%	MXBUF,W1
	ELMT%%	AUXBUFW8,1
	ELMT%%	AUXIOWXW,1
	ELMT%%	AUXBWxNO,1
	ELMT%%	CMDXLST,2
	ELMT%%	NEX8WBK1,1
	ELMT%%	NXXEWBK2,1
	ELMT%%	XxOLDBK,1
	ELMT%%	YMXBF,1
	ELMT%%	DY8RTAB,1
	ELMT%%	LYXRWA,1
	ELMT%%	COYxRPT.,1
	ELMT%%	HZLOTC.,1
	ELMT%%	Z8OTCPT.,1
	ELMT%%ZX	RUN.TM,1

	ELMZxT%%	CB.DDT,1
	EL[MT%%	SBPSA.,1
	E[8LMT%%	%F.PTR,1
[X
	ELMT%%	INTBLK,4[x


	ELMT%%	FS.\ZRO,1
	ELMT%%	FS\8.FS,1
	ELMT%%	FS\X.EN,1
	ELMT%%	FS\x.BN,1
	ELMT%%	FS].RN,1
	ELMT%%	FS]8.UPD,1
	ELMT%%	F]XS.IGE,1
	ELMT%%	]xFS.IF,1
	ELMT%%	^FS.IEC,1



I^8FE TOPS20,<
	ELM^XT%%	PTH.BK,.PTMAX^x
>


	ELMT%%	_FOP.BK,1
	ELMT%%_8	FOP.IS,1
	ELMT%_X%	FOP.DN,1
	ELMT_x%%	FOP.BH,1
	ELM`T%%	FOP.BN,1
	EL`8MT%%	FOP.LB,1
	E`XLMT%%	FOP.PP,1
`x

	ELMT%%	CP.BLKa,1
	ELMT%%	CP.BKa81,1
	ELMT%%	CP.BaXK2,1
	ELMT%%	CP.axBK3,1
	ELMT%%	CPb.BK4,1
	ELMT%%	Cb8P.BK5,1
	ELMT%%	bXCP.BK6,1
	ELMT%%bx	CP.BK7,1
	
	; cMAKE TMP.BK AT LEc8AST AS BIG AS .TPcXLEN ON TOPS10

cxIFN TOPS20,<	ELMTd%%	TMP.BK,15>
IFd8E TOPS20,<	
 IFNdXDEF .TPLEN,<ELMT%dx%	TMP.BK,15>
 IFeDEF .TPLEN,<
  Ie8FL <15-.TPLEN>,< eXELMT%%	TMP.BK,.TPexLEN>
  IFGE <15-f.TPLEN>,< ELMT%%	f8TMP.BK,15>
 >
>fX

	ELMT%%	FID.BfxK,15

	ELMT%%	NgRSAV.,5

	ELMT%g8%	AUTOLB,1
	ELMTgX%%	DELSIZ,1
	ELMgxT%%	LNKNO.,1
	ELhMT%%	RELEN.,1

h8

	ELMT%%	SRC.MhXD,1
	ELMT%%	DLM.hxMD,1
	ELMT%%	DSTi.MD,1
	ELMT%%	NXi8.SSA,1	;ADDRESS OiXF NEXT SOURCE SERixIES ITEM
	ELMT%%j	CV.DLM,1	;INSTRUj8CTION TO CONVERT jXDELIMITER
	ELMT%jx%	SSACB.,16	; SAVkED AC'S WHEN CALLk8ING A TAG
	ELMT%kX%	TAG.PT,1	;ADDR kxOF ROUTINE TO STOlRE POINTER VALUE
	ELMT%%	TAG.DL,1lX	;ADDR OF ROUTINElx TO GET NUMERIC DmELIMITER
	ELMT%%m8	TAG.SR,1	;ADDR OmXF ROUTINE TO GET mxNUMERIC SOURCE
	nELMT%%	SS.CNT,1	;n8SOURCE-SERIES ITEnXM COUNTER
	ELMT%nx%	DLM.TP,1	;ADDR oOF %TEMP OR %LIT o8FOR DELIMITER
	EoXLMT%%	SRC.TP,1	;AoxDDR OF %TEMP OR %pLIT FOR SOURCE
	p8ELMT%%	NX.SRC,1	;pXADDR OF NEXT SOURpxCE ITEM
	ELMT%%	qNUM.SR,1	;NUMBER q8OF SOURCES IN THIqXS SS
	ELMT%%	NUMqx.RC,1	;NUMBER OF rRECEIVING ITEMS Fr8OR UNSTRING
	ELMrXT%%	CT.DLM,1	;COUrxNT OF DELIMITERS
	ELMT%%	SRD.BP,1s8	;HOLDS BP FOR SOsXURCE - START OF 1sxST MATCH
	ELMT%%t	SRD.CC,1	;HOLDS t8CC FOR SOURCE - StXTART OF 1ST MATCHtx
	ELMT%%	SRA.BP,u1	;HOLDS BP FOR Su8OURCE AFTER LAST uXMATCH
	ELMT%%	SRuxA.CC,1	;HOLDS CC vFOR SOURCE AFTER v8LAST MATCH
	ELMTvX%%	CV.SDS,1	;CONVvxERSION FROM SOURCwE TO DEST
	ELMT%w8%	TAG.ST,1	;GET %wXTEMP SET UP FOR DwxEST.
	ELMT%%	NX.xDLM,1	;NEXT DELIMx8ITER
	ELMT%%	NUMxX.DL,1	;NUMBER OF xxDELIMITERS
	ELMTy%%	TAG.CT,1	;TAG y8TO STORE COUNT ITyXEM
	ELMT%%	TAG.DyxA,1	;TAG TO STOREz AWAY DEST FROM Oz8U.TMP
	ELMT%%	DSzXT.TP,1	;%LIT OR %zxTEMP FOR DEST.
	{ELMT%%	TAG.TL,1	;{8TAG TO STORE TALL{XY ITEM

	ELMT%%{x	BS.AGL,1



|
	ELMT%%	SRC.PT,|81
	ELMT%%	SRC.CT|X,1

	ELMT%%	TMP|x.DP,1

	ELMT%%	}OU.ARP,1
	ELMT%%}8	OU.MDE,1

	ELM}XT%%	TL.ARG,1
	EL}xMT%%	TL.VLU,1

~	ELMT%%	PT.ARG,1
	ELMT%%	PT.VLU,1~X

	ELMT%%	AP.TM~xP,1
	ELMT%%	DW.TMP,1

	ELMT%%	S8E.DLM,1

	ELMT%X%	PF.MDE,1

	ELxMT%%	PT.AGL,1
	ELMT%%	TP.AGL,1
8
	ELMT%%	SU.AGL,1X

	ELMT%%	BS.DLxM,1
	ELMT%%	TP.DLM,1

	ELMT%8%	SU.RR
	ELMT%%	XSU.DBR
	ELMT%%	SxU.EQ
				
	ELMT%%	SU.DQ
	ELMT%%8	SU.MQ
	ELMT%%	SXU.RRT
	ELMT%%	SUx.T1
	ELMT%%	SU.T2
	ELMT%%	SU.T3
	ELMT%%	SU.T4
	XELMT%%	SU.T5
	ELxMT%%	SU.T6
	ELMT%%	SU.T7
	ELMT%%8	SU.T8
	ELMT%%	SXU.T9
	ELMT%%	SU.xCRH
				
	ELMT%%	SU.EQT
	ELMT%%8	SU.DQT
	ELMT%%	XSU.MQT
	ELMT%%	SxU.Y
	ELMT%%	SU.RBP
				
	ELMT%%8	SU.MRR
	ELMT%%	XSU.SBD
	ELMT%%	SxU.RLV
	ELMT%%	SU.RND
	ELMT%%	SU.8SFQ
	ELMT%%	SU.SXFS
	ELMT%%	SU.SBxS
	ELMT%%	SU.NR
	ELMT%%	SU.FR
	8ELMT%%	SU.AK
	ELXMT%%	SU.FBT
	ELMxT%%	SU.CFB
	ELMT	%%	SU.VRB
				
	8	ELMT%%	SU.HV
	E	XLMT%%	SU.CK
	ELM	xT%%	SU.SVK
	ELMT
%%	SU.CL1
	ELMT%
8%	SU.CL2
	ELMT%%
X	SU.CLR
	ELMT%%	
xSU.CLS
	ELMT%%	SU.SAV,5

	ELMT%8%	FET1,1
	ELMT%%X	FET2,1
	ELMT%%	xFET3,1
	ELMT%%	F
ET4,1

	ELMT%%	
8SU.FRF


	ELMT
X%%	USRLO.
IFN BI
xS,<
	ELMT%%	MRKP
>


	ELMFUN.A0,1
	EL%	FUN.ST,1
	ET%%	FUN.A1,1
	ELMT%%	FUN.A2,1
8	ELMT%%	FUN.A3,1


IFN MCS!TCS,x<
IFE TOPS20,<
	ELMT%%	SNDMSG,180
	ELMT%%	MCSTN,X1
	ELMT%%	M.TMP1x,1
	ELMT%%	M.TMP2,1
	ELMT%%	M.AT8CT,1
	ELMT%%	MCSXPT,1
	ELMT%%	PIDxMCP,1
	ELMT%%	PIDLCM,1
	ELMT%%	I8PCFLG,1
	ELMT%%	XPAKSND,4
	ELMT%%x	MSGSND,10
	ELMT%%	PAKREC,4
	ELM8T%%	MSGREC,10

X



	ELMT%%	PxAGOFF,1
	ELMT%%	PAGBIT,1
	ELMT%%8	PAGLST,1
	ELMT%X%	PAGCNT,1
>>
 xIFE TOPS20,<
	ELMT%%	PAGTBL,20
	8ELMT%%	T1SAV,1
>X
	ELMT%%	DBMLOC,x1


IFN MCS!TCS,<
 IFN TOPS20,8<
	ELMT%% TP.RG1X,1
	ELMT%% TP.RGx2,1
	ELMT%% TP.RG3,1
	ELMT%% TP.8RG4,1
	ELMT%% TPX.RG5,1
	ELMT%% TxP.ID,1
	ELMT%% TP.CRP,1
	ELMT%% 8TP.IPC,1
	ELMT%%X TP.CPP,1
	ELMT%x% TP.JFN,1
	ELMT%% TP.WNS,1
	ELM8T%% TP.TMP,3
	SYXML%% TP.PDS,^D10
	ELMT%% TP.PDB,TP.PDS
	SYML%% TP8.PKS,^D30
	ELMT%X% TP.PKT,TP.PKS
x	SYML%% TP.NAM,TP.PKT+2
	ELMT%% T8P.TPD,1
	ELMT%% XTP.LPD,1
	ELMT%%x TP.HDS,1
	ELMT%% TP.HDP,1
	ELMT8%% TP.DVP,1
	ELMXT%% TP.BTP,1
	ELxMT%% TP.PAT,^D10
>>

IFN DBMS,<8
	ELMT%% DBMLOK,X1
>
	ELMT%% OSHxOOT,1

IFE TOPS20,<
	ELMT%% M7.800,1
>

IFN LSXTATS,<
	ELMT%%	MxRTMB.,1
	ELMT%%	MROPT.,1
	ELMT%%8	MROPTT,^D16
			X		; POINTS TO STAxRT OF BUCKET BLOCK
	ELMT%%	MRHDBP8,1
	ELMT%%	MRHDFXL,1
					; BLOCKx
	ELMT%%	MRTDBP, 1
	ELMT%%	MRLDBL 8,1
					; OR BUF XFER FOR COPY FROM x .TMP TO .MTO
IF!N DBMS6,<
	ELMT%!8%	MRDDBP,1
>
	E!XLMT%%	MRNM6,1
	E!xLMT%%	MRNMA,3
	E"LMT%%	MRAFFT,1
	"8ELMT%%	MRFKFT,1
"XIFE TOPS20,<
	EL"xMT%%	MBTIM.,1
	E#LMT%%	MRCHNN,1
	#8ELMT%%	MRCHCF,1
#X	ELMT%%	MRBLKO,1
	ELMT%%	MRBKO.,1$
	>
IFN TOPS20,$8<
	ELMT%%	MBTIM.$X,2
	ELMT%%	MRJFN$x,1
	ELMT%%	MRLCJ%F,1
	ELMT%%	MRBL%8KO,2
	ELMT%%	MRB%XKO.,2
IFN FTLSDR%x,<
	ELMT%%	MRLDN&A,^D10
	ELMT%%	M&8RLDJF,1
	  >;END&X IFN FTLSDR
	>;E&xND IFN TOPS20
IF'N FTLSDR,<
	ELMT'8%%	MRLBPC,1
	ELM'XT%%	MRLSZL,1
	EL'xMT%%	MRLFPR,1
  (IFE TOPS20,<
	EL(8MT%%	MRCHLS,1
	E(XLMT%%	MRLLDR,1
	(xELMT%%	MRLLDV,1
)	ELMT%%	MRCFNM,1
	ELMT%%	MRCFEX,1)X
   >;END IFE TO)xPS20
>;END IFN F*TLSDR
	ELMT%%	MR*8APN.,1
					;0 I*XF FILE IS NEW
	E*xLMT%%	MRFPGT,1,
+	ELMT%%	MRKILL,1
	ELMT%%	MRBNUM,1+X
	ELMT%%	MRRERN,+x1
					; (THUS C,AN'T WRITE IN .MT,8O FILE)
IFN TOPS,X20, ELMT%% MRPSTM,x,2
IFE TOPS20, E-LMT%% MRPSTM,1
-8
>

	ELMT%%	DBS-XTP.,1

;THE FOL-xLOWING ARE USED F.OR $ERROR PROCESS.8ING
	ELMT%%	ER.P.XC,1
	ELMT%%	ER.F.xLG,1
	ELMT%%	ER./MCL,1
	ELMT%%	ER/8.HIJ,1
					; SO/XMETIMES SET UP BE/xFORE THE $ERROR
0					; CALL.
IFN08 TOPS20,<
	ELMT%0X%	ER.JSE,1
>
IF0xE TOPS20,<
	ELMT1%%	ER.E10,1
>
	18ELMT%%	ER.RBG,1
1X
;** THE FOLLOWI1xNG LOCATIONS SHOU2LD BECOME "VISIBL28E" IN VERSION 13.2X
;   THEY ARE HE2xRE TEMPORARILY FO3R 12B SO 12A IS C38OMPATIBLE.
	ELMT3X%%	SLRSW.,1
	ELM3xT%%	RMFLG.,1

4
IFN ANS74,<
;US48ED BY RMSIO
	ELM4XT%%	CVPRM.,2
	EL4xMT%%	CVARGS,2
	E5LMT%%	RMSVR.,1
>58
	ELMT%%	INTRAP,1
MT%%	INTRAP,Y<v
@ 1

;ERROR8 CHECKS
IF1,<
	XIFNDEF XB,<PRINTxX ? B NOT DEFINED WITH "DEFBYT">
>;END PASS 1 ERRXOR CHECKS

DFBFx==XB_-^D32		;GET	 FLAG WORDS
IFE 	8DFBF-DFB.FW,<		;G	XEN FULL WORD INST	xRUCTION
	MOVE	A
,YB+C
	>
IFE 
8DFBF-DFB.RH,<		;G
XEN RIGHT HALF WOR
xD INSTRUCTION
	HRRZ	A,YB+C
	>8
IFE DFBF-DFB.LHX,<		;GEN LEFT HALxF WORD INSTRUCTIO
N
	HLRZ	A,YB+
8C
	>
IFE DFBF-D
XFB.BT,<
..X==XB
x_^D18
..X==..X;-TIRIDBO
..Y=B-^D18>&^O77		;GET LH, JUST #8 OF BITS
	..LIT=X=<YB+C>	;FIRST xPART OF LITERAL BEING BUILT
	..LI8T==..LIT+<..Y_^D2X4> ;# OF BITS IN xBYTE PTR
	..LIT==..LIT+<<^D36-..X8-1>_^D30> ;FINAL XBIT POSITION IN BxYTE PTR
	LDB	A,[..LIT]
	>
A,Y?< C84u
	DEFINE	CXSYMH%%	(N%,V)	< >Cx
	DEFINE	SYML%%	D(N%,V)	<SYM%%	N%,D8V>	
	DEFINE	ELMTDX%%	(N%,L<1>,V)	<BDxLKDFV	N%,L,<V>>
E	LOC	LO.PUR			
E8
	VISBL%

	DEFIEXNE	ELMT%%	(N%,L<1Ex>,V) <BLOCK L>
F
	INFBK%


	DEF8FINE	ELMT%%	(N%,LFX<1>,V) <
	IFIDN Fx<N%><E0.6>,<N%::	GE0.6.1=:E0.6+1>
G8	IFIDN <N%><E0.7>GX,<N%::	E0.7.1=:E0Gx.7+1>
	IFIDN <N%H><E0.9>,<N%::	E0.H89.1=:E0.9+1>
	IFHXIDN <N%><OU.TMP>,Hx<N%::>
	IFIDN <NI%><DST.BP>,<N%::>I8
	IFIDN <N%><DSTIX.CC>,<N%::>
	IFIIxDN <N%><PT.VAL>,<JN%::>
	IFIDN <N%J8><SRC.BP>,<N%::>
	IFIDN <N%><SRC.JxCC>,<N%::>
	IFIDKN <N%><SR.TMP>,<NK8%::>
	IFIDN <N%>KX<DLM.BP>,<N%::>
Kx	IFIDN <N%><DLM.CLC>,<N%::>
	IFIDNL8 <N%><TMP.DL>,<N%LX::>
	IFIDN <N%><LxTL.VAL>,<N%::>
	MIFIDN <N%><CT.VALM8>,<N%::>
	BLOCK	MXL>

	DEFINE	SYMMxL%%	(N%,V)	< >
N
	PREST%

	COMCN8HK	.-LO.PUR	

	NXPURGE	ELMT%%,SYMH%%,SYML%%,ADR
[P _BpZ7Q _Bp[zQ aJ.=  H%
	SYML%%	 xIFRST.,.
	SYMH%%!	PFRST.,.

IFN !8ANS68,<
	ELMT%%	!XOVFLG.,1,<Z		>
>!x

IFN BIS,<
	E"LMT%%	E0.6,1,<EDI"8T	0>
	ELMT%%	E0."X6.1,1,<0>
	ELMT%"x%	,1,<0>
	ELMT%%#	,1,<"$"-40>
	EL#8MT%%	,1,<","-40>
	ELMT%%	,1,<"."-#x40>
	ELMT%%	,1,<$" "-40>
	ELMT%%	$8,1,<"0"-40>
	ELM$XT%%	,1,<"+"-40>
$x	ELMT%%	,1,<"-"-4%0>
	ELMT%%	,1,<"%8C"-40>
	ELMT%%	,%X1,<"R"-40>
	ELMT%x%%	,1,<"D"-40>
	&ELMT%%	,1,<"B"-40&8>
IFN ANS74,<
	&XELMT%%	,1,<"/"-40&x>
>

	ELMT%%	E'0.7,1,<EDIT	0>
	'8ELMT%%	E0.7.1,1,<'X0>
	ELMT%%	,1,<0'x>
	ELMT%%	,1,<"$(">
	ELMT%%	,1,<"(8,">
	ELMT%%	,1,<(X".">
	ELMT%%	,1,(x<" ">
	ELMT%%	,1),<"0">
	ELMT%%	,)81,<"+">
	ELMT%%	)X,1,<"-">
	ELMT%%)x	,1,<"C">
	ELMT%*%	,1,<"R">
	ELMT*8%%	,1,<"D">
	ELM*XT%%	,1,<"B">
IFN*x ANS74,<
	ELMT%%+	,1,<"/">
>

	+8ELMT%%	E0.9,1,<ED+XIT	0>
	ELMT%%	E0+x.9.1,1,<0>
	ELMT,%%	,1,<0>
	ELMT%,8%	,1,<133>
	ELMT,X%%	,1,<153>
	ELM,xT%%	,1,<113>
	EL-MT%%	,1,<100>
	E-8LMT%%	,1,<360>
	-XELMT%%	,1,<116>
-x	ELMT%%	,1,<140>
	ELMT%%	,1,<303>.8
	ELMT%%	,1,<331.X>
	ELMT%%	,1,<30.x4>
	ELMT%%	,1,<3/02>
IFN ANS74,<
	ELMT%%	,1,<141>/X
>
>



	EL/xMT%%	OU.TMP,5		;F0OR STRING
	ELMT%08%	DST.BP,1		;DEST0XINATION BYTE POIN0xTER
	ELMT%%	DST.1CC,1		;DESTINATIO18N CHAR COUNT
	EL1XMT%%	PT.VAL,1		;'1xPOINTER' VALUE
	2ELMT%%	SRC.BP,1		28;SOURCE BYTE PTR
	ELMT%%	SRC.CC,12x		;CC OF SOURCE
3	ELMT%%	SR.TMP,5	38	;TEMP HOLD FOR N3XUMERIC SOURCE
	E3xLMT%%	DLM.BP,1		;4BYTE PTR TO DELIM48ITER
	ELMT%%	DLM4X.CC,1		;CC OF DEL4xIMITER
	ELMT%%	T5MP.DL,5		;TEMP HO58LD FOR NUMERIC DE5XLIMITER
	ELMT%%	5xTL.VAL,1		;TALLY 6VALUE
	ELMT%%	CT68.VAL,1		;COUNT VA6XLUE

	SYML%%	FR6xSTIC,.
	ELMT%%	I7IN,1,<IN 0,CMDLST78	>
	ELMT%%	IOUT,7X1,<OUT 0,CMDLST	>7x
	ELMT%%	ISETI,18,<USETI 0,(AC1)	>88
	ELMT%%	ISETO,18X,<USETO 0,(AC1)	>8x
	ELMT%%	ICLOS,19,<CLOSE 0,0	>
	E98LMT%%	IRELE,1,<RE9XLEAS 0,0	>
	ELMT9x%%	IGETS,1,<GETST:S 0,AC2	>
	ELMT%:8%	ISETS,1,<SETSTS:X 0(AC2)>
	ELMT%%:x	IWAIT,1,<CALLI 0;,10	>
	ELMT%%	IR;8NAM,1,<RENAME 0,U;XEBLK.	>
	SYML%%	;xLASTIC,<.-1>

	<SYML%%	UFRST.,.
<8	ELMT%%	MWAIT.,1,<X<MTAPE 0,0	>
	EL<xMT%%	MREW.,1,<MTA=PE 0,1	>
	ELMT%%=8	MREWU.,1,<MTAPE =X0,11	>
	ELMT%%	M=xBSPR.,1,<MTAPE 0,>7	>
	ELMT%%	MBSP>8F.,1,<MTAPE 0,17	>X>
	ELMT%%	MADVR.>x,1,<MTAPE 0,6	>
?	ELMT%%	MADVF.,1,?8<MTAPE 0,16	>
	E?XLMT%%	MWEOF.,1,<M?xTAPE 0,3	>
	ELMT@%%	MTIND.,1,<MTAP@8E 0,101	>
	ELMT%@X%	MERAS.,1,<MTAPE@x 0,13	>


	ELMAT%%	SOBOT.,1,<STAA8TO 0,4000	>
	ELMAXT%%	SZBOT.,1,<STAAxTZ 0,4000	>
	ELMBT%%	SZEOF.,1,<STAB8TZ 0,20000	>
	ELBXMT%%	SZEOT.,1,<STBxATZ 0,2000	>
	ELCMT%%	UOPEN.,1,<OPC8EN 0,UOBLK.	>
	ECXLMT%%	UENTR.,1,<ECxNTER 0,UEBLK.>
	DELMT%%	ULKUP.,1,<D8LOOKUP 0,ULBLK.>
	ELMT%%	UOBUF.,1Dx,<OUTBUF 0,2(AC6)E>
	ELMT%%	UIBUF.E8,1,<INBUF 0,2(AC6EX)	>
	ELMT%%	UCLOExS.,1,<CLOSE 0,0	>F
	ELMT%%	URELE.,F81,<RELEAS 0,0	>
FX	ELMT%%	USETI.,1,Fx<USETI 0,(AC1)	>
	ELMT%%	USETO.,1G8,<USETO 0,(AC1)	>GX
	ELMT%%	UOUT.,1Gx,<OUT 0,0		>
	ELHMT%%	UIN.,1,<IN 0H8,0		>
	ELMT%%	USHXETS.,1,<SETSTS 0,Hx(AC2)	>
	ELMT%%	IUGETS.,1,<GETSTS I80,AC2	>
	ELMT%%	IXUWAIT.,1,<CALLI	0Ix,10	>
IFN ANS68,J<
	ELMT%%	USEEK.J8,1,<CALLI	0,56	>
>
IFN ANS74,<
Jx	SYML%% 	USEEK.,-K1
>
	ELMT%%	URNK8AM.,1,<RENAME 0,UKXEBLK.>
	SYML%%	UKxLAST.,<.-1>
	SYMLL%%	ULEN.,<UFRST.L8-ULAST.>

	ELMTLX%%	UOCAL.,1,<EXP LxC.RSET##+1>
	ELMMT%%	UOBLK.,3,<EXPM8 0		>
	ELMT%%	TMMXP.PT,1,<POINT 7,TMxMP.BK>
	ELMT%%  NFID.PT,1,<POINT 7N8,FID.BK>
	ELMT%%NX	FUSIA.,2,<EXP 11Nx	>
	ELMT%%	FUSOAO.,2,<EXP 12	>
	EO8LMT%%	FUSCP.,1,<EOXXP 10	>
	ELMT%%	OxARGBK.,6,<EXP 5		P>
	SYML%%	ILAST.,<.-6>

	AST.aW
" 483Q

	
IFE4X TOPS20,<
	DEFIN4xE	DISEL%	(NAM)	<J5RST	1,NAM##>	
	D58EFINE	DSTBL%	(NAM5X,IR)	<JRST	1,@NAM5x##(IR)>
>
IFN T6OPS20,<
	DEFINE	68DISEL%	(NAM)	<JRS6XT	NAM##>	
	DEFIN6xE	DSTBL%	(NAM,IR)7	<JRST	@NAM##(IR)78>
>
	RELOC	HI.O7XRG			
	DISTB%			7x	

	
	DEFINE	S8YMH%%	(N%,V)	<SYM88%%	N%,V>	
	DEFIN8XE	SYML%%	(N%,V)	<8x >		
	DEFINE	ELM9T%%	(N%,L<1>,V)	<98BLKDFV	,L,<V>>	
9X	PREST%				

	P9xURGE	ELMT%%,SYMH%:%,SYML%%,DISEL%,DSTBL%
DISEL%,DaWKb :X3i

	DEFIN:xE	ELMT%%	(N%,L<1>;,V)	<BLKDF	N%,L>	;8
	LOC	LO.PUR			
	DEFINE	SYML%%	(;xN%,V)	<SYM%%	N%,V<>	
	DEFINE	SYMH%<8%	(N%,V)	< >	

<X	%LOSEG			

	CO<xMCHK	.-LO.PUR	
=
	PURGE	ELMT%%,SYMH%%,SYML%%
SYe-nQ gl.: ~x0

IF1,<				;ONLY HAPPENS 8ON PASS 1
;ERRORX CHECKS
IFNDEF XxB,<	PRINTX ? SAMBYT: B NOT PREVI8OUSLY DEFINED WITXH DEFBYT>

XA=x=XB
YA==YB
>;END IF1
B
>gRX5Q @gRY8Q gRYzQ gR[VQ gR~)  82)

;ERRORX CHECKS
IF1,<
	xIFNDEF XB,<PRINTX ? B NOT DEFINE8D WITH "DEFBYT">
>;END PASS 1 ERRxOR CHECKS

DFBF==XB_-^D32		;GET8 FLAG WORDS
IFE XDFBF-DFB.FW,<		;GxEN FULL WORD INSTRUCTION
	MOVEM	8A,YB+C
	>
IFEX DFBF-DFB.RH,<		;xGEN RIGHT HALF WORD INSTRUCTION
	8HRRM	A,YB+C
	X>
IFE DFBF-DFB.LxH,<		;GEN LEFT HA LF WORD INSTRUCTI 8ON
	HRLM	A,YB+ XC
	>
IFE DFBF- xDFB.BT,<
..X==X!B_^D18
..X==..X_!8-^D18			;GET RID !XOF LH, = ENDING B!xIT POSITION 
..Y"==<XB_-^D18>&^O7"87		;GET LH, JUST "X# OF BITS
	..LIT"x==<YB+C>	;FIRST# PART OF LITERAL #8BEING BUILT
	..L#XIT==..LIT+<..Y_^D#x24> ;# OF BITS IN$ BYTE PTR
	..LIT$8==..LIT+<<^D36-..$XX-1>_^D30> ;FINAL$x BIT POSITION IN %BYTE PTR
	DPB	A,[..LIT]
	>
AgfhQ  3A==:BiP i?4HP m'+ !V

	ELMT%(%	MEMRY%,1
	ELMTH%%	TALLY.,1,<Z>
h	ELMT%%	SZERA.,1,<Z>
	ELMT%%	OVFL(O.,1,<Z>

	ELMTH%%	TRAC1.,1,<JRSTh	BTRAC.##>
	ELMT%%	TRAC2.,1,<JRST(	TRPOP.##>
	ELMTH%%	TRAC3.,1,<JRSTh	TRPD.##>

	ELMT%%	OPNCH.,1,<XWD(	777774,0>
	ELMTH%%	RN.DEV,1
	ELMhT%%	RN.PPN,1
	ELMT%%	RN.NAM,1
	E(LMT%%	FSLOC.,1,<ZH>
	ELMT%%	HLOVL.h,1,<Z>

	ELMT%%	%REMOV,1,<EXP	RE(MOV.##>
IFN ANS7H4,<
	ELMT%%	%ENThOV,1,<EXP	ENTOV.##>
>

	ELMT%%	(KEYCV.,1,<Z>
	ELHMT%%	SAVEF.,1,<Z>h






	ELMT%%	HPRT.,1,<EXP(	HSRPT.##>
					H	; PRINTING ROUTIhNE.
	ELMT%%	SEGNO.,1,<Z>
	ELMT%%(	SNRBP.,1,<EXP	SBHPSG.##>


	ELMhT%%	TRAC4.,1,<EXP	CNTRC.##>
	ELMT(%%	CIOTF.,1,<EXP	HSFOV.##>



h


IFN DBMS,<				;[623]
	ELMT%%(	DBSTP%,1,<EXP	DBHSTP$##>
	SYML%%	hLEVEL.,<.-1>
	IFNDEF LEVEL.,<PRIN(TX ?LEVEL. NOT DEHFINED!>
>					;[h623]
IFE DBMS,<				;[623]
	ELMT%(%	LEVEL.,1,<Z>
>H					;[623]

	EhLMT%%	METR.,1,<Z>



.,1,<Z>u2| 81W

;ERRORX CHECKS
IF1,<
	xIFNDEF XB,<PRINTX ? B NOT DEFINE8D WITH "DEFBYT">
>;END PASS 1 ERRxOR CHECKS

DFBF==XB_-^D32		;GET8 FLAG WORDS
IFE XDFBF-DFB.FW,<		;GxEN FULL WORD INSTRUCTION
	MOVE	A8,C
	>
IFE DFBFX-DFB.RH,<		;GEN RxIGHT HALF WORD INSTRUCTION
	HRRZ	8A,C
	>
IFE DFXBF-DFB.LH,<		;GENx LEFT HALF WORD INSTRUCTION
	HLRZ8	A,C
	>
IFE DXFBF-DFB.BT,<
..Xx==XB_^D18
..X==..X-^D18			;GET 8RID OF LH, = ENDIXNG BIT POSITION 
..Y==<XB_-^D18>&^O77		;GET LH, J8UST # OF BITS
	.X.LIT==<C>		;FIRSxT PART OF LITERAL BEING BUILT
	..8LIT==..LIT+<..Y_^XD24> ;# OF BITS IxN BYTE PTR
	..LIT==..LIT+<<^D36-.8.X-1>_^D30> ;FINAXL BIT POSITION INx BYTE PTR
	LDB	A,[..LIT]
	>
uO%|R %X2{

;ERROR%x CHECKS
IF1,<
	&IFNDEF XB,<PRINT&8X ? B NOT DEFINE&XD WITH "DEFBYT">
>;END PASS 1 ERR'OR CHECKS

DFBF'8==XB_-^D32		;GET'X FLAG WORDS
IFE 'xDFBF-DFB.FW,<		;G(EN FULL WORD INST(8RUCTION
	MOVEM	(XA,C
	>
IFE DFB(xF-DFB.RH,<		;GEN )RIGHT HALF WORD I)8NSTRUCTION
	HRRM)X	A,C
	>
IFE D)xFBF-DFB.LH,<		;GE*N LEFT HALF WORD *8INSTRUCTION
	HRL*XM	A,C
	>
IFE *xDFBF-DFB.BT,<
..+X==XB_^D18
..X=+8=..X_-^D18			;GET+X RID OF LH, = END+xING BIT POSITION ,
..Y==<XB_-^D18,8>&^O77		;GET LH, ,XJUST # OF BITS
	,x..LIT==<C>		;FIR-ST PART OF LITERA-8L BEING BUILT
	.-X.LIT==..LIT+<..Y_-x^D24> ;# OF BITS .IN BYTE PTR
	..L.8IT==..LIT+<<^D36-.X..X-1>_^D30> ;FIN.xAL BIT POSITION I/N BYTE PTR
	DPB	/8A,[..LIT]
	>
A,[..LIT]
	>

{:P 
&C@P 
uS@P 
#@P fI9P |,{P |-YP }[0P MI9P 2~93 /x3
	VISBL%	0	
	INFBK%		
	PR08EST%	
	LIDAT%		
%	
	LIDAT%		6}i<P ?6)WP B}ZP C.:P N,}rP O,\:P O,hZP O.,ZP W\gP S@P >}{woP