Skip to content

Commit 57d94bd

Browse files
kendmr-1941-2011
andcommitted
Research V2 development
Work on file cmd/init.s Co-Authored-By: Dennis Ritchie <dmr@research.uucp> Synthesized-from: v2
1 parent 3f751be commit 57d94bd

File tree

1 file changed

+212
-0
lines changed

1 file changed

+212
-0
lines changed

‎cmd/init.s

+212
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,212 @@
1+
/ init -- process control initialization
2+
3+
4+
5+
sys intr; 0
6+
sys quit; 0
7+
sys 38. / get console switches
8+
cmp r0,$173030
9+
bne 1f
10+
help:
11+
clr r0
12+
sys close
13+
mov $1,r0
14+
sys close
15+
sys open; ctty; 0
16+
sys open; ctty; 1
17+
sys exec; shell; shellp
18+
br help
19+
1:
20+
sys mount; rk1; usr
21+
sys mount; rk2; ssys
22+
sys mount; rk3; crp
23+
mov $'0,r1
24+
1:
25+
movb r1,tapx+8
26+
sys chmod; tapx; 17
27+
inc r1
28+
cmp r1,$'8
29+
blo 1b
30+
sys creat; utmp; 16
31+
sys close
32+
sys unlink; dpdlock
33+
sys fork
34+
br daemon
35+
sys fork
36+
br dirass
37+
sys fork
38+
br dds
39+
movb $'x,zero+8.
40+
jsr pc,wtmprec
41+
mov $itab,r1
42+
br 1f
43+
44+
daemon:
45+
sys exec; etcdpd; etcdpdp
46+
sys exit
47+
48+
dirass:
49+
sys chdir; usrmel
50+
sys exec; melda; meldap
51+
sys exit
52+
53+
dds:
54+
sys exec; usrdd; usrddp
55+
sys exit
56+
57+
/ create shell processes
58+
59+
1:
60+
mov (r1)+,r0
61+
beq pwait
62+
movb r0,ttyx+8
63+
jsr pc,dfork
64+
mov r0,(r1)+
65+
br 1b
66+
67+
/ wait for process to die
68+
69+
pwait:
70+
sys wait
71+
mov $itab,r1
72+
73+
/ search for process id
74+
75+
2:
76+
tst (r1)+
77+
beq pwait
78+
cmp r0,(r1)+
79+
bne 2b
80+
81+
/ take name out of utmp
82+
83+
sub $4,r1
84+
mov r1,-(sp)
85+
mov (r1),r1
86+
sub $'0,r1
87+
cmp r1,$'a-'0
88+
blo 2f
89+
sub $'a-'0-10.,r1 / map a-z into 10. on
90+
2:
91+
asl r1
92+
asl r1
93+
asl r1
94+
asl r1
95+
mov r1,0f
96+
mov $zero,r1
97+
2:
98+
clr (r1)+
99+
cmp r1,$zero+16.
100+
blo 2b
101+
sys open; utmp; 1
102+
bes 2f
103+
mov r0,r1
104+
sys seek; 0:..; 0
105+
mov r1,r0
106+
sys write; zero; 16.
107+
mov r1,r0
108+
sys close
109+
110+
/ re-create user process
111+
112+
2:
113+
mov (sp)+,r1
114+
mov (r1)+,r0
115+
movb r0,ttyx+8
116+
movb r0,zero+8.
117+
jsr pc,wtmprec
118+
jsr pc,dfork
119+
mov r0,(r1)+
120+
br pwait
121+
122+
dfork:
123+
sys fork
124+
br 1f
125+
bes dfork
126+
rts pc
127+
1:
128+
sys quit; 0
129+
sys intr; 0
130+
sys chown; ttyx; 0
131+
sys chmod; ttyx; 15
132+
sys open; ttyx; 0
133+
bes help1
134+
sys open; ttyx; 1
135+
bes help1
136+
sys exec; getty; gettyp
137+
sys exit / HELP!
138+
139+
help1:
140+
jmp help
141+
142+
wtmprec:
143+
mov r1,-(sp)
144+
sys time
145+
mov r0,zero+10.
146+
mov r1,zero+12.
147+
sys open; wtmp; 1
148+
bes 2f
149+
mov r0,r2
150+
sys seek; 0; 2
151+
mov r2,r0
152+
sys write; zero; 16.
153+
mov r2,r0
154+
sys close
155+
2:
156+
mov (sp)+,r1
157+
rts pc
158+
159+
etcdpdp:
160+
etcdpd; 0
161+
meldap:
162+
melda; 0
163+
usrddp:
164+
usrdd; 0
165+
usrdd: </usr/demo/dds\0>
166+
melda: </usr/mel/da\0>
167+
usrmel: </usr/mel\0>
168+
rk1: </dev/rk1\0>
169+
rk2: </dev/rk2\0>
170+
rk3: </dev/rk3\0>
171+
usr: </usr\0>
172+
ssys: </sys\0>
173+
crp: </crp\0>
174+
ctty: </dev/tty\0>
175+
shell: </bin/sh\0>
176+
shellm: <-\0>
177+
dpdlock:
178+
</usr/dpd/lock\0>
179+
etcdpd:
180+
</etc/dpd\0>
181+
tapx: </dev/tapx\0>
182+
utmp: </tmp/utmp\0>
183+
wtmp: </tmp/wtmp\0>
184+
ttyx: </dev/ttyx\0>
185+
getty: </etc/getty\0>
186+
.even
187+
188+
shellp: shellm
189+
0
190+
gettyp: getty
191+
0
192+
itab:
193+
'0; ..
194+
'1; ..
195+
'2; ..
196+
'3; ..
197+
'4; ..
198+
'5; ..
199+
'6; ..
200+
'7; ..
201+
'8; ..
202+
'a; ..
203+
'b; ..
204+
0
205+
206+
.bss
207+
offset: .=.+2
208+
zero: .=.+8.; .=.+6; .=.+2.
209+
210+
srmel: </usr/mel\0>
211+
rk1: </dev/rk1\0>
212+
rk2: </dev/rk2\0

0 commit comments

Comments
 (0)