File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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
You can’t perform that action at this time.
0 commit comments