Google
 

Trailing-Edge - PDP-10 Archives - decuslib20-10 - decus/20-185/symbol.unv
There are 4 other files named symbol.unv in the archive. Click here to see a list.
x
,5-@P BP C:|iG G8|;
		SKPOFF	A
		 ANSKP.FC:}c@ Fx|7
		SKPON	A
		 ANSKP.N	CN K|Y[ASCIZ \A\][ASCIZ \ADP EB` Gx|A
		MOVE	HA,[POINT 7,[ASCIZ\B\]] 7,[ASCIZEBh HX|E
		MOVE	A,[POINT 7,B]EBj5@ I|I
		MOVE	A,[POINT 36,B]FP G3:x D8|#
		TXZE	F,A 
		TXZE	FG3:y E8|+
		TXZN	F,A 
		TXZN	FG4%m6P G4%{Q G6&= PX}
		STACK	Px(A,B)
		CMDINI	@.-1
		CMDINIG6&@ QX}.2@
	f..==BR			; Evaluate B
	IFB  <C>,<d..=RH=.A>	; Default RhC
	IFNB <C>,<d.S.==C>	; SpecifieS(d C
	XWD [				;SH Begin LH of tablShe entry
	  IFN <Tf..>,<exp f..!cm%T(fw>	; Expand any THB
	  ASCIZ \A\Th],d..		; Keyword,U RH of entry is U(C
	PURGE	d..,f..UH 		; Dispose of tUhemporary symbols
orarysymbols0[xP HP I
d\Y 	Ij
		ERJMP[	i	TYPNCR <? A - >

			MOVEI	A,.PRI
(OU	; Output to th
He TTY
			HRLOI	B
h,.FHSLF	; The most recent err of s(elf
			SETZ	C,
H			ERSTR%			; Typhe the error messa
ge
			 JFCL
			
( JFCL
			TYPE <>
H 		; Finish the e
hrror message
			R1	(B,C)	;nA
			]heaction
	HRROI	AI,[ASCIZ\ Error ath PC \]
	ESOUT%
	MOVEI	A,.PRIOU
(	MOVEI	B,.-1
	MOHVEI	C,10
	NOUT%
	 JFCL
	TYPNCR( -- )
	%ERR(A,B,C)
ERR(A,KbM2 |[$I3P LP L8t;2 V(}:
	SEARCH	VHCMD
	.REQUIRE SYVhS:CMD.REL
	XLISTW
	CMDSTG			; DefW(ine cmd storage
	LIST	storage
L8v]7 mz
	.Requesm(t SYS:UUOCON	; RemHquest the librarymh file
	Xlist			;n Don't list the sn(torage

IFNDEF	nHSORTER,<SORTER==-nh1>	; -1 means useo the code by defao(ult
IFNDEF	MEMORoHY,<MEMORY==-1>
IohFNDEF	COMMAN,<COMpMAN==0>	; 0 meansp( omit the code bypH default
IFNDEF	phSTRNG.,<STRNG.==0q>	; Omit the Striq(ng package too
qH
IFN MEMORY,<			;qh Memory module onrly
	Memlnk::blocr(k	1	; Link word
rH	Memblk::block	3	rh; Prototype memorsy block
>
	P..js(fn::block	1	; PrisHnt routine jfn stshorage

IFN COMMtAN,<			
    IFNDt(EF cmdbln,<
	CmdtHbln==:<^d80*6>/5+th1>	
    IFNDEF autmbln,<
	Atmbln=u(=:cmdbln>	
    IuHFNDEF cjfnln,<
	uhCjfnln==:20>		
 v   IFNDEF cmdpln,v(<
	Cmdpln==:stksvHiz>	
	Cmdbuf::blvhock cmdbln	
	Cmdwacs::block 20	
	w(Atmbuf::block atmwHbln	
	Sbk::	blocwhk 20	
	Cjfnbk::bxlock cjfnln	
	Rex(para::block	1	
	xHCmblt1::block	1	
	Cmblt2::block	1y	
	Cmdpdl::blocky( cmdpln>	

IFN yHSTRNG.,<			; Striyhng storage
	S1::zblock 2		; Storagz(e for the first pzHointer
	S2::bloczhk 2		; Storage fo{r the second
>		{(		; End of string{H storage


;No{hw define the symb|ols
	Define	DEFU|((NAM,NUM),<OPDEF |H'NAM'['NUM'B8]>
|h
	UUOLST			; inv}oke the symbol de}(finitions


;N}How define the dis}hpatch table
	Def~ine DEFU(NAM,NUM)~(,<%'NAM'##>

UU~HOTAB::UUOLST			; ~hDefine the dispatch table
	List		(	; Restore normal listing mode
M2=yS B8|
		TXZ	F,A 
		TXZ	F,M2={@ Ax|
		TXO	F,A 
		TXO	F,ODG "Q?		; Get th"qe Nth character o#f the string
	JR#0ST	[.IF B,SYMBOL#P,<MOVE A,B  ; I#pf a mem loc, get $the contents
			$0       SOS A>	; $PAnd subtract 1
	$p	 .IF B,NUMERIC,%<MOVEI A,B-1> ;%0 Otherwise, get t%Phe number-1
		 A%pDJBP	A,S1+1 ; Po&int to the wanted&0 character
		 MO&PVEM	A,S1	; Save &pthe new pointer
'		 ILDB	A,S1	; F'0inally, get the c'Pharacter, end the'p macro
		 JRST	.+1]o
		 JRST	.S|iG F8|3
		SKPOFF	A
		 IFSKP.FS}c@ Ex|/
		SKPON	A
		 IFSKP.N	S$,{Q S$,H2Q S$,[sQ S$,k{Q @S$-ZP"S$-Q  S$-RQ S$-yQ S$-\rP!S$-nP  S$.{Q S$.Q S:M2 |]AP ]>.,@ iH
		JRST	[		%ERR	(A,B,C)]	RR	(A,B,C)]	]Vm}: 	2p
	MOVEI	A9,.PRIOU
	.IF	A,XSYMBOL,<MOVE	B,Ax>
	.IF	A,NUMERIC,<MOVEI	B,A>
	8MOVEI	C,B
	NOUTX%
	 SSTERR (Noutx error in NUMOUT macro,EXIT)
	 l12_6N@ |_A==0 `P `DP `HP `LP `PP a
<\Y 	B
		JRST	[)%ERR	(A,B,C)]	RR	(A,B,C)]	aJ<\Y )<
		JRST	[IERROR	(A,B,C)]	OR	(A,B,C)]gDG (1o		; Set th(Qe nth character o(pf the string
	JR)ST	[PUSH	P,A	; S)0ave the character)P
		 .IF B,SYMBO)pL,<MOVE A,B> ; *If a mem loc, get*0 the contents
		*P .IF B,NUMERIC,<*pMOVEI A,B> ; Ot+herwise, get the +0number
		 ADJBP	+PA,S1+1 ; Point t+po the new charact,er
		 MOVEM	A,S,01	; Save the new ,Ppointer
		 POP	P,p,A	; Restore the- A
		 IDPB	A,S-01	; Save the char-Pacter and end the-p macro
		 JRST	.+1]o
		 JRST	.g$*: Y3 
	IFL <17	-A>,<IF1,<PRINTX( ? Illegal argumeHnt in SETBIT macrho>>
	IFL <17-B>,<IF1,<PRINTX ? I(llegal argument iHn SETBIT macro>>
	SKIPL	B
	 MOVNS	B
	MOVX	A,1(B0
	LSH	A,(B)0
	LSH	A,(B)20
	g&:x Cx|
		TXOE	F,A 
		TXOE	Fg&:y Dx|'
		TXON	F,A 
		TXON	Fg/yS C8|
		TXNE	F,A 
		TXNE	Fg/{@ Bx|
		TXNN	F,A 
		TXNN	FgO$\Y I6
		ERJMP	i[ERROR	(A,B,C)]	OR	(A,B,C)gR
:` LX}
	IFB	<ALx>,	<ARRAY	STAK..[MSTKSIZ]
			 MOVEM8	P,[IOWD STKSIZ,SMXTAK..]>
	IFNB	<MxA>,<
		.IFN	<A>N,LABEL,<
			ARRAN8Y	STAK..[A]
			NXMOVE	P,[IOWD A,SNxTAK..]>>
		.IF	<OA>,LABEL,<
			IO8FB	<B>,<
				MOOXVE	P,[IOWD STKSIZOx,A]>
			IFNB	<PB>,<
				MOVE	P,[IOWD B,A]>>,gR^:=P @gSLG 1	; Set a pQointer to a strinpg
	JRST	[PUSH	P,16	; Save an AC
0		 MOVE	16,[POINTP 7,B] ; Point top the string
		 M OVEM	16,@A  ; Sa 0ve the pointer
	P	 AOS	A	; Point  pto the next word
		 MOVEM	16,@A !0  ; And save it a!Pgain
		 POP	P,16!p	; Restore the Ac" and end the macro
		 JRST	.+1]g^NHt .1
	IFNDEF	.QBITPOS,<BITPOS==0.p>
	BITPOS=BITPOS/+1
	IFG	<BITPOS-/0^D36>,<
		PRINTX/P	? Too many switc/phes defined via S0WITCH macro
	>
00	A==1B<BITPOS-1>
=1B<BITPOS-1>hDP hHP hLP hPP igP IX|O
		HRROI	IxA,[ASCIZ\A
\]
		PSOUTA
\]
ighy J8|U
		HRROI	JXA,[ASCIZ\A\]
		PSOUTZ\A\]
		kN( |aA==-1kV}Lz Wh~d

T%%MINX==:14			; Lowest X(uuo

IFN STRNG.XH,<			; [PBG] StriXhng package LUUO'sY
	DEFU	FIND,14 	Y(; [PBG] Find a suYHbstring in the stYhring
	DEFU	COPY,Z15 	; [PBG] Copy Z(from string 1 to ZHstring 2
	DEFU	IZhNSERT,16	; [PBG] [Insert a string i[(nto a string
	DE[HFU	DELETE,17	; [P[hBG] Delete a numb\er of chars from \(string1
	>			; [\HPBG] End of strin\hg package LUUO's
IFE STRNG.,<			;]( [PBG] String pac]Hkage omitted...
]h	DEFU	NOTIN,30	; ^[PBG] The find co^(mmand
	DEFU	NOTI^HN,30	; [PBG] The ^hcopy command
	DE_FU	NOTIN,30	; [PB_(G] The Insert com_Hmand
	DEFU	NOTIN_h,30	; [PBG] The d`elete command
	>`(			; [PBG] End of`H string package L`hUUO's

IFN SORTaER,<
	DEFU	SORT,a(20>	; Sort an arraHay
IFE SORTER,<
	DEFU	NOTIN,20>	b; Sort an array
b(
IFN MEMORY,<			bH
	DEFU	INIMEM,21bh	
	DEFU	GETMEM,2c2	
	DEFU	GIVMEM,c(23>	; Give back mcHemory
IFE MEMORYch,<			
	DEFU	NOTIdN,30	
	DEFU	NOTId(N,30	
	DEFU	NOTIdHN,30>	; Give backdh memory

	DEFU	eCRASH,24	; Crash e((like jshlt code)eH
	DEFU	PRINT,25	eh; Fancy text prinfting routines
	Df(EFU	SETJFN,26	; SfHet output jfn forfh print routines
g	DEFU	GETJFN,27	;g( Obtain a jfn
	DgHEFU	NOTIN,30	; Tyghpe out version inhformation

IFN h(COMMAN,<			
	DEFhHU	CMDINI,31	
	DEhhFU	PROMPT,32	
	DiEFU	RFLDE,33	
	Di(EFU	RFIELD,34	
	iHDEFU	CFIELD,35	
ih	DEFU	NOISE,36	
j	DEFU	CONFRM,37>	j(
IFE COMMAN,<			jH
	DEFU	NOTIN,30	jh
	DEFU	NOTIN,30	k
	DEFU	NOTIN,30	k(
	DEFU	NOTIN,30	kH
	DEFU	NOTIN,30	kh
	DEFU	NOTIN,30	l
	DEFU	NOTIN,30>l(	


T%%MAX==:3lH7			; Highest uuo
; Highest uuom^~) Il40Byte(3)D(9)A(6)B(18)C%bVmajorVminorVeditVcust  i
	TYPE	<	A>
	%ERR1 (B,C)
%ERR1 (B,C$  I
	IFIDN	<iA><EXIT>,<
		HALTF
		JRST	.	>
(	IFIDN	<A><AUTO>H,<
		JRST	.+1	>
	IFIDN	<A><CONT>,<
		HALTF
		J(RST	.+1	>
	IFIDNH	<A><JUMP>,<
		hJRST	B >
	IFIDN	<A><CJMP>,<
		(HALTF
		JRST	B H>
	IFIDN	<A><REhTN>,<
		RET		>
>,<
		RET		>
S@P &{P &H2P &[sP &k{P &ZP 	&P &RP &yP &\rP 
&nP &{P &P S%C@ i"
	.TTN.	(	A,B)
	PGVER.	((Vmajor,Vminor,Vedit,Vcust)
,VedS%c@ I`
	.XCREF
	DEFINE	M%%%%T(Q1,Q2,Q3,Q4,Q5,Q6)(<
	IFDIF	<Q4><@>H,<
		Title	'Q1' h-- 'Q2' (Version 'Q3'Q4'('Q5')-'Q6(')
>
	IFIDN	<Q4H><@>,<
		Title	'hQ1' -- 'Q2' (Version 'Q3'('Q5')-'Q(6')
>>
	M%%%%T(HA,B,\Vmajor,\"<hVminor+100>,\Vedit,\Vcust)
	Searc(h	Macsym,Monsym
H	.Require SYS:MAChREL
	.Directive FLBLST
	PURGE	M%%%%T
	.CREF
%S&c@ i8
	.TTN.	(	A,B)
	R..==[er(ror No reentry adHdress,EXIT]
	IFNhDEF	Vreent,<Vreent==R..>
	PURGE	R(..
	EV::!	JRST	VHstart
		JRST	Vrehent
		EXP	Vword
	Vector==<3,,EV>
ctor==<3,,EV>>}{woP