Google
 

Trailing-Edge - PDP-10 Archives - BB-H506D-SM_1983 - cobol/build/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@ 13X`
	IFNB	<18A>,<A::>
	BLOCK	B
:>
	BLOCK5F31E2\I[ 23Xp
	IFNB	<2HA>,<A::>
	IFN	2hB,<IFB	<C>,<BLOC3K	B>
		    IFNB3(	<C>,<REPEAT	B,3H<
					C>>
		>
				C>>
		>5G3YQ @G3[Q G>l: O5

	IFG	A-O(COMSIZ,<
	XXX.==OHA-COMSIZ
  DEFIOhNE PEXCS(OVRFLO),P<
	PRINTX	?COMSIP(Z EXCEEDED BY 'OVPHRFLO (OCTAL) WORDPhS - REGENERATE THQE COMPILER
Q(>
	PEXCS(\XXX.)
>QH;END IFG A-COMSIZ
IFG A-COMSIG>n:=P pI
n0P I4.: sh/r

IFNDEFt .BITST,<	.BITST=t(=0>	;START AT 0
tH
IF1,<			;ALL THthIS STUFF HAPPENS uONLY IN PASS 1
u(
;ERROR CHECKS
IuHFDEF YA,<	PRINTXuh ?A ALREADY DEFIvNED WITH DEFBYT
v(	>

IFG <.BITSTvH+B-^D36>,< PRINTvhX ?DEFBYT: A DOEwS NOT FIT IN WORDw(>
; END OF ERRORwH CHECKS

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

	DFENDP==B+.BxHITST-1	;END POSITxhION

;COMPUTE FyLAGS
	DFBF==DFB.y(BT		;ASSUME BYTE yHINSTRUCTION NEEDEyhD
IFE B-^D36,<
	DFBF==DFB.FW> ;z(FULL WORD
IFE BzH-^D18,<
	IFE DFEzhNDP-^D17,<
	DFBF{==DFB.LH>		;LEFT {(HALF-WORD INSTRUC{HTION NEEDED
	IFE{h DFENDP-^D35,<
	|DFBF==DFB.RH>		;R|(IGHT HALF-WORD IN|HSTRUCTION NEEDED
	>

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

	.BITST==B+.B}HITST

IFE <.BIT}hST-^D36>,<.BITST=~=0>	;.BITST IS NE~(W STARTING POSITION
>;END IF1
IhZP Ii[P IkP IlTP I' @h4
	ADR==HIA.PUR	
	DEFINE	DIA(SEL%	(N%)	<
	N%=AH:ADR		
	ADR==ADRAh+1
	>
	DEFINE	DBSTBL%	(NAM,IR)	<DB(ISEL%	(NAM)>

	BHDISTB%				

	PUBhRGE	DISEL%,DSTBL%,ADR
L%,DSTBL%I'HB 5h/

	DISEL6%	C.RSET
	DISEL%6(	STOPR.
	DISEL%	6HC.STOP
	DISEL%	K6hILL.
	DISEL%	GOT7O.
	DISEL%	TODAY7(.
	DISEL%	KDECL.7H
	DISEL%	KPROG.
	DISEL%	DSP.FP
8	DISEL%	LINE.C
	8(DISEL%	LINE.D
	D8HISEL%	LINE.H
	DI8hSEL%	LIN.RH
	DIS9EL%	CANCL.
IFN A9(NS74,<
	DISEL%	S9H.CALL
>
	DISEL%9h	M.INIT
	DISEL%	:M.RMW
	DISEL%	M.:(RSW
	DISEL%	M.RM:HNW
	DISEL%	M.RSN:hW
	DISEL%	M.SEND;
	DISEL%	M.AC
	;(DISEL%	M.IFM
	DI;HSEL%	M.DI
	DISEL;h%	M.DIT
	DISEL%	<M.DO
	DISEL%	M.E<(I
	DISEL%	M.EIT
	DISEL%	M.EO
	D<hISEL%	STR.
	DISE=L%	STR.O
	DISEL%=(	UNS.
	DISEL%	UN=HS.O
	DISEL%	FUNC=hT.
	DISEL%	FIX.
	DISEL%	PERF.
	>(DISEL%	FLOT.1
	D>HISEL%	FLOT.2
	DI>hSEL%	PD6.
	DISEL?%	PD7.
	DISEL%	G?(D6.
	DISEL%	GD7.?H
	DISEL%	NEG.
	?hDISEL%	MAG.
	DIS@EL%	ADD.12
	DISE@(L%	ADD.21
	DISEL@H%	ADD.22
	DISEL%@h	SUB.12
	DISEL%	ASUB.21
	DISEL%	SA(UB.22
	DISEL%	MUAHL.12
	DISEL%	MULAh.21
	DISEL%	MUL.B22
	DISEL%	DIV.1B(1
	DISEL%	DIV.12BH
	DISEL%	DIV.21
	DISEL%	DIV.22
C	DISEL%	C.OPEN
	C(DISEL%	C.CLOS
	DCHISEL%	DSPLY.
	DIChSEL%	ACEPT.
	DISDEL%	READ.
	DISELD(%	WRITE.
	DISEL%DH	WADV.
IFN ANS68Dh,<DISEL%	SEEK.>
EIFN ANS74,<DISEL%E(	RDNXT.>
	DISEL%EH	DELET.
	DISEL%	EhRERIT.
	DISEL%	PFURGE.
	DISEL%	INF(IT.
	DISEL%	TERMFH.
	DISEL%	COMP.
	DISEL%	CMP.76
G	DISEL%	SPAC.6
	G(DISEL%	NUM.6
	DIGHSEL%	ALF.6
	DISEGhL%	ZERO.6
	DISELH%	POS.6
	DISEL%	H(NEG.6
	DISEL%	SPHHAC.7
	DISEL%	NUMHh.7
	DISEL%	ALF.7I
	DISEL%	ZERO.7
	DISEL%	POS.7
	IHDISEL%	NEG.7
	DIIhSEL%	COMP.D
	DISJEL%	DBMS.
	DISELJ(%	MOVE.
	DISEL%	JHLFENQ.
	DISEL%	LJhRENQ.
	DISEL%	LRKDEQ.
	DISEL%	C.DK(6D7
	DISEL%	C.D7KHD6
	DISEL%	CMP.EKh
	DISEL%	CMP.G
L	DISEL%	CMP.GE
	L(DISEL%	CMP.L
	DILHSEL%	CMP.LE
	DISLhEL%	CMP.N
	DISELM%	EDIT.S
	DISEL%M(	EDIT.U
IFN ANS6MH8,<
	DISEL%	EXAMMh.
>
IFN ANS74,<N
	DISEL%	INSP.
N(>
	DISEL%	SUBSC.NH
	DISEL%	SIZE.1
	DISEL%	SIZE.2
O	DISEL%	SIZE.3
	O(DISEL%	E.C3C1
	DOHISEL%	E.C3C3
	DIOhSEL%	OVLAY.
	DISPEL%	C.EXIT
	DISEP(L%	ARGS.
	DISEL%PH	PUTF.
	DISEL%	RPhESF.
	DISEL%	GETQNM.
	DISEL%	ILLCQ(.
	DISEL%	C.D6D9QH
	DISEL%	C.D7D9
	DISEL%	C.D9D6
R	DISEL%	C.D9D7
	R(DISEL%	PC3.
	DISRHEL%	PD9.
	DISEL%Rh	GC3.
	DISEL%	GDS9.
	DISEL%	POS.9S(
	DISEL%	NEG.9
SH	DISEL%	ZERO.9
	ShDISEL%	ALF.9
	DITSEL%	NUM.9
	DISET(L%	ALF.9
	DISEL%TH	SPAC.9
	DISEL%	ThCMP.96
	DISEL%	CUMP.97
	DISEL%	EDU(IT.B
	DISEL%	RSTUHAB.
	DISEL%	ZERCUh.6
	DISEL%	ZERC.V7
	DISEL%	ZERC.9V(
IFN ANS74,<
	DVHISEL%	C.STRT
	DIVhSEL%	DATE.
	DISEWL%	DAY.
	DISEL%	W(TIME.
>

	DSTBWHL%	USRTB.,15

Wh

	DISEL%	DSPL.6X
	DISEL%	DSPL.7

	DISEL%	SUBE1.XH
	DISEL%	SUBE2.
	DISEL%	SUBE3.
Y	DISEL%	EXIT.E
IY(FN BIS,<
	DISEL%YH	XTND.E
	DISEL%	YhALP.66
	DISEL%	AZLP.67
	DISEL%	ALZ(P.69
	DISEL%	ALPZH.76
	DISEL%	ALP.Zh77
	DISEL%	ALP.7[9
	DISEL%	ALP.96[(
	DISEL%	ALP.97
	DISEL%	ALP.99
[h	DISEL%	ALPS.6
	\DISEL%	ALPS.7
	D\(ISEL%	ALPS.9
	DI\HSEL%	NUM.66
	DIS\hEL%	NUM.67
	DISE]L%	NUM.69
	DISEL](%	NUM.76
	DISEL%]H	NUM.77
	DISEL%	]hNUM.79
	DISEL%	N^UM.96
	DISEL%	NU^(M.97
	DISEL%	NUM^H.99
	DISEL%	CVTD^hB.
	DISEL%	CBDOV_.
	DISEL%	CVBD.6_(
	DISEL%	CVBD.7
	DISEL%	CVBD.9
_h	DISEL%	MUL.41
	`DISEL%	MUL.42
	D`(ISEL%	DIV.41
	DI`HSEL%	DIV.42
	DIS`hEL%	DVI41.
	DISEaL%	DVI42.
>;END a(IFN BIS
	DISEL%	aHKEY.
IFN TOPS20,ah<
	DISEL%	PSORT.b
	DISEL%	PMERG.
	DISEL%	RELES.
bH	DISEL%	MERGE.
	bhDISEL%	MCLOS.
	DcISEL%	RETRN.
	DIc(SEL%	ENDS.
>

cH
IFN BIS,<
	DISchEL%	ADD.4R
>;ENDd IFN BIS
IFN TCSd(,<
	DISEL%	MBINDdH
	DISEL%	MNAME
dh>
	DISEL%	MVD.ALe
	DISEL%	NUM.3
e(	DISEL%	WADVV.
	eHDISEL%	WRITV.

eh
	DISEL%	METER.
IFN BIS,<			;[55f(4] QUAD-WORD SIZEfH ERROR ROUTINES
fh	DISEL%	SIZE.4
	gDISEL%	SIZE.5
>;g(END IFN BIS			;[5gH54]
	DISEL%	FLT.gh12
	DISEL%	FLT.2h2
	DISEL%	FIX.2
	DISEL%	E.F2D1
hH	DISEL%	E.F2D2
	hhDISEL%	E.F2FP
	DiISEL%	E.F2F2
	DIi(SEL%	PPOT4.
	DISiHEL%	ISBPS.
	DISEihL%	MROUT.
				;[j621] (MUST BE PREj(SENT IN ALL FLAVOjHRS OF LIBOL)
;V1jh2B RMS ENTRY POINkTS
IFN ANS74,<
k(	DISEL%	OP.MIX
	kHDISEL%	CL.MIX
	DkhISEL%	WT.MIR
	DIlSEL%	WT.MIS
	DISl(EL%	RD.MIR
	DISElHL%	RD.MIS
	DISELlh%	DL.MIR
	DISEL%m	DL.MIS
	DISEL%	m(RW.MIR
	DISEL%	RmHW.MIS
	DISEL%	STmh.MEQ
	DISEL%	ST.nMGT
	DISEL%	ST.Mn(NL
>;END IFN ANSnH74

	DISEL%	%STnhR.
	DISEL%	%STR.oO
	DISEL%	%UNS.
	DISEL%	%UNS.O
oHIFN ANS74,<
	DISohEL%	SWT.ON
	DISEpL%	SWT.OF
	DISELp(%	CMP.67
	DISEL%pH	CMP.69
	DISEL%	phCMP.79
	DISEL%	CqOMP.6
	DISEL%	COq(MP.7
	DISEL%	COMqHP.9
	DISEL%	SU.Sqh69
	DISEL%	SU.S7r9
	DISEL%	SU.S97r(
>
IFN ANS74,<
IFN BIS,<
	DISErhL%	CVDBT.
	DISELs%	CVDBL.
>;END Is(FN BIS
>;END IFN ANS74

D IFNK:$IH h04
PRINTX % ENDDFB: THERE AR(E A BITS STILL UHNASSIGNED BY "DEFBYT"
D BY "DEFK:$IQ H0*
IF1,<
IhFN .BITST,<
	.BITLFT==^D36-.BITST(	;COMPUTE # OF FRHEE BITS
	RADIX 1h0		;MAKE IT COME OUT IN DECIMAL.
(	ENDDF1 (\.BITLFTH)	;CALL MACRO TO hPRINT NUMBER
	RADIX 8			;BACK TO (OCTAL
>
>;END IF1

>
>;END IM&t.: (0
IF1,<
	H.BITST==0	; Reseth bit position to 0
>; END if1	

>; END if1	
M'Ek0P	M'Em6PH	Q$u|SP&Q$v
	
	DEFI=hNE	SYMH%%	(N%,V)	><N%==:0>	
	DEFIN>(E	SYML%%	(N%,V)	<>HSYM%%	N%,V>	
	DE>hFINE	ELMT%%	(N%,L?<1>,V)	<BLKDFV	N%?(,L,<V>>	

	RELO?HC	0
	CHK==.

	?h%LOSEG

	COMCHK@	.-CHK		

	PURG@(E	SYML%%,SYMH%%,ELMT%%
SYMH%%,ES:4*b !}
	ELMT%%	8FILES.
	ELMT%%	UXSES.
	ELMT%%	SEGxWD.
	ELMT%%	ALTER.
	ELMT%%	OVRFN8.
	ELMT%%	POINT.X
	ELMT%%	COMMA.
	ELMT%%	MONEY.
	ELMT%%	MEMRY.
	8ELMT%%	%NM.
	ELMXT%%	%DT.
	ELMT%%x	%PR.
	ELMT%%	COBVR.
	ELMT%%	COB8SW.
	ELMT%%	PUSHXL.
	ELMT%%	SURRTx.
	ELMT%%	SUEQT.
	ELMT%%	SUFBT.
 IFN ANS74,<
	EXLMT%%	%DB.
 >
MT%%	%DB.
 >
S:5 R5$
	INC==0	R(	
	DEFINE	ELMT%%RH	(N%,L<1>,V)	<
	RhIFNB	<N%>,<%'N%==S:INC>
	INC==INC+S(1
	>
	DEFINE	SYSHML%%	(N%,L<1>,V)	Sh<
	IFNB	<N%>,<%'TN%==:INC>
	>
	IT(NFBK%

	PURGE	ETHLMT%%,SYML%%,INC

,SYML%%,INC+*
	ELMT%%	PhUEBLK.,4
	ELMT%%Q	ULBLK.,4
	ELMT%Q(%	TTOBP.,1
	ELMTQH%%	TTOBC.,1
	ELMQhT%%	TTOBF.,^D27
R	ELMT%%	STDLB.,16R(

	ELMT%%	RRFLGRH.,1
	ELMT%%	REDMRhP.,1
	ELMT%%	SHRSDX.,1
	ELMT%%	TES(MP.,1
	ELMT%%	TESHMP.1,1
	ELMT%%	JShSARR.,1
	ELMT%%	TTEMP.2,1
	ELMT%%T(	AINFO.,1
	ELMT%TH%	OVRBF.,3
	ELMTTh%%	FLDCT.,1
	ELMUT%%	OVRIX.,1
	ELU(MT%%	NOCR.,1
	ELUHMT%%	PRGFLG,1
	EUhLMT%%	TTYOPN,1
V
	ELMT%%	ACSAV0,1V(7
	ELMT%%	MXIE,1VH
	ELMT%%	IESAVE,Vh1
	ELMT%%	MXBUF,W1
	ELMT%%	AUXBUFW(,1
	ELMT%%	AUXIOWHW,1
	ELMT%%	AUXBWhNO,1
	ELMT%%	CMDXLST,2
	ELMT%%	NEX(WBK1,1
	ELMT%%	NXHEWBK2,1
	ELMT%%	XhOLDBK,1
	ELMT%%	YMXBF,1
	ELMT%%	DY(RTAB,1
	ELMT%%	LYHRWA,1
	ELMT%%	COYhRPT.,1
	ELMT%%	HZLOTC.,1
	ELMT%%	Z(OTCPT.,1
	ELMT%%ZH	RUN.TM,1

	ELMZhT%%	CB.DDT,1
	EL[MT%%	SBPSA.,1
	E[(LMT%%	%F.PTR,1
[H
	ELMT%%	INTBLK,4[h


	ELMT%%	FS.\ZRO,1
	ELMT%%	FS\(.FS,1
	ELMT%%	FS\H.EN,1
	ELMT%%	FS\h.BN,1
	ELMT%%	FS].RN,1
	ELMT%%	FS](.UPD,1
	ELMT%%	F]HS.IGE,1
	ELMT%%	]hFS.IF,1
	ELMT%%	^FS.IEC,1



I^(FE TOPS20,<
	ELM^HT%%	PTH.BK,.PTMAX^h
>


	ELMT%%	_FOP.BK,1
	ELMT%%_(	FOP.IS,1
	ELMT%_H%	FOP.DN,1
	ELMT_h%%	FOP.BH,1
	ELM`T%%	FOP.BN,1
	EL`(MT%%	FOP.LB,1
	E`HLMT%%	FOP.PP,1
