Trailing-Edge
-
PDP-10 Archives
-
decuslib20-06
-
decus/20-156/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