| 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 | |