mirror of
https://github.com/DoctorWkt/pdp7-unix.git
synced 2026-01-13 15:27:39 +00:00
354 lines
4.2 KiB
ArmAsm
354 lines
4.2 KiB
ArmAsm
" s3
|
|
|
|
searchu: 0
|
|
lac searchu 1
|
|
dac 9f+t+1
|
|
-mnproc
|
|
dac 9f+t
|
|
law ulist-1
|
|
dac 8
|
|
1:
|
|
lac 8 i
|
|
dac lu
|
|
lac 8 i
|
|
dac lu+2
|
|
lac 8 i
|
|
dac lu+3
|
|
jms 9f+t+1 i
|
|
isz 9f+t
|
|
jmp 1b
|
|
isz searchu
|
|
jmp searchu i
|
|
t = t+2
|
|
|
|
lookfor: 0
|
|
jms searchu; 1f
|
|
isz lookfor
|
|
isz lookfor
|
|
jmp lookfor i
|
|
1 : 0
|
|
lac lu
|
|
rtl; rtl; and o7
|
|
sad lookfor i
|
|
skp
|
|
jmp 1b i
|
|
-3
|
|
tad 8
|
|
and o17777
|
|
isz lookfor
|
|
jmp lookfor i
|
|
|
|
.fork:
|
|
jms lookfor; 0 " not-used
|
|
skp
|
|
jms error
|
|
dac 9f+t
|
|
isz uniqpid
|
|
lac uniqpid
|
|
dac u.ac
|
|
law sysexit
|
|
dac u.swapret
|
|
lac o200000
|
|
tad u.ulistp i
|
|
dac u.ulistp i
|
|
jms dskswap; 07000
|
|
lac 9f+t
|
|
dac u.ulistp
|
|
iac o100000
|
|
xor u.ulistp i
|
|
dac u.ulistp i
|
|
lac u.pid
|
|
dac u.ac
|
|
lac uniqpid
|
|
dac u.pid
|
|
isz 9f+t
|
|
dac 9f+t i
|
|
isz u.rg+8
|
|
dzm u.intflg
|
|
jmp sysexit
|
|
t = t+1
|
|
|
|
badcal:
|
|
clon
|
|
-1
|
|
dac 7
|
|
.save:
|
|
lac d1
|
|
jms iget
|
|
cla
|
|
jms iwrite; 4096; 4096
|
|
jms iwrite; userdata; 64
|
|
jms iput
|
|
|
|
.exit
|
|
lac u.dspbuf
|
|
sna
|
|
jmp .+3
|
|
law dspbuf
|
|
jms movdsp
|
|
jms awake
|
|
lac u.ulistp i
|
|
and o77777
|
|
dac u.ulistp i
|
|
isz u.ulistp
|
|
dzm u.ulistp i
|
|
jms swap
|
|
|
|
.rmes:
|
|
jms awake
|
|
lac o100000 " Set wait flg.
|
|
tad u.ulistp i
|
|
dac u.ulistp i
|
|
law 2 " p+2 = -1
|
|
tad u.ulistp
|
|
dac 9f+t
|
|
-1
|
|
dac 9f+2 i
|
|
jms swap
|
|
law 2
|
|
tad u.ulistp
|
|
dac 9f+t
|
|
lac 9f+t i
|
|
cma " get pid
|
|
dac u.ac
|
|
dzm 9f+t i
|
|
isz 9f+t
|
|
lac 9f+t i " get message
|
|
dac u.mq
|
|
dzm 9f+t i
|
|
jmp sysexit
|
|
t = t+1
|
|
|
|
.smes:
|
|
lac u.ac
|
|
sna spa
|
|
jms error
|
|
jms searchu; 1f
|
|
law 2
|
|
tad u.ulistp
|
|
dac 9f+t
|
|
dzm 9f+t i
|
|
jms error
|
|
1: 0
|
|
lac lu+1
|
|
sad u.ac
|
|
skp
|
|
jmp 1b i
|
|
lac 1u+2
|
|
sad dm1
|
|
jmp 1f
|
|
lac o100000
|
|
tad u.ulistp i
|
|
dac u.ulistp i
|
|
law 2
|
|
tad u.ulistp
|
|
dac 9f+t
|
|
lac u.ac
|
|
dac 9f+t i
|
|
jms swap
|
|
law 2
|
|
tad u.ulistp
|
|
dac 9f+t
|
|
dzm 9f+t i
|
|
jmp .smes
|
|
1:
|
|
-3
|
|
tad 8
|
|
dac 9f+t
|
|
lac o700000
|
|
tad 9f+t i
|
|
dac 9f+t i
|
|
isz 9f+t
|
|
isz 9f+t
|
|
lac u.pid " - pid -> p+2
|
|
cma
|
|
dac 9f+t i
|
|
isz 9f+t
|
|
iac u.mq " msg -> p+3
|
|
dac 9f+t i
|
|
jmp okexit
|
|
t = t+1
|
|
|
|
awake: 0
|
|
jms searchu; 1f
|
|
jmp awake i
|
|
1: 0
|
|
lac u.pid
|
|
sad lu+2
|
|
skp
|
|
jmp 1b i
|
|
-3
|
|
tad 8
|
|
dac 9f+t
|
|
lac o700000
|
|
tad 9f+t i
|
|
dac 9f+t i
|
|
jmp 1b i
|
|
t = t+1
|
|
|
|
swr:
|
|
sww:
|
|
jmp .-4 i
|
|
.halt; rttyi; rkbdi; rppti; .halt
|
|
.halt; wttyo; wdspo; wppto
|
|
|
|
.halt: jms halt
|
|
|
|
rttyi:
|
|
jms chkint1
|
|
iac d1 " d3 Hyin2
|
|
jms getchar
|
|
jmp 1f
|
|
and o177
|
|
jms betwen; o101; o132
|
|
skp
|
|
tad o40
|
|
alss 9
|
|
jmp passone
|
|
1:
|
|
jms sleep; sfiles+0
|
|
jms swap;
|
|
jmp rttyi
|
|
|
|
wttyo:
|
|
jms chkint1
|
|
jms forall
|
|
sna
|
|
jmp fallr
|
|
lmq
|
|
lac sfiles+1
|
|
spa
|
|
jmp 1f
|
|
xor o400000
|
|
dac sfiles+1
|
|
lacq
|
|
tls
|
|
sad o12
|
|
jms putcr
|
|
jmp fallr
|
|
1:
|
|
lacq
|
|
dac char
|
|
lac d2 " d6 Hyout2
|
|
jms putchar
|
|
skp
|
|
jmp fallr
|
|
jms sleep; sfiles+1
|
|
jms swap
|
|
jmp wttyo
|
|
|
|
rkbdi:
|
|
jms chkint1
|
|
lac d3
|
|
jms getchar
|
|
jmp 3f
|
|
lmq
|
|
and o155
|
|
sad o55
|
|
jmp 1f
|
|
lacq
|
|
and o137
|
|
sad o134
|
|
skp
|
|
jmp 2f
|
|
lacq
|
|
xor o40
|
|
lmq
|
|
jmp 2f
|
|
1:
|
|
lacq
|
|
xor o20
|
|
lmq
|
|
2:
|
|
lacq
|
|
dac u.limit
|
|
1:
|
|
jms chkint1
|
|
lac u.limit
|
|
jms dspput
|
|
jmp 1f
|
|
jms sleep; sfiles+6
|
|
jms swap
|
|
jmp 1b
|
|
1:
|
|
lac u.limit
|
|
alss 9
|
|
jmp passone
|
|
3:
|
|
jms sleep; sfiles+2
|
|
jms swap
|
|
jmp rkbdi
|
|
|
|
wdspo:
|
|
jms chkint1
|
|
jms forall
|
|
jms dspput
|
|
jmp fallr
|
|
jms sleep; sfiles+6
|
|
jms swap
|
|
jmp wdspo
|
|
|
|
rppti:
|
|
lac d4
|
|
jms getchar
|
|
jmp .+3
|
|
alss 9
|
|
jmp passone
|
|
lac sfiles+3
|
|
sma
|
|
rsa
|
|
1:
|
|
jms sleep; sfiles+3
|
|
jms swap
|
|
jmp rppti
|
|
|
|
wppto:
|
|
jms forall
|
|
sna
|
|
jmp fallr
|
|
lmq
|
|
lac sfiles+4
|
|
spa
|
|
jmp 1f
|
|
xor o400000
|
|
dac sfiles+4
|
|
lacq
|
|
psa
|
|
jmp fallr
|
|
1:
|
|
lacq
|
|
dac char
|
|
lac d5
|
|
jms putchar
|
|
skp
|
|
jmp fallr
|
|
jms sleep; sfiles+4
|
|
jms swap
|
|
jmp wppto
|
|
|
|
passone:
|
|
sad o4000
|
|
jmp okexit
|
|
dac u.base i
|
|
lac d1
|
|
dac u.ac
|
|
jmp sysexit
|
|
|
|
error: 0
|
|
-1
|
|
dac u.ac
|
|
jmp sysexit
|
|
|
|
chkint1: 0
|
|
dzm .insys
|
|
jms chkint
|
|
skp
|
|
jmp .save
|
|
-1
|
|
dac .insys
|
|
jmp chkint1 i
|
|
|
|
|
|
|
|
|
|
|