Google
 

Trailing-Edge - PDP-10 Archives - BB-H580C-SB_1981 - 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@ E`D1m8
	IFNB	<FA>,<A::>
	BLOCK	B
:>
	BLOCKFlD*1E2\I[ FpDBmH
	IFNB	<G A>,<A::>
	IFN	G@B,<IFB	<C>,<BLOCG`K	B>
		    IFNBH	<C>,<REPEAT	B,H <
					C>>
		>
				C>>
		>FmD31G3YQ @G3[Q G>l: c`F2
	IFG	A-dCOMSIZ,<
	XXX.==d A-COMSIZ
  DEFId@NE PEXCS(OVRFLO),d`<
	PRINTX	?COMSIeZ EXCEEDED BY 'OVe RFLO (OCTAL) WORDe@S - REGENERATE THe`E COMPILER
f>
	PEXCS(\XXX.)
>f ;END IFG A-COMSIZ
IFG A-COMSIG>n:=P pI
n0P I4.: @A

IFNDEF` .BITST,<	.BITST=	=0>	;START AT 0
	 
IF1,<			;ALL TH	@IS STUFF HAPPENS 	`ONLY IN PASS 1


;ERROR CHECKS
I
 FDEF YA,<	PRINTX
@ ?A ALREADY DEFI
`NED WITH DEFBYT
	>

IFG <.BITST +B-^D36>,< PRINT@X ?DEFBYT: A DOE`S NOT FIT IN WORD
>
; END OF ERROR
  CHECKS

;DEFIN
@E YA TO BE THE W
`ORD C
	YA==C

	DFENDP==B+.BSIT

;COMPUTE F
	DFBF==DFB.BT		;ASSUME BYTE  INSTRUCTION NEEDE@D
IFE B-^D36,<
	DFBF==DFB.FW> ;FULL WORD
IFE B -^D18,<
	IFE DFE@NDP-^D17,<
	DFBF`==DFB.LH>		;LEFT HALF-WORD INSTRUC TION NEEDED
	IFE@ DFENDP-^D35,<
	`DFBF==DFB.RH>		;RIGHT HALF-WORD IN STRUCTION NEEDED
	>

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

	.BITST==B+.B ITST

IFE <.BIT@ST-^D36>,<.BITST=`=0>	;.BITST IS NEW STARTING POSITION
>;END IF1
IhZP Ii[P IkP IlTP I' U@E<
	ADR==HIU`.PUR	
	DEFINE	DIVSEL%	(N%)	<
	N%=V :ADR		
	ADR==ADRV@+1
	>
	DEFINE	DV`STBL%	(NAM,IR)	<DWISEL%	(NAM)>

	W DISTB%				

	PUW@RGE	DISEL%,DSTBL%,ADR
L%,DSTBL%I'HB J@@@

	DISELJ`%	C.RSET
	DISEL%K	STOPR.
	DISEL%	K C.STOP
	DISEL%	KK@ILL.
	DISEL%	GOTK`O.
	DISEL%	TODAYL.
	DISEL%	KDECL.L 
	DISEL%	KPROG.
	DISEL%	DSP.FP
L`	DISEL%	LINE.C
	MDISEL%	LINE.D
	DM ISEL%	LINE.H
	DIM@SEL%	LIN.RH
	DISM`EL%	CANCL.
IFN ANNS74,<
	DISEL%	SN .CALL
>
	DISEL%N@	M.INIT
	DISEL%	N`M.RMW
	DISEL%	M.ORSW
	DISEL%	M.RMO NW
	DISEL%	M.RSNO@W
	DISEL%	M.SENDO`
	DISEL%	M.AC
	PDISEL%	M.IFM
	DIP SEL%	M.DI
	DISELP@%	M.DIT
	DISEL%	P`M.DO
	DISEL%	M.EQI
	DISEL%	M.EIT
	DISEL%	M.EO
	DQ@ISEL%	STR.
	DISEQ`L%	STR.O
	DISEL%R	UNS.
	DISEL%	UNR S.O
	DISEL%	FUNCR@T.
	DISEL%	FIX.
	DISEL%	PERF.
	SDISEL%	FLOT.1
	DS ISEL%	FLOT.2
	DIS@SEL%	PD6.
	DISELS`%	PD7.
	DISEL%	GTD6.
	DISEL%	GD7.T 
	DISEL%	NEG.
	T@DISEL%	MAG.
	DIST`EL%	ADD.12
	DISEUL%	ADD.21
	DISELU %	ADD.22
	DISEL%U@	SUB.12
	DISEL%	U`SUB.21
	DISEL%	SVUB.22
	DISEL%	MUV L.12
	DISEL%	MULV@.21
	DISEL%	MUL.V`22
	DISEL%	DIV.1W1
	DISEL%	DIV.12W 
	DISEL%	DIV.21
	DISEL%	DIV.22
W`	DISEL%	C.OPEN
	XDISEL%	C.CLOS
	DX ISEL%	DSPLY.
	DIX@SEL%	ACEPT.
	DISX`EL%	READ.
	DISELY%	WRITE.
	DISEL%Y 	WADV.
IFN ANS68Y@,<DISEL%	SEEK.>
Y`IFN ANS74,<DISEL%Z	RDNXT.>
	DISEL%Z 	DELET.
	DISEL%	Z@RERIT.
	DISEL%	PZ`URGE.
	DISEL%	IN[IT.
	DISEL%	TERM[ .
	DISEL%	COMP.
	DISEL%	CMP.76
[`	DISEL%	SPAC.6
	\DISEL%	NUM.6
	DI\ SEL%	ALF.6
	DISE\@L%	ZERO.6
	DISEL\`%	POS.6
	DISEL%	]NEG.6
	DISEL%	SP] AC.7
	DISEL%	NUM]@.7
	DISEL%	ALF.7]`
	DISEL%	ZERO.7
	DISEL%	POS.7
	^ DISEL%	NEG.7
	DI^@SEL%	COMP.D
	DIS^`EL%	DBMS.
	DISEL_%	MOVE.
	DISEL%	_ LFENQ.
	DISEL%	L_@RENQ.
	DISEL%	LR_`DEQ.
	DISEL%	C.D`6D7
	DISEL%	C.D7` D6
	DISEL%	CMP.E`@
	DISEL%	CMP.G
``	DISEL%	CMP.GE
	aDISEL%	CMP.L
	DIa SEL%	CMP.LE
	DISa@EL%	CMP.N
	DISELa`%	EDIT.S
	DISEL%b	EDIT.U
IFN ANS6b 8,<
	DISEL%	EXAMb@.
>
IFN ANS74,<b`
	DISEL%	INSP.
c>
	DISEL%	SUBSC.c 
	DISEL%	SIZE.1
	DISEL%	SIZE.2
c`	DISEL%	SIZE.3
	dDISEL%	E.C3C1
	Dd ISEL%	E.C3C3
	DId@SEL%	OVLAY.
	DISd`EL%	C.EXIT
	DISEeL%	ARGS.
	DISEL%e 	PUTF.
	DISEL%	Re@ESF.
	DISEL%	GETe`NM.
	DISEL%	ILLCf.
	DISEL%	C.D6D9f 
	DISEL%	C.D7D9
	DISEL%	C.D9D6
f`	DISEL%	C.D9D7
	gDISEL%	PC3.
	DISg EL%	PD9.
	DISEL%g@	GC3.
	DISEL%	GDg`9.
	DISEL%	POS.9h
	DISEL%	NEG.9
h 	DISEL%	ZERO.9
	h@DISEL%	ALF.9
	DIh`SEL%	NUM.9
	DISEiL%	ALF.9
	DISEL%i 	SPAC.9
	DISEL%	i@CMP.96
	DISEL%	Ci`MP.97
	DISEL%	EDjIT.B
	DISEL%	RSTj AB.
	DISEL%	ZERCj@.6
	DISEL%	ZERC.j`7
	DISEL%	ZERC.9k
IFN ANS74,<
	Dk ISEL%	C.STRT
	DIk@SEL%	DATE.
	DISEk`L%	DAY.
	DISEL%	lTIME.
>

	DSTBl L%	USRTB.,15

l@

	DISEL%	DSPL.6l`
	DISEL%	DSPL.7

	DISEL%	SUBE1.m 
	DISEL%	SUBE2.
	DISEL%	SUBE3.
m`	DISEL%	EXIT.E
InFN BIS,<
	DISEL%n 	XTND.E
	DISEL%	n@ALP.66
	DISEL%	An`LP.67
	DISEL%	ALoP.69
	DISEL%	ALPo .76
	DISEL%	ALP.o@77
	DISEL%	ALP.7o`9
	DISEL%	ALP.96p
	DISEL%	ALP.97
	DISEL%	ALP.99
p@	DISEL%	ALPS.6
	p`DISEL%	ALPS.7
	DqISEL%	ALPS.9
	DIq SEL%	NUM.66
	DISq@EL%	NUM.67
	DISEq`L%	NUM.69
	DISELr%	NUM.76
	DISEL%r 	NUM.77
	DISEL%	r@NUM.79
	DISEL%	Nr`UM.96
	DISEL%	NUsM.97
	DISEL%	NUMs .99
	DISEL%	CVTDs@B.
	DISEL%	CBDOVs`.
	DISEL%	CVBD.6t
	DISEL%	CVBD.7
	DISEL%	CVBD.9
t@	DISEL%	MUL.41
	t`DISEL%	MUL.42
	DuISEL%	DIV.41
	DIu SEL%	DIV.42
	DISu@EL%	DVI41.
	DISEu`L%	DVI42.
>;END vIFN BIS
	DISEL%	v KEY.
IFN TOPS20,v@<
	DISEL%	PSORT.v`
	DISEL%	PMERG.
	DISEL%	RELES.
w 	DISEL%	MERGE.
	w@DISEL%	MCLOS.
	Dw`ISEL%	RETRN.
	DIxSEL%	ENDS.
>

x 
IFN BIS,<
	DISx@EL%	ADD.4R
>;ENDx` IFN BIS
IFN TCSy,<
	DISEL%	MBINDy 
	DISEL%	MNAME
y@>
	DISEL%	MVD.ALy`
	DISEL%	NUM.3
z	DISEL%	WADVV.
	z DISEL%	WRITV.

z@
	DISEL%	METER.
IFN BIS,<			;[55{4] QUAD-WORD SIZE{  ERROR ROUTINES
{@	DISEL%	SIZE.4
	{`DISEL%	SIZE.5
>;|END IFN BIS			;[5| 54]
	DISEL%	FLT.|@12
	DISEL%	FLT.2|`2
	DISEL%	FIX.2
	DISEL%	E.F2D1
} 	DISEL%	E.F2D2
	}@DISEL%	E.F2FP
	D}`ISEL%	E.F2F2
	DI~SEL%	PPOT4.
	DIS~ EL%	ISBPS.
	DISE~@L%	MROUT.
				;[~`621] (MUST BE PRESENT IN ALL FLAVO RS OF LIBOL)
;V1@2B RMS ENTRY POIN`TS
IFN ANS74,<
	DISEL%	OP.MIX
	 DISEL%	CL.MIX
	D@ISEL%	WT.MIR
	DI`SEL%	WT.MIS
	DISEL%	RD.MIR
	DISE L%	RD.MIS
	DISEL@%	DL.MIR
	DISEL%`	DL.MIS
	DISEL%	RW.MIR
	DISEL%	R W.MIS
	DISEL%	ST@.MEQ
	DISEL%	ST.`MGT
	DISEL%	ST.MNL
>;END IFN ANS 74

	DISEL%	%ST@R.
	DISEL%	%STR.`O
	DISEL%	%UNS.
	DISEL%	%UNS.O
 IFN ANS74,<
	DIS@EL%	SWT.ON
	DISE`L%	SWT.OF
	DISEL%	CMP.67
	DISEL% 	CMP.69
	DISEL%	@CMP.79
	DISEL%	C`OMP.6
	DISEL%	COMP.7
	DISEL%	COM P.9
	DISEL%	SU.S@69
	DISEL%	SU.S7`9
	DISEL%	SU.S97
>
IFN ANS74,<
IFN BIS,<
	DISE@L%	CVDBT.
	DISEL`%	CVDBL.
>;END IFN BIS
>;END IFN ANS74

D IFNK:$IH @AZ
PRINTX %` ENDDFB: THERE ARE A BITS STILL U NASSIGNED BY "DEFBYT"
D BY "DEFK:$IQ  AP
IF1,<
I@FN .BITST,<
	.BI`TLFT==^D36-.BITST	;COMPUTE # OF FR EE BITS
	RADIX 1@0		;MAKE IT COME `OUT IN DECIMAL.
	ENDDF1 (\.BITLFT )	;CALL MACRO TO @PRINT NUMBER
	RA`DIX 8			;BACK TO OCTAL
>
>;END IF1

>
>;END IM&t.: A6
IF1,<
	 .BITST==0	; Reset@ bit position to `0
>; END if1	

>; END if1	
M'Em6P	Q$u|SP$Q$v
	
	DEFIR@NE	SYMH%%	(N%,V)	R`<N%==:0>	
	DEFINSE	SYML%%	(N%,V)	<S SYM%%	N%,V>	
	DES@FINE	ELMT%%	(N%,LS`<1>,V)	<BLKDFV	N%T,L,<V>>	

	RELOT C	0
	CHK==.

	T@%LOSEG

	COMCHKT`	.-CHK		

	PURGUE	SYML%%,SYMH%%,ELMT%%
SYMH%%,ES:4*b /p3#
	ELMT%%	0FILES.
	ELMT%%	U00SES.
	ELMT%%	SEG0PWD.
	ELMT%%	ALTE0pR.
	ELMT%%	OVRFN1.
	ELMT%%	POINT.10
	ELMT%%	COMMA.
	ELMT%%	MONEY.
1p	ELMT%%	MEMRY.
	2ELMT%%	%NM.
	ELM20T%%	%DT.
	ELMT%%2P	%PR.
	ELMT%%	CO2pBVR.
	ELMT%%	COB3SW.
	ELMT%%	PUSH30L.
	ELMT%%	SURRT3P.
	ELMT%%	SUEQT.3p
	ELMT%%	SUFBT.
 IFN ANS74,<
	E40LMT%%	%DB.
 >
MT%%	%DB.
 >
S:5 f`FJ
	INC==0	g	
	DEFINE	ELMT%%g 	(N%,L<1>,V)	<
	g@IFNB	<N%>,<%'N%==g`:INC>
	INC==INC+h1
	>
	DEFINE	SYh ML%%	(N%,L<1>,V)	h@<
	IFNB	<N%>,<%'h`N%==:INC>
	>
	IiNFBK%

	PURGE	Ei LMT%%,SYML%%,INC

,SYML%%,INC<P
	ELMT%%	e@UEBLK.,4
	ELMT%%e`	ULBLK.,4
	ELMT%f%	TTOBP.,1
	ELMTf %%	TTOBC.,1
	ELMf@T%%	TTOBF.,^D27
f`	ELMT%%	STDLB.,16g

	ELMT%%	RRFLGg .,1
	ELMT%%	REDMg@P.,1
	ELMT%%	SHRg`DX.,1
	ELMT%%	TEhMP.,1
	ELMT%%	TEh MP.1,1
	ELMT%%	Jh@SARR.,1
	ELMT%%	h`TEMP.2,1
	ELMT%%i	AINFO.,1
	ELMT%i %	OVRBF.,3
	ELMTi@%%	FLDCT.,1
	ELMi`T%%	OVRIX.,1
	ELjMT%%	NOCR.,1
	ELj MT%%	PRGFLG,1
	Ej@LMT%%	TTYOPN,1
j`
	ELMT%%	ACSAV0,1k7
	ELMT%%	MXIE,1k 
	ELMT%%	IESAVE,k@1
	ELMT%%	MXBUF,k`1
	ELMT%%	AUXBUFl,1
	ELMT%%	AUXIOl W,1
	ELMT%%	AUXBl@NO,1
	ELMT%%	CMDl`LST,2
	ELMT%%	NEmWBK1,1
	ELMT%%	Nm EWBK2,1
	ELMT%%	m@OLDBK,1
	ELMT%%	m`MXBF,1
	ELMT%%	DnRTAB,1
	ELMT%%	Ln RWA,1
	ELMT%%	COn@RPT.,1
	ELMT%%	Hn`LOTC.,1
	ELMT%%	oOTCPT.,1
	ELMT%%o 	RUN.TM,1

	ELMo@T%%	CB.DDT,1
	ELo`MT%%	SBPSA.,1
	EpLMT%%	%F.PTR,1
p 
	ELMT%%	INTBLK,4p@


	ELMT%%	FS.p`ZRO,1
	ELMT%%	FSq.FS,1
	ELMT%%	FSq .EN,1
	ELMT%%	FSq@.BN,1
	ELMT%%	FSq`.RN,1
	ELMT%%	FSr.UPD,1
	ELMT%%	Fr S.IGE,1
	ELMT%%	r@FS.IF,1
	ELMT%%	r`FS.IEC,1



IsFE TOPS20,<
	ELMs T%%	PTH.BK,.PTMAXs@
>


	ELMT%%	s`FOP.BK,1
	ELMT%%t	FOP.IS,1
	ELMT%t %	FOP.DN,1
	ELMTt@%%	FOP.BH,1
	ELMt`T%%	FOP.BN,1
	ELuMT%%	FOP.LB,1
	Eu LMT%%	FOP.PP,1
u@

	ELMT%%	CP.BLKu`,1
	ELMT%%	CP.BKv1,1
	ELMT%%	CP.Bv K2,1
	ELMT%%	CP.v@BK3,1
	ELMT%%	CPv`.BK4,1
	ELMT%%	CwP.BK5,1
	ELMT%%	w CP.BK6,1
	ELMT%%w@	CP.BK7,1
	
	; w`MAKE TMP.BK AT LExAST AS BIG AS .TPx LEN ON TOPS10

x@IFN TOPS20,<	ELMTx`%%	TMP.BK,15>
IFyE TOPS20,<	
 IFNy DEF .TPLEN,<ELMT%y@%	TMP.BK,15>
 IFy`DEF .TPLEN,<
  IzFL <15-.TPLEN>,< z ELMT%%	TMP.BK,.TPz@LEN>
  IFGE <15-z`.TPLEN>,< ELMT%%	{TMP.BK,15>
 >
>{ 

	ELMT%%	FID.B{@K,15

	ELMT%%	N{`RSAV.,5

	ELMT%|%	AUTOLB,1
	ELMT| %%	DELSIZ,1
	ELM|@T%%	LNKNO.,1
	EL|`MT%%	RELEN.,1

}

	ELMT%%	SRC.M} D,1
	ELMT%%	DLM.}@MD,1
	ELMT%%	DST}`.MD,1
	ELMT%%	NX~.SSA,1	;ADDRESS O~ F NEXT SOURCE SER~@IES ITEM
	ELMT%%~`	CV.DLM,1	;INSTRUCTION TO CONVERT  DELIMITER
	ELMT%@%	SSACB.,16	; SAV`ED AC'S WHEN CALLING A TAG
	ELMT% %	TAG.PT,1	;ADDR @OF ROUTINE TO STO`RE POINTER VALUE
	ELMT%%	TAG.DL,1 	;ADDR OF ROUTINE@ TO GET NUMERIC D`ELIMITER
	ELMT%%	TAG.SR,1	;ADDR O F ROUTINE TO GET @NUMERIC SOURCE
	`ELMT%%	SS.CNT,1	;SOURCE-SERIES ITE M COUNTER
	ELMT%@%	DLM.TP,1	;ADDR `OF %TEMP OR %LIT FOR DELIMITER
	E LMT%%	SRC.TP,1	;A@DDR OF %TEMP OR %`LIT FOR SOURCE
	ELMT%%	NX.SRC,1	; ADDR OF NEXT SOUR@CE ITEM
	ELMT%%	`NUM.SR,1	;NUMBER OF SOURCES IN THI S SS
	ELMT%%	NUM@.RC,1	;NUMBER OF `RECEIVING ITEMS FOR UNSTRING
	ELM T%%	CT.DLM,1	;COU@NT OF DELIMITERS
	ELMT%%	SRD.BP,1	;HOLDS BP FOR SO URCE - START OF 1@ST MATCH
	ELMT%%`	SRD.CC,1	;HOLDS 	CC FOR SOURCE - S	 TART OF 1ST MATCH	@
	ELMT%%	SRA.BP,	`1	;HOLDS BP FOR S
OURCE AFTER LAST 
 MATCH
	ELMT%%	SR
@A.CC,1	;HOLDS CC 
`FOR SOURCE AFTER LAST MATCH
	ELMT %%	CV.SDS,1	;CONV@ERSION FROM SOURC`E TO DEST
	ELMT%
%	TAG.ST,1	;GET %
 TEMP SET UP FOR D
@EST.
	ELMT%%	NX.
`DLM,1	;NEXT DELIM
	ELMT%%	NUMER OF 
	ELMTG.CT,1	;TAG TO STORE COUNT IT EM
	ELMT%%	TAG.D@A,1	;TAG TO STORE` AWAY DEST FROM OU.TMP
	ELMT%%	DS T.TP,1	;%LIT OR %@TEMP FOR DEST.
	`ELMT%%	TAG.TL,1	;TAG TO STORE TALL Y ITEM

	ELMT%%@	BS.AGL,1



`
	ELMT%%	SRC.PT,1
	ELMT%%	SRC.CT ,1

	ELMT%%	TMP@.DP,1

	ELMT%%	`OU.ARP,1
	ELMT%%	OU.MDE,1

	ELM T%%	TL.ARG,1
	EL@MT%%	TL.VLU,1

`	ELMT%%	PT.ARG,1
	ELMT%%	PT.VLU,1 

	ELMT%%	AP.TM@P,1
	ELMT%%	DW.T`MP,1

	ELMT%%	SE.DLM,1

	ELMT% %	PF.MDE,1

	EL@MT%%	PT.AGL,1
	E`LMT%%	TP.AGL,1

	ELMT%%	SU.AGL,1 

	ELMT%%	BS.DL@M,1
	ELMT%%	TP.D`LM,1

	ELMT%%	SU.RR
	ELMT%%	 SU.DBR
	ELMT%%	S@U.EQ
				
	ELMT`%%	SU.DQ
	ELMT%%	SU.MQ
	ELMT%%	S U.RRT
	ELMT%%	SU@.T1
	ELMT%%	SU.T`2
	ELMT%%	SU.T3
	ELMT%%	SU.T4
	 ELMT%%	SU.T5
	EL@MT%%	SU.T6
	ELMT`%%	SU.T7
	ELMT%%	SU.T8
	ELMT%%	S U.T9
	ELMT%%	SU.@CRH
				
	ELMT%`%	SU.EQT
	ELMT%%	SU.DQT
	ELMT%%	 SU.MQT
	ELMT%%	S@U.Y
	ELMT%%	SU.R`BP
				
	ELMT%%	SU.MRR
	ELMT%%	 SU.SBD
	ELMT%%	S@U.RLV
	ELMT%%	SU`.RND
	ELMT%%	SU.SFQ
	ELMT%%	SU.S FS
	ELMT%%	SU.SB@S
	ELMT%%	SU.NR
	ELMT%%	SU.FR
	ELMT%%	SU.AK
	EL MT%%	SU.FBT
	ELM@T%%	SU.CFB
	ELMT`%%	SU.VRB
				
	ELMT%%	SU.HV
	E LMT%%	SU.CK
	ELM@T%%	SU.SVK
	ELMT`%%	SU.CL1
	ELMT%%	SU.CL2
	ELMT%% 	SU.CLR
	ELMT%%	@SU.CLS
	ELMT%%	S`U.SAV,5

	ELMT% %	FET1,1
	ELMT%%  	FET2,1
	ELMT%%	 @FET3,1
	ELMT%%	F `ET4,1

	ELMT%%	!SU.FRF


	ELMT! %%	USRLO.
IFN BI!@S,<
	ELMT%%	MRKP!`TR,2
>


	ELM"T%%	FUN.A0,1
	EL" MT%%	FUN.ST,1
	E"@LMT%%	FUN.A1,1
	"`ELMT%%	FUN.A2,1
#	ELMT%%	FUN.A3,1


IFN MCS!TCS,#@<
IFE TOPS20,<
	ELMT%%	SNDMSG,1$0
	ELMT%%	MCSTN,$ 1
	ELMT%%	M.TMP1$@,1
	ELMT%%	M.TMP$`2,1
	ELMT%%	M.AT%CT,1
	ELMT%%	MCS% PT,1
	ELMT%%	PID%@MCP,1
	ELMT%%	PI%`DLCM,1
	ELMT%%	I&PCFLG,1
	ELMT%%	& PAKSND,4
	ELMT%%&@	MSGSND,10
	ELMT&`%%	PAKREC,4
	ELM'T%%	MSGREC,10

' 



	ELMT%%	P'@AGOFF,1
	ELMT%%	'`PAGBIT,1
	ELMT%%(	PAGLST,1
	ELMT%( %	PAGCNT,1
>>
 (@IFE TOPS20,<
	EL(`MT%%	PAGTBL,20
	)ELMT%%	T1SAV,1
>) 
	ELMT%%	DBMLOC,)@1


IFN MCS!TC)`S,<
 IFN TOPS20,*<
	ELMT%% TP.RG1* ,1
	ELMT%% TP.RG*@2,1
	ELMT%% TP.R*`G3,1
	ELMT%% TP.+RG4,1
	ELMT%% TP+ .RG5,1
	ELMT%% T+@P.ID,1
	ELMT%% T+`P.CRP,1
	ELMT%% ,TP.IPC,1
	ELMT%%,  TP.CPP,1
	ELMT%,@% TP.JFN,1
	ELMT,`%% TP.WNS,1
	ELM-T%% TP.TMP,3
	SY- ML%% TP.PDS,^D10
	ELMT%% TP.PDB,T-`P.PDS
	SYML%% TP..PKS,^D30
	ELMT%. % TP.PKT,TP.PKS
.@	SYML%% TP.NAM,TP.`.PKT+2
	ELMT%% T/P.TPD,1
	ELMT%% / TP.LPD,1
	ELMT%%/@ TP.HDS,1
	ELMT%/`% TP.HDP,1
	ELMT0%% TP.DVP,1
	ELM0 T%% TP.BTP,1
	EL0@MT%% TP.PAT,^D10
>>

IFN DBMS,<1
	ELMT%% DBMLOK,1 1
>
	ELMT%% OSH1@OOT,1

IFE TOPS1`20,<
	ELMT%% M7.200,1
>

IFN LS2 TATS,<
	ELMT%%	M2@RTMB.,1
	ELMT%%	2`MROPT.,1
	ELMT%%3	MROPTT,^D16
			3 		; POINTS TO STA3@RT OF BUCKET BLOC3`K
	ELMT%%	MRHDBP4,1
	ELMT%%	MRHDF4 L,1
					; BLOCK4@
	ELMT%%	MRTDBP,4`1
	ELMT%%	MRLDBL5,1
					; OR BUF5 FER FOR COPY FROM5@ .TMP TO .MTO
IF5`N DBMS6,<
	ELMT%6%	MRDDBP,1
>
	E6 LMT%%	MRNM6,1
	E6@LMT%%	MRNMA,3
	E6`LMT%%	MRAFFT,1
	7ELMT%%	MRFKFT,1
7 IFE TOPS20,<
	EL7@MT%%	MBTIM.,1
	E7`LMT%%	MRCHNN,1
	8ELMT%%	MRCHCF,1
8@	ELMT%%	MRBLKO,1
	ELMT%%	MRBKO.,18`
	>
IFN TOPS20,9<
	ELMT%%	MBTIM.9 ,2
	ELMT%%	MRJFN9@,1
	ELMT%%	MRLCJ9`F,1
	ELMT%%	MRBL:KO,2
	ELMT%%	MRB: KO.,2
IFN FTLSDR:@,<
	ELMT%%	MRLDN:`A,^D10
	ELMT%%	M;RLDJF,1
	  >;END;  IFN FTLSDR
	>;E;@ND IFN TOPS20
IF;`N FTLSDR,<
	ELMT<%%	MRLBPC,1
	ELM< T%%	MRLSZL,1
	EL<@MT%%	MRLFPR,1
  <`IFE TOPS20,<
	EL=MT%%	MRCHLS,1
	E= LMT%%	MRLLDR,1
	=@ELMT%%	MRLLDV,1
=`	ELMT%%	MRCFNM,1
	ELMT%%	MRCFEX,1> 
   >;END IFE TO>@PS20
>;END IFN F>`TLSDR
	ELMT%%	MR?APN.,1
					;0 I? F FILE IS NEW
	E?@LMT%%	MRFPGT,1,
?`	ELMT%%	MRKILL,1
	ELMT%%	MRBNUM,1@ 
	ELMT%%	MRRERN,@@1
					; (THUS C@`AN'T WRITE IN .MTAO FILE)
IFN TOPSA 20, ELMT%% MRPSTMA@,2
IFE TOPS20, EA`LMT%% MRPSTM,1
B
>

	ELMT%%	DBSB TP.,1

;THE FOLB@LOWING ARE USED FB`OR $ERROR PROCESSCING
	ELMT%%	ER.PC C,1
	ELMT%%	ER.FC@LG,1
	ELMT%%	ER.C`MCL,1
	ELMT%%	ERD.HIJ,1
					; SOD METIMES SET UP BED@FORE THE $ERROR
D`					; CALL.
IFNE TOPS20,<
	ELMT%E %	ER.JSE,1
>
IFE@E TOPS20,<
	ELMTE`%%	ER.E10,1
>
	FELMT%%	ER.RBG,1
F 
;** THE FOLLOWIF@NG LOCATIONS SHOUF`LD BECOME "VISIBLGE" IN VERSION 13.G 
;   THEY ARE HEG@RE TEMPORARILY FOG`R 12B SO 12A IS CHOMPATIBLE.
	ELMTH %%	SLRSW.,1
	ELMH@T%%	RMFLG.,1

H`
IFN ANS74,<
;USIED BY RMSIO
	ELMI T%%	CVPRM.,2
	ELI@MT%%	CVARGS,2
	EI`LMT%%	RMSVR.,1
>J
	ELMT%%	INTRAP,1
MT%%	INTRAP,Y<v
@ `B,

;ERROR CHECKS
IF1,<
	 IFNDEF XB,<PRINT@X ? B NOT DEFINE`D WITH "DEFBYT">
>;END PASS 1 ERR OR CHECKS

DFBF@==XB_-^D32		;GET` FLAG WORDS
IFE DFBF-DFB.FW,<		;G EN FULL WORD INST@RUCTION
	MOVE	A`,YB+C
	>
IFE DFBF-DFB.RH,<		;G EN RIGHT HALF WOR@D INSTRUCTION
	H`RRZ	A,YB+C
	> 
IFE DFBF-DFB.LH  ,<		;GEN LEFT HAL @F WORD INSTRUCTIO `N
	HLRZ	A,YB+!C
	>
IFE DFBF-D! FB.BT,<
..X==XB!@_^D18
..X==..X_-!`^D18			;GET RID O"F LH, = ENDING BI" T POSITION 
..Y="@=<XB_-^D18>&^O77"`		;GET LH, JUST ## OF BITS
	..LIT=# =<YB+C>	;FIRST #@PART OF LITERAL B#`EING BUILT
	..LI$T==..LIT+<..Y_^D2$ 4> ;# OF BITS IN $@BYTE PTR
	..LIT=$`=..LIT+<<^D36-..X%-1>_^D30> ;FINAL % BIT POSITION IN B%@YTE PTR
	LDB	A,[..LIT]
	>
A,Y?< XF
	DEFINE	X SYMH%%	(N%,V)	< >X@
	DEFINE	SYML%%	X`(N%,V)	<SYM%%	N%,YV>	
	DEFINE	ELMTY %%	(N%,L<1>,V)	<BY@LKDFV	N%,L,<V>>
Y`	LOC	LO.PUR			
Z
	VISBL%

	DEFIZ NE	ELMT%%	(N%,L<1Z@>,V) <BLOCK L>
Z`
	INFBK%


	DE[FINE	ELMT%%	(N%,L[ <1>,V) <
	IFIDN [@<N%><E0.6>,<N%::	[`E0.6.1=:E0.6+1>
\	IFIDN <N%><E0.7>\ ,<N%::	E0.7.1=:E0\@.7+1>
	IFIDN <N%\`><E0.9>,<N%::	E0.]9.1=:E0.9+1>
	IF] IDN <N%><OU.TMP>,]@<N%::>
	IFIDN <N]`%><DST.BP>,<N%::>^
	IFIDN <N%><DST^ .CC>,<N%::>
	IFI^@DN <N%><PT.VAL>,<^`N%::>
	IFIDN <N%><SRC.BP>,<N%::>
	IFIDN <N%><SRC._@CC>,<N%::>
	IFID_`N <N%><SR.TMP>,<N`%::>
	IFIDN <N%>` <DLM.BP>,<N%::>
`@	IFIDN <N%><DLM.C``C>,<N%::>
	IFIDNa <N%><TMP.DL>,<N%a ::>
	IFIDN <N%><a@TL.VAL>,<N%::>
	a`IFIDN <N%><CT.VALb>,<N%::>
	BLOCK	b L>

	DEFINE	SYMb@L%%	(N%,V)	< >
b`
	PREST%

	COMCcHK	.-LO.PUR	

	c PURGE	ELMT%%,SYMH%%,SYML%%,ADR
[P _BpZ7Q _Bp[zQ aJ.= 56&
	SYML%%	5@IFRST.,.
	SYMH%%5`	PFRST.,.

IFN 6ANS68,<
	ELMT%%	6 OVFLG.,1,<Z		>
>6@

IFN BIS,<
	E6`LMT%%	E0.6,1,<EDI7T	0>
	ELMT%%	E0.7 6.1,1,<0>
	ELMT%7@%	,1,<0>
	ELMT%%7`	,1,<"$"-40>
	EL8MT%%	,1,<","-40>
	ELMT%%	,1,<"."-8@40>
	ELMT%%	,1,<8`" "-40>
	ELMT%%	9,1,<"0"-40>
	ELM9 T%%	,1,<"+"-40>
9@	ELMT%%	,1,<"-"-49`0>
	ELMT%%	,1,<":C"-40>
	ELMT%%	,: 1,<"R"-40>
	ELMT:@%%	,1,<"D"-40>
	:`ELMT%%	,1,<"B"-40;>
IFN ANS74,<
	; ELMT%%	,1,<"/"-40;@>
>

	ELMT%%	E;`0.7,1,<EDIT	0>
	<ELMT%%	E0.7.1,1,<< 0>
	ELMT%%	,1,<0<@>
	ELMT%%	,1,<"$<`">
	ELMT%%	,1,<"=,">
	ELMT%%	,1,<= ".">
	ELMT%%	,1,=@<" ">
	ELMT%%	,1=`,<"0">
	ELMT%%	,>1,<"+">
	ELMT%%	> ,1,<"-">
	ELMT%%>@	,1,<"C">
	ELMT%>`%	,1,<"R">
	ELMT?%%	,1,<"D">
	ELM? T%%	,1,<"B">
IFN?@ ANS74,<
	ELMT%%?`	,1,<"/">
>

	@ELMT%%	E0.9,1,<ED@ IT	0>
	ELMT%%	E0@@.9.1,1,<0>
	ELMT@`%%	,1,<0>
	ELMT%A%	,1,<133>
	ELMTA %%	,1,<153>
	ELMA@T%%	,1,<113>
	ELA`MT%%	,1,<100>
	EBLMT%%	,1,<360>
	B ELMT%%	,1,<116>
B@	ELMT%%	,1,<140>
	ELMT%%	,1,<303>C
	ELMT%%	,1,<331C >
	ELMT%%	,1,<30C@4>
	ELMT%%	,1,<3C`02>
IFN ANS74,<
	ELMT%%	,1,<141>D 
>
>



	ELD@MT%%	OU.TMP,5		;FD`OR STRING
	ELMT%E%	DST.BP,1		;DESTE INATION BYTE POINE@TER
	ELMT%%	DST.E`CC,1		;DESTINATIOFN CHAR COUNT
	ELF MT%%	PT.VAL,1		;'F@POINTER' VALUE
	F`ELMT%%	SRC.BP,1		G;SOURCE BYTE PTR
	ELMT%%	SRC.CC,1G@		;CC OF SOURCE
G`	ELMT%%	SR.TMP,5	H	;TEMP HOLD FOR NH UMERIC SOURCE
	EH@LMT%%	DLM.BP,1		;H`BYTE PTR TO DELIMIITER
	ELMT%%	DLMI .CC,1		;CC OF DELI@IMITER
	ELMT%%	TI`MP.DL,5		;TEMP HOJLD FOR NUMERIC DEJ LIMITER
	ELMT%%	J@TL.VAL,1		;TALLY J`VALUE
	ELMT%%	CTK.VAL,1		;COUNT VAK LUE

	SYML%%	FRK@STIC,.
	ELMT%%	IK`IN,1,<IN 0,CMDLSTL	>
	ELMT%%	IOUT,L 1,<OUT 0,CMDLST	>L@
	ELMT%%	ISETI,1L`,<USETI 0,(AC1)	>M
	ELMT%%	ISETO,1M ,<USETO 0,(AC1)	>M@
	ELMT%%	ICLOS,1M`,<CLOSE 0,0	>
	ENLMT%%	IRELE,1,<REN LEAS 0,0	>
	ELMTN@%%	IGETS,1,<GETSTN`S 0,AC2	>
	ELMT%O%	ISETS,1,<SETSTSO  0(AC2)>
	ELMT%%O@	IWAIT,1,<CALLI 0O`,10	>
	ELMT%%	IRPNAM,1,<RENAME 0,UP EBLK.	>
	SYML%%	P@LASTIC,<.-1>

	P`SYML%%	UFRST.,.
Q	ELMT%%	MWAIT.,1,Q <MTAPE 0,0	>
	ELQ@MT%%	MREW.,1,<MTAQ`PE 0,1	>
	ELMT%%R	MREWU.,1,<MTAPE R 0,11	>
	ELMT%%	MR@BSPR.,1,<MTAPE 0,R`7	>
	ELMT%%	MBSPSF.,1,<MTAPE 0,17	S >
	ELMT%%	MADVR.S@,1,<MTAPE 0,6	>
S`	ELMT%%	MADVF.,1,T<MTAPE 0,16	>
	ET LMT%%	MWEOF.,1,<MT@TAPE 0,3	>
	ELMTT`%%	MTIND.,1,<MTAPUE 0,101	>
	ELMT%U %	MERAS.,1,<MTAPEU@ 0,13	>


	ELMU`T%%	SOBOT.,1,<STAVTO 0,4000	>
	ELMV T%%	SZBOT.,1,<STAV@TZ 0,4000	>
	ELMV`T%%	SZEOF.,1,<STAWTZ 0,20000	>
	ELW MT%%	SZEOT.,1,<STW@ATZ 0,2000	>
	ELW`MT%%	UOPEN.,1,<OPXEN 0,UOBLK.	>
	EX LMT%%	UENTR.,1,<EX@NTER 0,UEBLK.>
	X`ELMT%%	ULKUP.,1,<YLOOKUP 0,ULBLK.>
	ELMT%%	UOBUF.,1Y@,<OUTBUF 0,2(AC6)Y`>
	ELMT%%	UIBUF.Z,1,<INBUF 0,2(AC6Z )	>
	ELMT%%	UCLOZ@S.,1,<CLOSE 0,0	>Z`
	ELMT%%	URELE.,[1,<RELEAS 0,0	>
[`	ELMT%%	USETI.,1,[@<USETI 0,(AC1)	>
	ELMT%%	USETO.,1\,<USETO 0,(AC1)	>\ 
	ELMT%%	UOUT.,1\@,<OUT 0,0		>
	EL\`MT%%	UIN.,1,<IN 0],0		>
	ELMT%%	US] ETS.,1,<SETSTS 0,]@(AC2)	>
	ELMT%%	]`UGETS.,1,<GETSTS ^0,AC2	>
	ELMT%%	^ UWAIT.,1,<CALLI	0^@,10	>
IFN ANS68,^`<
	ELMT%%	USEEK.,1,<CALLI	0,56	>
>
IFN ANS74,<
_@	SYML%% 	USEEK.,-_`1
>
	ELMT%%	URN`AM.,1,<RENAME 0,U` EBLK.>
	SYML%%	U`@LAST.,<.-1>
	SYM``L%%	ULEN.,<UFRST.a-ULAST.>

	ELMTa %%	UOCAL.,1,<EXP a@C.RSET##+1>
	ELMa`T%%	UOBLK.,3,<EXPb 0		>
	ELMT%%	TMb P.PT,1,<POINT 7,Tb@MP.BK>
	ELMT%%  b`FID.PT,1,<POINT 7c,FID.BK>
	ELMT%%c 	FUSIA.,2,<EXP 11c@	>
	ELMT%%	FUSOAc`.,2,<EXP 12	>
	EdLMT%%	FUSCP.,1,<Ed XP 10	>
	ELMT%%	d@ARGBK.,6,<EXP 5		d`>
	SYML%%	ILAST.,<.-6>

	AST.aW
" IDv

	
IFEI  TOPS20,<
	DEFINI@E	DISEL%	(NAM)	<JI`RST	1,NAM##>	
	DJEFINE	DSTBL%	(NAMJ ,IR)	<JRST	1,@NAMJ@##(IR)>
>
IFN TJ`OPS20,<
	DEFINE	KDISEL%	(NAM)	<JRSK T	NAM##>	
	DEFINK@E	DSTBL%	(NAM,IR)K`	<JRST	@NAM##(IR)L>
>
	RELOC	HI.OL RG			
	DISTB%			L@	

	
	DEFINE	SL`YMH%%	(N%,V)	<SYMM%%	N%,V>	
	DEFINM E	SYML%%	(N%,V)	<M@ >		
	DEFINE	ELMM`T%%	(N%,L<1>,V)	<NBLKDFV	,L,<V>>	
N 	PREST%				

	PN@URGE	ELMT%%,SYMH%N`%,SYML%%,DISEL%,DSTBL%
DISEL%,DaWKb O E

	DEFINO@E	ELMT%%	(N%,L<1>O`,V)	<BLKDF	N%,L>	P
	LOC	LO.PUR			
	DEFINE	SYML%%	(P@N%,V)	<SYM%%	N%,VP`>	
	DEFINE	SYMH%Q%	(N%,V)	< >	

Q 	%LOSEG			

	COQ@MCHK	.-LO.PUR	
Q`
	PURGE	ELMT%%,SYMH%%,SYML%%
SYe-nQ e7iXP +e7kP <gl.: @A,

IF1,<	`			;ONLY HAPPENS ON PASS 1
;ERROR  CHECKS
IFNDEF X@B,<	PRINTX ? SAM`BYT: B NOT PREVIOUSLY DEFINED WIT H DEFBYT>

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

;ERROR0  CHECKS
IF1,<
	0@IFNDEF XB,<PRINT0`X ? B NOT DEFINE1D WITH "DEFBYT">
>;END PASS 1 ERR1@OR CHECKS

DFBF1`==XB_-^D32		;GET2 FLAG WORDS
IFE 2 DFBF-DFB.FW,<		;G2@EN FULL WORD INST2`RUCTION
	MOVEM	3A,YB+C
	>
IFE3  DFBF-DFB.RH,<		;3@GEN RIGHT HALF WO3`RD INSTRUCTION
	4HRRM	A,YB+C
	4 >
IFE DFBF-DFB.L4@H,<		;GEN LEFT HA4`LF WORD INSTRUCTI5ON
	HRLM	A,YB+5 C
	>
IFE DFBF-5@DFB.BT,<
..X==X5`B_^D18
..X==..X_6-^D18			;GET RID 6 OF LH, = ENDING B6@IT POSITION 
..Y6`==<XB_-^D18>&^O777		;GET LH, JUST 7 # OF BITS
	..LIT7@==<YB+C>	;FIRST7` PART OF LITERAL 8BEING BUILT
	..L8 IT==..LIT+<..Y_^D8@24> ;# OF BITS IN8` BYTE PTR
	..LIT9==..LIT+<<^D36-..9 X-1>_^D30> ;FINAL9@ BIT POSITION IN 9`BYTE PTR
	DPB	A,[..LIT]
	>
AgfhQ  DDA==:BiP i?4HP m'+ "P2{

	ELMT%"p%	MEMRY%,1
	ELMT#%%	TALLY.,1,<Z>
#0	ELMT%%	SZERA.,1,#P<Z>
	ELMT%%	OVFL#pO.,1,<Z>

	ELMT$%%	TRAC1.,1,<JRST$0	BTRAC.##>
	ELMT$P%%	TRAC2.,1,<JRST$p	TRPOP.##>
	ELMT%%%	TRAC3.,1,<JRST%0	TRPD.##>

	ELM%PT%%	OPNCH.,1,<XWD%p	777774,0>
	ELMT&%%	RN.DEV,1
	ELM&0T%%	RN.PPN,1
	EL&PMT%%	RN.NAM,1
	E&pLMT%%	FSLOC.,1,<Z'>
	ELMT%%	HLOVL.'0,1,<Z>

	ELMT%%'P	%REMOV,1,<EXP	RE'pMOV.##>
IFN ANS7(4,<
	ELMT%%	%ENT(0OV,1,<EXP	ENTOV.#(P#>
>

	ELMT%%	(pKEYCV.,1,<Z>
	EL)MT%%	SAVEF.,1,<Z>)0






	EL)PMT%%	HPRT.,1,<EXP)p	HSRPT.##>
					*	; PRINTING ROUTI*0NE.
	ELMT%%	SEGN*PO.,1,<Z>
	ELMT%%*p	SNRBP.,1,<EXP	SB+PSG.##>


	ELM+0T%%	TRAC4.,1,<EXP+P	CNTRC.##>
	ELMT+p%%	CIOTF.,1,<EXP	,SFOV.##>



,0


IFN DBMS,<		,P		;[623]
	ELMT%%,p	DBSTP%,1,<EXP	DB-STP$##>
	SYML%%	-0LEVEL.,<.-1>
	IF-PNDEF LEVEL.,<PRIN-pTX ?LEVEL. NOT DE.FINED!>
>					;[.0623]
IFE DBMS,<	.P			;[623]
	ELMT%.p%	LEVEL.,1,<Z>
>/					;[623]

	E/0LMT%%	METR.,1,<Z>



.,1,<Z>u2| &B|

;ERROR&  CHECKS
IF1,<
	&@IFNDEF XB,<PRINT&`X ? B NOT DEFINE'D WITH "DEFBYT">
>;END PASS 1 ERR'@OR CHECKS

DFBF'`==XB_-^D32		;GET( FLAG WORDS
IFE ( DFBF-DFB.FW,<		;G(@EN FULL WORD INST(`RUCTION
	MOVE	A),C
	>
IFE DFBF) -DFB.RH,<		;GEN R)@IGHT HALF WORD IN)`STRUCTION
	HRRZ	*A,C
	>
IFE DF* BF-DFB.LH,<		;GEN*@ LEFT HALF WORD I*`NSTRUCTION
	HLRZ+	A,C
	>
IFE D+ FBF-DFB.BT,<
..X+@==XB_^D18
..X==+`..X-^D18			;GET ,RID OF LH, = ENDI, NG BIT POSITION 
..Y==<XB_-^D18>,`&^O77		;GET LH, J-UST # OF BITS
	.- .LIT==<C>		;FIRS-@T PART OF LITERAL-` BEING BUILT
	...LIT==..LIT+<..Y_^. D24> ;# OF BITS I.@N BYTE PTR
	..LI.`T==..LIT+<<^D36-./.X-1>_^D30> ;FINA/ L BIT POSITION IN/@ BYTE PTR
	LDB	A,[..LIT]
	>
uO%|R : D 

;ERROR:@ CHECKS
IF1,<
	:`IFNDEF XB,<PRINT;X ? B NOT DEFINE; D WITH "DEFBYT">
>;END PASS 1 ERR;`OR CHECKS

DFBF<==XB_-^D32		;GET<  FLAG WORDS
IFE <@DFBF-DFB.FW,<		;G<`EN FULL WORD INST=RUCTION
	MOVEM	= A,C
	>
IFE DFB=@F-DFB.RH,<		;GEN =`RIGHT HALF WORD I>NSTRUCTION
	HRRM> 	A,C
	>
IFE D>@FBF-DFB.LH,<		;GE>`N LEFT HALF WORD ?INSTRUCTION
	HRL? M	A,C
	>
IFE ?@DFBF-DFB.BT,<
..?`X==XB_^D18
..X=@=..X_-^D18			;GET@  RID OF LH, = END@@ING BIT POSITION @`
..Y==<XB_-^D18A>&^O77		;GET LH, A JUST # OF BITS
	A@..LIT==<C>		;FIRA`ST PART OF LITERABL BEING BUILT
	.B .LIT==..LIT+<..Y_B@^D24> ;# OF BITS B`IN BYTE PTR
	..LCIT==..LIT+<<^D36-C ..X-1>_^D30> ;FINC@AL BIT POSITION IC`N BYTE PTR
	DPB	DA,[..LIT]
	>
A,[..LIT]
	>

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