1
0
mirror of https://github.com/DoctorWkt/pdp7-unix.git synced 2026-01-24 11:22:59 +00:00

Added pool game.

Checked once, have not tried to assemble or run.
This commit is contained in:
aap 2019-10-19 12:11:38 +02:00 committed by Phil Budne
parent 5c3eb06254
commit c5d492f97b
6 changed files with 1031 additions and 0 deletions

37
scans/p0.s Executable file
View File

@ -0,0 +1,37 @@
"** 10-36-55.pdf page 1
osc = 0640001
omq = 0640002
otq = 0642000
cmq = 0640004
lmq = 0652000
ecla = 0641000
i = 020000
save = 1
getuid = 2
open = 3
read = 4
write = 5
creat = 6
seek = 7
tell = 8
close = 9
link = 10
unlink = 11
setuid = 12
rename = 13
exit = 14
time = 15
intrp = 16
chdir = 17
chmode = 18
chowner = 19
sysloc = 21
capt = 23
rele = 24
status = 25
sleep = 26
smes = 27
rmes = 28
fork = 29

261
scans/p1.s Executable file
View File

@ -0,0 +1,261 @@
"** 10-36-55.pdf page 2
" p1
t = 0
las
dac .sw
law 13
sys sysloc
dac .pb
jms ballinit
lac nballp
cll; mul; bvsize
lacq
tad listpm1
dac 15
tad d1
sys capt
law outline-1
dac 8
-noutline
dac 9f+t
1:
lac 8 i
dac 15 i
isz 9f+t
jmp 1b
lac 15
dac displist
lac o400000
dac 15 i
jms dump
loop:
" dump/restore
lac waitup
sza
jmp 2f
lac .pb i
als 5; ral
snl
jmp 1f
jms dump
jmp 3f
1:
sma
jmp 3f
jms restore
jmp 3f
2:
lac .pb i
als 5; ral
szl
jmp 3f
spa
jmp 3f
dzm waitup
3:
sys time
lacq
sad stime
jmp loop
"** 10-36-55.pdf page 3
tad dmi
sad stime
jmp loop
tad d1
dac stime
lac .pb i
als 7
spa
sys exit
lac displist
dac 15
-nball
dac 9f+t
" q and stich controls
jms getball; ball1; 9f+t
lac ball1+vx
lmq
lac ball1+vy
omq
sza
jmp 1f
jms stickcont
jms putball; ball1; 9f+t
1:
jms getball; ball1; 9f+t
" if in pocket, ignore
lac ball1+sflg
spa
jmp 4f
lac 9
dac 14
" update
lac ball1+vx
lrss 6
tad ball1+x
and o177777
dac ball1+x
lac ball1+vy
lrss 6
tad ball1+y
and o177777
dac ball1+y
" display
lac ball1+x
lrss 6
xor o142000 " setx
dac 15 i
lac ball1+y
lrss 6
xor o164000 " sety
"** 10-36-55.pdf page 4
dac 15 i
law circle-1
dac 8
-circsize
dac 9f+t+1
2:
lac 8 i
dac 15 i
isz 9f+t+1
jmp 2b
" degrade velocity
jms frict
" edge collision
lac lefttest
tad ball1+x
sma
jmp 2f
jms pocketlr
jmp 4f
lac ball1+vx
sma
jmp 2f
cma
tad d1
dac ball1+vx
2:
lac bottest
tad ball1+y
sma
jmp 2f
jms pockettb
jmp 4f
lac ball1+vy
sma
jmp 2f
cma
tad d1
dac ball1+vy
2:
lac righttest
tad ball1+x
spa
jmp 2f
jms pocketlr
jmp 4f
lac ball1+vx
spa
jmp 2f
cma
tad d1
dac ball1+vx
2:
lac toptest
tad ball1+vy
spa
jmp 2f
jms pockettb
"** 10-36-55.pdf page 5
jmp 4f
lac ball1+vy
spa
jmp 2f
cma
tad d1
dac ball1+vy
2:
" ball/ball collision
lac 9f+t
tad d1
sma
jmp 4f
dac 9f+t+1
2:
lac 14 i
dac ball2+0
lac 14 i
dac ball2+1
lac 14 i
dac ball2+2
lac 14 i
dac ball2+3
lac 14 i
dac ball2+4
lac ball2+sflg
spa
jmp 3f
lac ball1+x
cma
tad ball2+x
cma
lmq
gsm
dac .+3
lacq
muls; ..
dac 9f+t+3
lrss 4
sza
jmp 3f
lac ball1+y
cma
tad ball2+y
cma
lmq
gsm
dac .+3
lacq
muls; ..
tad 9f+t+3
lrss 4
sza
jmp 3f
jms ballball
jms putball; ball2; 9f+t+1
3:
isz 9f+t+1
"** 10-36-55.pdf page 6
jmp 2b
4:
jms putball; ball1; 9f+t
isz 9f+t
jmp 1b
lac o400000
dac 15 i
jmp loop
t = t+3

