Google
 

Trailing-Edge - PDP-10 Archives - BB-Z759A-SM - cobol-build/comuni.unv
There are 15 other files named comuni.unv in the archive. Click here to see a list.
x
,5#@P E2\I@ $p2*Gh
	IFNB	<% A>,<A::>
	BLOCK	B
:>
	BLOCK4?2#1E2\I[ &2;Gx
	IFNB	<&0A>,<A::>
	IFN	&PB,<IFB	<C>,<BLOC&pK	B>
		    IFNB'	<C>,<REPEAT	B,'0<
					C>>
		>
				C>>
		>4@2,1G3YQ @G3[Q G>l: >4
	IFG	A->0COMSIZ,<
	XXX.==>PA-COMSIZ
  DEFI>pNE PEXCS(OVRFLO),?<
	PRINTX	?COMSI?0Z EXCEEDED BY 'OV?PRFLO (OCTAL) WORD?pS - REGENERATE TH@E COMPILER
@0>
	PEXCS(\XXX.)
>@P;END IFG A-COMSIZ
IFG A-COMSIG>n:=P pG?T  2REMARKI
n0P I4.: gP/

IFNDEFgp .BITST,<	.BITST=h=0>	;START AT 0
h0
IF1,<			;ALL THhPIS STUFF HAPPENS hpONLY IN PASS 1
i
;ERROR CHECKS
Ii0FDEF YA,<	PRINTXiP ?A ALREADY DEFIipNED WITH DEFBYT
j	>

IFG <.BITSTj0+B-^D36>,< PRINTjPX ?DEFBYT: A DOEjpS NOT FIT IN WORDk>
; END OF ERRORk0 CHECKS

;DEFINkPE YA TO BE THE WkpORD C
	YA==C

	DFENDP==B+.Bl0ITST-1	;END POSITlPION

;COMPUTE FlpLAGS
	DFBF==DFB.mBT		;ASSUME BYTE m0INSTRUCTION NEEDEmPD
IFE B-^D36,<
	DFBF==DFB.FW> ;nFULL WORD
IFE Bn0-^D18,<
	IFE DFEnPNDP-^D17,<
	DFBFnp==DFB.LH>		;LEFT oHALF-WORD INSTRUCo0TION NEEDED
	IFEoP DFENDP-^D35,<
	opDFBF==DFB.RH>		;RpIGHT HALF-WORD INp0STRUCTION NEEDED
	>

	XA==<DFBppF>B21+B,,DFENDP

	.BITST==B+.Bq0ITST

IFE <.BITqPST-^D36>,<.BITST=qp=0>	;.BITST IS NErW STARTING POSITION
>;END IF1
IhZP Ii[P IkP IlTP I' 5p3E
	ADR==HI6.PUR	
	DEFINE	DI60SEL%	(N%)	<
	N%=6P:ADR		
	ADR==ADR6p+1
	>
	DEFINE	D7IDDR%	(N%)	<
	N%70=:ADR
	ADR==ADR+7P1
	>
	DEFINE	DS7pTBL%	(NAM,IR)	<DI8SEL%	(NAM)>

	D80ISTB%				

	PUR8PGE	DISEL%,DIDDR%,DSTBL%,ADR
R%,I'HB -.9

	DISEL-0%	C.RSET
	DISEL%-P	STOPR.
	DISEL%	-pC.STOP
	DISEL%	K.ILL.
	DISEL%	GOT.0O.
	DISEL%	KDECL.P.
	DISEL%	KPROG..p
	DISEL%	DSP.FP
	DISEL%	DSP.F2
/0	DISEL%	LINE.C
	/PDISEL%	LINE.D
	D/pISEL%	LINE.H
	DI0SEL%	LIN.RH
	DIS00EL%	CANCL.
	DISE0PL%	S.CALL
	DISEL0p%	M.INIT
	DISEL%1	M.RMW
	DISEL%	M10.RSW
	DISEL%	M.R1PMNW
	DISEL%	M.RS1pNW
	DISEL%	M.SEN2D
	DISEL%	M.AC
20	DISEL%	M.IFM
	D2PISEL%	M.DI
	DISE2pL%	M.DIT
	DISEL%3	M.DO
	DISEL%	M.30EI
	DISEL%	M.EIT3P
	DISEL%	M.EO
	3pDISEL%	STR.
	DIS4EL%	STR.O
	DISEL40%	UNS.
	DISEL%	U4PNS.O
	DISEL%	FUN4pCT.
	DISEL%	FIX.5
	DISEL%	PERF.
50	DISEL%	FLOT.2
	5PDISEL%	PD6.
	DIS5pEL%	PD7.
	DISEL%6	GD6.
	DISEL%	GD607.
	DISEL%	MUL.16P2
	DISEL%	MUL.216p
	DISEL%	MUL.22
	DISEL%	DIV.11
70	DISEL%	DIV.12
	7PDISEL%	DIV.21
	D7pISEL%	DIV.22
	DI8SEL%	C.OPEN
	DIS80EL%	C.CLOS
	DISE8PL%	DSPLY.
	DISEL8p%	ACEPT.
	DISEL%9	READ.
	DISEL%	W90RITE.
	DISEL%	WA9PDV.
	DISEL%	RDNX9pT.
	DISEL%	DELET:.
	DISEL%	RERIT.:0
	DISEL%	PURGE.
	DISEL%	INIT.
	:pDISEL%	TERM.
	DI;SEL%	COMP.
	DISE;0L%	CMP.76
	DISEL;P%	SPAC.6
	DISEL%;p	SPAC.7
	DISEL%	<SPAC.9
	DISEL%	N<0UM.6
	DISEL%	NUM<P.7
	DISEL%	NUM.9<p
	DISEL%	ZERO.6
	DISEL%	ZERO.7
=0	DISEL%	ZERO.9
	=PDISEL%	POS.6
	DI=pSEL%	POS.7
	DISE>L%	POS.9
	DISEL%>0	NEG.6
	DISEL%	N>PEG.7
	DISEL%	NEG>p.9
	DISEL%	DBMS.?
	DISEL%	MOVE.
?0	DISEL%	LFENQ.
	?PDISEL%	LRENQ.
	D?pISEL%	LRDEQ.
	DI@SEL%	C.D6D7
	DIS@0EL%	C.D7D6
	DISE@PL%	CMP.E
	DISEL%@p	CMP.G
	DISEL%	CAMP.GE
	DISEL%	CMA0P.L
	DISEL%	CMP.APLE
	DISEL%	CMP.NAp
	DISEL%	EDIT.S
	DISEL%	EDIT.U
B0	DISEL%	INSP.
	DBPISEL%	SUBSC.
	DIBpSEL%	SIZE.1
	DISCEL%	SIZE.2
	DISEC0L%	SIZE.3
	DISELCP%	E.C3C1
	DISEL%Cp	E.C3C3
	DISEL%	DOVLAY.
	DISEL%	CD0.EXIT
	DISEL%	ARDPGS.
	DISEL%	PUTFDp.
	DISEL%	RESF.
	DISEL%	GETNM.
E0	DISEL%	ILLC.
	DEPISEL%	C.D6D9
	DIEpSEL%	C.D7D9
	DISFEL%	C.D9D6
	DISEF0L%	C.D9D7
	DISELFP%	PC3.
	DISEL%	PFpD9.
	DISEL%	GC3.G
	DISEL%	GD9.
	G0DISEL%	CMP.96
	DGPISEL%	CMP.97
	DIGpSEL%	EDIT.B
	DISHEL%	RSTAB.
	DISEH0L%	ZERC.6
	DISELHP%	ZERC.7
	DISEL%Hp	ZERC.9
	DISEL%	IC.STRT
	DISEL%	DI0ATE.
	DISEL%	DAYIP.
	DISEL%	TIME.

	DSTBL%	USRTB.J,15



	DISELJ0%	DSPL.6
	DISEL%JP	DSPL.7

	DISELJp%	SUBE1.
	DISEL%K	SUBE2.
	DISEL%	K0SUBE3.
	DISEL%	EKPXIT.E
	DISEL%	XTKpND.E
	DIDDR%	ALPL.66
	DIDDR%	ALP.L067
	DIDDR%	ALP.6LP9
	DIDDR%	ALP.76Lp
	DIDDR%	ALP.77
	DIDDR%	ALP.79
M0	DIDDR%	ALP.96
	MPDIDDR%	ALP.97
	DMpIDDR%	ALP.99
	DINDDR%	ALPS.6
	DIDN0DR%	ALPS.7
	DIDDNPR%	ALPS.9
	DIDDRNp%	NUM.66
	DIDDR%O	NUM.67
	DIDDR%	O0NUM.69
	DIDDR%	NOPUM.76
	DIDDR%	NUOpM.77
	DIDDR%	NUMP.79
	DIDDR%	NUM.P096
	DIDDR%	NUM.9PP7
	DIDDR%	NUM.99Pp
	DISEL%	CVTDB.
	DISEL%	CBDOV.
Q0	DIDDR%	CVBD.6
	QPDIDDR%	CVBD.7
	DQpIDDR%	CVBD.9

R
	DISEL%	DIV.41
R0	DISEL%	DIV.42
	RPDISEL%	DVI41.
	DRpISEL%	DVI42.
	DISSEL%	KEY.
REPEATS0 0,<			;SORT IS NSPOW IN ITS OWN SECSpTION
	DISEL%	PSOTRT.
	DISEL%	PMERT0G.
	DISEL%	RELESTP.
	DISEL%	MERGE.Tp
	DISEL%	MCLOS.
	DISEL%	RETRN.
U0	DISEL%	ENDS.
>UP


	DISEL%	ADD.Up4R
REPEAT 0,<
 VIFN MCS,<
	DISELV0%	MBIND
	DISEL%	VPMNAME
 >
>;END VpREPEAT 0
	DISEL%W	MVD.AL
	DISEL%	W0NUM.3
	DISEL%	WAWPDVV.
	DISEL%	WRIWpTV.


				;[55X4] QUAD-WORD SIZEX0 ERROR ROUTINES
XP	DISEL%	SIZE.4
	XpDISEL%	SIZE.5
	DYISEL%	FLT.12
	DIY0SEL%	FLT.22
	DISYPEL%	FIX.2
	DISELYp%	E.F2D1
	DISEL%Z	E.F2D2
	DISEL%	Z0E.F2FP
	DISEL%	EZP.F2F2
	DISEL%	PPZpOT4.
	DISEL%	ISB[PS.

;V12B RMS [0ENTRY POINTS
	DI[PSEL%	OP.MIX
	DIS[pEL%	CL.MIX
	DISE\L%	WT.MIR
	DISEL\0%	WT.MIS
	DISEL%\P	WT.MSV
	DISEL%	\pRD.MIR
	DISEL%	R]D.MIS
	DISEL%	DL]0.MIR
	DISEL%	DL.]PMIS
	DISEL%	RW.M]pIR
	DISEL%	RW.MI^S
	DISEL%	ST.MEQ^0
	DISEL%	ST.MGT
	DISEL%	ST.MNL
^p	DISEL%	FA.MIR
	_DISEL%	FA.MIS

_0
	DISEL%	STR.
	_PDISEL%	STR.O
	DI_pSEL%	UNS.
	DISEL`%	UNS.O

	DISEL`0%	SWT.ON
	DISEL%`P	SWT.OF
	DISEL%	`pCMP.67
	DISEL%	CaMP.69
	DISEL%	CMa0P.79
	DISEL%	COMaPP.6
	DISEL%	COMPap.7
	DISEL%	COMP.b9
	DISEL%	SU.S69b0
	DISEL%	SU.S79
	DISEL%	SU.S97
bp	DISEL%	CVDBT.
	cDISEL%	CVDBL.

c0


	DISEL%	D.OcP.W.
	DISEL%	SSW.cpON
	DISEL%	SSW.OdF
	DIDDR%	ALPL.7d0
	DIDDR%	ALPL.9
	DIDDR%	ALPU.7
dp	DIDDR%	ALPU.9
	eDISEL%	INITL.
	De0ISEL%	FLT.42
; TePHESE POINTERS AREep IN EASTBL.MAC, AfLL USE AC1 INDIREf0CTLY
	DISEL%	IPTfP671
	DISEL%	IPT6fp91
	DISEL%	IPT79g1
	DISEL%	IPT971

SEL%	IPT971K:$IH yP/S
PRINTX %yp ENDDFB: THERE ARzE A BITS STILL Uz0NASSIGNED BY "DEFBYT"
D BY "DEFK:$IQ v0/I
IF1,<
IvPFN .BITST,<
	.BIvpTLFT==^D36-.BITSTw	;COMPUTE # OF FRw0EE BITS
	RADIX 1wP0		;MAKE IT COME wpOUT IN DECIMAL.
x	ENDDF1 (\.BITLFTx0)	;CALL MACRO TO xPPRINT NUMBER
	RAxpDIX 8			;BACK TO yOCTAL
>
>;END IF1

>
>;END IM&t.: u//
IF1,<
	u0.BITST==0	; ResetuP bit position to up0
>; END if1	

>; END if1	
M'Ek0P	M'Em6PP	Q$u|SP&Q$v
	
	DEFI2pNE	SYMH%%	(N%,V)	3<N%==:0>	
	DEFIN30E	SYML%%	(N%,V)	<3PSYM%%	N%,V>	
	DE3pFINE	ELMT%%	(N%,L4<1>,V)	<BLKDFV	N%40,L,<V>>	

	RELO4PC	0
	CHK==.

	4p%LOSEG

	COMCHK5	.-CHK		

	PURG50E	SYML%%,SYMH%%,ELMT%%
SYMH%%,ES:4*b 3@#<
	ELMT%%	3`FILES.
	ELMT%%	U4SES.
	ELMT%%	SEG4 WD.
	ELMT%%	ALTE4@R.
	ELMT%%	OVRFN4`.
	ELMT%%	POINT.5
	ELMT%%	COMMA.
	ELMT%%	MONEY.
5@	ELMT%%	MEMRY.
	5`ELMT%%	%NM.
	ELM6T%%	%DT.
	ELMT%%6 	%PR.
	ELMT%%	CO6@BVR.
	ELMT%%	COB6`SW.
	ELMT%%	PUSH7L.
	ELMT%%	SURRT7 .
	ELMT%%	SUEQT.7@
	ELMT%%	SUFBT.
	ELMT%%	%DB.
S:5 A4
	INC==0	A0	
	DEFINE	ELMT%%AP	(N%,L<1>,V)	<
	ApIFNB	<N%>,<%'N%==B:INC>
	INC==INC+B01
	>
	DEFINE	SYBPML%%	(N%,L<1>,V)	Bp<
	IFNB	<N%>,<%'CN%==:INC>
	>
	IC0NFBK%

	PURGE	ECPLMT%%,SYML%%,INC

,SYML%%,INC*e
	ELMT%%	RUEBLK.,4
	ELMT%%R0	ULBLK.,4
	ELMT%RP%	TTOBP.,1
	ELMTRp%%	TTOBC.,1
	ELMST%%	TTOBF.,^D27
S0	ELMT%%	STDLB.,16SP

	ELMT%%	RRFLGSp.,1
	ELMT%%	REDMTP.,1
	ELMT%%	SHRT0DX.,1
	ELMT%%	TETPMP.,1
	ELMT%%	TETpMP.1,1
	ELMT%%	JUSARR.,1
	ELMT%%	U0TEMP.2,1
	ELMT%%UP	AINFO.,1
	ELMT%Up%	OVRBF.,3
IFN TVOPS20,<
	ELMT%%	V0OVRJFN,1
>
	ELMVPT%%	FLDCT.,1
	ELVpMT%%	OVRIX.,1
	EWLMT%%	NOCR.,1
	EW0LMT%%	PRGFLG,1
	WPELMT%%	TTYOPN,1
Wp
	ELMT%%	ACSAV0,X17
	ELMT%%	MXIE,X01
	ELMT%%	IESAVEXP,1
	ELMT%%	MXBUFXp,1
	ELMT%%	AUXBUYF,1
	ELMT%%	AUXIY0OW,1
	ELMT%%	AUXYPBNO,1
	ELMT%%	CMYpDLST,2
	ELMT%%	NZEWBK1,1
	ELMT%%	Z0NEWBK2,1
	ELMT%%ZP	OLDBK,1
	ELMT%%Zp	MXBF,1
	ELMT%%	[DRTAB,1
	ELMT%%	[0LRWA,1
	ELMT%%	C[PORPT.,1
	ELMT%%	[pHLOTC.,1
	ELMT%%\	OTCPT.,1
	ELMT%\0%	RUN.TM,1

	EL\PMT%%	CB.DDT,1
	E\pLMT%%	SBPSA.,1
	]ELMT%%	%F.PTR,1
]0
	ELMT%%	INTBLK,]P4


	ELMT%%	FS]p.ZRO,1
	ELMT%%	F^S.FS,1
	ELMT%%	F^0S.EN,1
	ELMT%%	F^PS.BN,1
	ELMT%%	F^pS.RN,1
	ELMT%%	F_S.UPD,1
	ELMT%%	_0FS.IGE,1
	ELMT%%_P	FS.IF,1
	ELMT%%_p	FS.IEC,1



`IFE TOPS20,<
	EL`0MT%%	PTH.BK,.PTMA`PX
>


	ELMT%%`p	FOP.BK,1
	ELMT%a%	FOP.IS,1
	ELMTa0%%	FOP.DN,1
	ELMaPT%%	FOP.BH,1
	ELapMT%%	FOP.BN,1
	EbLMT%%	FOP.LB,1
	b0ELMT%%	FOP.PP,1
bP
IFN TOPS20,<
bp
	ELMT%%	CP.BLK,1c
	ELMT%%	CP.BK1,c01
	ELMT%%	CP.BK2cP,1
	ELMT%%	CP.BKcp3,1
	ELMT%%	CP.BdK4,1
	ELMT%%	CP.d0BK5,1
	ELMT%%	CPdP.BK6,1
	ELMT%%	CdpP.BK7,1
	ELMT%%	eCP.BK8,1

	ELMTe0%%	GJ.BLK,.GJATR+eP1
	ELMT%%	GJ.ATRep,4

	ELMT%%	FIDf.BK,15


	ELMTf0%%	DF.DEV,2
	ELMfPT%%	DF.DIR,6
	ELfpMT%%	DF.NAM,2
	EgLMT%%	DF.EXT,1
	g0ELMT%%	DF.PRO,2
gP
	ELMT%%	CMPTER,gp1

>
	
	ELMT%h%	DF.PRG,1


h0
IFN TOPS20,<	ELMhPT%%	TMP.BK,15>
IhpFE TOPS20,<	
 IFiNDEF .TPLEN,<ELMTi0%%	TMP.BK,15>
 IiPFDEF .TPLEN,<
  ipIFL <15-.TPLEN>,<j ELMT%%	TMP.BK,.Tj0PLEN>
  IFGE <15jP-.TPLEN>,< ELMT%%jp	TMP.BK,15>
 >
k>

	ELMT%%	NRSAk0V.,5

	ELMT%%	AkPUTOLB,1
	ELMT%%	kpDELSIZ,1
	ELMT%%l	LNKNO.,1
	ELMT%l0%	RELEN.,1


lP
	ELMT%%	SRC.MD,1lp
	ELMT%%	DLM.MD,m1
	ELMT%%	DST.MDm0,1
	ELMT%%	NX.SSmPA,1	;ADDRESS OF NmpEXT SOURCE SERIESn ITEM
	ELMT%%	CVn0.DLM,1	;INSTRUCTInPON TO CONVERT DELnpIMITER
	ELMT%%	SoSACB.,16	; SAVED o0AC'S WHEN CALLINGoP A TAG
	ELMT%%	TopAG.PT,1	;ADDR OF pROUTINE TO STORE p0POINTER VALUE
	EpPLMT%%	TAG.DL,1	;AppDDR OF ROUTINE TOq GET NUMERIC DELIq0MITER
	ELMT%%	TAqPG.SR,1	;ADDR OF RqpOUTINE TO GET NUMrERIC SOURCE
	ELMr0T%%	SS.CNT,1	;SOUrPRCE-SERIES ITEM CrpOUNTER
	ELMT%%	DsLM.TP,1	;ADDR OF s0%TEMP OR %LIT FORsP DELIMITER
	ELMTsp%%	SRC.TP,1	;ADDRt OF %TEMP OR %LITt0 FOR SOURCE
	ELMtPT%%	NX.SRC,1	;ADDtpR OF NEXT SOURCE uITEM
	ELMT%%	NUMu0.SR,1	;NUMBER OF uPSOURCES IN THIS SupS
	ELMT%%	NUM.RCv,1	;NUMBER OF RECv0EIVING ITEMS FOR vPUNSTRING
	ELMT%%vp	CT.DLM,1	;COUNT wOF DELIMITERS
	Ew0LMT%%	SRD.BP,1	;HwPOLDS BP FOR SOURCwpE - START OF 1ST xMATCH
	ELMT%%	SRx0D.CC,1	;HOLDS CC xPFOR SOURCE - STARxpT OF 1ST MATCH
	yELMT%%	SRA.BP,1	;y0HOLDS BP FOR SOURyPCE AFTER LAST MATypCH
	ELMT%%	SRA.CzC,1	;HOLDS CC FORz0 SOURCE AFTER LASzPT MATCH
	ELMT%%	zpCV.SDS,1	;CONVERS{ION FROM SOURCE T{0O DEST
	ELMT%%	T{PAG.ST,1	;GET %TEM{pP SET UP FOR DEST|.
	ELMT%%	NX.DLM|0,1	;NEXT DELIMITE|PR
	ELMT%%	NUM.DL|p,1	;NUMBER OF DEL}IMITERS
	ELMT%%	}0TAG.CT,1	;TAG TO }PSTORE COUNT ITEM
	ELMT%%	TAG.DA,1~	;TAG TO STORE AW~0AY DEST FROM OU.T~PMP
	ELMT%%	DST.T~pP,1	;%LIT OR %TEMP FOR DEST.
	ELM0T%%	TAG.TL,1	;TAGP TO STORE TALLY IpTEM

	ELMT%%	BS.AGL,1
	ELMT%%	R0MS.RL,1
	ELMT%%	PSM.ARG,3
	ELMT%%p	SM.RLN,1
	ELMT%%	SM.BUF,1
	ELMT0%%	SM.BN,1
	ELMTP%%	SM.BSZ,1
	ELMpT%%	SM.KBF,1
	ELMT%%	SM.KRF,1
	E0LMT%%	SMU.AG,1
	PELMT%%	RMVTBF,1
p



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

	ELMTP%%	TMP.DP,1

	EpLMT%%	OU.ARP,1
	ELMT%%	OU.MDE,1
0
	ELMT%%	TL.ARG,P1
	ELMT%%	TL.VLUp,1

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

	ELMT%%P	AP.TMP,1
	ELMT%p%	DW.TMP,1

	ELMT%%	SE.DLM,1

0	ELMT%%	PF.MDE,1

	ELMT%%	PT.AGLp,1
	ELMT%%	TP.AGL,1

	ELMT%%	SU0.AGL,1

	ELMT%%P	BS.DLM,1
	ELMT%p%	TP.DLM,1

	ELMT%%	SU.RR
	E0LMT%%	SU.DBR
	ELPMT%%	SU.EQ
				
	ELMT%%	SU.DQ
		ELMT%%	SU.MQ
	EL	0MT%%	SU.RRT
	ELM	PT%%	SU.T1
	ELMT%	p%	SU.T2
	ELMT%%	
SU.T3
	ELMT%%	SU
0.T4
	ELMT%%	SU.T
P5
	ELMT%%	SU.T6
p
	ELMT%%	SU.T7
	ELMT%%	SU.T8
	EL0MT%%	SU.T9
	ELMTP%%	SU.FKR
	ELMT%p%	SU.CRH
				
	
ELMT%%	SU.EQT
	E
0LMT%%	SU.DQT
	EL
PMT%%	SU.MQT
	ELM
pT%%	SU.Y
	ELMT%%
				
	ET%%	SU.MRR
	EL%	SU.SBD
	ELMSU.RLV
	ELMT%%	SU.RND
	ELMT%0%	SU.SFQ
	ELMT%%P	SU.SFS
	ELMT%%	pSU.SBS
	ELMT%%	SU.NR
	ELMT%%	SU.0FR
	ELMT%%	SU.AKP
	ELMT%%	SU.FBT
	ELMT%%	SU.CFB
	ELMT%%	SU.VRB
	0			
	ELMT%%	SU.HPV
	ELMT%%	SU.CK
	ELMT%%	SU.SVK
	ELMT%%	SU.CL1
	0ELMT%%	SU.CL2
	EPLMT%%	SU.CLR
	ELpMT%%	SU.CLS
	ELMT%%	SU.SAV,5

	0ELMT%%	FET1,1
	EPLMT%%	FET2,1
	ELpMT%%	FET3,1
	ELMT%%	FET4,1

	EL0MT%%	SU.FRF
	ELMPT%%	RMKCUR
	ELMTp%%	RVLRSZ
	ELMT%%	QCODE
	ELMT%%	0QCDLTL
	ELMT%%	SPU.ACR



	ELMpT%%	USRLO.
	ELMT%%	MRKPTR,2


0	ELMT%%	FUN.A0,1
	ELMT%%	FUN.ST,1p
	ELMT%%	FUN.A1,1
	ELMT%%	FUN.A20,1
	ELMT%%	FUN.AP3,1


IFN MCS,p<
IFE TOPS20,<
	ELMT%%	SNDMSG,100
	ELMT%%	MCSTN,P1
	ELMT%%	M.TMP1p,1
	ELMT%%	M.TMP2,1
	ELMT%%	M.AT0CT,1
	ELMT%%	MCSPPT,1
	ELMT%%	PIDpMCP,1
	ELMT%%	PIDLCM,1
	ELMT%%	I0PCFLG,1
	ELMT%%	PPAKSND,4
	ELMT%%p	MSGSND,10
	ELMT%%	PAKREC,4
	ELM0T%%	MSGREC,10

P



	ELMT%%	PpAGOFF,1
	ELMT%%	PAGBIT,1
	ELMT%%0	PAGLST,1
	ELMT%P%	PAGCNT,1
>>
 pIFE TOPS20,<
	ELMT%%	PAGTBL,20
	0ELMT%%	T1SAV,1
>P
	ELMT%%	DBMLOC,p1


REPEAT 0,<
 IFN MCS,<
  I0FN TOPS20,<
	ELMPT%% TP.RG1,1
	ELpMT%% TP.RG2,1
	ELMT%% TP.RG3,1
	0ELMT%% TP.RG4,1
P	ELMT%% TP.RG5,1
	ELMT%% TP.ID,1
	ELMT%% TP.CRP,10
	ELMT%% TP.IPC,P1
	ELMT%% TP.CPPp,1
	ELMT%% TP.JF N,1
	ELMT%% TP.W 0NS,1
	ELMT%% TP. PTMP,3
	SYML%% TP p.PDS,^D10
	ELMT%!% TP.PDB,TP.PDS
!0	SYML%% TP.PKS,^D!P30
	ELMT%% TP.PK!pT,TP.PKS
	SYML%%" TP.NAM,TP.PKT+2
	ELMT%% TP.TPD,1"P
	ELMT%% TP.LPD,"p1
	ELMT%% TP.HDS#,1
	ELMT%% TP.HD#0P,1
	ELMT%% TP.D#PVP,1
	ELMT%% TP.#pBTP,1
	ELMT%% TP$.PAT,^D10
 >>
>$0;END REPEAT 0

$P	ELMT%% INRST.,1

;THE FOLLOWING% ARE USED FOR $ER%0ROR PROCESSING
	%PELMT%%	ER.PC,1
	%pELMT%%	ER.FLG,1
&	ELMT%%	ER.MCL,1
	ELMT%%	ER.HIJ,1&P
					; SOMETIME&pS SET UP BEFORE T'HE $ERROR
					;'0 CALL.
IFN TOPS2'P0,<
	ELMT%%	ER.J'pSE,1
	ELMT%%	MNT(R5,1
>
IFE TOPS(020,<
	ELMT%%	ER.(PE10,1
>
	ELMT%%(p	ER.RBG,1

	ELM)T%%	CVPRM.,2
	EL)0MT%%	CVARG.,2
	E)PLMT%%	RMSVR.,1
	)pELMT%%	INTRP.,1
*	ELMT%%	SUPTB.,1
	ELMT%%	WANT8.,1*P
IFN TOPS20,<
	*pELMT%%	EXJFN.,1
+					
	SYML%%	MY+0.EVC,CVARG.
	ELM+PT%%	RMS.BK,.GBASE+p+1
	SYML%%	RMS.S,C,.-1
	ELMT%%	OT,0S.SC,1

	ELMT%%,P	ICVTB.,^D128
>
VTB.,^D128
><v 0Y>
@ zp0%

;ERROR{ CHECKS
IF1,<
	{0IFNDEF XB,<PRINT{PX ? B NOT DEFINE{pD WITH "DEFBYT">
>;END PASS 1 ERR|0OR CHECKS

DFBF|P==XB_-^D32		;GET|p FLAG WORDS
IFE }DFBF-DFB.FW,<		;G}0EN FULL WORD INST}PRUCTION
	MOVE	A}p,YB+C
	>
IFE ~DFBF-DFB.RH,<		;G~0EN RIGHT HALF WOR~PD INSTRUCTION
	H~pRRZ	A,YB+C
	>
IFE DFBF-DFB.LH0,<		;GEN LEFT HALPF WORD INSTRUCTIOpN
	HLRZ	A,YB+C
	>
IFE DFBF-D0FB.BT,<
..X==XBP_^D18
..X==..X_-p^D18			;GET RID OF LH, = ENDING BI0T POSITION 
..Y=P=<XB_-^D18>&^O77p		;GET LH, JUST # OF BITS
	..LIT=0=<YB+C>	;FIRST PPART OF LITERAL BpEING BUILT
	..LIT==..LIT+<..Y_^D204> ;# OF BITS IN PBYTE PTR
	..LIT=p=..LIT+<<^D36-..X-1>_^D30> ;FINAL 0BIT POSITION IN BPYTE PTR
	LDB	A,[..LIT]
	>
A,Y?< 93m
	DEFINE	90SYMH%%	(N%,V)	< >9P
	DEFINE	SYML%%	9p(N%,V)	<SYM%%	N%,:V>	
	DEFINE	ELMT:0%%	(N%,L<1>,V)	<B:PLKDFV	N%,L,<V>>
:p	LOC	LO.PUR			
;
	VISBL%

	DEFI;0NE	ELMT%%	(N%,L<1;P>,V) <BLOCK L>
;p
	INFBK%

	DEFI<NE	ELMT%%	(N%,L<1<0>,V) <BLOCK L>
<P
	DEFINE	SYML%%	(<pN%,V)	< >

	PRE=ST%

	COMCHK	.-=0LO.PUR	

	PURGE=P	ELMT%%,SYMH%%,SYML%%,ADR
%%,SY[P _BpZ7Q _Bp[zQ aJ.= 8 %
	SYML%%	8PIFRST.,.
	SYMH%%8p	PFRST.,.

	SYM9L%%	FRSTIC,.
	EL90MT%%	IIN,1,<IN 0,9PCMDLST	>
	ELMT%%9p	IOUT,1,<OUT 0,CM:DLST	>
	ELMT%%	I:0SETI,1,<USETI 0,(:PAC1)	>
	ELMT%%	I:pSETO,1,<USETO 0,(;AC1)	>
	ELMT%%	I;0CLOS,1,<CLOSE 0,0;P	>
	ELMT%%	IRELE;p,1,<RELEAS 0,0	>
	ELMT%%	IGETS,1,<0<GETSTS 0,AC2	>
<P	ELMT%%	ISETS,1,<<pSETSTS 0(AC2)>
	=ELMT%%	IWAIT,1,<C=0ALLI 0,10	>
	ELM=PT%%	IRNAM,1,<RENA=pME 0,UEBLK.	>
	S>YML%%	LASTIC,<.-1>0>

	SYML%%	UFRS>PT.,.
	ELMT%%	MWA>pIT.,1,<MTAPE 0,0	?>
	ELMT%%	MREW.,?01,<MTAPE 0,1	>
	?PELMT%%	MREWU.,1,<?pMTAPE 0,11	>
	EL@MT%%	MBSPR.,1,<MT@0APE 0,7	>
	ELMT%@P%	MBSPF.,1,<MTAPE@p 0,17	>
	ELMT%%	AMADVR.,1,<MTAPE 0A0,6	>
	ELMT%%	MADAPVF.,1,<MTAPE 0,16Ap	>
	ELMT%%	MWEOFB.,1,<MTAPE 0,3	>
	ELMT%%	MTIND.,1BP,<MTAPE 0,101	>
Bp	ELMT%%	MERAS.,1,C<MTAPE 0,13	>
	EC0LMT%%	SOBOT.,1,<SCPTATO 0,4000	>
	ECpLMT%%	SZBOT.,1,<SDTATZ 0,4000	>
	ED0LMT%%	SZEOF.,1,<SDPTATZ 0,20000	>
	DpELMT%%	SZEOT.,1,<ESTATZ 0,2000	>
	E0ELMT%%	UOPEN.,1,<EPOPEN 0,UOBLK.	>
Ep	ELMT%%	UENTR.,1,F<ENTER 0,UEBLK.>
	ELMT%%	ULKUP.,1FP,<LOOKUP 0,ULBLK.Fp>
	ELMT%%	UOBUF.G,1,<OUTBUF 0,(AC6G0)>
	ELMT%%	UIBUFGP.,1,<INBUF 0,(AC6Gp)	>
	ELMT%%	UCLOHS.,1,<CLOSE 0,0	>H0
	ELMT%%	URELE.,HP1,<RELEAS 0,0	>
Hp	ELMT%%	USETI.,1,I<USETI 0,(AC1)	>
	ELMT%%	USETO.,1IP,<USETO 0,(AC1)	>Ip
	ELMT%%	UOUT.,1J,<OUT 0,0		>
	ELJ0MT%%	UIN.,1,<IN 0JP,0		>
	ELMT%%	USJpETS.,1,<SETSTS 0,K(AC2)	>
	ELMT%%	K0UGETS.,1,<GETSTS KP0,AC2	>
	ELMT%%	KpUWAIT.,1,<CALLI	0L,10	>
	ELMT%%	URL0NAM.,1,<RENAME 0,LPUEBLK.>
	SYML%%	LpULAST.,<.-1>
	SYMML%%	ULEN.,<UFRSTM0.-ULAST.>

	ELMMPT%%	UOCAL.,1,<EXPMp C.RSET##+1>
	ELNMT%%	UOBLK.,3,<EXN0P 0		>
	ELMT%%	TNPMP.PT,1,<POINT 7,NpTMP.BK>
IFN TOPSO20,<
	ELMT%%  FIO0D.PT,1,<POINT 7,FOPID.BK>
>
	ELMT%Op%	FUSIA.,2,<EXP 1P1	>
	ELMT%%	FUSOP0A.,2,<EXP 12	>
	PPELMT%%	FUSCP.,1,<PpEXP 10	>
	ELMT%%Q	ARGBK.,6,<EXP 5	Q0	>
	SYML%%	ILAST.,<.-6>

	ASTaW
" (2y

	
IFE(0 TOPS20,<
	DEFIN(PE	DISEL%	(NAM)	<J(pRST	1,NAM##>	
	D)EFINE	DIDDR%	(NAM)0)	<IFIW	NAM##>		
	DEFINE	DSTBL%	()pNAM,IR)	<JRST	1,@*NAM##(IR)>
>
IF*0N TOPS20,<
	DEFI*PNE	DISEL%	(NAM)	<*pJRST	NAM##>	
	DE+FINE	DIDDR%	(NAM)+0	<IFIW	NAM##>	
	+PDEFINE	DSTBL%	(NA+pM,IR)	<JRST	@NAM#,#(IR)>
>
	RELOC,0	HI.ORG			
	DIST,PB%				

	
	DEF,pINE	SYMH%%	(N%,V)-	<SYM%%	N%,V>	
	-0DEFINE	SYML%%	(N%-P,V)	< >		
	DEFIN-pE	ELMT%%	(N%,L<1>.,V)	<BLKDFV	,L,<V.0>>	
	PREST%				

	PURGE	ELMT%%,.pSYMH%%,SYML%%,DIS/EL%,DIDDR%,DSTBL%
DIDDR%,DSTBL%aWKb /P3

	DEFIN/pE	ELMT%%	(N%,L<1>0,V)	<BLKDF	N%,L>	00
	LOC	LO.PUR			
	DEFINE	SYML%%	(0pN%,V)	<SYM%%	N%,V1>	
	DEFINE	SYMH%10%	(N%,V)	< >	

1P	%LOSEG			

	CO1pMCHK	.-LO.PUR	
2
	PURGE	ELMT%%,SYMH%%,SYML%%
SYe-nQ gl.: rP/%

IF1,<	rp			;ONLY HAPPENS sON PASS 1
;ERRORs0 CHECKS
IFNDEF XsPB,<	PRINTX ? SAMspBYT: B NOT PREVItOUSLY DEFINED WITt0H DEFBYT>

XA=tP=XB
YA==YB
>;END IF1
B
>gRX5Q @gRY8Q gRYzQ gR[VQ gR~)  1G

;ERROR0 CHECKS
IF1,<
	PIFNDEF XB,<PRINTpX ? B NOT DEFINED WITH "DEFBYT">
>;END PASS 1 ERRPOR CHECKS

DFBFp==XB_-^D32		;GET FLAG WORDS
IFE 0DFBF-DFB.FW,<		;GPEN FULL WORD INSTpRUCTION
	MOVEM	A,YB+C
	>
IFE0 DFBF-DFB.RH,<		;PGEN RIGHT HALF WOpRD INSTRUCTION
	HRRM	A,YB+C
	0>
IFE DFBF-DFB.LPH,<		;GEN LEFT HApLF WORD INSTRUCTION
	HRLM	A,YB+0C
	>
IFE DFBF-PDFB.BT,<
..X==XpB_^D18
..X==..X_-^D18			;GET RID 0OF LH, = ENDING BPIT POSITION 
..Yp==<XB_-^D18>&^O77		;GET LH, JUST 0# OF BITS
	..LITP==<YB+C>	;FIRSTp PART OF LITERAL BEING BUILT
	..L0IT==..LIT+<..Y_^DP24> ;# OF BITS INp BYTE PTR
	..LIT==..LIT+<<^D36-..0X-1>_^D30> ;FINALP BIT POSITION IN pBYTE PTR
	DPB	A,[..LIT]
	>
AgfhQ  2=A==:Bi?4HP m'+ #

	ELMT% %	MEMRY%,1
	ELMT@%%	SZERA.,1,<Z>
`	ELMT%%	OVFLO.,1,<Z>

	ELMT%%	TR AC1.,1,<JRST	BTRA@C.##>
	ELMT%%	TR`AC2.,1,<JRST	TRPOP.##>
	ELMT%%	TR AC3.,1,<JRST	TRPD@.##>

	ELMT%%	O`PNCH.,1,<XWD	777774,0>
	ELMT%%	RN .DEV,1
	ELMT%%	R@N.PPN,1
	ELMT%%	`RN.NAM,1
	ELMT%%	FSLOC.,1,<Z>
	E LMT%%	HLOVL.,1,<Z@>

	ELMT%%	%REM`OV,1,<EXP	REMOV.##>
	ELMT%%	%ENTO V,1,<EXP	ENTOV.##@>

	ELMT%%	KEYC`V.,1,<Z>
	ELMT%%	SAVEF.,1,<Z>

 

	ELMT%%	HPRT.@,1,<EXP	HSRPT.##>`
						; PRINTING ROUTINE.
	ELMT %%	SEGNO.,1,<Z>
@	ELMT%%	SNRBP.,1,`<EXP	SBPSG.##>


	ELMT%%	TRAC4. ,1,<EXP	CNTRC.##>@
	ELMT%%	CIOTF.,`1,<EXP	SFOV.##>

	ELMT%%	LEVEL., 1,<Z>
	ELMT%%	DB@STP.,1,<EXP	%DBST`P##>

	ELMT%%	SLRSW.,1,<Z>
	ELM T%%	RMFLG.,1,<Z>

	ELMT%%	E0.6,1`,<EDIT	0>
	ELMT%%	E0.6.1,1,<0>
	 ELMT%%	,1,<0>
	E@LMT%%	,1,<"$"-40>`
	ELMT%%	,1,<"," -40>
	ELMT%%	,1,  <"."-40>
	ELMT%% @	,1,<" "-40>
	EL `MT%%	,1,<"0"-40>
	ELMT%%	,1,<"+"-! 40>
	ELMT%%	,1,<!@"-"-40>
	ELMT%%	!`,1,<"C"-40>
	ELM"T%%	,1,<"R"-40>
" 	ELMT%%	,1,<"D"-4"@0>
	ELMT%%	,1,<""`B"-40>
	ELMT%%	,#1,<"/"-40>

	EL# MT%%	E0.7,1,<EDIT#@	0>
	ELMT%%	E0.7#`.1,1,<0>
	ELMT%%$	,1,<0>
	ELMT%%	$ ,1,<"$">
	ELMT%%$@	,1,<",">
	ELMT%$`%	,1,<".">
	ELMT%%%	,1,<" ">
	ELM% T%%	,1,<"0">
	EL%@MT%%	,1,<"+">
	E%`LMT%%	,1,<"-">
	&ELMT%%	,1,<"C">
&@	ELMT%%	,1,<"R">
	ELMT%%	,1,<"D">&`
	ELMT%%	,1,<"B"'>
	ELMT%%	,1,<"/' ">

	ELMT%%	E0.'@9,1,<EDIT	0>
	EL'`MT%%	E0.9.1,1,<0>(
	ELMT%%	,1,<0>
	ELMT%%	,1,<133>(@
	ELMT%%	,1,<153(`>
	ELMT%%	,1,<11)3>
	ELMT%%	,1,<1) 00>
	ELMT%%	,1,<)@360>
	ELMT%%	,1,)`<116>
	ELMT%%	,1*,<140>
	ELMT%%	,* 1,<303>
	ELMT%%	*@,1,<331>
	ELMT%%*`	,1,<304>
	ELMT%+%	,1,<302>
	ELMT+ %%	,1,<141>


+@	ELMT%%	OU.TMP,5	+`	;FOR STRING
	EL,MT%%	DST.BP,1		;D, ESTINATION BYTE P,@OINTER
	ELMT%%	D,`ST.CC,1		;DESTINA-TION CHAR COUNT
- 	ELMT%%	PT.VAL,1	-@	;'POINTER' VALUE-`
	ELMT%%	SRC.BP,.1		;SOURCE BYTE P. TR
	ELMT%%	SRC.C.@C,1		;CC OF SOURC.`E
	ELMT%%	SR.TMP/,5		;TEMP HOLD FO/ R NUMERIC SOURCE
	ELMT%%	DLM.BP,1/`		;BYTE PTR TO DE0LIMITER
	ELMT%%	0 DLM.CC,1		;CC OF 0@DELIMITER
	ELMT%0`%	TMP.DL,5		;TEMP1 HOLD FOR NUMERIC1  DELIMITER
	ELMT1@%%	TL.VAL,1		;TAL1`LY VALUE
	ELMT%%2	CT.VAL,1		;COUNT2  VALUE
IFN DBMS,2@<				; make DBMLO2`K visible at link3 time
	ELMT%% DBMLOK,1
>


u2| 0u

;ERROR0 CHECKS
IF1,<
	PIFNDEF XB,<PRINTpX ? B NOT DEFINED WITH "DEFBYT">
>;END PASS 1 ERRPOR CHECKS

DFBFp==XB_-^D32		;GET FLAG WORDS
IFE 0DFBF-DFB.FW,<		;GPEN FULL WORD INSTpRUCTION
	MOVE	A,C
	>
IFE DFBF0-DFB.RH,<		;GEN RPIGHT HALF WORD INpSTRUCTION
	HRRZ		A,C
	>
IFE DF	0BF-DFB.LH,<		;GEN	P LEFT HALF WORD I	pNSTRUCTION
	HLRZ
	A,C
	>
IFE D
0FBF-DFB.BT,<
..X
P==XB_^D18
..X==
p..X-^D18			;GET RID OF LH, = ENDI0NG BIT POSITION 
..Y==<XB_-^D18>p&^O77		;GET LH, J
UST # OF BITS
	.
0.LIT==<C>		;FIRS
PT PART OF LITERAL
p BEING BUILT
	..==..LIT+<..Y ^
	..LILIT+<<^D36-..X-1>^D30> ;FINA0L BIT POSITION INP BYTE PTR
	LDB	A,[..LIT]
	>
uO%|R 02

;ERRORP CHECKS
IF1,<
	pIFNDEF XB,<PRINTX ? B NOT DEFINE0D WITH "DEFBYT">
>;END PASS 1 ERRpOR CHECKS

DFBF==XB_-^D32		;GET0 FLAG WORDS
IFE PDFBF-DFB.FW,<		;GpEN FULL WORD INSTRUCTION
	MOVEM	0A,C
	>
IFE DFBPF-DFB.RH,<		;GEN pRIGHT HALF WORD INSTRUCTION
	HRRM0	A,C
	>
IFE DPFBF-DFB.LH,<		;GEpN LEFT HALF WORD INSTRUCTION
	HRL0M	A,C
	>
IFE PDFBF-DFB.BT,<
..pX==XB_^D18
..X==..X_-^D18			;GET0 RID OF LH, = ENDPING BIT POSITION p
..Y==<XB_-^D18 >&^O77		;GET LH,  0JUST # OF BITS
	 P..LIT==<C>		;FIR pST PART OF LITERA!L BEING BUILT
	.!0.LIT==..LIT+<..Y_!P^D24> ;# OF BITS !pIN BYTE PTR
	..L"IT==..LIT+<<^D36-"0..X-1>_^D30> ;FIN"PAL BIT POSITION I"pN BYTE PTR
	DPB	#A,[..LIT]
	>
A,[..LIT]
	>

{:P 
$#@P 	
&C@P 
uS@P 
#@P fI9P |,{P |-YP }[0P MI9P 2~93 #P2!
	VISBL%	#p	
	INFBK%		
	PR$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 
COPYRIGHT (C) 1983 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD MASS.