Commit | Line | Data |
---|---|---|
69f28986 KT |
1 | " s4 |
2 | ||
3 | alloc: 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 | |
18 | 1: | |
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 | ||
31 | free: 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 | |
43 | 1: | |
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 | |
54 | t = t+1 | |
55 | ||
56 | laci: 0 | |
57 | and o17777 | |
58 | tad o200000 | |
59 | dac .+1 | |
60 | lac .. | |
61 | jmp laci i | |
62 | ||
63 | ||
64 | betwen: 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 | |
80 | 1: | |
81 | isz betwen | |
82 | lacq | |
83 | cma | |
84 | jmp betwen i | |
85 | ||
86 | copy: 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 | |
100 | 1: | |
101 | lac 8 i | |
102 | dac 9 i | |
103 | isz 9f+t | |
104 | jmp 1b | |
105 | jmp copy i | |
106 | ||
107 | copyz: 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 | |
117 | 1: | |
118 | dzm 8 i | |
119 | isz 9f+t | |
120 | jmp 1b | |
121 | jmp copyz i | |
122 | t = t+1 | |
123 | ||
124 | putchar: 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 | |
137 | t = t+1 | |
138 | ||
139 | getchar: 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 | ||
150 | takeq: 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 | ||
177 | putq: 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 | ||
198 | srcdbs: 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 | |
204 | 1: | |
205 | jmp srcdbs i | |
206 | isz 9f+t+1 | |
207 | isz 9f+t | |
208 | jmp 1b | |
209 | isz srcdbs | |
210 | jmp srcdbs i | |
211 | ||
212 | collapse: 0 | |
213 | cla | |
214 | jms srcdbs | |
215 | jmp 1f | |
216 | law dskbs | |
217 | 1: | |
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 | ||
238 | dskrd: 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 | |
250 | 1: | |
251 | dzm 9f+t+1 i | |
252 | law 1 | |
253 | tad 9f+t+1 | |
254 | dac .+2 | |
255 | jms copy; ..; dskbuf; 64 | |
256 | 2: | |
257 | jms collapse | |
258 | jmp dskrd i | |
259 | ||
260 | dskwr: 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 | |
269 | t = t+3 | |
270 | ||
271 | dskio: 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 | |
293 | t = t+1 | |
294 | ||
295 | dsktrans: 0 | |
296 | -10 | |
297 | dac 9f+t | |
298 | 1: | |
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 | |
324 | t = t+1 | |
325 | ||
326 | halt: 0 | |
327 | isz 9f+t | |
328 | jmp .-1 | |
329 | iof | |
330 | hlt | |
331 | jms copy; law; 4096; 4096 | |
332 | hlt; jmp .-1 | |
333 | t = t+1 | |
334 |