226
scans/p2.s Executable file
View File

@ -0,0 +1,226 @@
"** 10-36-55.pdf page 7
" p2
frict: 0
las
and d1
sza
jmp frict i
lac ball1+vx
cll; muls; frfac
dac ball1+vx
lac ball1+vy
cll; muls; frfac
dac ball1+vy
gsm
dac 9f+t
lac ball1+vx
gsm
tad 9f+t
tad minvx
sma
jmp frict i
dzm ball1+vx
dzm ball1+vy
jmp frict i
t = t+1
ballball: 0
llss 15 " x**2+y**2 in q
cma
tad o300000
dac 1f; dac 2f
lac ball2+y
cma
tad ball1+y
cma
cll; muls; 1:..; llss 6
dac sin
lac ball2+x
cma
tad ball1+x
cma
cll; muls; 2:..; llss 6
dac cos
" calculate closing velocities
lac ball1+vx
gsm
dac .+3
lac cos
muls; ..; llss 3
dac 9f+t
lac ball1+vy
gsm
dac .+3
lac sin
muls; ..; llss 3
tad 9f+t
dac vp1
lac ball2+vx
gsm
"** 10-36-55.pdf page 8
dac .+3
lac cos
muls; ..; llss 3
dac 9f+t
lac ball2+vy
gsm
dac .+3
lac sin
muls; ..; llss 3
tad 9f+t
dac vp2
cma
tad vp1
cma
sma
jmp ballball i
" calculate tangential velocities
lac ball1+vx
gsm
dac .+3
lac sin
muls; ..; llss 3
dac 9f+t
lac ball1+vy
gsm
dac .+3
lac cos
muls; ..; llss 3
cma
tad 9f+t
cma
dac vt1
lac ball2+vx
gsm
dac .+3
lac sin
muls; ..; llss 3
dac 9f+t
lac ball2+vy
gsm
dac .+3
lac cos
muls; ..; llss 3
cma
tad 9f+t
cma
dac vt2
" recalculate x,y velocities
" with interchanged closing components
lac vp2
gsm
dac .+3
lac cos
muls; ..; llss 3
cma
dac 9f+t
"** 10-36-55.pdf page 9
lac vt1
gsm
dac .+3
lac sin
muls; ..; llss 3
tad 9f+t
cma
dac ball1+vx
lac vp2
gsm
dac .+3
lac sin
muls; ..; llss 3
dac 9f+t
lac vt1
gsm
dac .+3
lac cos
muls; ..; llss 3
tad 9f+t
dac ball1+vy
lac vp1
gsm
dac .+3
lac cos
muls; ..; llss 3
cma
dac 9f+t
lac vt2
gsm
dac .+3
lac sin
muls; ..; llss 3
tad 9f+t
cma
dac ball2+vx
lac vp1
gsm
dac .+3
lac sin
muls; ..; llss 3
dac 9f+t
lac vt2
gsm
dac .+3
lac cos
muls; ..; llss 3
tad 9f+t
dac ball2+vy
jmp ballball i
t = t+1
dump: 0
lac o17
sys creat; dmpname
spa
sys save
"** 10-36-55.pdf page 10
dac waitup
sys write; qsin; 1
lac waitup
sys write; qcos; 1
lac nballp
cll; mul; bvsize
lacq
dac 0f
lac waitup
sys write; list; 0:..
lac waitup
sys close
jmp dump i
restore: 0
sys open; dmpname; 0
spa
sys save
dac waitup
sys read; qsin; 1
lac waitup
sys read; qcos; 1
lac nballp
cll; mul; bvsize
lacq
dac 0f
lac waitup
sys read; list; 0:..
sad 0b
skp
sys save
lac waitup
sys read; dump; 1
sza
sys save
lac waitup
sys close
jmp restore i

