pdp1 Lisp Implementation
pdp1 Lisp Implementation
PROGRAM LIBRARY
DECUS
NO.
L.
Edmund C. Berkeley
COMPANY
DATE
March 1964
:@&I
Appendix 5
TABLE OF CONTENTS
Part
Introduction
F u n c t i o n s and P r o p e r t i e s Included i n B a s i c PDP-I LISP
Use o f these F u n c t i o n s and Suggested Test Sequences
A u x i l i a r y F u n c t i o n s w h i c h May Be D e f i n e d with LISP
Expressions
Some A d d i t i o n a l F u n c t i o n s f o r B a s i c PDP-I
I n p u t and O u t p u t
LISP
P a r t I1
Part I
---- variable
length of push-down list;
variable quantity of combined storage;
-- optional. machine language sulroutines;
-- theanystructure
of
for programming LISP on
computer is thereby revealed;
-- Tf Linked
cbangea
to be Implemented, U e y can be e a s i v
w i t h the existir_g system,
a system
are
2,
In o r d e ~to obt-
belaw,
Table 1
EUNCTIONS AND EDPERTITS OF EASTC FDP-1 LISP
A,
AT OBYI
CAR
corn
LIST
LmAm
LOGOR
MIlUS
CONS
EVAL
G
E
m
NmmRF
PLUS
cm
GO
B.
mix
m1m
PROG
QUOTE
READ
RETURN
RPUCA
RPUCD
SASSOC
=TQ
T'EIIPRX
EQ
GREATERP
STOP
P R I ~X
C,
mQ
The SUER (XEQ C A I) executes the machine language Instruction C, with A I n t h e accumulator and 1 in the in-out register;
and returns a value in the form of (g 2) where _a is the new
value of the accumulator after executicn,
is t h e new value of
the ID-out register after execution, and _P is T if the instruction skipped, and NTL if the instruction did not sHp.
LOEX
D.
E.
T
EWR
s m
m
F!1 UBR
APVAL
F.
Miscellaneous
It is addsable to use PRDG to avoid recursion wherever possible, even though it may take more space,
3.
together with a f i n a l space at the end of the last r i g h t parenthesis, the computer takes control of the typewriter, impulses a
cmriage return, and then types out:
Response
Input
(cm I Q ~ T E(A
c D)))
NIL
(RPE$CD
We computer:
dm 5 9 7
ldx 5507
lac 5507
em
'
jmp 5m1
3mp 2w
(befng used for atorage)
a d LISP is b l o w 550Q1 then:
w-
El-
02-
qW
2
Lz
$23E/,g
b-J
6E3
:,.I +3
.r?
s
W
--a n
-X
W
4 a
a:
-s
4
E rn
d
Kl
*. l-4-
-qjgrv7z
" m
?.a--'-
n-,
-4
n
-
---
P: -'21
5j.Z
W-H
b-4
-..
'd
I-
;? 2
=,
L,
-4
?7
-,3-
&I
\
M
ex-1
>, .
lj'i 7,
*?-=
1 4
KYWVS
-
-a-u
.=%
2y-'
G
e
--'
i
z
-c
!=#
f4 (L?
0L"J
.rc:
( ~ e f i n e dRecursively w i t h A u x i H a r m c t i o n
( R P ~ D (QUOTE)
(QUOTE (EXPR (WTBDA (Y L ) (corn ((mu L) M
CT dm ICOE
(mL)
(CDR ~)311)3?)
(RPUCD (QUOTE REVERSE) (QUOTE (EXPR A-(
(L) ( ~ m
1 ~1))))
ReVERSE
MI
(WCD
n)) Cw
K)))>>>
smmNCE
( m c ( ~ Q U SEUUEIUCE)
~
(QUOTE (m(WA
(L)
(m (0 v w)
TIMES usRecursion
(P-PLACD ( Q ~ T W ) (QUCITE(m(WA
N 1) MI
(N M)
(corm ((muu
MI^ 1)))13E))l)
Program Feature
(RPUCD ( Q - T ~
(QWTE ( ~ (m
m m ~(X N) (PROG (U v)
(SETQ t' 3) (EEIQ U 01 A (COPJD
V N) (RE"-CTTRPU*
u))) (SETQ lJ
@LIE x u) 1 (smo v (PLUS v 1) (GOA) 3 1 11
T m S us?
((a
>
PDP-1 LISP
,....
G X ATOM CM
CDR COWS
,m*ee
In th3.s rag, b t h accidentally mistypd expressions and symbols no longer needed in t h e LISP system caa be removed f r o m sbr(~ote:
age, and from m y recollection w i t h i n the LISP system.
RMOPE will not operate on t h e first expression Zn the OBZTST,
but o w on the second and later expressions.)
the lint.
The E m (PUTSTIBR 17 X A) performs (DEPGSTT
X A), and then
sets up N (name) as a SUBR starting at A,
A n m p l e (ff LISP storage stops at
5477) is:
..
.-
nnvh~;
"-"
pq
Ln the ~ b name):
t
t h s atoms may I
s generated for
output f o r m a t t k g purpases w i t h names such as *tabn
o r nspacew.
turn;
UnEke t h e 7
' W LISP output, no spaces m e p o d d e d b
fore and after t h e
of concatenation ( s b c e there
are no f l o a t b g - p o i n t numbers to be concerned with).
7.
Do nothing u n t i l
If t h e system "drops
to stert
over.
Following is t h e assignment of t h e sense switches and
program flags:
t,he
Idiot t ~ a c e
r
Punch out
r
"3lP fa
No typeout
Letter in s p b l
Off in error p r i n t o u t
8.
Error Diagnostics
of t h e e r r o r
icd
U8S
5ma
contimes,
and continues.
than 3 ) ; ignores
lts
at3
B ce
ceeds.
9.
Some Remarka
b general, each character in each LISP expression is recognized by the ccmputer as 2 o c t a l d f g i t s called concise code, The
p a i r s of o c t a l d i g f t s a r e p a c k 4 3 p e r s at a t h e into the 6octal-digit registers o f the PDP-1.
If a LISP atcornhas a number
of characters mhich is n c ~ ta multiple of three, there w i l l be
spaces l e f t over, which are filled a r b i t r a r i l y with a f i l l e ~
character, 76 ( o c t a l ) . FQT exmple, a LISP word n l t h 7 chajractera such as Sh'ULER will be packed Into t h e e computer registers, S M A in one, L L E in a second, and R d o n g with Wo
filler characters in t h e third.
These three registers a r e linked by list structure. An example of a hypothetical. l i s t structure which might store SVlUER
if introduced as a defined function Into t h e LISP system w o u l d b
as, shown in Table 4:
Table 4
PDP-1
h g i a ter
Contents
405765
Meaning
pointer to 5765
Comments
5765 is the s t a r t of
the print
name of
pointer to p r o p
erty list
S M A
Concise code
pointer
L L E
o f t h e list
Concise code
pointer
nil
Terminator of l i s t
5773
5774
57'75
5776
5777
6000
6001
Gontents
Meaning
003271
ttEXPRfl
pointer
pointer
005775
005777
002651
003255
006001
UO6003
NIL II
r1
"wmAn
p o i n t e r to forking
pointer to (X 9 )
p o i n t e r ta (CGPJD
6002
006007
6003
6004
00770'I
nF
006005
.pointer
0077U
002651
002725
etc.
Te
"NILM
"CONDH
6005
6006
6007
....
t h e mach-
A care dump r o u t i n e may be loaded into 400 ( o c t a l ) registers above Free storage and used upon LISP,
5.
Part I1
1. Macro S y m b o l i c Program for B a s i c PDP-1 LISP
l i s p 3-23-64
: 1 fleld
def lne
define
l o a d A,B
move ( B , A
termln
extend
termin
count A,B
d e f lne
define
Iload A,B
2sp A
JmP B
law B
dac A
temnin
termin
define
define
init A,B
test K,P
sad (K
JmP P
law B
dap A
termin
temfn
i n d e x A,B,C
define
idx A
sas B
Jmp c
define
add A
dac A
termin
define
undex A
law i 1
termln
Index A, (B, c
step A I B , C
swap
define
rcl 9s
rcL 9 s
termin
termin
setup A,B
define
law 1 B
srni=spl 1
szm=sza sma-szf
spq=szm 1
dac A
termin
xy=O
exit
define
xx=hlt
clo=spa sma szo i-szf-szf
mul=540000
jmp R
termin
dlv=560000
define
move A,B
lac A
dac B
termin
start
~ i s pI n t e r p r e t e r 3-20-64,
part 1
0
0
dap rx
go,
hlt+cla+cli+7-opr-opr
stf 6
extend
dzm 77
law 77
dap avx
sub (1
d a p .+1
lac xy
dap ave+l
ave ,
iLg;%&
ex1 t
law pdo-I
dac p d l
/create number
lac n
dac ar2
caL rin
cal evo
caL p n t
crn,
110 ( J ~ P
rc3. 2 s
r a r Ps
dac 100
3mp C P f
JmP beg
/ p r i n t or punch character
PC,
sad (. 7. 6
J ~ Px
i o r lral
d a c r;cc
sad (pal. 77
CSI,
CSO,
rr1,
gal,
0
ao,
and (77
isi,
repeat 5,20
JmP
isp
jmp
law
cal
law
isi-2
/append word to p d l
PCC-3
pch
pcc-l
277
out
I100
dac pch
Law 252
Pwl,
0
dap pwx
fdx pdk
sad bfw
JmP qg.2
lac pwl
PCC,
/retrieve
/get
uwl ,
dap uwx
110 1 n d l
undex p d l
dac
XX
and (200
201- pcc
dac TO0
stf 2
jmp out
i pdl
vag,
numeric v a l u e
110 i100
cla
r c l 2s
sas ( 3
J ~ P913
idx 100
/get
lac i 100
rcl 8s
r c l 8s
ern,
JmP x
n,fro,
+1
347776
nil
two values
vad ,
define
error P
jsp err
F
termin
d l o a1
cal vag
dac a0
lac a1
eal vag
dac a1
jmp x
/garbage
c o l l e c t o r , non-compacting
PC 9
dap gcx
dio g a l
dio gfr
l a c gfr
sar 2s
s za
r a r 6s
110 1 i s 1
rcl 6s
sad ( 7 6
jmp o c l
Lac
ior
cal
110
idx
Y ~ PgrFi-1
l a c ffi
sza i
JmP gco
lac 100
100
(767600
jda gfr
lac 1 l o b
jda gfr
l a c isi
cf'
to
tO
Idx i s i
dac a l
dio isi
lac i a l
dac i tO
s a s (1st-I
J ~ gP e l
l a w pdl+l
dac g1
dfo 1 a l
JmP x
ocl,
lac f g l
jda gFr
::;
d i o Iis1
J ~ Px
sad p d l
JmP g2e
J ~ gcp
P
/output rout l n e
out,
l i o 100
szs
36
tyo
3mP x
/error p r i n t o u t
err,
clf 6
dap
lac
dac
law
cal
stf
idx
erx,
em,
exit
erx
1 erx
ern
erm
pra
erx
err,
d a p gfx
lac gfr
ral
I s
sPq
JmP gfx
lac p d l
jda pwl
l i o i gfr
idx gfr
l a c i gfr
spa
JmP
lor
dac
SPI
J ~
jda
fu
$add
i. gfr
gfd
P
pwl
dic g f r
jmp gfh
ril
I s
aso,
spi 1
JmP g f a
ase,
jsp uwl
dio gff
sas gfr
Jmp gfn
exit
dko go
dae g f r
i d x go
l a c 1 gO
spa
asr,
lio ar2
aa c,
d l o a1
as2,
idx
lac
dac
jmp
dac i go
.or ?add
sas n
J ~ Pgf'l
Jmp gfi
as2,
c o l l e c t o r , l i n e a r sweep phase
82n,
n
3mp x
lac 1 a t
dac tO
l a c 1 to
sad
sad 100
Jmp as2
J V fn
l o r ?add
153,
J ~ Px
lac a2
cal c n s - I
jmp evo
l a c a1
rir 1s
dac
c a l asc
Jmp ase
a1
1 a1
a1
as1
idx i pdl
l a c tO
Jmp x
l a c fro
/program feature
i d x gD
lio i go
PWS
dac gO
smi
sir
l a c pa3
jda pwL
l a c pa4
I s
dio 1 go
i d x gO
sas hi
JmP gpn
jda pwl
dm pa4
d i o ar2
110 i 100
i d x 100
lac i 100
dac pa3
dio arl
lio g a l
/appen8 program variables
l i o rre
sub (1
lac a r l
dac f r e
J ~ g2a
P
sad n
sad n
Jmp gcp-2
dac gfr
dac
lac ndZ
jda p w l
law gcp-2
dap gfx
Jmn efL
J ~ Ppg6
lac 1 arl
c a l cns-l
l i o ar2
c a l cns
dac ar2
ldx arl
Lac i arl
dac a r l
JmP PF.5
110 100
lac n
cal cns
l a c pa3
dac pa3
JmP Prx
dac a r l
sad n
pg? 3
9mP Pgo
lac 1 arl
cal car
dac art
sma
dl0 t l
lac i arl
c a l asc
JmP qa4
JMP pg9
lac a r l
lio ar2
cal cns
dac ar2
PE9,
gda pwl
lac a r l
cal c d r
cal car
idx a r l
lac i a r l
3mp pg7
lio tl
cal
jda
dio
idx
lac
dac
Jmr,
/process program
PgO,
l a c pa3
Pglj
sad n
J ~ pg2
P
l a c i pa3
cal car
/c DR
spa
JmP
l a c ar2
jda pwL
cdr,
l a c TO0
cal evo
J s p uwl
d i o ar2
c La
sas
pa4
3mp pg4
~ i d x pa3
lac i pa3
dac pa3
pg4 9
P82,
to
tO
uw
2 tO
car,
xY
rx 7
lac 1 100
jda uw
dio rx
l a c uw
ex% t
/ATOM
atm,
l a c i 100
sma
jmp f a 1
tru,
lac tr
SmP x
l a c pa4
jda a w
d l o pa4
jsp uwl
d l o pa3
l a c uw
JmP x
ret,
uw
/CAR
jmp
/terminate program
evl
d a c pa4
jmp x
lio n
d i o a1
sad a1
Jmp t r u
lac i a1
and 1 100
jmp fa1
l i o (-0
dio a0
l i o (and a0
SmP P I 1
lac 100
cal vad
sad a0
lgo,
caL elc
lio ( i o ~
a0
rdc,
J ~ PPI-2
f a x 100
sub (1
tim,
cal elc
110 (1
d l o a0
da,
dio i 100
3mP
mP P I ~
/create atom
&a,
tic,
mu1 a0
scr I s
d l 0 100
add 100
jmp pl0-f-1
~ C S Y
JSP KC
l a c fre
lor ( a d d
dac 100
120 n
cnc ,
cna,
sas n
l a c fre
sad n
JmP g c s
dac to
l a c 100
dac i f r e
i d x fre
l a c i fre
d i o 1 fre
dac f r e
l a c tO
JmP x
jmp cna
JmP
tpr,
law 77
c a l pc
JmP P r x
pr1,
l a c i 100
sma
2:
Pis,
wlz,
pll;
~ 1r 2
cal e l c
110
dzm
dio
sad
JmP
dac
(add a0
a0
plo
n
pie
a1
l a c Ia 1
c a l vag
P~O,
~ l e ,
/LOGAND,
lga,
dac a0
lac a1
cal c d r
J ~ PP l 2
lac a0
jmp crn
LOGOR, TIMES
cal e l c
qgl
:p,:c
spa
JmP p m
and (-Amp
sad n
JmP x
dac a0
lac i a0
r a l 6s
cal P C
Lac i a0
rar 6s
cal
lac
cal
idx
lac
imp
pc
Z a0
pc
a0
i a0
Pya
lac 100
cal vag
Prn,
lac
cal
110
cal
110
dac
jmp
dac t l
clf 2
setup to,6
If0 t l
PTY,
sad
stf
cla
rcl
dio
(-1
xen,
tl
cns-1
ar2
efc
arl
100
efc
d i a a2
150 n
dl0 t l
3s
jmp xer
tl
sza i
law 20
sad ( 2 0
szr 2
ESmr
cal pc
l s p to
3m? p r v
3mp Prx
gs 1,
law g s t
dac tO
idx 1 tO
sad (12
2:law
: 71;
dac f tO
l a c i 100
m P9
Jmp tru
jmp fa1
/do
lor
cal
law
lor
gst
cf
6700
gst+4
cf,
lio n
ral 6s
lor gst+3
C P ~ ,
dzm f f 1
jmp cnc
lio
to
c a l cpf
cal mka
JmP x
min,
cal vag
cma
gsn J
l a w 20
dac 1 to
sax t o
Jmp c r n
sas (@;st+5
jmP gsi
JmP W P
XW,
cal. vad
l a c tr
dac t1
lac a2
c a l vag
lio a0
d i o xei
l a c a1
lio uw
xei,
xer ,
Wt,
l i o a0
cla
SPl
clc
rcl I s
div a1
jn-p xen
d i o a2
cal c r n
dac ar1
lac a2
cal c r n
dac ar2
cal vad
J ~ q14
P
jmp crn
cncl,
dio ar2
dac a r 1
sad n
avc,
3ma
J W sa3
jda p w l
l a c ar2
jda pwP
Jmp 9 c 3
avt,
ar2
jsp
dio
lac
sas
uwl
law 77
and avc
sas 72
sad [7'1
dac c s i
lac Iarl
c a l car
c a l evo
jda uw
dio
xx
sad csi
Jmp ava
jmp x
ar1
uw
~ W Y
,Imp cay
idx a r l
l a c 1 arl
jmp c d l
i n d e x avx,ave,avx
i n i t avx,buf
dap avs
avn,
rpa
r c r 9s
ma
lac
cal
caL
jmp
cay,
StP,
1 arl
cdr
car
rcl 9 s
avs ,
evo
cal vag
hlt+cli-apr
Amp Prx
avi ,
dio xy
s t e p avs,dio 100,avn
jmp ava
11
jmp ava
tYi
c1r 1
szf
d i o avc
jmp a v t
~ W Y
c a l vad
clo
sub a0
/terminate p r i n t name
mh,
SZO
idx is1
sma
d a c tO
110 n
d i o is1
jmp fal
Jmp tru
ava,
cli
am9
l a c 1 tO
d i o 1 to
Jmp x
a character
s z s 50
jmp a v i
l a c 77
sza i
jmp avr
r c l 9s
d i o i avx
ral 2 s
sPq
jmp nva
r a l 7s
ior (rap
avc
l a w 525
dac
sas cso
cal oc
lac a l
/get
law 72
pak,
pkl,
dap p k l
l a c csi
sad cso
Amp pk1
dac cso
c a l oc
Law
dac 100
YmP
start
oc
L i s p interpreter 3-20-64,
pnt,
pnl,
dac a0
dac a1
cal tpr
part 2
rid,
spf
jmp rip
riq,
i d x arl
lac 1 arl
d i o i arl
dac rlg
j s p rhe
jmp rlx
ri33
dac r7.9
jrnp 133-2
ri2,
l a c ( jmp r i 3
l i o 1 a0
S P ~
JmP Pn2
l a w 57
pn5,
c a l PC
lac a0
c a l cdr
jda pwl
lio i a0
d i a a0
pn2,
pn6,
m P pnl
l a c a0
jsp uwl
cla
d i o a0
SP 1
jda pwl
law r l c
clf 5
dzm t l
law isi-1
dac i s i
dzm i s i - l
S ~ PPn7
110 i a0
spi. i
law 7 2
dac cso
Pn5
l a c a0
sad n
Jmp
law
cal
lac
cal
pn3,
pn7,
rhn,
IJn3
73
cal ava
dac 100
110 c s i
rir 3s
pc
SP 1
jmp r h b
s a d (33
a0
prl
cla
sas
law55
cal PC
Jmp pn6
cal PC
lac a1
JmP a0
dap rhx
57
[55
JmP rye
sad (73
sad
rhb,
Jmy: rye
sad ( 5 6
JmP r Y o
sad (77
jrnp rhn
8 ,
rig,
in,
ris,
sad (36
l a c rx
cla
sza i
dzm r i g
sad
dac arl
JsP rhe
sza 1
jmp rlc
sad ( 57
jrnp r i a
s a d ( 55
J m p rib
jmp rye
(75
jmp rhe+l
law i 7
a n d 190
sza i
J ~ Pryn
lac 100
sad ( 2 0
JmP rYn
rm,
stf 5
cal pak
ryn,
jmp r h n
ryj,
ryo,
dac t l
l a c 100
lac t l
cal crn
jrnp rhr
cal ava
jmp
W-P+~
r
dac r i 8
cal m h
110
n
rhx,
JmFJ YYJ
lac i l o b
rys,
dac to
sad n
/,
ric,
dac t l
ryw,
dac a1
sas n
d i o tO
cal cdr
110 t o
rle,
swap
cal cns
i d x arT
l a c tO
sad t l
jmp r h h
ryt,
lac a r l
rio,
JmP r y t
ryd,
exit
SPi
jmp ris
spa
Jmp r i 4
3 m ~r Y c
lac i t1
rig
to
space tab
lac i tO
dac ti
l a c a0
dae tO
lac r i g
l i o ri8
dlo
dac a0
sad
clc
lit0 (131-1
d l a 1st
rhr,
rye,
l i o 100
Lac t l
r i r 3s
r c l 39
dac Ia r l
dac arl
Jmp r i s
i d x tO
lac i t O
3mP rJ's
rib,
lac t l
sad n
JmP r y d
l a c i a1
l a c tO
jmp ar3.
ria,
d i o tO
lac a r l
sas 1 t l
j d a pwZ
lac i t l
dac t l
i d x a1
lac k a1
3-43 ryw
ryc,
rhh,
lac a0
c a l mka
l i o 1 lob
cal cns
dac i lob
lac 2 tO
jmp r b r
l a c tO
spa
riy,
riz,
jmp riz
cal cns-I
dac arl
l i b arl
cal rdc
j m p ris
dzm a r l
Jmp ris
rib,
pix,
idx a r l
lac 1 arl
lio n
dio i arl
evc,
lac uw
dzm a r l
cal. cns
jmp evo
jda uw
dlo a r l
ril
lac
SP 1
jmp
lio
lac
I s
uw
arl
uw
art
then p-list
el,
cal asr
Jmp ev5
cal c d r
l a c uw
JmP riY
d i o ar2
evo,
dac ar1
l a c art
cal cdr
sad n
5mp sa8
dac tO
lac i tO
sad l a p
/evaluate c u r r e n t expressfon
ev2,
l a c arl
s z s 10
cal pnt
lac i arl
jmp ev6
i d x tO
l a c i tO
jmp ev4
spa
Jmp e l
dac tO
lac i tO
spa
JmP e p
/car[x] n o t atomic
sad 1la
Jmp
lac
jda
lac
jda
lac
e3
ar2
pwl
arl
pwl
ia r l
cal evo
jsp uwl
dio a r l
Asp uwl
d i o ar2.
jrnp evc
lac
cal
jmp
cal
F arl
asr
qae
cdr
ral I s
spa
jrnp en1
l a c arl
s za
jrnp r i o
evl,
idx a r l
110 1 art
l d x tO
l a c 2 tO
cal c a r
JmP ex
enl,
l a c arl
/ex ft from EVAL
ex,
s z s 10
JmP p n t
J ~ xP
/car[x] is atomic : s e a r c h
i t s p-list
e2,
l a c tO
ev8,
cal cdr
sad n
Jmp ev3
lac i uw
sad l f s
jmp e f s
sad I s b
gmp e s b
sad Ixp
Jmp exp
sad Zfx
jmp efx
esb,
Jmp ev8
efs,
idxuw
lac i u w
cal car
c a l vag
idx uw
1 uw
lac
cal
jda
lac
cal
110
cal
idx t l
lac 1 t l
car
pwl
arl
cdr
arP
elc
jmp e l s
dac exx
idx arl
lac i a r l
l i o ar2
elc,
sad
Jmp x
dac a r l
dTo ar2
exy,
exx,
lac ar2
dac 100
d m arl
0
J ~ ex
P
jda p w l
lac a r l
dzm arl
ele,
efx,
idx uw
lac i uw
cal c a r
J d a pwl
lac a r l
cal cdr
cal efq
jda pwl
l a c ar2
c a l efq
cal cns-l
efq,
efc,
jsp u w l
cal e r c
jsp uw3.
cal efc
dac arl
jmp ev2
c a l cns-1
l i o to
l a c lqu
dac 100
jmp cns
dio100
110 t o
3mp cns
/function 1s EXPR
exp,
i d x uw
lac 1 uw
dac a1
idx
lio
dzm
lac
arl
i arl
arl
1 a1
c a l cns
jmp evo
110 1 pdl
dac tO
jda pwl
lac a r l
jda pwl
lac i tO
cal e v l
cal cns-1
Asp u w l
dio a r l
110
to
l a c art
sza i
d i a arl
idx ar1
sub (1
sas tO
120 1 arl
l a c tO
dac i a r l
dac arl
Zdx to
dl0 i to
jsp uwl
swap
cal cdr
=as n
jmp ele
jsp u w l
d i o ar2
idx arl
lac i a r l
lio n
dZo 5 arl
dac a r l
s z s 10
cal pnt
l a c arl
J ~ xP
els,
dac a r l
cal cdr
l i o ar2
cal e l c
dac arl
jsp uwl
jsp u w l
swap
c a l vag
dac exx
init esa,aO-l
dia a0
jsp u w l
dio ar2
lac arl
sad n
epl,
jmp exs
i d x esa
s a d (dac a731
JmP ep2
lac a r l
sad n
jmp qf3
lac i a0
110 i arl
cal cns
Lio a r 2
c a l cns
Jm qa7
lac i a r l
esa,
1acaO
sad n
dac xy
idx arl
lac i arl
dac arl
dac ar2
idx a0
jrnp eda
lac i a0
exs,
lac a0
dac a0
I d x arl
lac i a r l
dac a r l
JmP e p l
110 a1
J ~ PexY
/caar[x] = LAMBDA
e3,
lac a r l
j d a pul
lec ar2
jda pwl
lac 1 arl
cal c d r
caL c a r
ep2,
sas
arl
J ~ Pq f 2
jsp uwl
dio a r l
lac i a r l
cal cdr
jda pwl
cal cdr
c a l car
lac a r l
jmp evo
lac n
s a s pa3
J ~ xP
e r r o r f l e x icd
lac n
JmP x
qa4,
e r r o r flex uss
J ~ PPY X
qa7,
error f l e x t m a
/ t o o many aPgs
Jmp exs
qa8,
error f l e x uas
clr 6
lac arl
cal p n t
cal t p r
j m p go
qc3,
error flex I l p
law 377
and avc
hlt+cli-opr+l
Jmp ava
/illegal parity
qf2,
e r r o r flex I t s
J ~ P&Q
qf3>
error f l e x ats
/arglist t o o s h o r t
J ~ go
P
qg2,
JmP go
qgl,
error f l e x s c e
JmP go
qi3,
l a c 100
/storage cap. e x c .
dac a2
error f l e x nna
clf 6
lac
cal
cal
jmP
a2
pnt
tpr
qix
qi4,
error f l e x ovf
qix,
c l a 16
jmp crn
qpl,
error f l e x ana
prx, fa1 ,
J ~ xP
start
lac n
rcr I s
ril I s
d i o hi
law end
dac t o
canstants
/special symbols
/relocate storage
lqu,
Ila,
quo
lam
aPv
lap,
lob,
obl
Isb,
sbr
lfs,
lxp,
xpr
Ifx,
rrs,
dac
fxp
bfw,
tr,
pdl,
pdo-1
arl,
nil
nil
nil
ar2,
pa3,
pa4,
to
l a w I4
add i tO
sma
j s p rrl
jsp rnvs
law i 1
add tO
dac tO
sub frl
spa
jsp rrl
fsb
nil
frs-4
fre,
law I l
add to
jsp mvs
lac tO
sas o f s
jmp rrs
l a w ssy
dac tO
/load
storage parameters
lio mz
cl c+hl t-opr
/~eLocate s p e c i a l registers
rss,
lat+cli-opr
and a d
dac hi1
l a c i lob
hlt
Ada g f r
lat
and ad
dac I p l
law i end
add hi1
spa
3mp Pdo
law i frs-pdo
add Ipl
SP a
jmp PdQ
l a w 1 pdo+end-frs
add h i 2
sub l p l
spa
J ~ pdo
P
law .go
dap g c x
J ~ g2e
P
rrl,
stu,
up registers
law
add
dac
110
pdo
Ipl
fro
hi1
dap
lac
and
sub
spa
jmp
lac
rrx
i to
ad
ofr
rrx
i tO
add f r o
rrx,
rnvs,
/set
jsprrl
idx t o
sas e s y
jmp rss
sub o f s
dac i tO
jmp
daprnvx
lac tO
add fro
sub o r s
dac t l
l a c f to
dac 1 tZ
fsubr f6
subr f7
subr f8
subr f12
subr f l 3
ad,
177777
1~1, 0
hil,
9
ofs,
frL,
esy,
ofr,
fsubr TI4
subr f18
subr f21
subr Y24
subr f26
subr f27
subr f32
-0
frs
fws
pdo
pdo
define
* +2
add X
subr f33
subr f 3 4
f s u b r f50
s u b r f51
subr f 5 2
fsubr f 5 3
subr f54
fsubr f60
fsubr f61
f s u b r f62
fsubr f63
s u b r f0O
subr M1
item X
+3
nil
termin
def i n c
next A
.+I
termin
define
subr F
.+2
add F+2
sbr
+7
.+1
.+I
subr fa3
nil
termin
define
.
add Fi-T
+2
fsubr rb5
item f40
item f42
item f43
item r44
Item f45
item f46
fsubr F
+7
.+i
fsb
.+I
nil
termin
def lne
aPv
A
next t
next obj
subr fb2
subr f b 3
subr fb4
apval A
+1
ni 1
temnln
nil
nil,
add 1-38
kz
t,
add f37
kt
kz,
apval nil
kt,
apval t
define
opr A
ternin
d e f lne
obj,
add fb0
.+I
obl,
ols
ni L
.+1
X
temi n
define
X
naml Y
termin
\object list
define
ols,
subr f 2
subr f 3
subr f4
X
nam2 Y ,Z
term1n
nil
Xoca A
0
naml X
ni 1
loca atm
f3,
loca car
r4,
loca cdr
naml f l e x c d r
f6,
locacnd
n&
f7
loca cns
f8,
loca eqq
naml 766550
f12,
loca gsm
r13,
loca g r p
f14,
loca elc
nam2 f l e x 1is,767623
fl8,
loca min
n m 2 flex 111111,762422
f21,
loca nmp
f24,
locastp
f'26,
l o c a prl
f27,
loca qot
f32,
l o c a rda
r33,
loca rdc
f00,
loca xeq
f01,
loca ern
f34,
loca t p r
nam2 f l e x ter,flex p r i
f50,
loca pm
ram2 flex
pro,767667
f52,
loca goe
naml 766746
T53,
loca stq
f54,
loca asa
fb2,
Loca r i n
slam2 f l e x rea,767664
fb3,
loca e v l
fb4,
loca p n t
fb5,
loca car
fa3,
loca nu1
nam2
rlex nu1,767643
1'68,
loca pls
n&
f l e x pLu,767622
f61,
l o c a tlm
nam2 f l e x tim,766522
f62,
localgz
nam2flexlog,flexand
f63,
loca Lgo
nam2 f l e x 1og,764651
/miscellany
f38,
naml f l e x n i l
f40,
nam2 f l e x l a m , f l e x M a
f42,
f43,
nam2 f l e x sub,767651
f44,
nam2 r l e x exp,767651
f45,
f46,
n m 2 fLex fex,764751
fbO,
f37,
naml 767623
end,
start pdo
2 . A l p h a b e t i c L i s t i n g o f D e f i n e d Macro Symbols
Following i s an a l p h a b e t i c l i s t i n g o f the d e f i n e d symbols
used i n t h e macro symbolic program f o r B a s i c PDP-1 LISP. The
l i s t i n g shows e i t h e r t h e numeric meaning of the instruction o r
t h e numeric register ( o c t a l ) i n w h i c h t h e subroutine commences.
For t h e mnemonic derivation o r significance o f t h e symbols,
see S e c t i o n 4 below.
el0
cna
cnc
cnd
cns
cpf
crn
csi
CSO
a2
ad
aPv
ari
ar2
a0
as1
as2
asc
ase
aso
asr
atm
ava
avc
ave
avi
am
avr
avs
avt
avx
beg
bfw
buf
car
cdl
cdr
C ~ Y
cf
dba
dc c
dia
div
dra
e l
e2
e3
eda
efc
ef'q
efs
efx
elc
ele
els
enl
end
epl
ep2
eqq
em
ern
err
erx
esa
esb
esY
ev2
ev3
evc
evl
evo
ex
exP
ffi
exx
fOO
exs
rre
rrl
fro
Irs
rO1
rsb
Pws
gfl
gf n
gfr
gfu
gfx
go
gee
gyp
go
gsi
gsm
gsn
gsP
$st
hi
hi1
ioh
isi
kt;
kz
l a1
Inm
1ga
lgo
lia
1~3-
min
mka
mkn
mu1
rnvs
mvx
mz
n
1191
mP
nu1
ob j
obl
OC
oc3,
ofr
ors
01s
out
p-33
pa4
pak
qix
PC
qpl
quo
PCC
pch
pdl
pgl
pg2
qot
rda
rdc
pet
rhb
rhe
rhh
rhn
rrhr
rhx
ri 2
ri3
ri4
ri8
rig
ria
~ i b
ric
rid
rie
rin
rio
riq
ris
sPq
s SY
stp
stq
rix
stu
riy
swp
szln
riz
rrl
TPS
t
ti
rrx
tic
FSS
tim
XX
'
tpr
rye
ryd
rye
ryJ
tr
trw
to
uw
n n
uwl
WQ
Ul6X
WP
rys
v3d
va g
ryt
ryhr
xei
xen
xeq
ryy
sbr
sr?t
sm5
sni
xer
xpr
xy
3 . Numeric L i s t i n g of t h e D e f i n e d Macro S y m b o l s
XY
go
beg
tO
ti
&O
d-
hi
csi
CSO
Yfi
gal
isi
ai
a2
P W ~
Pwx
UW
uwL
UWX
buF
ave
csn
PC
PCC
pch
vag
OC
P E ~
ret
oci
gee
out
stq
cdr
c2r
vad
err
erx
errn
ern
?PO
n
gc
e;c0
WP
rx
~trn
tm
nu I.
eqq
rdc
rda
mka
cns
cnc
cna
rig
rin
ris
t im
tic
gc s
tpr
P P ~
rid
r w
ri3
ri2
ylhe
rhn
rhb
ryp
ryJ
WQ
rye
cpf
min
xeq
xei
xer
xen
gsm
gsi
&SP
gsn
qot
end
cdl
cdy
stp
gyp
ava
avx
avc
avt
avr
avn
avs
W S
w
ryd
rgrt
wc
rhh
ryn
ryy
rhl?
rhx
ric
rio
ric
ri4
ria
riy
riz
rib
rix
evl
evo
ev2
ev3
avi
evc
mla?
pak
e l
ev5
ev4
ev6
en3.
ex
e2
ev8
efs
exY
exx
stu
FX'S
efx
SSS
efq
efc
rrl
exp
esb
e3c
ele
els
edn
esa
exs
e3
epl
ep2
"2m
r'rx
rnvs
mvx
ad
1 ~ 1
hL1
MZ
ofs
r ~ l
esy
ofr
~ F S
ni 1
t
kz
kt
ow
obl
01s
quo
lam
a Pv
sb-s
qix
wl
fa1
rnr
rsb
f XP
f2
fws
SSY
lla
lap
lob
lsb
ifs
IXP
lfx
f63
'2"
f O
f42
f4
f45
f46
fbO
f37
end