Research PDP7 development
[unix-history] / s4.s
CommitLineData
69f28986
KT
1" s4
2
3alloc: 0
4 -1
5 tad s.nfblks
6 spa
7 jmp 1f
8 dac s.nfblks
9 tad fblksp
10 jms laci
11 dac 9f+t
12 jms copyz; dskbuf; 64
13 lac 9f+t
14 jms dskwr
15 dzm .savblk
16 lac 9f+t
17 jmp alloc i
181:
19 lac s.nxfblk
20 sna
21 jms halt " OUT OF DISK
22 dac s.fblks
23 jms dskrd
24 lac dskbuf
25 dac s.nxfblk
26 jms copy; dskbuf+1; s.fblks+1; 9
27 lac d10
28 dac s.nfblks
29 jmp alloc+1
30
31free: 0
32 lmq
33 lac s.nfblks
34 sad d10
35 jmp 1f
36 tad fblksp
37 dac 9f+t
38 lacq
39 dac 9f+t i
40 dzm .savblk
41 isz s.nfblks
42 jmp free i
431:
44 lac s.nxfblk
45 dac dskbuf
46 jms copy; s.fblks+1; dskbuf+1; 9
47 lacq
48 dac s.nxfblk
49 jms dskwr
50 dzm .savblk
51 lac d1
52 dac s.nfblks
53 jmp free i
54t = t+1
55
56laci: 0
57 and o17777
58 tad o200000
59 dac .+1
60 lac ..
61 jmp laci i
62
63
64betwen: 0
65 lmq cmq
66 lac betwen i
67 dac 9f+t
68 isz betwen
69 lacq
70 tad 9f+t i
71 sma
72 jmp 1f
73 lac betwen i
74 dac 9f+t
75 isz betwen
76 lacq
77 tad 9f+t i
78 cma
79 spa sna
801:
81 isz betwen
82 lacq
83 cma
84 jmp betwen i
85
86copy: 0
87 -1
88 tad copy i
89 dac 8
90 isz copy
91 -1
92 tad copy i
93 dac 9
94 isz copy
95 -1
96 tad copy i
97 cma
98 dac 9f+t
99 isz copy
1001:
101 lac 8 i
102 dac 9 i
103 isz 9f+t
104 jmp 1b
105 jmp copy i
106
107copyz: 0
108 -1
109 tad copyz i
110 dac 8
111 isz copyz
112 -1
113 tad copyz i
114 cma
115 dac 9f+t
116 isz copyz
1171:
118 dzm 8 i
119 isz 9f+t
120 jmp 1b
121 jmp copyz i
122t = t+1
123
124putchar: 0
125 dac 9f+t
126 cla
127 jms takeq
128 jmp putchar i
129 tad o40001
130 dac .+4
131 lac 9f+t
132 jms putq
133 lac char
134 dac q2+1 ..
135 isz putchar
136 jmp putchar i
137t = t+1
138
139getchar: 0
140 jms takeq
141 jmp i getchar
142 tad o200001
143 dac .+3
144 cla
145 jms putq
146 lac q2+1 ..
147 isz getchar
148 jmp i getchar
149
150takeq: 0
151 rcl
152 tad lacq1
153 dac .+7
154 tad o640000
155 dac .+17
156 tad d1
157 dac .+14
158 tad o500000
159 dac .+5
160 lac q1 ..
161 sna
162 jmp takeq i
163 dac lnkaddr
164 sad q1+1 ..
165 jmp .+5
166 tad o200000
167 dac .+1
168 lac q2 ..
169 jmp .+3
170 cla
171 dac q1+1 ..
172 dac q1 ..
173 isz takeq
174 lac lnkaddr
175 jmp i takeq
176
177putq: 0
178 rcl
179 tad dacq1
180 dac .+14
181 tad d1
182 dac .+13
183 tad o140000
184 dac .+1
185 lac q1-1 ..
186 sna
187 jmp .+6
188 tad o40000
189 dac .+2
190 lac lnkaddr
191 dac q2 ..
192 jmp .+3
193 lac lnkaddr
194 dac q1 ..
195 dac q1+1 ..
196 jmp putq i
197
198srcdbs: 0
199 dac 9f+t+2 "* lmq
200 -ndskbs
201 dac 9f+t
202 law dskbs "* -1 dac 8 written
203 dac 9f+t+1 "* lacq
2041:
205 jmp srcdbs i
206 isz 9f+t+1
207 isz 9f+t
208 jmp 1b
209 isz srcdbs
210 jmp srcdbs i
211
212collapse: 0
213 cla
214 jms srcdbs
215 jmp 1f
216 law dskbs
2171:
218 dac 0f+1
219 dac 0f
220 cma
221 tad d1
222 tad edskbsp
223 and o17777
224 sna
225 jmp 0f+3
226 dac 0f+2
227 jms copy; 0:..; ..; ..
228 -65
229 tad edskbsp
230 dac 9f+t
231 tad d1
232 dac 0f
233 lac dskaddr
234 dac 9f+t i
235 jms copy; dskbuf; 0:..; 64
236 jmp collapse i
237
238dskrd: 0
239 jms betwen; d2; d7999
240
241 jms halt
242 sad dskaddr
243 jmp dskrd i
244 dac dskaddr
245 jms srcdbs
246 jmp 1f
247 lac dskaddr
248 jms dskio; 06000
249 jmp 2f
2501:
251 dzm 9f+t+1 i
252 law 1
253 tad 9f+t+1
254 dac .+2
255 jms copy; ..; dskbuf; 64
2562:
257 jms collapse
258 jmp dskrd i
259
260dskwr: 0
261 jms betwen; d2; d7999
262 jms halt
263 jms dskio; 07000
264 lac dskaddr
265 jms srcdbs
266 dzm 9f+t+1 i
267 jms collapse
268 jmp dskwr i
269t = t+3
270
271dskio: 0
272 dac dskaddr
273 cll; idiv; 80
274 dac 9f+t
275 lacq
276 idiv; 10
277 dac 9f+t+1
278 lls 22
279 xor 9f+t+1
280 als 8
281 dac 9f+t+1
282 lac 9f+t
283 idiv; 10
284 dac 9f+t
285 lls 22
286 xor 9f+t
287 xor 9f+t+1
288 xor o200000
289 dac 9f+t
290 jms dsktrans; -64; dskbuf; 9f+t; dskio
291 isz dskio
292 jmp dskio i
293t = t+1
294
295dsktrans: 0
296 -10
297 dac 9f+t
2981:
299 -1
300 tad dsktrans
301 dac 12
302 dscs
303 lac 12 i
304 dslw
305 lac 12 i
306 dslm
307 lac 12 i
308 jms laci
309 dsld
310 dzm .dskb
311 lac 12 i
312 jms laci
313 jms laci
314 dsls
315 lac .dskb
316 sna
317 jmp .-2
318 lac .dske
319 sma
320 jmp 12 i
321 isz 9f+t
322 jmp 1b
323 jms halt " 10 disk errors
324t = t+1
325
326halt: 0
327 isz 9f+t
328 jmp .-1
329 iof
330 hlt
331 jms copy; law; 4096; 4096
332 hlt; jmp .-1
333t = t+1
334