149
scans/p3.s Executable file
View File

@ -0,0 +1,149 @@
"** 10-36-55.pdf page 11
" p3
rad = 02000
diam = rad+rad
diam3 = diam-0200
middle: 0100000
high: 0177700-010000
low: 010000
ballinit: 0
-nball
dac 9f+t
" Q ball
lac middle
dac ball1+x
lac low
dac ball1+y
dzm ball1+vx
dzm ball1+vy
dzm ball1+sflg
jms put
" top row
lac d1
dac ball1+slfg
lac high
dac bal1+y
-diam-diam-diam
tad ball1+x
dac ball1+x
jms put
jms put
jms put
jms put
jms put
" second row
-diam3
tad ball1+y
dac ball1+y
-diam-diam-diam
tad ball1+x
dac ball1+x
-diam-rad
tad ball1+x
dac ball1+x
jms put
jms put
jms put
jms put
" third row
-diam3
tad ball1+y
dac ball1+y
-diam-diam-diam-rad
tad ball1+x
dac ball1+x
"** 10-36-55.pdf page 12
jms put
jms put
jms put
" fourth row
-diam3
tad ball1+y
dac ball1+y
-diam-diam-rad
tad ball1+x
dac ball1+x
jms put
jms put
" last row
-diam3
tad ball1+y
dac ball1+y
-diam-rad
tad ball1+x
dac ball1+x
jms put
jmp ballinit i
put: 0
jms putball; ball1; 9f+t
-diam-1
cma
tad ball1+x
dac ball1+x
isz 9f+t
jmp put i
jmp put i
t = t+1
getball: 0
-1
tad getball i
dac 8
isz getball
lac getball i
dac 9f+t
lac nballp
tad 9f+t i
cll; mul; bvsize
lacq
tad listpm1
dac 9
-bvsize
dac 9f+t
1:
lac 9 i
dac 8 i
isz 9f+t
jmp 1b
isz getball
jmp getball i
"** 10-36-55.pdf page 13
putball: 0
-1
tad putball i
dac 8
isz putball
lac putball i
dac 9f+t
lac nballp
tad 9f+t i
cll; mul; bvsize
lacq
tad listpm1
dac 9
-bvsize
dac 9f+t
1:
lac 8 i
dac 9 i
isz 9f+t
jmp 1b
isz putball
jmp putball i
t = t+1

202
scans/p4.s Executable file
View File

@ -0,0 +1,202 @@
"** 10-36-55.pdf page 14
" p4
stickcont: 0
" display stick
lac ball1+x
lrss 6
xor o142000 " setx
dac 15 i
lac ball1+y
lrss 6
xor o164000 " sety
dac 15 i
lac qcos
lrss 8
sma
jmp 1f
cma
tad d1
xor o2000 " minus
1:
xor o100000 " vecx hold
dac 15 i
lac qsin
lrss 8
sma
jmp 1f
cma
tad d1
xor o2000 " minus
1:
xor o124000 " vecy vis
dac 15 i
" rotation
lac .pb i
rtl
sma rar
jmp 2f
" coarse rotation
sma
jmp 1f
szl
jmp 3f
jms rotate; mcsin; ccos
jmp 3f
1:
snl
jmp 3f
jms rotate; csin; ccos
jmp 3f
" fine rotation
2:
sma
"** 10-36-55.pdf page 15
jmp 1f
szl
jmp 3f
jms rotate; mfsin; fcos
jmp 3f
1:
snl
jmp 3f
jms rotate; fsin; fcos
3:
" strike
lac .pb i
rtl; ral
sma ral
jmp 1f
lac qcos
dac ball1+vx
lac qsin
dac ball1+vy
jmp stickcont i
1: sma
jmp stickcont i
lac qcos
lrss 1
dac ball1+vx
lac qsin
lrss 1
dac ball1+vy
jmp stickcont i
rotate: 0
lac rotate i
dac 9f+t+1
lac 9f+t+1 i
dac 9f+t
isz rotate
lac rotate i
dac 9f+t+1
lac 9f+t+1 i
dac 9f+t+1
isz rotate
lac qsin
gsm
dac .+3
lac 9f+t+1
muls; ..; llss 2
dac 9f+t+2
lac qcos
gsm
dac .+3
lac 9f+t
muls; ..; llss 2
tad 9f+t+2
dac 9f+t+3
lac qsin
"** 10-36-55.pdf page 16
gsm
dac .+3
lac 9f+t
muls; ..; llss 2
cma
dac 9f+t+2
lac qcos
gsm
dac .+3
lac 9f+t+1
muls; ..; llss 2
tad 9f+t+2
dac qcos
lac 9f+t+3
dac qsin
jmp rotate i
t = t+4
prad: 02000
pocketlr: 0
lac ball1+sflg
sna
jmp 2f
-1
tad prad
cma
tad bottest
tad ball1+y
spa
jmp 3f
lac prad
tad toptest
tad ball1+y
sma
jmp 3f
-1
tad middle
cma
tad ball1+y
sma
cma
tad prad
sma
jmp 3f
2:
isz pocketlr
jmp pocketlr i
3:
-1
dac ball1+sflg
jmp pocketlr i
pockettb: 0
lac ball1+sflg
sna
jmp 2f
-1
tad prad
cma
tad lefttest
tad ball1+x
"** 10-36-55.pdf page 17
spa
jmp 3f
lac prad
tad righttest
tad ball1+x
sma
jmp 3f
2:
isz pockettb
jmp pockettb i
3:
-1
dac ball1+sflg
jmp pockettb i