`h

	ELMT%%	CP.BLKa,1
	ELMT%%	CP.BKa(1,1
	ELMT%%	CP.BaHK2,1
	ELMT%%	CP.ahBK3,1
	ELMT%%	CPb.BK4,1
	ELMT%%	Cb(P.BK5,1
	ELMT%%	bHCP.BK6,1
	ELMT%%bh	CP.BK7,1
	
	; cMAKE TMP.BK AT LEc(AST AS BIG AS .TPcHLEN ON TOPS10

chIFN TOPS20,<	ELMTd%%	TMP.BK,15>
IFd(E TOPS20,<	
 IFNdHDEF .TPLEN,<ELMT%dh%	TMP.BK,15>
 IFeDEF .TPLEN,<
  Ie(FL <15-.TPLEN>,< eHELMT%%	TMP.BK,.TPehLEN>
  IFGE <15-f.TPLEN>,< ELMT%%	f(TMP.BK,15>
 >
>fH

	ELMT%%	FID.BfhK,15

	ELMT%%	NgRSAV.,5

	ELMT%g(%	AUTOLB,1
	ELMTgH%%	DELSIZ,1
	ELMghT%%	LNKNO.,1
	ELhMT%%	RELEN.,1

h(

	ELMT%%	SRC.MhHD,1
	ELMT%%	DLM.hhMD,1
	ELMT%%	DSTi.MD,1
	ELMT%%	NXi(.SSA,1	;ADDRESS OiHF NEXT SOURCE SERihIES ITEM
	ELMT%%j	CV.DLM,1	;INSTRUj(CTION TO CONVERT jHDELIMITER
	ELMT%jh%	SSACB.,16	; SAVkED AC'S WHEN CALLk(ING A TAG
	ELMT%kH%	TAG.PT,1	;ADDR khOF ROUTINE TO STOlRE POINTER VALUE
	ELMT%%	TAG.DL,1lH	;ADDR OF ROUTINElh TO GET NUMERIC DmELIMITER
	ELMT%%m(	TAG.SR,1	;ADDR OmHF ROUTINE TO GET mhNUMERIC SOURCE
	nELMT%%	SS.CNT,1	;n(SOURCE-SERIES ITEnHM COUNTER
	ELMT%nh%	DLM.TP,1	;ADDR oOF %TEMP OR %LIT o(FOR DELIMITER
	EoHLMT%%	SRC.TP,1	;AohDDR OF %TEMP OR %pLIT FOR SOURCE
	p(ELMT%%	NX.SRC,1	;pHADDR OF NEXT SOURphCE ITEM
	ELMT%%	qNUM.SR,1	;NUMBER q(OF SOURCES IN THIqHS SS
	ELMT%%	NUMqh.RC,1	;NUMBER OF rRECEIVING ITEMS Fr(OR UNSTRING
	ELMrHT%%	CT.DLM,1	;COUrhNT OF DELIMITERS
	ELMT%%	SRD.BP,1s(	;HOLDS BP FOR SOsHURCE - START OF 1shST MATCH
	ELMT%%t	SRD.CC,1	;HOLDS t(CC FOR SOURCE - StHTART OF 1ST MATCHth
	ELMT%%	SRA.BP,u1	;HOLDS BP FOR Su(OURCE AFTER LAST uHMATCH
	ELMT%%	SRuhA.CC,1	;HOLDS CC vFOR SOURCE AFTER v(LAST MATCH
	ELMTvH%%	CV.SDS,1	;CONVvhERSION FROM SOURCwE TO DEST
	ELMT%w(%	TAG.ST,1	;GET %wHTEMP SET UP FOR DwhEST.
	ELMT%%	NX.xDLM,1	;NEXT DELIMx(ITER
	ELMT%%	NUMxH.DL,1	;NUMBER OF xhDELIMITERS
	ELMTy%%	TAG.CT,1	;TAG y(TO STORE COUNT ITyHEM
	ELMT%%	TAG.DyhA,1	;TAG TO STOREz AWAY DEST FROM Oz(U.TMP
	ELMT%%	DSzHT.TP,1	;%LIT OR %zhTEMP FOR DEST.
	{ELMT%%	TAG.TL,1	;{(TAG TO STORE TALL{HY ITEM

	ELMT%%{h	BS.AGL,1



|
	ELMT%%	SRC.PT,|(1
	ELMT%%	SRC.CT|H,1

	ELMT%%	TMP|h.DP,1

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

	ELM}HT%%	TL.ARG,1
	EL}hMT%%	TL.VLU,1

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

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

	ELMT%%	S(E.DLM,1

	ELMT%H%	PF.MDE,1

	ELhMT%%	PT.AGL,1
	ELMT%%	TP.AGL,1
(
	ELMT%%	SU.AGL,1H

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

	ELMT%(%	SU.RR
	ELMT%%	HSU.DBR
	ELMT%%	ShU.EQ
				
	ELMT%%	SU.DQ
	ELMT%%(	SU.MQ
	ELMT%%	SHU.RRT
	ELMT%%	SUh.T1
	ELMT%%	SU.T2
	ELMT%%	SU.T3
	ELMT%%	SU.T4
	HELMT%%	SU.T5
	ELhMT%%	SU.T6
	ELMT%%	SU.T7
	ELMT%%(	SU.T8
	ELMT%%	SHU.T9
	ELMT%%	SU.hCRH
				
	ELMT%%	SU.EQT
	ELMT%%(	SU.DQT
	ELMT%%	HSU.MQT
	ELMT%%	ShU.Y
	ELMT%%	SU.RBP
				
	ELMT%%(	SU.MRR
	ELMT%%	HSU.SBD
	ELMT%%	ShU.RLV
	ELMT%%	SU.RND
	ELMT%%	SU.(SFQ
	ELMT%%	SU.SHFS
	ELMT%%	SU.SBhS
	ELMT%%	SU.NR
	ELMT%%	SU.FR
	(ELMT%%	SU.AK
	ELHMT%%	SU.FBT
	ELMhT%%	SU.CFB
	ELMT	%%	SU.VRB
				
	(	ELMT%%	SU.HV
	E	HLMT%%	SU.CK
	ELM	hT%%	SU.SVK
	ELMT
%%	SU.CL1
	ELMT%
(%	SU.CL2
	ELMT%%
H	SU.CLR
	ELMT%%	
hSU.CLS
	ELMT%%	SU.SAV,5

	ELMT%(%	FET1,1
	ELMT%%H	FET2,1
	ELMT%%	hFET3,1
	ELMT%%	F
ET4,1

	ELMT%%	
(SU.FRF


	ELMT
H%%	USRLO.
IFN BI
hS,<
	ELMT%%	MRKP
>


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


IFN MCS!TCS,h<
IFE TOPS20,<
	ELMT%%	SNDMSG,1(0
	ELMT%%	MCSTN,H1
	ELMT%%	M.TMP1h,1
	ELMT%%	M.TMP2,1
	ELMT%%	M.AT(CT,1
	ELMT%%	MCSHPT,1
	ELMT%%	PIDhMCP,1
	ELMT%%	PIDLCM,1
	ELMT%%	I(PCFLG,1
	ELMT%%	HPAKSND,4
	ELMT%%h	MSGSND,10
	ELMT%%	PAKREC,4
	ELM(T%%	MSGREC,10

H



	ELMT%%	PhAGOFF,1
	ELMT%%	PAGBIT,1
	ELMT%%(	PAGLST,1
	ELMT%H%	PAGCNT,1
>>
 hIFE TOPS20,<
	ELMT%%	PAGTBL,20
	(ELMT%%	T1SAV,1
>H
	ELMT%%	DBMLOC,h1


IFN MCS!TCS,<
 IFN TOPS20,(<
	ELMT%% TP.RG1H,1
	ELMT%% TP.RGh2,1
	ELMT%% TP.RG3,1
	ELMT%% TP.(RG4,1
	ELMT%% TPH.RG5,1
	ELMT%% ThP.ID,1
	ELMT%% TP.CRP,1
	ELMT%% (TP.IPC,1
	ELMT%%H TP.CPP,1
	ELMT%h% TP.JFN,1
	ELMT%% TP.WNS,1
	ELM(T%% TP.TMP,3
	SYHML%% TP.PDS,^D10
	ELMT%% TP.PDB,TP.PDS
	SYML%% TP(.PKS,^D30
	ELMT%H% TP.PKT,TP.PKS
h	SYML%% TP.NAM,TP.PKT+2
	ELMT%% T(P.TPD,1
	ELMT%% HTP.LPD,1
	ELMT%%h TP.HDS,1
	ELMT%% TP.HDP,1
	ELMT(%% TP.DVP,1
	ELMHT%% TP.BTP,1
	ELhMT%% TP.PAT,^D10
>>

IFN DBMS,<(
	ELMT%% DBMLOK,H1
>
	ELMT%% OSHhOOT,1

IFE TOPS20,<
	ELMT%% M7.(00,1
>

IFN LSHTATS,<
	ELMT%%	MhRTMB.,1
	ELMT%%	MROPT.,1
	ELMT%%(	MROPTT,^D16
			H		; POINTS TO STAhRT OF BUCKET BLOCK
	ELMT%%	MRHDBP(,1
	ELMT%%	MRHDFHL,1
					; BLOCKh
	ELMT%%	MRTDBP, 1
	ELMT%%	MRLDBL (,1
					; OR BUF HFER FOR COPY FROM h .TMP TO .MTO
IF!N DBMS6,<
	ELMT%!(%	MRDDBP,1
>
	E!HLMT%%	MRNM6,1
	E!hLMT%%	MRNMA,3
	E"LMT%%	MRAFFT,1
	"(ELMT%%	MRFKFT,1
"HIFE TOPS20,<
	EL"hMT%%	MBTIM.,1
	E#LMT%%	MRCHNN,1
	#(ELMT%%	MRCHCF,1
#H	ELMT%%	MRBLKO,1
	ELMT%%	MRBKO.,1$
	>
IFN TOPS20,$(<
	ELMT%%	MBTIM.$H,2
	ELMT%%	MRJFN$h,1
	ELMT%%	MRLCJ%F,1
	ELMT%%	MRBL%(KO,2
	ELMT%%	MRB%HKO.,2
IFN FTLSDR%h,<
	ELMT%%	MRLDN&A,^D10
	ELMT%%	M&(RLDJF,1
	  >;END&H IFN FTLSDR
	>;E&hND IFN TOPS20
IF'N FTLSDR,<
	ELMT'(%%	MRLBPC,1
	ELM'HT%%	MRLSZL,1
	EL'hMT%%	MRLFPR,1
  (IFE TOPS20,<
	EL((MT%%	MRCHLS,1
	E(HLMT%%	MRLLDR,1
	(hELMT%%	MRLLDV,1
)	ELMT%%	MRCFNM,1
	ELMT%%	MRCFEX,1)H
   >;END IFE TO)hPS20
>;END IFN F*TLSDR
	ELMT%%	MR*(APN.,1
					;0 I*HF FILE IS NEW
	E*hLMT%%	MRFPGT,1,
+	ELMT%%	MRKILL,1
	ELMT%%	MRBNUM,1+H
	ELMT%%	MRRERN,+h1
					; (THUS C,AN'T WRITE IN .MT,(O FILE)
IFN TOPS,H20, ELMT%% MRPSTM,h,2
IFE TOPS20, E-LMT%% MRPSTM,1
-(
>

	ELMT%%	DBS-HTP.,1

;THE FOL-hLOWING ARE USED F.OR $ERROR PROCESS.(ING
	ELMT%%	ER.P.HC,1
	ELMT%%	ER.F.hLG,1
	ELMT%%	ER./MCL,1
	ELMT%%	ER/(.HIJ,1
					; SO/HMETIMES SET UP BE/hFORE THE $ERROR
0					; CALL.
IFN0( TOPS20,<
	ELMT%0H%	ER.JSE,1
>
IF0hE TOPS20,<
	ELMT1%%	ER.E10,1
>
	1(ELMT%%	ER.RBG,1
1H
;** THE FOLLOWI1hNG LOCATIONS SHOU2LD BECOME "VISIBL2(E" IN VERSION 13.2H
;   THEY ARE HE2hRE TEMPORARILY FO3R 12B SO 12A IS C3(OMPATIBLE.
	ELMT3H%%	SLRSW.,1
	ELM3hT%%	RMFLG.,1

4
IFN ANS74,<
;US4(ED BY RMSIO
	ELM4HT%%	CVPRM.,2
	EL4hMT%%	CVARGS,2
	E5LMT%%	RMSVR.,1
>5(
	ELMT%%	INTRAP,1
MT%%	INTRAP,Y<v
@ 1

;ERROR( CHECKS
IF1,<
	HIFNDEF XB,<PRINThX ? B NOT DEFINED WITH "DEFBYT">
>;END PASS 1 ERRHOR CHECKS

DFBFh==XB_-^D32		;GET	 FLAG WORDS
IFE 	(DFBF-DFB.FW,<		;G	HEN FULL WORD INST	hRUCTION
	MOVE	A
,YB+C
	>
IFE 
(DFBF-DFB.RH,<		;G
HEN RIGHT HALF WOR
hD INSTRUCTION
	HRRZ	A,YB+C
	>(
IFE DFBF-DFB.LHH,<		;GEN LEFT HALhF WORD INSTRUCTIO
N
	HLRZ	A,YB+
(C
	>
IFE DFBF-D
HFB.BT,<
..X==XB
h_^D18
..X==..X;-TIRIDBO
..Y=B-^D18>&^O77		;GET LH, JUST #( OF BITS
	..LIT=H=<YB+C>	;FIRST hPART OF LITERAL BEING BUILT
	..LI(T==..LIT+<..Y_^D2H4> ;# OF BITS IN hBYTE PTR
	..LIT==..LIT+<<^D36-..X(-1>_^D30> ;FINAL HBIT POSITION IN BhYTE PTR
	LDB	A,[..LIT]
	>
A,Y?< C(4t
	DEFINE	CHSYMH%%	(N%,V)	< >Ch
	DEFINE	SYML%%	D(N%,V)	<SYM%%	N%,D(V>	
	DEFINE	ELMTDH%%	(N%,L<1>,V)	<BDhLKDFV	N%,L,<V>>
E	LOC	LO.PUR			
E(
	VISBL%

	DEFIEHNE	ELMT%%	(N%,L<1Eh>,V) <BLOCK L>
F
	INFBK%


	DEF(FINE	ELMT%%	(N%,LFH<1>,V) <
	IFIDN Fh<N%><E0.6>,<N%::	GE0.6.1=:E0.6+1>
G(	IFIDN <N%><E0.7>GH,<N%::	E0.7.1=:E0Gh.7+1>
	IFIDN <N%H><E0.9>,<N%::	E0.H(9.1=:E0.9+1>
	IFHHIDN <N%><OU.TMP>,Hh<N%::>
	IFIDN <NI%><DST.BP>,<N%::>I(
	IFIDN <N%><DSTIH.CC>,<N%::>
	IFIIhDN <N%><PT.VAL>,<JN%::>
	IFIDN <N%J(><SRC.BP>,<N%::>
	IFIDN <N%><SRC.JhCC>,<N%::>
	IFIDKN <N%><SR.TMP>,<NK(%::>
	IFIDN <N%>KH<DLM.BP>,<N%::>
Kh	IFIDN <N%><DLM.CLC>,<N%::>
	IFIDNL( <N%><TMP.DL>,<N%LH::>
	IFIDN <N%><LhTL.VAL>,<N%::>
	MIFIDN <N%><CT.VALM(>,<N%::>
	BLOCK	MHL>

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

	COMCN(HK	.-LO.PUR	

	NHPURGE	ELMT%%,SYMH%%,SYML%%,ADR
[P _BpZ7Q _Bp[zQ aJ.=  8%
	SYML%%	 hIFRST.,.
	SYMH%%!	PFRST.,.

IFN !(ANS68,<
	ELMT%%	!HOVFLG.,1,<Z		>
>!h

IFN BIS,<
	E"LMT%%	E0.6,1,<EDI"(T	0>
	ELMT%%	E0."H6.1,1,<0>
	ELMT%"h%	,1,<0>
	ELMT%%#	,1,<"$"-40>
	EL#(MT%%	,1,<","-40>
	ELMT%%	,1,<"."-#h40>
	ELMT%%	,1,<$" "-40>
	ELMT%%	$(,1,<"0"-40>
	ELM$HT%%	,1,<"+"-40>
$h	ELMT%%	,1,<"-"-4%0>
	ELMT%%	,1,<"%(C"-40>
	ELMT%%	,%H1,<"R"-40>
	ELMT%h%%	,1,<"D"-40>
	&ELMT%%	,1,<"B"-40&(>
IFN ANS74,<
	&HELMT%%	,1,<"/"-40&h>
>

	ELMT%%	E'0.7,1,<EDIT	0>
	'(ELMT%%	E0.7.1,1,<'H0>
	ELMT%%	,1,<0'h>
	ELMT%%	,1,<"$(">
	ELMT%%	,1,<"((,">
	ELMT%%	,1,<(H".">
	ELMT%%	,1,(h<" ">
	ELMT%%	,1),<"0">
	ELMT%%	,)(1,<"+">
	ELMT%%	)H,1,<"-">
	ELMT%%)h	,1,<"C">
	ELMT%*%	,1,<"R">
	ELMT*(%%	,1,<"D">
	ELM*HT%%	,1,<"B">
IFN*h ANS74,<
	ELMT%%+	,1,<"/">
>

	+(ELMT%%	E0.9,1,<ED+HIT	0>
	ELMT%%	E0+h.9.1,1,<0>
	ELMT,%%	,1,<0>
	ELMT%,(%	,1,<133>
	ELMT,H%%	,1,<153>
	ELM,hT%%	,1,<113>
	EL-MT%%	,1,<100>
	E-(LMT%%	,1,<360>
	-HELMT%%	,1,<116>
-h	ELMT%%	,1,<140>
	ELMT%%	,1,<303>.(
	ELMT%%	,1,<331.H>
	ELMT%%	,1,<30.h4>
	ELMT%%	,1,<3/02>
IFN ANS74,<
	ELMT%%	,1,<141>/H
>
>



	EL/hMT%%	OU.TMP,5		;F0OR STRING
	ELMT%0(%	DST.BP,1		;DEST0HINATION BYTE POIN0hTER
	ELMT%%	DST.1CC,1		;DESTINATIO1(N CHAR COUNT
	EL1HMT%%	PT.VAL,1		;'1hPOINTER' VALUE
	2ELMT%%	SRC.BP,1		2(;SOURCE BYTE PTR
	ELMT%%	SRC.CC,12h		;CC OF SOURCE
3	ELMT%%	SR.TMP,5	3(	;TEMP HOLD FOR N3HUMERIC SOURCE
	E3hLMT%%	DLM.BP,1		;4BYTE PTR TO DELIM4(ITER
	ELMT%%	DLM4H.CC,1		;CC OF DEL4hIMITER
	ELMT%%	T5MP.DL,5		;TEMP HO5(LD FOR NUMERIC DE5HLIMITER
	ELMT%%	5hTL.VAL,1		;TALLY 6VALUE
	ELMT%%	CT6(.VAL,1		;COUNT VA6HLUE

	SYML%%	FR6hSTIC,.
	ELMT%%	I7IN,1,<IN 0,CMDLST7(	>
	ELMT%%	IOUT,7H1,<OUT 0,CMDLST	>7h
	ELMT%%	ISETI,18,<USETI 0,(AC1)	>8(
	ELMT%%	ISETO,18H,<USETO 0,(AC1)	>8h
	ELMT%%	ICLOS,19,<CLOSE 0,0	>
	E9(LMT%%	IRELE,1,<RE9HLEAS 0,0	>
	ELMT9h%%	IGETS,1,<GETST:S 0,AC2	>
	ELMT%:(%	ISETS,1,<SETSTS:H 0(AC2)>
	ELMT%%:h	IWAIT,1,<CALLI 0;,10	>
	ELMT%%	IR;(NAM,1,<RENAME 0,U;HEBLK.	>
	SYML%%	;hLASTIC,<.-1>

	<SYML%%	UFRST.,.
<(	ELMT%%	MWAIT.,1,<H<MTAPE 0,0	>
	EL<hMT%%	MREW.,1,<MTA=PE 0,1	>
	ELMT%%=(	MREWU.,1,<MTAPE =H0,11	>
	ELMT%%	M=hBSPR.,1,<MTAPE 0,>7	>
	ELMT%%	MBSP>(F.,1,<MTAPE 0,17	>H>
	ELMT%%	MADVR.>h,1,<MTAPE 0,6	>
?	ELMT%%	MADVF.,1,?(<MTAPE 0,16	>
	E?HLMT%%	MWEOF.,1,<M?hTAPE 0,3	>
	ELMT@%%	MTIND.,1,<MTAP@(E 0,101	>
	ELMT%@H%	MERAS.,1,<MTAPE@h 0,13	>


	ELMAT%%	SOBOT.,1,<STAA(TO 0,4000	>
	ELMAHT%%	SZBOT.,1,<STAAhTZ 0,4000	>
	ELMBT%%	SZEOF.,1,<STAB(TZ 0,20000	>
	ELBHMT%%	SZEOT.,1,<STBhATZ 0,2000	>
	ELCMT%%	UOPEN.,1,<OPC(EN 0,UOBLK.	>
	ECHLMT%%	UENTR.,1,<EChNTER 0,UEBLK.>
	DELMT%%	ULKUP.,1,<D(LOOKUP 0,ULBLK.>
	ELMT%%	UOBUF.,1Dh,<OUTBUF 0,2(AC6)E>
	ELMT%%	UIBUF.E(,1,<INBUF 0,2(AC6EH)	>
	ELMT%%	UCLOEhS.,1,<CLOSE 0,0	>F
	ELMT%%	URELE.,F(1,<RELEAS 0,0	>
FH	ELMT%%	USETI.,1,Fh<USETI 0,(AC1)	>
	ELMT%%	USETO.,1G(,<USETO 0,(AC1)	>GH
	ELMT%%	UOUT.,1Gh,<OUT 0,0		>
	ELHMT%%	UIN.,1,<IN 0H(,0		>
	ELMT%%	USHHETS.,1,<SETSTS 0,Hh(AC2)	>
	ELMT%%	IUGETS.,1,<GETSTS I(0,AC2	>
	ELMT%%	IHUWAIT.,1,<CALLI	0Ih,10	>
IFN ANS68,J<
	ELMT%%	USEEK.J(,1,<CALLI	0,56	>
>
IFN ANS74,<
Jh	SYML%% 	USEEK.,-K1
>
	ELMT%%	URNK(AM.,1,<RENAME 0,UKHEBLK.>
	SYML%%	UKhLAST.,<.-1>
	SYMLL%%	ULEN.,<UFRST.L(-ULAST.>

	ELMTLH%%	UOCAL.,1,<EXP LhC.RSET##+1>
	ELMMT%%	UOBLK.,3,<EXPM( 0		>
	ELMT%%	TMMHP.PT,1,<POINT 7,TMhMP.BK>
	ELMT%%  NFID.PT,1,<POINT 7N(,FID.BK>
	ELMT%%NH	FUSIA.,2,<EXP 11Nh	>
	ELMT%%	FUSOAO.,2,<EXP 12	>
	EO(LMT%%	FUSCP.,1,<EOHXP 10	>
	ELMT%%	OhARGBK.,6,<EXP 5		P>
	SYML%%	ILAST.,<.-6>

	AST.aW
" 4(3P

	
IFE4H TOPS20,<
	DEFIN4hE	DISEL%	(NAM)	<J5RST	1,NAM##>	
	D5(EFINE	DSTBL%	(NAM5H,IR)	<JRST	1,@NAM5h##(IR)>
>
IFN T6OPS20,<
	DEFINE	6(DISEL%	(NAM)	<JRS6HT	NAM##>	
	DEFIN6hE	DSTBL%	(NAM,IR)7	<JRST	@NAM##(IR)7(>
>
	RELOC	HI.O7HRG			
	DISTB%			7h	

	
	DEFINE	S8YMH%%	(N%,V)	<SYM8(%%	N%,V>	
	DEFIN8HE	SYML%%	(N%,V)	<8h >		
	DEFINE	ELM9T%%	(N%,L<1>,V)	<9(BLKDFV	,L,<V>>	
9H	PREST%				

	P9hURGE	ELMT%%,SYMH%:%,SYML%%,DISEL%,DSTBL%
DISEL%,DaWKb :H3h

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

<H	%LOSEG			

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

IF1,<				;ONLY HAPPENS (ON PASS 1
;ERRORH CHECKS
IFNDEF XhB,<	PRINTX ? SAMBYT: B NOT PREVI(OUSLY DEFINED WITHH DEFBYT>

XA=h=XB
YA==YB
>;END IF1
B
>gRX5Q @gRY8Q gRYzQ gR[VQ gR~)  (2(

;ERRORH CHECKS
IF1,<
	hIFNDEF XB,<PRINTX ? B NOT DEFINE(D WITH "DEFBYT">
>;END PASS 1 ERRhOR CHECKS

DFBF==XB_-^D32		;GET( FLAG WORDS
IFE HDFBF-DFB.FW,<		;GhEN FULL WORD INSTRUCTION
	MOVEM	(A,YB+C
	>
IFEH DFBF-DFB.RH,<		;hGEN RIGHT HALF WORD INSTRUCTION
	(HRRM	A,YB+C
	H>
IFE DFBF-DFB.LhH,<		;GEN LEFT HA LF WORD INSTRUCTI (ON
	HRLM	A,YB+ HC
	>
IFE DFBF- hDFB.BT,<
..X==X!B_^D18
..X==..X_!(-^D18			;GET RID !HOF LH, = ENDING B!hIT POSITION 
..Y"==<XB_-^D18>&^O7"(7		;GET LH, JUST "H# OF BITS
	..LIT"h==<YB+C>	;FIRST# PART OF LITERAL #(BEING BUILT
	..L#HIT==..LIT+<..Y_^D#h24> ;# OF BITS IN$ BYTE PTR
	..LIT$(==..LIT+<<^D36-..$HX-1>_^D30> ;FINAL$h BIT POSITION IN %BYTE PTR
	DPB	A,[..LIT]
	>
AgfhQ 3A==:BiP i?4HP m'+ 

	ELMT%%	MEMRY%,1
	ELMT8%%	TALLY.,1,<Z>
X	ELMT%%	SZERA.,1,x<Z>
	ELMT%%	OVFLO.,1,<Z>

	ELMT8%%	TRAC1.,1,<JRSTX	BTRAC.##>
	ELMTx%%	TRAC2.,1,<JRST	TRPOP.##>
	ELMT8%%	TRAC3.,1,<JRSTX	TRPD.##>

	ELMxT%%	OPNCH.,1,<XWD	777774,0>
	ELMT8%%	RN.DEV,1
	ELMXT%%	RN.PPN,1
	ELxMT%%	RN.NAM,1
	ELMT%%	FSLOC.,1,<Z8>
	ELMT%%	HLOVL.X,1,<Z>

	ELMT%%x	%REMOV,1,<EXP	REMOV.##>
IFN ANS784,<
	ELMT%%	%ENTXOV,1,<EXP	ENTOV.#x#>
>

	ELMT%%	KEYCV.,1,<Z>
	EL8MT%%	SAVEF.,1,<Z>X






	ELxMT%%	HPRT.,1,<EXP	HSRPT.##>
					8	; PRINTING ROUTIXNE.
	ELMT%%	SEGNxO.,1,<Z>
	ELMT%%	SNRBP.,1,<EXP	SB8PSG.##>


	ELMXT%%	TRAC4.,1,<EXPx	CNTRC.##>
	ELMT%%	CIOTF.,1,<EXP	8SFOV.##>



X


IFN DBMS,<		x		;[623]
	ELMT%%	DBSTP%,1,<EXP	DB8STP$##>
	SYML%%	XLEVEL.,<.-1>
	IFxNDEF LEVEL.,<PRINTX ?LEVEL. NOT DE8FINED!>
>					;[X623]
IFE DBMS,<	x			;[623]
	ELMT%%	LEVEL.,1,<Z>
>8					;[623]

	EXLMT%%	METR.,1,<Z>



.,1,<Z>u2| (1V

;ERRORH CHECKS
IF1,<
	hIFNDEF XB,<PRINTX ? B NOT DEFINE(D WITH "DEFBYT">
>;END PASS 1 ERRhOR CHECKS

DFBF==XB_-^D32		;GET( FLAG WORDS
IFE HDFBF-DFB.FW,<		;GhEN FULL WORD INSTRUCTION
	MOVE	A(,C
	>
IFE DFBFH-DFB.RH,<		;GEN RhIGHT HALF WORD INSTRUCTION
	HRRZ	(A,C
	>
IFE DFHBF-DFB.LH,<		;GENh LEFT HALF WORD INSTRUCTION
	HLRZ(	A,C
	>
IFE DHFBF-DFB.BT,<
..Xh==XB_^D18
..X==..X-^D18			;GET (RID OF LH, = ENDIHNG BIT POSITION 
..Y==<XB_-^D18>&^O77		;GET LH, J(UST # OF BITS
	.H.LIT==<C>		;FIRShT PART OF LITERAL BEING BUILT
	..(LIT==..LIT+<..Y_^HD24> ;# OF BITS IhN BYTE PTR
	..LIT==..LIT+<<^D36-.(.X-1>_^D30> ;FINAHL BIT POSITION INh BYTE PTR
	LDB	A,[..LIT]
	>
uO%|R %H2z

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

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

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