156
scans/p5.s Executable file
View File

@ -0,0 +1,156 @@
"** 10-36-55.pdf page 18
" p5
frfac = 0774000 " loss in vel to friction
toptest: 02000+01000-0177700
bottest: -02000-01000
righttest: 02000+040400-0177700
lefttest: -02000-040400
minvx: -02000 " vel below whitch vel is set zero
fsin: 0203 " sine of fine rotation angle
csin: 02534 " sine of coarse rotation angle
mfsin: -0203 " negative of fsin
mcsin: -02534 " negative of csin
fcos: 0177777 " cosine of fine rotation angle
ccos: 0177761 " cosine of coarse rotation angle
nball = 16
d1: 1
o17: 017
o300000: 0300000
dm1: -1
o142000: 0142000
o164000: 0164000
o400000: 0400000
o177777: 0177777
o2000: 02000
o100000: 0100000
o124000: 0124000
qsin: 0177777
qcos: 0
dmpname: <pd>;<um>;<p 040; 040040
nballp: nball
listpm1: list-1
outline:
0065047
0140000 0400
0164000 04
0220414
0124000 01000-010-020
0225010
0221010
0124000 0777-010-020
0224414
0221444
0120000 0777-010-020
0221404
0224454
0126000 0777-010-020
0221050
0225050
0126000 01000-010-020
0220454
0225404
0122000 0777-010-020
0225444
noutline = .-outline
circle:
0212000
0220002
0220002
"** 10-36-55.pdf page 19
0224101
0220002
0224101
0224101
0224101
0224101
0224101
0224101
0224101
0224101
0224200
0224101
0224200
0224200
0224200
0224200
0224141
0224200
0224141
0224141
0224141
0224141
0224141
0224141
0224141
0224141
0220042
0224141
0220042
0220042
0220042
0220042
0220141
0220042
0220141
0220141
0220141
0220141
0220141
0220141
0220141
0220141
0220200
0220141
0220200
0220200
0220200
0220200
0220101
0220200
0220101
0220101
0220101
0220101
0220101
0220101
0220101
0220101
0220002
0220101
0220002
"** 10-36-55.pdf page 20
0220002
circsize = .-circle
.pb: .=.+1
.sw: .=.+1
stime: .=.+1
waitup: .=.+1
sin: .=.+1
cos: .=.+1
vp1: .=.+1
vp2: .=.+1
vt1: .=.+1
vt2: .=.+1
displist: .=.+1
9: .=.+t
ball1:
sflg = .-ball1
.=.+1
x = .-ball1
.=.+1
y = .-ball1
.=.+1
vx = .-ball1
.=.+1
vy = .-ball1
.=.+1
bvsize = .-ball1
ball2:
.=.+bvsize
list: