PDA

Просмотр полной версии : ImageUtils



Страницы : [1] 2

Hunta
30.04.2022, 21:49
Пока большая часть моих программ - RequestWare, то есть, если что-то из написанного мной кому-то интересно, а у меня на недо-сайте не выложено - пишем в теме или в личку - обсуждаемо.


Программа, позволяющая распаковывать образы дисков с ФС от DEC, а некоторые (работы продолжаются) даже запаковывать :)

Так же понимает разнообразные interlive-ные диски и диски с нестандартным размером блока

Возможно, кому-то пригодится -

Соответствие - физический блок без интерелейса - физический блок с интерлейсом (плюс hex смещения в образе)

Для DX



0 0x00000 26 0x00D00
1 0x00080 28 0x00E00
2 0x00100 30 0x00F00
3 0x00180 32 0x01000
4 0x00200 34 0x01100
5 0x00280 36 0x01200
6 0x00300 38 0x01300
7 0x00380 40 0x01400
8 0x00400 42 0x01500
9 0x00480 44 0x01600
10 0x00500 46 0x01700
11 0x00580 48 0x01800
12 0x00600 50 0x01900
13 0x00680 27 0x00D80
14 0x00700 29 0x00E80
15 0x00780 31 0x00F80
16 0x00800 33 0x01080
17 0x00880 35 0x01180
18 0x00900 37 0x01280
19 0x00980 39 0x01380
20 0x00A00 41 0x01480
21 0x00A80 43 0x01580
22 0x00B00 45 0x01680
23 0x00B80 47 0x01780
24 0x00C00 49 0x01880
25 0x00C80 51 0x01980
26 0x00D00 58 0x01D00
27 0x00D80 60 0x01E00
28 0x00E00 62 0x01F00
29 0x00E80 64 0x02000
30 0x00F00 66 0x02100
31 0x00F80 68 0x02200
32 0x01000 70 0x02300
33 0x01080 72 0x02400
34 0x01100 74 0x02500
35 0x01180 76 0x02600
36 0x01200 52 0x01A00
37 0x01280 54 0x01B00
38 0x01300 56 0x01C00
39 0x01380 59 0x01D80
40 0x01400 61 0x01E80
41 0x01480 63 0x01F80
42 0x01500 65 0x02080
43 0x01580 67 0x02180
44 0x01600 69 0x02280
45 0x01680 71 0x02380
46 0x01700 73 0x02480
47 0x01780 75 0x02580
48 0x01800 77 0x02680
49 0x01880 53 0x01A80
50 0x01900 55 0x01B80
51 0x01980 57 0x01C80
52 0x01A00 90 0x02D00
53 0x01A80 92 0x02E00
54 0x01B00 94 0x02F00
55 0x01B80 96 0x03000
56 0x01C00 98 0x03100
57 0x01C80 100 0x03200
58 0x01D00 102 0x03300
59 0x01D80 78 0x02700
60 0x01E00 80 0x02800
61 0x01E80 82 0x02900
62 0x01F00 84 0x02A00
63 0x01F80 86 0x02B00
64 0x02000 88 0x02C00
65 0x02080 91 0x02D80
66 0x02100 93 0x02E80
67 0x02180 95 0x02F80
68 0x02200 97 0x03080
69 0x02280 99 0x03180
70 0x02300 101 0x03280
71 0x02380 103 0x03380
72 0x02400 79 0x02780
73 0x02480 81 0x02880
74 0x02500 83 0x02980
75 0x02580 85 0x02A80
76 0x02600 87 0x02B80
77 0x02680 89 0x02C80
78 0x02700 122 0x03D00
79 0x02780 124 0x03E00
80 0x02800 126 0x03F00
81 0x02880 128 0x04000
82 0x02900 104 0x03400
83 0x02980 106 0x03500
84 0x02A00 108 0x03600
85 0x02A80 110 0x03700
86 0x02B00 112 0x03800
87 0x02B80 114 0x03900
88 0x02C00 116 0x03A00
89 0x02C80 118 0x03B00
90 0x02D00 120 0x03C00
91 0x02D80 123 0x03D80
92 0x02E00 125 0x03E80
93 0x02E80 127 0x03F80
94 0x02F00 129 0x04080
95 0x02F80 105 0x03480
96 0x03000 107 0x03580
97 0x03080 109 0x03680
98 0x03100 111 0x03780
99 0x03180 113 0x03880
100 0x03200 115 0x03980
101 0x03280 117 0x03A80
102 0x03300 119 0x03B80
103 0x03380 121 0x03C80
104 0x03400 154 0x04D00
105 0x03480 130 0x04100
106 0x03500 132 0x04200
107 0x03580 134 0x04300
108 0x03600 136 0x04400
109 0x03680 138 0x04500
110 0x03700 140 0x04600
111 0x03780 142 0x04700
112 0x03800 144 0x04800
113 0x03880 146 0x04900
114 0x03900 148 0x04A00
115 0x03980 150 0x04B00
116 0x03A00 152 0x04C00
117 0x03A80 155 0x04D80
118 0x03B00 131 0x04180
119 0x03B80 133 0x04280
120 0x03C00 135 0x04380
121 0x03C80 137 0x04480
122 0x03D00 139 0x04580
123 0x03D80 141 0x04680
124 0x03E00 143 0x04780
125 0x03E80 145 0x04880
126 0x03F00 147 0x04980
127 0x03F80 149 0x04A80
128 0x04000 151 0x04B80
129 0x04080 153 0x04C80
130 0x04100 160 0x05000
131 0x04180 162 0x05100
132 0x04200 164 0x05200
133 0x04280 166 0x05300
134 0x04300 168 0x05400
135 0x04380 170 0x05500
136 0x04400 172 0x05600
137 0x04480 174 0x05700
138 0x04500 176 0x05800
139 0x04580 178 0x05900
140 0x04600 180 0x05A00
141 0x04680 156 0x04E00
142 0x04700 158 0x04F00
143 0x04780 161 0x05080
144 0x04800 163 0x05180
145 0x04880 165 0x05280
146 0x04900 167 0x05380
147 0x04980 169 0x05480
148 0x04A00 171 0x05580
149 0x04A80 173 0x05680
150 0x04B00 175 0x05780
151 0x04B80 177 0x05880
152 0x04C00 179 0x05980
153 0x04C80 181 0x05A80
154 0x04D00 157 0x04E80
155 0x04D80 159 0x04F80
156 0x04E00 192 0x06000
157 0x04E80 194 0x06100
158 0x04F00 196 0x06200
159 0x04F80 198 0x06300
160 0x05000 200 0x06400
161 0x05080 202 0x06500
162 0x05100 204 0x06600
163 0x05180 206 0x06700
164 0x05200 182 0x05B00
165 0x05280 184 0x05C00
166 0x05300 186 0x05D00
167 0x05380 188 0x05E00
168 0x05400 190 0x05F00
169 0x05480 193 0x06080
170 0x05500 195 0x06180
171 0x05580 197 0x06280
172 0x05600 199 0x06380
173 0x05680 201 0x06480
174 0x05700 203 0x06580
175 0x05780 205 0x06680
176 0x05800 207 0x06780
177 0x05880 183 0x05B80
178 0x05900 185 0x05C80
179 0x05980 187 0x05D80
180 0x05A00 189 0x05E80
181 0x05A80 191 0x05F80
182 0x05B00 224 0x07000
183 0x05B80 226 0x07100
184 0x05C00 228 0x07200
185 0x05C80 230 0x07300
186 0x05D00 232 0x07400
187 0x05D80 208 0x06800
188 0x05E00 210 0x06900
189 0x05E80 212 0x06A00
190 0x05F00 214 0x06B00
191 0x05F80 216 0x06C00
192 0x06000 218 0x06D00
193 0x06080 220 0x06E00
194 0x06100 222 0x06F00
195 0x06180 225 0x07080
196 0x06200 227 0x07180
197 0x06280 229 0x07280
198 0x06300 231 0x07380
199 0x06380 233 0x07480
200 0x06400 209 0x06880
201 0x06480 211 0x06980
202 0x06500 213 0x06A80
203 0x06580 215 0x06B80
204 0x06600 217 0x06C80
205 0x06680 219 0x06D80
206 0x06700 221 0x06E80
207 0x06780 223 0x06F80
208 0x06800 256 0x08000
209 0x06880 258 0x08100
210 0x06900 234 0x07500
211 0x06980 236 0x07600
212 0x06A00 238 0x07700
213 0x06A80 240 0x07800
214 0x06B00 242 0x07900
215 0x06B80 244 0x07A00
216 0x06C00 246 0x07B00
217 0x06C80 248 0x07C00
218 0x06D00 250 0x07D00
219 0x06D80 252 0x07E00
220 0x06E00 254 0x07F00
221 0x06E80 257 0x08080
222 0x06F00 259 0x08180
223 0x06F80 235 0x07580
224 0x07000 237 0x07680
225 0x07080 239 0x07780
226 0x07100 241 0x07880
227 0x07180 243 0x07980
228 0x07200 245 0x07A80
229 0x07280 247 0x07B80
230 0x07300 249 0x07C80
231 0x07380 251 0x07D80
232 0x07400 253 0x07E80
233 0x07480 255 0x07F80
234 0x07500 262 0x08300
235 0x07580 264 0x08400
236 0x07600 266 0x08500
237 0x07680 268 0x08600
238 0x07700 270 0x08700
239 0x07780 272 0x08800
240 0x07800 274 0x08900
241 0x07880 276 0x08A00
242 0x07900 278 0x08B00
243 0x07980 280 0x08C00
244 0x07A00 282 0x08D00
245 0x07A80 284 0x08E00
246 0x07B00 260 0x08200
247 0x07B80 263 0x08380
248 0x07C00 265 0x08480
249 0x07C80 267 0x08580
250 0x07D00 269 0x08680
251 0x07D80 271 0x08780
252 0x07E00 273 0x08880
253 0x07E80 275 0x08980
254 0x07F00 277 0x08A80
255 0x07F80 279 0x08B80
256 0x08000 281 0x08C80
257 0x08080 283 0x08D80
258 0x08100 285 0x08E80
259 0x08180 261 0x08280
260 0x08200 294 0x09300
261 0x08280 296 0x09400
262 0x08300 298 0x09500
263 0x08380 300 0x09600
264 0x08400 302 0x09700
265 0x08480 304 0x09800
266 0x08500 306 0x09900
267 0x08580 308 0x09A00
268 0x08600 310 0x09B00
269 0x08680 286 0x08F00
270 0x08700 288 0x09000
271 0x08780 290 0x09100
272 0x08800 292 0x09200
273 0x08880 295 0x09380
274 0x08900 297 0x09480
275 0x08980 299 0x09580
276 0x08A00 301 0x09680
277 0x08A80 303 0x09780
278 0x08B00 305 0x09880
279 0x08B80 307 0x09980
280 0x08C00 309 0x09A80
281 0x08C80 311 0x09B80
282 0x08D00 287 0x08F80
283 0x08D80 289 0x09080
284 0x08E00 291 0x09180
285 0x08E80 293 0x09280
286 0x08F00 326 0x0A300
287 0x08F80 328 0x0A400
288 0x09000 330 0x0A500
289 0x09080 332 0x0A600
290 0x09100 334 0x0A700
291 0x09180 336 0x0A800
292 0x09200 312 0x09C00
293 0x09280 314 0x09D00
294 0x09300 316 0x09E00
295 0x09380 318 0x09F00
296 0x09400 320 0x0A000
297 0x09480 322 0x0A100
298 0x09500 324 0x0A200
299 0x09580 327 0x0A380
300 0x09600 329 0x0A480
301 0x09680 331 0x0A580
302 0x09700 333 0x0A680
303 0x09780 335 0x0A780
304 0x09800 337 0x0A880
305 0x09880 313 0x09C80
306 0x09900 315 0x09D80
307 0x09980 317 0x09E80
308 0x09A00 319 0x09F80
309 0x09A80 321 0x0A080
310 0x09B00 323 0x0A180
311 0x09B80 325 0x0A280
312 0x09C00 358 0x0B300
313 0x09C80 360 0x0B400
314 0x09D00 362 0x0B500
315 0x09D80 338 0x0A900
316 0x09E00 340 0x0AA00
317 0x09E80 342 0x0AB00
318 0x09F00 344 0x0AC00
319 0x09F80 346 0x0AD00
320 0x0A000 348 0x0AE00
321 0x0A080 350 0x0AF00
322 0x0A100 352 0x0B000
323 0x0A180 354 0x0B100
324 0x0A200 356 0x0B200
325 0x0A280 359 0x0B380
326 0x0A300 361 0x0B480
327 0x0A380 363 0x0B580
328 0x0A400 339 0x0A980
329 0x0A480 341 0x0AA80
330 0x0A500 343 0x0AB80
331 0x0A580 345 0x0AC80
332 0x0A600 347 0x0AD80
333 0x0A680 349 0x0AE80
334 0x0A700 351 0x0AF80
335 0x0A780 353 0x0B080
336 0x0A800 355 0x0B180
337 0x0A880 357 0x0B280
338 0x0A900 364 0x0B600
339 0x0A980 366 0x0B700
340 0x0AA00 368 0x0B800
341 0x0AA80 370 0x0B900
342 0x0AB00 372 0x0BA00
343 0x0AB80 374 0x0BB00
344 0x0AC00 376 0x0BC00
345 0x0AC80 378 0x0BD00
346 0x0AD00 380 0x0BE00
347 0x0AD80 382 0x0BF00
348 0x0AE00 384 0x0C000
349 0x0AE80 386 0x0C100
350 0x0AF00 388 0x0C200
351 0x0AF80 365 0x0B680
352 0x0B000 367 0x0B780
353 0x0B080 369 0x0B880
354 0x0B100 371 0x0B980
355 0x0B180 373 0x0BA80
356 0x0B200 375 0x0BB80
357 0x0B280 377 0x0BC80
358 0x0B300 379 0x0BD80
359 0x0B380 381 0x0BE80
360 0x0B400 383 0x0BF80
361 0x0B480 385 0x0C080
362 0x0B500 387 0x0C180
363 0x0B580 389 0x0C280
364 0x0B600 396 0x0C600
365 0x0B680 398 0x0C700
366 0x0B700 400 0x0C800
367 0x0B780 402 0x0C900
368 0x0B800 404 0x0CA00
369 0x0B880 406 0x0CB00
370 0x0B900 408 0x0CC00
371 0x0B980 410 0x0CD00
372 0x0BA00 412 0x0CE00
373 0x0BA80 414 0x0CF00
374 0x0BB00 390 0x0C300
375 0x0BB80 392 0x0C400
376 0x0BC00 394 0x0C500
377 0x0BC80 397 0x0C680
378 0x0BD00 399 0x0C780
379 0x0BD80 401 0x0C880
380 0x0BE00 403 0x0C980
381 0x0BE80 405 0x0CA80
382 0x0BF00 407 0x0CB80
383 0x0BF80 409 0x0CC80
384 0x0C000 411 0x0CD80
385 0x0C080 413 0x0CE80
386 0x0C100 415 0x0CF80
387 0x0C180 391 0x0C380
388 0x0C200 393 0x0C480
389 0x0C280 395 0x0C580
390 0x0C300 428 0x0D600
391 0x0C380 430 0x0D700
392 0x0C400 432 0x0D800
393 0x0C480 434 0x0D900
394 0x0C500 436 0x0DA00
395 0x0C580 438 0x0DB00
396 0x0C600 440 0x0DC00
397 0x0C680 416 0x0D000
398 0x0C700 418 0x0D100
399 0x0C780 420 0x0D200
400 0x0C800 422 0x0D300
401 0x0C880 424 0x0D400
402 0x0C900 426 0x0D500
403 0x0C980 429 0x0D680
404 0x0CA00 431 0x0D780
405 0x0CA80 433 0x0D880
406 0x0CB00 435 0x0D980
407 0x0CB80 437 0x0DA80
408 0x0CC00 439 0x0DB80
409 0x0CC80 441 0x0DC80
410 0x0CD00 417 0x0D080
411 0x0CD80 419 0x0D180
412 0x0CE00 421 0x0D280
413 0x0CE80 423 0x0D380
414 0x0CF00 425 0x0D480
415 0x0CF80 427 0x0D580
416 0x0D000 460 0x0E600
417 0x0D080 462 0x0E700
418 0x0D100 464 0x0E800
419 0x0D180 466 0x0E900
420 0x0D200 442 0x0DD00
421 0x0D280 444 0x0DE00
422 0x0D300 446 0x0DF00
423 0x0D380 448 0x0E000
424 0x0D400 450 0x0E100
425 0x0D480 452 0x0E200
426 0x0D500 454 0x0E300
427 0x0D580 456 0x0E400
428 0x0D600 458 0x0E500
429 0x0D680 461 0x0E680
430 0x0D700 463 0x0E780
431 0x0D780 465 0x0E880
432 0x0D800 467 0x0E980
433 0x0D880 443 0x0DD80
434 0x0D900 445 0x0DE80
435 0x0D980 447 0x0DF80
436 0x0DA00 449 0x0E080
437 0x0DA80 451 0x0E180
438 0x0DB00 453 0x0E280
439 0x0DB80 455 0x0E380
440 0x0DC00 457 0x0E480
441 0x0DC80 459 0x0E580
442 0x0DD00 492 0x0F600
443 0x0DD80 468 0x0EA00
444 0x0DE00 470 0x0EB00
445 0x0DE80 472 0x0EC00
446 0x0DF00 474 0x0ED00
447 0x0DF80 476 0x0EE00
448 0x0E000 478 0x0EF00
449 0x0E080 480 0x0F000
450 0x0E100 482 0x0F100
451 0x0E180 484 0x0F200
452 0x0E200 486 0x0F300
453 0x0E280 488 0x0F400
454 0x0E300 490 0x0F500
455 0x0E380 493 0x0F680
456 0x0E400 469 0x0EA80
457 0x0E480 471 0x0EB80
458 0x0E500 473 0x0EC80
459 0x0E580 475 0x0ED80
460 0x0E600 477 0x0EE80
461 0x0E680 479 0x0EF80
462 0x0E700 481 0x0F080
463 0x0E780 483 0x0F180
464 0x0E800 485 0x0F280
465 0x0E880 487 0x0F380
466 0x0E900 489 0x0F480
467 0x0E980 491 0x0F580
468 0x0EA00 498 0x0F900
469 0x0EA80 500 0x0FA00
470 0x0EB00 502 0x0FB00
471 0x0EB80 504 0x0FC00
472 0x0EC00 506 0x0FD00
473 0x0EC80 508 0x0FE00
474 0x0ED00 510 0x0FF00
475 0x0ED80 512 0x10000
476 0x0EE00 514 0x10100
477 0x0EE80 516 0x10200
478 0x0EF00 518 0x10300
479 0x0EF80 494 0x0F700
480 0x0F000 496 0x0F800
481 0x0F080 499 0x0F980
482 0x0F100 501 0x0FA80
483 0x0F180 503 0x0FB80
484 0x0F200 505 0x0FC80
485 0x0F280 507 0x0FD80
486 0x0F300 509 0x0FE80
487 0x0F380 511 0x0FF80
488 0x0F400 513 0x10080
489 0x0F480 515 0x10180
490 0x0F500 517 0x10280
491 0x0F580 519 0x10380
492 0x0F600 495 0x0F780
493 0x0F680 497 0x0F880
494 0x0F700 530 0x10900
495 0x0F780 532 0x10A00
496 0x0F800 534 0x10B00
497 0x0F880 536 0x10C00
498 0x0F900 538 0x10D00
499 0x0F980 540 0x10E00
500 0x0FA00 542 0x10F00
501 0x0FA80 544 0x11000
502 0x0FB00 520 0x10400
503 0x0FB80 522 0x10500
504 0x0FC00 524 0x10600
505 0x0FC80 526 0x10700
506 0x0FD00 528 0x10800
507 0x0FD80 531 0x10980
508 0x0FE00 533 0x10A80
509 0x0FE80 535 0x10B80
510 0x0FF00 537 0x10C80
511 0x0FF80 539 0x10D80
512 0x10000 541 0x10E80
513 0x10080 543 0x10F80
514 0x10100 545 0x11080
515 0x10180 521 0x10480
516 0x10200 523 0x10580
517 0x10280 525 0x10680
518 0x10300 527 0x10780
519 0x10380 529 0x10880
520 0x10400 562 0x11900
521 0x10480 564 0x11A00
522 0x10500 566 0x11B00
523 0x10580 568 0x11C00
524 0x10600 570 0x11D00
525 0x10680 546 0x11100
526 0x10700 548 0x11200
527 0x10780 550 0x11300
528 0x10800 552 0x11400
529 0x10880 554 0x11500
530 0x10900 556 0x11600
531 0x10980 558 0x11700
532 0x10A00 560 0x11800
533 0x10A80 563 0x11980
534 0x10B00 565 0x11A80
535 0x10B80 567 0x11B80
536 0x10C00 569 0x11C80
537 0x10C80 571 0x11D80
538 0x10D00 547 0x11180
539 0x10D80 549 0x11280
540 0x10E00 551 0x11380
541 0x10E80 553 0x11480
542 0x10F00 555 0x11580
543 0x10F80 557 0x11680
544 0x11000 559 0x11780
545 0x11080 561 0x11880
546 0x11100 594 0x12900
547 0x11180 596 0x12A00
548 0x11200 572 0x11E00
549 0x11280 574 0x11F00
550 0x11300 576 0x12000
551 0x11380 578 0x12100
552 0x11400 580 0x12200
553 0x11480 582 0x12300
554 0x11500 584 0x12400
555 0x11580 586 0x12500
556 0x11600 588 0x12600
557 0x11680 590 0x12700
558 0x11700 592 0x12800
559 0x11780 595 0x12980
560 0x11800 597 0x12A80
561 0x11880 573 0x11E80
562 0x11900 575 0x11F80
563 0x11980 577 0x12080
564 0x11A00 579 0x12180
565 0x11A80 581 0x12280
566 0x11B00 583 0x12380
567 0x11B80 585 0x12480
568 0x11C00 587 0x12580
569 0x11C80 589 0x12680
570 0x11D00 591 0x12780
571 0x11D80 593 0x12880
572 0x11E00 600 0x12C00
573 0x11E80 602 0x12D00
574 0x11F00 604 0x12E00
575 0x11F80 606 0x12F00
576 0x12000 608 0x13000
577 0x12080 610 0x13100
578 0x12100 612 0x13200
579 0x12180 614 0x13300
580 0x12200 616 0x13400
581 0x12280 618 0x13500
582 0x12300 620 0x13600
583 0x12380 622 0x13700
584 0x12400 598 0x12B00
585 0x12480 601 0x12C80
586 0x12500 603 0x12D80
587 0x12580 605 0x12E80
588 0x12600 607 0x12F80
589 0x12680 609 0x13080
590 0x12700 611 0x13180
591 0x12780 613 0x13280
592 0x12800 615 0x13380
593 0x12880 617 0x13480
594 0x12900 619 0x13580
595 0x12980 621 0x13680
596 0x12A00 623 0x13780
597 0x12A80 599 0x12B80
598 0x12B00 632 0x13C00
599 0x12B80 634 0x13D00
600 0x12C00 636 0x13E00
601 0x12C80 638 0x13F00
602 0x12D00 640 0x14000
603 0x12D80 642 0x14100
604 0x12E00 644 0x14200
605 0x12E80 646 0x14300
606 0x12F00 648 0x14400
607 0x12F80 624 0x13800
608 0x13000 626 0x13900
609 0x13080 628 0x13A00
610 0x13100 630 0x13B00
611 0x13180 633 0x13C80
612 0x13200 635 0x13D80
613 0x13280 637 0x13E80
614 0x13300 639 0x13F80
615 0x13380 641 0x14080
616 0x13400 643 0x14180
617 0x13480 645 0x14280
618 0x13500 647 0x14380
619 0x13580 649 0x14480
620 0x13600 625 0x13880
621 0x13680 627 0x13980
622 0x13700 629 0x13A80
623 0x13780 631 0x13B80
624 0x13800 664 0x14C00
625 0x13880 666 0x14D00
626 0x13900 668 0x14E00
627 0x13980 670 0x14F00
628 0x13A00 672 0x15000
629 0x13A80 674 0x15100
630 0x13B00 650 0x14500
631 0x13B80 652 0x14600
632 0x13C00 654 0x14700
633 0x13C80 656 0x14800
634 0x13D00 658 0x14900
635 0x13D80 660 0x14A00
636 0x13E00 662 0x14B00
637 0x13E80 665 0x14C80
638 0x13F00 667 0x14D80
639 0x13F80 669 0x14E80
640 0x14000 671 0x14F80
641 0x14080 673 0x15080
642 0x14100 675 0x15180
643 0x14180 651 0x14580
644 0x14200 653 0x14680
645 0x14280 655 0x14780
646 0x14300 657 0x14880
647 0x14380 659 0x14980
648 0x14400 661 0x14A80
649 0x14480 663 0x14B80
650 0x14500 696 0x15C00
651 0x14580 698 0x15D00
652 0x14600 700 0x15E00
653 0x14680 676 0x15200
654 0x14700 678 0x15300
655 0x14780 680 0x15400
656 0x14800 682 0x15500
657 0x14880 684 0x15600
658 0x14900 686 0x15700
659 0x14980 688 0x15800
660 0x14A00 690 0x15900
661 0x14A80 692 0x15A00
662 0x14B00 694 0x15B00
663 0x14B80 697 0x15C80
664 0x14C00 699 0x15D80
665 0x14C80 701 0x15E80
666 0x14D00 677 0x15280
667 0x14D80 679 0x15380
668 0x14E00 681 0x15480
669 0x14E80 683 0x15580
670 0x14F00 685 0x15680
671 0x14F80 687 0x15780
672 0x15000 689 0x15880
673 0x15080 691 0x15980
674 0x15100 693 0x15A80
675 0x15180 695 0x15B80
676 0x15200 702 0x15F00
677 0x15280 704 0x16000
678 0x15300 706 0x16100
679 0x15380 708 0x16200
680 0x15400 710 0x16300
681 0x15480 712 0x16400
682 0x15500 714 0x16500
683 0x15580 716 0x16600
684 0x15600 718 0x16700
685 0x15680 720 0x16800
686 0x15700 722 0x16900
687 0x15780 724 0x16A00
688 0x15800 726 0x16B00
689 0x15880 703 0x15F80
690 0x15900 705 0x16080
691 0x15980 707 0x16180
692 0x15A00 709 0x16280
693 0x15A80 711 0x16380
694 0x15B00 713 0x16480
695 0x15B80 715 0x16580
696 0x15C00 717 0x16680
697 0x15C80 719 0x16780
698 0x15D00 721 0x16880
699 0x15D80 723 0x16980
700 0x15E00 725 0x16A80
701 0x15E80 727 0x16B80
702 0x15F00 734 0x16F00
703 0x15F80 736 0x17000
704 0x16000 738 0x17100
705 0x16080 740 0x17200
706 0x16100 742 0x17300
707 0x16180 744 0x17400
708 0x16200 746 0x17500
709 0x16280 748 0x17600
710 0x16300 750 0x17700
711 0x16380 752 0x17800
712 0x16400 728 0x16C00
713 0x16480 730 0x16D00
714 0x16500 732 0x16E00
715 0x16580 735 0x16F80
716 0x16600 737 0x17080
717 0x16680 739 0x17180
718 0x16700 741 0x17280
719 0x16780 743 0x17380
720 0x16800 745 0x17480
721 0x16880 747 0x17580
722 0x16900 749 0x17680
723 0x16980 751 0x17780
724 0x16A00 753 0x17880
725 0x16A80 729 0x16C80
726 0x16B00 731 0x16D80
727 0x16B80 733 0x16E80
728 0x16C00 766 0x17F00
729 0x16C80 768 0x18000
730 0x16D00 770 0x18100
731 0x16D80 772 0x18200
732 0x16E00 774 0x18300
733 0x16E80 776 0x18400
734 0x16F00 778 0x18500
735 0x16F80 754 0x17900
736 0x17000 756 0x17A00
737 0x17080 758 0x17B00
738 0x17100 760 0x17C00
739 0x17180 762 0x17D00
740 0x17200 764 0x17E00
741 0x17280 767 0x17F80
742 0x17300 769 0x18080
743 0x17380 771 0x18180
744 0x17400 773 0x18280
745 0x17480 775 0x18380
746 0x17500 777 0x18480
747 0x17580 779 0x18580
748 0x17600 755 0x17980
749 0x17680 757 0x17A80
750 0x17700 759 0x17B80
751 0x17780 761 0x17C80
752 0x17800 763 0x17D80
753 0x17880 765 0x17E80
754 0x17900 798 0x18F00
755 0x17980 800 0x19000
756 0x17A00 802 0x19100
757 0x17A80 804 0x19200
758 0x17B00 780 0x18600
759 0x17B80 782 0x18700
760 0x17C00 784 0x18800
761 0x17C80 786 0x18900
762 0x17D00 788 0x18A00
763 0x17D80 790 0x18B00
764 0x17E00 792 0x18C00
765 0x17E80 794 0x18D00
766 0x17F00 796 0x18E00
767 0x17F80 799 0x18F80
768 0x18000 801 0x19080
769 0x18080 803 0x19180
770 0x18100 805 0x19280
771 0x18180 781 0x18680
772 0x18200 783 0x18780
773 0x18280 785 0x18880
774 0x18300 787 0x18980
775 0x18380 789 0x18A80
776 0x18400 791 0x18B80
777 0x18480 793 0x18C80
778 0x18500 795 0x18D80
779 0x18580 797 0x18E80
780 0x18600 830 0x19F00
781 0x18680 806 0x19300
782 0x18700 808 0x19400
783 0x18780 810 0x19500
784 0x18800 812 0x19600
785 0x18880 814 0x19700
786 0x18900 816 0x19800
787 0x18980 818 0x19900
788 0x18A00 820 0x19A00
789 0x18A80 822 0x19B00
790 0x18B00 824 0x19C00
791 0x18B80 826 0x19D00
792 0x18C00 828 0x19E00
793 0x18C80 831 0x19F80
794 0x18D00 807 0x19380
795 0x18D80 809 0x19480
796 0x18E00 811 0x19580
797 0x18E80 813 0x19680
798 0x18F00 815 0x19780
799 0x18F80 817 0x19880
800 0x19000 819 0x19980
801 0x19080 821 0x19A80
802 0x19100 823 0x19B80
803 0x19180 825 0x19C80
804 0x19200 827 0x19D80
805 0x19280 829 0x19E80
806 0x19300 836 0x1A200
807 0x19380 838 0x1A300
808 0x19400 840 0x1A400
809 0x19480 842 0x1A500
810 0x19500 844 0x1A600
811 0x19580 846 0x1A700
812 0x19600 848 0x1A800
813 0x19680 850 0x1A900
814 0x19700 852 0x1AA00
815 0x19780 854 0x1AB00
816 0x19800 856 0x1AC00
817 0x19880 832 0x1A000
818 0x19900 834 0x1A100
819 0x19980 837 0x1A280
820 0x19A00 839 0x1A380
821 0x19A80 841 0x1A480
822 0x19B00 843 0x1A580
823 0x19B80 845 0x1A680
824 0x19C00 847 0x1A780
825 0x19C80 849 0x1A880
826 0x19D00 851 0x1A980
827 0x19D80 853 0x1AA80
828 0x19E00 855 0x1AB80
829 0x19E80 857 0x1AC80
830 0x19F00 833 0x1A080
831 0x19F80 835 0x1A180
832 0x1A000 868 0x1B200
833 0x1A080 870 0x1B300
834 0x1A100 872 0x1B400
835 0x1A180 874 0x1B500
836 0x1A200 876 0x1B600
837 0x1A280 878 0x1B700
838 0x1A300 880 0x1B800
839 0x1A380 882 0x1B900
840 0x1A400 858 0x1AD00
841 0x1A480 860 0x1AE00
842 0x1A500 862 0x1AF00
843 0x1A580 864 0x1B000
844 0x1A600 866 0x1B100
845 0x1A680 869 0x1B280
846 0x1A700 871 0x1B380
847 0x1A780 873 0x1B480
848 0x1A800 875 0x1B580
849 0x1A880 877 0x1B680
850 0x1A900 879 0x1B780
851 0x1A980 881 0x1B880
852 0x1AA00 883 0x1B980
853 0x1AA80 859 0x1AD80
854 0x1AB00 861 0x1AE80
855 0x1AB80 863 0x1AF80
856 0x1AC00 865 0x1B080
857 0x1AC80 867 0x1B180
858 0x1AD00 900 0x1C200
859 0x1AD80 902 0x1C300
860 0x1AE00 904 0x1C400
861 0x1AE80 906 0x1C500
862 0x1AF00 908 0x1C600
863 0x1AF80 884 0x1BA00
864 0x1B000 886 0x1BB00
865 0x1B080 888 0x1BC00
866 0x1B100 890 0x1BD00
867 0x1B180 892 0x1BE00
868 0x1B200 894 0x1BF00
869 0x1B280 896 0x1C000
870 0x1B300 898 0x1C100
871 0x1B380 901 0x1C280
872 0x1B400 903 0x1C380
873 0x1B480 905 0x1C480
874 0x1B500 907 0x1C580
875 0x1B580 909 0x1C680
876 0x1B600 885 0x1BA80
877 0x1B680 887 0x1BB80
878 0x1B700 889 0x1BC80
879 0x1B780 891 0x1BD80
880 0x1B800 893 0x1BE80
881 0x1B880 895 0x1BF80
882 0x1B900 897 0x1C080
883 0x1B980 899 0x1C180
884 0x1BA00 932 0x1D200
885 0x1BA80 934 0x1D300
886 0x1BB00 910 0x1C700
887 0x1BB80 912 0x1C800
888 0x1BC00 914 0x1C900
889 0x1BC80 916 0x1CA00
890 0x1BD00 918 0x1CB00
891 0x1BD80 920 0x1CC00
892 0x1BE00 922 0x1CD00
893 0x1BE80 924 0x1CE00
894 0x1BF00 926 0x1CF00
895 0x1BF80 928 0x1D000
896 0x1C000 930 0x1D100
897 0x1C080 933 0x1D280
898 0x1C100 935 0x1D380
899 0x1C180 911 0x1C780
900 0x1C200 913 0x1C880
901 0x1C280 915 0x1C980
902 0x1C300 917 0x1CA80
903 0x1C380 919 0x1CB80
904 0x1C400 921 0x1CC80
905 0x1C480 923 0x1CD80
906 0x1C500 925 0x1CE80
907 0x1C580 927 0x1CF80
908 0x1C600 929 0x1D080
909 0x1C680 931 0x1D180
910 0x1C700 938 0x1D500
911 0x1C780 940 0x1D600
912 0x1C800 942 0x1D700
913 0x1C880 944 0x1D800
914 0x1C900 946 0x1D900
915 0x1C980 948 0x1DA00
916 0x1CA00 950 0x1DB00
917 0x1CA80 952 0x1DC00
918 0x1CB00 954 0x1DD00
919 0x1CB80 956 0x1DE00
920 0x1CC00 958 0x1DF00
921 0x1CC80 960 0x1E000
922 0x1CD00 936 0x1D400
923 0x1CD80 939 0x1D580
924 0x1CE00 941 0x1D680
925 0x1CE80 943 0x1D780
926 0x1CF00 945 0x1D880
927 0x1CF80 947 0x1D980
928 0x1D000 949 0x1DA80
929 0x1D080 951 0x1DB80
930 0x1D100 953 0x1DC80
931 0x1D180 955 0x1DD80
932 0x1D200 957 0x1DE80
933 0x1D280 959 0x1DF80
934 0x1D300 961 0x1E080
935 0x1D380 937 0x1D480
936 0x1D400 970 0x1E500
937 0x1D480 972 0x1E600
938 0x1D500 974 0x1E700
939 0x1D580 976 0x1E800
940 0x1D600 978 0x1E900
941 0x1D680 980 0x1EA00
942 0x1D700 982 0x1EB00
943 0x1D780 984 0x1EC00
944 0x1D800 986 0x1ED00
945 0x1D880 962 0x1E100
946 0x1D900 964 0x1E200
947 0x1D980 966 0x1E300
948 0x1DA00 968 0x1E400
949 0x1DA80 971 0x1E580
950 0x1DB00 973 0x1E680
951 0x1DB80 975 0x1E780
952 0x1DC00 977 0x1E880
953 0x1DC80 979 0x1E980
954 0x1DD00 981 0x1EA80
955 0x1DD80 983 0x1EB80
956 0x1DE00 985 0x1EC80
957 0x1DE80 987 0x1ED80
958 0x1DF00 963 0x1E180
959 0x1DF80 965 0x1E280
960 0x1E000 967 0x1E380
961 0x1E080 969 0x1E480
962 0x1E100 1002 0x1F500
963 0x1E180 1004 0x1F600
964 0x1E200 1006 0x1F700
965 0x1E280 1008 0x1F800
966 0x1E300 1010 0x1F900
967 0x1E380 1012 0x1FA00
968 0x1E400 988 0x1EE00
969 0x1E480 990 0x1EF00
970 0x1E500 992 0x1F000
971 0x1E580 994 0x1F100
972 0x1E600 996 0x1F200
973 0x1E680 998 0x1F300
974 0x1E700 1000 0x1F400
975 0x1E780 1003 0x1F580
976 0x1E800 1005 0x1F680
977 0x1E880 1007 0x1F780
978 0x1E900 1009 0x1F880
979 0x1E980 1011 0x1F980
980 0x1EA00 1013 0x1FA80
981 0x1EA80 989 0x1EE80
982 0x1EB00 991 0x1EF80
983 0x1EB80 993 0x1F080
984 0x1EC00 995 0x1F180
985 0x1EC80 997 0x1F280
986 0x1ED00 999 0x1F380
987 0x1ED80 1001 0x1F480
988 0x1EE00 1034 0x20500
989 0x1EE80 1036 0x20600
990 0x1EF00 1038 0x20700
991 0x1EF80 1014 0x1FB00
992 0x1F000 1016 0x1FC00
993 0x1F080 1018 0x1FD00
994 0x1F100 1020 0x1FE00
995 0x1F180 1022 0x1FF00
996 0x1F200 1024 0x20000
997 0x1F280 1026 0x20100
998 0x1F300 1028 0x20200
999 0x1F380 1030 0x20300
1000 0x1F400 1032 0x20400
1001 0x1F480 1035 0x20580
1002 0x1F500 1037 0x20680
1003 0x1F580 1039 0x20780
1004 0x1F600 1015 0x1FB80
1005 0x1F680 1017 0x1FC80
1006 0x1F700 1019 0x1FD80
1007 0x1F780 1021 0x1FE80
1008 0x1F800 1023 0x1FF80
1009 0x1F880 1025 0x20080
1010 0x1F900 1027 0x20180
1011 0x1F980 1029 0x20280
1012 0x1FA00 1031 0x20380
1013 0x1FA80 1033 0x20480
1014 0x1FB00 1040 0x20800
1015 0x1FB80 1042 0x20900
1016 0x1FC00 1044 0x20A00
1017 0x1FC80 1046 0x20B00
1018 0x1FD00 1048 0x20C00
1019 0x1FD80 1050 0x20D00
1020 0x1FE00 1052 0x20E00
1021 0x1FE80 1054 0x20F00
1022 0x1FF00 1056 0x21000
1023 0x1FF80 1058 0x21100
1024 0x20000 1060 0x21200
1025 0x20080 1062 0x21300
1026 0x20100 1064 0x21400
1027 0x20180 1041 0x20880
1028 0x20200 1043 0x20980
1029 0x20280 1045 0x20A80
1030 0x20300 1047 0x20B80
1031 0x20380 1049 0x20C80
1032 0x20400 1051 0x20D80
1033 0x20480 1053 0x20E80
1034 0x20500 1055 0x20F80
1035 0x20580 1057 0x21080
1036 0x20600 1059 0x21180
1037 0x20680 1061 0x21280
1038 0x20700 1063 0x21380
1039 0x20780 1065 0x21480
1040 0x20800 1072 0x21800
1041 0x20880 1074 0x21900
1042 0x20900 1076 0x21A00
1043 0x20980 1078 0x21B00
1044 0x20A00 1080 0x21C00
1045 0x20A80 1082 0x21D00
1046 0x20B00 1084 0x21E00
1047 0x20B80 1086 0x21F00
1048 0x20C00 1088 0x22000
1049 0x20C80 1090 0x22100
1050 0x20D00 1066 0x21500
1051 0x20D80 1068 0x21600
1052 0x20E00 1070 0x21700
1053 0x20E80 1073 0x21880
1054 0x20F00 1075 0x21980
1055 0x20F80 1077 0x21A80
1056 0x21000 1079 0x21B80
1057 0x21080 1081 0x21C80
1058 0x21100 1083 0x21D80
1059 0x21180 1085 0x21E80
1060 0x21200 1087 0x21F80
1061 0x21280 1089 0x22080
1062 0x21300 1091 0x22180
1063 0x21380 1067 0x21580
1064 0x21400 1069 0x21680
1065 0x21480 1071 0x21780
1066 0x21500 1104 0x22800
1067 0x21580 1106 0x22900
1068 0x21600 1108 0x22A00
1069 0x21680 1110 0x22B00
1070 0x21700 1112 0x22C00
1071 0x21780 1114 0x22D00
1072 0x21800 1116 0x22E00
1073 0x21880 1092 0x22200
1074 0x21900 1094 0x22300
1075 0x21980 1096 0x22400
1076 0x21A00 1098 0x22500
1077 0x21A80 1100 0x22600
1078 0x21B00 1102 0x22700
1079 0x21B80 1105 0x22880
1080 0x21C00 1107 0x22980
1081 0x21C80 1109 0x22A80
1082 0x21D00 1111 0x22B80
1083 0x21D80 1113 0x22C80
1084 0x21E00 1115 0x22D80
1085 0x21E80 1117 0x22E80
1086 0x21F00 1093 0x22280
1087 0x21F80 1095 0x22380
1088 0x22000 1097 0x22480
1089 0x22080 1099 0x22580
1090 0x22100 1101 0x22680
1091 0x22180 1103 0x22780
1092 0x22200 1136 0x23800
1093 0x22280 1138 0x23900
1094 0x22300 1140 0x23A00
1095 0x22380 1142 0x23B00
1096 0x22400 1118 0x22F00
1097 0x22480 1120 0x23000
1098 0x22500 1122 0x23100
1099 0x22580 1124 0x23200
1100 0x22600 1126 0x23300
1101 0x22680 1128 0x23400
1102 0x22700 1130 0x23500
1103 0x22780 1132 0x23600
1104 0x22800 1134 0x23700
1105 0x22880 1137 0x23880
1106 0x22900 1139 0x23980
1107 0x22980 1141 0x23A80
1108 0x22A00 1143 0x23B80
1109 0x22A80 1119 0x22F80
1110 0x22B00 1121 0x23080
1111 0x22B80 1123 0x23180
1112 0x22C00 1125 0x23280
1113 0x22C80 1127 0x23380
1114 0x22D00 1129 0x23480
1115 0x22D80 1131 0x23580
1116 0x22E00 1133 0x23680
1117 0x22E80 1135 0x23780
1118 0x22F00 1168 0x24800
1119 0x22F80 1144 0x23C00
1120 0x23000 1146 0x23D00
1121 0x23080 1148 0x23E00
1122 0x23100 1150 0x23F00
1123 0x23180 1152 0x24000
1124 0x23200 1154 0x24100
1125 0x23280 1156 0x24200
1126 0x23300 1158 0x24300
1127 0x23380 1160 0x24400
1128 0x23400 1162 0x24500
1129 0x23480 1164 0x24600
1130 0x23500 1166 0x24700
1131 0x23580 1169 0x24880
1132 0x23600 1145 0x23C80
1133 0x23680 1147 0x23D80
1134 0x23700 1149 0x23E80
1135 0x23780 1151 0x23F80
1136 0x23800 1153 0x24080
1137 0x23880 1155 0x24180
1138 0x23900 1157 0x24280
1139 0x23980 1159 0x24380
1140 0x23A00 1161 0x24480
1141 0x23A80 1163 0x24580
1142 0x23B00 1165 0x24680
1143 0x23B80 1167 0x24780
1144 0x23C00 1174 0x24B00
1145 0x23C80 1176 0x24C00
1146 0x23D00 1178 0x24D00
1147 0x23D80 1180 0x24E00
1148 0x23E00 1182 0x24F00
1149 0x23E80 1184 0x25000
1150 0x23F00 1186 0x25100
1151 0x23F80 1188 0x25200
1152 0x24000 1190 0x25300
1153 0x24080 1192 0x25400
1154 0x24100 1194 0x25500
1155 0x24180 1170 0x24900
1156 0x24200 1172 0x24A00
1157 0x24280 1175 0x24B80
1158 0x24300 1177 0x24C80
1159 0x24380 1179 0x24D80
1160 0x24400 1181 0x24E80
1161 0x24480 1183 0x24F80
1162 0x24500 1185 0x25080
1163 0x24580 1187 0x25180
1164 0x24600 1189 0x25280
1165 0x24680 1191 0x25380
1166 0x24700 1193 0x25480
1167 0x24780 1195 0x25580
1168 0x24800 1171 0x24980
1169 0x24880 1173 0x24A80
1170 0x24900 1206 0x25B00
1171 0x24980 1208 0x25C00
1172 0x24A00 1210 0x25D00
1173 0x24A80 1212 0x25E00
1174 0x24B00 1214 0x25F00
1175 0x24B80 1216 0x26000
1176 0x24C00 1218 0x26100
1177 0x24C80 1220 0x26200
1178 0x24D00 1196 0x25600
1179 0x24D80 1198 0x25700
1180 0x24E00 1200 0x25800
1181 0x24E80 1202 0x25900
1182 0x24F00 1204 0x25A00
1183 0x24F80 1207 0x25B80
1184 0x25000 1209 0x25C80
1185 0x25080 1211 0x25D80
1186 0x25100 1213 0x25E80
1187 0x25180 1215 0x25F80
1188 0x25200 1217 0x26080
1189 0x25280 1219 0x26180
1190 0x25300 1221 0x26280
1191 0x25380 1197 0x25680
1192 0x25400 1199 0x25780
1193 0x25480 1201 0x25880
1194 0x25500 1203 0x25980
1195 0x25580 1205 0x25A80
1196 0x25600 1238 0x26B00
1197 0x25680 1240 0x26C00
1198 0x25700 1242 0x26D00
1199 0x25780 1244 0x26E00
1200 0x25800 1246 0x26F00
1201 0x25880 1222 0x26300
1202 0x25900 1224 0x26400
1203 0x25980 1226 0x26500
1204 0x25A00 1228 0x26600
1205 0x25A80 1230 0x26700
1206 0x25B00 1232 0x26800
1207 0x25B80 1234 0x26900
1208 0x25C00 1236 0x26A00
1209 0x25C80 1239 0x26B80
1210 0x25D00 1241 0x26C80
1211 0x25D80 1243 0x26D80
1212 0x25E00 1245 0x26E80
1213 0x25E80 1247 0x26F80
1214 0x25F00 1223 0x26380
1215 0x25F80 1225 0x26480
1216 0x26000 1227 0x26580
1217 0x26080 1229 0x26680
1218 0x26100 1231 0x26780
1219 0x26180 1233 0x26880
1220 0x26200 1235 0x26980
1221 0x26280 1237 0x26A80
1222 0x26300 1270 0x27B00
1223 0x26380 1272 0x27C00
1224 0x26400 1248 0x27000
1225 0x26480 1250 0x27100
1226 0x26500 1252 0x27200
1227 0x26580 1254 0x27300
1228 0x26600 1256 0x27400
1229 0x26680 1258 0x27500
1230 0x26700 1260 0x27600
1231 0x26780 1262 0x27700
1232 0x26800 1264 0x27800
1233 0x26880 1266 0x27900
1234 0x26900 1268 0x27A00
1235 0x26980 1271 0x27B80
1236 0x26A00 1273 0x27C80
1237 0x26A80 1249 0x27080
1238 0x26B00 1251 0x27180
1239 0x26B80 1253 0x27280
1240 0x26C00 1255 0x27380
1241 0x26C80 1257 0x27480
1242 0x26D00 1259 0x27580
1243 0x26D80 1261 0x27680
1244 0x26E00 1263 0x27780
1245 0x26E80 1265 0x27880
1246 0x26F00 1267 0x27980
1247 0x26F80 1269 0x27A80
1248 0x27000 1276 0x27E00
1249 0x27080 1278 0x27F00
1250 0x27100 1280 0x28000
1251 0x27180 1282 0x28100
1252 0x27200 1284 0x28200
1253 0x27280 1286 0x28300
1254 0x27300 1288 0x28400
1255 0x27380 1290 0x28500
1256 0x27400 1292 0x28600
1257 0x27480 1294 0x28700
1258 0x27500 1296 0x28800
1259 0x27580 1298 0x28900
1260 0x27600 1274 0x27D00
1261 0x27680 1277 0x27E80
1262 0x27700 1279 0x27F80
1263 0x27780 1281 0x28080
1264 0x27800 1283 0x28180
1265 0x27880 1285 0x28280
1266 0x27900 1287 0x28380
1267 0x27980 1289 0x28480
1268 0x27A00 1291 0x28580
1269 0x27A80 1293 0x28680
1270 0x27B00 1295 0x28780
1271 0x27B80 1297 0x28880
1272 0x27C00 1299 0x28980
1273 0x27C80 1275 0x27D80
1274 0x27D00 1308 0x28E00
1275 0x27D80 1310 0x28F00
1276 0x27E00 1312 0x29000
1277 0x27E80 1314 0x29100
1278 0x27F00 1316 0x29200
1279 0x27F80 1318 0x29300
1280 0x28000 1320 0x29400
1281 0x28080 1322 0x29500
1282 0x28100 1324 0x29600
1283 0x28180 1300 0x28A00
1284 0x28200 1302 0x28B00
1285 0x28280 1304 0x28C00
1286 0x28300 1306 0x28D00
1287 0x28380 1309 0x28E80
1288 0x28400 1311 0x28F80
1289 0x28480 1313 0x29080
1290 0x28500 1315 0x29180
1291 0x28580 1317 0x29280
1292 0x28600 1319 0x29380
1293 0x28680 1321 0x29480
1294 0x28700 1323 0x29580
1295 0x28780 1325 0x29680
1296 0x28800 1301 0x28A80
1297 0x28880 1303 0x28B80
1298 0x28900 1305 0x28C80
1299 0x28980 1307 0x28D80
1300 0x28A00 1340 0x29E00
1301 0x28A80 1342 0x29F00
1302 0x28B00 1344 0x2A000
1303 0x28B80 1346 0x2A100
1304 0x28C00 1348 0x2A200
1305 0x28C80 1350 0x2A300
1306 0x28D00 1326 0x29700
1307 0x28D80 1328 0x29800
1308 0x28E00 1330 0x29900
1309 0x28E80 1332 0x29A00
1310 0x28F00 1334 0x29B00
1311 0x28F80 1336 0x29C00
1312 0x29000 1338 0x29D00
1313 0x29080 1341 0x29E80
1314 0x29100 1343 0x29F80
1315 0x29180 1345 0x2A080
1316 0x29200 1347 0x2A180
1317 0x29280 1349 0x2A280
1318 0x29300 1351 0x2A380
1319 0x29380 1327 0x29780
1320 0x29400 1329 0x29880
1321 0x29480 1331 0x29980
1322 0x29500 1333 0x29A80
1323 0x29580 1335 0x29B80
1324 0x29600 1337 0x29C80
1325 0x29680 1339 0x29D80
1326 0x29700 1372 0x2AE00
1327 0x29780 1374 0x2AF00
1328 0x29800 1376 0x2B000
1329 0x29880 1352 0x2A400
1330 0x29900 1354 0x2A500
1331 0x29980 1356 0x2A600
1332 0x29A00 1358 0x2A700
1333 0x29A80 1360 0x2A800
1334 0x29B00 1362 0x2A900
1335 0x29B80 1364 0x2AA00
1336 0x29C00 1366 0x2AB00
1337 0x29C80 1368 0x2AC00
1338 0x29D00 1370 0x2AD00
1339 0x29D80 1373 0x2AE80
1340 0x29E00 1375 0x2AF80
1341 0x29E80 1377 0x2B080
1342 0x29F00 1353 0x2A480
1343 0x29F80 1355 0x2A580
1344 0x2A000 1357 0x2A680
1345 0x2A080 1359 0x2A780
1346 0x2A100 1361 0x2A880
1347 0x2A180 1363 0x2A980
1348 0x2A200 1365 0x2AA80
1349 0x2A280 1367 0x2AB80
1350 0x2A300 1369 0x2AC80
1351 0x2A380 1371 0x2AD80
1352 0x2A400 1378 0x2B100
1353 0x2A480 1380 0x2B200
1354 0x2A500 1382 0x2B300
1355 0x2A580 1384 0x2B400
1356 0x2A600 1386 0x2B500
1357 0x2A680 1388 0x2B600
1358 0x2A700 1390 0x2B700
1359 0x2A780 1392 0x2B800
1360 0x2A800 1394 0x2B900
1361 0x2A880 1396 0x2BA00
1362 0x2A900 1398 0x2BB00
1363 0x2A980 1400 0x2BC00
1364 0x2AA00 1402 0x2BD00
1365 0x2AA80 1379 0x2B180
1366 0x2AB00 1381 0x2B280
1367 0x2AB80 1383 0x2B380
1368 0x2AC00 1385 0x2B480
1369 0x2AC80 1387 0x2B580
1370 0x2AD00 1389 0x2B680
1371 0x2AD80 1391 0x2B780
1372 0x2AE00 1393 0x2B880
1373 0x2AE80 1395 0x2B980
1374 0x2AF00 1397 0x2BA80
1375 0x2AF80 1399 0x2BB80
1376 0x2B000 1401 0x2BC80
1377 0x2B080 1403 0x2BD80
1378 0x2B100 1410 0x2C100
1379 0x2B180 1412 0x2C200
1380 0x2B200 1414 0x2C300
1381 0x2B280 1416 0x2C400
1382 0x2B300 1418 0x2C500
1383 0x2B380 1420 0x2C600
1384 0x2B400 1422 0x2C700
1385 0x2B480 1424 0x2C800
1386 0x2B500 1426 0x2C900
1387 0x2B580 1428 0x2CA00
1388 0x2B600 1404 0x2BE00
1389 0x2B680 1406 0x2BF00
1390 0x2B700 1408 0x2C000
1391 0x2B780 1411 0x2C180
1392 0x2B800 1413 0x2C280
1393 0x2B880 1415 0x2C380
1394 0x2B900 1417 0x2C480
1395 0x2B980 1419 0x2C580
1396 0x2BA00 1421 0x2C680
1397 0x2BA80 1423 0x2C780
1398 0x2BB00 1425 0x2C880
1399 0x2BB80 1427 0x2C980
1400 0x2BC00 1429 0x2CA80
1401 0x2BC80 1405 0x2BE80
1402 0x2BD00 1407 0x2BF80
1403 0x2BD80 1409 0x2C080
1404 0x2BE00 1442 0x2D100
1405 0x2BE80 1444 0x2D200
1406 0x2BF00 1446 0x2D300
1407 0x2BF80 1448 0x2D400
1408 0x2C000 1450 0x2D500
1409 0x2C080 1452 0x2D600
1410 0x2C100 1454 0x2D700
1411 0x2C180 1430 0x2CB00
1412 0x2C200 1432 0x2CC00
1413 0x2C280 1434 0x2CD00
1414 0x2C300 1436 0x2CE00
1415 0x2C380 1438 0x2CF00
1416 0x2C400 1440 0x2D000
1417 0x2C480 1443 0x2D180
1418 0x2C500 1445 0x2D280
1419 0x2C580 1447 0x2D380
1420 0x2C600 1449 0x2D480
1421 0x2C680 1451 0x2D580
1422 0x2C700 1453 0x2D680
1423 0x2C780 1455 0x2D780
1424 0x2C800 1431 0x2CB80
1425 0x2C880 1433 0x2CC80
1426 0x2C900 1435 0x2CD80
1427 0x2C980 1437 0x2CE80
1428 0x2CA00 1439 0x2CF80
1429 0x2CA80 1441 0x2D080
1430 0x2CB00 1474 0x2E100
1431 0x2CB80 1476 0x2E200
1432 0x2CC00 1478 0x2E300
1433 0x2CC80 1480 0x2E400
1434 0x2CD00 1456 0x2D800
1435 0x2CD80 1458 0x2D900
1436 0x2CE00 1460 0x2DA00
1437 0x2CE80 1462 0x2DB00
1438 0x2CF00 1464 0x2DC00
1439 0x2CF80 1466 0x2DD00
1440 0x2D000 1468 0x2DE00
1441 0x2D080 1470 0x2DF00
1442 0x2D100 1472 0x2E000
1443 0x2D180 1475 0x2E180
1444 0x2D200 1477 0x2E280
1445 0x2D280 1479 0x2E380
1446 0x2D300 1481 0x2E480
1447 0x2D380 1457 0x2D880
1448 0x2D400 1459 0x2D980
1449 0x2D480 1461 0x2DA80
1450 0x2D500 1463 0x2DB80
1451 0x2D580 1465 0x2DC80
1452 0x2D600 1467 0x2DD80
1453 0x2D680 1469 0x2DE80
1454 0x2D700 1471 0x2DF80
1455 0x2D780 1473 0x2E080
1456 0x2D800 1506 0x2F100
1457 0x2D880 1482 0x2E500
1458 0x2D900 1484 0x2E600
1459 0x2D980 1486 0x2E700
1460 0x2DA00 1488 0x2E800
1461 0x2DA80 1490 0x2E900
1462 0x2DB00 1492 0x2EA00
1463 0x2DB80 1494 0x2EB00
1464 0x2DC00 1496 0x2EC00
1465 0x2DC80 1498 0x2ED00
1466 0x2DD00 1500 0x2EE00
1467 0x2DD80 1502 0x2EF00
1468 0x2DE00 1504 0x2F000
1469 0x2DE80 1507 0x2F180
1470 0x2DF00 1483 0x2E580
1471 0x2DF80 1485 0x2E680
1472 0x2E000 1487 0x2E780
1473 0x2E080 1489 0x2E880
1474 0x2E100 1491 0x2E980
1475 0x2E180 1493 0x2EA80
1476 0x2E200 1495 0x2EB80
1477 0x2E280 1497 0x2EC80
1478 0x2E300 1499 0x2ED80
1479 0x2E380 1501 0x2EE80
1480 0x2E400 1503 0x2EF80
1481 0x2E480 1505 0x2F080
1482 0x2E500 1512 0x2F400
1483 0x2E580 1514 0x2F500
1484 0x2E600 1516 0x2F600
1485 0x2E680 1518 0x2F700
1486 0x2E700 1520 0x2F800
1487 0x2E780 1522 0x2F900
1488 0x2E800 1524 0x2FA00
1489 0x2E880 1526 0x2FB00
1490 0x2E900 1528 0x2FC00
1491 0x2E980 1530 0x2FD00
1492 0x2EA00 1532 0x2FE00
1493 0x2EA80 1508 0x2F200
1494 0x2EB00 1510 0x2F300
1495 0x2EB80 1513 0x2F480
1496 0x2EC00 1515 0x2F580
1497 0x2EC80 1517 0x2F680
1498 0x2ED00 1519 0x2F780
1499 0x2ED80 1521 0x2F880
1500 0x2EE00 1523 0x2F980
1501 0x2EE80 1525 0x2FA80
1502 0x2EF00 1527 0x2FB80
1503 0x2EF80 1529 0x2FC80
1504 0x2F000 1531 0x2FD80
1505 0x2F080 1533 0x2FE80
1506 0x2F100 1509 0x2F280
1507 0x2F180 1511 0x2F380
1508 0x2F200 1544 0x30400
1509 0x2F280 1546 0x30500
1510 0x2F300 1548 0x30600
1511 0x2F380 1550 0x30700
1512 0x2F400 1552 0x30800
1513 0x2F480 1554 0x30900
1514 0x2F500 1556 0x30A00
1515 0x2F580 1558 0x30B00
1516 0x2F600 1534 0x2FF00
1517 0x2F680 1536 0x30000
1518 0x2F700 1538 0x30100
1519 0x2F780 1540 0x30200
1520 0x2F800 1542 0x30300
1521 0x2F880 1545 0x30480
1522 0x2F900 1547 0x30580
1523 0x2F980 1549 0x30680
1524 0x2FA00 1551 0x30780
1525 0x2FA80 1553 0x30880
1526 0x2FB00 1555 0x30980
1527 0x2FB80 1557 0x30A80
1528 0x2FC00 1559 0x30B80
1529 0x2FC80 1535 0x2FF80
1530 0x2FD00 1537 0x30080
1531 0x2FD80 1539 0x30180
1532 0x2FE00 1541 0x30280
1533 0x2FE80 1543 0x30380
1534 0x2FF00 1576 0x31400
1535 0x2FF80 1578 0x31500
1536 0x30000 1580 0x31600
1537 0x30080 1582 0x31700
1538 0x30100 1584 0x31800
1539 0x30180 1560 0x30C00
1540 0x30200 1562 0x30D00
1541 0x30280 1564 0x30E00
1542 0x30300 1566 0x30F00
1543 0x30380 1568 0x31000
1544 0x30400 1570 0x31100
1545 0x30480 1572 0x31200
1546 0x30500 1574 0x31300
1547 0x30580 1577 0x31480
1548 0x30600 1579 0x31580
1549 0x30680 1581 0x31680
1550 0x30700 1583 0x31780
1551 0x30780 1585 0x31880
1552 0x30800 1561 0x30C80
1553 0x30880 1563 0x30D80
1554 0x30900 1565 0x30E80
1555 0x30980 1567 0x30F80
1556 0x30A00 1569 0x31080
1557 0x30A80 1571 0x31180
1558 0x30B00 1573 0x31280
1559 0x30B80 1575 0x31380
1560 0x30C00 1608 0x32400
1561 0x30C80 1610 0x32500
1562 0x30D00 1586 0x31900
1563 0x30D80 1588 0x31A00
1564 0x30E00 1590 0x31B00
1565 0x30E80 1592 0x31C00
1566 0x30F00 1594 0x31D00
1567 0x30F80 1596 0x31E00
1568 0x31000 1598 0x31F00
1569 0x31080 1600 0x32000
1570 0x31100 1602 0x32100
1571 0x31180 1604 0x32200
1572 0x31200 1606 0x32300
1573 0x31280 1609 0x32480
1574 0x31300 1611 0x32580
1575 0x31380 1587 0x31980
1576 0x31400 1589 0x31A80
1577 0x31480 1591 0x31B80
1578 0x31500 1593 0x31C80
1579 0x31580 1595 0x31D80
1580 0x31600 1597 0x31E80
1581 0x31680 1599 0x31F80
1582 0x31700 1601 0x32080
1583 0x31780 1603 0x32180
1584 0x31800 1605 0x32280
1585 0x31880 1607 0x32380
1586 0x31900 1614 0x32700
1587 0x31980 1616 0x32800
1588 0x31A00 1618 0x32900
1589 0x31A80 1620 0x32A00
1590 0x31B00 1622 0x32B00
1591 0x31B80 1624 0x32C00
1592 0x31C00 1626 0x32D00
1593 0x31C80 1628 0x32E00
1594 0x31D00 1630 0x32F00
1595 0x31D80 1632 0x33000
1596 0x31E00 1634 0x33100
1597 0x31E80 1636 0x33200
1598 0x31F00 1612 0x32600
1599 0x31F80 1615 0x32780
1600 0x32000 1617 0x32880
1601 0x32080 1619 0x32980
1602 0x32100 1621 0x32A80
1603 0x32180 1623 0x32B80
1604 0x32200 1625 0x32C80
1605 0x32280 1627 0x32D80
1606 0x32300 1629 0x32E80
1607 0x32380 1631 0x32F80
1608 0x32400 1633 0x33080
1609 0x32480 1635 0x33180
1610 0x32500 1637 0x33280
1611 0x32580 1613 0x32680
1612 0x32600 1646 0x33700
1613 0x32680 1648 0x33800
1614 0x32700 1650 0x33900
1615 0x32780 1652 0x33A00
1616 0x32800 1654 0x33B00
1617 0x32880 1656 0x33C00
1618 0x32900 1658 0x33D00
1619 0x32980 1660 0x33E00
1620 0x32A00 1662 0x33F00
1621 0x32A80 1638 0x33300
1622 0x32B00 1640 0x33400
1623 0x32B80 1642 0x33500
1624 0x32C00 1644 0x33600
1625 0x32C80 1647 0x33780
1626 0x32D00 1649 0x33880
1627 0x32D80 1651 0x33980
1628 0x32E00 1653 0x33A80
1629 0x32E80 1655 0x33B80
1630 0x32F00 1657 0x33C80
1631 0x32F80 1659 0x33D80
1632 0x33000 1661 0x33E80
1633 0x33080 1663 0x33F80
1634 0x33100 1639 0x33380
1635 0x33180 1641 0x33480
1636 0x33200 1643 0x33580
1637 0x33280 1645 0x33680
1638 0x33300 1678 0x34700
1639 0x33380 1680 0x34800
1640 0x33400 1682 0x34900
1641 0x33480 1684 0x34A00
1642 0x33500 1686 0x34B00
1643 0x33580 1688 0x34C00
1644 0x33600 1664 0x34000
1645 0x33680 1666 0x34100
1646 0x33700 1668 0x34200
1647 0x33780 1670 0x34300
1648 0x33800 1672 0x34400
1649 0x33880 1674 0x34500
1650 0x33900 1676 0x34600
1651 0x33980 1679 0x34780
1652 0x33A00 1681 0x34880
1653 0x33A80 1683 0x34980
1654 0x33B00 1685 0x34A80
1655 0x33B80 1687 0x34B80
1656 0x33C00 1689 0x34C80
1657 0x33C80 1665 0x34080
1658 0x33D00 1667 0x34180
1659 0x33D80 1669 0x34280
1660 0x33E00 1671 0x34380
1661 0x33E80 1673 0x34480
1662 0x33F00 1675 0x34580
1663 0x33F80 1677 0x34680
1664 0x34000 1710 0x35700
1665 0x34080 1712 0x35800
1666 0x34100 1714 0x35900
1667 0x34180 1690 0x34D00
1668 0x34200 1692 0x34E00
1669 0x34280 1694 0x34F00
1670 0x34300 1696 0x35000
1671 0x34380 1698 0x35100
1672 0x34400 1700 0x35200
1673 0x34480 1702 0x35300
1674 0x34500 1704 0x35400
1675 0x34580 1706 0x35500
1676 0x34600 1708 0x35600
1677 0x34680 1711 0x35780
1678 0x34700 1713 0x35880
1679 0x34780 1715 0x35980
1680 0x34800 1691 0x34D80
1681 0x34880 1693 0x34E80
1682 0x34900 1695 0x34F80
1683 0x34980 1697 0x35080
1684 0x34A00 1699 0x35180
1685 0x34A80 1701 0x35280
1686 0x34B00 1703 0x35380
1687 0x34B80 1705 0x35480
1688 0x34C00 1707 0x35580
1689 0x34C80 1709 0x35680
1690 0x34D00 1716 0x35A00
1691 0x34D80 1718 0x35B00
1692 0x34E00 1720 0x35C00
1693 0x34E80 1722 0x35D00
1694 0x34F00 1724 0x35E00
1695 0x34F80 1726 0x35F00
1696 0x35000 1728 0x36000
1697 0x35080 1730 0x36100
1698 0x35100 1732 0x36200
1699 0x35180 1734 0x36300
1700 0x35200 1736 0x36400
1701 0x35280 1738 0x36500
1702 0x35300 1740 0x36600
1703 0x35380 1717 0x35A80
1704 0x35400 1719 0x35B80
1705 0x35480 1721 0x35C80
1706 0x35500 1723 0x35D80
1707 0x35580 1725 0x35E80
1708 0x35600 1727 0x35F80
1709 0x35680 1729 0x36080
1710 0x35700 1731 0x36180
1711 0x35780 1733 0x36280
1712 0x35800 1735 0x36380
1713 0x35880 1737 0x36480
1714 0x35900 1739 0x36580
1715 0x35980 1741 0x36680
1716 0x35A00 1748 0x36A00
1717 0x35A80 1750 0x36B00
1718 0x35B00 1752 0x36C00
1719 0x35B80 1754 0x36D00
1720 0x35C00 1756 0x36E00
1721 0x35C80 1758 0x36F00
1722 0x35D00 1760 0x37000
1723 0x35D80 1762 0x37100
1724 0x35E00 1764 0x37200
1725 0x35E80 1766 0x37300
1726 0x35F00 1742 0x36700
1727 0x35F80 1744 0x36800
1728 0x36000 1746 0x36900
1729 0x36080 1749 0x36A80
1730 0x36100 1751 0x36B80
1731 0x36180 1753 0x36C80
1732 0x36200 1755 0x36D80
1733 0x36280 1757 0x36E80
1734 0x36300 1759 0x36F80
1735 0x36380 1761 0x37080
1736 0x36400 1763 0x37180
1737 0x36480 1765 0x37280
1738 0x36500 1767 0x37380
1739 0x36580 1743 0x36780
1740 0x36600 1745 0x36880
1741 0x36680 1747 0x36980
1742 0x36700 1780 0x37A00
1743 0x36780 1782 0x37B00
1744 0x36800 1784 0x37C00
1745 0x36880 1786 0x37D00
1746 0x36900 1788 0x37E00
1747 0x36980 1790 0x37F00
1748 0x36A00 1792 0x38000
1749 0x36A80 1768 0x37400
1750 0x36B00 1770 0x37500
1751 0x36B80 1772 0x37600
1752 0x36C00 1774 0x37700
1753 0x36C80 1776 0x37800
1754 0x36D00 1778 0x37900
1755 0x36D80 1781 0x37A80
1756 0x36E00 1783 0x37B80
1757 0x36E80 1785 0x37C80
1758 0x36F00 1787 0x37D80
1759 0x36F80 1789 0x37E80
1760 0x37000 1791 0x37F80
1761 0x37080 1793 0x38080
1762 0x37100 1769 0x37480
1763 0x37180 1771 0x37580
1764 0x37200 1773 0x37680
1765 0x37280 1775 0x37780
1766 0x37300 1777 0x37880
1767 0x37380 1779 0x37980
1768 0x37400 1812 0x38A00
1769 0x37480 1814 0x38B00
1770 0x37500 1816 0x38C00
1771 0x37580 1818 0x38D00
1772 0x37600 1794 0x38100
1773 0x37680 1796 0x38200
1774 0x37700 1798 0x38300
1775 0x37780 1800 0x38400
1776 0x37800 1802 0x38500
1777 0x37880 1804 0x38600
1778 0x37900 1806 0x38700
1779 0x37980 1808 0x38800
1780 0x37A00 1810 0x38900
1781 0x37A80 1813 0x38A80
1782 0x37B00 1815 0x38B80
1783 0x37B80 1817 0x38C80
1784 0x37C00 1819 0x38D80
1785 0x37C80 1795 0x38180
1786 0x37D00 1797 0x38280
1787 0x37D80 1799 0x38380
1788 0x37E00 1801 0x38480
1789 0x37E80 1803 0x38580
1790 0x37F00 1805 0x38680
1791 0x37F80 1807 0x38780
1792 0x38000 1809 0x38880
1793 0x38080 1811 0x38980
1794 0x38100 1844 0x39A00
1795 0x38180 1820 0x38E00
1796 0x38200 1822 0x38F00
1797 0x38280 1824 0x39000
1798 0x38300 1826 0x39100
1799 0x38380 1828 0x39200
1800 0x38400 1830 0x39300
1801 0x38480 1832 0x39400
1802 0x38500 1834 0x39500
1803 0x38580 1836 0x39600
1804 0x38600 1838 0x39700
1805 0x38680 1840 0x39800
1806 0x38700 1842 0x39900
1807 0x38780 1845 0x39A80
1808 0x38800 1821 0x38E80
1809 0x38880 1823 0x38F80
1810 0x38900 1825 0x39080
1811 0x38980 1827 0x39180
1812 0x38A00 1829 0x39280
1813 0x38A80 1831 0x39380
1814 0x38B00 1833 0x39480
1815 0x38B80 1835 0x39580
1816 0x38C00 1837 0x39680
1817 0x38C80 1839 0x39780
1818 0x38D00 1841 0x39880
1819 0x38D80 1843 0x39980
1820 0x38E00 1850 0x39D00
1821 0x38E80 1852 0x39E00
1822 0x38F00 1854 0x39F00
1823 0x38F80 1856 0x3A000
1824 0x39000 1858 0x3A100
1825 0x39080 1860 0x3A200
1826 0x39100 1862 0x3A300
1827 0x39180 1864 0x3A400
1828 0x39200 1866 0x3A500
1829 0x39280 1868 0x3A600
1830 0x39300 1870 0x3A700
1831 0x39380 1846 0x39B00
1832 0x39400 1848 0x39C00
1833 0x39480 1851 0x39D80
1834 0x39500 1853 0x39E80
1835 0x39580 1855 0x39F80
1836 0x39600 1857 0x3A080
1837 0x39680 1859 0x3A180
1838 0x39700 1861 0x3A280
1839 0x39780 1863 0x3A380
1840 0x39800 1865 0x3A480
1841 0x39880 1867 0x3A580
1842 0x39900 1869 0x3A680
1843 0x39980 1871 0x3A780
1844 0x39A00 1847 0x39B80
1845 0x39A80 1849 0x39C80
1846 0x39B00 1882 0x3AD00
1847 0x39B80 1884 0x3AE00
1848 0x39C00 1886 0x3AF00
1849 0x39C80 1888 0x3B000
1850 0x39D00 1890 0x3B100
1851 0x39D80 1892 0x3B200
1852 0x39E00 1894 0x3B300
1853 0x39E80 1896 0x3B400
1854 0x39F00 1872 0x3A800
1855 0x39F80 1874 0x3A900
1856 0x3A000 1876 0x3AA00
1857 0x3A080 1878 0x3AB00
1858 0x3A100 1880 0x3AC00
1859 0x3A180 1883 0x3AD80
1860 0x3A200 1885 0x3AE80
1861 0x3A280 1887 0x3AF80
1862 0x3A300 1889 0x3B080
1863 0x3A380 1891 0x3B180
1864 0x3A400 1893 0x3B280
1865 0x3A480 1895 0x3B380
1866 0x3A500 1897 0x3B480
1867 0x3A580 1873 0x3A880
1868 0x3A600 1875 0x3A980
1869 0x3A680 1877 0x3AA80
1870 0x3A700 1879 0x3AB80
1871 0x3A780 1881 0x3AC80
1872 0x3A800 1914 0x3BD00
1873 0x3A880 1916 0x3BE00
1874 0x3A900 1918 0x3BF00
1875 0x3A980 1920 0x3C000
1876 0x3AA00 1922 0x3C100
1877 0x3AA80 1898 0x3B500
1878 0x3AB00 1900 0x3B600
1879 0x3AB80 1902 0x3B700
1880 0x3AC00 1904 0x3B800
1881 0x3AC80 1906 0x3B900
1882 0x3AD00 1908 0x3BA00
1883 0x3AD80 1910 0x3BB00
1884 0x3AE00 1912 0x3BC00
1885 0x3AE80 1915 0x3BD80
1886 0x3AF00 1917 0x3BE80
1887 0x3AF80 1919 0x3BF80
1888 0x3B000 1921 0x3C080
1889 0x3B080 1923 0x3C180
1890 0x3B100 1899 0x3B580
1891 0x3B180 1901 0x3B680
1892 0x3B200 1903 0x3B780
1893 0x3B280 1905 0x3B880
1894 0x3B300 1907 0x3B980
1895 0x3B380 1909 0x3BA80
1896 0x3B400 1911 0x3BB80
1897 0x3B480 1913 0x3BC80
1898 0x3B500 1946 0x3CD00
1899 0x3B580 1948 0x3CE00
1900 0x3B600 1924 0x3C200
1901 0x3B680 1926 0x3C300
1902 0x3B700 1928 0x3C400
1903 0x3B780 1930 0x3C500
1904 0x3B800 1932 0x3C600
1905 0x3B880 1934 0x3C700
1906 0x3B900 1936 0x3C800
1907 0x3B980 1938 0x3C900
1908 0x3BA00 1940 0x3CA00
1909 0x3BA80 1942 0x3CB00
1910 0x3BB00 1944 0x3CC00
1911 0x3BB80 1947 0x3CD80
1912 0x3BC00 1949 0x3CE80
1913 0x3BC80 1925 0x3C280
1914 0x3BD00 1927 0x3C380
1915 0x3BD80 1929 0x3C480
1916 0x3BE00 1931 0x3C580
1917 0x3BE80 1933 0x3C680
1918 0x3BF00 1935 0x3C780
1919 0x3BF80 1937 0x3C880
1920 0x3C000 1939 0x3C980
1921 0x3C080 1941 0x3CA80
1922 0x3C100 1943 0x3CB80
1923 0x3C180 1945 0x3CC80
1924 0x3C200 1952 0x3D000
1925 0x3C280 1954 0x3D100
1926 0x3C300 1956 0x3D200
1927 0x3C380 1958 0x3D300
1928 0x3C400 1960 0x3D400
1929 0x3C480 1962 0x3D500
1930 0x3C500 1964 0x3D600
1931 0x3C580 1966 0x3D700
1932 0x3C600 1968 0x3D800
1933 0x3C680 1970 0x3D900
1934 0x3C700 1972 0x3DA00
1935 0x3C780 1974 0x3DB00
1936 0x3C800 1950 0x3CF00
1937 0x3C880 1953 0x3D080
1938 0x3C900 1955 0x3D180
1939 0x3C980 1957 0x3D280
1940 0x3CA00 1959 0x3D380
1941 0x3CA80 1961 0x3D480
1942 0x3CB00 1963 0x3D580
1943 0x3CB80 1965 0x3D680
1944 0x3CC00 1967 0x3D780
1945 0x3CC80 1969 0x3D880
1946 0x3CD00 1971 0x3D980
1947 0x3CD80 1973 0x3DA80
1948 0x3CE00 1975 0x3DB80
1949 0x3CE80 1951 0x3CF80
1950 0x3CF00 1984 0x3E000
1951 0x3CF80 1986 0x3E100
1952 0x3D000 1988 0x3E200
1953 0x3D080 1990 0x3E300
1954 0x3D100 1992 0x3E400
1955 0x3D180 1994 0x3E500
1956 0x3D200 1996 0x3E600
1957 0x3D280 1998 0x3E700
1958 0x3D300 2000 0x3E800
1959 0x3D380 1976 0x3DC00
1960 0x3D400 1978 0x3DD00
1961 0x3D480 1980 0x3DE00
1962 0x3D500 1982 0x3DF00
1963 0x3D580 1985 0x3E080
1964 0x3D600 1987 0x3E180
1965 0x3D680 1989 0x3E280
1966 0x3D700 1991 0x3E380
1967 0x3D780 1993 0x3E480
1968 0x3D800 1995 0x3E580
1969 0x3D880 1997 0x3E680
1970 0x3D900 1999 0x3E780
1971 0x3D980 2001 0x3E880
1972 0x3DA00 1977 0x3DC80
1973 0x3DA80 1979 0x3DD80
1974 0x3DB00 1981 0x3DE80
1975 0x3DB80 1983 0x3DF80
1976 0x3DC00 14 0x00700
1977 0x3DC80 16 0x00800
1978 0x3DD00 18 0x00900
1979 0x3DD80 20 0x00A00
1980 0x3DE00 22 0x00B00
1981 0x3DE80 24 0x00C00
1982 0x3DF00 0 0x00000
1983 0x3DF80 2 0x00100
1984 0x3E000 4 0x00200
1985 0x3E080 6 0x00300
1986 0x3E100 8 0x00400
1987 0x3E180 10 0x00500
1988 0x3E200 12 0x00600
1989 0x3E280 15 0x00780
1990 0x3E300 17 0x00880
1991 0x3E380 19 0x00980
1992 0x3E400 21 0x00A80
1993 0x3E480 23 0x00B80
1994 0x3E500 25 0x00C80
1995 0x3E580 1 0x00080
1996 0x3E600 3 0x00180
1997 0x3E680 5 0x00280
1998 0x3E700 7 0x00380
1999 0x3E780 9 0x00480
2000 0x3E800 11 0x00580
2001 0x3E880 13 0x00680


Для DY



0 0x00000 26 0x01A00
1 0x00100 28 0x01C00
2 0x00200 30 0x01E00
3 0x00300 32 0x02000
4 0x00400 34 0x02200
5 0x00500 36 0x02400
6 0x00600 38 0x02600
7 0x00700 40 0x02800
8 0x00800 42 0x02A00
9 0x00900 44 0x02C00
10 0x00A00 46 0x02E00
11 0x00B00 48 0x03000
12 0x00C00 50 0x03200
13 0x00D00 27 0x01B00
14 0x00E00 29 0x01D00
15 0x00F00 31 0x01F00
16 0x01000 33 0x02100
17 0x01100 35 0x02300
18 0x01200 37 0x02500
19 0x01300 39 0x02700
20 0x01400 41 0x02900
21 0x01500 43 0x02B00
22 0x01600 45 0x02D00
23 0x01700 47 0x02F00
24 0x01800 49 0x03100
25 0x01900 51 0x03300
26 0x01A00 58 0x03A00
27 0x01B00 60 0x03C00
28 0x01C00 62 0x03E00
29 0x01D00 64 0x04000
30 0x01E00 66 0x04200
31 0x01F00 68 0x04400
32 0x02000 70 0x04600
33 0x02100 72 0x04800
34 0x02200 74 0x04A00
35 0x02300 76 0x04C00
36 0x02400 52 0x03400
37 0x02500 54 0x03600
38 0x02600 56 0x03800
39 0x02700 59 0x03B00
40 0x02800 61 0x03D00
41 0x02900 63 0x03F00
42 0x02A00 65 0x04100
43 0x02B00 67 0x04300
44 0x02C00 69 0x04500
45 0x02D00 71 0x04700
46 0x02E00 73 0x04900
47 0x02F00 75 0x04B00
48 0x03000 77 0x04D00
49 0x03100 53 0x03500
50 0x03200 55 0x03700
51 0x03300 57 0x03900
52 0x03400 90 0x05A00
53 0x03500 92 0x05C00
54 0x03600 94 0x05E00
55 0x03700 96 0x06000
56 0x03800 98 0x06200
57 0x03900 100 0x06400
58 0x03A00 102 0x06600
59 0x03B00 78 0x04E00
60 0x03C00 80 0x05000
61 0x03D00 82 0x05200
62 0x03E00 84 0x05400
63 0x03F00 86 0x05600
64 0x04000 88 0x05800
65 0x04100 91 0x05B00
66 0x04200 93 0x05D00
67 0x04300 95 0x05F00
68 0x04400 97 0x06100
69 0x04500 99 0x06300
70 0x04600 101 0x06500
71 0x04700 103 0x06700
72 0x04800 79 0x04F00
73 0x04900 81 0x05100
74 0x04A00 83 0x05300
75 0x04B00 85 0x05500
76 0x04C00 87 0x05700
77 0x04D00 89 0x05900
78 0x04E00 122 0x07A00
79 0x04F00 124 0x07C00
80 0x05000 126 0x07E00
81 0x05100 128 0x08000
82 0x05200 104 0x06800
83 0x05300 106 0x06A00
84 0x05400 108 0x06C00
85 0x05500 110 0x06E00
86 0x05600 112 0x07000
87 0x05700 114 0x07200
88 0x05800 116 0x07400
89 0x05900 118 0x07600
90 0x05A00 120 0x07800
91 0x05B00 123 0x07B00
92 0x05C00 125 0x07D00
93 0x05D00 127 0x07F00
94 0x05E00 129 0x08100
95 0x05F00 105 0x06900
96 0x06000 107 0x06B00
97 0x06100 109 0x06D00
98 0x06200 111 0x06F00
99 0x06300 113 0x07100
100 0x06400 115 0x07300
101 0x06500 117 0x07500
102 0x06600 119 0x07700
103 0x06700 121 0x07900
104 0x06800 154 0x09A00
105 0x06900 130 0x08200
106 0x06A00 132 0x08400
107 0x06B00 134 0x08600
108 0x06C00 136 0x08800
109 0x06D00 138 0x08A00
110 0x06E00 140 0x08C00
111 0x06F00 142 0x08E00
112 0x07000 144 0x09000
113 0x07100 146 0x09200
114 0x07200 148 0x09400
115 0x07300 150 0x09600
116 0x07400 152 0x09800
117 0x07500 155 0x09B00
118 0x07600 131 0x08300
119 0x07700 133 0x08500
120 0x07800 135 0x08700
121 0x07900 137 0x08900
122 0x07A00 139 0x08B00
123 0x07B00 141 0x08D00
124 0x07C00 143 0x08F00
125 0x07D00 145 0x09100
126 0x07E00 147 0x09300
127 0x07F00 149 0x09500
128 0x08000 151 0x09700
129 0x08100 153 0x09900
130 0x08200 160 0x0A000
131 0x08300 162 0x0A200
132 0x08400 164 0x0A400
133 0x08500 166 0x0A600
134 0x08600 168 0x0A800
135 0x08700 170 0x0AA00
136 0x08800 172 0x0AC00
137 0x08900 174 0x0AE00
138 0x08A00 176 0x0B000
139 0x08B00 178 0x0B200
140 0x08C00 180 0x0B400
141 0x08D00 156 0x09C00
142 0x08E00 158 0x09E00
143 0x08F00 161 0x0A100
144 0x09000 163 0x0A300
145 0x09100 165 0x0A500
146 0x09200 167 0x0A700
147 0x09300 169 0x0A900
148 0x09400 171 0x0AB00
149 0x09500 173 0x0AD00
150 0x09600 175 0x0AF00
151 0x09700 177 0x0B100
152 0x09800 179 0x0B300
153 0x09900 181 0x0B500
154 0x09A00 157 0x09D00
155 0x09B00 159 0x09F00
156 0x09C00 192 0x0C000
157 0x09D00 194 0x0C200
158 0x09E00 196 0x0C400
159 0x09F00 198 0x0C600
160 0x0A000 200 0x0C800
161 0x0A100 202 0x0CA00
162 0x0A200 204 0x0CC00
163 0x0A300 206 0x0CE00
164 0x0A400 182 0x0B600
165 0x0A500 184 0x0B800
166 0x0A600 186 0x0BA00
167 0x0A700 188 0x0BC00
168 0x0A800 190 0x0BE00
169 0x0A900 193 0x0C100
170 0x0AA00 195 0x0C300
171 0x0AB00 197 0x0C500
172 0x0AC00 199 0x0C700
173 0x0AD00 201 0x0C900
174 0x0AE00 203 0x0CB00
175 0x0AF00 205 0x0CD00
176 0x0B000 207 0x0CF00
177 0x0B100 183 0x0B700
178 0x0B200 185 0x0B900
179 0x0B300 187 0x0BB00
180 0x0B400 189 0x0BD00
181 0x0B500 191 0x0BF00
182 0x0B600 224 0x0E000
183 0x0B700 226 0x0E200
184 0x0B800 228 0x0E400
185 0x0B900 230 0x0E600
186 0x0BA00 232 0x0E800
187 0x0BB00 208 0x0D000
188 0x0BC00 210 0x0D200
189 0x0BD00 212 0x0D400
190 0x0BE00 214 0x0D600
191 0x0BF00 216 0x0D800
192 0x0C000 218 0x0DA00
193 0x0C100 220 0x0DC00
194 0x0C200 222 0x0DE00
195 0x0C300 225 0x0E100
196 0x0C400 227 0x0E300
197 0x0C500 229 0x0E500
198 0x0C600 231 0x0E700
199 0x0C700 233 0x0E900
200 0x0C800 209 0x0D100
201 0x0C900 211 0x0D300
202 0x0CA00 213 0x0D500
203 0x0CB00 215 0x0D700
204 0x0CC00 217 0x0D900
205 0x0CD00 219 0x0DB00
206 0x0CE00 221 0x0DD00
207 0x0CF00 223 0x0DF00
208 0x0D000 256 0x10000
209 0x0D100 258 0x10200
210 0x0D200 234 0x0EA00
211 0x0D300 236 0x0EC00
212 0x0D400 238 0x0EE00
213 0x0D500 240 0x0F000
214 0x0D600 242 0x0F200
215 0x0D700 244 0x0F400
216 0x0D800 246 0x0F600
217 0x0D900 248 0x0F800
218 0x0DA00 250 0x0FA00
219 0x0DB00 252 0x0FC00
220 0x0DC00 254 0x0FE00
221 0x0DD00 257 0x10100
222 0x0DE00 259 0x10300
223 0x0DF00 235 0x0EB00
224 0x0E000 237 0x0ED00
225 0x0E100 239 0x0EF00
226 0x0E200 241 0x0F100
227 0x0E300 243 0x0F300
228 0x0E400 245 0x0F500
229 0x0E500 247 0x0F700
230 0x0E600 249 0x0F900
231 0x0E700 251 0x0FB00
232 0x0E800 253 0x0FD00
233 0x0E900 255 0x0FF00
234 0x0EA00 262 0x10600
235 0x0EB00 264 0x10800
236 0x0EC00 266 0x10A00
237 0x0ED00 268 0x10C00
238 0x0EE00 270 0x10E00
239 0x0EF00 272 0x11000
240 0x0F000 274 0x11200
241 0x0F100 276 0x11400
242 0x0F200 278 0x11600
243 0x0F300 280 0x11800
244 0x0F400 282 0x11A00
245 0x0F500 284 0x11C00
246 0x0F600 260 0x10400
247 0x0F700 263 0x10700
248 0x0F800 265 0x10900
249 0x0F900 267 0x10B00
250 0x0FA00 269 0x10D00
251 0x0FB00 271 0x10F00
252 0x0FC00 273 0x11100
253 0x0FD00 275 0x11300
254 0x0FE00 277 0x11500
255 0x0FF00 279 0x11700
256 0x10000 281 0x11900
257 0x10100 283 0x11B00
258 0x10200 285 0x11D00
259 0x10300 261 0x10500
260 0x10400 294 0x12600
261 0x10500 296 0x12800
262 0x10600 298 0x12A00
263 0x10700 300 0x12C00
264 0x10800 302 0x12E00
265 0x10900 304 0x13000
266 0x10A00 306 0x13200
267 0x10B00 308 0x13400
268 0x10C00 310 0x13600
269 0x10D00 286 0x11E00
270 0x10E00 288 0x12000
271 0x10F00 290 0x12200
272 0x11000 292 0x12400
273 0x11100 295 0x12700
274 0x11200 297 0x12900
275 0x11300 299 0x12B00
276 0x11400 301 0x12D00
277 0x11500 303 0x12F00
278 0x11600 305 0x13100
279 0x11700 307 0x13300
280 0x11800 309 0x13500
281 0x11900 311 0x13700
282 0x11A00 287 0x11F00
283 0x11B00 289 0x12100
284 0x11C00 291 0x12300
285 0x11D00 293 0x12500
286 0x11E00 326 0x14600
287 0x11F00 328 0x14800
288 0x12000 330 0x14A00
289 0x12100 332 0x14C00
290 0x12200 334 0x14E00
291 0x12300 336 0x15000
292 0x12400 312 0x13800
293 0x12500 314 0x13A00
294 0x12600 316 0x13C00
295 0x12700 318 0x13E00
296 0x12800 320 0x14000
297 0x12900 322 0x14200
298 0x12A00 324 0x14400
299 0x12B00 327 0x14700
300 0x12C00 329 0x14900
301 0x12D00 331 0x14B00
302 0x12E00 333 0x14D00
303 0x12F00 335 0x14F00
304 0x13000 337 0x15100
305 0x13100 313 0x13900
306 0x13200 315 0x13B00
307 0x13300 317 0x13D00
308 0x13400 319 0x13F00
309 0x13500 321 0x14100
310 0x13600 323 0x14300
311 0x13700 325 0x14500
312 0x13800 358 0x16600
313 0x13900 360 0x16800
314 0x13A00 362 0x16A00
315 0x13B00 338 0x15200
316 0x13C00 340 0x15400
317 0x13D00 342 0x15600
318 0x13E00 344 0x15800
319 0x13F00 346 0x15A00
320 0x14000 348 0x15C00
321 0x14100 350 0x15E00
322 0x14200 352 0x16000
323 0x14300 354 0x16200
324 0x14400 356 0x16400
325 0x14500 359 0x16700
326 0x14600 361 0x16900
327 0x14700 363 0x16B00
328 0x14800 339 0x15300
329 0x14900 341 0x15500
330 0x14A00 343 0x15700
331 0x14B00 345 0x15900
332 0x14C00 347 0x15B00
333 0x14D00 349 0x15D00
334 0x14E00 351 0x15F00
335 0x14F00 353 0x16100
336 0x15000 355 0x16300
337 0x15100 357 0x16500
338 0x15200 364 0x16C00
339 0x15300 366 0x16E00
340 0x15400 368 0x17000
341 0x15500 370 0x17200
342 0x15600 372 0x17400
343 0x15700 374 0x17600
344 0x15800 376 0x17800
345 0x15900 378 0x17A00
346 0x15A00 380 0x17C00
347 0x15B00 382 0x17E00
348 0x15C00 384 0x18000
349 0x15D00 386 0x18200
350 0x15E00 388 0x18400
351 0x15F00 365 0x16D00
352 0x16000 367 0x16F00
353 0x16100 369 0x17100
354 0x16200 371 0x17300
355 0x16300 373 0x17500
356 0x16400 375 0x17700
357 0x16500 377 0x17900
358 0x16600 379 0x17B00
359 0x16700 381 0x17D00
360 0x16800 383 0x17F00
361 0x16900 385 0x18100
362 0x16A00 387 0x18300
363 0x16B00 389 0x18500
364 0x16C00 396 0x18C00
365 0x16D00 398 0x18E00
366 0x16E00 400 0x19000
367 0x16F00 402 0x19200
368 0x17000 404 0x19400
369 0x17100 406 0x19600
370 0x17200 408 0x19800
371 0x17300 410 0x19A00
372 0x17400 412 0x19C00
373 0x17500 414 0x19E00
374 0x17600 390 0x18600
375 0x17700 392 0x18800
376 0x17800 394 0x18A00
377 0x17900 397 0x18D00
378 0x17A00 399 0x18F00
379 0x17B00 401 0x19100
380 0x17C00 403 0x19300
381 0x17D00 405 0x19500
382 0x17E00 407 0x19700
383 0x17F00 409 0x19900
384 0x18000 411 0x19B00
385 0x18100 413 0x19D00
386 0x18200 415 0x19F00
387 0x18300 391 0x18700
388 0x18400 393 0x18900
389 0x18500 395 0x18B00
390 0x18600 428 0x1AC00
391 0x18700 430 0x1AE00
392 0x18800 432 0x1B000
393 0x18900 434 0x1B200
394 0x18A00 436 0x1B400
395 0x18B00 438 0x1B600
396 0x18C00 440 0x1B800
397 0x18D00 416 0x1A000
398 0x18E00 418 0x1A200
399 0x18F00 420 0x1A400
400 0x19000 422 0x1A600
401 0x19100 424 0x1A800
402 0x19200 426 0x1AA00
403 0x19300 429 0x1AD00
404 0x19400 431 0x1AF00
405 0x19500 433 0x1B100
406 0x19600 435 0x1B300
407 0x19700 437 0x1B500
408 0x19800 439 0x1B700
409 0x19900 441 0x1B900
410 0x19A00 417 0x1A100
411 0x19B00 419 0x1A300
412 0x19C00 421 0x1A500
413 0x19D00 423 0x1A700
414 0x19E00 425 0x1A900
415 0x19F00 427 0x1AB00
416 0x1A000 460 0x1CC00
417 0x1A100 462 0x1CE00
418 0x1A200 464 0x1D000
419 0x1A300 466 0x1D200
420 0x1A400 442 0x1BA00
421 0x1A500 444 0x1BC00
422 0x1A600 446 0x1BE00
423 0x1A700 448 0x1C000
424 0x1A800 450 0x1C200
425 0x1A900 452 0x1C400
426 0x1AA00 454 0x1C600
427 0x1AB00 456 0x1C800
428 0x1AC00 458 0x1CA00
429 0x1AD00 461 0x1CD00
430 0x1AE00 463 0x1CF00
431 0x1AF00 465 0x1D100
432 0x1B000 467 0x1D300
433 0x1B100 443 0x1BB00
434 0x1B200 445 0x1BD00
435 0x1B300 447 0x1BF00
436 0x1B400 449 0x1C100
437 0x1B500 451 0x1C300
438 0x1B600 453 0x1C500
439 0x1B700 455 0x1C700
440 0x1B800 457 0x1C900
441 0x1B900 459 0x1CB00
442 0x1BA00 492 0x1EC00
443 0x1BB00 468 0x1D400
444 0x1BC00 470 0x1D600
445 0x1BD00 472 0x1D800
446 0x1BE00 474 0x1DA00
447 0x1BF00 476 0x1DC00
448 0x1C000 478 0x1DE00
449 0x1C100 480 0x1E000
450 0x1C200 482 0x1E200
451 0x1C300 484 0x1E400
452 0x1C400 486 0x1E600
453 0x1C500 488 0x1E800
454 0x1C600 490 0x1EA00
455 0x1C700 493 0x1ED00
456 0x1C800 469 0x1D500
457 0x1C900 471 0x1D700
458 0x1CA00 473 0x1D900
459 0x1CB00 475 0x1DB00
460 0x1CC00 477 0x1DD00
461 0x1CD00 479 0x1DF00
462 0x1CE00 481 0x1E100
463 0x1CF00 483 0x1E300
464 0x1D000 485 0x1E500
465 0x1D100 487 0x1E700
466 0x1D200 489 0x1E900
467 0x1D300 491 0x1EB00
468 0x1D400 498 0x1F200
469 0x1D500 500 0x1F400
470 0x1D600 502 0x1F600
471 0x1D700 504 0x1F800
472 0x1D800 506 0x1FA00
473 0x1D900 508 0x1FC00
474 0x1DA00 510 0x1FE00
475 0x1DB00 512 0x20000
476 0x1DC00 514 0x20200
477 0x1DD00 516 0x20400
478 0x1DE00 518 0x20600
479 0x1DF00 494 0x1EE00
480 0x1E000 496 0x1F000
481 0x1E100 499 0x1F300
482 0x1E200 501 0x1F500
483 0x1E300 503 0x1F700
484 0x1E400 505 0x1F900
485 0x1E500 507 0x1FB00
486 0x1E600 509 0x1FD00
487 0x1E700 511 0x1FF00
488 0x1E800 513 0x20100
489 0x1E900 515 0x20300
490 0x1EA00 517 0x20500
491 0x1EB00 519 0x20700
492 0x1EC00 495 0x1EF00
493 0x1ED00 497 0x1F100
494 0x1EE00 530 0x21200
495 0x1EF00 532 0x21400
496 0x1F000 534 0x21600
497 0x1F100 536 0x21800
498 0x1F200 538 0x21A00
499 0x1F300 540 0x21C00
500 0x1F400 542 0x21E00
501 0x1F500 544 0x22000
502 0x1F600 520 0x20800
503 0x1F700 522 0x20A00
504 0x1F800 524 0x20C00
505 0x1F900 526 0x20E00
506 0x1FA00 528 0x21000
507 0x1FB00 531 0x21300
508 0x1FC00 533 0x21500
509 0x1FD00 535 0x21700
510 0x1FE00 537 0x21900
511 0x1FF00 539 0x21B00
512 0x20000 541 0x21D00
513 0x20100 543 0x21F00
514 0x20200 545 0x22100
515 0x20300 521 0x20900
516 0x20400 523 0x20B00
517 0x20500 525 0x20D00
518 0x20600 527 0x20F00
519 0x20700 529 0x21100
520 0x20800 562 0x23200
521 0x20900 564 0x23400
522 0x20A00 566 0x23600
523 0x20B00 568 0x23800
524 0x20C00 570 0x23A00
525 0x20D00 546 0x22200
526 0x20E00 548 0x22400
527 0x20F00 550 0x22600
528 0x21000 552 0x22800
529 0x21100 554 0x22A00
530 0x21200 556 0x22C00
531 0x21300 558 0x22E00
532 0x21400 560 0x23000
533 0x21500 563 0x23300
534 0x21600 565 0x23500
535 0x21700 567 0x23700
536 0x21800 569 0x23900
537 0x21900 571 0x23B00
538 0x21A00 547 0x22300
539 0x21B00 549 0x22500
540 0x21C00 551 0x22700
541 0x21D00 553 0x22900
542 0x21E00 555 0x22B00
543 0x21F00 557 0x22D00
544 0x22000 559 0x22F00
545 0x22100 561 0x23100
546 0x22200 594 0x25200
547 0x22300 596 0x25400
548 0x22400 572 0x23C00
549 0x22500 574 0x23E00
550 0x22600 576 0x24000
551 0x22700 578 0x24200
552 0x22800 580 0x24400
553 0x22900 582 0x24600
554 0x22A00 584 0x24800
555 0x22B00 586 0x24A00
556 0x22C00 588 0x24C00
557 0x22D00 590 0x24E00
558 0x22E00 592 0x25000
559 0x22F00 595 0x25300
560 0x23000 597 0x25500
561 0x23100 573 0x23D00
562 0x23200 575 0x23F00
563 0x23300 577 0x24100
564 0x23400 579 0x24300
565 0x23500 581 0x24500
566 0x23600 583 0x24700
567 0x23700 585 0x24900
568 0x23800 587 0x24B00
569 0x23900 589 0x24D00
570 0x23A00 591 0x24F00
571 0x23B00 593 0x25100
572 0x23C00 600 0x25800
573 0x23D00 602 0x25A00
574 0x23E00 604 0x25C00
575 0x23F00 606 0x25E00
576 0x24000 608 0x26000
577 0x24100 610 0x26200
578 0x24200 612 0x26400
579 0x24300 614 0x26600
580 0x24400 616 0x26800
581 0x24500 618 0x26A00
582 0x24600 620 0x26C00
583 0x24700 622 0x26E00
584 0x24800 598 0x25600
585 0x24900 601 0x25900
586 0x24A00 603 0x25B00
587 0x24B00 605 0x25D00
588 0x24C00 607 0x25F00
589 0x24D00 609 0x26100
590 0x24E00 611 0x26300
591 0x24F00 613 0x26500
592 0x25000 615 0x26700
593 0x25100 617 0x26900
594 0x25200 619 0x26B00
595 0x25300 621 0x26D00
596 0x25400 623 0x26F00
597 0x25500 599 0x25700
598 0x25600 632 0x27800
599 0x25700 634 0x27A00
600 0x25800 636 0x27C00
601 0x25900 638 0x27E00
602 0x25A00 640 0x28000
603 0x25B00 642 0x28200
604 0x25C00 644 0x28400
605 0x25D00 646 0x28600
606 0x25E00 648 0x28800
607 0x25F00 624 0x27000
608 0x26000 626 0x27200
609 0x26100 628 0x27400
610 0x26200 630 0x27600
611 0x26300 633 0x27900
612 0x26400 635 0x27B00
613 0x26500 637 0x27D00
614 0x26600 639 0x27F00
615 0x26700 641 0x28100
616 0x26800 643 0x28300
617 0x26900 645 0x28500
618 0x26A00 647 0x28700
619 0x26B00 649 0x28900
620 0x26C00 625 0x27100
621 0x26D00 627 0x27300
622 0x26E00 629 0x27500
623 0x26F00 631 0x27700
624 0x27000 664 0x29800
625 0x27100 666 0x29A00
626 0x27200 668 0x29C00
627 0x27300 670 0x29E00
628 0x27400 672 0x2A000
629 0x27500 674 0x2A200
630 0x27600 650 0x28A00
631 0x27700 652 0x28C00
632 0x27800 654 0x28E00
633 0x27900 656 0x29000
634 0x27A00 658 0x29200
635 0x27B00 660 0x29400
636 0x27C00 662 0x29600
637 0x27D00 665 0x29900
638 0x27E00 667 0x29B00
639 0x27F00 669 0x29D00
640 0x28000 671 0x29F00
641 0x28100 673 0x2A100
642 0x28200 675 0x2A300
643 0x28300 651 0x28B00
644 0x28400 653 0x28D00
645 0x28500 655 0x28F00
646 0x28600 657 0x29100
647 0x28700 659 0x29300
648 0x28800 661 0x29500
649 0x28900 663 0x29700
650 0x28A00 696 0x2B800
651 0x28B00 698 0x2BA00
652 0x28C00 700 0x2BC00
653 0x28D00 676 0x2A400
654 0x28E00 678 0x2A600
655 0x28F00 680 0x2A800
656 0x29000 682 0x2AA00
657 0x29100 684 0x2AC00
658 0x29200 686 0x2AE00
659 0x29300 688 0x2B000
660 0x29400 690 0x2B200
661 0x29500 692 0x2B400
662 0x29600 694 0x2B600
663 0x29700 697 0x2B900
664 0x29800 699 0x2BB00
665 0x29900 701 0x2BD00
666 0x29A00 677 0x2A500
667 0x29B00 679 0x2A700
668 0x29C00 681 0x2A900
669 0x29D00 683 0x2AB00
670 0x29E00 685 0x2AD00
671 0x29F00 687 0x2AF00
672 0x2A000 689 0x2B100
673 0x2A100 691 0x2B300
674 0x2A200 693 0x2B500
675 0x2A300 695 0x2B700
676 0x2A400 702 0x2BE00
677 0x2A500 704 0x2C000
678 0x2A600 706 0x2C200
679 0x2A700 708 0x2C400
680 0x2A800 710 0x2C600
681 0x2A900 712 0x2C800
682 0x2AA00 714 0x2CA00
683 0x2AB00 716 0x2CC00
684 0x2AC00 718 0x2CE00
685 0x2AD00 720 0x2D000
686 0x2AE00 722 0x2D200
687 0x2AF00 724 0x2D400
688 0x2B000 726 0x2D600
689 0x2B100 703 0x2BF00
690 0x2B200 705 0x2C100
691 0x2B300 707 0x2C300
692 0x2B400 709 0x2C500
693 0x2B500 711 0x2C700
694 0x2B600 713 0x2C900
695 0x2B700 715 0x2CB00
696 0x2B800 717 0x2CD00
697 0x2B900 719 0x2CF00
698 0x2BA00 721 0x2D100
699 0x2BB00 723 0x2D300
700 0x2BC00 725 0x2D500
701 0x2BD00 727 0x2D700
702 0x2BE00 734 0x2DE00
703 0x2BF00 736 0x2E000
704 0x2C000 738 0x2E200
705 0x2C100 740 0x2E400
706 0x2C200 742 0x2E600
707 0x2C300 744 0x2E800
708 0x2C400 746 0x2EA00
709 0x2C500 748 0x2EC00
710 0x2C600 750 0x2EE00
711 0x2C700 752 0x2F000
712 0x2C800 728 0x2D800
713 0x2C900 730 0x2DA00
714 0x2CA00 732 0x2DC00
715 0x2CB00 735 0x2DF00
716 0x2CC00 737 0x2E100
717 0x2CD00 739 0x2E300
718 0x2CE00 741 0x2E500
719 0x2CF00 743 0x2E700
720 0x2D000 745 0x2E900
721 0x2D100 747 0x2EB00
722 0x2D200 749 0x2ED00
723 0x2D300 751 0x2EF00
724 0x2D400 753 0x2F100
725 0x2D500 729 0x2D900
726 0x2D600 731 0x2DB00
727 0x2D700 733 0x2DD00
728 0x2D800 766 0x2FE00
729 0x2D900 768 0x30000
730 0x2DA00 770 0x30200
731 0x2DB00 772 0x30400
732 0x2DC00 774 0x30600
733 0x2DD00 776 0x30800
734 0x2DE00 778 0x30A00
735 0x2DF00 754 0x2F200
736 0x2E000 756 0x2F400
737 0x2E100 758 0x2F600
738 0x2E200 760 0x2F800
739 0x2E300 762 0x2FA00
740 0x2E400 764 0x2FC00
741 0x2E500 767 0x2FF00
742 0x2E600 769 0x30100
743 0x2E700 771 0x30300
744 0x2E800 773 0x30500
745 0x2E900 775 0x30700
746 0x2EA00 777 0x30900
747 0x2EB00 779 0x30B00
748 0x2EC00 755 0x2F300
749 0x2ED00 757 0x2F500
750 0x2EE00 759 0x2F700
751 0x2EF00 761 0x2F900
752 0x2F000 763 0x2FB00
753 0x2F100 765 0x2FD00
754 0x2F200 798 0x31E00
755 0x2F300 800 0x32000
756 0x2F400 802 0x32200
757 0x2F500 804 0x32400
758 0x2F600 780 0x30C00
759 0x2F700 782 0x30E00
760 0x2F800 784 0x31000
761 0x2F900 786 0x31200
762 0x2FA00 788 0x31400
763 0x2FB00 790 0x31600
764 0x2FC00 792 0x31800
765 0x2FD00 794 0x31A00
766 0x2FE00 796 0x31C00
767 0x2FF00 799 0x31F00
768 0x30000 801 0x32100
769 0x30100 803 0x32300
770 0x30200 805 0x32500
771 0x30300 781 0x30D00
772 0x30400 783 0x30F00
773 0x30500 785 0x31100
774 0x30600 787 0x31300
775 0x30700 789 0x31500
776 0x30800 791 0x31700
777 0x30900 793 0x31900
778 0x30A00 795 0x31B00
779 0x30B00 797 0x31D00
780 0x30C00 830 0x33E00
781 0x30D00 806 0x32600
782 0x30E00 808 0x32800
783 0x30F00 810 0x32A00
784 0x31000 812 0x32C00
785 0x31100 814 0x32E00
786 0x31200 816 0x33000
787 0x31300 818 0x33200
788 0x31400 820 0x33400
789 0x31500 822 0x33600
790 0x31600 824 0x33800
791 0x31700 826 0x33A00
792 0x31800 828 0x33C00
793 0x31900 831 0x33F00
794 0x31A00 807 0x32700
795 0x31B00 809 0x32900
796 0x31C00 811 0x32B00
797 0x31D00 813 0x32D00
798 0x31E00 815 0x32F00
799 0x31F00 817 0x33100
800 0x32000 819 0x33300
801 0x32100 821 0x33500
802 0x32200 823 0x33700
803 0x32300 825 0x33900
804 0x32400 827 0x33B00
805 0x32500 829 0x33D00
806 0x32600 836 0x34400
807 0x32700 838 0x34600
808 0x32800 840 0x34800
809 0x32900 842 0x34A00
810 0x32A00 844 0x34C00
811 0x32B00 846 0x34E00
812 0x32C00 848 0x35000
813 0x32D00 850 0x35200
814 0x32E00 852 0x35400
815 0x32F00 854 0x35600
816 0x33000 856 0x35800
817 0x33100 832 0x34000
818 0x33200 834 0x34200
819 0x33300 837 0x34500
820 0x33400 839 0x34700
821 0x33500 841 0x34900
822 0x33600 843 0x34B00
823 0x33700 845 0x34D00
824 0x33800 847 0x34F00
825 0x33900 849 0x35100
826 0x33A00 851 0x35300
827 0x33B00 853 0x35500
828 0x33C00 855 0x35700
829 0x33D00 857 0x35900
830 0x33E00 833 0x34100
831 0x33F00 835 0x34300
832 0x34000 868 0x36400
833 0x34100 870 0x36600
834 0x34200 872 0x36800
835 0x34300 874 0x36A00
836 0x34400 876 0x36C00
837 0x34500 878 0x36E00
838 0x34600 880 0x37000
839 0x34700 882 0x37200
840 0x34800 858 0x35A00
841 0x34900 860 0x35C00
842 0x34A00 862 0x35E00
843 0x34B00 864 0x36000
844 0x34C00 866 0x36200
845 0x34D00 869 0x36500
846 0x34E00 871 0x36700
847 0x34F00 873 0x36900
848 0x35000 875 0x36B00
849 0x35100 877 0x36D00
850 0x35200 879 0x36F00
851 0x35300 881 0x37100
852 0x35400 883 0x37300
853 0x35500 859 0x35B00
854 0x35600 861 0x35D00
855 0x35700 863 0x35F00
856 0x35800 865 0x36100
857 0x35900 867 0x36300
858 0x35A00 900 0x38400
859 0x35B00 902 0x38600
860 0x35C00 904 0x38800
861 0x35D00 906 0x38A00
862 0x35E00 908 0x38C00
863 0x35F00 884 0x37400
864 0x36000 886 0x37600
865 0x36100 888 0x37800
866 0x36200 890 0x37A00
867 0x36300 892 0x37C00
868 0x36400 894 0x37E00
869 0x36500 896 0x38000
870 0x36600 898 0x38200
871 0x36700 901 0x38500
872 0x36800 903 0x38700
873 0x36900 905 0x38900
874 0x36A00 907 0x38B00
875 0x36B00 909 0x38D00
876 0x36C00 885 0x37500
877 0x36D00 887 0x37700
878 0x36E00 889 0x37900
879 0x36F00 891 0x37B00
880 0x37000 893 0x37D00
881 0x37100 895 0x37F00
882 0x37200 897 0x38100
883 0x37300 899 0x38300
884 0x37400 932 0x3A400
885 0x37500 934 0x3A600
886 0x37600 910 0x38E00
887 0x37700 912 0x39000
888 0x37800 914 0x39200
889 0x37900 916 0x39400
890 0x37A00 918 0x39600
891 0x37B00 920 0x39800
892 0x37C00 922 0x39A00
893 0x37D00 924 0x39C00
894 0x37E00 926 0x39E00
895 0x37F00 928 0x3A000
896 0x38000 930 0x3A200
897 0x38100 933 0x3A500
898 0x38200 935 0x3A700
899 0x38300 911 0x38F00
900 0x38400 913 0x39100
901 0x38500 915 0x39300
902 0x38600 917 0x39500
903 0x38700 919 0x39700
904 0x38800 921 0x39900
905 0x38900 923 0x39B00
906 0x38A00 925 0x39D00
907 0x38B00 927 0x39F00
908 0x38C00 929 0x3A100
909 0x38D00 931 0x3A300
910 0x38E00 938 0x3AA00
911 0x38F00 940 0x3AC00
912 0x39000 942 0x3AE00
913 0x39100 944 0x3B000
914 0x39200 946 0x3B200
915 0x39300 948 0x3B400
916 0x39400 950 0x3B600
917 0x39500 952 0x3B800
918 0x39600 954 0x3BA00
919 0x39700 956 0x3BC00
920 0x39800 958 0x3BE00
921 0x39900 960 0x3C000
922 0x39A00 936 0x3A800
923 0x39B00 939 0x3AB00
924 0x39C00 941 0x3AD00
925 0x39D00 943 0x3AF00
926 0x39E00 945 0x3B100
927 0x39F00 947 0x3B300
928 0x3A000 949 0x3B500
929 0x3A100 951 0x3B700
930 0x3A200 953 0x3B900
931 0x3A300 955 0x3BB00
932 0x3A400 957 0x3BD00
933 0x3A500 959 0x3BF00
934 0x3A600 961 0x3C100
935 0x3A700 937 0x3A900
936 0x3A800 970 0x3CA00
937 0x3A900 972 0x3CC00
938 0x3AA00 974 0x3CE00
939 0x3AB00 976 0x3D000
940 0x3AC00 978 0x3D200
941 0x3AD00 980 0x3D400
942 0x3AE00 982 0x3D600
943 0x3AF00 984 0x3D800
944 0x3B000 986 0x3DA00
945 0x3B100 962 0x3C200
946 0x3B200 964 0x3C400
947 0x3B300 966 0x3C600
948 0x3B400 968 0x3C800
949 0x3B500 971 0x3CB00
950 0x3B600 973 0x3CD00
951 0x3B700 975 0x3CF00
952 0x3B800 977 0x3D100
953 0x3B900 979 0x3D300
954 0x3BA00 981 0x3D500
955 0x3BB00 983 0x3D700
956 0x3BC00 985 0x3D900
957 0x3BD00 987 0x3DB00
958 0x3BE00 963 0x3C300
959 0x3BF00 965 0x3C500
960 0x3C000 967 0x3C700
961 0x3C100 969 0x3C900
962 0x3C200 1002 0x3EA00
963 0x3C300 1004 0x3EC00
964 0x3C400 1006 0x3EE00
965 0x3C500 1008 0x3F000
966 0x3C600 1010 0x3F200
967 0x3C700 1012 0x3F400
968 0x3C800 988 0x3DC00
969 0x3C900 990 0x3DE00
970 0x3CA00 992 0x3E000
971 0x3CB00 994 0x3E200
972 0x3CC00 996 0x3E400
973 0x3CD00 998 0x3E600
974 0x3CE00 1000 0x3E800
975 0x3CF00 1003 0x3EB00
976 0x3D000 1005 0x3ED00
977 0x3D100 1007 0x3EF00
978 0x3D200 1009 0x3F100
979 0x3D300 1011 0x3F300
980 0x3D400 1013 0x3F500
981 0x3D500 989 0x3DD00
982 0x3D600 991 0x3DF00
983 0x3D700 993 0x3E100
984 0x3D800 995 0x3E300
985 0x3D900 997 0x3E500
986 0x3DA00 999 0x3E700
987 0x3DB00 1001 0x3E900
988 0x3DC00 1034 0x40A00
989 0x3DD00 1036 0x40C00
990 0x3DE00 1038 0x40E00
991 0x3DF00 1014 0x3F600
992 0x3E000 1016 0x3F800
993 0x3E100 1018 0x3FA00
994 0x3E200 1020 0x3FC00
995 0x3E300 1022 0x3FE00
996 0x3E400 1024 0x40000
997 0x3E500 1026 0x40200
998 0x3E600 1028 0x40400
999 0x3E700 1030 0x40600
1000 0x3E800 1032 0x40800
1001 0x3E900 1035 0x40B00
1002 0x3EA00 1037 0x40D00
1003 0x3EB00 1039 0x40F00
1004 0x3EC00 1015 0x3F700
1005 0x3ED00 1017 0x3F900
1006 0x3EE00 1019 0x3FB00
1007 0x3EF00 1021 0x3FD00
1008 0x3F000 1023 0x3FF00
1009 0x3F100 1025 0x40100
1010 0x3F200 1027 0x40300
1011 0x3F300 1029 0x40500
1012 0x3F400 1031 0x40700
1013 0x3F500 1033 0x40900
1014 0x3F600 1040 0x41000
1015 0x3F700 1042 0x41200
1016 0x3F800 1044 0x41400
1017 0x3F900 1046 0x41600
1018 0x3FA00 1048 0x41800
1019 0x3FB00 1050 0x41A00
1020 0x3FC00 1052 0x41C00
1021 0x3FD00 1054 0x41E00
1022 0x3FE00 1056 0x42000
1023 0x3FF00 1058 0x42200
1024 0x40000 1060 0x42400
1025 0x40100 1062 0x42600
1026 0x40200 1064 0x42800
1027 0x40300 1041 0x41100
1028 0x40400 1043 0x41300
1029 0x40500 1045 0x41500
1030 0x40600 1047 0x41700
1031 0x40700 1049 0x41900
1032 0x40800 1051 0x41B00
1033 0x40900 1053 0x41D00
1034 0x40A00 1055 0x41F00
1035 0x40B00 1057 0x42100
1036 0x40C00 1059 0x42300
1037 0x40D00 1061 0x42500
1038 0x40E00 1063 0x42700
1039 0x40F00 1065 0x42900
1040 0x41000 1072 0x43000
1041 0x41100 1074 0x43200
1042 0x41200 1076 0x43400
1043 0x41300 1078 0x43600
1044 0x41400 1080 0x43800
1045 0x41500 1082 0x43A00
1046 0x41600 1084 0x43C00
1047 0x41700 1086 0x43E00
1048 0x41800 1088 0x44000
1049 0x41900 1090 0x44200
1050 0x41A00 1066 0x42A00
1051 0x41B00 1068 0x42C00
1052 0x41C00 1070 0x42E00
1053 0x41D00 1073 0x43100
1054 0x41E00 1075 0x43300
1055 0x41F00 1077 0x43500
1056 0x42000 1079 0x43700
1057 0x42100 1081 0x43900
1058 0x42200 1083 0x43B00
1059 0x42300 1085 0x43D00
1060 0x42400 1087 0x43F00
1061 0x42500 1089 0x44100
1062 0x42600 1091 0x44300
1063 0x42700 1067 0x42B00
1064 0x42800 1069 0x42D00
1065 0x42900 1071 0x42F00
1066 0x42A00 1104 0x45000
1067 0x42B00 1106 0x45200
1068 0x42C00 1108 0x45400
1069 0x42D00 1110 0x45600
1070 0x42E00 1112 0x45800
1071 0x42F00 1114 0x45A00
1072 0x43000 1116 0x45C00
1073 0x43100 1092 0x44400
1074 0x43200 1094 0x44600
1075 0x43300 1096 0x44800
1076 0x43400 1098 0x44A00
1077 0x43500 1100 0x44C00
1078 0x43600 1102 0x44E00
1079 0x43700 1105 0x45100
1080 0x43800 1107 0x45300
1081 0x43900 1109 0x45500
1082 0x43A00 1111 0x45700
1083 0x43B00 1113 0x45900
1084 0x43C00 1115 0x45B00
1085 0x43D00 1117 0x45D00
1086 0x43E00 1093 0x44500
1087 0x43F00 1095 0x44700
1088 0x44000 1097 0x44900
1089 0x44100 1099 0x44B00
1090 0x44200 1101 0x44D00
1091 0x44300 1103 0x44F00
1092 0x44400 1136 0x47000
1093 0x44500 1138 0x47200
1094 0x44600 1140 0x47400
1095 0x44700 1142 0x47600
1096 0x44800 1118 0x45E00
1097 0x44900 1120 0x46000
1098 0x44A00 1122 0x46200
1099 0x44B00 1124 0x46400
1100 0x44C00 1126 0x46600
1101 0x44D00 1128 0x46800
1102 0x44E00 1130 0x46A00
1103 0x44F00 1132 0x46C00
1104 0x45000 1134 0x46E00
1105 0x45100 1137 0x47100
1106 0x45200 1139 0x47300
1107 0x45300 1141 0x47500
1108 0x45400 1143 0x47700
1109 0x45500 1119 0x45F00
1110 0x45600 1121 0x46100
1111 0x45700 1123 0x46300
1112 0x45800 1125 0x46500
1113 0x45900 1127 0x46700
1114 0x45A00 1129 0x46900
1115 0x45B00 1131 0x46B00
1116 0x45C00 1133 0x46D00
1117 0x45D00 1135 0x46F00
1118 0x45E00 1168 0x49000
1119 0x45F00 1144 0x47800
1120 0x46000 1146 0x47A00
1121 0x46100 1148 0x47C00
1122 0x46200 1150 0x47E00
1123 0x46300 1152 0x48000
1124 0x46400 1154 0x48200
1125 0x46500 1156 0x48400
1126 0x46600 1158 0x48600
1127 0x46700 1160 0x48800
1128 0x46800 1162 0x48A00
1129 0x46900 1164 0x48C00
1130 0x46A00 1166 0x48E00
1131 0x46B00 1169 0x49100
1132 0x46C00 1145 0x47900
1133 0x46D00 1147 0x47B00
1134 0x46E00 1149 0x47D00
1135 0x46F00 1151 0x47F00
1136 0x47000 1153 0x48100
1137 0x47100 1155 0x48300
1138 0x47200 1157 0x48500
1139 0x47300 1159 0x48700
1140 0x47400 1161 0x48900
1141 0x47500 1163 0x48B00
1142 0x47600 1165 0x48D00
1143 0x47700 1167 0x48F00
1144 0x47800 1174 0x49600
1145 0x47900 1176 0x49800
1146 0x47A00 1178 0x49A00
1147 0x47B00 1180 0x49C00
1148 0x47C00 1182 0x49E00
1149 0x47D00 1184 0x4A000
1150 0x47E00 1186 0x4A200
1151 0x47F00 1188 0x4A400
1152 0x48000 1190 0x4A600
1153 0x48100 1192 0x4A800
1154 0x48200 1194 0x4AA00
1155 0x48300 1170 0x49200
1156 0x48400 1172 0x49400
1157 0x48500 1175 0x49700
1158 0x48600 1177 0x49900
1159 0x48700 1179 0x49B00
1160 0x48800 1181 0x49D00
1161 0x48900 1183 0x49F00
1162 0x48A00 1185 0x4A100
1163 0x48B00 1187 0x4A300
1164 0x48C00 1189 0x4A500
1165 0x48D00 1191 0x4A700
1166 0x48E00 1193 0x4A900
1167 0x48F00 1195 0x4AB00
1168 0x49000 1171 0x49300
1169 0x49100 1173 0x49500
1170 0x49200 1206 0x4B600
1171 0x49300 1208 0x4B800
1172 0x49400 1210 0x4BA00
1173 0x49500 1212 0x4BC00
1174 0x49600 1214 0x4BE00
1175 0x49700 1216 0x4C000
1176 0x49800 1218 0x4C200
1177 0x49900 1220 0x4C400
1178 0x49A00 1196 0x4AC00
1179 0x49B00 1198 0x4AE00
1180 0x49C00 1200 0x4B000
1181 0x49D00 1202 0x4B200
1182 0x49E00 1204 0x4B400
1183 0x49F00 1207 0x4B700
1184 0x4A000 1209 0x4B900
1185 0x4A100 1211 0x4BB00
1186 0x4A200 1213 0x4BD00
1187 0x4A300 1215 0x4BF00
1188 0x4A400 1217 0x4C100
1189 0x4A500 1219 0x4C300
1190 0x4A600 1221 0x4C500
1191 0x4A700 1197 0x4AD00
1192 0x4A800 1199 0x4AF00
1193 0x4A900 1201 0x4B100
1194 0x4AA00 1203 0x4B300
1195 0x4AB00 1205 0x4B500
1196 0x4AC00 1238 0x4D600
1197 0x4AD00 1240 0x4D800
1198 0x4AE00 1242 0x4DA00
1199 0x4AF00 1244 0x4DC00
1200 0x4B000 1246 0x4DE00
1201 0x4B100 1222 0x4C600
1202 0x4B200 1224 0x4C800
1203 0x4B300 1226 0x4CA00
1204 0x4B400 1228 0x4CC00
1205 0x4B500 1230 0x4CE00
1206 0x4B600 1232 0x4D000
1207 0x4B700 1234 0x4D200
1208 0x4B800 1236 0x4D400
1209 0x4B900 1239 0x4D700
1210 0x4BA00 1241 0x4D900
1211 0x4BB00 1243 0x4DB00
1212 0x4BC00 1245 0x4DD00
1213 0x4BD00 1247 0x4DF00
1214 0x4BE00 1223 0x4C700
1215 0x4BF00 1225 0x4C900
1216 0x4C000 1227 0x4CB00
1217 0x4C100 1229 0x4CD00
1218 0x4C200 1231 0x4CF00
1219 0x4C300 1233 0x4D100
1220 0x4C400 1235 0x4D300
1221 0x4C500 1237 0x4D500
1222 0x4C600 1270 0x4F600
1223 0x4C700 1272 0x4F800
1224 0x4C800 1248 0x4E000
1225 0x4C900 1250 0x4E200
1226 0x4CA00 1252 0x4E400
1227 0x4CB00 1254 0x4E600
1228 0x4CC00 1256 0x4E800
1229 0x4CD00 1258 0x4EA00
1230 0x4CE00 1260 0x4EC00
1231 0x4CF00 1262 0x4EE00
1232 0x4D000 1264 0x4F000
1233 0x4D100 1266 0x4F200
1234 0x4D200 1268 0x4F400
1235 0x4D300 1271 0x4F700
1236 0x4D400 1273 0x4F900
1237 0x4D500 1249 0x4E100
1238 0x4D600 1251 0x4E300
1239 0x4D700 1253 0x4E500
1240 0x4D800 1255 0x4E700
1241 0x4D900 1257 0x4E900
1242 0x4DA00 1259 0x4EB00
1243 0x4DB00 1261 0x4ED00
1244 0x4DC00 1263 0x4EF00
1245 0x4DD00 1265 0x4F100
1246 0x4DE00 1267 0x4F300
1247 0x4DF00 1269 0x4F500
1248 0x4E000 1276 0x4FC00
1249 0x4E100 1278 0x4FE00
1250 0x4E200 1280 0x50000
1251 0x4E300 1282 0x50200
1252 0x4E400 1284 0x50400
1253 0x4E500 1286 0x50600
1254 0x4E600 1288 0x50800
1255 0x4E700 1290 0x50A00
1256 0x4E800 1292 0x50C00
1257 0x4E900 1294 0x50E00
1258 0x4EA00 1296 0x51000
1259 0x4EB00 1298 0x51200
1260 0x4EC00 1274 0x4FA00
1261 0x4ED00 1277 0x4FD00
1262 0x4EE00 1279 0x4FF00
1263 0x4EF00 1281 0x50100
1264 0x4F000 1283 0x50300
1265 0x4F100 1285 0x50500
1266 0x4F200 1287 0x50700
1267 0x4F300 1289 0x50900
1268 0x4F400 1291 0x50B00
1269 0x4F500 1293 0x50D00
1270 0x4F600 1295 0x50F00
1271 0x4F700 1297 0x51100
1272 0x4F800 1299 0x51300
1273 0x4F900 1275 0x4FB00
1274 0x4FA00 1308 0x51C00
1275 0x4FB00 1310 0x51E00
1276 0x4FC00 1312 0x52000
1277 0x4FD00 1314 0x52200
1278 0x4FE00 1316 0x52400
1279 0x4FF00 1318 0x52600
1280 0x50000 1320 0x52800
1281 0x50100 1322 0x52A00
1282 0x50200 1324 0x52C00
1283 0x50300 1300 0x51400
1284 0x50400 1302 0x51600
1285 0x50500 1304 0x51800
1286 0x50600 1306 0x51A00
1287 0x50700 1309 0x51D00
1288 0x50800 1311 0x51F00
1289 0x50900 1313 0x52100
1290 0x50A00 1315 0x52300
1291 0x50B00 1317 0x52500
1292 0x50C00 1319 0x52700
1293 0x50D00 1321 0x52900
1294 0x50E00 1323 0x52B00
1295 0x50F00 1325 0x52D00
1296 0x51000 1301 0x51500
1297 0x51100 1303 0x51700
1298 0x51200 1305 0x51900
1299 0x51300 1307 0x51B00
1300 0x51400 1340 0x53C00
1301 0x51500 1342 0x53E00
1302 0x51600 1344 0x54000
1303 0x51700 1346 0x54200
1304 0x51800 1348 0x54400
1305 0x51900 1350 0x54600
1306 0x51A00 1326 0x52E00
1307 0x51B00 1328 0x53000
1308 0x51C00 1330 0x53200
1309 0x51D00 1332 0x53400
1310 0x51E00 1334 0x53600
1311 0x51F00 1336 0x53800
1312 0x52000 1338 0x53A00
1313 0x52100 1341 0x53D00
1314 0x52200 1343 0x53F00
1315 0x52300 1345 0x54100
1316 0x52400 1347 0x54300
1317 0x52500 1349 0x54500
1318 0x52600 1351 0x54700
1319 0x52700 1327 0x52F00
1320 0x52800 1329 0x53100
1321 0x52900 1331 0x53300
1322 0x52A00 1333 0x53500
1323 0x52B00 1335 0x53700
1324 0x52C00 1337 0x53900
1325 0x52D00 1339 0x53B00
1326 0x52E00 1372 0x55C00
1327 0x52F00 1374 0x55E00
1328 0x53000 1376 0x56000
1329 0x53100 1352 0x54800
1330 0x53200 1354 0x54A00
1331 0x53300 1356 0x54C00
1332 0x53400 1358 0x54E00
1333 0x53500 1360 0x55000
1334 0x53600 1362 0x55200
1335 0x53700 1364 0x55400
1336 0x53800 1366 0x55600
1337 0x53900 1368 0x55800
1338 0x53A00 1370 0x55A00
1339 0x53B00 1373 0x55D00
1340 0x53C00 1375 0x55F00
1341 0x53D00 1377 0x56100
1342 0x53E00 1353 0x54900
1343 0x53F00 1355 0x54B00
1344 0x54000 1357 0x54D00
1345 0x54100 1359 0x54F00
1346 0x54200 1361 0x55100
1347 0x54300 1363 0x55300
1348 0x54400 1365 0x55500
1349 0x54500 1367 0x55700
1350 0x54600 1369 0x55900
1351 0x54700 1371 0x55B00
1352 0x54800 1378 0x56200
1353 0x54900 1380 0x56400
1354 0x54A00 1382 0x56600
1355 0x54B00 1384 0x56800
1356 0x54C00 1386 0x56A00
1357 0x54D00 1388 0x56C00
1358 0x54E00 1390 0x56E00
1359 0x54F00 1392 0x57000
1360 0x55000 1394 0x57200
1361 0x55100 1396 0x57400
1362 0x55200 1398 0x57600
1363 0x55300 1400 0x57800
1364 0x55400 1402 0x57A00
1365 0x55500 1379 0x56300
1366 0x55600 1381 0x56500
1367 0x55700 1383 0x56700
1368 0x55800 1385 0x56900
1369 0x55900 1387 0x56B00
1370 0x55A00 1389 0x56D00
1371 0x55B00 1391 0x56F00
1372 0x55C00 1393 0x57100
1373 0x55D00 1395 0x57300
1374 0x55E00 1397 0x57500
1375 0x55F00 1399 0x57700
1376 0x56000 1401 0x57900
1377 0x56100 1403 0x57B00
1378 0x56200 1410 0x58200
1379 0x56300 1412 0x58400
1380 0x56400 1414 0x58600
1381 0x56500 1416 0x58800
1382 0x56600 1418 0x58A00
1383 0x56700 1420 0x58C00
1384 0x56800 1422 0x58E00
1385 0x56900 1424 0x59000
1386 0x56A00 1426 0x59200
1387 0x56B00 1428 0x59400
1388 0x56C00 1404 0x57C00
1389 0x56D00 1406 0x57E00
1390 0x56E00 1408 0x58000
1391 0x56F00 1411 0x58300
1392 0x57000 1413 0x58500
1393 0x57100 1415 0x58700
1394 0x57200 1417 0x58900
1395 0x57300 1419 0x58B00
1396 0x57400 1421 0x58D00
1397 0x57500 1423 0x58F00
1398 0x57600 1425 0x59100
1399 0x57700 1427 0x59300
1400 0x57800 1429 0x59500
1401 0x57900 1405 0x57D00
1402 0x57A00 1407 0x57F00
1403 0x57B00 1409 0x58100
1404 0x57C00 1442 0x5A200
1405 0x57D00 1444 0x5A400
1406 0x57E00 1446 0x5A600
1407 0x57F00 1448 0x5A800
1408 0x58000 1450 0x5AA00
1409 0x58100 1452 0x5AC00
1410 0x58200 1454 0x5AE00
1411 0x58300 1430 0x59600
1412 0x58400 1432 0x59800
1413 0x58500 1434 0x59A00
1414 0x58600 1436 0x59C00
1415 0x58700 1438 0x59E00
1416 0x58800 1440 0x5A000
1417 0x58900 1443 0x5A300
1418 0x58A00 1445 0x5A500
1419 0x58B00 1447 0x5A700
1420 0x58C00 1449 0x5A900
1421 0x58D00 1451 0x5AB00
1422 0x58E00 1453 0x5AD00
1423 0x58F00 1455 0x5AF00
1424 0x59000 1431 0x59700
1425 0x59100 1433 0x59900
1426 0x59200 1435 0x59B00
1427 0x59300 1437 0x59D00
1428 0x59400 1439 0x59F00
1429 0x59500 1441 0x5A100
1430 0x59600 1474 0x5C200
1431 0x59700 1476 0x5C400
1432 0x59800 1478 0x5C600
1433 0x59900 1480 0x5C800
1434 0x59A00 1456 0x5B000
1435 0x59B00 1458 0x5B200
1436 0x59C00 1460 0x5B400
1437 0x59D00 1462 0x5B600
1438 0x59E00 1464 0x5B800
1439 0x59F00 1466 0x5BA00
1440 0x5A000 1468 0x5BC00
1441 0x5A100 1470 0x5BE00
1442 0x5A200 1472 0x5C000
1443 0x5A300 1475 0x5C300
1444 0x5A400 1477 0x5C500
1445 0x5A500 1479 0x5C700
1446 0x5A600 1481 0x5C900
1447 0x5A700 1457 0x5B100
1448 0x5A800 1459 0x5B300
1449 0x5A900 1461 0x5B500
1450 0x5AA00 1463 0x5B700
1451 0x5AB00 1465 0x5B900
1452 0x5AC00 1467 0x5BB00
1453 0x5AD00 1469 0x5BD00
1454 0x5AE00 1471 0x5BF00
1455 0x5AF00 1473 0x5C100
1456 0x5B000 1506 0x5E200
1457 0x5B100 1482 0x5CA00
1458 0x5B200 1484 0x5CC00
1459 0x5B300 1486 0x5CE00
1460 0x5B400 1488 0x5D000
1461 0x5B500 1490 0x5D200
1462 0x5B600 1492 0x5D400
1463 0x5B700 1494 0x5D600
1464 0x5B800 1496 0x5D800
1465 0x5B900 1498 0x5DA00
1466 0x5BA00 1500 0x5DC00
1467 0x5BB00 1502 0x5DE00
1468 0x5BC00 1504 0x5E000
1469 0x5BD00 1507 0x5E300
1470 0x5BE00 1483 0x5CB00
1471 0x5BF00 1485 0x5CD00
1472 0x5C000 1487 0x5CF00
1473 0x5C100 1489 0x5D100
1474 0x5C200 1491 0x5D300
1475 0x5C300 1493 0x5D500
1476 0x5C400 1495 0x5D700
1477 0x5C500 1497 0x5D900
1478 0x5C600 1499 0x5DB00
1479 0x5C700 1501 0x5DD00
1480 0x5C800 1503 0x5DF00
1481 0x5C900 1505 0x5E100
1482 0x5CA00 1512 0x5E800
1483 0x5CB00 1514 0x5EA00
1484 0x5CC00 1516 0x5EC00
1485 0x5CD00 1518 0x5EE00
1486 0x5CE00 1520 0x5F000
1487 0x5CF00 1522 0x5F200
1488 0x5D000 1524 0x5F400
1489 0x5D100 1526 0x5F600
1490 0x5D200 1528 0x5F800
1491 0x5D300 1530 0x5FA00
1492 0x5D400 1532 0x5FC00
1493 0x5D500 1508 0x5E400
1494 0x5D600 1510 0x5E600
1495 0x5D700 1513 0x5E900
1496 0x5D800 1515 0x5EB00
1497 0x5D900 1517 0x5ED00
1498 0x5DA00 1519 0x5EF00
1499 0x5DB00 1521 0x5F100
1500 0x5DC00 1523 0x5F300
1501 0x5DD00 1525 0x5F500
1502 0x5DE00 1527 0x5F700
1503 0x5DF00 1529 0x5F900
1504 0x5E000 1531 0x5FB00
1505 0x5E100 1533 0x5FD00
1506 0x5E200 1509 0x5E500
1507 0x5E300 1511 0x5E700
1508 0x5E400 1544 0x60800
1509 0x5E500 1546 0x60A00
1510 0x5E600 1548 0x60C00
1511 0x5E700 1550 0x60E00
1512 0x5E800 1552 0x61000
1513 0x5E900 1554 0x61200
1514 0x5EA00 1556 0x61400
1515 0x5EB00 1558 0x61600
1516 0x5EC00 1534 0x5FE00
1517 0x5ED00 1536 0x60000
1518 0x5EE00 1538 0x60200
1519 0x5EF00 1540 0x60400
1520 0x5F000 1542 0x60600
1521 0x5F100 1545 0x60900
1522 0x5F200 1547 0x60B00
1523 0x5F300 1549 0x60D00
1524 0x5F400 1551 0x60F00
1525 0x5F500 1553 0x61100
1526 0x5F600 1555 0x61300
1527 0x5F700 1557 0x61500
1528 0x5F800 1559 0x61700
1529 0x5F900 1535 0x5FF00
1530 0x5FA00 1537 0x60100
1531 0x5FB00 1539 0x60300
1532 0x5FC00 1541 0x60500
1533 0x5FD00 1543 0x60700
1534 0x5FE00 1576 0x62800
1535 0x5FF00 1578 0x62A00
1536 0x60000 1580 0x62C00
1537 0x60100 1582 0x62E00
1538 0x60200 1584 0x63000
1539 0x60300 1560 0x61800
1540 0x60400 1562 0x61A00
1541 0x60500 1564 0x61C00
1542 0x60600 1566 0x61E00
1543 0x60700 1568 0x62000
1544 0x60800 1570 0x62200
1545 0x60900 1572 0x62400
1546 0x60A00 1574 0x62600
1547 0x60B00 1577 0x62900
1548 0x60C00 1579 0x62B00
1549 0x60D00 1581 0x62D00
1550 0x60E00 1583 0x62F00
1551 0x60F00 1585 0x63100
1552 0x61000 1561 0x61900
1553 0x61100 1563 0x61B00
1554 0x61200 1565 0x61D00
1555 0x61300 1567 0x61F00
1556 0x61400 1569 0x62100
1557 0x61500 1571 0x62300
1558 0x61600 1573 0x62500
1559 0x61700 1575 0x62700
1560 0x61800 1608 0x64800
1561 0x61900 1610 0x64A00
1562 0x61A00 1586 0x63200
1563 0x61B00 1588 0x63400
1564 0x61C00 1590 0x63600
1565 0x61D00 1592 0x63800
1566 0x61E00 1594 0x63A00
1567 0x61F00 1596 0x63C00
1568 0x62000 1598 0x63E00
1569 0x62100 1600 0x64000
1570 0x62200 1602 0x64200
1571 0x62300 1604 0x64400
1572 0x62400 1606 0x64600
1573 0x62500 1609 0x64900
1574 0x62600 1611 0x64B00
1575 0x62700 1587 0x63300
1576 0x62800 1589 0x63500
1577 0x62900 1591 0x63700
1578 0x62A00 1593 0x63900
1579 0x62B00 1595 0x63B00
1580 0x62C00 1597 0x63D00
1581 0x62D00 1599 0x63F00
1582 0x62E00 1601 0x64100
1583 0x62F00 1603 0x64300
1584 0x63000 1605 0x64500
1585 0x63100 1607 0x64700
1586 0x63200 1614 0x64E00
1587 0x63300 1616 0x65000
1588 0x63400 1618 0x65200
1589 0x63500 1620 0x65400
1590 0x63600 1622 0x65600
1591 0x63700 1624 0x65800
1592 0x63800 1626 0x65A00
1593 0x63900 1628 0x65C00
1594 0x63A00 1630 0x65E00
1595 0x63B00 1632 0x66000
1596 0x63C00 1634 0x66200
1597 0x63D00 1636 0x66400
1598 0x63E00 1612 0x64C00
1599 0x63F00 1615 0x64F00
1600 0x64000 1617 0x65100
1601 0x64100 1619 0x65300
1602 0x64200 1621 0x65500
1603 0x64300 1623 0x65700
1604 0x64400 1625 0x65900
1605 0x64500 1627 0x65B00
1606 0x64600 1629 0x65D00
1607 0x64700 1631 0x65F00
1608 0x64800 1633 0x66100
1609 0x64900 1635 0x66300
1610 0x64A00 1637 0x66500
1611 0x64B00 1613 0x64D00
1612 0x64C00 1646 0x66E00
1613 0x64D00 1648 0x67000
1614 0x64E00 1650 0x67200
1615 0x64F00 1652 0x67400
1616 0x65000 1654 0x67600
1617 0x65100 1656 0x67800
1618 0x65200 1658 0x67A00
1619 0x65300 1660 0x67C00
1620 0x65400 1662 0x67E00
1621 0x65500 1638 0x66600
1622 0x65600 1640 0x66800
1623 0x65700 1642 0x66A00
1624 0x65800 1644 0x66C00
1625 0x65900 1647 0x66F00
1626 0x65A00 1649 0x67100
1627 0x65B00 1651 0x67300
1628 0x65C00 1653 0x67500
1629 0x65D00 1655 0x67700
1630 0x65E00 1657 0x67900
1631 0x65F00 1659 0x67B00
1632 0x66000 1661 0x67D00
1633 0x66100 1663 0x67F00
1634 0x66200 1639 0x66700
1635 0x66300 1641 0x66900
1636 0x66400 1643 0x66B00
1637 0x66500 1645 0x66D00
1638 0x66600 1678 0x68E00
1639 0x66700 1680 0x69000
1640 0x66800 1682 0x69200
1641 0x66900 1684 0x69400
1642 0x66A00 1686 0x69600
1643 0x66B00 1688 0x69800
1644 0x66C00 1664 0x68000
1645 0x66D00 1666 0x68200
1646 0x66E00 1668 0x68400
1647 0x66F00 1670 0x68600
1648 0x67000 1672 0x68800
1649 0x67100 1674 0x68A00
1650 0x67200 1676 0x68C00
1651 0x67300 1679 0x68F00
1652 0x67400 1681 0x69100
1653 0x67500 1683 0x69300
1654 0x67600 1685 0x69500
1655 0x67700 1687 0x69700
1656 0x67800 1689 0x69900
1657 0x67900 1665 0x68100
1658 0x67A00 1667 0x68300
1659 0x67B00 1669 0x68500
1660 0x67C00 1671 0x68700
1661 0x67D00 1673 0x68900
1662 0x67E00 1675 0x68B00
1663 0x67F00 1677 0x68D00
1664 0x68000 1710 0x6AE00
1665 0x68100 1712 0x6B000
1666 0x68200 1714 0x6B200
1667 0x68300 1690 0x69A00
1668 0x68400 1692 0x69C00
1669 0x68500 1694 0x69E00
1670 0x68600 1696 0x6A000
1671 0x68700 1698 0x6A200
1672 0x68800 1700 0x6A400
1673 0x68900 1702 0x6A600
1674 0x68A00 1704 0x6A800
1675 0x68B00 1706 0x6AA00
1676 0x68C00 1708 0x6AC00
1677 0x68D00 1711 0x6AF00
1678 0x68E00 1713 0x6B100
1679 0x68F00 1715 0x6B300
1680 0x69000 1691 0x69B00
1681 0x69100 1693 0x69D00
1682 0x69200 1695 0x69F00
1683 0x69300 1697 0x6A100
1684 0x69400 1699 0x6A300
1685 0x69500 1701 0x6A500
1686 0x69600 1703 0x6A700
1687 0x69700 1705 0x6A900
1688 0x69800 1707 0x6AB00
1689 0x69900 1709 0x6AD00
1690 0x69A00 1716 0x6B400
1691 0x69B00 1718 0x6B600
1692 0x69C00 1720 0x6B800
1693 0x69D00 1722 0x6BA00
1694 0x69E00 1724 0x6BC00
1695 0x69F00 1726 0x6BE00
1696 0x6A000 1728 0x6C000
1697 0x6A100 1730 0x6C200
1698 0x6A200 1732 0x6C400
1699 0x6A300 1734 0x6C600
1700 0x6A400 1736 0x6C800
1701 0x6A500 1738 0x6CA00
1702 0x6A600 1740 0x6CC00
1703 0x6A700 1717 0x6B500
1704 0x6A800 1719 0x6B700
1705 0x6A900 1721 0x6B900
1706 0x6AA00 1723 0x6BB00
1707 0x6AB00 1725 0x6BD00
1708 0x6AC00 1727 0x6BF00
1709 0x6AD00 1729 0x6C100
1710 0x6AE00 1731 0x6C300
1711 0x6AF00 1733 0x6C500
1712 0x6B000 1735 0x6C700
1713 0x6B100 1737 0x6C900
1714 0x6B200 1739 0x6CB00
1715 0x6B300 1741 0x6CD00
1716 0x6B400 1748 0x6D400
1717 0x6B500 1750 0x6D600
1718 0x6B600 1752 0x6D800
1719 0x6B700 1754 0x6DA00
1720 0x6B800 1756 0x6DC00
1721 0x6B900 1758 0x6DE00
1722 0x6BA00 1760 0x6E000
1723 0x6BB00 1762 0x6E200
1724 0x6BC00 1764 0x6E400
1725 0x6BD00 1766 0x6E600
1726 0x6BE00 1742 0x6CE00
1727 0x6BF00 1744 0x6D000
1728 0x6C000 1746 0x6D200
1729 0x6C100 1749 0x6D500
1730 0x6C200 1751 0x6D700
1731 0x6C300 1753 0x6D900
1732 0x6C400 1755 0x6DB00
1733 0x6C500 1757 0x6DD00
1734 0x6C600 1759 0x6DF00
1735 0x6C700 1761 0x6E100
1736 0x6C800 1763 0x6E300
1737 0x6C900 1765 0x6E500
1738 0x6CA00 1767 0x6E700
1739 0x6CB00 1743 0x6CF00
1740 0x6CC00 1745 0x6D100
1741 0x6CD00 1747 0x6D300
1742 0x6CE00 1780 0x6F400
1743 0x6CF00 1782 0x6F600
1744 0x6D000 1784 0x6F800
1745 0x6D100 1786 0x6FA00
1746 0x6D200 1788 0x6FC00
1747 0x6D300 1790 0x6FE00
1748 0x6D400 1792 0x70000
1749 0x6D500 1768 0x6E800
1750 0x6D600 1770 0x6EA00
1751 0x6D700 1772 0x6EC00
1752 0x6D800 1774 0x6EE00
1753 0x6D900 1776 0x6F000
1754 0x6DA00 1778 0x6F200
1755 0x6DB00 1781 0x6F500
1756 0x6DC00 1783 0x6F700
1757 0x6DD00 1785 0x6F900
1758 0x6DE00 1787 0x6FB00
1759 0x6DF00 1789 0x6FD00
1760 0x6E000 1791 0x6FF00
1761 0x6E100 1793 0x70100
1762 0x6E200 1769 0x6E900
1763 0x6E300 1771 0x6EB00
1764 0x6E400 1773 0x6ED00
1765 0x6E500 1775 0x6EF00
1766 0x6E600 1777 0x6F100
1767 0x6E700 1779 0x6F300
1768 0x6E800 1812 0x71400
1769 0x6E900 1814 0x71600
1770 0x6EA00 1816 0x71800
1771 0x6EB00 1818 0x71A00
1772 0x6EC00 1794 0x70200
1773 0x6ED00 1796 0x70400
1774 0x6EE00 1798 0x70600
1775 0x6EF00 1800 0x70800
1776 0x6F000 1802 0x70A00
1777 0x6F100 1804 0x70C00
1778 0x6F200 1806 0x70E00
1779 0x6F300 1808 0x71000
1780 0x6F400 1810 0x71200
1781 0x6F500 1813 0x71500
1782 0x6F600 1815 0x71700
1783 0x6F700 1817 0x71900
1784 0x6F800 1819 0x71B00
1785 0x6F900 1795 0x70300
1786 0x6FA00 1797 0x70500
1787 0x6FB00 1799 0x70700
1788 0x6FC00 1801 0x70900
1789 0x6FD00 1803 0x70B00
1790 0x6FE00 1805 0x70D00
1791 0x6FF00 1807 0x70F00
1792 0x70000 1809 0x71100
1793 0x70100 1811 0x71300
1794 0x70200 1844 0x73400
1795 0x70300 1820 0x71C00
1796 0x70400 1822 0x71E00
1797 0x70500 1824 0x72000
1798 0x70600 1826 0x72200
1799 0x70700 1828 0x72400
1800 0x70800 1830 0x72600
1801 0x70900 1832 0x72800
1802 0x70A00 1834 0x72A00
1803 0x70B00 1836 0x72C00
1804 0x70C00 1838 0x72E00
1805 0x70D00 1840 0x73000
1806 0x70E00 1842 0x73200
1807 0x70F00 1845 0x73500
1808 0x71000 1821 0x71D00
1809 0x71100 1823 0x71F00
1810 0x71200 1825 0x72100
1811 0x71300 1827 0x72300
1812 0x71400 1829 0x72500
1813 0x71500 1831 0x72700
1814 0x71600 1833 0x72900
1815 0x71700 1835 0x72B00
1816 0x71800 1837 0x72D00
1817 0x71900 1839 0x72F00
1818 0x71A00 1841 0x73100
1819 0x71B00 1843 0x73300
1820 0x71C00 1850 0x73A00
1821 0x71D00 1852 0x73C00
1822 0x71E00 1854 0x73E00
1823 0x71F00 1856 0x74000
1824 0x72000 1858 0x74200
1825 0x72100 1860 0x74400
1826 0x72200 1862 0x74600
1827 0x72300 1864 0x74800
1828 0x72400 1866 0x74A00
1829 0x72500 1868 0x74C00
1830 0x72600 1870 0x74E00
1831 0x72700 1846 0x73600
1832 0x72800 1848 0x73800
1833 0x72900 1851 0x73B00
1834 0x72A00 1853 0x73D00
1835 0x72B00 1855 0x73F00
1836 0x72C00 1857 0x74100
1837 0x72D00 1859 0x74300
1838 0x72E00 1861 0x74500
1839 0x72F00 1863 0x74700
1840 0x73000 1865 0x74900
1841 0x73100 1867 0x74B00
1842 0x73200 1869 0x74D00
1843 0x73300 1871 0x74F00
1844 0x73400 1847 0x73700
1845 0x73500 1849 0x73900
1846 0x73600 1882 0x75A00
1847 0x73700 1884 0x75C00
1848 0x73800 1886 0x75E00
1849 0x73900 1888 0x76000
1850 0x73A00 1890 0x76200
1851 0x73B00 1892 0x76400
1852 0x73C00 1894 0x76600
1853 0x73D00 1896 0x76800
1854 0x73E00 1872 0x75000
1855 0x73F00 1874 0x75200
1856 0x74000 1876 0x75400
1857 0x74100 1878 0x75600
1858 0x74200 1880 0x75800
1859 0x74300 1883 0x75B00
1860 0x74400 1885 0x75D00
1861 0x74500 1887 0x75F00
1862 0x74600 1889 0x76100
1863 0x74700 1891 0x76300
1864 0x74800 1893 0x76500
1865 0x74900 1895 0x76700
1866 0x74A00 1897 0x76900
1867 0x74B00 1873 0x75100
1868 0x74C00 1875 0x75300
1869 0x74D00 1877 0x75500
1870 0x74E00 1879 0x75700
1871 0x74F00 1881 0x75900
1872 0x75000 1914 0x77A00
1873 0x75100 1916 0x77C00
1874 0x75200 1918 0x77E00
1875 0x75300 1920 0x78000
1876 0x75400 1922 0x78200
1877 0x75500 1898 0x76A00
1878 0x75600 1900 0x76C00
1879 0x75700 1902 0x76E00
1880 0x75800 1904 0x77000
1881 0x75900 1906 0x77200
1882 0x75A00 1908 0x77400
1883 0x75B00 1910 0x77600
1884 0x75C00 1912 0x77800
1885 0x75D00 1915 0x77B00
1886 0x75E00 1917 0x77D00
1887 0x75F00 1919 0x77F00
1888 0x76000 1921 0x78100
1889 0x76100 1923 0x78300
1890 0x76200 1899 0x76B00
1891 0x76300 1901 0x76D00
1892 0x76400 1903 0x76F00
1893 0x76500 1905 0x77100
1894 0x76600 1907 0x77300
1895 0x76700 1909 0x77500
1896 0x76800 1911 0x77700
1897 0x76900 1913 0x77900
1898 0x76A00 1946 0x79A00
1899 0x76B00 1948 0x79C00
1900 0x76C00 1924 0x78400
1901 0x76D00 1926 0x78600
1902 0x76E00 1928 0x78800
1903 0x76F00 1930 0x78A00
1904 0x77000 1932 0x78C00
1905 0x77100 1934 0x78E00
1906 0x77200 1936 0x79000
1907 0x77300 1938 0x79200
1908 0x77400 1940 0x79400
1909 0x77500 1942 0x79600
1910 0x77600 1944 0x79800
1911 0x77700 1947 0x79B00
1912 0x77800 1949 0x79D00
1913 0x77900 1925 0x78500
1914 0x77A00 1927 0x78700
1915 0x77B00 1929 0x78900
1916 0x77C00 1931 0x78B00
1917 0x77D00 1933 0x78D00
1918 0x77E00 1935 0x78F00
1919 0x77F00 1937 0x79100
1920 0x78000 1939 0x79300
1921 0x78100 1941 0x79500
1922 0x78200 1943 0x79700
1923 0x78300 1945 0x79900
1924 0x78400 1952 0x7A000
1925 0x78500 1954 0x7A200
1926 0x78600 1956 0x7A400
1927 0x78700 1958 0x7A600
1928 0x78800 1960 0x7A800
1929 0x78900 1962 0x7AA00
1930 0x78A00 1964 0x7AC00
1931 0x78B00 1966 0x7AE00
1932 0x78C00 1968 0x7B000
1933 0x78D00 1970 0x7B200
1934 0x78E00 1972 0x7B400
1935 0x78F00 1974 0x7B600
1936 0x79000 1950 0x79E00
1937 0x79100 1953 0x7A100
1938 0x79200 1955 0x7A300
1939 0x79300 1957 0x7A500
1940 0x79400 1959 0x7A700
1941 0x79500 1961 0x7A900
1942 0x79600 1963 0x7AB00
1943 0x79700 1965 0x7AD00
1944 0x79800 1967 0x7AF00
1945 0x79900 1969 0x7B100
1946 0x79A00 1971 0x7B300
1947 0x79B00 1973 0x7B500
1948 0x79C00 1975 0x7B700
1949 0x79D00 1951 0x79F00
1950 0x79E00 1984 0x7C000
1951 0x79F00 1986 0x7C200
1952 0x7A000 1988 0x7C400
1953 0x7A100 1990 0x7C600
1954 0x7A200 1992 0x7C800
1955 0x7A300 1994 0x7CA00
1956 0x7A400 1996 0x7CC00
1957 0x7A500 1998 0x7CE00
1958 0x7A600 2000 0x7D000
1959 0x7A700 1976 0x7B800
1960 0x7A800 1978 0x7BA00
1961 0x7A900 1980 0x7BC00
1962 0x7AA00 1982 0x7BE00
1963 0x7AB00 1985 0x7C100
1964 0x7AC00 1987 0x7C300
1965 0x7AD00 1989 0x7C500
1966 0x7AE00 1991 0x7C700
1967 0x7AF00 1993 0x7C900
1968 0x7B000 1995 0x7CB00
1969 0x7B100 1997 0x7CD00
1970 0x7B200 1999 0x7CF00
1971 0x7B300 2001 0x7D100
1972 0x7B400 1977 0x7B900
1973 0x7B500 1979 0x7BB00
1974 0x7B600 1981 0x7BD00
1975 0x7B700 1983 0x7BF00
1976 0x7B800 14 0x00E00
1977 0x7B900 16 0x01000
1978 0x7BA00 18 0x01200
1979 0x7BB00 20 0x01400
1980 0x7BC00 22 0x01600
1981 0x7BD00 24 0x01800
1982 0x7BE00 0 0x00000
1983 0x7BF00 2 0x00200
1984 0x7C000 4 0x00400
1985 0x7C100 6 0x00600
1986 0x7C200 8 0x00800
1987 0x7C300 10 0x00A00
1988 0x7C400 12 0x00C00
1989 0x7C500 15 0x00F00
1990 0x7C600 17 0x01100
1991 0x7C700 19 0x01300
1992 0x7C800 21 0x01500
1993 0x7C900 23 0x01700
1994 0x7CA00 25 0x01900
1995 0x7CB00 1 0x00100
1996 0x7CC00 3 0x00300
1997 0x7CD00 5 0x00500
1998 0x7CE00 7 0x00700
1999 0x7CF00 9 0x00900
2000 0x7D000 11 0x00B00
2001 0x7D100 13 0x00D00

Hunta
03.05.2022, 19:01
В планах было одно, а оказалось - продолжением доработки проектов (точнее говоря, пока одного из них - ImageUtils) на основе переделанного на C# проекта эмулятора TU58 :) Похоже, всё таки сделаю давно гуляющую в голове мысль - работу с образами дисков с файловой системой ODS1 ака файловая система RSX. Пока в варианте - распаковка. Процесс начался...

Hunta
04.05.2022, 21:23
Код умеет добираться до индексного файла и получать из него заголовок (почти полностью распарсенный) файла по его Id, в том числе, когда заголовков несколько. То есть я могу добраться до 000000.DIR :)

На очереди - извлечение данных файла из образа. К сожалению, код от RT или XXDP/DOS-11 не подойдёт - так как там или непрерывные файлы или по другому описываемые прерывистые файлы. Ну, собстенно, что бы добраться до данных, нужно - а) просчитать размер файла и б) скопировать из образа диска данные файла, благо метод, преобразующий номер виртуального блока в номер логического блока, уже нарисован. Возможно, сегодня уже успею посмотреть на сохранённые в файловую систему PC файлы INDEXF.SYS, BITMAP.SYS, BADBLK.SYS и 000000.DIR.

Дальше - парсинг 000000.DIR и из него - .DIR второго уровня :) К сожалению, автор эмулятора TU58 написал работу с файловой системой XXDP, а она использует только один каталог, так что поддержки подкаталогов исходно нет (и её ещё предстоит доделать и для DOS-11).. Плюс - переделка внутренностей (и эмулятора и распаковщика - кодовая база общая) :)

Hunta
05.05.2022, 17:42
Засада подкралась там, где.. ну в принципе её ждал, но не ожидал такого размера :) А именно - в скорости выборки информации из образа о файле. Конкретный пример - индексный файл (примерно 13 мб) извлекается примерно две с половиной минуты. Не очень как-то :) Придётся дорабатывать внутреннюю структуру заголовков файлов для ускорения выборки.

Но технически - уже можно начинать парсить каталоги :):)

- - - Добавлено - - -

Упс.. Однако - ошибся - это он при запуске под VS так тормозит :) Опять я про этот прикол забыл :)
Если запустить без участия VS - то полторы секунды :) Уже лучше :)

Hunta
05.05.2022, 20:24
Из занимательного. У файла в RSX (для программ) есть аттрибуты - сколько зарезервированно места, а сколько в настоящее время используется. Но для файлового процессора важно только - сколько виртуальных блоков он выделила файлу и почти всегда сам файловый процессор эти аттрибуты не использует. Почти :) В случае файла-каталога (да да, они обычные файлы) эти аттрибуты задействованы :) На что я вот буквально только что налетел :) Так что придётся описать и их - иначе, в случае каталогов, никак :) А я думал, что это - иначе никак - начнётся, когда буду преобразовывать файлы некоторых (типа текстовых) форматов :)

И извлекаться файлы будут сразу в нескольких видах - все блоки, только занятое место, с преобразованием формата. Может, что ещё придумаю. Нужно для более адекватной работы моей программы поиска дубликатов :)

Hunta
06.05.2022, 01:50
Подвижки вперёд :)


>dir

Volume in drive K is PDP11_K
Volume Serial Number is C078-C80A

Directory of K:\Repo\2022\ForDebug\PiDP11_DU0

06.05.2022 01:23 <DIR> .
04.05.2022 19:04 <DIR> ..
06.05.2022 01:15 3 584 000000.DIR;1
06.05.2022 01:15 8 192 001001.DIR;1
06.05.2022 01:15 512 BADBLK.SYS;1
06.05.2022 01:15 77 824 BITMAP.SYS;1
06.05.2022 01:15 524 288 CORIMG.SYS;1
06.05.2022 01:15 15 368 192 INDEXF.SYS;1
06.05.2022 01:15 13 312 RSX11.SYS;1
06.05.2022 01:23 <DIR> [1,1]
7 File(s) 15 995 904 bytes
3 Dir(s) 19 747 954 688 bytes free

>dir "[1,1]"

Volume in drive K is PDP11_K
Volume Serial Number is C078-C80A

Directory of K:\Repo\2022\ForDebug\PiDP11_DU0


Directory of K:\Repo\2022\ForDebug\PiDP11_DU0

Volume in drive K is PDP11_K
Volume Serial Number is C078-C80A

Directory of K:\Repo\2022\ForDebug\PiDP11_DU0\[1,1]

06.05.2022 01:23 <DIR> .
06.05.2022 01:23 <DIR> ..
06.05.2022 01:15 468 ATOF.OBJ;5
06.05.2022 01:15 512 ATOF.OBJ;5.image
06.05.2022 01:21 864 AUTOIN.LOG;1
06.05.2022 01:21 1 024 AUTOIN.LOG;1.image
06.05.2022 01:22 841 AUTOIN.LOG;1.text
06.05.2022 01:23 60 B25SH1.STB;4
06.05.2022 01:23 512 B25SH1.STB;4.image
06.05.2022 01:23 8 704 B25SH1.TSK;4
06.05.2022 01:23 9 216 B25SH1.TSK;4.image
06.05.2022 01:23 2 224 B25SHR.STB;4
06.05.2022 01:23 2 560 B25SHR.STB;4.image
06.05.2022 01:23 8 192 B25SHR.TSK;4
06.05.2022 01:23 8 704 B25SHR.TSK;4.image
06.05.2022 01:22 22 664 BCPLIB.OLB;2
06.05.2022 01:22 23 040 BCPLIB.OLB;2.image
06.05.2022 01:22 300 BP2IC0.ODL;8
06.05.2022 01:22 512 BP2IC0.ODL;8.image
06.05.2022 01:22 285 BP2IC0.ODL;8.text
06.05.2022 01:22 298 BP2IC1.ODL;8
06.05.2022 01:22 512 BP2IC1.ODL;8.image
06.05.2022 01:23 285 BP2IC1.ODL;8.text
06.05.2022 01:23 290 BP2IC2.ODL;8
06.05.2022 01:23 512 BP2IC2.ODL;8.image
06.05.2022 01:23 276 BP2IC2.ODL;8.text
06.05.2022 01:23 332 BP2IC3.ODL;8
06.05.2022 01:23 512 BP2IC3.ODL;8.image
06.05.2022 01:23 317 BP2IC3.ODL;8.text
06.05.2022 01:23 290 BP2IC4.ODL;8
06.05.2022 01:23 512 BP2IC4.ODL;8.image
06.05.2022 01:23 275 BP2IC4.ODL;8.text
06.05.2022 01:23 318 BP2IC5.ODL;8
06.05.2022 01:23 512 BP2IC5.ODL;8.image
06.05.2022 01:23 304 BP2IC5.ODL;8.text
06.05.2022 01:23 308 BP2IC6.ODL;8
06.05.2022 01:23 512 BP2IC6.ODL;8.image
06.05.2022 01:23 295 BP2IC6.ODL;8.text
06.05.2022 01:23 354 BP2IC7.ODL;8
06.05.2022 01:23 512 BP2IC7.ODL;8.image
06.05.2022 01:23 340 BP2IC7.ODL;8.text
06.05.2022 01:23 133 018 BP2OTS.OLB;9
06.05.2022 01:23 133 120 BP2OTS.OLB;9.image
06.05.2022 01:23 29 640 BP2RES.STB;3
06.05.2022 01:23 29 696 BP2RES.STB;3.image
06.05.2022 01:23 36 864 BP2RES.TSK;3
06.05.2022 01:23 37 376 BP2RES.TSK;3.image
06.05.2022 01:23 4 720 BP2SML.STB;111
06.05.2022 01:23 5 120 BP2SML.STB;111.image
06.05.2022 01:23 4 720 BP2SML.STB;112
06.05.2022 01:23 5 120 BP2SML.STB;112.image
06.05.2022 01:23 16 896 BP2SML.TSK;111
06.05.2022 01:23 17 408 BP2SML.TSK;111.image
06.05.2022 01:23 16 896 BP2SML.TSK;112
06.05.2022 01:23 17 408 BP2SML.TSK;112.image
06.05.2022 01:23 1 768 BQTLIB.B2S;190
06.05.2022 01:23 2 048 BQTLIB.B2S;190.image
06.05.2022 01:23 1 745 BQTLIB.B2S;190.text
06.05.2022 01:23 1 768 BQTLIB.B2S;191
06.05.2022 01:23 2 048 BQTLIB.B2S;191.image
06.05.2022 01:23 1 745 BQTLIB.B2S;191.text
06.05.2022 01:23 2 064 BQTLIB.H;126
06.05.2022 01:23 2 560 BQTLIB.H;126.image
06.05.2022 01:23 2 024 BQTLIB.H;126.text
06.05.2022 01:23 2 064 BQTLIB.H;127
06.05.2022 01:23 2 560 BQTLIB.H;127.image
06.05.2022 01:23 2 024 BQTLIB.H;127.text
06.05.2022 01:23 4 912 BSCPUR.STB;1
06.05.2022 01:23 5 120 BSCPUR.STB;1.image
06.05.2022 01:23 22 528 BSCPUR.TSK;1
06.05.2022 01:23 23 040 BSCPUR.TSK;1.image
06.05.2022 01:23 61 058 C.OLB;5
06.05.2022 01:23 61 440 C.OLB;5.image
06.05.2022 01:23 66 494 C81CIS.OLB;1
06.05.2022 01:23 66 560 C81CIS.OLB;1.image
06.05.2022 01:23 68 664 C81LIB.OLB;1
06.05.2022 01:23 69 120 C81LIB.OLB;1.image
06.05.2022 01:23 4 246 C81RTE.TXT;1
06.05.2022 01:23 4 608 C81RTE.TXT;1.image
06.05.2022 01:23 4 210 C81RTE.TXT;1.text
06.05.2022 01:23 976 CCSMRX.STB;108
06.05.2022 01:23 1 024 CCSMRX.STB;108.image
06.05.2022 01:23 976 CCSMRX.STB;109
06.05.2022 01:23 1 024 CCSMRX.STB;109.image
06.05.2022 01:23 35 328 CCSMRX.TSK;108
06.05.2022 01:23 35 840 CCSMRX.TSK;108.image
06.05.2022 01:23 35 328 CCSMRX.TSK;109
06.05.2022 01:23 35 840 CCSMRX.TSK;109.image
06.05.2022 01:23 245 194 CEISRE.OLB;1
06.05.2022 01:23 245 248 CEISRE.OLB;1.image
06.05.2022 01:23 262 564 CEISRSX.OLB;1
06.05.2022 01:23 262 656 CEISRSX.OLB;1.image
06.05.2022 01:23 236 864 CFPURE.OLB;1
06.05.2022 01:23 237 056 CFPURE.OLB;1.image
06.05.2022 01:23 269 214 CFPURSX.OLB;1
06.05.2022 01:23 269 312 CFPURSX.OLB;1.image
06.05.2022 01:23 1 104 CLIDF.H;3
06.05.2022 01:23 1 536 CLIDF.H;3.image
06.05.2022 01:23 1 085 CLIDF.H;3.text
06.05.2022 01:23 19 232 CMACS.MAC;7
06.05.2022 01:23 19 456 CMACS.MAC;7.image
06.05.2022 01:23 18 793 CMACS.MAC;7.text
06.05.2022 01:23 51 140 CN.OLB;3
06.05.2022 01:23 51 200 CN.OLB;3.image
06.05.2022 01:23 74 054 CR.OLB;2
06.05.2022 01:23 74 240 CR.OLB;2.image
06.05.2022 01:23 5 194 CSET.H;3
06.05.2022 01:23 5 632 CSET.H;3.image
06.05.2022 01:23 5 145 CSET.H;3.text
06.05.2022 01:23 942 CSIS.H;3
06.05.2022 01:23 1 024 CSIS.H;3.image
06.05.2022 01:23 919 CSIS.H;3.text
06.05.2022 01:23 2 920 CTYPE.H;9
06.05.2022 01:23 3 072 CTYPE.H;9.image
06.05.2022 01:23 2 879 CTYPE.H;9.text
06.05.2022 01:23 50 824 CU.OLB;3
06.05.2022 01:23 51 200 CU.OLB;3.image
06.05.2022 01:23 1 322 CX.H;3
06.05.2022 01:23 1 536 CX.H;3.image
06.05.2022 01:23 1 312 CX.H;3.text
06.05.2022 01:23 23 332 CX.OLB;3
06.05.2022 01:23 23 552 CX.OLB;3.image
06.05.2022 01:23 2 980 DAP11X.ODL;1
06.05.2022 01:23 3 072 DAP11X.ODL;1.image
06.05.2022 01:23 2 953 DAP11X.ODL;1.text
06.05.2022 01:23 974 DAPRES.STB;1
06.05.2022 01:23 1 024 DAPRES.STB;1.image
06.05.2022 01:23 19 968 DAPRES.TSK;1
06.05.2022 01:23 20 480 DAPRES.TSK;1.image
06.05.2022 01:23 844 DAPRLX.ODL;1
06.05.2022 01:23 1 024 DAPRLX.ODL;1.image
06.05.2022 01:23 830 DAPRLX.ODL;1.text
06.05.2022 01:23 1 264 DBGAID.OBJ;1
06.05.2022 01:23 1 536 DBGAID.OBJ;1.image
06.05.2022 01:23 752 DCBDF.H;3
06.05.2022 01:23 1 024 DCBDF.H;3.image
06.05.2022 01:23 747 DCBDF.H;3.text
06.05.2022 01:23 39 124 DEBUG.OLB;1
06.05.2022 01:23 39 424 DEBUG.OLB;1.image
06.05.2022 01:23 8 724 DEUNA.MLB;1
06.05.2022 01:23 9 216 DEUNA.MLB;1.image
06.05.2022 01:23 8 270 DIRSYM.H;3
06.05.2022 01:23 8 704 DIRSYM.H;3.image
06.05.2022 01:23 8 267 DIRSYM.H;3.text
06.05.2022 01:23 5 116 DNET.H;45
06.05.2022 01:23 5 120 DNET.H;45.image
06.05.2022 01:23 5 045 DNET.H;45.text
06.05.2022 01:23 5 116 DNET.H;46
06.05.2022 01:23 5 120 DNET.H;46.image
06.05.2022 01:23 5 045 DNET.H;46.text
06.05.2022 01:23 51 900 DTCLIB.OLB;1
06.05.2022 01:23 52 224 DTCLIB.OLB;1.image
06.05.2022 01:23 892 DTOA.OBJ;5
06.05.2022 01:23 1 024 DTOA.OBJ;5.image
06.05.2022 01:23 420 754 DTRLIB.OLB;1
06.05.2022 01:23 420 864 DTRLIB.OLB;1.image
06.05.2022 01:23 11 500 EISLIB.OLB;1
06.05.2022 01:23 11 776 EISLIB.OLB;1.image
06.05.2022 01:23 26 268 EXEDF.H;3
06.05.2022 01:23 26 624 EXEDF.H;3.image
06.05.2022 01:23 25 730 EXEDF.H;3.text
06.05.2022 01:23 14 872 EXEDF32.H;3
06.05.2022 01:23 15 360 EXEDF32.H;3.image
06.05.2022 01:23 14 606 EXEDF32.H;3.text
06.05.2022 01:23 40 554 EXELIB.OLB;1
06.05.2022 01:23 40 960 EXELIB.OLB;1.image
06.05.2022 01:23 82 030 EXEMC.MLB;1
06.05.2022 01:23 82 432 EXEMC.MLB;1.image
06.05.2022 01:23 5 202 F11.H;3
06.05.2022 01:23 5 632 F11.H;3.image
06.05.2022 01:23 5 138 F11.H;3.text
06.05.2022 01:23 2 350 F11QIO.H;3
06.05.2022 01:23 2 560 F11QIO.H;3.image
06.05.2022 01:23 2 328 F11QIO.H;3.text
06.05.2022 01:23 25 022 F52LIB.OLB;1
06.05.2022 01:23 25 088 F52LIB.OLB;1.image
06.05.2022 01:23 7 052 F7711S.OBS;2
06.05.2022 01:23 7 168 F7711S.OBS;2.image
06.05.2022 01:23 1 622 F77CVF.OBJ;2
06.05.2022 01:23 2 048 F77CVF.OBJ;2.image
06.05.2022 01:23 748 F77EIS.OBS;2
06.05.2022 01:23 1 024 F77EIS.OBS;2.image
06.05.2022 01:23 38 822 F77EP.MAC;2
06.05.2022 01:23 38 912 F77EP.MAC;2.image
06.05.2022 01:23 37 942 F77EP.MAC;2.text
06.05.2022 01:23 3 230 F77F77.LOG;1
06.05.2022 01:23 3 584 F77F77.LOG;1.image
06.05.2022 01:23 3 202 F77F77.LOG;1.text
06.05.2022 01:23 76 326 F77FCS.OLB;2
06.05.2022 01:23 76 800 F77FCS.OLB;2.image
06.05.2022 01:23 7 380 F77GBL.XCL;2
06.05.2022 01:23 7 680 F77GBL.XCL;2.image
06.05.2022 01:23 7 104 F77GBL.XCL;2.text
06.05.2022 01:23 88 F77NER.OBS;2
06.05.2022 01:23 512 F77NER.OBS;2.image
06.05.2022 01:23 7 052 F77NIO.OBS;2
06.05.2022 01:23 7 168 F77NIO.OBS;2.image
06.05.2022 01:23 406 F77RAN.OBS;2
06.05.2022 01:23 512 F77RAN.OBS;2.image
06.05.2022 01:23 76 444 F77RMS.OLB;2
06.05.2022 01:23 76 800 F77RMS.OLB;2.image
06.05.2022 01:23 830 F77VEC.MAC;2
06.05.2022 01:23 1 024 F77VEC.MAC;2.image
06.05.2022 01:23 816 F77VEC.MAC;2.text
06.05.2022 01:23 7 796 F7FCLS.BLD;2
06.05.2022 01:23 8 192 F7FCLS.BLD;2.image
06.05.2022 01:23 7 693 F7FCLS.BLD;2.text
06.05.2022 01:23 868 F7FCLS.CMD;2
06.05.2022 01:23 1 024 F7FCLS.CMD;2.image
06.05.2022 01:23 830 F7FCLS.CMD;2.text
06.05.2022 01:23 9 102 F7FCLS.MAC;2
06.05.2022 01:23 9 216 F7FCLS.MAC;2.image
06.05.2022 01:23 8 957 F7FCLS.MAC;2.text
06.05.2022 01:23 1 472 F7FCLS.STB;1
06.05.2022 01:23 1 536 F7FCLS.STB;1.image
06.05.2022 01:23 16 896 F7FCLS.TSK;1
06.05.2022 01:23 17 408 F7FCLS.TSK;1.image
06.05.2022 01:23 7 674 F7FRES.BLD;2
06.05.2022 01:23 7 680 F7FRES.BLD;2.image
06.05.2022 01:23 7 575 F7FRES.BLD;2.text
06.05.2022 01:23 202 F7FRES.CMD;2
06.05.2022 01:23 512 F7FRES.CMD;2.image
06.05.2022 01:23 197 F7FRES.CMD;2.text
06.05.2022 01:23 8 714 F7FRES.MAC;2
06.05.2022 01:23 9 216 F7FRES.MAC;2.image
06.05.2022 01:23 8 577 F7FRES.MAC;2.text
06.05.2022 01:23 7 794 F7RCLS.BLD;2
06.05.2022 01:23 8 192 F7RCLS.BLD;2.image
06.05.2022 01:23 7 694 F7RCLS.BLD;2.text
06.05.2022 01:23 244 F7RCLS.CMD;2
06.05.2022 01:23 512 F7RCLS.CMD;2.image
06.05.2022 01:23 238 F7RCLS.CMD;2.text
06.05.2022 01:23 9 018 F7RCLS.MAC;2
06.05.2022 01:23 9 216 F7RCLS.MAC;2.image
06.05.2022 01:23 8 879 F7RCLS.MAC;2.text
06.05.2022 01:23 1 532 F7RCLS.STB;1
06.05.2022 01:23 1 536 F7RCLS.STB;1.image
06.05.2022 01:23 16 896 F7RCLS.TSK;1
06.05.2022 01:23 17 408 F7RCLS.TSK;1.image
06.05.2022 01:23 7 834 F7SRES.BLD;2
06.05.2022 01:23 8 192 F7SRES.BLD;2.image
06.05.2022 01:23 7 734 F7SRES.BLD;2.text
06.05.2022 01:23 254 F7SRES.CMD;2
06.05.2022 01:23 512 F7SRES.CMD;2.image
06.05.2022 01:23 248 F7SRES.CMD;2.text
06.05.2022 01:23 9 126 F7SRES.MAC;2
06.05.2022 01:23 9 216 F7SRES.MAC;2.image
06.05.2022 01:23 8 982 F7SRES.MAC;2.text
06.05.2022 01:23 828 FCS.MAC;2
06.05.2022 01:23 1 024 FCS.MAC;2.image
06.05.2022 01:23 813 FCS.MAC;2.text
06.05.2022 01:23 12 462 FCS.OBJ;1
06.05.2022 01:23 12 800 FCS.OBJ;1.image
06.05.2022 01:23 16 552 FCS11M.ODL;2
06.05.2022 01:23 16 896 FCS11M.ODL;2.image
06.05.2022 01:23 16 327 FCS11M.ODL;2.text
06.05.2022 01:23 712 FCSFSL.STB;1
06.05.2022 01:23 1 024 FCSFSL.STB;1.image
06.05.2022 01:23 512 FCSFSL.TSK;1
06.05.2022 01:23 512 FCSFSL.TSK;1.image
06.05.2022 01:23 27 706 FCSFULL.OBS;1
06.05.2022 01:23 28 160 FCSFULL.OBS;1.image
06.05.2022 01:23 4 430 FCSGBL.H;3
06.05.2022 01:23 4 608 FCSGBL.H;3.image
06.05.2022 01:23 4 428 FCSGBL.H;3.text
06.05.2022 01:23 2 142 FCSLOG.OBS;1
06.05.2022 01:23 2 560 FCSLOG.OBS;1.image
06.05.2022 01:23 16 480 FCSMBF.OBJ;1
06.05.2022 01:23 16 896 FCSMBF.OBJ;1.image
06.05.2022 01:23 15 420 FCSMTA.OBJ;1
06.05.2022 01:23 15 872 FCSMTA.OBJ;1.image
06.05.2022 01:23 952 FCSNOLOG.OBS;1
06.05.2022 01:23 1 024 FCSNOLOG.OBS;1.image
06.05.2022 01:23 9 150 FCSNOVACP.OBS;1
06.05.2022 01:23 9 216 FCSNOVACP.OBS;1.image
06.05.2022 01:23 5 912 FCSRES.STB;1
06.05.2022 01:23 6 144 FCSRES.STB;1.image
06.05.2022 01:23 17 408 FCSRES.TSK;1
06.05.2022 01:23 17 920 FCSRES.TSK;1.image
06.05.2022 01:23 7 484 FCSSTDIO.H;2
06.05.2022 01:23 7 680 FCSSTDIO.H;2.image
06.05.2022 01:23 7 375 FCSSTDIO.H;2.text
06.05.2022 01:23 26 750 FDVLIB.OLB;1
06.05.2022 01:23 27 136 FDVLIB.OLB;1.image
06.05.2022 01:23 27 254 FDVLRM.OLB;1
06.05.2022 01:23 27 648 FDVLRM.OLB;1.image
06.05.2022 01:23 1 668 FEAT.H;3
06.05.2022 01:23 2 048 FEAT.H;3.image
06.05.2022 01:23 1 615 FEAT.H;3.text
06.05.2022 01:23 2 548 FLEX.H;3
06.05.2022 01:23 2 560 FLEX.H;3.image
06.05.2022 01:23 2 511 FLEX.H;3.text
06.05.2022 01:23 4 392 FMSMAC.MLB;1
06.05.2022 01:23 4 608 FMSMAC.MLB;1.image
06.05.2022 01:23 1 718 FPS.H;9
06.05.2022 01:23 2 048 FPS.H;9.image
06.05.2022 01:23 1 693 FPS.H;9.text
06.05.2022 01:23 1 534 GCCIDF.H;3
06.05.2022 01:23 1 536 GCCIDF.H;3.image
06.05.2022 01:23 1 522 GCCIDF.H;3.text
06.05.2022 01:23 1 920 GCIBUF.H;3
06.05.2022 01:23 2 048 GCIBUF.H;3.image
06.05.2022 01:23 1 898 GCIBUF.H;3.text
06.05.2022 01:23 4 040 HDRDF.H;3
06.05.2022 01:23 4 096 HDRDF.H;3.image
06.05.2022 01:23 4 014 HDRDF.H;3.text
06.05.2022 01:23 54 494 HPG.OLB;1
06.05.2022 01:23 54 784 HPG.OLB;1.image
06.05.2022 01:23 2 046 INET.B2S;202
06.05.2022 01:23 2 048 INET.B2S;202.image
06.05.2022 01:23 2 016 INET.B2S;202.text
06.05.2022 01:23 2 046 INET.B2S;203
06.05.2022 01:23 2 048 INET.B2S;203.image
06.05.2022 01:23 2 016 INET.B2S;203.text
06.05.2022 01:23 946 INET.FTN;191
06.05.2022 01:23 1 024 INET.FTN;191.image
06.05.2022 01:23 933 INET.FTN;191.text
06.05.2022 01:23 946 INET.FTN;192
06.05.2022 01:23 1 024 INET.FTN;192.image
06.05.2022 01:23 933 INET.FTN;192.text
06.05.2022 01:23 2 934 INET.H;190
06.05.2022 01:23 3 072 INET.H;190.image
06.05.2022 01:23 2 889 INET.H;190.text
06.05.2022 01:23 2 934 INET.H;191
06.05.2022 01:23 3 072 INET.H;191.image
06.05.2022 01:23 2 889 INET.H;191.text
06.05.2022 01:23 1 202 INET.PAS;12
06.05.2022 01:23 1 536 INET.PAS;12.image
06.05.2022 01:23 1 183 INET.PAS;12.text
06.05.2022 01:23 1 202 INET.PAS;13
06.05.2022 01:23 1 536 INET.PAS;13.image
06.05.2022 01:23 1 183 INET.PAS;13.text
06.05.2022 01:23 5 882 INITIA.H;11
06.05.2022 01:23 6 144 INITIA.H;11.image
06.05.2022 01:23 5 819 INITIA.H;11.text
06.05.2022 01:23 1 002 IOPKT.H;3
06.05.2022 01:23 1 024 IOPKT.H;3.image
06.05.2022 01:23 993 IOPKT.H;3.text
06.05.2022 01:23 108 IPBP2.ODL;190
06.05.2022 01:23 512 IPBP2.ODL;190.image
06.05.2022 01:23 106 IPBP2.ODL;190.text
06.05.2022 01:23 108 IPBP2.ODL;191
06.05.2022 01:23 512 IPBP2.ODL;191.image
06.05.2022 01:23 106 IPBP2.ODL;191.text
06.05.2022 01:23 1 262 KITIDENT.DAT;1
06.05.2022 01:23 1 536 KITIDENT.DAT;1.image
344 File(s) 6 786 684 bytes
2 Dir(s) 19 744 227 328 bytes free

>type "[1,1]\CLIDF.H;3.text"

/*
* CLI Parser Block definitions & flags
*
* INCLUDE CX.H PRIOR TO INCLUDING THIS FILE
*
* Bob Denny
* 20-Oct-82
*/

struct clipb {
struct tcb *c_ptcb; /* --> TCB of CLI task */
rad50 c_pnam[2]; /* CLI task name (rad50) */
word c_psts; /* Status flags (see below) */
byte c_pdpl; /* Length of default prompt string */
byte c_pcpl; /* Length of ^C prompt string */
char c_prmt[]; /* Prompt strings */
};

/*
* Bits in c_psts
*/
#define CP_NUL 0001
#define CP_MSG 0002
#define CP_LGO 0004
#define CP_DSB 0010
#define CP_PRV 0020
#define CP_SGL 0040
#define CP_NIO 0100
#define CP_RST 0200
#define CP_EXT 0400

/*
* Identifier codes for system --> CLI messages
*/
#define CM_INE 1
#define CM_IND 2
#define CM_CEN 3
#define CM_CDS 4
#define CM_ELM 5
#define CM_EXT 6
#define CM_LKT 7
#define CM_RMT 8
#define CM_MSG 9


- - - Добавлено - - -

Вычистка ошибок и неверных предположений. Пока на тестовом диске обрабатывает примерно 150 каталогов из 207 - потом сбой при попытке конвертировать текстовый файл. К сожалению, при работе под VS сильное замедление, но только под ней можно поймать ошибку и поиграться с ней.. :)

- - - Добавлено - - -

Немного переделал выбор добавляемого суффикса. Пример каталога:


Volume in drive K is PDP11_K
Volume Serial Number is C078-C80A

Directory of K:\Repo\2022\ForDebug\PiDP11_DU0\[1,1]

06.05.2022 02:48 <DIR> .
06.05.2022 02:49 <DIR> ..
06.05.2022 02:46 468 ATOF.OBJ;5
06.05.2022 02:46 512 ATOF.OBJ;5.image
06.05.2022 02:46 841 AUTOIN.LOG;1
06.05.2022 02:46 864 AUTOIN.LOG;1.binary
06.05.2022 02:46 1 024 AUTOIN.LOG;1.image
06.05.2022 02:46 60 B25SH1.STB;4
06.05.2022 02:46 512 B25SH1.STB;4.image
06.05.2022 02:46 9 216 B25SH1.TSK;4
06.05.2022 02:46 2 224 B25SHR.STB;4
06.05.2022 02:46 2 560 B25SHR.STB;4.image
06.05.2022 02:46 8 704 B25SHR.TSK;4
06.05.2022 02:46 22 664 BCPLIB.OLB;2
06.05.2022 02:46 23 040 BCPLIB.OLB;2.image
06.05.2022 02:46 285 BP2IC0.ODL;8
06.05.2022 02:46 300 BP2IC0.ODL;8.binary
06.05.2022 02:46 512 BP2IC0.ODL;8.image
06.05.2022 02:46 285 BP2IC1.ODL;8
06.05.2022 02:46 298 BP2IC1.ODL;8.binary
06.05.2022 02:46 512 BP2IC1.ODL;8.image
06.05.2022 02:46 276 BP2IC2.ODL;8
06.05.2022 02:46 290 BP2IC2.ODL;8.binary
06.05.2022 02:46 512 BP2IC2.ODL;8.image
06.05.2022 02:46 317 BP2IC3.ODL;8
06.05.2022 02:46 332 BP2IC3.ODL;8.binary
06.05.2022 02:46 512 BP2IC3.ODL;8.image
06.05.2022 02:46 275 BP2IC4.ODL;8
06.05.2022 02:46 290 BP2IC4.ODL;8.binary
06.05.2022 02:46 512 BP2IC4.ODL;8.image
06.05.2022 02:46 304 BP2IC5.ODL;8
06.05.2022 02:46 318 BP2IC5.ODL;8.binary
06.05.2022 02:46 512 BP2IC5.ODL;8.image
06.05.2022 02:46 295 BP2IC6.ODL;8
06.05.2022 02:46 308 BP2IC6.ODL;8.binary
06.05.2022 02:46 512 BP2IC6.ODL;8.image
06.05.2022 02:46 340 BP2IC7.ODL;8
06.05.2022 02:46 354 BP2IC7.ODL;8.binary
06.05.2022 02:46 512 BP2IC7.ODL;8.image
06.05.2022 02:46 133 018 BP2OTS.OLB;9
06.05.2022 02:46 133 120 BP2OTS.OLB;9.image
06.05.2022 02:46 29 640 BP2RES.STB;3
06.05.2022 02:46 29 696 BP2RES.STB;3.image
06.05.2022 02:46 37 376 BP2RES.TSK;3
06.05.2022 02:46 4 720 BP2SML.STB;111
06.05.2022 02:46 5 120 BP2SML.STB;111.image
06.05.2022 02:46 4 720 BP2SML.STB;112
06.05.2022 02:46 5 120 BP2SML.STB;112.image
06.05.2022 02:48 4 720 BP2SML.STB;113
06.05.2022 02:48 5 120 BP2SML.STB;113.image
06.05.2022 02:46 17 408 BP2SML.TSK;111
06.05.2022 02:46 17 408 BP2SML.TSK;112
06.05.2022 02:48 17 408 BP2SML.TSK;113
06.05.2022 02:47 20 482 BQTBP2.OLB;193
06.05.2022 02:47 280 576 BQTBP2.OLB;193.image
06.05.2022 02:48 19 528 BQTC.OLB;129
06.05.2022 02:48 370 688 BQTC.OLB;129.image
06.05.2022 02:46 1 745 BQTLIB.B2S;190
06.05.2022 02:46 1 768 BQTLIB.B2S;190.binary
06.05.2022 02:46 2 048 BQTLIB.B2S;190.image
06.05.2022 02:46 1 745 BQTLIB.B2S;191
06.05.2022 02:46 1 768 BQTLIB.B2S;191.binary
06.05.2022 02:46 2 048 BQTLIB.B2S;191.image
06.05.2022 02:48 1 745 BQTLIB.B2S;192
06.05.2022 02:48 1 768 BQTLIB.B2S;192.binary
06.05.2022 02:48 2 048 BQTLIB.B2S;192.image
06.05.2022 02:46 2 024 BQTLIB.H;126
06.05.2022 02:46 2 064 BQTLIB.H;126.binary
06.05.2022 02:46 2 560 BQTLIB.H;126.image
06.05.2022 02:46 2 024 BQTLIB.H;127
06.05.2022 02:46 2 064 BQTLIB.H;127.binary
06.05.2022 02:46 2 560 BQTLIB.H;127.image
06.05.2022 02:48 2 024 BQTLIB.H;128
06.05.2022 02:48 2 064 BQTLIB.H;128.binary
06.05.2022 02:48 2 560 BQTLIB.H;128.image
06.05.2022 02:47 44 540 BQTLIB.OLB;215
06.05.2022 02:47 659 456 BQTLIB.OLB;215.image
06.05.2022 02:47 11 220 BQTMAC.MLB;213
06.05.2022 02:47 62 976 BQTMAC.MLB;213.image
06.05.2022 02:46 4 912 BSCPUR.STB;1
06.05.2022 02:46 5 120 BSCPUR.STB;1.image
06.05.2022 02:46 23 040 BSCPUR.TSK;1
06.05.2022 02:46 61 058 C.OLB;5
06.05.2022 02:46 61 440 C.OLB;5.image
06.05.2022 02:46 66 494 C81CIS.OLB;1
06.05.2022 02:46 66 560 C81CIS.OLB;1.image
06.05.2022 02:46 68 664 C81LIB.OLB;1
06.05.2022 02:46 69 120 C81LIB.OLB;1.image
06.05.2022 02:46 4 210 C81RTE.TXT;1
06.05.2022 02:46 4 246 C81RTE.TXT;1.binary
06.05.2022 02:46 4 608 C81RTE.TXT;1.image
06.05.2022 02:46 976 CCSMRX.STB;108
06.05.2022 02:46 1 024 CCSMRX.STB;108.image
06.05.2022 02:46 976 CCSMRX.STB;109
06.05.2022 02:46 1 024 CCSMRX.STB;109.image
06.05.2022 02:48 976 CCSMRX.STB;110
06.05.2022 02:48 1 024 CCSMRX.STB;110.image
06.05.2022 02:46 35 840 CCSMRX.TSK;108
06.05.2022 02:46 35 840 CCSMRX.TSK;109
06.05.2022 02:48 35 840 CCSMRX.TSK;110
06.05.2022 02:46 245 194 CEISRE.OLB;1
06.05.2022 02:46 245 248 CEISRE.OLB;1.image
06.05.2022 02:46 262 564 CEISRSX.OLB;1
06.05.2022 02:46 262 656 CEISRSX.OLB;1.image
06.05.2022 02:46 236 864 CFPURE.OLB;1
06.05.2022 02:46 237 056 CFPURE.OLB;1.image
06.05.2022 02:46 269 214 CFPURSX.OLB;1
06.05.2022 02:46 269 312 CFPURSX.OLB;1.image
06.05.2022 02:46 1 085 CLIDF.H;3
06.05.2022 02:46 1 104 CLIDF.H;3.binary
06.05.2022 02:46 1 536 CLIDF.H;3.image
06.05.2022 02:46 18 793 CMACS.MAC;7
06.05.2022 02:46 19 232 CMACS.MAC;7.binary
06.05.2022 02:46 19 456 CMACS.MAC;7.image
06.05.2022 02:46 11 204 CN.OLB;3
06.05.2022 02:46 51 200 CN.OLB;3.image
06.05.2022 02:46 74 054 CR.OLB;2
06.05.2022 02:46 74 240 CR.OLB;2.image
06.05.2022 02:46 5 145 CSET.H;3
06.05.2022 02:46 5 194 CSET.H;3.binary
06.05.2022 02:46 5 632 CSET.H;3.image
06.05.2022 02:46 919 CSIS.H;3
06.05.2022 02:46 942 CSIS.H;3.binary
06.05.2022 02:46 1 024 CSIS.H;3.image
06.05.2022 02:46 2 879 CTYPE.H;9
06.05.2022 02:46 2 920 CTYPE.H;9.binary
06.05.2022 02:46 3 072 CTYPE.H;9.image
06.05.2022 02:46 41 096 CU.OLB;3
06.05.2022 02:46 51 200 CU.OLB;3.image
06.05.2022 02:46 1 312 CX.H;3
06.05.2022 02:46 1 322 CX.H;3.binary
06.05.2022 02:46 1 536 CX.H;3.image
06.05.2022 02:46 23 332 CX.OLB;3
06.05.2022 02:46 23 552 CX.OLB;3.image
06.05.2022 02:47 2 953 DAP11X.ODL;1
06.05.2022 02:47 2 980 DAP11X.ODL;1.binary
06.05.2022 02:47 3 072 DAP11X.ODL;1.image
06.05.2022 02:46 974 DAPRES.STB;1
06.05.2022 02:46 1 024 DAPRES.STB;1.image
06.05.2022 02:47 20 480 DAPRES.TSK;1
06.05.2022 02:47 830 DAPRLX.ODL;1
06.05.2022 02:47 844 DAPRLX.ODL;1.binary
06.05.2022 02:47 1 024 DAPRLX.ODL;1.image
06.05.2022 02:47 1 264 DBGAID.OBJ;1
06.05.2022 02:47 1 536 DBGAID.OBJ;1.image
06.05.2022 02:47 747 DCBDF.H;3
06.05.2022 02:47 752 DCBDF.H;3.binary
06.05.2022 02:47 1 024 DCBDF.H;3.image
06.05.2022 02:47 39 124 DEBUG.OLB;1
06.05.2022 02:47 39 424 DEBUG.OLB;1.image
06.05.2022 02:47 8 724 DEUNA.MLB;1
06.05.2022 02:47 9 216 DEUNA.MLB;1.image
06.05.2022 02:47 8 267 DIRSYM.H;3
06.05.2022 02:47 8 270 DIRSYM.H;3.binary
06.05.2022 02:47 8 704 DIRSYM.H;3.image
06.05.2022 02:46 5 045 DNET.H;45
06.05.2022 02:46 5 116 DNET.H;45.binary
06.05.2022 02:46 5 120 DNET.H;45.image
06.05.2022 02:46 5 045 DNET.H;46
06.05.2022 02:46 5 116 DNET.H;46.binary
06.05.2022 02:46 5 120 DNET.H;46.image
06.05.2022 02:48 5 045 DNET.H;47
06.05.2022 02:48 5 116 DNET.H;47.binary
06.05.2022 02:48 5 120 DNET.H;47.image
06.05.2022 02:47 38 076 DTCLIB.OLB;1
06.05.2022 02:47 52 224 DTCLIB.OLB;1.image
06.05.2022 02:47 892 DTOA.OBJ;5
06.05.2022 02:47 1 024 DTOA.OBJ;5.image
06.05.2022 02:47 420 754 DTRLIB.OLB;1
06.05.2022 02:47 420 864 DTRLIB.OLB;1.image
06.05.2022 02:47 11 500 EISLIB.OLB;1
06.05.2022 02:47 11 776 EISLIB.OLB;1.image
06.05.2022 02:47 25 730 EXEDF.H;3
06.05.2022 02:47 26 268 EXEDF.H;3.binary
06.05.2022 02:47 26 624 EXEDF.H;3.image
06.05.2022 02:47 14 606 EXEDF32.H;3
06.05.2022 02:47 14 872 EXEDF32.H;3.binary
06.05.2022 02:47 15 360 EXEDF32.H;3.image
06.05.2022 02:47 40 554 EXELIB.OLB;1
06.05.2022 02:47 40 960 EXELIB.OLB;1.image
06.05.2022 02:47 82 030 EXEMC.MLB;1
06.05.2022 02:47 82 432 EXEMC.MLB;1.image
06.05.2022 02:47 5 138 F11.H;3
06.05.2022 02:47 5 202 F11.H;3.binary
06.05.2022 02:47 5 632 F11.H;3.image
06.05.2022 02:47 2 328 F11QIO.H;3
06.05.2022 02:47 2 350 F11QIO.H;3.binary
06.05.2022 02:47 2 560 F11QIO.H;3.image
06.05.2022 02:47 25 022 F52LIB.OLB;1
06.05.2022 02:47 25 088 F52LIB.OLB;1.image
06.05.2022 02:47 7 052 F7711S.OBS;2
06.05.2022 02:47 7 168 F7711S.OBS;2.image
06.05.2022 02:47 1 622 F77CVF.OBJ;2
06.05.2022 02:47 2 048 F77CVF.OBJ;2.image
06.05.2022 02:47 748 F77EIS.OBS;2
06.05.2022 02:47 1 024 F77EIS.OBS;2.image
06.05.2022 02:47 37 942 F77EP.MAC;2
06.05.2022 02:47 38 822 F77EP.MAC;2.binary
06.05.2022 02:47 38 912 F77EP.MAC;2.image
06.05.2022 02:47 3 202 F77F77.LOG;1
06.05.2022 02:47 3 230 F77F77.LOG;1.binary
06.05.2022 02:47 3 584 F77F77.LOG;1.image
06.05.2022 02:47 69 158 F77FCS.OLB;2
06.05.2022 02:47 76 800 F77FCS.OLB;2.image
06.05.2022 02:47 7 104 F77GBL.XCL;2
06.05.2022 02:47 7 380 F77GBL.XCL;2.binary
06.05.2022 02:47 7 680 F77GBL.XCL;2.image
06.05.2022 02:47 88 F77NER.OBS;2
06.05.2022 02:47 512 F77NER.OBS;2.image
06.05.2022 02:47 7 052 F77NIO.OBS;2
06.05.2022 02:47 7 168 F77NIO.OBS;2.image
06.05.2022 02:47 406 F77RAN.OBS;2
06.05.2022 02:47 512 F77RAN.OBS;2.image
06.05.2022 02:47 74 908 F77RMS.OLB;2
06.05.2022 02:47 76 800 F77RMS.OLB;2.image
06.05.2022 02:47 816 F77VEC.MAC;2
06.05.2022 02:47 830 F77VEC.MAC;2.binary
06.05.2022 02:47 1 024 F77VEC.MAC;2.image
06.05.2022 02:47 7 693 F7FCLS.BLD;2
06.05.2022 02:47 7 796 F7FCLS.BLD;2.binary
06.05.2022 02:47 8 192 F7FCLS.BLD;2.image
06.05.2022 02:47 830 F7FCLS.CMD;2
06.05.2022 02:47 868 F7FCLS.CMD;2.binary
06.05.2022 02:47 1 024 F7FCLS.CMD;2.image
06.05.2022 02:47 8 957 F7FCLS.MAC;2
06.05.2022 02:47 9 102 F7FCLS.MAC;2.binary
06.05.2022 02:47 9 216 F7FCLS.MAC;2.image
06.05.2022 02:47 1 472 F7FCLS.STB;1
06.05.2022 02:47 1 536 F7FCLS.STB;1.image
06.05.2022 02:47 17 408 F7FCLS.TSK;1
06.05.2022 02:47 7 575 F7FRES.BLD;2
06.05.2022 02:47 7 674 F7FRES.BLD;2.binary
06.05.2022 02:47 7 680 F7FRES.BLD;2.image
06.05.2022 02:47 197 F7FRES.CMD;2
06.05.2022 02:47 202 F7FRES.CMD;2.binary
06.05.2022 02:47 512 F7FRES.CMD;2.image
06.05.2022 02:47 8 577 F7FRES.MAC;2
06.05.2022 02:47 8 714 F7FRES.MAC;2.binary
06.05.2022 02:47 9 216 F7FRES.MAC;2.image
06.05.2022 02:47 7 694 F7RCLS.BLD;2
06.05.2022 02:47 7 794 F7RCLS.BLD;2.binary
06.05.2022 02:47 8 192 F7RCLS.BLD;2.image
06.05.2022 02:47 238 F7RCLS.CMD;2
06.05.2022 02:47 244 F7RCLS.CMD;2.binary
06.05.2022 02:47 512 F7RCLS.CMD;2.image
06.05.2022 02:47 8 879 F7RCLS.MAC;2
06.05.2022 02:47 9 018 F7RCLS.MAC;2.binary
06.05.2022 02:47 9 216 F7RCLS.MAC;2.image
06.05.2022 02:47 1 532 F7RCLS.STB;1
06.05.2022 02:47 1 536 F7RCLS.STB;1.image
06.05.2022 02:47 17 408 F7RCLS.TSK;1
06.05.2022 02:47 7 734 F7SRES.BLD;2
06.05.2022 02:47 7 834 F7SRES.BLD;2.binary
06.05.2022 02:47 8 192 F7SRES.BLD;2.image
06.05.2022 02:47 248 F7SRES.CMD;2
06.05.2022 02:47 254 F7SRES.CMD;2.binary
06.05.2022 02:47 512 F7SRES.CMD;2.image
06.05.2022 02:47 8 982 F7SRES.MAC;2
06.05.2022 02:47 9 126 F7SRES.MAC;2.binary
06.05.2022 02:47 9 216 F7SRES.MAC;2.image
06.05.2022 02:47 813 FCS.MAC;2
06.05.2022 02:47 828 FCS.MAC;2.binary
06.05.2022 02:47 1 024 FCS.MAC;2.image
06.05.2022 02:47 12 462 FCS.OBJ;1
06.05.2022 02:47 12 800 FCS.OBJ;1.image
06.05.2022 02:47 16 327 FCS11M.ODL;2
06.05.2022 02:47 16 552 FCS11M.ODL;2.binary
06.05.2022 02:47 16 896 FCS11M.ODL;2.image
06.05.2022 02:47 712 FCSFSL.STB;1
06.05.2022 02:47 1 024 FCSFSL.STB;1.image
06.05.2022 02:47 512 FCSFSL.TSK;1
06.05.2022 02:47 27 706 FCSFULL.OBS;1
06.05.2022 02:47 28 160 FCSFULL.OBS;1.image
06.05.2022 02:47 4 428 FCSGBL.H;3
06.05.2022 02:47 4 430 FCSGBL.H;3.binary
06.05.2022 02:47 4 608 FCSGBL.H;3.image
06.05.2022 02:47 2 142 FCSLOG.OBS;1
06.05.2022 02:47 2 560 FCSLOG.OBS;1.image
06.05.2022 02:47 16 480 FCSMBF.OBJ;1
06.05.2022 02:47 16 896 FCSMBF.OBJ;1.image
06.05.2022 02:47 15 420 FCSMTA.OBJ;1
06.05.2022 02:47 15 872 FCSMTA.OBJ;1.image
06.05.2022 02:47 952 FCSNOLOG.OBS;1
06.05.2022 02:47 1 024 FCSNOLOG.OBS;1.image
06.05.2022 02:47 9 150 FCSNOVACP.OBS;1
06.05.2022 02:47 9 216 FCSNOVACP.OBS;1.image
06.05.2022 02:47 5 912 FCSRES.STB;1
06.05.2022 02:47 6 144 FCSRES.STB;1.image
06.05.2022 02:47 17 920 FCSRES.TSK;1
06.05.2022 02:47 7 375 FCSSTDIO.H;2
06.05.2022 02:47 7 484 FCSSTDIO.H;2.binary
06.05.2022 02:47 7 680 FCSSTDIO.H;2.image
06.05.2022 02:47 26 750 FDVLIB.OLB;1
06.05.2022 02:47 27 136 FDVLIB.OLB;1.image
06.05.2022 02:47 27 254 FDVLRM.OLB;1
06.05.2022 02:47 27 648 FDVLRM.OLB;1.image
06.05.2022 02:47 1 615 FEAT.H;3
06.05.2022 02:47 1 668 FEAT.H;3.binary
06.05.2022 02:47 2 048 FEAT.H;3.image
06.05.2022 02:47 2 511 FLEX.H;3
06.05.2022 02:47 2 548 FLEX.H;3.binary
06.05.2022 02:47 2 560 FLEX.H;3.image
06.05.2022 02:47 4 392 FMSMAC.MLB;1
06.05.2022 02:47 4 608 FMSMAC.MLB;1.image
06.05.2022 02:47 1 693 FPS.H;9
06.05.2022 02:47 1 718 FPS.H;9.binary
06.05.2022 02:47 2 048 FPS.H;9.image
06.05.2022 02:47 1 522 GCCIDF.H;3
06.05.2022 02:47 1 534 GCCIDF.H;3.binary
06.05.2022 02:47 1 536 GCCIDF.H;3.image
06.05.2022 02:47 1 898 GCIBUF.H;3
06.05.2022 02:47 1 920 GCIBUF.H;3.binary
06.05.2022 02:47 2 048 GCIBUF.H;3.image
06.05.2022 02:47 4 014 HDRDF.H;3
06.05.2022 02:47 4 040 HDRDF.H;3.binary
06.05.2022 02:47 4 096 HDRDF.H;3.image
06.05.2022 02:47 54 494 HPG.OLB;1
06.05.2022 02:47 54 784 HPG.OLB;1.image
06.05.2022 02:46 2 016 INET.B2S;202
06.05.2022 02:46 2 046 INET.B2S;202.binary
06.05.2022 02:46 2 048 INET.B2S;202.image
06.05.2022 02:46 2 016 INET.B2S;203
06.05.2022 02:46 2 046 INET.B2S;203.binary
06.05.2022 02:46 2 048 INET.B2S;203.image
06.05.2022 02:48 2 016 INET.B2S;204
06.05.2022 02:48 2 046 INET.B2S;204.binary
06.05.2022 02:48 2 048 INET.B2S;204.image
06.05.2022 02:46 933 INET.FTN;191
06.05.2022 02:46 946 INET.FTN;191.binary
06.05.2022 02:46 1 024 INET.FTN;191.image
06.05.2022 02:46 933 INET.FTN;192
06.05.2022 02:46 946 INET.FTN;192.binary
06.05.2022 02:46 1 024 INET.FTN;192.image
06.05.2022 02:48 933 INET.FTN;193
06.05.2022 02:48 946 INET.FTN;193.binary
06.05.2022 02:48 1 024 INET.FTN;193.image
06.05.2022 02:46 2 889 INET.H;190
06.05.2022 02:46 2 934 INET.H;190.binary
06.05.2022 02:46 3 072 INET.H;190.image
06.05.2022 02:46 2 889 INET.H;191
06.05.2022 02:46 2 934 INET.H;191.binary
06.05.2022 02:46 3 072 INET.H;191.image
06.05.2022 02:48 2 889 INET.H;192
06.05.2022 02:48 2 934 INET.H;192.binary
06.05.2022 02:48 3 072 INET.H;192.image
06.05.2022 02:46 1 183 INET.PAS;12
06.05.2022 02:46 1 202 INET.PAS;12.binary
06.05.2022 02:46 1 536 INET.PAS;12.image
06.05.2022 02:46 1 183 INET.PAS;13
06.05.2022 02:46 1 202 INET.PAS;13.binary
06.05.2022 02:46 1 536 INET.PAS;13.image
06.05.2022 02:48 1 183 INET.PAS;14
06.05.2022 02:48 1 202 INET.PAS;14.binary
06.05.2022 02:48 1 536 INET.PAS;14.image
06.05.2022 02:47 5 819 INITIA.H;11
06.05.2022 02:47 5 882 INITIA.H;11.binary
06.05.2022 02:47 6 144 INITIA.H;11.image
06.05.2022 02:47 993 IOPKT.H;3
06.05.2022 02:47 1 002 IOPKT.H;3.binary
06.05.2022 02:47 1 024 IOPKT.H;3.image
06.05.2022 02:46 106 IPBP2.ODL;190
06.05.2022 02:46 108 IPBP2.ODL;190.binary
06.05.2022 02:46 512 IPBP2.ODL;190.image
06.05.2022 02:46 106 IPBP2.ODL;191
06.05.2022 02:46 108 IPBP2.ODL;191.binary
06.05.2022 02:46 512 IPBP2.ODL;191.image
06.05.2022 02:48 106 IPBP2.ODL;192
06.05.2022 02:48 108 IPBP2.ODL;192.binary
06.05.2022 02:48 512 IPBP2.ODL;192.image
06.05.2022 02:47 16 642 IPBP2.OLB;213
06.05.2022 02:47 128 512 IPBP2.OLB;213.image
06.05.2022 02:47 11 542 IPC.OLB;213
06.05.2022 02:47 114 176 IPC.OLB;213.image
06.05.2022 02:47 10 344 IPF77.OLB;212
06.05.2022 02:47 51 200 IPF77.OLB;212.image
06.05.2022 02:47 13 508 IPLIB.OLB;213
06.05.2022 02:47 121 856 IPLIB.OLB;213.image
06.05.2022 02:47 7 474 IPMAC.MLB;213
06.05.2022 02:47 60 416 IPMAC.MLB;213.image
06.05.2022 02:47 8 592 IPPAS.OLB;14
06.05.2022 02:47 51 200 IPPAS.OLB;14.image
06.05.2022 02:47 742 KITIDENT.DAT;1
06.05.2022 02:47 750 KITIDENT.DAT;1.binary
06.05.2022 02:47 1 536 KITIDENT.DAT;1.image
06.05.2022 02:47 1 568 LEX.H;4
06.05.2022 02:47 1 598 LEX.H;4.binary
06.05.2022 02:47 2 048 LEX.H;4.image
06.05.2022 02:47 19 652 LEXLIB.OLB;4
06.05.2022 02:47 51 200 LEXLIB.OLB;4.image
06.05.2022 02:47 8 124 LPA.OBJ;1
06.05.2022 02:47 8 192 LPA.OBJ;1.image
06.05.2022 02:47 1 536 LUAMC.TSK;1
06.05.2022 02:47 720 LUNBUF.H;3
06.05.2022 02:47 732 LUNBUF.H;3.binary
06.05.2022 02:47 1 024 LUNBUF.H;3.image
06.05.2022 02:47 4 962 MGEFIL.ODL;1
06.05.2022 02:47 5 038 MGEFIL.ODL;1.binary
06.05.2022 02:47 5 120 MGEFIL.ODL;1.image
06.05.2022 02:47 95 766 MGELIB.OLB;1
06.05.2022 02:47 96 256 MGELIB.OLB;1.image
06.05.2022 02:47 4 727 MGEREC.ODL;1
06.05.2022 02:47 4 800 MGEREC.ODL;1.binary
06.05.2022 02:47 5 120 MGEREC.ODL;1.image
06.05.2022 02:47 98 304 MGESHR.OLB;1
06.05.2022 02:47 43 478 NETFOR.OLB;5
06.05.2022 02:47 43 520 NETFOR.OLB;5.image
06.05.2022 02:47 43 478 NETFOR.OLB;6
06.05.2022 02:47 43 520 NETFOR.OLB;6.image
06.05.2022 02:47 53 522 NETLIB.MLB;5
06.05.2022 02:47 53 760 NETLIB.MLB;5.image
06.05.2022 02:47 53 522 NETLIB.MLB;6
06.05.2022 02:47 53 760 NETLIB.MLB;6.image
06.05.2022 02:47 138 330 NOANSLIB.OLB;1
06.05.2022 02:47 138 752 NOANSLIB.OLB;1.image
06.05.2022 02:47 10 956 NOVACPLIB.OLB;1
06.05.2022 02:47 11 264 NOVACPLIB.OLB;1.image
06.05.2022 02:47 538 OCBDF.H;3
06.05.2022 02:47 544 OCBDF.H;3.binary
06.05.2022 02:47 1 024 OCBDF.H;3.image
06.05.2022 02:47 3 924 ODT.OBJ;1
06.05.2022 02:47 4 096 ODT.OBJ;1.image
06.05.2022 02:47 6 924 ODTID.OBJ;1
06.05.2022 02:47 7 168 ODTID.OBJ;1.image
06.05.2022 02:47 9 202 PAS.ODL;1
06.05.2022 02:47 9 388 PAS.ODL;1.binary
06.05.2022 02:47 9 728 PAS.ODL;1.image
06.05.2022 02:47 135 580 PASLIB.OLB;1
06.05.2022 02:47 135 680 PASLIB.OLB;1.image
06.05.2022 02:47 1 205 PCBDF.H;3
06.05.2022 02:47 1 216 PCBDF.H;3.binary
06.05.2022 02:47 1 536 PCBDF.H;3.image
06.05.2022 02:47 13 932 PDFMAP.OBS;2
06.05.2022 02:47 14 336 PDFMAP.OBS;2.image
06.05.2022 02:47 11 588 PDPDBG.OBJ;1
06.05.2022 02:47 11 776 PDPDBG.OBJ;1.image
06.05.2022 02:47 11 458 PDPDBG.OBJ;2
06.05.2022 02:47 11 776 PDPDBG.OBJ;2.image
06.05.2022 02:47 633 PDPDBG.ODL;1
06.05.2022 02:47 644 PDPDBG.ODL;1.binary
06.05.2022 02:47 1 024 PDPDBG.ODL;1.image
06.05.2022 02:47 21 364 PDPDBG.OLB;1
06.05.2022 02:47 21 504 PDPDBG.OLB;1.image
06.05.2022 02:47 13 758 PDPDBG.OLB;2
06.05.2022 02:47 13 824 PDPDBG.OLB;2.image
06.05.2022 02:47 519 PPARBF.H;3
06.05.2022 02:47 526 PPARBF.H;3.binary
06.05.2022 02:47 1 024 PPARBF.H;3.image
06.05.2022 02:47 2 630 PURICR.OBJ;1
06.05.2022 02:47 3 072 PURICR.OBJ;1.image
06.05.2022 02:47 3 808 PURISA.OBJ;1
06.05.2022 02:47 4 096 PURISA.OBJ;1.image
06.05.2022 02:47 6 740 PURPCS.OBJ;1
06.05.2022 02:47 7 168 PURPCS.OBJ;1.image
06.05.2022 02:47 1 298 PURUDC.OBJ;2
06.05.2022 02:47 1 536 PURUDC.OBJ;2.image
06.05.2022 02:47 1 514 QIOFUN.H;3
06.05.2022 02:47 1 528 QIOFUN.H;3.binary
06.05.2022 02:47 1 536 QIOFUN.H;3.image
06.05.2022 02:47 2 350 QIORET.H;3
06.05.2022 02:47 2 436 QIORET.H;3.binary
06.05.2022 02:47 2 560 QIORET.H;3.image
06.05.2022 02:47 4 763 QIOTTD.H;3
06.05.2022 02:47 4 890 QIOTTD.H;3.binary
06.05.2022 02:47 5 120 QIOTTD.H;3.image
06.05.2022 02:47 5 944 R0RMS1.MAC;1
06.05.2022 02:47 6 014 R0RMS1.MAC;1.binary
06.05.2022 02:47 6 144 R0RMS1.MAC;1.image
06.05.2022 02:47 1 094 RDBDF.H;3
06.05.2022 02:47 1 106 RDBDF.H;3.binary
06.05.2022 02:47 1 536 RDBDF.H;3.image
06.05.2022 02:47 5 074 RMS11.H;1
06.05.2022 02:47 5 196 RMS11.H;1.binary
06.05.2022 02:47 5 632 RMS11.H;1.image
06.05.2022 02:47 43 049 RMS11.ODL;1
06.05.2022 02:47 43 566 RMS11.ODL;1.binary
06.05.2022 02:47 44 032 RMS11.ODL;1.image
06.05.2022 02:47 16 424 RMS11M.ODL;2
06.05.2022 02:47 16 654 RMS11M.ODL;2.binary
06.05.2022 02:47 16 896 RMS11M.ODL;2.image
06.05.2022 02:47 2 060 RMS11S.ODL;1
06.05.2022 02:47 2 086 RMS11S.ODL;1.binary
06.05.2022 02:47 2 560 RMS11S.ODL;1.image
06.05.2022 02:47 3 007 RMS11X.ODL;1
06.05.2022 02:47 3 038 RMS11X.ODL;1.binary
06.05.2022 02:47 3 072 RMS11X.ODL;1.image
06.05.2022 02:47 1 900 RMS12S.ODL;1
06.05.2022 02:47 1 922 RMS12S.ODL;1.binary
06.05.2022 02:47 2 048 RMS12S.ODL;1.image
06.05.2022 02:47 2 719 RMS12X.ODL;1
06.05.2022 02:47 2 746 RMS12X.ODL;1.binary
06.05.2022 02:47 3 072 RMS12X.ODL;1.image
06.05.2022 02:47 13 666 RMSC81.ODL;1
06.05.2022 02:47 13 958 RMSC81.ODL;1.binary
06.05.2022 02:47 14 336 RMSC81.ODL;1.image
06.05.2022 02:47 52 198 RMSDAP.OLB;1
06.05.2022 02:47 52 224 RMSDAP.OLB;1.image
06.05.2022 02:47 4 552 RMSFUN.OBJ;1
06.05.2022 02:47 4 608 RMSFUN.OBJ;1.image
06.05.2022 02:47 9 728 RMSLBL.TSK;1
06.05.2022 02:47 15 872 RMSLBM.TSK;1
06.05.2022 02:47 113 568 RMSLIB.OLB;1
06.05.2022 02:47 113 664 RMSLIB.OLB;1.image
06.05.2022 02:47 96 536 RMSMAC.MLB;1
06.05.2022 02:47 96 768 RMSMAC.MLB;1.image
06.05.2022 02:47 1 370 RMSRES.STB;1
06.05.2022 02:47 1 536 RMSRES.STB;1.image
06.05.2022 02:47 2 048 RMSRES.TSK;1
06.05.2022 02:47 24 576 RMSRESAB.TSK;1
06.05.2022 02:47 806 RMSRLX.ODL;1
06.05.2022 02:47 820 RMSRLX.ODL;1.binary
06.05.2022 02:47 1 024 RMSRLX.ODL;1.image
06.05.2022 02:47 839 RMSSLX.ODL;1
06.05.2022 02:47 854 RMSSLX.ODL;1.binary
06.05.2022 02:47 1 024 RMSSLX.ODL;1.image
06.05.2022 02:47 537 RPARBF.H;3
06.05.2022 02:47 546 RPARBF.H;3.binary
06.05.2022 02:47 1 024 RPARBF.H;3.image
06.05.2022 02:47 157 042 RSXMAC.SML;1
06.05.2022 02:47 157 184 RSXMAC.SML;1.image
06.05.2022 02:47 1 240 RTIME.H;9
06.05.2022 02:47 1 262 RTIME.H;9.binary
06.05.2022 02:47 1 536 RTIME.H;9.image
06.05.2022 02:47 1 765 SCBDF.H;3
06.05.2022 02:47 1 780 SCBDF.H;3.binary
06.05.2022 02:47 2 048 SCBDF.H;3.image
06.05.2022 02:47 34 SETACD.CMD;1
06.05.2022 02:47 34 SETACD.CMD;1.binary
06.05.2022 02:47 512 SETACD.CMD;1.image
06.05.2022 02:47 444 SETJMP.H;9
06.05.2022 02:47 452 SETJMP.H;9.binary
06.05.2022 02:47 512 SETJMP.H;9.image
06.05.2022 02:47 3 645 SPCIO.H;3
06.05.2022 02:47 3 650 SPCIO.H;3.binary
06.05.2022 02:47 4 096 SPCIO.H;3.image
06.05.2022 02:47 5 737 SRTFIL.ODL;1
06.05.2022 02:47 5 822 SRTFIL.ODL;1.binary
06.05.2022 02:47 6 144 SRTFIL.ODL;1.image
06.05.2022 02:47 105 486 SRTLIB.OLB;1
06.05.2022 02:47 105 984 SRTLIB.OLB;1.image
06.05.2022 02:47 5 432 SRTREC.ODL;1
06.05.2022 02:47 5 514 SRTREC.ODL;1.binary
06.05.2022 02:47 5 632 SRTREC.ODL;1.image
06.05.2022 02:47 108 032 SRTSHR.OLB;1
06.05.2022 02:47 2 316 STA85.OBJ;1
06.05.2022 02:47 2 560 STA85.OBJ;1.image
06.05.2022 02:47 2 316 STA85C.OBJ;1
06.05.2022 02:47 2 560 STA85C.OBJ;1.image
06.05.2022 02:47 2 108 STAV2.OBJ;1
06.05.2022 02:47 2 560 STAV2.OBJ;1.image
06.05.2022 02:47 2 108 STAV2C.OBJ;1
06.05.2022 02:47 2 560 STAV2C.OBJ;1.image
06.05.2022 02:47 7 375 STDIO.H;8
06.05.2022 02:47 7 484 STDIO.H;8.binary
06.05.2022 02:47 7 680 STDIO.H;8.image
06.05.2022 02:47 4 050 STDNET.H;1
06.05.2022 02:47 4 110 STDNET.H;1.binary
06.05.2022 02:47 4 608 STDNET.H;1.image
06.05.2022 02:47 8 467 STMGFL.ODL;1
06.05.2022 02:47 8 588 STMGFL.ODL;1.binary
06.05.2022 02:47 8 704 STMGFL.ODL;1.image
06.05.2022 02:47 8 076 STMGRC.ODL;1
06.05.2022 02:47 8 192 STMGRC.ODL;1.binary
06.05.2022 02:47 143 102 SYSLIB.OLB;1
06.05.2022 02:47 143 360 SYSLIB.OLB;1.image
06.05.2022 02:47 129 024 SYSLIBV21.OLB;3
06.05.2022 02:47 143 106 SYSLIBV41.OLB;1
06.05.2022 02:47 143 360 SYSLIBV41.OLB;1.image
06.05.2022 02:47 2 328 TCBDF.H;3
06.05.2022 02:47 2 346 TCBDF.H;3.binary
06.05.2022 02:47 2 560 TCBDF.H;3.image
06.05.2022 02:47 577 TIMBUF.H;3
06.05.2022 02:47 584 TIMBUF.H;3.binary
06.05.2022 02:47 1 024 TIMBUF.H;3.image
06.05.2022 02:47 1 311 TIME.H;9
06.05.2022 02:47 1 334 TIME.H;9.binary
06.05.2022 02:47 1 536 TIME.H;9.image
06.05.2022 02:47 1 122 TIMEB.H;9
06.05.2022 02:47 1 138 TIMEB.H;9.binary
06.05.2022 02:47 1 536 TIMEB.H;9.image
06.05.2022 02:47 1 466 TPARBF.H;3
06.05.2022 02:47 1 486 TPARBF.H;3.binary
06.05.2022 02:47 1 536 TPARBF.H;3.image
06.05.2022 02:47 367 TYPDEF.H;3
06.05.2022 02:47 370 TYPDEF.H;3.binary
06.05.2022 02:47 512 TYPDEF.H;3.image
06.05.2022 02:47 1 392 UCBDF.H;3
06.05.2022 02:47 1 406 UCBDF.H;3.binary
06.05.2022 02:47 1 536 UCBDF.H;3.image
06.05.2022 02:47 1 536 UNAMC.TSK;1
06.05.2022 02:47 2 200 V2CSH.OBJ;1
06.05.2022 02:47 2 560 V2CSH.OBJ;1.image
06.05.2022 02:47 2 200 V2LSH.OBJ;1
06.05.2022 02:47 2 560 V2LSH.OBJ;1.image
06.05.2022 02:47 156 VERSION.CMD;1
06.05.2022 02:47 158 VERSION.CMD;1.binary
06.05.2022 02:47 512 VERSION.CMD;1.image
06.05.2022 02:47 8 342 VMLIB.OLB;1
06.05.2022 02:47 8 704 VMLIB.OLB;1.image
06.05.2022 02:47 2 451 VSTRIN.H;3
06.05.2022 02:47 2 482 VSTRIN.H;3.binary
06.05.2022 02:47 2 560 VSTRIN.H;3.image
06.05.2022 02:47 1 332 WDBDF.H;3
06.05.2022 02:47 1 344 WDBDF.H;3.binary
06.05.2022 02:47 1 536 WDBDF.H;3.image
06.05.2022 02:47 216 WIMP.H;3
06.05.2022 02:47 220 WIMP.H;3.binary
06.05.2022 02:47 512 WIMP.H;3.image
605 File(s) 12 726 914 bytes
2 Dir(s) 19 723 444 224 bytes free


- - - Добавлено - - -

Фсё, спать! :)

F11ACP
06.05.2022, 03:38
Если интересно, у меня есть читалка образов дисков ODS-1 (и много чего еще другого, в т.ч. образов лент), написанная на C. Умеет читать и текстовые файлы в FCS(RMS)-форматах тоже... Там не все готово (для других форматов файловых систем DEC), к сожалению, work-in-progress так сказать...

Hunta
06.05.2022, 10:28
у меня есть читалка образов дисков ODS-1
Готовые (в смысле собранные) программы не сильно интересны (особенно сейчас, когда по сути - ядро уже работает и распаковывает образы) - у меня планы несколько больше, чем только распаковка :)

- - - Добавлено - - -

Первый безошибочный проход - 207 каталогов, 7855 файлов :) В распакованном виде файлов несколько больше (18918) - так как большая часть файлов записана в двух форматах :) И на всё - 27 секунд :)

- - - Добавлено - - -

Взял другой образ для издевательств.. Издевается :) Где то посадил ошибку в случае файлов с размером больше (скорее всего) 65535 блоков.. Если точнее - программа споткнулась на файле размером 67000 блоков.. Пришлось запустить под VS.. Долго...

dk_spb
06.05.2022, 11:23
Если можно - добавьте потом туда функцию "карты" файлов. Иногда вычитывается дискета с ошибкой, например, на 5-й дорожке нулевой стороны 7 сектор. И нужно понять это в нужном файле или вообще можно забить, так как на пустом месте.

Hunta
06.05.2022, 13:14
добавьте потом туда функцию "карты" файлов
Это в принципе планировалось :)

- - - Добавлено - - -

Это был виноват не размер файла, а количество у него описателей VBN->LBN. Они находятся в заголовке файла, место ограничено, если файл большого размера - заводятся дополнительные заголовки. Пока обрабатывал только заголовок - для счётчика цикла хватало байта, когда добавилась обработка нескольких - для счётчика цикла байта не стало хватать - вот на этом (при вычислении размера файла) цикл и циклился :) Поправил.

Полуторогигабайтный образ, занят примерно гиг. 118 каталогов, 8586 файлов - распаковка - две минуты 34 секунды :)

- - - Добавлено - - -

Тестирование не в тестовой среде - начал пробовать на других образах дисков RSX..
Первый опыт вполне успешный.
Но свободное время закончилось - теперь вечером продолжу

Radon17
06.05.2022, 13:35
ODS-1 это очень интересно. Anasana вот только распаковщик сделал https://zx-pk.ru/threads/26459
А запаковщика нет. :(
Вот и не получается лёгкой работы, как с плагином для тоталкомандера под файловую систему от RT-11.

Перспективно такое сделать чтобы быстро редактировать ПРОС образы от Э85. Полноценная RSX-то на персоналках считай и не использовалась.

Hunta
06.05.2022, 13:59
А запаковщика нет
В планах, но более отдалённых - это посложней, чем распаковка :)


редактировать ПРОС образы от Э85
Там ещё надо понять - в чём отличия

Hunta
10.05.2022, 02:42
Уф.. Основное встраивание распаковки ODS-1 в штатный механизм программы - есть. Осталось только добавить сохранение в альтернативных форматах (особенно для текстовых файлов) и некоторой информации из заголовка. Но это уже.. скорее всего в среду.

Результат работы штатного механизма (помимо сохранения файлов :) ) - листинг содержимого в формате программы PIP :)



Directory [0,0]

INDEXF.SYS;1 (1,1) 1416./1416. 25-FEB-2015 21:13 [1,1] [RWED,RWED,RWED,R]
BITMAP.SYS;1 (2,2) 77./77. 25-FEB-2015 21:13 [1,1] [RWED,RWED,RWED,R]
BADBLK.SYS;1 (3,3) 1./1. 25-FEB-2015 21:13 [1,1] [RWED,RWED,RWED,R]
000000.DIR;1 (4,4) 1./1. C 25-FEB-2015 21:13 [1,1] [RWED,RWED,RWED,R]
CORIMG.SYS;1 (5,5) 0./0. 25-FEB-2015 21:13 [1,1] [RWED,RWED,RWED,R]
RSX11.SYS;1 (37,1) 26./26. C 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]
001001.DIR;1 (6,1) 2./2. C 25-FEB-2015 21:13 [1,1] [RWED,RWED,RWED,R]
001002.DIR;1 (7,1) 1./1. C 25-FEB-2015 21:13 [1,2] [RWED,RWED,RWED,R]
001003.DIR;1 (10,1) 1./1. C 25-FEB-2015 21:13 [1,3] [RWED,RWED,RWED,R]
001004.DIR;1 (11,1) 1./1. C 25-FEB-2015 21:13 [1,4] [RWED,RWED,RWED,R]
001006.DIR;1 (12,1) 1./1. C 25-FEB-2015 21:13 [1,6] [RWED,RWED,RWED,R]
001007.DIR;1 (13,1) 1./1. C 25-FEB-2015 21:13 [1,7] [RWED,RWED,RWED,R]
001010.DIR;1 (14,1) 1./1. C 25-FEB-2015 21:13 [1,10] [RWED,RWED,RWED,R]
001011.DIR;1 (15,1) 1./1. C 25-FEB-2015 21:13 [1,11] [RWED,RWED,RWED,R]
001020.DIR;1 (16,1) 4./4. C 25-FEB-2015 21:13 [1,20] [RWED,RWED,RWED,R]
001024.DIR;1 (17,1) 4./4. C 25-FEB-2015 21:13 [1,24] [RWED,RWED,RWED,R]
001034.DIR;1 (20,1) 1./1. C 25-FEB-2015 21:13 [1,34] [RWED,RWED,RWED,R]
001054.DIR;1 (21,1) 1./1. C 25-FEB-2015 21:13 [1,54] [RWED,RWED,RWED,R]
002054.DIR;1 (22,1) 2./2. C 25-FEB-2015 21:13 [2,54] [RWED,RWED,RWED,R]
003054.DIR;1 (23,1) 6./6. C 25-FEB-2015 21:13 [3,54] [RWED,RWED,RWED,R]
006054.DIR;1 (24,1) 1./1. C 25-FEB-2015 21:13 [6,54] [RWED,RWED,RWED,R]
011010.DIR;1 (25,1) 6./6. C 25-FEB-2015 21:13 [11,10] [RWED,RWED,RWED,R]
011024.DIR;1 (26,1) 1./1. C 25-FEB-2015 21:13 [11,24] [RWED,RWED,RWED,R]
011034.DIR;1 (27,1) 1./1. C 25-FEB-2015 21:13 [11,34] [RWED,RWED,RWED,R]
011040.DIR;1 (30,1) 1./1. C 25-FEB-2015 21:13 [11,40] [RWED,RWED,RWED,R]
012024.DIR;1 (31,1) 1./1. C 25-FEB-2015 21:13 [12,24] [RWED,RWED,RWED,R]
045010.DIR;1 (32,1) 2./2. C 25-FEB-2015 21:13 [45,10] [RWED,RWED,RWED,R]
045024.DIR;1 (33,1) 1./1. C 25-FEB-2015 21:13 [45,24] [RWED,RWED,RWED,R]
200001.DIR;1 (34,1) 1./1. C 25-FEB-2015 21:13 [200,1] [RWED,RWED,RWED,R]
USER.DIR;1 (35,1) 2./2. C 25-FEB-2015 21:13 [200,1] [RWED,RWED,RWED,R]
200200.DIR;1 (36,1) 1./1. C 25-FEB-2015 21:13 [200,200][RWED,RWED,RWED,R]

Total of 1566./1566. blocks in 31. files

Directory [1,1]

KITIDENT.DAT;1 (40,1) 2./2. 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]
VERSION.CMD;1 (41,1) 1./1. 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]
RSXMAC.SML;1 (42,1) 307./307. C 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]
SYSLIB.OLB;1 (43,1) 280./280. C 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R] 18-DEC-1998 02:36(2.)
NOANSLIB.OLB;1 (44,1) 271./271. C 18-DEC-1998 02:36 [1,1] [RWED,RWED,RWED,R] 18-DEC-1998 02:38(2.)
NOVACPLIB.OLB;1 (45,1) 22./22. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
VMLIB.OLB;1 (46,1) 17./17. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]

....

SGNBLDBLD.CMD;1 (1425,1) 57./57. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
SGNKLAB.CMD;1 (1424,1) 71./71. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
SGNPREFIX.CMD;1 (1421,1) 12./12. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
SYSGEN.CMD;1 (1420,1) 3./3. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
RSXMC0.MAC;1 (1417,1) 16./16. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
WRKEXECOP.TXT;1 (1426,1) 7./7. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
WRKMASSCO.TXT;1 (1427,1) 2./2. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
WRKMASSDR.TXT;1 (1430,1) 4./4. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
WRKUNIBCO.TXT;1 (1431,1) 3./3. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
WRKUNIBDR.TXT;1 (1432,1) 4./4. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]

Total of 1461./1461. blocks in 12. files

Grand Total of 37623./37623. blocks in 856. files in 16. directories


[2022-май-10 03:35:57 info] Files extracted from "1 of 2 RSX11MPBL87 RQ.dsk" and written to "@1 of 2 RSX11MPBL87 RQ.dsk".

Hunta
10.05.2022, 12:49
Не выдержал :)
Добавил сохранение альтернативных форматов, так что теперь текстовки можно смотреть, остался только дамп заголовка(ов), что уже начал, осталось только допилить :)

Из того, что ночью не добавилось


# $VOLUM.INF - info about ODS-1 volume on NoDev device.
# Produced by ODS1FileSystemClass

# Volume name : RSX11MPBL87
# Volume structure level : ODS-1 (402)
# Volume owner's UIC : [1,1]
# Volume protection : [RWCD,RWCD,RWCD,RWCD]
# Default file protection : [RWED,RWED,RWED,R]
# Default extension : 5
# Volume creation date : 18-DEC-2018 06:48:45
# Volume serial number : 600000

# System independent volume name : RSX11MPBL87
# System independent volume owner name : [001,001]
# System independent format type : DECFILE11A

# Index file bitmap size : 8 block(s)
# Index file bitmap LBN # : 307500
# Maximum number : 30000 of files allowed
# Storage bitmap cluster factor : 1
# Disk device type : 0
# Volume characteristics : 30
# Default window size : 7
# Directory pre-access limit : 3

# Block size : 512
# Block Count : 615000

# File 0 [0,0]INDEXF.SYS
# File 1 [0,0]BITMAP.SYS
# File 2 [0,0]BADBLK.SYS
# File 3 [0,0]000000.DIR
# File 4 [0,0]CORIMG.SYS
# File 5 [0,0]RSX11.SYS
# File 6 [0,0]001001.DIR
# File 7 [1,1]ATOF.OBJ
# File 8 [1,1]AUTOIN.LOG

Hunta
10.05.2022, 20:11
Основная часть распаковки - закончена



Ident area offset : 56
Map area offset : 134
File ID : (1,1)
File System Level : 1.1
File Owner : [1,1]
File Protection : [RWED,RWED,RWED,R]
System File characteristics : 0
User File characteristics : 0

Record Type : 0 Undefined
Record Attributes : 0
Record Size : 0.
High Allocated block : 0.
End of File Block : 0.
First Free Byte in EOF Block : 0
Full File Name : INDEXF.SYS;1
File Name : INDEXF
File Name Extension : SYS
File Version : 1.

File Creation Date/Time : 18-DEC-2018 06:48
File Revision Date/Time :
File Revision No :
File Expiration Date :

Extension Segment No : 0
Extension Relative Volume No : 0
Extension File Number : 3238
Extension File Sequence Number : 3238
Block count field size : 1
LBN field size : 3
Used Retrieval Ponters : 102.
Max Retrieval Ponters : 102.
Retrieval Ponters : 0..1
: 307500..333099

Next header

Ident area offset : 56
Map area offset : 134
File ID : (6246,6246)
File System Level : 1.1
File Owner : [1,1]
File Protection : [RWED,RWED,RWED,R]
System File characteristics : 0
User File characteristics : 0

Record Type : 0 Undefined
Record Attributes : 0
Record Size : 0.
High Allocated block : 0.
End of File Block : 0.
First Free Byte in EOF Block : 0
Full File Name : INDEXF.SYS;1
File Name : INDEXF
File Name Extension : SYS
File Version : 1.

File Creation Date/Time : 18-DEC-2018 06:48
File Revision Date/Time :
File Revision No :
File Expiration Date :

Extension Segment No : 1
Extension Relative Volume No : 0
Extension File Number : 0
Extension File Sequence Number : 0
Block count field size : 1
LBN field size : 3
Used Retrieval Ponters : 18.
Max Retrieval Ponters : 102.
Retrieval Ponters : 333100..337513




Ident area offset : 56
Map area offset : 134
File ID : (6550,1)
File System Level : 1.1
File Owner : [6,1]
File Protection : [RWED,RWED,RWED,R]
System File characteristics : 0
User File characteristics : 0

Record Type : 41 RMSRelative (Fixed Length)
Record Attributes : 2 (Implied carriage control)
Record Size : 47.
High Allocated block : 6.
End of File Block : 7.
First Free Byte in EOF Block : 0
Full File Name : OWNER.DAT;2
File Name : OWNER
File Name Extension : DAT
File Version : 2.

File Creation Date/Time : 18-JAN-2012 21:06
File Revision Date/Time : 18-JAN-2012 21:06
File Revision No : 1.
File Expiration Date :

Extension Segment No : 0
Extension Relative Volume No : 0
Extension File Number : 0
Extension File Sequence Number : 0
Block count field size : 1
LBN field size : 3
Used Retrieval Ponters : 1.
Max Retrieval Ponters : 102.
Retrieval Ponters : 27490..27495

Какое то время буду гонять распаковку разного и править ошибки. Плюс - хочу добавить побольше технической информации о томе в целом - в частности - таблицу использования блоков. Но над ней ещё надо подумать - как лучше реализовать.

Потом посмотрим, в принципе - создание образов.

- - - Добавлено - - -

Ааа, вспомнил - надо ещё атрибуты RMS (дополнительные к FCS) добавить и дамп всех User File Attributes. Ну, это мелочь :)

- - - Добавлено - - -

Поправил. Начинается этап тестирования.

Hunta
13.05.2022, 20:47
Чистка ошибок и, потихоньку, реализация более подробной технической информации о томе ODS-1

Hunta
14.05.2022, 16:16
В первом приближении (может, что ещё не учёл) таблица "блоки->файл" есть



0- 0 -> [0,0]INDEXF.SYS;1 - BootBlock
1- 1 -> [0,0]INDEXF.SYS;1 - HomeBlock
2- 2 -> [0,0]BP2.DIR;1
3- 994 -> [BP2]BP2IC2.TSK;1
995- 1208 -> [BP2]BP2OPT.TSK;1
1209- 1441 -> [BP2]BP2RUN.TSK;1
.............
202748- 203095 -> [MATLOCK]FMSV12.ZIP;1
203096- 203096 -> [MATLOCK]FTPEMA.BAT;4
203097- 215736
215737- 215751 -> [MATLOCK]FTPRSX.LOG;5
215752- 215766 -> [MATLOCK]BRUTCP.LOG;184
215767- 225279
225280- 225289 -> [MATLOCK]FTPTAPE.LOG;209
225290- 225404 -> [MATLOCK]PROGRESS.TXT;223
.............
1679995- 1679996 -> [5,2]OCBDF.H;2
1679997- 1679999 -> [5,2]PCBDF.H;2
1680000- 1680015 -> [0,0]INDEXF.SYS;1 - index file headers bitmap
1680016- 1731719 -> [0,0]INDEXF.SYS;1
1731720- 1731723 -> [0,0]000000.DIR;1
1731724- 1732545 -> [0,0]BITMAP.SYS;1
1732546- 1754545 -> [1,1]11S054.DSK;1
.............
2088595- 2099009 -> [MATLOCK]BQTCP.TAP;677
2099010- 2099019 -> [MATLOCK]FTPTAPE.LOG;209
2099020- 3359998
3359999- 3359999 -> [0,0]BADBLK.SYS;1

Hunta
08.10.2022, 13:26
В процессе переноса TU58fs и (использующего его кодовую базу) ImageUtils в Shared Project общую кодовую базу. Из получаемых плюшек - избавление от повторов кода по всем моим C# проектам и возможность использовать модули работы с DEC ФС в других проектах - например, можно будет открывать в DisAsm-11 файлы программных модулей прямо в ФС образов диска - без распаковки. Ну и как прикол - сохранять результаты прямо туда же :)

Ну и некоторые наработки из других проектов (в первую очередь, из того же DisAsm-11) поедут в TU58fs и ImageUtils

Hunta
16.10.2022, 21:07
Заканчиваю рефакторинг и потихоньку начал работать над кодом создания образа ODS-1 :)

Hunta
23.10.2022, 01:28
Как там... "Небольшой шаг для человека и громадный для человечества" :D

Сделал первый (небольшой) шаг на пути к функционалу по созданию образов ODS-1 :) И он отработал - как ожидалось :)

Шаг действительно небольшой - переделка классов (нууу.. пока только класса для home block-а) описания структуры ODS-1 по той же схеме, что я сделал для DisAsm-11 - то есть, весь код создания объекта выглядит так:


HomeBlock hbtest = new(ImageData.BlkGetBlocks(blkNo));

А внутри (любого!) конструктора, использующего этот подход - всего одна строчка:


public HomeBlock(byte[] data, uint baseOffset = 0)
=> this.Mapper(data, baseOffset);

и всю работу делает (универсальный!) метод Mapper :)
Как выглядит описание класса:


[Serializable]
[Flags]
[Macro("LBLDF$")] public enum F_VCHA : UInt16
{
CH_NDC = 8 // 10 no device control functions
, CH_NAT = 16 // 20 no attach/detach
// CH.RCK = ?? // Set if the volume is to be read checked (not in RSX?)
// CH.WCK = ?? // Set if the volume is to be write checked (not in RSX?)
, CH_SDI = 256 // 400 single directory volume
}

[Serializable]
[Macro("HMBO1$")] public class HomeBlock
{
[Map("H.IBSZ: .BLKW 1")] public UInt16 H_IBSZ; // [2] Index file bitmap size in blocks (number of blocks in the index bitmap, which is the offset for the file-headers)
[Map("H.IBLB: .BLKW 2", dataOrder: PDP11Order.BigWordEndian)] public ODS1BlockNum H_IBLB; // [4] Index file bitmap LBN addres ([2] #define H_iblh H_iblb[0] - high word, [2] #define H_ibll H_iblb[1] - low word) (long) -> GetBDWord
[Map("H.FMAX: .BLKW 1")] public UInt16 H_FMAX; // [2] Maximum number of files allowed on this volume (& 077777)
[Map("H.SBCL: .BLKW 1")] public UInt16 H_SBCL; // [2] Storage bitmap cluster factor (cluster size for storage bitmap); the only legal value for this item in ODS-1 is must always be 1
// (That means, the disk cluster sizes 2 - that is two 512 byte sectors (1 kbyte) was the smallest chunk of disk that would be allocated to store a file. Etc.)
[Map("H.DVTY: .BLKW 1")] public UInt16 H_DVTY; // [2] Disk device type
[Map("H.VLEV: .BLKW 1")] public UInt16 H_VLEV; // [2] Volume structure level (ods-1 = 0x102, ods-2 = 0x201)
[Map("H.VNAM: .BLKB 12.")] public string H_VNAM; // [12] Volume name (id)
[Set(".=.+4")]
[Map("H.VOWN: .BLKW 1")] public string H_VOWN; // [2] Volume owner's decimal UIC in binary (ie: [1,1])
[Map("H.VPRO: .BLKW 1")] public VolumeProtection H_VPRO; // [2] Volume protection code
[Map("H.VCHA: .BLKW 1")] public F_VCHA H_VCHA; // [2] Volume characteristics (24 (030) = no attach, no device control fcns)
[Map("H.DFPR: .BLKW 1")] public FileProtection H_DFPR; // [2] Default file protection (2 h_dfpr = 164000 - default protection for files)

...

static HomeBlock()
=> Helpers.Mapper<HomeBlock>();

public HomeBlock(byte[] data, uint baseOffset = 0)
=> this.Mapper(data, baseOffset);
}

Но шаг достаточно важный - так как теперь можно использовать не только простые типы данных (строки, числа, перечисления-флаги), но и более сложные (как например классы VolumeProtection и FileProtection) - при определённых условиях для таких классов - Mapper сможет преобразовать байты или слова из блоков - в соотвествующие объекты.

Что будет дальше - надо описать полностью те классы, которые я сделал (но по другому) для работы по распаковки ODS-1, сделать возможным изменения для объектов этих классов (технически, первый вариант это позволяет, но.. не всё там будет гладко) и нарисовать метод ReMapper - для обратного преобразовния - то есть из объекта в блок (блоки) для образа диска. А его уже можно будет сбрасывать в образ :) Попробую успеть за выходные полностью сделать новое описние и этот функционал для Home блока. Описание - тупо перенести остаток (ну и сделать некоторое количество классов типа FileProtection и VolumeProtection) - достаточно механическая работы. ReMapper тоже не сильно сложный, так как он похож на Mapper, только в обратную сторону

Ну и по прежнему идёт рефакторинг - как выяснилось - приличное количество кода повторяется, что не есть порядок :)

А, да, в .NET 6 есть некоторое количество своих приколов, так что налетел в паре мест на то, что код в старом .NET (4.x) работает, а в новом - фиг вам :) Решилось достаточно быстро :)

- - - Добавлено - - -

А, да, ещё - на работа небольшая запарка, так что в рабочие дни процесс идёт так себе.. Но по часу-два вроде получится выделять. А вот во второй половине декабря - начнётся отпуск - где-то до 10 января - там получится оторваться :) Может даже повожусь с PDP-2011 :)

Ну и ещё одна цель - аналог подключенных к HD в эмуляторе Патрона папок - ещё и с ODS-1 :) И с возможностью цеплять их к реальных PDP-11 - пока только в варианте через контроллер DD (у него общение идёт через serial порт на стороне PDP-11), но есть некоторые мысли - какой путь выбрать дальше :)

Hunta
23.10.2022, 21:26
До кода, которыя по объекту .NET воссоздаст Home Block - так и не добрался. Были некоторые заморочки с полями ДатаВремя из него плюс домашние дела.. Но зато полностью описал структуру Home Block-а по новому (через атрибуты) и проверил её работоспособность - распаковав образ ODS-1 и сравнив с тем, что получил ДО начала этих доработок :) Результат даже чуть лучше, так в новом описании одной из полей с флагами описано именно как флаги - и теперь в логах оно расшифровывается, а не просто выводится как восьмеричное значение :)

Осталось освободиться от некоторого количества констант, описывающих смещения в Home Block-е и....

- - - Добавлено - - -

.. и получаем 43 строки вместо 156 :) Которые, к тому же, проще написать - так как в тех 156 вычисление смещений в блоке происходило в полуручном виде с риском ошибиться и с трудом найти, где ошибся :)

На очереди - File Header. У него структура несколько сложней, посмотрим, что ещё в аттрибутах придётся допилить и насколько сократится код :)

Hunta
25.10.2022, 21:35
Борьба с File Header. Структура несколько ( :D ) сложней, чем Home Block и те классы, которые я делал под DisAsm, так что пришлось расширять функционал аттрибутов.

Если я правильно помню, то осталось описать блок, который описывает (по сути) - как из виртуального номера блока сделать логический :) Возможно, завтра вечером добью. Тогда нужно будет перенести программный функционал, описанный в старом варианте File Header и попробовать переключиться на использование нового класса :)

Hunta
26.10.2022, 21:19
Этот блок (Retrieval Pointers) описан. Мат/перемат, но реализовал (и даже упростил описание класса попутно), хотя для него пришлось сделать свой вариант Mapper-а, ибо уж больно замороченно его данные хранятся в заголовке файла. Точнее говоря - определённая логика есть, но как сама RSX их распаковывает-испоользует-запаковывает.. Точно полезу в исходники. Моя реализаци достаточно логичная, но так ли думали в DEC - пока не ведомо :)

Технически, описание закончено и можно переносить оставшийся функционал класса FileHeader из старой реализации, но пока возился, в голову пришла крамольная мысль :) Весьма часто DEC использует поля, которые хранят КС. И чего-то мне стало лень каждый раз впиливать код, поэтому я решил этот процесс (вычисления КС и установка полей-флажков false/true) афффтоматизировать. Пока в голову пришла только одна идея - завести аттрибут и маркировать им поле или свойство. А mapper уже будет считать и заносить флаг совпадения.

Завтра вечером займусь. Или может сегодня позже - вроде как в реализации несложно. После чего перенос оставшегося функционала и проверка - насколько всё успешно работает :)

- - - Добавлено - - -

Стало интересно - а сколько понадобиться усилий, что бы перенести функционал из старого описания заголовка файла. Ну что могу сказать - минут 10. Скопировал, поправил названия полей, урезал до 11-ти строк (примерно с сорока) метод, возвращающий Retrieval Pointer по номеру (оказывается, в старом варианте работа шла с сырыми данными) и... всё :) Не факт пока, что это заработает сходу, но... Остались только КС :)

Hunta
27.10.2022, 09:35
Вчера не удержался, нарисовал таки код для КС и начал отладку. Если вкратце, основная война была с ошибками в реализации Retrieval Pointers. Ещё, из того, что осталось в памяти - ошибка обработки двухсловных полей - любит DEC в них делать mixed ending - а я при описании забыл про этом. С утра тоже не удержался и до работы добил проверку-отладку - и новый код полностью рабочий. Отличие в размерах не настолько существенное, как с Home Block - 577 (новый код) против 661 (старый код), но всё же :)

Законченное описание File Header


[Serializable]
[Flags]
[Macro("FHDO1$")] public enum F_UCHA : byte
{
UC_RES = 1 // 1 (file was and should be contiguous)
, UC_NIB = 2 // 2 No incremental backup
, UC_WBC = 4 // 4 Write-back cached
, UC_RCK = 8 // 10 Read-checked
, UC_WCK = 16 // 20 Write-checked
, UC_CNB = 32 // 40 Contiguous best-effort
, UC_DLK = 64 // 100 Deaccess-locked (improperly closed)
, UC_CON = 128 // 200 Contiguous
}

[Serializable]
[Flags]
[Macro("FHDO1$")] public enum F_SCHA : byte
{
SC_CHK = 4 // 4 Header checksum == 0xAAAA (no checksum)
, SC_ACL = 8 // 10 ACL, reserved
, SC_SPL = 16 // 20 Intermediate spooling file
, SC_DIR = 32 // 40 Directory (seems like not actually used?)
, SC_BAD = 64 // 100 Bad block in file, not implemented
, SC_MDL = 128 // 200 Marked for deletion
}

[Serializable]
[Flags]
[Macro("FCSBT$")] public enum FileFormats : byte
{
R_UND = 0 // Undefined format (block I/O only)
, R_FIX = 1 // Fixed length records, padded to even
, R_VAR = 2 // Variable length records, padded to even
, R_SEQ = 3 // Sequenced variable length records (aka VFC), -"-
, R_STM = 4 // RMS-11 stream (rec.seps: CR-LF(def), CR, LF, VT, FF [,and ESC]) /* Note VAX RMS removed CR and ESC from generic stream separators. */
, R_STMLF = 5 // RMS-11 stream LF (UNIX) (NB: leading '\0's ignored in streams)
, R_STMCR = 6 // RMS-11 stream CR (NB: streams seq only and may not use FD_BLK)

}

[Serializable]
[Flags]
[Macro("FCSBT$")] public enum FileOrganizations : byte
{
R_RMS_SEQ = 0 // 0 Sequential file (FCS compatible)
, R_RMS_REL = 16 // 20 Relative file
, R_RMS_IDX = 32 // 40 Indexed file
, R_RMS_DIR = 48 // 60 Direct (hashed) file (not directory!) -- never implemented
}

[Serializable]
[Flags]
[Macro("FCSBT$")] public enum RecordAttributes : byte
{
FD_FTN = 1 // 1 FORTRAN carriage control (mutually exlusive with H_FCS_FD_CR)
, FD_CR = 2 // 2 Implied carriage control (each record on a separate line)
, F_PRN = 4 // 4 Print control information for H_FCS_F_SEQ in the "seqn" field
, FD_BLK = 8 // 10 No block boundary spanning for records (padded)
, FD_MSBRCW = 16 // 20 RMS-11 record-length word (for R.SEQ) in MSB order (big-endian)
}

[Macro("FHDO1$")] public class RetrievalPointer
{
[Map("M.CNT: .BLKB ?M.CTSZ")] public UInt32 Count; // block count
[Map("M.LBN: .BLKB ?M.LBSZ")] public UInt32 StartLBN; // first lbn

static RetrievalPointer()
=> Helpers.Mapper<RetrievalPointer>();

public RetrievalPointer(byte[] data, uint baseOffset = 0)
=> this.Mapper2(data, baseOffset);
}

[Macro("FHDO1$")] public partial class ODS1FileHeader
{
[Macro("FHDO1$")] public const UInt16 I_DASZ = 7; // I.DASZ,7
[Macro("FHDO1$")] public const UInt16 I_TISZ = 6; // I.TISZ,6

[Map("H.IDOF: .BLKB 1")] public byte H_IDOF; // [1]
[Map("H.MPOF: .BLKB 1")] public byte H_MPOF; // [1]
[Map("H.FNUM: .BLKW 1")] public UInt16 H_FNUM; // [2]
[Map("H.FSEQ: .BLKW 1")] public UInt16 H_FSEQ; // [2]
[Map("H.FLEV: .BLKW 1")] public UInt16 H_FLEV; // [2]
[Map("H.FOWN: .BLKW 1")] public UIC H_FOWN; // [2]
[Set(".=.-2")]
[Map("H.PROG: .BLKB 1")] public byte H_PROG; // [1]
[Map("H.PROJ: .BLKB 1")] public byte H_PROJ; // [1]
[Map("H.FPRO: .BLKW 1")] public FileProtection H_FPRO; // [2]
[Map("H.FCHA: .BLKW 1")] public UInt16 H_FCHA; // [2]
[Set(".=.-2")]
[Map("H.UCHA: .BLKB 1")] public F_UCHA H_UCHA; // [1]

[Map("H.SCHA: .BLKB 1")] public F_SCHA H_SCHA; // [1]

[Map("H.UFAT: .BLKB 32.")] public byte[] H_UFAT; // [32]
[Set(".=.-32.")]
//[Map("H.DUFAT: .BLKB 32.")] public UFAT H_DUFAT; // [32]

[Map("F.RTYP: .BLKB 1")] public byte F_RTYP; // [1]
[Map("F.RATT: .BLKB 1")] public RecordAttributes F_RATT; // [1]
[Map("F.RSIZ: .BLKW 1")] public UInt16 F_RSIZ; // [2]
[Map("F.HIBK: .BLKW 2", dataOrder: PDP11Order.BigWordEndian)] public ODS1BlockNum F_HIBK; // [4]
[Map("F.EFBK: .BLKW 2", dataOrder: PDP11Order.BigWordEndian)] public ODS1BlockNum F_EFBK; // [4]
[Map("F.FFBY: .BLKW 1")] public UInt16 F_FFBY; // [2]

[Map("F.BKSZ: .BLKB 1")] public byte F_BKSZ; // [1] Bucket size
[Map("F.HDSZ: .BLKB 1")] public byte F_HDSZ; // [1] Fixed header size
[Map("F.MRS: .BLKW 1")] public UInt16 F_MRS; // [2] Maximum record size
[Map("F.DEQ: .BLKW 1")] public UInt16 F_DEQ; // [2] Default extend quantity

[Set(".=??H.IDOF")]
[Map("I.FNAM: .BLKW 3", PDP11Type.Radix50)] public string I_FNAM; // [6]
[Map("I.FTYP: .BLKW 1", PDP11Type.Radix50)] public string I_FTYP; // [2]
[Map("I.FVER: .BLKW 1")] public UInt16 I_FVER; // [2]
public string I_FileName => I_FNAM + "." + I_FTYP + ";" + I_FVER.ToString();

[Map("I.RVNO: .BLKW 1")] public UInt16 I_RVNO; // [2]
[Map("I.RVDT: .BLKB 13.")] public ODS1DateTime I_RVDTTI; // [7]+[6]
//[Map("I.RVTI: .BLKB 6")] public UInt16 I_RVTI; // [6]
[Map("I.CRDT: .BLKB 13.")] public ODS1DateTime I_CRDTTI; // [7]+[6]
//[Map("I.CRTI: .BLKB 6")] public UInt16 I_CRTI; // [6]
[Map("I.EXDT: .BLKB 7")] public ODS1DateTime I_EXDT; // [7]

[Set(".=??H.MPOF")]
[Map("M.ESQN: .BLKB 1")] public byte M_ESQN; // [1] Header Extension Sequence Number
[Map("M.ERVN: .BLKB 1")] public byte M_ERVN; // [1] Header Extension Relative Volume Number (ODS-1 does not use)
[Map("M.EFNU: .BLKW 1")] public UInt16 M_EFNU; // [2] Header Extension File Number
[Map("M.EFSQ: .BLKW 1")] public UInt16 M_EFSQ; // [2] Header Extension File Sequence Number
[Map("M.CTSZ: .BLKB 1")] public byte M_CTSZ; // [1] Count Size (ODS-1 - only 1?)
[Map("M.LBSZ: .BLKB 1")] public byte M_LBSZ; // [1] LBN Size (ODS-1 - only 3?)
[Map("M.USE: .BLKB 1")] public byte M_USE; // [1] Retrieval Pointers in use
[Map("M.MAX: .BLKB 1")] public byte M_MAX; // [1] Retrieval Pointers max
//[Map("S.MPHD:")] public static UInt16 M_MPHD;
[Map("M.RTRV: .BLKW ?M.USE")] public RetrievalPointer[] M_RTRV; // Start of Retrieval pointers

[Set(".=510.")]
[CheckSumm()] public bool IsCheckSumValid;
[Map("H.CKSM: .BLKW 1")] public UInt16 H_CKSM;

static ODS1FileHeader()
=> Helpers.Mapper<ODS1HomeBlock>();

public ODS1FileHeader(byte[] data, uint baseOffset = 0)
=> this.Mapper(data, baseOffset);
}


В Home Block-е тоже есть пара полей с КС, надо и туда добавить описание :)

- - - Добавлено - - -

10 секунд на это :) КС совпали (ну ещё бы). Пока это только один вариант расчёта КС, но для ODS-1 больше и не надо.

- - - Добавлено - - -

Немного причешу код и займусь добавлением показа списка ФИЗИЧЕСКИХ секторов, которые занимает файл - актульно для разборок с плохо прочитанными дискетами, где есть интерлив.

Hunta
27.10.2022, 22:40
Ничего нового - причёска кода и рефакторинг.

dk_spb
28.10.2022, 00:20
добавлением показа списка ФИЗИЧЕСКИХ секторов
Просим! Просим!

Hunta
28.10.2022, 00:27
Просим! Просим!
В очередных планах :)

- - - Добавлено - - -

Постараюсь завтра вечером занятся :)

- - - Добавлено - - -

То есть я имел ввиду в пятницу вечером - она уже не завтра :)

- - - Добавлено - - -

А сегодня :)

Hunta
29.10.2022, 13:40
Первый подход к снаряду:


# $VOLUM.INF - info about RT-11 volume on RX01 device.
# Produced by RT11FileSystemClass at 2022-окт.-29 14:38:43

pack_cluster_size=1

# Block number of first directory segment
first_dir_blocknr=6

system_version=V05

volume_id=M013

owner_name=lipwz gao

system_id=DECRT11A

# number of 512 byte blocks on volume
BlockCount=501

# number of extra bytes per directory entry
dir_entry_extra_bytes=0

# Total number of segments in this directory (can hold 69 files)
dir_total_seg_num=1

# Number of highest dir segment in use
dir_max_seg_nr=1

# Start block of file area = 8

# File 0,00 "FDF331.DOC".
No prefix.
Data 154624 = 0x25C00 bytes, start block 8 @ 0x1000.

# File 1,00 "FDF333.DOC".
No prefix.
Data 60416 = 0xEC00 bytes, start block 310 @ 0x26C00.

# File 2,00 "FILE.BAD".
No prefix.
Data 512 = 0x200 bytes, start block 489 @ 0x3D200.

Physical block N 26 -> 0:$PrimaryBootloader
Physical block N 27 -> 0:$SecondaryBootloader
Physical block N 28 -> 0:$PrimaryBootloader
Physical block N 29 -> 0:$SecondaryBootloader
Physical block N 30 -> 0:$PrimaryBootloader
Physical block N 31 -> 0:$SecondaryBootloader
Physical block N 32 -> 0:$PrimaryBootloader
Physical block N 33 -> 0:$SecondaryBootloader
Physical block N 34 -> 0:$HomeBlock
Physical block N 35 -> 0:$SecondaryBootloader
Physical block N 36 -> 0:$HomeBlock
Physical block N 37 -> 0:$SecondaryBootloader
Physical block N 38 -> 0:$HomeBlock
Physical block N 39 -> 0:$SecondaryBootloader
Physical block N 40 -> 0:$HomeBlock
Physical block N 41 -> 0:$SecondaryBootloader
Physical block N 42 -> 0:$SecondaryBootloader
Physical block N 43 -> 0:$SecondaryBootloader
Physical block N 44 -> 0:$SecondaryBootloader
Physical block N 45 -> 0:$SecondaryBootloader
Physical block N 47 -> 0:$SecondaryBootloader
Physical block N 49 -> 0:$Directory
Physical block N 50 -> 0:$SecondaryBootloader
Physical block N 51 -> 0:$Directory
Physical block N 52 -> 0:FDF331.DOC
Physical block N 53 -> 0:FDF331.DOC
Physical block N 54 -> 0:FDF331.DOC
Physical block N 55 -> 0:FDF331.DOC
Physical block N 56 -> 0:FDF331.DOC
Physical block N 57 -> 0:FDF331.DOC
Physical block N 58 -> 0:$Directory
Physical block N 59 -> 0:FDF331.DOC
Physical block N 60 -> 0:$Directory
Physical block N 61 -> 0:FDF331.DOC
Physical block N 62 -> 0:$Directory
Physical block N 63 -> 0:FDF331.DOC
Physical block N 64 -> 0:$Directory
Physical block N 65 -> 0:FDF331.DOC
Physical block N 66 -> 0:$Directory
Physical block N 67 -> 0:FDF331.DOC
Physical block N 68 -> 0:$Directory
Physical block N 69 -> 0:FDF331.DOC
Physical block N 70 -> 0:FDF331.DOC
Physical block N 71 -> 0:FDF331.DOC
Physical block N 72 -> 0:FDF331.DOC
Physical block N 73 -> 0:FDF331.DOC
Physical block N 74 -> 0:FDF331.DOC
Physical block N 75 -> 0:FDF331.DOC
Physical block N 76 -> 0:FDF331.DOC
Physical block N 77 -> 0:FDF331.DOC
Physical block N 78 -> 0:FDF331.DOC
Physical block N 79 -> 0:FDF331.DOC
Physical block N 80 -> 0:FDF331.DOC
Physical block N 81 -> 0:FDF331.DOC
Physical block N 82 -> 0:FDF331.DOC
Physical block N 83 -> 0:FDF331.DOC
Physical block N 84 -> 0:FDF331.DOC
Physical block N 85 -> 0:FDF331.DOC
Physical block N 86 -> 0:FDF331.DOC
Physical block N 87 -> 0:FDF331.DOC
Physical block N 88 -> 0:FDF331.DOC
Physical block N 89 -> 0:FDF331.DOC
Physical block N 90 -> 0:FDF331.DOC
Physical block N 91 -> 0:FDF331.DOC
Physical block N 92 -> 0:FDF331.DOC
Physical block N 93 -> 0:FDF331.DOC
Physical block N 94 -> 0:FDF331.DOC
Physical block N 95 -> 0:FDF331.DOC
Physical block N 96 -> 0:FDF331.DOC
Physical block N 97 -> 0:FDF331.DOC
Physical block N 98 -> 0:FDF331.DOC
Physical block N 99 -> 0:FDF331.DOC
Physical block N 100 -> 0:FDF331.DOC
Physical block N 101 -> 0:FDF331.DOC
Physical block N 102 -> 0:FDF331.DOC
Physical block N 103 -> 0:FDF331.DOC
Physical block N 104 -> 0:FDF331.DOC
Physical block N 105 -> 0:FDF331.DOC
Physical block N 106 -> 0:FDF331.DOC
Physical block N 107 -> 0:FDF331.DOC
Physical block N 108 -> 0:FDF331.DOC
Physical block N 109 -> 0:FDF331.DOC
Physical block N 110 -> 0:FDF331.DOC
Physical block N 111 -> 0:FDF331.DOC
Physical block N 112 -> 0:FDF331.DOC
Physical block N 113 -> 0:FDF331.DOC
Physical block N 114 -> 0:FDF331.DOC
Physical block N 115 -> 0:FDF331.DOC
Physical block N 116 -> 0:FDF331.DOC
Physical block N 117 -> 0:FDF331.DOC
Physical block N 118 -> 0:FDF331.DOC
Physical block N 119 -> 0:FDF331.DOC
Physical block N 120 -> 0:FDF331.DOC
Physical block N 121 -> 0:FDF331.DOC
Physical block N 122 -> 0:FDF331.DOC
Physical block N 123 -> 0:FDF331.DOC
Physical block N 124 -> 0:FDF331.DOC
Physical block N 125 -> 0:FDF331.DOC
Physical block N 126 -> 0:FDF331.DOC
Physical block N 127 -> 0:FDF331.DOC
Physical block N 128 -> 0:FDF331.DOC
Physical block N 129 -> 0:FDF331.DOC
Physical block N 130 -> 0:FDF331.DOC
Physical block N 131 -> 0:FDF331.DOC
Physical block N 132 -> 0:FDF331.DOC
Physical block N 133 -> 0:FDF331.DOC
Physical block N 134 -> 0:FDF331.DOC
Physical block N 135 -> 0:FDF331.DOC
Physical block N 136 -> 0:FDF331.DOC
Physical block N 137 -> 0:FDF331.DOC
Physical block N 138 -> 0:FDF331.DOC
Physical block N 139 -> 0:FDF331.DOC
Physical block N 140 -> 0:FDF331.DOC
Physical block N 141 -> 0:FDF331.DOC
Physical block N 142 -> 0:FDF331.DOC
Physical block N 143 -> 0:FDF331.DOC
Physical block N 144 -> 0:FDF331.DOC
Physical block N 145 -> 0:FDF331.DOC
Physical block N 146 -> 0:FDF331.DOC
Physical block N 147 -> 0:FDF331.DOC
Physical block N 148 -> 0:FDF331.DOC
Physical block N 149 -> 0:FDF331.DOC
Physical block N 150 -> 0:FDF331.DOC
Physical block N 151 -> 0:FDF331.DOC
Physical block N 152 -> 0:FDF331.DOC
Physical block N 153 -> 0:FDF331.DOC
Physical block N 154 -> 0:FDF331.DOC
Physical block N 155 -> 0:FDF331.DOC
Physical block N 156 -> 0:FDF331.DOC
Physical block N 157 -> 0:FDF331.DOC
Physical block N 158 -> 0:FDF331.DOC
Physical block N 159 -> 0:FDF331.DOC
Physical block N 160 -> 0:FDF331.DOC
Physical block N 161 -> 0:FDF331.DOC
Physical block N 162 -> 0:FDF331.DOC
Physical block N 163 -> 0:FDF331.DOC
Physical block N 164 -> 0:FDF331.DOC
Physical block N 165 -> 0:FDF331.DOC
Physical block N 166 -> 0:FDF331.DOC
Physical block N 167 -> 0:FDF331.DOC
Physical block N 168 -> 0:FDF331.DOC
Physical block N 169 -> 0:FDF331.DOC
Physical block N 170 -> 0:FDF331.DOC
Physical block N 171 -> 0:FDF331.DOC
Physical block N 172 -> 0:FDF331.DOC
Physical block N 173 -> 0:FDF331.DOC
Physical block N 174 -> 0:FDF331.DOC
Physical block N 175 -> 0:FDF331.DOC
Physical block N 176 -> 0:FDF331.DOC
Physical block N 177 -> 0:FDF331.DOC
Physical block N 178 -> 0:FDF331.DOC
Physical block N 179 -> 0:FDF331.DOC
Physical block N 180 -> 0:FDF331.DOC
Physical block N 181 -> 0:FDF331.DOC
Physical block N 182 -> 0:FDF331.DOC
Physical block N 183 -> 0:FDF331.DOC
Physical block N 184 -> 0:FDF331.DOC
Physical block N 185 -> 0:FDF331.DOC
Physical block N 186 -> 0:FDF331.DOC
Physical block N 187 -> 0:FDF331.DOC
Physical block N 188 -> 0:FDF331.DOC
Physical block N 189 -> 0:FDF331.DOC
Physical block N 190 -> 0:FDF331.DOC
Physical block N 191 -> 0:FDF331.DOC
Physical block N 192 -> 0:FDF331.DOC
Physical block N 193 -> 0:FDF331.DOC
Physical block N 194 -> 0:FDF331.DOC
Physical block N 195 -> 0:FDF331.DOC
Physical block N 196 -> 0:FDF331.DOC
Physical block N 197 -> 0:FDF331.DOC
Physical block N 198 -> 0:FDF331.DOC
Physical block N 199 -> 0:FDF331.DOC
Physical block N 200 -> 0:FDF331.DOC
Physical block N 201 -> 0:FDF331.DOC
Physical block N 202 -> 0:FDF331.DOC
Physical block N 203 -> 0:FDF331.DOC
Physical block N 204 -> 0:FDF331.DOC
Physical block N 205 -> 0:FDF331.DOC
Physical block N 206 -> 0:FDF331.DOC
Physical block N 207 -> 0:FDF331.DOC
Physical block N 208 -> 0:FDF331.DOC
Physical block N 209 -> 0:FDF331.DOC
Physical block N 210 -> 0:FDF331.DOC
Physical block N 211 -> 0:FDF331.DOC
Physical block N 212 -> 0:FDF331.DOC
Physical block N 213 -> 0:FDF331.DOC
Physical block N 214 -> 0:FDF331.DOC
Physical block N 215 -> 0:FDF331.DOC
Physical block N 216 -> 0:FDF331.DOC
Physical block N 217 -> 0:FDF331.DOC
Physical block N 218 -> 0:FDF331.DOC
Physical block N 219 -> 0:FDF331.DOC
Physical block N 220 -> 0:FDF331.DOC
Physical block N 221 -> 0:FDF331.DOC
Physical block N 222 -> 0:FDF331.DOC
Physical block N 223 -> 0:FDF331.DOC
Physical block N 224 -> 0:FDF331.DOC
Physical block N 225 -> 0:FDF331.DOC
Physical block N 226 -> 0:FDF331.DOC
Physical block N 227 -> 0:FDF331.DOC
Physical block N 228 -> 0:FDF331.DOC
Physical block N 229 -> 0:FDF331.DOC
Physical block N 230 -> 0:FDF331.DOC
Physical block N 231 -> 0:FDF331.DOC
Physical block N 232 -> 0:FDF331.DOC
Physical block N 233 -> 0:FDF331.DOC
Physical block N 234 -> 0:FDF331.DOC
Physical block N 235 -> 0:FDF331.DOC
Physical block N 236 -> 0:FDF331.DOC
Physical block N 237 -> 0:FDF331.DOC
Physical block N 238 -> 0:FDF331.DOC
Physical block N 239 -> 0:FDF331.DOC
Physical block N 240 -> 0:FDF331.DOC
Physical block N 241 -> 0:FDF331.DOC
Physical block N 242 -> 0:FDF331.DOC
Physical block N 243 -> 0:FDF331.DOC
Physical block N 244 -> 0:FDF331.DOC
Physical block N 245 -> 0:FDF331.DOC
Physical block N 246 -> 0:FDF331.DOC
Physical block N 247 -> 0:FDF331.DOC
Physical block N 248 -> 0:FDF331.DOC
Physical block N 249 -> 0:FDF331.DOC
Physical block N 250 -> 0:FDF331.DOC
Physical block N 251 -> 0:FDF331.DOC
Physical block N 252 -> 0:FDF331.DOC
Physical block N 253 -> 0:FDF331.DOC
Physical block N 254 -> 0:FDF331.DOC
Physical block N 255 -> 0:FDF331.DOC
Physical block N 256 -> 0:FDF331.DOC
Physical block N 257 -> 0:FDF331.DOC
Physical block N 258 -> 0:FDF331.DOC
Physical block N 259 -> 0:FDF331.DOC
Physical block N 260 -> 0:FDF331.DOC
Physical block N 261 -> 0:FDF331.DOC
Physical block N 262 -> 0:FDF331.DOC
Physical block N 263 -> 0:FDF331.DOC
Physical block N 264 -> 0:FDF331.DOC
Physical block N 265 -> 0:FDF331.DOC
Physical block N 266 -> 0:FDF331.DOC
Physical block N 267 -> 0:FDF331.DOC
Physical block N 268 -> 0:FDF331.DOC
Physical block N 269 -> 0:FDF331.DOC
Physical block N 270 -> 0:FDF331.DOC
Physical block N 271 -> 0:FDF331.DOC
Physical block N 272 -> 0:FDF331.DOC
Physical block N 273 -> 0:FDF331.DOC
Physical block N 274 -> 0:FDF331.DOC
Physical block N 275 -> 0:FDF331.DOC
Physical block N 276 -> 0:FDF331.DOC
Physical block N 277 -> 0:FDF331.DOC
Physical block N 278 -> 0:FDF331.DOC
Physical block N 279 -> 0:FDF331.DOC
Physical block N 280 -> 0:FDF331.DOC
Physical block N 281 -> 0:FDF331.DOC
Physical block N 282 -> 0:FDF331.DOC
Physical block N 283 -> 0:FDF331.DOC
Physical block N 284 -> 0:FDF331.DOC
Physical block N 285 -> 0:FDF331.DOC
Physical block N 286 -> 0:FDF331.DOC
Physical block N 287 -> 0:FDF331.DOC
Physical block N 288 -> 0:FDF331.DOC
Physical block N 289 -> 0:FDF331.DOC
Physical block N 290 -> 0:FDF331.DOC
Physical block N 291 -> 0:FDF331.DOC
Physical block N 292 -> 0:FDF331.DOC
Physical block N 293 -> 0:FDF331.DOC
Physical block N 294 -> 0:FDF331.DOC
Physical block N 295 -> 0:FDF331.DOC
Physical block N 296 -> 0:FDF331.DOC
Physical block N 297 -> 0:FDF331.DOC
Physical block N 298 -> 0:FDF331.DOC
Physical block N 299 -> 0:FDF331.DOC
Physical block N 300 -> 0:FDF331.DOC
Physical block N 301 -> 0:FDF331.DOC
Physical block N 302 -> 0:FDF331.DOC
Physical block N 303 -> 0:FDF331.DOC
Physical block N 304 -> 0:FDF331.DOC
Physical block N 305 -> 0:FDF331.DOC
Physical block N 306 -> 0:FDF331.DOC
Physical block N 307 -> 0:FDF331.DOC
Physical block N 308 -> 0:FDF331.DOC
Physical block N 309 -> 0:FDF331.DOC
Physical block N 310 -> 0:FDF331.DOC
Physical block N 311 -> 0:FDF331.DOC
Physical block N 312 -> 0:FDF331.DOC
Physical block N 313 -> 0:FDF331.DOC
Physical block N 314 -> 0:FDF331.DOC
Physical block N 315 -> 0:FDF331.DOC
Physical block N 316 -> 0:FDF331.DOC
Physical block N 317 -> 0:FDF331.DOC
Physical block N 318 -> 0:FDF331.DOC
Physical block N 319 -> 0:FDF331.DOC
Physical block N 320 -> 0:FDF331.DOC
Physical block N 321 -> 0:FDF331.DOC
Physical block N 322 -> 0:FDF331.DOC
Physical block N 323 -> 0:FDF331.DOC
Physical block N 324 -> 0:FDF331.DOC
Physical block N 325 -> 0:FDF331.DOC
Physical block N 326 -> 0:FDF331.DOC
Physical block N 327 -> 0:FDF331.DOC
Physical block N 328 -> 0:FDF331.DOC
Physical block N 329 -> 0:FDF331.DOC
Physical block N 330 -> 0:FDF331.DOC
Physical block N 331 -> 0:FDF331.DOC
Physical block N 332 -> 0:FDF331.DOC
Physical block N 333 -> 0:FDF331.DOC
Physical block N 334 -> 0:FDF331.DOC
Physical block N 335 -> 0:FDF331.DOC
Physical block N 336 -> 0:FDF331.DOC
Physical block N 337 -> 0:FDF331.DOC
Physical block N 338 -> 0:FDF331.DOC
Physical block N 339 -> 0:FDF331.DOC
Physical block N 340 -> 0:FDF331.DOC
Physical block N 341 -> 0:FDF331.DOC
Physical block N 342 -> 0:FDF331.DOC
Physical block N 343 -> 0:FDF331.DOC
Physical block N 344 -> 0:FDF331.DOC
Physical block N 345 -> 0:FDF331.DOC
Physical block N 346 -> 0:FDF331.DOC
Physical block N 347 -> 0:FDF331.DOC
Physical block N 348 -> 0:FDF331.DOC
Physical block N 349 -> 0:FDF331.DOC
Physical block N 350 -> 0:FDF331.DOC
Physical block N 351 -> 0:FDF331.DOC
Physical block N 352 -> 0:FDF331.DOC
Physical block N 353 -> 0:FDF331.DOC
Physical block N 354 -> 0:FDF331.DOC
Physical block N 355 -> 0:FDF331.DOC
Physical block N 356 -> 0:FDF331.DOC
Physical block N 357 -> 0:FDF331.DOC
Physical block N 358 -> 0:FDF331.DOC
Physical block N 359 -> 0:FDF331.DOC
Physical block N 360 -> 0:FDF331.DOC
Physical block N 361 -> 0:FDF331.DOC
Physical block N 362 -> 0:FDF331.DOC
Physical block N 363 -> 0:FDF331.DOC
Physical block N 364 -> 0:FDF331.DOC
Physical block N 365 -> 0:FDF331.DOC
Physical block N 366 -> 0:FDF331.DOC
Physical block N 367 -> 0:FDF331.DOC
Physical block N 368 -> 0:FDF331.DOC
Physical block N 369 -> 0:FDF331.DOC
Physical block N 370 -> 0:FDF331.DOC
Physical block N 371 -> 0:FDF331.DOC
Physical block N 372 -> 0:FDF331.DOC
Physical block N 373 -> 0:FDF331.DOC
Physical block N 374 -> 0:FDF331.DOC
Physical block N 375 -> 0:FDF331.DOC
Physical block N 376 -> 0:FDF331.DOC
Physical block N 377 -> 0:FDF331.DOC
Physical block N 378 -> 0:FDF331.DOC
Physical block N 379 -> 0:FDF331.DOC
Physical block N 380 -> 0:FDF331.DOC
Physical block N 381 -> 0:FDF331.DOC
Physical block N 382 -> 0:FDF331.DOC
Physical block N 383 -> 0:FDF331.DOC
Physical block N 384 -> 0:FDF331.DOC
Physical block N 385 -> 0:FDF331.DOC
Physical block N 386 -> 0:FDF331.DOC
Physical block N 387 -> 0:FDF331.DOC
Physical block N 388 -> 0:FDF331.DOC
Physical block N 389 -> 0:FDF331.DOC
Physical block N 390 -> 0:FDF331.DOC
Physical block N 391 -> 0:FDF331.DOC
Physical block N 392 -> 0:FDF331.DOC
Physical block N 393 -> 0:FDF331.DOC
Physical block N 394 -> 0:FDF331.DOC
Physical block N 395 -> 0:FDF331.DOC
Physical block N 396 -> 0:FDF331.DOC
Physical block N 397 -> 0:FDF331.DOC
Physical block N 398 -> 0:FDF331.DOC
Physical block N 399 -> 0:FDF331.DOC
Physical block N 400 -> 0:FDF331.DOC
Physical block N 401 -> 0:FDF331.DOC
Physical block N 402 -> 0:FDF331.DOC
Physical block N 403 -> 0:FDF331.DOC
Physical block N 404 -> 0:FDF331.DOC
Physical block N 405 -> 0:FDF331.DOC
Physical block N 406 -> 0:FDF331.DOC
Physical block N 407 -> 0:FDF331.DOC
Physical block N 408 -> 0:FDF331.DOC
Physical block N 409 -> 0:FDF331.DOC
Physical block N 410 -> 0:FDF331.DOC
Physical block N 411 -> 0:FDF331.DOC
Physical block N 412 -> 0:FDF331.DOC
Physical block N 413 -> 0:FDF331.DOC
Physical block N 414 -> 0:FDF331.DOC
Physical block N 415 -> 0:FDF331.DOC
Physical block N 416 -> 0:FDF331.DOC
Physical block N 417 -> 0:FDF331.DOC
Physical block N 418 -> 0:FDF331.DOC
Physical block N 419 -> 0:FDF331.DOC
Physical block N 420 -> 0:FDF331.DOC
Physical block N 421 -> 0:FDF331.DOC
Physical block N 422 -> 0:FDF331.DOC
Physical block N 423 -> 0:FDF331.DOC
Physical block N 424 -> 0:FDF331.DOC
Physical block N 425 -> 0:FDF331.DOC
Physical block N 426 -> 0:FDF331.DOC
Physical block N 427 -> 0:FDF331.DOC
Physical block N 428 -> 0:FDF331.DOC
Physical block N 429 -> 0:FDF331.DOC
Physical block N 430 -> 0:FDF331.DOC
Physical block N 431 -> 0:FDF331.DOC
Physical block N 432 -> 0:FDF331.DOC
Physical block N 433 -> 0:FDF331.DOC
Physical block N 434 -> 0:FDF331.DOC
Physical block N 435 -> 0:FDF331.DOC
Physical block N 436 -> 0:FDF331.DOC
Physical block N 437 -> 0:FDF331.DOC
Physical block N 438 -> 0:FDF331.DOC
Physical block N 439 -> 0:FDF331.DOC
Physical block N 440 -> 0:FDF331.DOC
Physical block N 441 -> 0:FDF331.DOC
Physical block N 442 -> 0:FDF331.DOC
Physical block N 443 -> 0:FDF331.DOC
Physical block N 444 -> 0:FDF331.DOC
Physical block N 445 -> 0:FDF331.DOC
Physical block N 446 -> 0:FDF331.DOC
Physical block N 447 -> 0:FDF331.DOC
Physical block N 448 -> 0:FDF331.DOC
Physical block N 449 -> 0:FDF331.DOC
Physical block N 450 -> 0:FDF331.DOC
Physical block N 451 -> 0:FDF331.DOC
Physical block N 452 -> 0:FDF331.DOC
Physical block N 453 -> 0:FDF331.DOC
Physical block N 454 -> 0:FDF331.DOC
Physical block N 455 -> 0:FDF331.DOC
Physical block N 456 -> 0:FDF331.DOC
Physical block N 457 -> 0:FDF331.DOC
Physical block N 458 -> 0:FDF331.DOC
Physical block N 459 -> 0:FDF331.DOC
Physical block N 460 -> 0:FDF331.DOC
Physical block N 461 -> 0:FDF331.DOC
Physical block N 462 -> 0:FDF331.DOC
Physical block N 463 -> 0:FDF331.DOC
Physical block N 464 -> 0:FDF331.DOC
Physical block N 465 -> 0:FDF331.DOC
Physical block N 466 -> 0:FDF331.DOC
Physical block N 467 -> 0:FDF331.DOC
Physical block N 468 -> 0:FDF331.DOC
Physical block N 469 -> 0:FDF331.DOC
Physical block N 470 -> 0:FDF331.DOC
Physical block N 471 -> 0:FDF331.DOC
Physical block N 472 -> 0:FDF331.DOC
Physical block N 473 -> 0:FDF331.DOC
Physical block N 474 -> 0:FDF331.DOC
Physical block N 475 -> 0:FDF331.DOC
Physical block N 476 -> 0:FDF331.DOC
Physical block N 477 -> 0:FDF331.DOC
Physical block N 478 -> 0:FDF331.DOC
Physical block N 479 -> 0:FDF331.DOC
Physical block N 480 -> 0:FDF331.DOC
Physical block N 481 -> 0:FDF331.DOC
Physical block N 482 -> 0:FDF331.DOC
Physical block N 483 -> 0:FDF331.DOC
Physical block N 484 -> 0:FDF331.DOC
Physical block N 485 -> 0:FDF331.DOC
Physical block N 486 -> 0:FDF331.DOC
Physical block N 487 -> 0:FDF331.DOC
Physical block N 488 -> 0:FDF331.DOC
Physical block N 489 -> 0:FDF331.DOC
Physical block N 490 -> 0:FDF331.DOC
Physical block N 491 -> 0:FDF331.DOC
Physical block N 492 -> 0:FDF331.DOC
Physical block N 493 -> 0:FDF331.DOC
Physical block N 494 -> 0:FDF331.DOC
Physical block N 495 -> 0:FDF331.DOC
Physical block N 496 -> 0:FDF331.DOC
Physical block N 497 -> 0:FDF331.DOC
Physical block N 498 -> 0:FDF331.DOC
Physical block N 499 -> 0:FDF331.DOC
Physical block N 500 -> 0:FDF331.DOC
Physical block N 501 -> 0:FDF331.DOC
Physical block N 502 -> 0:FDF331.DOC
Physical block N 503 -> 0:FDF331.DOC
Physical block N 504 -> 0:FDF331.DOC
Physical block N 505 -> 0:FDF331.DOC
Physical block N 506 -> 0:FDF331.DOC
Physical block N 507 -> 0:FDF331.DOC
Physical block N 508 -> 0:FDF331.DOC
Physical block N 509 -> 0:FDF331.DOC
Physical block N 510 -> 0:FDF331.DOC
Physical block N 511 -> 0:FDF331.DOC
Physical block N 512 -> 0:FDF331.DOC
Physical block N 513 -> 0:FDF331.DOC
Physical block N 514 -> 0:FDF331.DOC
Physical block N 515 -> 0:FDF331.DOC
Physical block N 516 -> 0:FDF331.DOC
Physical block N 517 -> 0:FDF331.DOC
Physical block N 518 -> 0:FDF331.DOC
Physical block N 519 -> 0:FDF331.DOC
Physical block N 520 -> 0:FDF331.DOC
Physical block N 521 -> 0:FDF331.DOC
Physical block N 522 -> 0:FDF331.DOC
Physical block N 523 -> 0:FDF331.DOC
Physical block N 524 -> 0:FDF331.DOC
Physical block N 525 -> 0:FDF331.DOC
Physical block N 526 -> 0:FDF331.DOC
Physical block N 527 -> 0:FDF331.DOC
Physical block N 528 -> 0:FDF331.DOC
Physical block N 529 -> 0:FDF331.DOC
Physical block N 530 -> 0:FDF331.DOC
Physical block N 531 -> 0:FDF331.DOC
Physical block N 532 -> 0:FDF331.DOC
Physical block N 533 -> 0:FDF331.DOC
Physical block N 534 -> 0:FDF331.DOC
Physical block N 535 -> 0:FDF331.DOC
Physical block N 536 -> 0:FDF331.DOC
Physical block N 537 -> 0:FDF331.DOC
Physical block N 538 -> 0:FDF331.DOC
Physical block N 539 -> 0:FDF331.DOC
Physical block N 540 -> 0:FDF331.DOC
Physical block N 541 -> 0:FDF331.DOC
Physical block N 542 -> 0:FDF331.DOC
Physical block N 543 -> 0:FDF331.DOC
Physical block N 544 -> 0:FDF331.DOC
Physical block N 545 -> 0:FDF331.DOC
Physical block N 546 -> 0:FDF331.DOC
Physical block N 547 -> 0:FDF331.DOC
Physical block N 548 -> 0:FDF331.DOC
Physical block N 549 -> 0:FDF331.DOC
Physical block N 550 -> 0:FDF331.DOC
Physical block N 551 -> 0:FDF331.DOC
Physical block N 552 -> 0:FDF331.DOC
Physical block N 553 -> 0:FDF331.DOC
Physical block N 554 -> 0:FDF331.DOC
Physical block N 555 -> 0:FDF331.DOC
Physical block N 556 -> 0:FDF331.DOC
Physical block N 557 -> 0:FDF331.DOC
Physical block N 558 -> 0:FDF331.DOC
Physical block N 559 -> 0:FDF331.DOC
Physical block N 560 -> 0:FDF331.DOC
Physical block N 561 -> 0:FDF331.DOC
Physical block N 562 -> 0:FDF331.DOC
Physical block N 563 -> 0:FDF331.DOC
Physical block N 564 -> 0:FDF331.DOC
Physical block N 565 -> 0:FDF331.DOC
Physical block N 566 -> 0:FDF331.DOC
Physical block N 567 -> 0:FDF331.DOC
Physical block N 568 -> 0:FDF331.DOC
Physical block N 569 -> 0:FDF331.DOC
Physical block N 570 -> 0:FDF331.DOC
Physical block N 571 -> 0:FDF331.DOC
Physical block N 572 -> 0:FDF331.DOC
Physical block N 573 -> 0:FDF331.DOC
Physical block N 574 -> 0:FDF331.DOC
Physical block N 575 -> 0:FDF331.DOC
Physical block N 576 -> 0:FDF331.DOC
Physical block N 577 -> 0:FDF331.DOC
Physical block N 578 -> 0:FDF331.DOC
Physical block N 579 -> 0:FDF331.DOC
Physical block N 580 -> 0:FDF331.DOC
Physical block N 581 -> 0:FDF331.DOC
Physical block N 582 -> 0:FDF331.DOC
Physical block N 583 -> 0:FDF331.DOC
Physical block N 584 -> 0:FDF331.DOC
Physical block N 585 -> 0:FDF331.DOC
Physical block N 586 -> 0:FDF331.DOC
Physical block N 587 -> 0:FDF331.DOC
Physical block N 588 -> 0:FDF331.DOC
Physical block N 589 -> 0:FDF331.DOC
Physical block N 590 -> 0:FDF331.DOC
Physical block N 591 -> 0:FDF331.DOC
Physical block N 592 -> 0:FDF331.DOC
Physical block N 593 -> 0:FDF331.DOC
Physical block N 594 -> 0:FDF331.DOC
Physical block N 595 -> 0:FDF331.DOC
Physical block N 596 -> 0:FDF331.DOC
Physical block N 597 -> 0:FDF331.DOC
Physical block N 598 -> 0:FDF331.DOC
Physical block N 599 -> 0:FDF331.DOC
Physical block N 600 -> 0:FDF331.DOC
Physical block N 601 -> 0:FDF331.DOC
Physical block N 602 -> 0:FDF331.DOC
Physical block N 603 -> 0:FDF331.DOC
Physical block N 604 -> 0:FDF331.DOC
Physical block N 605 -> 0:FDF331.DOC
Physical block N 606 -> 0:FDF331.DOC
Physical block N 607 -> 0:FDF331.DOC
Physical block N 608 -> 0:FDF331.DOC
Physical block N 609 -> 0:FDF331.DOC
Physical block N 610 -> 0:FDF331.DOC
Physical block N 611 -> 0:FDF331.DOC
Physical block N 612 -> 0:FDF331.DOC
Physical block N 613 -> 0:FDF331.DOC
Physical block N 614 -> 0:FDF331.DOC
Physical block N 615 -> 0:FDF331.DOC
Physical block N 616 -> 0:FDF331.DOC
Physical block N 617 -> 0:FDF331.DOC
Physical block N 618 -> 0:FDF331.DOC
Physical block N 619 -> 0:FDF331.DOC
Physical block N 620 -> 0:FDF331.DOC
Physical block N 621 -> 0:FDF331.DOC
Physical block N 622 -> 0:FDF331.DOC
Physical block N 623 -> 0:FDF331.DOC
Physical block N 624 -> 0:FDF331.DOC
Physical block N 625 -> 0:FDF331.DOC
Physical block N 626 -> 0:FDF331.DOC
Physical block N 627 -> 0:FDF331.DOC
Physical block N 628 -> 0:FDF331.DOC
Physical block N 629 -> 0:FDF331.DOC
Physical block N 630 -> 0:FDF331.DOC
Physical block N 631 -> 0:FDF331.DOC
Physical block N 632 -> 0:FDF331.DOC
Physical block N 633 -> 0:FDF331.DOC
Physical block N 634 -> 0:FDF331.DOC
Physical block N 635 -> 0:FDF331.DOC
Physical block N 636 -> 0:FDF331.DOC
Physical block N 637 -> 0:FDF331.DOC
Physical block N 638 -> 0:FDF331.DOC
Physical block N 639 -> 0:FDF331.DOC
Physical block N 640 -> 0:FDF331.DOC
Physical block N 641 -> 0:FDF331.DOC
Physical block N 642 -> 0:FDF331.DOC
Physical block N 643 -> 0:FDF331.DOC
Physical block N 644 -> 0:FDF331.DOC
Physical block N 645 -> 0:FDF331.DOC
Physical block N 646 -> 0:FDF331.DOC
Physical block N 647 -> 0:FDF331.DOC
Physical block N 648 -> 0:FDF331.DOC
Physical block N 649 -> 0:FDF331.DOC
Physical block N 650 -> 0:FDF331.DOC
Physical block N 651 -> 0:FDF331.DOC
Physical block N 652 -> 0:FDF331.DOC
Physical block N 653 -> 0:FDF331.DOC
Physical block N 654 -> 0:FDF331.DOC
Physical block N 655 -> 0:FDF331.DOC
Physical block N 656 -> 0:FDF331.DOC
Physical block N 657 -> 0:FDF331.DOC
Physical block N 658 -> 0:FDF331.DOC
Physical block N 659 -> 0:FDF331.DOC
Physical block N 660 -> 0:FDF331.DOC
Physical block N 661 -> 0:FDF331.DOC
Physical block N 662 -> 0:FDF331.DOC
Physical block N 663 -> 0:FDF331.DOC
Physical block N 664 -> 0:FDF331.DOC
Physical block N 665 -> 0:FDF331.DOC
Physical block N 666 -> 0:FDF331.DOC
Physical block N 667 -> 0:FDF331.DOC
Physical block N 668 -> 0:FDF331.DOC
Physical block N 669 -> 0:FDF331.DOC
Physical block N 670 -> 0:FDF331.DOC
Physical block N 671 -> 0:FDF331.DOC
Physical block N 672 -> 0:FDF331.DOC
Physical block N 673 -> 0:FDF331.DOC
Physical block N 674 -> 0:FDF331.DOC
Physical block N 675 -> 0:FDF331.DOC
Physical block N 676 -> 0:FDF331.DOC
Physical block N 677 -> 0:FDF331.DOC
Physical block N 678 -> 0:FDF331.DOC
Physical block N 679 -> 0:FDF331.DOC
Physical block N 680 -> 0:FDF331.DOC
Physical block N 681 -> 0:FDF331.DOC
Physical block N 682 -> 0:FDF331.DOC
Physical block N 683 -> 0:FDF331.DOC
Physical block N 684 -> 0:FDF331.DOC
Physical block N 685 -> 0:FDF331.DOC
Physical block N 686 -> 0:FDF331.DOC
Physical block N 687 -> 0:FDF331.DOC
Physical block N 688 -> 0:FDF331.DOC
Physical block N 689 -> 0:FDF331.DOC
Physical block N 690 -> 0:FDF331.DOC
Physical block N 691 -> 0:FDF331.DOC
Physical block N 692 -> 0:FDF331.DOC
Physical block N 693 -> 0:FDF331.DOC
Physical block N 694 -> 0:FDF331.DOC
Physical block N 695 -> 0:FDF331.DOC
Physical block N 696 -> 0:FDF331.DOC
Physical block N 697 -> 0:FDF331.DOC
Physical block N 698 -> 0:FDF331.DOC
Physical block N 699 -> 0:FDF331.DOC
Physical block N 700 -> 0:FDF331.DOC
Physical block N 701 -> 0:FDF331.DOC
Physical block N 702 -> 0:FDF331.DOC
Physical block N 703 -> 0:FDF331.DOC
Physical block N 704 -> 0:FDF331.DOC
Physical block N 705 -> 0:FDF331.DOC
Physical block N 706 -> 0:FDF331.DOC
Physical block N 707 -> 0:FDF331.DOC
Physical block N 708 -> 0:FDF331.DOC
Physical block N 709 -> 0:FDF331.DOC
Physical block N 710 -> 0:FDF331.DOC
Physical block N 711 -> 0:FDF331.DOC
Physical block N 712 -> 0:FDF331.DOC
Physical block N 713 -> 0:FDF331.DOC
Physical block N 714 -> 0:FDF331.DOC
Physical block N 715 -> 0:FDF331.DOC
Physical block N 716 -> 0:FDF331.DOC
Physical block N 717 -> 0:FDF331.DOC
Physical block N 718 -> 0:FDF331.DOC
Physical block N 719 -> 0:FDF331.DOC
Physical block N 720 -> 0:FDF331.DOC
Physical block N 721 -> 0:FDF331.DOC
Physical block N 722 -> 0:FDF331.DOC
Physical block N 723 -> 0:FDF331.DOC
Physical block N 724 -> 0:FDF331.DOC
Physical block N 725 -> 0:FDF331.DOC
Physical block N 726 -> 0:FDF331.DOC
Physical block N 727 -> 0:FDF331.DOC
Physical block N 728 -> 0:FDF331.DOC
Physical block N 729 -> 0:FDF331.DOC
Physical block N 730 -> 0:FDF331.DOC
Physical block N 731 -> 0:FDF331.DOC
Physical block N 732 -> 0:FDF331.DOC
Physical block N 733 -> 0:FDF331.DOC
Physical block N 734 -> 0:FDF331.DOC
Physical block N 735 -> 0:FDF331.DOC
Physical block N 736 -> 0:FDF331.DOC
Physical block N 737 -> 0:FDF331.DOC
Physical block N 738 -> 0:FDF331.DOC
Physical block N 739 -> 0:FDF331.DOC
Physical block N 740 -> 0:FDF331.DOC
Physical block N 741 -> 0:FDF331.DOC
Physical block N 742 -> 0:FDF331.DOC
Physical block N 743 -> 0:FDF331.DOC
Physical block N 744 -> 0:FDF331.DOC
Physical block N 745 -> 0:FDF331.DOC
Physical block N 746 -> 0:FDF331.DOC
Physical block N 747 -> 0:FDF331.DOC
Physical block N 748 -> 0:FDF331.DOC
Physical block N 749 -> 0:FDF331.DOC
Physical block N 750 -> 0:FDF331.DOC
Physical block N 751 -> 0:FDF331.DOC
Physical block N 752 -> 0:FDF331.DOC
Physical block N 753 -> 0:FDF331.DOC
Physical block N 754 -> 0:FDF331.DOC
Physical block N 755 -> 0:FDF331.DOC
Physical block N 756 -> 0:FDF331.DOC
Physical block N 757 -> 0:FDF331.DOC
Physical block N 758 -> 0:FDF331.DOC
Physical block N 759 -> 0:FDF331.DOC
Physical block N 760 -> 0:FDF331.DOC
Physical block N 761 -> 0:FDF331.DOC
Physical block N 762 -> 0:FDF331.DOC
Physical block N 763 -> 0:FDF331.DOC
Physical block N 764 -> 0:FDF331.DOC
Physical block N 765 -> 0:FDF331.DOC
Physical block N 766 -> 0:FDF331.DOC
Physical block N 767 -> 0:FDF331.DOC
Physical block N 768 -> 0:FDF331.DOC
Physical block N 769 -> 0:FDF331.DOC
Physical block N 770 -> 0:FDF331.DOC
Physical block N 771 -> 0:FDF331.DOC
Physical block N 772 -> 0:FDF331.DOC
Physical block N 773 -> 0:FDF331.DOC
Physical block N 774 -> 0:FDF331.DOC
Physical block N 775 -> 0:FDF331.DOC
Physical block N 776 -> 0:FDF331.DOC
Physical block N 777 -> 0:FDF331.DOC
Physical block N 778 -> 0:FDF331.DOC
Physical block N 779 -> 0:FDF331.DOC
Physical block N 780 -> 0:FDF331.DOC
Physical block N 781 -> 0:FDF331.DOC
Physical block N 782 -> 0:FDF331.DOC
Physical block N 783 -> 0:FDF331.DOC
Physical block N 784 -> 0:FDF331.DOC
Physical block N 785 -> 0:FDF331.DOC
Physical block N 786 -> 0:FDF331.DOC
Physical block N 787 -> 0:FDF331.DOC
Physical block N 788 -> 0:FDF331.DOC
Physical block N 789 -> 0:FDF331.DOC
Physical block N 790 -> 0:FDF331.DOC
Physical block N 791 -> 0:FDF331.DOC
Physical block N 792 -> 0:FDF331.DOC
Physical block N 793 -> 0:FDF331.DOC
Physical block N 794 -> 0:FDF331.DOC
Physical block N 795 -> 0:FDF331.DOC
Physical block N 796 -> 0:FDF331.DOC
Physical block N 797 -> 0:FDF331.DOC
Physical block N 798 -> 0:FDF331.DOC
Physical block N 799 -> 0:FDF331.DOC
Physical block N 800 -> 0:FDF331.DOC
Physical block N 801 -> 0:FDF331.DOC
Physical block N 802 -> 0:FDF331.DOC
Physical block N 803 -> 0:FDF331.DOC
Physical block N 804 -> 0:FDF331.DOC
Physical block N 805 -> 0:FDF331.DOC
Physical block N 806 -> 0:FDF331.DOC
Physical block N 807 -> 0:FDF331.DOC
Physical block N 808 -> 0:FDF331.DOC
Physical block N 809 -> 0:FDF331.DOC
Physical block N 810 -> 0:FDF331.DOC
Physical block N 811 -> 0:FDF331.DOC
Physical block N 812 -> 0:FDF331.DOC
Physical block N 813 -> 0:FDF331.DOC
Physical block N 814 -> 0:FDF331.DOC
Physical block N 815 -> 0:FDF331.DOC
Physical block N 816 -> 0:FDF331.DOC
Physical block N 817 -> 0:FDF331.DOC
Physical block N 818 -> 0:FDF331.DOC
Physical block N 819 -> 0:FDF331.DOC
Physical block N 820 -> 0:FDF331.DOC
Physical block N 821 -> 0:FDF331.DOC
Physical block N 822 -> 0:FDF331.DOC
Physical block N 823 -> 0:FDF331.DOC
Physical block N 824 -> 0:FDF331.DOC
Physical block N 825 -> 0:FDF331.DOC
Physical block N 826 -> 0:FDF331.DOC
Physical block N 827 -> 0:FDF331.DOC
Physical block N 828 -> 0:FDF331.DOC
Physical block N 829 -> 0:FDF331.DOC
Physical block N 830 -> 0:FDF331.DOC
Physical block N 831 -> 0:FDF331.DOC
Physical block N 832 -> 0:FDF331.DOC
Physical block N 833 -> 0:FDF331.DOC
Physical block N 834 -> 0:FDF331.DOC
Physical block N 835 -> 0:FDF331.DOC
Physical block N 836 -> 0:FDF331.DOC
Physical block N 837 -> 0:FDF331.DOC
Physical block N 838 -> 0:FDF331.DOC
Physical block N 839 -> 0:FDF331.DOC
Physical block N 840 -> 0:FDF331.DOC
Physical block N 841 -> 0:FDF331.DOC
Physical block N 842 -> 0:FDF331.DOC
Physical block N 843 -> 0:FDF331.DOC
Physical block N 844 -> 0:FDF331.DOC
Physical block N 845 -> 0:FDF331.DOC
Physical block N 846 -> 0:FDF331.DOC
Physical block N 847 -> 0:FDF331.DOC
Physical block N 848 -> 0:FDF331.DOC
Physical block N 849 -> 0:FDF331.DOC
Physical block N 850 -> 0:FDF331.DOC
Physical block N 851 -> 0:FDF331.DOC
Physical block N 852 -> 0:FDF331.DOC
Physical block N 853 -> 0:FDF331.DOC
Physical block N 854 -> 0:FDF331.DOC
Physical block N 855 -> 0:FDF331.DOC
Physical block N 856 -> 0:FDF331.DOC
Physical block N 857 -> 0:FDF331.DOC
Physical block N 858 -> 0:FDF331.DOC
Physical block N 859 -> 0:FDF331.DOC
Physical block N 860 -> 0:FDF331.DOC
Physical block N 861 -> 0:FDF331.DOC
Physical block N 862 -> 0:FDF331.DOC
Physical block N 863 -> 0:FDF331.DOC
Physical block N 864 -> 0:FDF331.DOC
Physical block N 865 -> 0:FDF331.DOC
Physical block N 866 -> 0:FDF331.DOC
Physical block N 867 -> 0:FDF331.DOC
Physical block N 868 -> 0:FDF331.DOC
Physical block N 869 -> 0:FDF331.DOC
Physical block N 870 -> 0:FDF331.DOC
Physical block N 871 -> 0:FDF331.DOC
Physical block N 872 -> 0:FDF331.DOC
Physical block N 873 -> 0:FDF331.DOC
Physical block N 874 -> 0:FDF331.DOC
Physical block N 875 -> 0:FDF331.DOC
Physical block N 876 -> 0:FDF331.DOC
Physical block N 877 -> 0:FDF331.DOC
Physical block N 878 -> 0:FDF331.DOC
Physical block N 879 -> 0:FDF331.DOC
Physical block N 880 -> 0:FDF331.DOC
Physical block N 881 -> 0:FDF331.DOC
Physical block N 882 -> 0:FDF331.DOC
Physical block N 883 -> 0:FDF331.DOC
Physical block N 884 -> 0:FDF331.DOC
Physical block N 885 -> 0:FDF331.DOC
Physical block N 886 -> 0:FDF331.DOC
Physical block N 887 -> 0:FDF331.DOC
Physical block N 888 -> 0:FDF331.DOC
Physical block N 889 -> 0:FDF331.DOC
Physical block N 890 -> 0:FDF331.DOC
Physical block N 891 -> 0:FDF331.DOC
Physical block N 892 -> 0:FDF331.DOC
Physical block N 893 -> 0:FDF331.DOC
Physical block N 894 -> 0:FDF331.DOC
Physical block N 895 -> 0:FDF331.DOC
Physical block N 896 -> 0:FDF331.DOC
Physical block N 897 -> 0:FDF331.DOC
Physical block N 898 -> 0:FDF331.DOC
Physical block N 899 -> 0:FDF331.DOC
Physical block N 900 -> 0:FDF331.DOC
Physical block N 901 -> 0:FDF331.DOC
Physical block N 902 -> 0:FDF331.DOC
Physical block N 903 -> 0:FDF331.DOC
Physical block N 904 -> 0:FDF331.DOC
Physical block N 905 -> 0:FDF331.DOC
Physical block N 906 -> 0:FDF331.DOC
Physical block N 907 -> 0:FDF331.DOC
Physical block N 908 -> 0:FDF331.DOC
Physical block N 909 -> 0:FDF331.DOC
Physical block N 910 -> 0:FDF331.DOC
Physical block N 911 -> 0:FDF331.DOC
Physical block N 912 -> 0:FDF331.DOC
Physical block N 913 -> 0:FDF331.DOC
Physical block N 914 -> 0:FDF331.DOC
Physical block N 915 -> 0:FDF331.DOC
Physical block N 916 -> 0:FDF331.DOC
Physical block N 917 -> 0:FDF331.DOC
Physical block N 918 -> 0:FDF331.DOC
Physical block N 919 -> 0:FDF331.DOC
Physical block N 920 -> 0:FDF331.DOC
Physical block N 921 -> 0:FDF331.DOC
Physical block N 922 -> 0:FDF331.DOC
Physical block N 923 -> 0:FDF331.DOC
Physical block N 924 -> 0:FDF331.DOC
Physical block N 925 -> 0:FDF331.DOC
Physical block N 926 -> 0:FDF331.DOC
Physical block N 927 -> 0:FDF331.DOC
Physical block N 928 -> 0:FDF331.DOC
Physical block N 929 -> 0:FDF331.DOC
Physical block N 930 -> 0:FDF331.DOC
Physical block N 931 -> 0:FDF331.DOC
Physical block N 932 -> 0:FDF331.DOC
Physical block N 933 -> 0:FDF331.DOC
Physical block N 934 -> 0:FDF331.DOC
Physical block N 935 -> 0:FDF331.DOC
Physical block N 936 -> 0:FDF331.DOC
Physical block N 937 -> 0:FDF331.DOC
Physical block N 938 -> 0:FDF331.DOC
Physical block N 939 -> 0:FDF331.DOC
Physical block N 940 -> 0:FDF331.DOC
Physical block N 941 -> 0:FDF331.DOC
Physical block N 942 -> 0:FDF331.DOC
Physical block N 943 -> 0:FDF331.DOC
Physical block N 944 -> 0:FDF331.DOC
Physical block N 945 -> 0:FDF331.DOC
Physical block N 946 -> 0:FDF331.DOC
Physical block N 947 -> 0:FDF331.DOC
Physical block N 948 -> 0:FDF331.DOC
Physical block N 949 -> 0:FDF331.DOC
Physical block N 950 -> 0:FDF331.DOC
Physical block N 951 -> 0:FDF331.DOC
Physical block N 952 -> 0:FDF331.DOC
Physical block N 953 -> 0:FDF331.DOC
Physical block N 954 -> 0:FDF331.DOC
Physical block N 955 -> 0:FDF331.DOC
Physical block N 956 -> 0:FDF331.DOC
Physical block N 957 -> 0:FDF331.DOC
Physical block N 958 -> 0:FDF331.DOC
Physical block N 959 -> 0:FDF331.DOC
Physical block N 960 -> 0:FDF331.DOC
Physical block N 961 -> 0:FDF331.DOC
Physical block N 962 -> 0:FDF331.DOC
Physical block N 963 -> 0:FDF331.DOC
Physical block N 964 -> 0:FDF331.DOC
Physical block N 965 -> 0:FDF331.DOC
Physical block N 966 -> 0:FDF331.DOC
Physical block N 967 -> 0:FDF331.DOC
Physical block N 968 -> 0:FDF331.DOC
Physical block N 969 -> 0:FDF331.DOC
Physical block N 970 -> 0:FDF331.DOC
Physical block N 971 -> 0:FDF331.DOC
Physical block N 972 -> 0:FDF331.DOC
Physical block N 973 -> 0:FDF331.DOC
Physical block N 974 -> 0:FDF331.DOC
Physical block N 975 -> 0:FDF331.DOC
Physical block N 976 -> 0:FDF331.DOC
Physical block N 977 -> 0:FDF331.DOC
Physical block N 978 -> 0:FDF331.DOC
Physical block N 979 -> 0:FDF331.DOC
Physical block N 980 -> 0:FDF331.DOC
Physical block N 981 -> 0:FDF331.DOC
Physical block N 982 -> 0:FDF331.DOC
Physical block N 983 -> 0:FDF331.DOC
Physical block N 984 -> 0:FDF331.DOC
Physical block N 985 -> 0:FDF331.DOC
Physical block N 986 -> 0:FDF331.DOC
Physical block N 987 -> 0:FDF331.DOC
Physical block N 988 -> 0:FDF331.DOC
Physical block N 989 -> 0:FDF331.DOC
Physical block N 990 -> 0:FDF331.DOC
Physical block N 991 -> 0:FDF331.DOC
Physical block N 992 -> 0:FDF331.DOC
Physical block N 993 -> 0:FDF331.DOC
Physical block N 994 -> 0:FDF331.DOC
Physical block N 995 -> 0:FDF331.DOC
Physical block N 996 -> 0:FDF331.DOC
Physical block N 997 -> 0:FDF331.DOC
Physical block N 998 -> 0:FDF331.DOC
Physical block N 999 -> 0:FDF331.DOC
Physical block N 1000 -> 0:FDF331.DOC
Physical block N 1001 -> 0:FDF331.DOC
Physical block N 1002 -> 0:FDF331.DOC
Physical block N 1003 -> 0:FDF331.DOC
Physical block N 1004 -> 0:FDF331.DOC
Physical block N 1005 -> 0:FDF331.DOC
Physical block N 1006 -> 0:FDF331.DOC
Physical block N 1007 -> 0:FDF331.DOC
Physical block N 1008 -> 0:FDF331.DOC
Physical block N 1009 -> 0:FDF331.DOC
Physical block N 1010 -> 0:FDF331.DOC
Physical block N 1011 -> 0:FDF331.DOC
Physical block N 1012 -> 0:FDF331.DOC
Physical block N 1013 -> 0:FDF331.DOC
Physical block N 1014 -> 0:FDF331.DOC
Physical block N 1015 -> 0:FDF331.DOC
Physical block N 1016 -> 0:FDF331.DOC
Physical block N 1017 -> 0:FDF331.DOC
Physical block N 1018 -> 0:FDF331.DOC
Physical block N 1019 -> 0:FDF331.DOC
Physical block N 1020 -> 0:FDF331.DOC
Physical block N 1021 -> 0:FDF331.DOC
Physical block N 1022 -> 0:FDF331.DOC
Physical block N 1023 -> 0:FDF331.DOC
Physical block N 1024 -> 0:FDF331.DOC
Physical block N 1025 -> 0:FDF331.DOC
Physical block N 1026 -> 0:FDF331.DOC
Physical block N 1027 -> 0:FDF331.DOC
Physical block N 1028 -> 0:FDF331.DOC
Physical block N 1029 -> 0:FDF331.DOC
Physical block N 1030 -> 0:FDF331.DOC
Physical block N 1031 -> 0:FDF331.DOC
Physical block N 1032 -> 0:FDF331.DOC
Physical block N 1033 -> 0:FDF331.DOC
Physical block N 1034 -> 0:FDF331.DOC
Physical block N 1035 -> 0:FDF331.DOC
Physical block N 1036 -> 0:FDF331.DOC
Physical block N 1037 -> 0:FDF331.DOC
Physical block N 1038 -> 0:FDF331.DOC
Physical block N 1039 -> 0:FDF331.DOC
Physical block N 1040 -> 0:FDF331.DOC
Physical block N 1041 -> 0:FDF331.DOC
Physical block N 1042 -> 0:FDF331.DOC
Physical block N 1043 -> 0:FDF331.DOC
Physical block N 1044 -> 0:FDF331.DOC
Physical block N 1045 -> 0:FDF331.DOC
Physical block N 1046 -> 0:FDF331.DOC
Physical block N 1047 -> 0:FDF331.DOC
Physical block N 1048 -> 0:FDF331.DOC
Physical block N 1049 -> 0:FDF331.DOC
Physical block N 1050 -> 0:FDF331.DOC
Physical block N 1051 -> 0:FDF331.DOC
Physical block N 1052 -> 0:FDF331.DOC
Physical block N 1053 -> 0:FDF331.DOC
Physical block N 1054 -> 0:FDF331.DOC
Physical block N 1055 -> 0:FDF331.DOC
Physical block N 1056 -> 0:FDF331.DOC
Physical block N 1057 -> 0:FDF331.DOC
Physical block N 1058 -> 0:FDF331.DOC
Physical block N 1059 -> 0:FDF331.DOC
Physical block N 1060 -> 0:FDF331.DOC
Physical block N 1061 -> 0:FDF331.DOC
Physical block N 1062 -> 0:FDF331.DOC
Physical block N 1063 -> 0:FDF331.DOC
Physical block N 1064 -> 0:FDF331.DOC
Physical block N 1065 -> 0:FDF331.DOC
Physical block N 1066 -> 0:FDF331.DOC
Physical block N 1067 -> 0:FDF331.DOC
Physical block N 1068 -> 0:FDF331.DOC
Physical block N 1069 -> 0:FDF331.DOC
Physical block N 1070 -> 0:FDF331.DOC
Physical block N 1071 -> 0:FDF331.DOC
Physical block N 1072 -> 0:FDF331.DOC
Physical block N 1073 -> 0:FDF331.DOC
Physical block N 1074 -> 0:FDF331.DOC
Physical block N 1075 -> 0:FDF331.DOC
Physical block N 1076 -> 0:FDF331.DOC
Physical block N 1077 -> 0:FDF331.DOC
Physical block N 1078 -> 0:FDF331.DOC
Physical block N 1079 -> 0:FDF331.DOC
Physical block N 1080 -> 0:FDF331.DOC
Physical block N 1081 -> 0:FDF331.DOC
Physical block N 1082 -> 0:FDF331.DOC
Physical block N 1083 -> 0:FDF331.DOC
Physical block N 1084 -> 0:FDF331.DOC
Physical block N 1085 -> 0:FDF331.DOC
Physical block N 1086 -> 0:FDF331.DOC
Physical block N 1087 -> 0:FDF331.DOC
Physical block N 1088 -> 0:FDF331.DOC
Physical block N 1089 -> 0:FDF331.DOC
Physical block N 1090 -> 0:FDF331.DOC
Physical block N 1091 -> 0:FDF331.DOC
Physical block N 1092 -> 0:FDF331.DOC
Physical block N 1093 -> 0:FDF331.DOC
Physical block N 1094 -> 0:FDF331.DOC
Physical block N 1095 -> 0:FDF331.DOC
Physical block N 1096 -> 0:FDF331.DOC
Physical block N 1097 -> 0:FDF331.DOC
Physical block N 1098 -> 0:FDF331.DOC
Physical block N 1099 -> 0:FDF331.DOC
Physical block N 1100 -> 0:FDF331.DOC
Physical block N 1101 -> 0:FDF331.DOC
Physical block N 1102 -> 0:FDF331.DOC
Physical block N 1103 -> 0:FDF331.DOC
Physical block N 1104 -> 0:FDF331.DOC
Physical block N 1105 -> 0:FDF331.DOC
Physical block N 1106 -> 0:FDF331.DOC
Physical block N 1107 -> 0:FDF331.DOC
Physical block N 1108 -> 0:FDF331.DOC
Physical block N 1109 -> 0:FDF331.DOC
Physical block N 1110 -> 0:FDF331.DOC
Physical block N 1111 -> 0:FDF331.DOC
Physical block N 1112 -> 0:FDF331.DOC
Physical block N 1113 -> 0:FDF331.DOC
Physical block N 1114 -> 0:FDF331.DOC
Physical block N 1115 -> 0:FDF331.DOC
Physical block N 1116 -> 0:FDF331.DOC
Physical block N 1117 -> 0:FDF331.DOC
Physical block N 1118 -> 0:FDF331.DOC
Physical block N 1119 -> 0:FDF331.DOC
Physical block N 1120 -> 0:FDF331.DOC
Physical block N 1121 -> 0:FDF331.DOC
Physical block N 1122 -> 0:FDF331.DOC
Physical block N 1123 -> 0:FDF331.DOC
Physical block N 1124 -> 0:FDF331.DOC
Physical block N 1125 -> 0:FDF331.DOC
Physical block N 1126 -> 0:FDF331.DOC
Physical block N 1127 -> 0:FDF331.DOC
Physical block N 1128 -> 0:FDF331.DOC
Physical block N 1129 -> 0:FDF331.DOC
Physical block N 1130 -> 0:FDF331.DOC
Physical block N 1131 -> 0:FDF331.DOC
Physical block N 1132 -> 0:FDF331.DOC
Physical block N 1133 -> 0:FDF331.DOC
Physical block N 1134 -> 0:FDF331.DOC
Physical block N 1135 -> 0:FDF331.DOC
Physical block N 1136 -> 0:FDF331.DOC
Physical block N 1137 -> 0:FDF331.DOC
Physical block N 1138 -> 0:FDF331.DOC
Physical block N 1139 -> 0:FDF331.DOC
Physical block N 1140 -> 0:FDF331.DOC
Physical block N 1141 -> 0:FDF331.DOC
Physical block N 1142 -> 0:FDF331.DOC
Physical block N 1143 -> 0:FDF331.DOC
Physical block N 1144 -> 0:FDF331.DOC
Physical block N 1145 -> 0:FDF331.DOC
Physical block N 1146 -> 0:FDF331.DOC
Physical block N 1147 -> 0:FDF331.DOC
Physical block N 1148 -> 0:FDF331.DOC
Physical block N 1149 -> 0:FDF331.DOC
Physical block N 1150 -> 0:FDF331.DOC
Physical block N 1151 -> 0:FDF331.DOC
Physical block N 1152 -> 0:FDF331.DOC
Physical block N 1153 -> 0:FDF331.DOC
Physical block N 1154 -> 0:FDF331.DOC
Physical block N 1155 -> 0:FDF331.DOC
Physical block N 1156 -> 0:FDF331.DOC
Physical block N 1157 -> 0:FDF331.DOC
Physical block N 1158 -> 0:FDF331.DOC
Physical block N 1159 -> 0:FDF331.DOC
Physical block N 1160 -> 0:FDF331.DOC
Physical block N 1161 -> 0:FDF331.DOC
Physical block N 1162 -> 0:FDF331.DOC
Physical block N 1163 -> 0:FDF331.DOC
Physical block N 1164 -> 0:FDF331.DOC
Physical block N 1165 -> 0:FDF331.DOC
Physical block N 1166 -> 0:FDF331.DOC
Physical block N 1167 -> 0:FDF331.DOC
Physical block N 1168 -> 0:FDF331.DOC
Physical block N 1169 -> 0:FDF331.DOC
Physical block N 1170 -> 0:FDF331.DOC
Physical block N 1171 -> 0:FDF331.DOC
Physical block N 1172 -> 0:FDF331.DOC
Physical block N 1173 -> 0:FDF331.DOC
Physical block N 1174 -> 0:FDF331.DOC
Physical block N 1175 -> 0:FDF331.DOC
Physical block N 1176 -> 0:FDF331.DOC
Physical block N 1177 -> 0:FDF331.DOC
Physical block N 1178 -> 0:FDF331.DOC
Physical block N 1179 -> 0:FDF331.DOC
Physical block N 1180 -> 0:FDF331.DOC
Physical block N 1181 -> 0:FDF331.DOC
Physical block N 1182 -> 0:FDF331.DOC
Physical block N 1183 -> 0:FDF331.DOC
Physical block N 1184 -> 0:FDF331.DOC
Physical block N 1185 -> 0:FDF331.DOC
Physical block N 1186 -> 0:FDF331.DOC
Physical block N 1187 -> 0:FDF331.DOC
Physical block N 1188 -> 0:FDF331.DOC
Physical block N 1189 -> 0:FDF331.DOC
Physical block N 1190 -> 0:FDF331.DOC
Physical block N 1191 -> 0:FDF331.DOC
Physical block N 1192 -> 0:FDF331.DOC
Physical block N 1193 -> 0:FDF331.DOC
Physical block N 1194 -> 0:FDF331.DOC
Physical block N 1195 -> 0:FDF331.DOC
Physical block N 1196 -> 0:FDF331.DOC
Physical block N 1197 -> 0:FDF331.DOC
Physical block N 1198 -> 0:FDF331.DOC
Physical block N 1199 -> 0:FDF331.DOC
Physical block N 1200 -> 0:FDF331.DOC
Physical block N 1201 -> 0:FDF331.DOC
Physical block N 1202 -> 0:FDF331.DOC
Physical block N 1203 -> 0:FDF331.DOC
Physical block N 1204 -> 0:FDF331.DOC
Physical block N 1205 -> 0:FDF331.DOC
Physical block N 1206 -> 0:FDF331.DOC
Physical block N 1207 -> 0:FDF331.DOC
Physical block N 1208 -> 0:FDF331.DOC
Physical block N 1209 -> 0:FDF331.DOC
Physical block N 1210 -> 0:FDF331.DOC
Physical block N 1211 -> 0:FDF331.DOC
Physical block N 1212 -> 0:FDF331.DOC
Physical block N 1213 -> 0:FDF331.DOC
Physical block N 1214 -> 0:FDF331.DOC
Physical block N 1215 -> 0:FDF331.DOC
Physical block N 1216 -> 0:FDF331.DOC
Physical block N 1217 -> 0:FDF331.DOC
Physical block N 1218 -> 0:FDF331.DOC
Physical block N 1219 -> 0:FDF331.DOC
Physical block N 1220 -> 0:FDF331.DOC
Physical block N 1221 -> 0:FDF331.DOC
Physical block N 1222 -> 0:FDF331.DOC
Physical block N 1223 -> 0:FDF331.DOC
Physical block N 1224 -> 0:FDF331.DOC
Physical block N 1225 -> 0:FDF331.DOC
Physical block N 1226 -> 0:FDF331.DOC
Physical block N 1227 -> 0:FDF331.DOC
Physical block N 1228 -> 0:FDF331.DOC
Physical block N 1229 -> 0:FDF331.DOC
Physical block N 1230 -> 0:FDF331.DOC
Physical block N 1231 -> 0:FDF331.DOC
Physical block N 1232 -> 0:FDF331.DOC
Physical block N 1233 -> 0:FDF331.DOC
Physical block N 1234 -> 0:FDF331.DOC
Physical block N 1235 -> 0:FDF331.DOC
Physical block N 1236 -> 0:FDF331.DOC
Physical block N 1237 -> 0:FDF331.DOC
Physical block N 1238 -> 0:FDF331.DOC
Physical block N 1239 -> 0:FDF331.DOC
Physical block N 1240 -> 0:FDF331.DOC
Physical block N 1241 -> 0:FDF331.DOC
Physical block N 1242 -> 0:FDF331.DOC
Physical block N 1243 -> 0:FDF331.DOC
Physical block N 1244 -> 0:FDF331.DOC
Physical block N 1245 -> 0:FDF331.DOC
Physical block N 1246 -> 0:FDF331.DOC
Physical block N 1247 -> 0:FDF331.DOC
Physical block N 1248 -> 0:FDF331.DOC
Physical block N 1249 -> 0:FDF331.DOC
Physical block N 1250 -> 0:FDF331.DOC
Physical block N 1251 -> 0:FDF331.DOC
Physical block N 1252 -> 0:FDF331.DOC
Physical block N 1253 -> 0:FDF331.DOC
Physical block N 1254 -> 0:FDF331.DOC
Physical block N 1255 -> 0:FDF333.DOC
Physical block N 1256 -> 0:FDF331.DOC
Physical block N 1257 -> 0:FDF333.DOC
Physical block N 1258 -> 0:FDF331.DOC
Physical block N 1259 -> 0:FDF333.DOC
Physical block N 1260 -> 0:FDF331.DOC
Physical block N 1261 -> 0:FDF333.DOC
Physical block N 1262 -> 0:FDF331.DOC
Physical block N 1263 -> 0:FDF333.DOC
Physical block N 1264 -> 0:FDF331.DOC
Physical block N 1265 -> 0:FDF333.DOC
Physical block N 1266 -> 0:FDF331.DOC
Physical block N 1267 -> 0:FDF333.DOC
Physical block N 1268 -> 0:FDF331.DOC
Physical block N 1269 -> 0:FDF333.DOC
Physical block N 1270 -> 0:FDF331.DOC
Physical block N 1271 -> 0:FDF331.DOC
Physical block N 1272 -> 0:FDF331.DOC
Physical block N 1273 -> 0:FDF331.DOC
Physical block N 1274 -> 0:FDF333.DOC
Physical block N 1275 -> 0:FDF333.DOC
Physical block N 1276 -> 0:FDF333.DOC
Physical block N 1277 -> 0:FDF333.DOC
Physical block N 1278 -> 0:FDF333.DOC
Physical block N 1279 -> 0:FDF333.DOC
Physical block N 1280 -> 0:FDF333.DOC
Physical block N 1281 -> 0:FDF333.DOC
Physical block N 1282 -> 0:FDF333.DOC
Physical block N 1283 -> 0:FDF333.DOC
Physical block N 1284 -> 0:FDF333.DOC
Physical block N 1285 -> 0:FDF333.DOC
Physical block N 1286 -> 0:FDF333.DOC
Physical block N 1287 -> 0:FDF333.DOC
Physical block N 1288 -> 0:FDF333.DOC
Physical block N 1289 -> 0:FDF333.DOC
Physical block N 1290 -> 0:FDF333.DOC
Physical block N 1291 -> 0:FDF333.DOC
Physical block N 1292 -> 0:FDF333.DOC
Physical block N 1293 -> 0:FDF333.DOC
Physical block N 1294 -> 0:FDF333.DOC
Physical block N 1295 -> 0:FDF333.DOC
Physical block N 1296 -> 0:FDF333.DOC
Physical block N 1297 -> 0:FDF333.DOC
Physical block N 1298 -> 0:FDF333.DOC
Physical block N 1299 -> 0:FDF333.DOC
Physical block N 1300 -> 0:FDF333.DOC
Physical block N 1301 -> 0:FDF333.DOC
Physical block N 1302 -> 0:FDF333.DOC
Physical block N 1303 -> 0:FDF333.DOC
Physical block N 1304 -> 0:FDF333.DOC
Physical block N 1305 -> 0:FDF333.DOC
Physical block N 1306 -> 0:FDF333.DOC
Physical block N 1307 -> 0:FDF333.DOC
Physical block N 1308 -> 0:FDF333.DOC
Physical block N 1309 -> 0:FDF333.DOC
Physical block N 1310 -> 0:FDF333.DOC
Physical block N 1311 -> 0:FDF333.DOC
Physical block N 1312 -> 0:FDF333.DOC
Physical block N 1313 -> 0:FDF333.DOC
Physical block N 1314 -> 0:FDF333.DOC
Physical block N 1315 -> 0:FDF333.DOC
Physical block N 1316 -> 0:FDF333.DOC
Physical block N 1317 -> 0:FDF333.DOC
Physical block N 1318 -> 0:FDF333.DOC
Physical block N 1319 -> 0:FDF333.DOC
Physical block N 1320 -> 0:FDF333.DOC
Physical block N 1321 -> 0:FDF333.DOC
Physical block N 1322 -> 0:FDF333.DOC
Physical block N 1323 -> 0:FDF333.DOC
Physical block N 1324 -> 0:FDF333.DOC
Physical block N 1325 -> 0:FDF333.DOC
Physical block N 1326 -> 0:FDF333.DOC
Physical block N 1327 -> 0:FDF333.DOC
Physical block N 1328 -> 0:FDF333.DOC
Physical block N 1329 -> 0:FDF333.DOC
Physical block N 1330 -> 0:FDF333.DOC
Physical block N 1331 -> 0:FDF333.DOC
Physical block N 1332 -> 0:FDF333.DOC
Physical block N 1333 -> 0:FDF333.DOC
Physical block N 1334 -> 0:FDF333.DOC
Physical block N 1335 -> 0:FDF333.DOC
Physical block N 1336 -> 0:FDF333.DOC
Physical block N 1337 -> 0:FDF333.DOC
Physical block N 1338 -> 0:FDF333.DOC
Physical block N 1339 -> 0:FDF333.DOC
Physical block N 1340 -> 0:FDF333.DOC
Physical block N 1341 -> 0:FDF333.DOC
Physical block N 1342 -> 0:FDF333.DOC
Physical block N 1343 -> 0:FDF333.DOC
Physical block N 1344 -> 0:FDF333.DOC
Physical block N 1345 -> 0:FDF333.DOC
Physical block N 1346 -> 0:FDF333.DOC
Physical block N 1347 -> 0:FDF333.DOC
Physical block N 1348 -> 0:FDF333.DOC
Physical block N 1349 -> 0:FDF333.DOC
Physical block N 1350 -> 0:FDF333.DOC
Physical block N 1351 -> 0:FDF333.DOC
Physical block N 1352 -> 0:FDF333.DOC
Physical block N 1353 -> 0:FDF333.DOC
Physical block N 1354 -> 0:FDF333.DOC
Physical block N 1355 -> 0:FDF333.DOC
Physical block N 1356 -> 0:FDF333.DOC
Physical block N 1357 -> 0:FDF333.DOC
Physical block N 1358 -> 0:FDF333.DOC
Physical block N 1359 -> 0:FDF333.DOC
Physical block N 1360 -> 0:FDF333.DOC
Physical block N 1361 -> 0:FDF333.DOC
Physical block N 1362 -> 0:FDF333.DOC
Physical block N 1363 -> 0:FDF333.DOC
Physical block N 1364 -> 0:FDF333.DOC
Physical block N 1365 -> 0:FDF333.DOC
Physical block N 1366 -> 0:FDF333.DOC
Physical block N 1367 -> 0:FDF333.DOC
Physical block N 1368 -> 0:FDF333.DOC
Physical block N 1369 -> 0:FDF333.DOC
Physical block N 1370 -> 0:FDF333.DOC
Physical block N 1371 -> 0:FDF333.DOC
Physical block N 1372 -> 0:FDF333.DOC
Physical block N 1373 -> 0:FDF333.DOC
Physical block N 1374 -> 0:FDF333.DOC
Physical block N 1375 -> 0:FDF333.DOC
Physical block N 1376 -> 0:FDF333.DOC
Physical block N 1377 -> 0:FDF333.DOC
Physical block N 1378 -> 0:FDF333.DOC
Physical block N 1379 -> 0:FDF333.DOC
Physical block N 1380 -> 0:FDF333.DOC
Physical block N 1381 -> 0:FDF333.DOC
Physical block N 1382 -> 0:FDF333.DOC
Physical block N 1383 -> 0:FDF333.DOC
Physical block N 1384 -> 0:FDF333.DOC
Physical block N 1385 -> 0:FDF333.DOC
Physical block N 1386 -> 0:FDF333.DOC
Physical block N 1387 -> 0:FDF333.DOC
Physical block N 1388 -> 0:FDF333.DOC
Physical block N 1389 -> 0:FDF333.DOC
Physical block N 1390 -> 0:FDF333.DOC
Physical block N 1391 -> 0:FDF333.DOC
Physical block N 1392 -> 0:FDF333.DOC
Physical block N 1393 -> 0:FDF333.DOC
Physical block N 1394 -> 0:FDF333.DOC
Physical block N 1395 -> 0:FDF333.DOC
Physical block N 1396 -> 0:FDF333.DOC
Physical block N 1397 -> 0:FDF333.DOC
Physical block N 1398 -> 0:FDF333.DOC
Physical block N 1399 -> 0:FDF333.DOC
Physical block N 1400 -> 0:FDF333.DOC
Physical block N 1401 -> 0:FDF333.DOC
Physical block N 1402 -> 0:FDF333.DOC
Physical block N 1403 -> 0:FDF333.DOC
Physical block N 1404 -> 0:FDF333.DOC
Physical block N 1405 -> 0:FDF333.DOC
Physical block N 1406 -> 0:FDF333.DOC
Physical block N 1407 -> 0:FDF333.DOC
Physical block N 1408 -> 0:FDF333.DOC
Physical block N 1409 -> 0:FDF333.DOC
Physical block N 1410 -> 0:FDF333.DOC
Physical block N 1411 -> 0:FDF333.DOC
Physical block N 1412 -> 0:FDF333.DOC
Physical block N 1413 -> 0:FDF333.DOC
Physical block N 1414 -> 0:FDF333.DOC
Physical block N 1415 -> 0:FDF333.DOC
Physical block N 1416 -> 0:FDF333.DOC
Physical block N 1417 -> 0:FDF333.DOC
Physical block N 1418 -> 0:FDF333.DOC
Physical block N 1419 -> 0:FDF333.DOC
Physical block N 1420 -> 0:FDF333.DOC
Physical block N 1421 -> 0:FDF333.DOC
Physical block N 1422 -> 0:FDF333.DOC
Physical block N 1423 -> 0:FDF333.DOC
Physical block N 1424 -> 0:FDF333.DOC
Physical block N 1425 -> 0:FDF333.DOC
Physical block N 1426 -> 0:FDF333.DOC
Physical block N 1427 -> 0:FDF333.DOC
Physical block N 1428 -> 0:FDF333.DOC
Physical block N 1429 -> 0:FDF333.DOC
Physical block N 1430 -> 0:FDF333.DOC
Physical block N 1431 -> 0:FDF333.DOC
Physical block N 1432 -> 0:FDF333.DOC
Physical block N 1433 -> 0:FDF333.DOC
Physical block N 1434 -> 0:FDF333.DOC
Physical block N 1435 -> 0:FDF333.DOC
Physical block N 1436 -> 0:FDF333.DOC
Physical block N 1437 -> 0:FDF333.DOC
Physical block N 1438 -> 0:FDF333.DOC
Physical block N 1439 -> 0:FDF333.DOC
Physical block N 1440 -> 0:FDF333.DOC
Physical block N 1441 -> 0:FDF333.DOC
Physical block N 1442 -> 0:FDF333.DOC
Physical block N 1443 -> 0:FDF333.DOC
Physical block N 1444 -> 0:FDF333.DOC
Physical block N 1445 -> 0:FDF333.DOC
Physical block N 1446 -> 0:FDF333.DOC
Physical block N 1447 -> 0:FDF333.DOC
Physical block N 1448 -> 0:FDF333.DOC
Physical block N 1449 -> 0:FDF333.DOC
Physical block N 1450 -> 0:FDF333.DOC
Physical block N 1451 -> 0:FDF333.DOC
Physical block N 1452 -> 0:FDF333.DOC
Physical block N 1453 -> 0:FDF333.DOC
Physical block N 1454 -> 0:FDF333.DOC
Physical block N 1455 -> 0:FDF333.DOC
Physical block N 1456 -> 0:FDF333.DOC
Physical block N 1457 -> 0:FDF333.DOC
Physical block N 1458 -> 0:FDF333.DOC
Physical block N 1459 -> 0:FDF333.DOC
Physical block N 1460 -> 0:FDF333.DOC
Physical block N 1461 -> 0:FDF333.DOC
Physical block N 1462 -> 0:FDF333.DOC
Physical block N 1463 -> 0:FDF333.DOC
Physical block N 1464 -> 0:FDF333.DOC
Physical block N 1465 -> 0:FDF333.DOC
Physical block N 1466 -> 0:FDF333.DOC
Physical block N 1467 -> 0:FDF333.DOC
Physical block N 1468 -> 0:FDF333.DOC
Physical block N 1469 -> 0:FDF333.DOC
Physical block N 1470 -> 0:FDF333.DOC
Physical block N 1471 -> 0:FDF333.DOC
Physical block N 1472 -> 0:FDF333.DOC
Physical block N 1473 -> 0:FDF333.DOC
Physical block N 1474 -> 0:FDF333.DOC
Physical block N 1475 -> 0:FDF333.DOC
Physical block N 1476 -> 0:FDF333.DOC
Physical block N 1477 -> 0:FDF333.DOC
Physical block N 1478 -> 0:FDF333.DOC
Physical block N 1479 -> 0:FDF333.DOC
Physical block N 1480 -> 0:FDF333.DOC
Physical block N 1481 -> 0:FDF333.DOC
Physical block N 1482 -> 0:FDF333.DOC
Physical block N 1483 -> 0:FDF333.DOC
Physical block N 1484 -> 0:FDF333.DOC
Physical block N 1485 -> 0:FDF333.DOC
Physical block N 1486 -> 0:FDF333.DOC
Physical block N 1487 -> 0:FDF333.DOC
Physical block N 1488 -> 0:FDF333.DOC
Physical block N 1489 -> 0:FDF333.DOC
Physical block N 1490 -> 0:FDF333.DOC
Physical block N 1491 -> 0:FDF333.DOC
Physical block N 1492 -> 0:FDF333.DOC
Physical block N 1493 -> 0:FDF333.DOC
Physical block N 1494 -> 0:FDF333.DOC
Physical block N 1495 -> 0:FDF333.DOC
Physical block N 1496 -> 0:FDF333.DOC
Physical block N 1497 -> 0:FDF333.DOC
Physical block N 1498 -> 0:FDF333.DOC
Physical block N 1499 -> 0:FDF333.DOC
Physical block N 1500 -> 0:FDF333.DOC
Physical block N 1501 -> 0:FDF333.DOC
Physical block N 1502 -> 0:FDF333.DOC
Physical block N 1503 -> 0:FDF333.DOC
Physical block N 1504 -> 0:FDF333.DOC
Physical block N 1505 -> 0:FDF333.DOC
Physical block N 1506 -> 0:FDF333.DOC
Physical block N 1507 -> 0:FDF333.DOC
Physical block N 1508 -> 0:FDF333.DOC
Physical block N 1509 -> 0:FDF333.DOC
Physical block N 1510 -> 0:FDF333.DOC
Physical block N 1511 -> 0:FDF333.DOC
Physical block N 1512 -> 0:FDF333.DOC
Physical block N 1513 -> 0:FDF333.DOC
Physical block N 1514 -> 0:FDF333.DOC
Physical block N 1515 -> 0:FDF333.DOC
Physical block N 1516 -> 0:FDF333.DOC
Physical block N 1517 -> 0:FDF333.DOC
Physical block N 1518 -> 0:FDF333.DOC
Physical block N 1519 -> 0:FDF333.DOC
Physical block N 1520 -> 0:FDF333.DOC
Physical block N 1521 -> 0:FDF333.DOC
Physical block N 1522 -> 0:FDF333.DOC
Physical block N 1523 -> 0:FDF333.DOC
Physical block N 1524 -> 0:FDF333.DOC
Physical block N 1525 -> 0:FDF333.DOC
Physical block N 1526 -> 0:FDF333.DOC
Physical block N 1527 -> 0:FDF333.DOC
Physical block N 1528 -> 0:FDF333.DOC
Physical block N 1529 -> 0:FDF333.DOC
Physical block N 1530 -> 0:FDF333.DOC
Physical block N 1531 -> 0:FDF333.DOC
Physical block N 1532 -> 0:FDF333.DOC
Physical block N 1533 -> 0:FDF333.DOC
Physical block N 1534 -> 0:FDF333.DOC
Physical block N 1535 -> 0:FDF333.DOC
Physical block N 1536 -> 0:FDF333.DOC
Physical block N 1537 -> 0:FDF333.DOC
Physical block N 1538 -> 0:FDF333.DOC
Physical block N 1539 -> 0:FDF333.DOC
Physical block N 1540 -> 0:FDF333.DOC
Physical block N 1541 -> 0:FDF333.DOC
Physical block N 1542 -> 0:FDF333.DOC
Physical block N 1543 -> 0:FDF333.DOC
Physical block N 1544 -> 0:FDF333.DOC
Physical block N 1545 -> 0:FDF333.DOC
Physical block N 1546 -> 0:FDF333.DOC
Physical block N 1547 -> 0:FDF333.DOC
Physical block N 1548 -> 0:FDF333.DOC
Physical block N 1549 -> 0:FDF333.DOC
Physical block N 1550 -> 0:FDF333.DOC
Physical block N 1551 -> 0:FDF333.DOC
Physical block N 1552 -> 0:FDF333.DOC
Physical block N 1553 -> 0:FDF333.DOC
Physical block N 1554 -> 0:FDF333.DOC
Physical block N 1555 -> 0:FDF333.DOC
Physical block N 1556 -> 0:FDF333.DOC
Physical block N 1557 -> 0:FDF333.DOC
Physical block N 1558 -> 0:FDF333.DOC
Physical block N 1559 -> 0:FDF333.DOC
Physical block N 1560 -> 0:FDF333.DOC
Physical block N 1561 -> 0:FDF333.DOC
Physical block N 1562 -> 0:FDF333.DOC
Physical block N 1563 -> 0:FDF333.DOC
Physical block N 1564 -> 0:FDF333.DOC
Physical block N 1565 -> 0:FDF333.DOC
Physical block N 1566 -> 0:FDF333.DOC
Physical block N 1567 -> 0:FDF333.DOC
Physical block N 1568 -> 0:FDF333.DOC
Physical block N 1569 -> 0:FDF333.DOC
Physical block N 1570 -> 0:FDF333.DOC
Physical block N 1571 -> 0:FDF333.DOC
Physical block N 1572 -> 0:FDF333.DOC
Physical block N 1573 -> 0:FDF333.DOC
Physical block N 1574 -> 0:FDF333.DOC
Physical block N 1575 -> 0:FDF333.DOC
Physical block N 1576 -> 0:FDF333.DOC
Physical block N 1577 -> 0:FDF333.DOC
Physical block N 1578 -> 0:FDF333.DOC
Physical block N 1579 -> 0:FDF333.DOC
Physical block N 1580 -> 0:FDF333.DOC
Physical block N 1581 -> 0:FDF333.DOC
Physical block N 1582 -> 0:FDF333.DOC
Physical block N 1583 -> 0:FDF333.DOC
Physical block N 1584 -> 0:FDF333.DOC
Physical block N 1585 -> 0:FDF333.DOC
Physical block N 1586 -> 0:FDF333.DOC
Physical block N 1587 -> 0:FDF333.DOC
Physical block N 1588 -> 0:FDF333.DOC
Physical block N 1589 -> 0:FDF333.DOC
Physical block N 1590 -> 0:FDF333.DOC
Physical block N 1591 -> 0:FDF333.DOC
Physical block N 1592 -> 0:FDF333.DOC
Physical block N 1593 -> 0:FDF333.DOC
Physical block N 1594 -> 0:FDF333.DOC
Physical block N 1595 -> 0:FDF333.DOC
Physical block N 1596 -> 0:FDF333.DOC
Physical block N 1597 -> 0:FDF333.DOC
Physical block N 1598 -> 0:FDF333.DOC
Physical block N 1599 -> 0:FDF333.DOC
Physical block N 1600 -> 0:FDF333.DOC
Physical block N 1601 -> 0:FDF333.DOC
Physical block N 1602 -> 0:FDF333.DOC
Physical block N 1603 -> 0:FDF333.DOC
Physical block N 1604 -> 0:FDF333.DOC
Physical block N 1605 -> 0:FDF333.DOC
Physical block N 1606 -> 0:FDF333.DOC
Physical block N 1607 -> 0:FDF333.DOC
Physical block N 1608 -> 0:FDF333.DOC
Physical block N 1609 -> 0:FDF333.DOC
Physical block N 1610 -> 0:FDF333.DOC
Physical block N 1611 -> 0:FDF333.DOC
Physical block N 1612 -> 0:FDF333.DOC
Physical block N 1613 -> 0:FDF333.DOC
Physical block N 1614 -> 0:FDF333.DOC
Physical block N 1615 -> 0:FDF333.DOC
Physical block N 1616 -> 0:FDF333.DOC
Physical block N 1617 -> 0:FDF333.DOC
Physical block N 1618 -> 0:FDF333.DOC
Physical block N 1619 -> 0:FDF333.DOC
Physical block N 1620 -> 0:FDF333.DOC
Physical block N 1621 -> 0:FDF333.DOC
Physical block N 1622 -> 0:FDF333.DOC
Physical block N 1623 -> 0:FDF333.DOC
Physical block N 1624 -> 0:FDF333.DOC
Physical block N 1625 -> 0:FDF333.DOC
Physical block N 1626 -> 0:FDF333.DOC
Physical block N 1627 -> 0:FDF333.DOC
Physical block N 1628 -> 0:FDF333.DOC
Physical block N 1629 -> 0:FDF333.DOC
Physical block N 1630 -> 0:FDF333.DOC
Physical block N 1631 -> 0:FDF333.DOC
Physical block N 1632 -> 0:FDF333.DOC
Physical block N 1633 -> 0:FDF333.DOC
Physical block N 1634 -> 0:FDF333.DOC
Physical block N 1635 -> 0:FDF333.DOC
Physical block N 1636 -> 0:FDF333.DOC
Physical block N 1637 -> 0:FDF333.DOC
Physical block N 1638 -> 0:FDF333.DOC
Physical block N 1639 -> 0:FDF333.DOC
Physical block N 1640 -> 0:FDF333.DOC
Physical block N 1641 -> 0:FDF333.DOC
Physical block N 1642 -> 0:FDF333.DOC
Physical block N 1643 -> 0:FDF333.DOC
Physical block N 1644 -> 0:FDF333.DOC
Physical block N 1645 -> 0:FDF333.DOC
Physical block N 1646 -> 0:FDF333.DOC
Physical block N 1647 -> 0:FDF333.DOC
Physical block N 1648 -> 0:FDF333.DOC
Physical block N 1649 -> 0:FDF333.DOC
Physical block N 1650 -> 0:FDF333.DOC
Physical block N 1651 -> 0:FDF333.DOC
Physical block N 1652 -> 0:FDF333.DOC
Physical block N 1653 -> 0:FDF333.DOC
Physical block N 1654 -> 0:FDF333.DOC
Physical block N 1655 -> 0:FDF333.DOC
Physical block N 1656 -> 0:FDF333.DOC
Physical block N 1657 -> 0:FDF333.DOC
Physical block N 1658 -> 0:FDF333.DOC
Physical block N 1659 -> 0:FDF333.DOC
Physical block N 1660 -> 0:FDF333.DOC
Physical block N 1661 -> 0:FDF333.DOC
Physical block N 1662 -> 0:FDF333.DOC
Physical block N 1663 -> 0:FDF333.DOC
Physical block N 1664 -> 0:FDF333.DOC
Physical block N 1665 -> 0:FDF333.DOC
Physical block N 1666 -> 0:FDF333.DOC
Physical block N 1667 -> 0:FDF333.DOC
Physical block N 1668 -> 0:FDF333.DOC
Physical block N 1669 -> 0:FDF333.DOC
Physical block N 1670 -> 0:FDF333.DOC
Physical block N 1671 -> 0:FDF333.DOC
Physical block N 1672 -> 0:FDF333.DOC
Physical block N 1673 -> 0:FDF333.DOC
Physical block N 1674 -> 0:FDF333.DOC
Physical block N 1675 -> 0:FDF333.DOC
Physical block N 1676 -> 0:FDF333.DOC
Physical block N 1677 -> 0:FDF333.DOC
Physical block N 1678 -> 0:FDF333.DOC
Physical block N 1679 -> 0:FDF333.DOC
Physical block N 1680 -> 0:FDF333.DOC
Physical block N 1681 -> 0:FDF333.DOC
Physical block N 1682 -> 0:FDF333.DOC
Physical block N 1683 -> 0:FDF333.DOC
Physical block N 1684 -> 0:FDF333.DOC
Physical block N 1685 -> 0:FDF333.DOC
Physical block N 1686 -> 0:FDF333.DOC
Physical block N 1687 -> 0:FDF333.DOC
Physical block N 1688 -> 0:FDF333.DOC
Physical block N 1689 -> 0:FDF333.DOC
Physical block N 1690 -> 0:FDF333.DOC
Physical block N 1691 -> 0:FDF333.DOC
Physical block N 1692 -> 0:FDF333.DOC
Physical block N 1693 -> 0:FDF333.DOC
Physical block N 1694 -> 0:FDF333.DOC
Physical block N 1695 -> 0:FDF333.DOC
Physical block N 1696 -> 0:FDF333.DOC
Physical block N 1697 -> 0:FDF333.DOC
Physical block N 1698 -> 0:FDF333.DOC
Physical block N 1699 -> 0:FDF333.DOC
Physical block N 1700 -> 0:FDF333.DOC
Physical block N 1701 -> 0:FDF333.DOC
Physical block N 1702 -> 0:FDF333.DOC
Physical block N 1703 -> 0:FDF333.DOC
Physical block N 1704 -> 0:FDF333.DOC
Physical block N 1705 -> 0:FDF333.DOC
Physical block N 1706 -> 0:FDF333.DOC
Physical block N 1707 -> 0:FDF333.DOC
Physical block N 1708 -> 0:FDF333.DOC
Physical block N 1709 -> 0:FDF333.DOC
Physical block N 1710 -> 0:FDF333.DOC
Physical block N 1711 -> 0:FDF333.DOC
Physical block N 1712 -> 0:FDF333.DOC
Physical block N 1713 -> 0:FDF333.DOC
Physical block N 1714 -> 0:FDF333.DOC
Physical block N 1715 -> 0:FDF333.DOC
Physical block N 1716 -> 0:FDF333.DOC
Physical block N 1717 -> 0:FDF333.DOC
Physical block N 1718 -> 0:FDF333.DOC
Physical block N 1719 -> 0:FDF333.DOC
Physical block N 1720 -> 0:FDF333.DOC
Physical block N 1721 -> 0:FDF333.DOC
Physical block N 1722 -> 0:FDF333.DOC
Physical block N 1723 -> 0:FDF333.DOC
Physical block N 1724 -> 0:FDF333.DOC
Physical block N 1725 -> 0:FDF333.DOC
Physical block N 1726 -> 0:FDF333.DOC
Physical block N 1727 -> 0:FDF333.DOC
Physical block N 1728 -> 0:FDF333.DOC
Physical block N 1729 -> 0:FDF333.DOC
Physical block N 1730 -> 0:FDF333.DOC
Physical block N 1731 -> 0:FDF333.DOC
Physical block N 1732 -> 0:FDF333.DOC
Physical block N 1733 -> 0:FDF333.DOC
Physical block N 1734 -> 0:FDF333.DOC
Physical block N 1736 -> 0:FDF333.DOC
Physical block N 1738 -> 0:FDF333.DOC
Physical block N 1740 -> 0:FDF333.DOC
Physical block N 1976 -> 0:FILE.BAD
Physical block N 1996 -> 0:FILE.BAD
Physical block N 1998 -> 0:FILE.BAD
Physical block N 2000 -> 0:FILE.BAD

dk_spb
29.10.2022, 22:07
>Physical block N 2000
Мне одному кажется что всё-таки не block, а sector ?

Hunta
29.10.2022, 23:06
Мне одному кажется что всё-таки не block, а sector ?
Сектор - он на дорожке, цилиндре и т.п. Здесь такого выделения нет, так что block :)

Hunta
01.11.2022, 14:02
Столкнувшись с проблемой редактирования интерлейсных образов и не обнаружив под рукой удобного инструмента для де-интерлейсинга и интерлейсинга - добавил этот функционал в прогу. Учитывая, что много нужного в программе уже было - хватило на набивку кода и отладку примерно получаса в обед.

Пока проверено только на одном DX образе, но, учитывая, как оно делается - вроде должно работать по любому.

Ну и - программа НЕ ПРОВЕРЯЕТ - чего вы ей подсунули, она тупо смотрит на параметры и делает работу по принципу - Вы это хотите - нате! То есть вполне можно взять на вход образ, который не RX01, сказать, что он RX01 и попросить загнать в образ RX02 :) Ну.. Сами виноваты :)

Hunta
01.11.2022, 20:27
Ну и ещё одна доработка. При наличии, конечно, соотвествующего файла :)


Physical block N 26 -> 0:$PrimaryBootloader
Physical block N 27 -> 0:$SecondaryBootloader
Physical block N 28 -> 0:$PrimaryBootloader
.......
Physical block N 42 -> 0:$SecondaryBootloader
Physical block N 43 -> 0:$SecondaryBootloader
Physical block N 44 -> 0:$SecondaryBootloader
Physical block N 45 -> 0:$SecondaryBootloader
Physical block N 47 -> 0:$SecondaryBootloader
Physical block N 49 -> 0:$Directory
.....
Physical block N 1663 -> 0:FDF333.DOC
Physical block N 1664 -> 0:FDF333.DOC !! bad block !! 64 0 1
Physical block N 1665 -> 0:FDF333.DOC
.....
Physical block N 1738 -> 0:FDF333.DOC
Physical block N 1740 -> 0:FDF333.DOC
Physical block N 1976 -> 0:FILE.BAD
Physical block N 1996 -> 0:FILE.BAD !! bad block !! 76 0 21
Physical block N 1998 -> 0:FILE.BAD
Physical block N 2000 -> 0:FILE.BAD

Hunta
08.11.2022, 12:55
Последствия моего исправления руками битого образа и внешнего тестирования - найден сценарий, до которого я не додумался и не наткнулся - дубли файлов по именам. Доработка работы с дублями ведётся.

И будёт ешё одна доработка - восстановление И удалённых файлов. Скорее всего - в подкаталог типа LostAndFound

Hunta
08.11.2022, 21:14
Первая прикидка нового


[2022-нояб.-08 22:09:51 Warning] File with same name 'EEXEEX.EEX' found - saved as 'EEXEEX.EEX.2'
PRM1 .MAC 3 11-OCT-1984 ZAP .MAC 1 02-OCT-1984
CTS .MAC 1 02-OCT-1984 CFR .MAC 1 02-OCT-1984
PZU3 .OBJ 1 19-JUL-1984 FILE01.BAD 1 01-JAN-1972
OZU .OBJ 2 07-JUN-1984 SPG .MAC 3 18-OCT-1984
PRD3 .MAC 3 11-OCT-1984 RED .MAC 2 17-OCT-1984
FOR .MAC 2 21-JUN-1984 PRM3 .MAC 3 11-OCT-1984
VZU .MAC 4 03-JUL-1984 RASPC .MAC 2 26-OCT-1984
SMK .BAK 1D 25-OCT-1984 ZPS .MAC 2 20-JUN-1984
RZU .MAC 3 19-NOV-1984 IZSL .MAC 4 14-JUN-1984
RASP .MAC 2 17-OCT-1984 TEXT5 .BAK 5 25-OCT-1984
FILE02.BAD 1 01-JAN-1972 IZKL .MAC 5 19-JUL-1984
PRD3 .MAC 4D 11-OCT-1984 ZPRM .MAC 3 13-JUN-1984
UDL .BAK 1D 20-SEP-1984 SPT .MAC 2 29-JUN-1984
NUM .MAC 2 13-JUN-1984 SPT .OBJ 1D 19-JUN-1984
FILE04.BAD 1 01-JAN-1972 TYP .MAC 2 13-JUN-1984
UDL1 .MAC 8D 26-OCT-1984 IZM .MAC 3 02-JUL-1984
DATA .MAC 5 20-JUN-1984 TEXT5 .MAC 5 30-OCT-1984
SPM .MAC 3 31-MAY-1984 RUVD .MAC 10D 10-OCT-1984
PRD2 .MAC 3 11-OCT-1984 IZSL .MAC 4D 14-JUN-1984
PRM2 .MAC 3 11-OCT-1984 PRD1 .MAC 3 11-OCT-1984
DATA .MAC 1D 20-JUN-1984 SBOR .MAC 25 17-JUL-1984
SPM .MAC 3D 31-MAY-1984 WZU .MAC 4 23-MAY-1984
SBOR .MAC 7D 17-JUL-1984 TEXT1 .MAC 8 12-JUN-1984
WKL .MAC 22 09-JUL-1984 RZU .MAC 3D 15-OCT-1984
TEXT4 .MAC 11 18-OCT-1984 TEXT5 .MAC 5D 30-OCT-1984
SMK .MAC 3 26-OCT-1984 UDL .MAC 8 30-OCT-1984
UDL .MAP 5D 26-OCT-1984 VVTO .MAC 9 17-OCT-1984
FILE03.BAD 1 01-JAN-1972 TVZU .MAC 13 23-MAY-1984
TKON .MAC 14 10-OCT-1984 RUVD .MAC 10 13-NOV-1984
TEXT2 .MAC 11D 18-OCT-1984 PSM .MAC 4 26-OCT-1984
SBORM .MAC 9D 11-OCT-1984 FILE05.BAD 4 01-JAN-1972
TEXT3 .MAC 16 17-OCT-1984 SBORM .MAC 26 22-OCT-1984
UDL1 .OBJ 10D 26-OCT-1984 TEXT2 .MAC 13 18-OCT-1984
GENER .MAC 15 12-OCT-1984 IZKN .MAC 11 11-OCT-1984
PSM .OBJ 10D 26-OCT-1984 FILE06.BAD 5 01-JAN-1972
GENER .MAC 17D 12-OCT-1984 FILE07.BAD 1 01-JAN-1972
EEXEEX.EEX 8D 01-AUG-1972 FILE08.BAD 1 01-JAN-1972
EEXEEX.EEX 6D 01-AUG-1972 FILE09.BAD 32 01-JAN-1972
IZKN .MAC 14D 11-OCT-1984
77 files, 342 blocks
138 Free blocks

Hunta
09.11.2022, 12:56
Очередная доработка по более правильному поведению программы в случае ошибок в образе - для образов с RT-11.
Для тех, кто использует ImageUtils - по присланной вам ссылке выложена обновлённая версия - но она пока без особо-интенсивного тестирования. В тепличных условиях работает, в случае ошибок - сообщения о них приветствуются :)

Hunta
11.11.2022, 20:59
Не совсем про доработку ImageUtils, скорей - интересный вариант работы, когда нужно иметь прозрачную связь между массивами.

Скажем, есть образ диска RT-11. Там есть home block (блок с номером 1). Допустим, хочу я его проинить - соотвественно, мне надо проинитить элементы массива со смещением (пусть массив байтовый) от 512 до 1023. А ещё есть сегменты каталога - много - со смещениями [6*512..8*512-1], [8*512..10*512-1] и так далее.. И каждый раз надо эти смещения считать.

Но в восьмой версии C# появились диапазоны (range) и можно выпилить кусок из массива, написав что то типа homeBlock = image[512..1023] и поразвлекаться с homeBlock, используя уже более простой индекс - от 0 до 511. Удобно? Да. Но есть нюанс. Это будет работа не с куском из шmage, а со вполне самостоятельным экземпляром массива, то есть, по сути - image[512..1023] - всего лишь удобный способ вызвать Array.Copy(), в нашем случае - что-то типа


homeBlock = new byte[512];
Array.Copy(image, 512, HomeBlock, 0, 512)

О да, не спорю - пришлось набить ГОРАЗДО МЕНЬШЕ символов, а реальный код, напоминающий вышенаписанное - сгенерит компилятор (традиционное название подхода - синтаксический сахар и его сейчас в C# - МНОГО :) ).

Но что если я хочу проинить HomeBlock? А потом записать Image в файл? Упс.. Придётся скопировать HomeBlock обратно в Image и вспомнить про смещения. Не.. Не сильно легче и удобно :)

И таких моментов у меня в ImageUtils накопилось.. Много :) Идея появилась с примерно неделю назад, примерно со среды (вечера, плюс момент засыпания) крутилась в голове и вот сегодня я набросал код :) SmartArray :) Теперь можно написать примерно так:



SmartArray<byte> image = new SmartArray<byte>(65536);
SmartArray<byte> homeBlock = image[512..1023];

homeBlock[0] = 10;
homeBlock[1] = 12;


И записываемые значения 10 и 12 попадут куда надо - в элементы 512 и 513 массива image. Этакий эквивалент (для знатоков) оператора EQUIVALENCE в FORTRAN-е :)

А теперь хочу попробовать обойтись без методов работы с image на уровне блоков (помним же, что это образ диска, а на диске блоки, да ещё и бывают физические и логические, да ещё и интерлейс.. ) - аж два набора методов для чтения-записи. Брррр :)

И вот видется мне подход, когда на считанный image я кладу два отображения - физические блоки и логические, плюс указываю методо подсчёта интерлейса для физических блоков... Что то типа (пока это фантазия :) )



SmartArray<byte> image = new SmartArray<byte>(65536);
SmartArray<byte>[] logical = image[,, 512];
SmartArray<byte>[] physical = image[,, 128];


И писать что то типа logical[1][0] = 10 :) попадая как раз в home block (логический блок 1, физические блоки 36-38-39-40, смещения 4608..4735, 4864..4991 ну и так далее :)

Ну и начала крутиться в голове похожая идея, только более сложная - для DisAsm-а, поскольку там в LDA, SAV, TSK и им подобным файлам куча служебки, а уж в OBJ её на порядок больше, плюс команды бывают одно, двух, трёх, четырёх и пятисловные.. :) Но там её ещё надо, засыпая, покрутить :)

Пока попробую для ImageUtils (и TU58fs) :)

- - - Добавлено - - -

Засада подкралась оттуда, откуда не ждали :D range - он только int, то есть максимальный размер образа - 2 Гб :) Ну, если сделать блочный режим - тогда в принципе норм :) 1 ТБ - что перекрывает максимальный размер диска или раздела для ODS-1. Но с образами от VMS могут быть проблемы... :)

Hunta
13.11.2022, 01:49
Перепилил ImageUtils на использование SmartArray<byte> вместо byte[].

Пока код был изменён в лоб, никаких плюсов от SmartArray<byte> использовано не было.

Попутно исправил несколько ошибок, которые проявились бы в специфических сценариях, но могли проявится.

И код, который был написан для обнаружения и сохранения дубликатов в ФС RT-11, неожиданно выстрелил в ODS-1 - оказалось, не совсем корректно был написан код, который сохранял файл в нескольких вариантах - прицел был на текстовые файлы. Помню, бродили тогда некоторые мысли - но уже не помню, до чего я тогда додумался и по любому - код был написан некорректно. Подумал, поправил в лоб, потом ещё подумаю.

Думаю порезвится с использованием новых возможностей на модуле работы с ФС RT-11 - она весьма простая, но большая часть кода получена в наследование и не использовался даже подход с описанием структуры ФС в виде классов с аттрибутами - как я сделал для ODS-1. Хотел давно переделать - вот и удобный случай :)

Но сначала посплю :)

Hunta
13.11.2022, 17:56
Рефакторинг. Спрямление и сокращение кода с новым подходом к массивам :)
Сообразил, что из-за физических блоков с интерливом так же удобно работать с блоками, как с байтами без наличия внутренней поддержки не получится. Так что с наскоку не получилось. Думаю...

Hunta
14.11.2022, 09:07
Модуль работы с образом на блочном уровне. Было 376, стало 215 строк - весь код работы с физическими блоками (включая интерлейс) перенесён на более низкий уровень. И методы стали гораздо проще :)

Теперь постепенное избавление от использоваия как результата byte[] и переход на SmartArray :)

Hunta
14.11.2022, 19:34
Как было


stream.Data = new RADImage((ImageData.BlkGetBlocks(start, blkCount)))

При этом метод BlkGetBlocks создавал байтовый массив нужного размера, в который копировал содержмое соответствующих блоков образа. Думаю, понятно, что если изменить какой то байт в stream.Data, то, что бы это появилось в образе диска - нужно скопировать обратно.

Как стало


stream.Data = ImageData[start..(start+blkCount)];

Первое. Вообще никакого копирования :) В принципе! :)
И второе - если что то изменить в stream.Data - оно (волшебным образом :D ) материализуется в ImageData :)

- - - Добавлено - - -

А теперь работает и обратно


ImageData[start..(start + blkCount)] = stream.Data;

Но, конечно, если stream.Data создана на основе ImageData, то операция как лишена всякого смысла :)

Hunta
15.11.2022, 21:40
Было


packClusterSize = ImageData.BlkGetWord(1, "0722".Octal());
firstDirectoryBlockN = ImageData.BlkGetWord(1, "0724".Octal());
string systemVersion = ImageData.BlkGetWord(1, "0726".Octal()).Rad50Decode();

Стало


RADImage? homeBlock = ImageData[1];
packClusterSize = homeBlock.Words["0722".Octal()];
firstDirectoryBlockN = homeBlock.Words["0724".Octal()];
systemVersion = homeBlock.Words["0726".Octal()].Rad50Decode();


- - - Добавлено - - -

А потом станет совсем просто


HomeBlock homeBlock = new HomeBlock(ImageData[1]);

:)

- - - Добавлено - - -

В общем, пока сам программой и кодом не поиграешься - хороших идей в голову не придёт :)

Постепенная переделка кода под новый подход.

В ближайшей перспективе - переделка работы с RT-11 ФС на использование маппера (последняя строка в предыдущем сообщении)

Потом попытка сделать обратный маппер - то есть пишем в homeBlock, а оно пишется на нужное место в общем образе :)

Hunta
16.11.2022, 20:31
Добрался до более-менее полноценного тестирование - как потрошения образов, так и собрания.
На удивление мало ошибок и некоторая часть связана не с новым подходом работы с образами и некоторая часть не связана с моим кодом вообще - условно говоря - пара ошибок автора и ошибка (при способе автора - не проявлявшаяся) документации :)

- - - Добавлено - - -

А, да :)
С RT-11 новый подход - это конечно - круто (хотя на самом деле не всегда), а вот с XXDP/DOS-11 и RSX не совсем - так как там есть и ненепрерывные файлы :)
Думаю :)

Hunta
17.11.2022, 19:55
Начал переделку работы с ФС RT-11 под испольвание маппера. Можно сравнить куски кода работы с описателем файла:
Было


F_ESTAT deStatus = (F_ESTAT)currSegment.Words[de + 0 * 2];

if (deStatus.Has(F_ESTAT.E_PERM | F_ESTAT.E_TENT | F_ESTAT.E_MPTY))
{
RT11File f = new(); // new file, read dir entry

f.Status = deStatus;
f.FileName =( currSegment.Words[de + 1 * 2].Rad50Decode()
+ currSegment.Words[de + 2 * 2].Rad50Decode()).TrimEnd(); // filnam: 6 chars
f.Extension = currSegment.Words[de + 3 * 2].Rad50Decode().TrimEnd(); // extension: 3 chars

f.BlkNum = startBlockN; // startblock on disk
f.BlkCount = currSegment.Words[de + 4 * 2]; // blocks in data stream

if (deStatus.Has(F_ESTAT.E_MPTY))
freeBlocks += f.BlkCount;
else
usedFileBlocks += f.BlkCount;

// currSegment.Words[de + 5 * 2]; // ignore job/channel

UInt16 id = currSegment.Words[de + 6 * 2];
f.CreationDate = RT11Date.Decode(informator, id); // creation date

...


Стало




DirectoryEntry dirEntry = new(currSegment.Bytes, de);

if (dirEntry.Status.Has(F_ESTAT.E_PERM | F_ESTAT.E_TENT | F_ESTAT.E_MPTY))
{
RT11File f = new(); // new file! read dir entry

f.Status = dirEntry.Status;
f.FileName = dirEntry.Name.TrimEnd();
f.Extension = dirEntry.Extension.TrimEnd();

f.BlkNum = startBlockN; // startblock on disk
f.BlkCount = dirEntry.Length; // blocks in data stream

if (dirEntry.Status.Has(F_ESTAT.E_MPTY))
freeBlocks += f.BlkCount;
else
usedFileBlocks += f.BlkCount;

// dirEntry.JobNum dirEntry.Channel dirEntry.Time // ignore job/channel, but dirEntry.Time (in future)

f.CreationDate = dirEntry.Date.RDateTime; // creation date

...


Какие такие жёстко закодированные смещения? :):)

Ну и флаги статуса записи о файле уже были доделаны, но имена ещё не были сменены на более юзерфрендли :)

Hunta
27.11.2022, 10:59
ImageUtils была доработана для поддержки двухсторонних дисков МС0515.
По крайне мере тот образ, который ко мне попал, выглядел как – одна сторона (головка) – один диск, другая сторона (головка) – второй диск.

Hunta
01.12.2022, 20:04
Улучшена поддержка дисков с МС0515 (добавлен ещё один вариант образа), поправлена и дополнена информация о занятости блоков, добавлена поддержка для польского вундер-устройства - аналог PDP-11 с флопповодами от Apple (35 цилиндров по 16 секторов по 256 байт с интерливом)

Hunta
06.12.2022, 00:41
Активное использование и, как следствие, активное исправление ошибок и шерховатостей

Hunta
11.04.2023, 13:27
Видимо, устал от FPGA - желанию возиться как-то уменьшилось.
Не помню уже с чего - начал наводить порядок среди файлов для Э85/DEC Pro.
Ну и плавно опять начал возиться с ImageUtils.
Задача номер 1 - навести порядок среди образов для тестирования.
Задача номер 2 - поправить одну или две обнаруженные ошибки-неточности.
Задача номер 3 - подсовывать битые образы и постараться выправить реакцию - не вылет, а логирование ошибок :)
Дальше будет видно.
Пока - задача номер 1.

Hunta
11.04.2023, 19:12
Хм.. Странно, что никто ещё не наткнулся на ошибку в ситуации, когда размер логического и физического блока не совпадают - по крайне мере у меня на первом и втором встретившихся образах программа весело слетела :)
Допилил - собственно, так ничего сложного - но для полноценной проверки надо найти битый образ (с логом ошибок). Пока держу в памяти и смотрю остальные образы

Hunta
14.04.2023, 12:42
Процесс идёт - задача 3 :)

Но что бы не выгореть на ней - периодически отвлекаюсь (стараюсь фифти-фифти) на параллельную задачу :) Пока о ней говорить рано, но связана она с переписыванием (опять :) ) одной (в принципе - достаточно известной проги) с Си на C#. Причина примерно та же, как и с переписыванием TU58fs c Си на C# - потребность допилить функционал и невозможность собрать (Си, я, конечно, не люблю, но допилить прогу мог бы) под VS для Windows.

Чую, скоро стану мастером в этом деле :D

Hunta
27.04.2023, 00:59
ImageUtil у меня достаточно тесно связана с другими делами - в частности - приведением в порядок файло-помойки.

А с этим делом тесно связаны другие программы, кои писались с очень давним времён - где-то так примерно с VS2010, а одна (xcomp - сравнение и, если надо - удаление одинаковых файлов с заходом в подкаталоги) - вообще первоначально была написана под Delphi, причём - под второй версией - та, которая уже 32-ух битная. К сожалению, этот исходник был утерен, так что какое-то время я ей пользовался как есть - без разных возникавших в голове вариантов доработки :)

Но потом решил всё таки переписать на C#, что бы добавить функционал. Для ускорения поиска одинаковых файлов было написано ещё две программы - одна вычисляла разные контрольные суммы и записывала их в метафайл в каталоге, а вторая (графическая) - ориентируясь на КС из метафайла - предлагала список возможных кандидатов-дублей, в котором выбранные пары можно было сравить и при совпадении - один из них удалить или заменить на своеобразный файл-указатель - в котором запоминалась информация об имени, размере, датах создания и изменения и КС файла.

Но поскольку люблю я работать из командной строки - не хватало мне аналога последний программы, но работающей из командной строки. Плюс - было известно, что в некоторых ситуациях - файлы в каталоге были удалены, но при прогоне программы, которая собирала информацию о файлах - сей факт в метафайле не отображался. Ну и развлекаясь с образами дисков и поисков файлов-дубликатов из них - налетел я на вторую ошибку - при каких-то условиях программа поиска дубликатов неожиданно завершала свою работу.

И вот в конце прошлой недели меня эти ошибки наконец достали :) Сначала хотел просто прогнать их под отладчиком. Оппа - а установленной VS2010 нет :) Плюс в .NET 4.x есть проблема с длинными путями (и как я не старался - так мне и не удалось заставить её с ними адекватно работать).

Так что достал я исходники и решил все три программы перенести под VS2022 и .NET 7.x (в том числе - вариант под .NET 4.x собирается тоже). Но в тот день было уже два часа - и не дня, а ночи :) Поэтому побрёл я спать - и как часто - уже засыпая - прокручивал в голове разные варианты доработок.

Сейчас уже сложно вспомнить всё блуждание мыслей, но с утра я проснулся с мыслью - вместо трёх программ сделать одну :) И простое сравнение (с удалением или заменой на указатели) и поиск дубликатов с помощью КС - с последующим удалением или заменой на указатели. Как из графики, так и из командной строки.

Так что все выходные и начало недели шёл этот процесс. В том числе - и рефакторинг. В том числе - пофиксил ошибки.

И весьма занятно было посмотреть на свой код, написанный тогда :)

В целом, ещё не все задумки реализованы - но основной функционал уже нарисован. Так что дальше (внутреннее) тестирование, отладка и (потихоньку) допиливание.

Ещё бродит мысль - в принципе - можно использовать и возможности NTFS по созданию указателей - то есть, когда файл один, но ссылки на него идут из разных каталогов. Правда, более-менее нормально это работает только в пределах одного тома. Когда ссылка сделана между томами - она становится (фактически) неработоспособной, если тома, куда она ведёт - нет в системе. Ну и - копирование естественно создаёт копии файлов, а не - один файл со ссылками. Так что эти мысли - пока не будут реализованы.

Но всё хорошее (в смысле - допиливание этой программы и ImageUtils и перепиливание с Си ещё одной проги) скоро закончится - примерно с середины февраля был у меня своеобразный отпуск (и я слегка поотрывался, в том числе на программировании), а с понедельника выхожу на новую работу. Где этого программирования будет вагон и маленькая ОГРОМНАЯ тележка, так что ещё программировать и для себя - будет не сильно в кайф. И переключусь опять на FPGA - как на сильно отличающееся хобби :)

Hunta
02.05.2023, 16:15
В общем, допиливание программы работы с дублями более менее закончил (некоторые моменты остались, но над ними надо подумать), продолжаю перепиливание проги с C на C# и.. свободного времение теперь как у всех работающих. Правда, есть некоторый плюс новой работы - рабочий день с 11 до 20 (минус обед), что для меня, как для совы - даже лучше :) Но это не увеличивает количество свободного времени.

По планам - добить некоторые задумки и поправить косяки в ImageUtils, продолжить перепиливание проги и всё таки переключиться на FPGA...

Hunta
13.05.2023, 13:53
Наткнулся на интересную "особенность" backup set-а (когда утилитой BRU создается копия диска бОльшего объёма на диски (обычно дискеты) меньшего объёма) от ОСРВМ (которая создана на основе RSX-11M-Plus). На втором и последующем носителях INDXF.SYS имеет заголовок-расширение (а по логике не должно быть), причем в качестве заголовка расширения указан заголовок с ID 2 - а это BITMAP.SYS, у которого, в свою очередь тоже указан заголовок-расширения с ID 3 (и тоже как бы не), а это в свою очередь - BADBLK.SYS, у которого заголовок расширения с ID 4 (и тоже как бы не) - 000000.DIR, у которого заголовок расширения с ID 5 (и тоже как бы не), а это CORIMG.SYS, у которого заголовок расширения с ID 6, а это уже заголовок пустышка - все нули. То есть полная хрень. Хотя и в принципе читабельность такой ФС возможна.

Попробовал восстановить backup set в RSX-11M-Plus 4.6 - без проблем. Попробовал смонтировать второй диск из набора (это возможно - там обычная ФС ODS-1) - ожидаемо F11ACP выдал ошибку на ошибку заголовка (правда, какой именно ему не понравился - не понятно). Попробовал из восстановленного backup set-а создать опять backup set в RSX-11M-Plus 4.6 - все диски получились вполне корректные - и распаковались и смонтировались.

Насколько я помню (и судя по base level), нашу ОСРВМ сделали из RSX-11M-Plus 3.0 (а на неё даже исходники утилит есть) - как руки дойдут - попробую её поставить и её сделать backup set - ради интереса - это наследство от неё или шаловливые руки наших погромистов нашалили :)

Hunta
04.06.2023, 17:33
Эпизодически возвращаюсь, но в основном по мелочам. МиниHelp по ImageUtils слегка дописал.

Ну и занят переделкой следующей (второй) проги с С на C#. Основная проблема - модули поддержки С. Учитывая любовь Си-писателей к условной трансляции - помимо просто переделки этих модулей - ещё и приходится чистить код под другие ОС.

Hunta
19.06.2023, 14:41
В процессе разборок с образами дисков налетел (было в другой теме) на косяк в разборке ODS1, если есть многозаголовчные (читай - сильно фрагментированные или достаточно большие) файлы - поправил.
Ну и добавил описание диска HX для XXDP (структура ФС зависит от физического диска) и DW от ДВК (интерлейс) для RT-11 и RSX

ra3qdp
19.06.2023, 19:07
когда утилитой BRU создается копия диска бОльшего объёма на диски (обычно дискеты) меньшего объёма
какие ключи у BRU для создания-восстановления таких многотомных архивов ? (напомните, пожалуйста)

Hunta
19.06.2023, 19:13
/IMAGE:SAVE
/IMAGE:RESTORE

Hunta
20.06.2023, 13:52
Опять же, как процесс разборки с образами

- пофиксил ошибку падения программы, если после опции, не предполагаюшей никаких аргументов (например -rt11) идут аргументы - потому как скажем - забыл написать опцию -unpack с её именем файла образа и каталогом. Посмотрел по авторскому исходнику - предполагаю, что там в аналогичной ситуации тоже будет падение

- добавил разборку файла лога от Кошки. В силу отличий форматов (а кстати, dk_spb - вот те файлы логов, которые мне присылал - они от какой программы?) - пока программ отличает оба варианта логов друг от друга. Эта фича в тестировании, но на первый взгляд - работает

dk_spb
20.06.2023, 13:58
@dk_spb - вот те файлы логов, которые мне присылал - они от какой программы
Они от програмки FluxEngine, которая умеет флоп в USB через дешевые платки (девборду от Cypress за $20 или Greaseweazle, включая $2 Blue Pill)

Hunta
20.06.2023, 14:12
Они от програмки FluxEngine
Аха, спасибо!

Radon17
20.06.2023, 15:32
>девборду от Cypress за $20

Оффтоп, но они стоят уже совсем невменяемых денег (
По крайней мере если пытаться купить из РФ

https://pic.maxiol.com/thumbs2/1687264329.1401653652.image.png (https://pic.maxiol.com/?v=1687264329.1401653652.image.png&dp=2)

Hunta
10.07.2023, 12:53
Попались в руки XXDP образы, снятые с MSCP дисков. И оказалось, что в плане работы по крайне мере с такими образами и исходный код и мой вариант ведут себя.. не совсем правильно. Подправил ImageUtils. Вроде стал более адекватно извлекать инфу и более правильно показывает распределение блоков. Но поскольку таких образов у меня всего несколько - проверять проверять и проверять :)

- - - Добавлено - - -

Один из образов достаточно интересный. На нём нашлись файлы, отсутствующие на широко ходящих образах. Например, начало файла FILES.TXT


This is an unsupported file which lists the diagnostic
& utilities, found on the TK25 Tape, RC25 Disk and the
2 UFD & 6 Field Service Diskettes, for the MICRO PDP11
(LCP-5) & MICRO 11/73/74 (ORION). LAST UPDATE: 5/21/85
------------------------------------------------------------------
Product Number & Name Object Media Kit Number
------------------------------------------------------------------
TK25 TAPE
CZUTK?? MICRO-11 TK25 USR TST AU-T995?-MC ZYA03-P6
-----------------------------------------------------------------
RC25 DISK
CZURC?? MICRO-11 RC25 USR TST BK-T996?-MC ZYA03-P4
-----------------------------------------------------------------
RX50 DISKETTES
CZUF1C0 MICRO-11 USER TSTS #1 BL-T993?-MC ZYA04-P3 & ZYA03-P3
CZUF2C0 MICRO-11 USER TSTS #2 BL-T994?-MC " "

CZXD1?? FIELD SERVICE TESTS 1 BL-T541?-MC ZYA04-P3
CZXD2?? FIELD SERVICE TESTS 2 BL-T542?-MC "
CZXD3?? FIELD SERVICE TESTS 3 BL-T565?-MC "
CZXD4?? FIELD SERVICE TESTS 4 BL-T583?-MC "
CZXD5?? FIELD SERVICE TESTS 5 BL-T959?-MC "
CZXD6?? FIELD SERVICE TESTS 6 BL-U131?-MC "

Hunta
22.07.2023, 16:12
Попался необычный образ дискеты (http://bitsavers.org/bits/SMS/sms_fd_ft0100i_inst_and_test_rt-11_v4_ibm_dd512_11-11-85.imd)
(там и фото есть)
Геометрия - специфическая (диск односторонний, но я буду использовать понятие цилиндр).

Первый цилиндр - ака RX01 - то есть 26 секторов по (видимо) 128 байт. Видимо - потому как вычитывалось программой, которая их записала как 512-байтные сектора. Ну и как принято это на RX01/RX02 - драйвер угоняет этот цилиндр в конец дискеты.

Дальше идут цилиндры 16-ти секторные по 512 байт. По крайне мере так они смотрятся в обрбазе - как оно реально... Хтож его знать?.. При это есть интерлив в 4 сектора при переходе между цилиндрами. То есть первый цилиндр - сектора 0..15, второй цилиндр - 4..15-0..3 и так далее.

На раскалывание формата ушло.. Примерно с час - сначаля общая геометрия, потом интрелив.

А на добавление этого варинта в ImageUtils - нуу.... минут 5 :) Описать новое устройство и добавить метод, работающий с интерливом. Если бы ещё не посадил тупую ошибку - управился бы за пару минут :)

А, да, с неделю(!) искал прогу (и наткнулся случайно!), которая смогла бы распаковать .IMD :) Под Windows, ессвенно :) С прогой повезло - есть исходники (да ещё и на С# !! :v2_clap2: ) - так что опять всплыла давняя мысль - добавить в ImageUtils функционал работы не только с простыми образами, но и со всякими .IMD, .TD0 и т.п. :) Когда получится - не знаю, но теперь стало реальней - с чем-то уже написанным (и доработкой под себя) мне всегда было проще работать, чем начинать писать с нуля :)

Hunta
26.07.2023, 18:47
"В общественном парижском туалете
Есть надписи на русском языке!" (https://www.bitsavers.org/bits/SMS/SMS_ft_fw_extracted.zip)
Особо не пугаться, ссылка ведёт на архив на bitsaver-е :)

Hunta
09.12.2023, 18:51
Закопался в DisAsm, но понадобилось мне (для дизасма прог от DOS-11) распаковывать и образы DOS-11, а там... оставалась с давних пор недоделка.

У них с XXDP очень похожие файловые системы, но XXDP хранит всё в одном каталоге (и не показывает его), а вот DOS-11 позволяет иметь двухуровневую. Что, собственно, и не было доделано в ImageUtils (брался только первый подкаталог). Допилил - теперь посмотрим - не слетит ли на каком DOS-11 образе :)

anasana
10.12.2023, 01:23
от надо бы и экстрактор из .hfe тоже в простом виде исходники где-то нацапать, у меня такое ощущение, что у COPY2.MAC
с дискеты "FW_Installation_and_Test_V17.0_for_FW_Series_6-15-1988_RX02.img" ( http://bitsavers.org/bits/SMS/ )
первые четыре сектора в нулях, как бы узнать что в потоковом .hfe по этим местам

Hunta
29.12.2023, 00:14
у меня такое ощущение, что у COPY2.MAC

первые четыре сектора в нулях,
Ну, там не ощущение, там нули и именно 4 сектора. Уже успел забыть, как вскрывал этот образ. И да, надо будет попробовать покопаться с hfe.

Пока же копался с рефакторингом, исправлением ошибок и допиливанием функционала.

Из существенного - доделал мапинг структуры home блока ФС RT11 на класс C#, так что весь парсинг home блока занимает одну строчку кода :) Плюс всякие проверки - что там в полях класса получилось.

И ещё - началось интересное - я начал добавлять-доделывать генерацию образов в ImageUtils. Причём, собираюсь сделать это по той же схем, что и с маппингом сырых данных на классы - изменение значения члена класса будет приводить к изменению сырых данных. Часть работы (описание маппинга) уже сделана. Осталось (подумать и) сделать сохранение.

Первоначальная отработка механизма будет сделана на ФС RT-11 - в силу её, с одной стороны, её простоты, а с другой - в некоторых местах структура данных несколько более сложно описана в маппинге - в частности, это позволило исправить одну существенную ошибку (которая на написанные ранее код не влияла). Возможно, эту часть работы успею сделать за остаток отпуска (январские праздники), но... это - непредказуемо..

Hunta
02.01.2024, 01:47
Первый вариант в первом приближении есть. Выглядит всё примерно так:


HomeBlock_S hbtest = new(ImageData[1].Bytes);
int test = hbtest.CheckSum;
hbtest.CheckSum = 123;
hbtest.VolumeID = "Demo";
hbtest.BUPHomeBlock.BackupName = "TESTEST";

ImageData - образ (считанный или формируемый для записи) с поддержкой, где требуется, интерлейса. Из него можно получить данные блочно, в примере формируется образ блока 1, из которого получаем данные для доступа к байтам (ещё сделан вариант словного (16 бит) доступа). И эти данные связываются с классом, где описана раскладка полей. Всё - дальше типизированный доступ к полям на чтение и запись. Если какое-то поле - тоже в свою очередь класс со своими полями (на примере BUPHomeBlock) - всё прозрачно уходит туда.

Не все преобразования ещё сделаны (отталкиваюсь от принципа - когда понадобиться) и не всё ещё проверено, но более менее работает.

Этот первый вариант не очень нравится (описание маппер-класса получилось громоздким), но по крайне мере не пришлось лезть глубоко в .NET. Учитывая, для потребителя всё это скрыто - на этапе экспериментов - пойдёт. Хотелось сделать с созданием объекта динамического прокси-класса (где были бы скрыты все сложности описания), но с этим надо ещё разобраться..

Hunta
04.01.2024, 02:39
Не всё оказалось работающим - код спотыкался на полях-массивах (типа Bad Block Replacement Table - 65 слов)

Проблемма была в том, что считанный образ - это массив байт, а тут надо было отобразить на массив слов и первая реализация кода для данного сценария оказалась неправильной.

Побившись головой о всякое, почесав всё возможное почесуемое - вариант два в первом приближении есть :)

Опять тестирование - всё ли работает как надо :) Особенно учитываю большое количество общего кода между ImageUtils и DisAsm-11X :) Ну и - рефакторинг :)

Hunta
05.01.2024, 18:50
Создание образа RT-11 в первом приближении работает. В процессе отладки исправлены найденные ошибки, неточности и недоработки преобразований.
Основная цель - сделать возможным создание (при наличии всей необходимой информации и файлов) идентичного исходному образа - сделалась немного ближе :)

Hunta
06.01.2024, 18:47
Поигрался в первым вариантом реализации - понял, какие куски кода будут повторяться, а так же - чего ещё будет полезным.
Пример - как инициализируется home блок:


private void InitHomeBlock()
{
// homeblock
ImageData.SetBlk(val: 0, startBlock: 1);

// defaults for home block, according to [VFFM91], page 1-3

// write the bad block replacement table, no idea about it, took from TU58 and RL02 image and from Don North
homeBlock.BadBlockReplacementTable.Clear();

homeBlock.DWAreaInHomeBlock.DWH_C0 = "000000".Octal();
homeBlock.DWAreaInHomeBlock.DWH_C1 = "170000".Octal();
homeBlock.DWAreaInHomeBlock.DWH_C2 = "007777".Octal();

homeBlock.Reserved1 = 0;

// INITIALIZE/RESTORE data area 0204-0251 - leave blank

homeBlock.InitRestoreArea.SavedDirectoryHeader.Tot alNumberOfSegments = 0;
homeBlock.InitRestoreArea.SavedDirectoryHeader.Nex tSegment = 0;
homeBlock.InitRestoreArea.SavedDirectoryHeader.Hig hestExtent = 0;
homeBlock.InitRestoreArea.SavedDirectoryHeader.Ext raBytePerEntry = 0;
homeBlock.InitRestoreArea.SavedDirectoryHeader.Sta rtDataBlock = 0;

DirectoryEntry_S temp = new()
{
Status = F_ESTAT.E_EMPTY,
FullName = "",
//Name = "",
//Extension = "",
FileSize = 0,
Time = 0,
Used = 0,
Channel = 0,
JobNum = 0,
Date = new(0)
};

homeBlock.InitRestoreArea.Saved1DirectoryEntry = temp;
homeBlock.InitRestoreArea.Saved2DirectoryEntry = temp;

// BUP information area 0252-0273 as 0's
homeBlock.BUPHomeBlock.BUPTag = "";
homeBlock.BUPHomeBlock.BackupName = "";
homeBlock.BUPHomeBlock.BackupType = "";
homeBlock.BUPHomeBlock.CurrentVolumeNumber = 0;
homeBlock.BUPHomeBlock.MaximumVolumeNumber = 0;
homeBlock.BUPHomeBlock.SmallestVolumeSize = 0;
homeBlock.BUPHomeBlock.TotalVolumeSize = 0;

homeBlock.Reserved2.Clear();
homeBlock.UserArea.Clear();
homeBlock.FirstDataBlockNumber = 0;
homeBlock.RTE = 0;
homeBlock.Reserved3.Clear();

homeBlock.ClusterSize = 1;
homeBlock.DirectoryFirstBlockNumber = 6;
homeBlock.SystemVersion = "V05"; // 12 char volume id. V3A, or V05, ...
homeBlock.VolumeID = "RT11A"; // always 12 chars long, right padded with spaces
homeBlock.OwnerName = ""; // 12 char owner name
homeBlock.SystemID = "DECRT11A"; // 12 char system id
homeBlock.Reserved4 = 0;

homeBlock.UpdateCheckSumms(); // build checksum over all words
}

BlaireCas
10.01.2024, 23:03
Может я не очень понимаю смысл ImageUtils - но такой вопрос.
Если верно понимаю - утилитка для работы с образами вида .dsk?
А оно может сделать аналог "sq LD0:"?
Было-бы очень круто.
(да да, я знаю что есть rt11.exe и там можно такое набрать и всё нормально, но по некоторым причинам мне допустим не очень она удобна)

Hunta
10.01.2024, 23:51
Если верно понимаю - утилитка для работы с образами вида .dsk?
C образами дискет и дисков, в том числе - интерлейсными - но если она знает про конкретный вариант интерлейса. Причём не только с ФС от RT-11.


А оно может сделать аналог "sq LD0:"?
На текущий момент - не совсем. Причина 1 - напрямую по любому нет, но можно распаковать образ, а потом заново его создать. Причина 2 - создание образа пока в тестировании (хотя по результатам тестов вроде работает). Технически - мне пока не сильно нужен этот функционал, но в принципе - сделать его не сильно сложно (как вариант - фоновая распаковка и создание образа)

BlaireCas
13.01.2024, 12:06
как вариант - фоновая распаковка и создание образа
Было-б очень неплохо иметь такой функционал.

Ну собственно почему я влез с такими вещами. Просто ну вот я пишу некий код. Он компилируется в винде (кроссплатформ все дела). На выходе получаю ну допустим .sav и какие-нибудь .dat файлики. Их надо закинуть в образ .dsk. То что плагин к тотал коммандеру это умеет я знаю, но там надо руками кидать, а это невесело. Я закидываю через утилитки от nzeemin чтобы ну можно было одним .bat-ником все скомпилять закинуть и сразу запустить на проверку.
При этом запросто возникает ситуация когда лезут пустые места в образе и они плодятся и множатся и надо squeez-ить в итоге однажды дисковый образ. Пока-что это делаю через rt11.exe, но она как-то не то чтобы криво работает, она просто может сбросить фокус в винде с активного окна, может оставить какой-то артефакт навроде незакрытого окна. Ну и патрон (вроде его штука) вряд-ли будет это чинить.

Если вот просто распаковать образ куда-нибудь в C:\Temp\Blablabla и затем там поменять файлики и запаковать назад в .dsk - было-б неплохо, но кажется тогда ведь потеряется нулевой блок с загрузчиком и что-то вообщем произойдет нехорошее.

Hunta
13.01.2024, 13:02
Если вот просто распаковать образ куда-нибудь в C:\Temp\Blablabla и затем там поменять файлики и запаковать назад в .dsk - было-б неплохо, но кажется тогда ведь потеряется нулевой блок с загрузчиком и что-то вообщем произойдет нехорошее.
Из плюсов - исходно авторами программы (на С), на которой основан функционал ImageUtils было реализовано сохранение и запись первичного (блок 0) и вторичного (блоки 2-5) загрузчиков, так что это есть и в ImageUtils.

Из того, что сейчас добавляется (планируется к добавлению) - улучшенное управление процессом создания - возможность указать метку для образа, количество сегментов каталога, расположение файлов - в идеале, при распаковке должно (как-то) сохранятся максимум информации, что бы можно было (при её наличии и желании) воссоздать первоначальный образ - один-в-один.

Но пока текущая цель - уверенность в правильном создании образа.

Так что создание образов - в процессе тестирования-отладки-доработки и я ещё не готов отдавать этот вариант - не уверен, что всё работает как надо, хотя результаты и есть.

Hunta
14.01.2024, 00:21
Удобная всё таки получилась идея - аттрибутами указывать расположение частей объектов в сырых данных (ака образ диска) :) Работа с ФС RT-11 первоначальна была переписана в лоб из исходника на C и было много кода ака "возьми байт (слово) по такому то смещению (блок плюс смещение в блоке)" плюс активное использование восьмеричных чисел в документации. Но работы с ФС RSX-11 уже была написана мной с нуля - и там всё было гораздо проще, хотя ФС сложней.

Сейчас переделываю работу с ФС RT-11 на аттрибутивный подход и вот как, скажем, выглядит парсинг сегментов каталога:


private int ParseDirectory()
{
firstDirectorySegmentNum = (TPDP11Word)((homeBlock.DirectoryFirstBlockNumber - 6) / 2 + 1); // runs from (1 - default)

RT11BlockNum dirBlk = DirSegmentToBlkNum(firstDirectorySegmentNum); // start block of first directory segment
firstDirectoryHeader = new(ImageData[dirBlk..(dirBlk + 2)].Bytes); // first directory header

RT11BlockNum firstDirBlk = DirSegmentToBlkNum(1); // first block of direstory headers
RT11BlockNum lastDirBlk = (RT11BlockNum)(DirSegmentToBlkNum(firstDirectoryHe ader.TotalNumberOfSegments) + 1 + 1); // last block + 1 of direstory headers

DirectorySegments directorySegments = new(ImageData[firstDirBlk..lastDirBlk].Bytes);

TPDP11Word currentDirectorySegmentNum = firstDirectorySegmentNum;
TPDP11Word nextDirectorySegmentNum = 0;

RT11BlockNum startBlockNum = firstDirectoryHeader.StartDataBlock; // start blocknumber for file data

for (int idx = 0; idx < directorySegments.Length; idx++) //to avoid looping
{
DirectorySegment currentSegment = directorySegments[currentDirectorySegmentNum];

/*** iterate directory entries in segment ***/
int idy = 0;
for (; idy < currentSegment.DirectoryEntries.Length; idy++)
{
DirectoryEntry currentEntry = currentSegment.DirectoryEntries[idy];

if (currentEntry.Status.Has(F_ESTAT.E_EOS)) break;

if (currentEntry.Status.Any(F_ESTAT.E_PERM | F_ESTAT.E_TENT | F_ESTAT.E_MPTY))
{
RT11File f = new()
{
Status = currentEntry.Status
, FileName = currentEntry.Name.TrimEnd()
, Extension = currentEntry.Extension.TrimEnd()
, IsGoodFile = Yes
, SpecifiedLength = currentEntry.FileSize
, BlkNum = startBlockNum; // startblock on disk
, BlkCount = currentEntry.FileSize;
, CreationDate = currentEntry.Date.RDateTime;
};

files.Add(f); //save
}

startBlockNum += currentEntry.FileSize; // advance file start block in data area, also for empty entries
}

nextDirectorySegmentNum = currentSegment.DirectoryHeader.NextSegment;
if (nextDirectorySegmentNum == 0) break;
}

return ERROR_OK;
}

Не всё, правда, получается сделать аттрибутами - скажем, вычисление количества сегментоа пришлось делать в лоб - (размер сырых данных)/(размер сегмента) :) Может что и придумаю :)

Заготовки сделал, теперь надо доделать вариант работы с сегментами на запись :) На Home блоке основа сделана, теперь доделать под (более сложный) вариант сегментов каталога (дописать код)

Hunta
14.01.2024, 20:52
Работу с сегментами каталога тоже переделал на работу через объекты.

Из оставшегося - работа с расширением элемента каталога (RT-11 позволяет добавить в элемент каталога произвольный набор байт фиксированного размера, вся работа с ними ложится на пользовательский код) и префикс-блоки в файл (доп блоки в начале файла, помимо блоков с обычными данными, опять же - вся работа с ними ложится на пользовательский код).

Потом подумаю на возможностью указания всякий доп информации при создании образа - типа метки тома, количества сегментов и т.п. Что бы не усложнять командную строку, скорее всего будет реализована через доп файл, который будет парсится и информация из него включаться в процесс создания образа.

Hunta
18.01.2024, 00:29
Extra bytes доступны на чтение :) Стандартным способом :)


firstDirectorySegmentNum = (TPDP11Word)((homeBlock.DirectoryFirstBlockNumber - 6) / 2 + 1); // runs from (1 - default)

RT11BlockNum dirBlk = DirSegmentToBlkNum(firstDirectorySegmentNum); // start block of first directory segment
firstDirectoryHeader = new(new(ImageData[dirBlk..(dirBlk + 2)].Bytes)); // first directory header

RT11BlockNum firstDirBlk = DirSegmentToBlkNum(1); // first block of direstory headers
RT11BlockNum lastDirBlk = (RT11BlockNum)(DirSegmentToBlkNum(firstDirectoryHe ader.TotalNumberOfSegments) + 1 + 1); // last block + 1 of direstory headers
directorySegments = new(new MappedToByteArray(ImageData[firstDirBlk..lastDirBlk].Bytes));

firstDirectoryHeader = directorySegments[firstDirectorySegmentNum].DirectoryHeader;
dirExtrBytes = firstDirectoryHeader.ExtraBytesPerEntry;
dirMaxSegmentInUse = firstDirectoryHeader.HighestExtent;
...
TPDP11Word currentDirectorySegmentNum = firstDirectorySegmentNum;

...
for (int idx = 0; idx < directorySegments.Count; idx++) //to avoid looping
{
DirectorySegment_S currentSegment = directorySegments[currentDirectorySegmentNum];
...
/*** iterate directory entries in segment ***/
int idy = 0;
for (; idy < currentSegment.DirectoryEntries.Count; idy++)
{
DirectoryEntry_S currentEntry = currentSegment.DirectoryEntries[idy];

if (currentEntry.Status.Has(F_ESTAT.E_EOS)) break;

if (currentEntry.Status.Any(F_ESTAT.E_PERM | F_ESTAT.E_TENT | F_ESTAT.E_MPTY))
{
...
if (dirExtrBytes > 0)
{
// Extract extra bytes in directory entry as stream ...

f.DirExtStream = new RT11FileStream();

Parse2(f.DirExtStream, currentEntry.ExtraBytes);

f.DirExtStream.Name = RT11_STREAMNAME_DIREXT;

form
18.01.2024, 17:06
Extra bytes доступны на чтение
Кстати в чистом RT-11 они тоже доступны на чтение/запись, но эту фичу не документируют :)

.CRE EMPTY.DSK/ALLO:494

.MOU LD EMPTY

.DUP LD:/Z:1/Y

.RU TEST
123456

.DUM/TER/ONL:6 LD:
LD:
BLOCK NUMBER 000006
000/ 000001 000000 000001 000002 000010 002000 114730 114730 *............X.X.*
020/ 114730 000000 000000 043124 123456 001000 000325 063471 *X.....TF.'..U.9g*
040/ 023364 000746 000000 043124 000000 004000 000000 000000 *t&f...TF........*
...

Во всяких вызовах у которых есть DBLK, если он нечетный, то по смещению 10 в AREA подразумевается подпрограмма которая вызывается из USR, при этом R1 указывает на слово с датой файла.


.TITLE TEST
.MCALL .CLOSE,.ENTER,.EXIT ;SYSTEM MACRO CALLS
.MCALL .FETCH,.LOOKUP,.PRINT ;

$USRTO =: 50 ;USER TOP ADDRESS

START:: MOV @#$USRTO,R1 ;GET TOP ADDRESS
TST (R1)+ ;DON'T WRITE ON OURSELVES
.FETCH R1,#DBLK ;FETCH HANDLER
BCC 10$ ;BRANCH IF OK
.PRINT #EFETC ;FETCH FAILED
.EXIT ;EXIT

10$: .ENTER #AREA,#0,#DBLK!1,#1 ;CREATE FILE
BCC 20$ ;BRANCH IF OK
.PRINT #EENTR ;ENTER FAILED
.EXIT ;EXIT

20$: .CLOSE #0 ;CLOSE CHANNEL
MOV #E.GET,AREA+10 ;SET USER ROUTINE
.LOOKUP #AREA,#0,#DBLK!1 ;LOOKUP THE FILE
BCC 30$ ;BRANCH IF OK
.PRINT #ELOOK ;LOOKUP FAILED
.EXIT ;EXIT

30$: .CLOSE #0 ;CLOSE CHANNEL
MOV #BUFF,R0 ;BUFFER
MOV EXTRA,R1 ;EXTRA WORD
MOV SP,R2 ;ALLOW LEADING ZEROS
CALL $CBOMG ;CONVERT TO ASCII
.PRINT #BUFF ;PRINT EXTRA WORD
.EXIT ;EXIT

E.GET: MOV 2(R1),EXTRA ;GET EXTRA WORD
RETURN ;RETURN

E.SET: MOV #123456,2(R1) ;STORE EXTRA WORD
RETURN ;RETURN

EXTRA: .BLKW ;EXTRA WORD
AREA: .BLKW 4 ;EMT AREA
.WORD E.SET ;HANDLE EXTRA BYTES

DBLK: .RAD50 /LD XXXXXXXXX/ ;FILE NAME

BUFF: .ASCIZ /XXXXXX/
EFETC: .ASCIZ /FETCH FAILED/
EENTR: .ASCIZ /ENTER FAILED/
ELOOK: .ASCIZ /LOOKUP FAILED/

.END START

Hunta
20.01.2024, 14:23
Полностью реализовано чтение-запись Extra bytes через соотвествующие объекты, а так же восстановлена работа с префикс-блоками в файлах. Как оказалась - и реализация от автора TU58fs (его ошибка) и моя реализация (свои ошибки плюс, естественно, ошибка от автора). Поправил свои ошибки и привел структуру префикс блоков в соотвествие с AA–PD6PA–TC "RT–11 Volume and File Formats Manual".

На пробных тестирования пока всё ок, RT-11 тоже нормально воспринимает такие образы, но как оказалось, по крайне мере PIP (TYPE file) плюёт на префикс блоки и тупо выводит ВСЁ на экран :)

- - - Добавлено - - -

Ошибки - наше всё :)
Первая обнаруженная - запись в Extra Bytes работает, а вот копирование информации при создании образа - нет :)
Поправил.

Вторая обнаруженная - если размер Extra Bytes достаточно (??) большой - что-то не так в создании каталога.
Работаю над.

form
20.01.2024, 14:35
размер Extra Bytes достаточно (??) большой
Для информации - вдруг пригодится.
RTEM при скане каталога делает проверки для extra bytes:
больше 356 (8) - ошибка
нечетное число - ошибка
не совпадает со значением в 6 блоке - ошибка

Hunta
20.01.2024, 15:05
Для информации
Это уже всё раскопано - есть в документации или исходниках


в 6 блоке
Такое впечатление, что не всегда 6 блок является первым блоком сегмента каталога. Что-то где-то мне такое попадалось, но давно и на что намекает
а) наличия поля - первый блок каталога в Home блоке и
б) наличие проверки и ПРЕДУПРЕЖДЕНИЯ в ImageUtils. Не помню - я это дописал или скопировал(переделал) их TU58fs..

Надо будет поставить пометку в памяти - провентилировать этот вопрос

- - - Добавлено - - -

Первые два - как минимум из исходников DUP v5.07

Hunta
20.01.2024, 21:50
если размер Extra Bytes достаточно (??) большой - что-то не так в создании каталога.
Уточнение - не "когда Extra Bytes достаточно (??) большой", а когда нужно больше, чем один сегмент - смещение до поля, где будет установлен флаг "End Of Segment", вычисляется сейчас неправильно.
Работаю.
Заодно был рефакторинг по более простому созданию и работе с полями, которые а ля массив - как сами сегменты каталога и записи о файлах в сегментах. Что приводит к необходимости нового тестирования :)

Hunta
21.01.2024, 01:01
В первом приближении всё работает :)

Образ диска для теста был создан ImageUtils и вполне нормально воспринят в RT-11 :)



.DIR RK5:
21-Jan-2024
CHART .DOC 18 27-Jul-1988 CHART .SAV 47 13-Mar-1988
COLRDB.SAV 42 17-Mar-1988 CRERDB.SAV 27 17-Mar-1988
EDDOC .DOC 37 28-Jul-1988 EDDOC .SAV 57 17-Mar-1988
EDIMEN.SAV 56 13-Mar-1988 EDRDB .SAV 62 17-Mar-1988
GENRDB.DOC 25 28-Jul-1988 GENRDB.SAV 67 13-Mar-1988
INTMEN.SAV 20 13-Mar-1988 INTRDB.DOC 23 07-Jun-1991
INTRDB.SAV 91 13-Mar-1988 MENU .DOC 78 28-Jul-1988
MENU1 .TXT 30 01-Feb-1988 MENU2 .TXT 37 01-Feb-1988
MERRDB.SAV 38 17-Mar-1988 PRIMEN.SAV 18 13-Mar-1988
RDBEK .DOC 47 27-Jul-1988 RDBEK1.TXT 65 26-Feb-1988
RDBPR .DOC 61 03-Dec-1987 RETRDB.SAV 111 17-Mar-1988
SORRDB.SAV 37 17-Mar-1988 UNIRDB.SAV 26 17-Mar-1988
24 Files, 1120 Blocks
3656 Free blocks

.TYP RK5:CHART.DOC
TEST!!!!!!!!!!!!!!!!!!!!!!!!.TOC
.STL
.TTL

relqcionnaq subd dlq mikro-|wm
paket grafi~eskogo predstawleniq
informacii iz bazy dannyh subd-mikro


^O

.DUMP/TERM/RAD/WORD RK5:/START:6/END:7


RK5:/S:6/E:7
BLOCK NUMBER 000006
000/ 000011 000002 000002 000044 000030 002020 012001 071640 *......$....... s*
I B B 6 X Z CHA RT
020/ 015533 000022 000000 017560 062564 072163 035040 024451 *[.....p.test :))*
DOC R EAH PIL RYK IL FWQ
040/ 072040 071545 020164 024472 020051 062564 072163 035040 * test :)) test :*
RWH RRU EG. FW4 EE3 PIL RYK IL
060/ 024451 072040 071545 020164 024472 020051 002000 012001 *)) test :)) ....*
FWQ RWH RRU EG. FW4 EE3 YX CHA
100/ 071640 073376 000057 000000 006660 000000 000000 000000 * s~v/...0.......*
RT SAV AG BGX
120/ 000000 000000 000000 000000 000000 000000 000000 000000 *................*

140/ 000000 000000 000000 000000 000000 000000 000000 002000 *................*
YX
160/ 0124^O

.

В CHART.DOC есть префикс блок (один) и выделенный жирным текст вывода команды TYPE из него, а так же Extra Bytes в записи каталога (выделенно жирным в дампе первого блока первого сегмента каталога :)
Как я уже писал ранее, PIP не принимает во внимание префикс-блоки, а эксперимент с KED показал, что и он тоже...

- - - Добавлено - - -

Ха! Только что нашёл ещё один косяк :)


.DIR/FULL/SUMM RK5:
21-Jan-2024

20 Files in segment 1

< UNUSED > 1828 < UNUSED > 1828
4 Files in segment 2

9 Available segments, 2 in use

24 Files, 1120 Blocks
3656 Free blocks

.

При создании образа в исходном коде TU58fs резервируются 3 (три!) записи в сегменте каталога (получатся - в конце), что бы в первом из них можно было оставить запись о конце сегмента. Как я понимаю, автор так решил проблему, когда при делении (размера сегмента (1024 байт) минус заголовок сегмента (10 байт) - итого 1014 байт) на размер записи о файле даёт целое количество элементов каталога. Скажем, если размер Extra Bytes - 12 байт плюс размер стандартной информации 14 байт даёт размер записи о каталоге - 26 байт. Что даёт ТОЧНО 39 записей о файлах. Но, по правилам, последней записью в сегменте должна быть запись "End Of Segment". И, видимо, что бы не усложнять логику вычисления - в какую запись каталога в каком сегменте попадёт очередной файл (что бы ненароком не занять последнюю запись) - автор и уменьшил вычисленное количество записей на три.

Я пошёл другим путём :) У меня резервируется одно слово для записи "End Of Segment", это учитывается при вычислении количества записей о файлах в сегмента и всё настроено так, что это слово будет СРАЗУ после записей о файлах. Но уменьшение на 3 - всё ещё есть в моём коде :) Теперь это точно уберу :)

Не уверен, что это правильный вариант - надо будет глянуть - как поведёт себя в аналогичной ситуации RT-11 :)

- - - Добавлено - - -

Эксперимент показал три вещи:
- RT-11 не резервирует полную запись о файле (вместе с Extra Bytes) в конце сегмента - в моем случае за End Of Segment шло 6 слов, то есть это была - или стандартная запись (7 слов) с флагом End Of Segment - или End Of Segment сразу за последней записью о файле полного (то есть с Extra Bytes) размера.
- PIP копирует Extra Bytes
- В PIP, похоже, есть ошибка - он не очищает буфер Extra Bytes, так как после копирования нескольких (24) файлов, первый из которых содержал в Extra Bytes не нули - копия их содержимого появилась у ВСЕХ файлов :) Надо будет глянуть исходники PIP :)

- - - Добавлено - - -

Нашёл подсказку - "Note that an end-of-segment marker can appear as the last word of a segment. It does not have to be followed by a name, file type, or other entry information." - то есть мой подход - ОК!

- - - Добавлено - - -

А вот фигвам... Автор TU58fs был прав:
"If you use no extra words, each segment can contain 72(10) entries. However, the maximum number of entries includes three that are reserved by the operating system and not available to the user. These three entries in each segment are for end-of-segment, empty (but reserved), and a reserved entry for use when creating a tentative file. Therefore, the maximum number of usable entries per directory segment is 69(10)."
Ок, буду править :)

- - - Добавлено - - -

Хм.. Править... Вот только после SQUEEZE я таких трёх резервных элементов не вижу... :) В общем, думать и смотреть исходники DUP. Пока оставлю свой вариант без резервных элементов..

- - - Добавлено - - -

Ха! Extra Bytes разможает не только PIP, но и SQUEEZE (то есть - DUP)

- - - Добавлено - - -

И ещё ошибка - PIP не сохраняет флаг наличия у файла Prefix блоков..

Hunta
21.01.2024, 12:22
Из занимательного (из DUP)


//DK.RX1 == 700 ;Offset to RT/RSX word 1
// GOD$ID== -1 ;If DW, disk is V5.3 structure
// BAD$ID== -2 ;If DW, disk is corrupted
//; RTE$ID==^RRTE ;RTEM initialized disk (by JOAT)
//DK.RX2 == 702 ;Offset to RT/RSX word 2

По описанию структуры home блока, смещение 700 содержит "Block number of first data block (0)"
Но в случае (хорошего) DW там будет -1 :)
А смещение 702 для RTEM систем будет содержать ^RRTE

- - - Добавлено - - -

Если я правильно понял увиденное в USR, то это правило трех резервных записях в конце сегмента каталога должно звучать примерно так - при создании нового файла если запись для создания попадает в одну из последних трёх записей в сегменте - будет перенос записей между сегментами. Как-то так. И как показали эксперименты - RT-11 нормально воспринимает сегменты, где есть информация о файлах в этих последних трёх записях.

Так что пока не заморачиваюсь на этот нюанс - до налетания на реальную ошибку со стороны RT-11

Hunta
21.01.2024, 21:45
Проверил после всех переделок (под RT-11) распаковку тома RSX. Одна ошибка и одна неточность. Неплохо :)

- - - Добавлено - - -

Проверил распаковку образа от DOS-11. Всё ок :)
XXDP позже проверю, но по идее - там тоже должно быть всё ок - так как эта её ФС основана на ФС от DOS-11 - и в коде тоже

Hunta
21.01.2024, 23:45
ImageUtils
Если по прежнему есть интерес - могу отдать попробовать. Тесты дошли до состояния, когда я готов отдать программу во внешнее тестирование. Аналога SQUEEZE по прежнему нет, но можно распаковать-запаковать образ (и получить тот же эффект) или в принципе создавать образ командным файлам по потребности

form
22.01.2024, 09:43
А время создания файла будет (в RT-11 фс)? :)
Если что, там в поле номера задачи/канала пишется время 3-секундных единицах.

Hunta
22.01.2024, 09:57
А время создания файла будет (в RT-11 фс)?
Сейчас нет, но есть мысли добавить


там в поле номера задачи/канала пишется время 3-секундных единицах
А оно точно в RT-11 пишется? Или только в TSX?

form
22.01.2024, 10:12
А оно точно в RT-11 пишется? Или только в TSX?
Реализовано только в TSX.
В RT-11 source kit в SYSTEM.MAC (исходники одноименного MLB) для file entry определяется E.TIME (.MACRO .DIEDF) и в описании форматов данных упоминается:

; +-------+-------+
;E.TIME:| |[12] file closing time <fut>
; +-------+-------+
Еще вроде в описании форматов дисков/файлов упоминается, что значение слова после закрытия нового файла зарезервировано на будущее.

- - - Добавлено - - -

А для file stat word там вообще понафигачено на будущее:
.BS E.BLU ;blue file code<fut>
.BS E.GRN ;green file code<fut>
.BS E.RED ;red file code<fut>
.BS E.CUST ;customer defined colors<fut>
.BS E.PRE ;file contains prefix block(s)<fut>
.BS E.TEXT ;file is displayable on ANSI terminal<fut>
.BS E.ARCH ;file has been archived<fut>
.BS E.XTRA ;extension status word in first extra word<fut>
.BS E.TENT ;tentative entry
.BS E.MPTY ;empty entry
.BS E.PERM ;permanent entry
.BS E.EOS ;end of segment
.BS E.FIX ;non-movable file<fut>
.BS E.HIGH ;move high on squeeze<fut>
.BS E.READ ;read-only
.BS E.PROT ;protected file
:D

Hunta
22.01.2024, 10:18
В RT-11 source kit в SYSTEM.MAC
Это я в курсе - описание объектов в ImageUtils строится на информации из этого файла.


после закрытия нового файла зарезервировано на будущее.
Да и это знаю.


Реализовано только в TSX.
Вот по всем этим причинам пока и не реализовано. Но технически не сложно.

Ещё в планах (это уже в ближайших) - добавить в слово даты эпоху, а то пока только до 1999 года :)

- - - Добавлено - - -


А для file stat word там вообще понафигачено на будущее:
Это тоже всё знаю и эти все флаги уже расписаны.

form
22.01.2024, 10:19
добавить в слово даты эпоху, а то пока только до 1999 года
Главное успеть до 2099 года, а то там уже придется думать об extra word в каталоге для расширения даты :D

Hunta
22.01.2024, 10:25
Как я уже написал, реализовать сохранение времени будет не сложно, так как, фактически, со стороны данных уже всё есть:


[Serializable]
[Flags]
[Macro(".DIEDF")] public enum F_ESTAT : UInt16
{
E_EMPTY = 0
, E_BLU = 1 // 1 blue file code <fut>
, E_GRN = 2 // 2 green file code <fut>
, E_RED = 4 // 4 red file code <fut>
, E_CUST = 8 // 10 customer defined colors <fut>
, E_PRE = 16 // 20 file contains prefix block(s) <fut>
, E_TEXT = 32 // 40 file is displayable on ANSI terminal <fut>
, E_ARCH = 64 // 100 file has been archived <fut>
, E_XTRA = 128 // 200 extension status word in first extra word<fut>
, E_TENT = 256 // 400 tentative entry
, E_MPTY = 512 // 1000 empty entry
, E_PERM = 1024 // 2000 permanent entry
, E_EOS = 2048 // 4000 end of segment
, E_FIX = 4096 // 10000 non-movable file <fut>
, E_HIGH = 8192 // 20000 move high on squeeze (Squeeze should bubble this up, not down) <fut>
, E_READ = 16384 // 40000 read-only
, E_PROT = 32768 // 100000 protected file
}

[Serializable]
[Macro(".DIEDF")] public class DirectoryEntry // directory entry definition
{
[Map("E.STAT: .BLKW 1")] public F_ESTAT Status; // entry status word
[Map("E.NAME: .BLKW 3", PDP11Type.Radix50)] public string FullName; // RAD50 file name and extension
[Set(".=.-6")]
[Map("E.FNAM: .BLKW 2", PDP11Type.Radix50)] public string Name; // RAD50 file name
[Map("E.FEXT: .BLKW 1", PDP11Type.Radix50)] public string Extension; // RAD50 file extension
[Map("E.LENG: .BLKW 1")] public RT11BlockNum FileSize; // size of area described, in blocks
[Map("E.TIME: .BLKW 1")] public TPDP11Word Time; // time of file closing(seconds/3 since midnight) <fut>
[Set(".=.-2")]
[Map("E.USED: .BLKW 1")] public TPDP11Word Used; // <res> if not TENT
[Set(".=.-2")]
[Map("E.CHAN: .BLKB 1")] public byte Channel; // channel number for tentative file
[Map("E.JNUM: .BLKB 1")] public byte JobNum; // job number for tentative file
[Map("E.DATE: .BLKW 1")] public RT11Date Date; // creation date
//D.EXTR
//[Map("E.ELEN:")] public static readonly TPDP11Word Length; // basic entry len

static DirectoryEntry()
=> Helpers.StaticFieldsValueUpdater<DirectoryEntry>();

public DirectoryEntry(IArray<byte> data, int baseOffset = 0)
=> this.OneWayMapper(data, baseOffset);
}

Проверить только пока не на чем - образа с TSX готового нет. В общем, в приницпе в будущем, при удобном случае - добавлю

- - - Добавлено - - -


Главное успеть до 2099 года
Скорее всего - в ближайшее время, но пока внутренние правки (по работе в целом, а не конкретно под RT-11, хотя всё первоначально делалось под (в силу простоты ФС и некоторых заморочек в описаниях) и проверялось на RT-11) и тестирование

form
22.01.2024, 10:31
образа с TSX готового нет
Сделаю на досуге.
В принципе есть TSX+ online на telnet://pdp-11.online:2023, там есть FTP сервер - его можно выставить внаружу, тогда можно будет заливать туда образы и тестить через LD.

Hunta
22.01.2024, 10:35
Сделаю на досуге.
Ок, под эмулятор Патрона желательно (проще цеплять образы дисков)

form
22.01.2024, 10:42
под эмулятор Патрона
До дома доберусь - посмотрю - у меня вроде даже готовый был.

Hunta
22.01.2024, 10:58
До дома доберусь - посмотрю - у меня вроде даже готовый был.
Спасибо!

form
22.01.2024, 12:26
Ну и до кучи - что еще можно поддерживать :)

Может пригодиться работа с образом RTEM shared image.
В сущности она почти ничем не отличается от обычного RT-11 dsk.
Отличия:

образ всегда SQUEEZED, без свободного места, сегменты линкуются по порядку, все файлы protected
первый сегмент может быть пустым со всеми записями, имеющими статус 100000 - не особо знаю зачем это нужно, но JOAT создает именно в таком виде (вручную создавал без этого - все работало); возможно для того и делается чтобы где-то опознавать что это именно shared image :)
при добавлении новых файлов, их нужно вставлять перед SWAP.SYS (по крайней мере по умолчанию)

Hunta
22.01.2024, 12:41
Пока у меня прицел - переделать создание образов XXDP (и DOS-11 заодно сделать) и сделать создание образов ODS-1
Из перечисленного под RTEM:

- "образ всегда SQUEEZED, без свободного места, сегменты линкуются по порядку, все файлы protected" - исходно оно так и будет кроме пункта - все файлы protected - сейчас, если в Windows файл readonly, то будут выставлены E_READ и E_PROT. В планах - реализация механизма более точного указания свойств файлов и образа

- "первый сегмент может быть пустым со всеми записями, имеющими статус 100000" - в принципе, реализовать можно, но основной вопрос - как сказать, что это shared для RTEM. До реализации механизма более точного указания свойств файлов и образа заморачиваться не буду

- "при добавлении новых файлов, их нужно вставлять перед SWAP.SYS" - сейчас в работе (в том числе) механизм указания порядка файлов в образе (ибо в Windows в каталоге они отсортированы и на этот порядок полагаться... не стОит :)

Hunta
22.01.2024, 16:15
Сортировка (возможный вариант) добавлена :)
Порядок перед запаковкой можно задать и свой :)
Инфа о распаковываемом образе:


[2024-Jan-22 16:26:11 Warning] Home block checksum error: is 4273, expected 40100
[2024-Jan-22 16:26:11 Warning] GENRDB.DOC - empty date
PRIMEN.SAV 18 13-MAR-1988 INTRDB.SAV 91 13-MAR-1988
EDDOC .SAV 57 17-MAR-1988 RETRDB.SAV 111 17-MAR-1988
EDRDB .SAV 62 17-MAR-1988 MERRDB.SAV 38 17-MAR-1988
SORRDB.SAV 37 17-MAR-1988 UNIRDB.SAV 26 17-MAR-1988
COLRDB.SAV 42 17-MAR-1988 CRERDB.SAV 27 17-MAR-1988
INTMEN.SAV 20 13-MAR-1988 EDIMEN.SAV 56 13-MAR-1988
GENRDB.SAV 67 13-MAR-1988 CHART .SAV 47 13-MAR-1988
INTRDB.DOC 23 07-JUN-1991 MENU .DOC 78 28-JUL-1988
CHART .DOC 17 27-JUL-1988 RDBEK .DOC 47 27-JUL-1988
RDBEK1.TXT 65 26-FEB-1988 MENU1 .TXT 30 01-FEB-1988
MENU2 .TXT 37 01-FEB-1988 GENRDB.DOC 25 28-JUL-1988
RDBPR .DOC 61 03-DEC-1987 EDDOC .DOC 37 28-JUL-1988
GENRDB.DOC 467 D
25 files, 1119 blocks
467 Free blocks
[2024-Jan-22 16:26:11 info ] Files extracted from "d004.src.dsk" and written to "@d004.dsk".
00:00:00.3139858

Инфа о запакованном образе :)


PRIMEN.SAV 18 13-MAR-1988 INTRDB.SAV 91 13-MAR-1988
EDDOC .SAV 57 17-MAR-1988 RETRDB.SAV 111 17-MAR-1988
EDRDB .SAV 62 17-MAR-1988 MERRDB.SAV 38 17-MAR-1988
SORRDB.SAV 37 17-MAR-1988 UNIRDB.SAV 26 17-MAR-1988
COLRDB.SAV 42 17-MAR-1988 CRERDB.SAV 27 17-MAR-1988
INTMEN.SAV 20 13-MAR-1988 EDIMEN.SAV 56 13-MAR-1988
GENRDB.SAV 67 13-MAR-1988 CHART .SAV 47 13-MAR-1988
INTRDB.DOC 23 07-JUN-1991 MENU .DOC 78 28-JUL-1988
CHART .DOC 17 27-JUL-1988 RDBEK .DOC 47 27-JUL-1988
RDBEK1.TXT 65 26-FEB-1988 MENU1 .TXT 30 01-FEB-1988
MENU2 .TXT 37 01-FEB-1988 GENRDB.DOC 25 28-JUL-1988
RDBPR .DOC 61 03-DEC-1987 EDDOC .DOC 37 28-JUL-1988
24 files, 1119 blocks
3671 Free blocks
[2024-Jan-22 16:26:12 info ] Files from "@d004.dsk" written to "d004.test.dsk".


- - - Добавлено - - -

Проверил сортировку на дистрибутивном носителе RT-11 5.7. Поправил не совсем правильное предположние - теперь на выходе идентичный результат. Но встал в полной мере вопрос о задании аттрибутов (типа того же P) для файлов. Думаю.

Hunta
22.01.2024, 19:27
Добавил эру


PRIMEN.SAV 18 13-MAR-1988 INTRDB.SAV 91 13-MAR-1988
EDDOC .SAV 57 17-MAR-1988 RETRDB.SAV 111 17-MAR-1988
EDRDB .SAV 62 17-MAR-1988 MERRDB.SAV 38 17-MAR-1988
SORRDB.SAV 37 17-MAR-1988 UNIRDB.SAV 26 17-MAR-1988
COLRDB.SAV 42 17-MAR-1988 CRERDB.SAV 27 17-MAR-1988
INTMEN.SAV 20 13-MAR-1988 EDIMEN.SAV 56 13-MAR-1988
GENRDB.SAV 67 13-MAR-1988 CHART .SAV 47 13-MAR-1988
INTRDB.DOC 23 07-JUN-1991 MENU .DOC 78 28-JUL-1988
CHART .DOC 18 22-JAN-2024 RDBEK .DOC 47 27-JUL-1988
RDBEK1.TXT 65 26-FEB-1988 MENU1 .TXT 30 01-FEB-1988
MENU2 .TXT 37 01-FEB-1988 GENRDB.DOC 25 28-JUL-1988
RDBPR .DOC 61 03-DEC-1987 EDDOC .DOC 37 28-JUL-1988
24 files, 1120 blocks
3666 Free blocks

Hunta
23.01.2024, 09:55
А время создания файла
в TSX как увидеть? :)

- - - Добавлено - - -

Нашел :)


.FILTIM HD5:

.FILTIM HD5:CHART.DOC
HD5:CHART.DOC 18 22-Jan-2024 20:26:27 814

.

Теперь проверить с учётом 3-секундных единиц :)

- - - Добавлено - - -

Посчитал на пальцах - вроде всё сходится :)

form
23.01.2024, 13:30
.FILTIM HD5:
На досуге сделаю и такой вариант.
Сначала думал в DIR воткнуть, но решил не ломать удобный формат - он и так на пределе чтобы на принтер 4 колонки влезало :)

Hunta
23.01.2024, 13:40
На досуге сделаю и такой вариант
Хм.. Подумал, что что-то штатное :)

form
23.01.2024, 14:25
Подумал, что что-то штатное
FILTIM входит в комплект TSX+, но он тупой как валенок, и его как написали один раз, так с тех пор и не трогали :)

Hunta
23.01.2024, 14:29
А, всё таки память не подвела :)

Hunta
23.01.2024, 20:45
На очереди - переделка на описания и объекты ФС DOS-11/XXDP. Здесь всё осложняется тем, что никаких программных описаний (как для RT-11/ODS-1) нет. Постепенно лепить приходится по описаниям из книжек с разбросанным и плохо читаемым текстом :)

Как обычно - сначала переделаю чтение, потом переделаю/доделаю запись :) С записью несколько больше возни, так как формат ФС и DOC-11 и XXDP всё таки малость, но отличается.

Ещё в голову пришла мысль - для ФС RT-11 добавить функционал COPY/BOOT.
SQUEEZE пока не вижу смысла делать, ибо распаковать/запаковать уже как бы есть плюс, если требуется обновлять какие-то файлы в образе - проще пойти по сценарию - есть каталог в файлами, там обновил, запустил батник - новый образ готов.

Hunta
25.01.2024, 10:34
Документации по всяким внутренним делам в DOS-11 и XXDP не то что бы нет, но мало, часто плохого качества и не все нюансы в ней подробно расписаны. Так что пришлось отвлечься от процесса доработок ImageUtils, что бы покопаться в исходниках этих операционок. Ну и тут, как обычно - исходников ещё меньше. Для XXDP+ есть восстановленные исходники (за авторством Ian Hammond-а и мои, основанные на его), так что поковыряться в логике можно уже сейчас (хотя там много скрывается в утилитах), а вот с DOS-11 и хуже (исходники есть на отдельные модули и для достаточно старых версий) и лучше (документация несколько поподробней). Плюс, в DOS-11 своебразный формат самих файлов мониторов - так называемые Core Image Library (CIL) и LInked Core Image Library (LICIL, LCL) - что-то типа библиотеки подгружаемых модулей монитора. Формат тоже - так себе описан, но разобраться можно.

Так что пока отвлекся на добавление в DisAsm поддержки этих двух форматов. Собственно, основная работа по добавлению - это парсинг самих файлов.

Hunta
11.02.2024, 20:07
Опять вернулся к доработке ImageUtils. И как обычно - из-за определённых потребностей :)

Давно задумывшееся добавление поддержки лент в принципе и кокретных ФС на них.

Первая добавка - DOS-11 на лентах :)

Пока сделана заготовка в программе в принципе.
На очереди - для начала извлечение файлов с ленты DOS-11, а затем - создание лент с ФС DOS-11.

Пока не ожидаю чего-то сложного в силу простоты структуры ФС DOS-11 на лентах. Посмотрим, какие варианты есть у меня в коллекции :)

А, да,у DEC были классические лентопротяжки и была лентопротяжка на кассетах (TA-11 или CT). Вроде были какие-то особенности у XXDP с CT (если мне не изменяет память), но судя по списку устройст - CT в DOS-11 или вообще не поддерживалась или же кассеты были не загружаемыми. В любом случае - CT не сейчас :)

Hunta
12.02.2024, 09:35
Сложность не там, где ожидалась :) Сложность в первоначальной обработке образа - в исходном варианте tu58fs (и по наследству в ImageUtils) всё заточено на образы со случайным (блочным) доступом - то есть на образы дисков. А ленточные образы они как бы не такие.. Надо обдумать..

Hunta
18.02.2024, 15:58
Давно хотимое, никак руки недоходимое, мысли недодумываемое :)

Вырезал код, общий в ImageUtils и в эмуляторе TU58 в отдельный класс. Теперь в ImageUtils нет (вроде :) ) кода, который нужен только эмулятору TU58.

Собственно, этот код и был в первую очередь камнем преткновения для добавления поддержки лент в ImageUtils - ну никак не получалось его вписать туда :) Плюс было некоторое количество лишний работы при создании образа с ФС в ImageUtils - теперь требуется меньше действий в коде :)

Не знаю, насколько работоспособный сейчас TU58fs - но это пока вопрос номер два :) Особенно если учесть, что бродят мысли добавить и другие устройства - для эмуляции работы через com порты :)

Возвращаюсь к добавлению поддержки лент в принципе и ФС DOS-11 на лентах в частности :)

Опять Этап 1 - извлечение файлов

Vasily_A
18.02.2024, 17:49
Очень много букв в теме :)
В образ для загрузки по HX из терминала Патрона можно добавить файлы данной утилитой?

Hunta
18.02.2024, 18:37
для загрузки по HX
не обязательно создавать образ. Можно подцепить каталог - и образ (в памяти, синхронизированный до определённой степение с каталогом) будет "создан" на лету
Поправка - речь идёт об образе RT-11. В других случаях образ НАДО создавать.

- - - Добавлено - - -


В образ ... HX из терминала Патрона можно добавить файлы данной утилитой?
Если речь идёт о просто создании образа с ФС RT-11 - да, HX ничем особенным не выделяется - это просто блочный образ и даже без интерлива.
Создание образов с другими ФС ImageUtils пока не поддерживает.

- - - Добавлено - - -

А, да, ещё уточнения. HX (как и HD, а так же ещё некоторые диски) - переменной длины. Текущая версия программы не поддерживает создание образов для таких дисков. Хотя можно взять любой вариант диска, более менее подходящий по размеру и без интерлива(!) - на HX будет работать без проблем.

- - - Добавлено - - -

Вдогонку. Возможность указать конкретный размер для дисков переменной длины будет реализована скоро - поскольку понадобилось МНЕ :)

Hunta
22.02.2024, 10:34
Первая прикидка парсера .TAP файлов нарисована. В моём любимом стиле - правильно описаываем классы, дальше всё делает Mapper. Учитывая, что а) размер образа не фиксированный и б) размер блоков не фиксированный - пришлось добавить функционал в Mapper - создание массива с неиззвестной длиной на выходе.

В принципе, существующего функционала хватает для реализации парсера лент с форматом DOS-11 (а в приницпе - можно и формат BRU) подцепить - чем я и займусь на выходных.

Но вот рендер в .TAP пока в голове не очень складывается - именно из-за переменной длины и размера блока. Так что это буду ещё обкатывать в голове и пробовать варианты.

- - - Добавлено - - -

И пример кода :) Значимая часть, некоторые внутренние детали опущены. Ну и аттрибуты, которые делались под разное от PDP-11 - теперь пригодились не только в вопросе с PDP-11 :)


public class TAPRecord
{
[Map("BLength: .BLKB 4")] public int BeforeLength

[Set(".=.-1")]
[Map("BClass: .BLKB 1")] public byte BeforeClass

[Round(2)]
[Map(".BLKB ?BLength")] public SmartArray<byte> Data

[OnlyIfGT("BLength", 0)]
[Map("ALength: .BLKB 4")] public int AfterLength

[Set(".=.-1")]
[OnlyIfGT("BLength", 0)]
[Map("AClass: .BLKB 1")] public byte AfterClass

public TAPRecord(IArray<byte> data, int baseOffset = 0)
=> this.OneWayMapper(data, baseOffset);
}

public class TAPe
{
[Map(".BLKC ?")] public TAPRecord[] Tape
{ get; set; }

static TAPe()
=> MapperHelpers.StaticFieldsValueUpdater<TAPe>();

public TAPe(IArray<byte> data, int baseOffset = 0)
=> this.OneWayMapper(data, baseOffset);
}

....

string rootPath = "";
string fileName = Path.Combine(rootPath, "DEC-11-ODBFA-B-MC9_DOS11wFTN.v9.20c.tap");
byte[] bytes = File.ReadAllBytes(fileName);
SmartArray<byte> arr = new(bytes);
TAPe rc = new TAPe(arr);

Hunta
23.02.2024, 17:15
Теперь можно создавать образы произвольного размера (-size начал работать не только для TU58), так что задание устройства при создания образа - опциально. Логичные сценарии:

- Конкретное устройство фиксированного размера (что бы размер не задавать :) )
- Конкретное устройство переменного размера с интерливом и указанием размера
- Конкретное устройство переменного размера с указанием размера под DOS-11 (пока таких нет :) или XXDP
- Размер

Если устройство фиксированного размера - на указание размера будет ругаЦЦо :)

Ну и были приличные перетряски внутренностей - опять же под образы лент.

Сейчас займусь тестированием на предмет корретного включения образов лент в работу, когда всё будет проверено-пофиксино - парсер ФС DOS-11 для лент :)

Hunta
25.02.2024, 02:23
Первый прикидочный вариант


Filesystem has 0 blocks, usage:
Blocks marked as "used" in bitmap: 0. Free: 0 - 0 = 0.



DIRECTORY [1,1]

25-FEB-2024

SYSLOD.CIL 30 21-JUN-1974 <233>
MONLIB.LCL 135 21-JUN-1974 <233>
PIP16 .LDA 31 21-JUN-1974 <233>
MTBLD .BAT 9 21-JUN-1974 <233>
EDIT16.LDA 13 21-JUN-1974 <233>
FILCOM.LDA 14 21-JUN-1974 <233>
LNK256.LDA 57 21-JUN-1974 <233>
LNK64 .LDA 52 21-JUN-1974 <233>
LNK512.LDA 62 21-JUN-1974 <233>
LINK .LIB 176 21-JUN-1974 <233>
LINK .ODL 2 21-JUN-1974 <233>
CILUS .LIB 73 21-JUN-1974 <233>
PAT920.BCH 3 21-JUN-1974 <233>
CUSP .LIB 101 21-JUN-1974 <233>
PIP .LIB 119 21-JUN-1974 <233>
PIP .ODL 1 21-JUN-1974 <233>
MACRO .LIB 142 21-JUN-1974 <233>

TOTL BLKS: 272
TOTL FILES: 17

DIRECTORY [5,1]

25-FEB-2024

SYSLOD.CIL 30 21-JUN-1974 <233>
MONLIB.LCL 135 21-JUN-1974 <233>
PIP16 .LDA 31 21-JUN-1974 <233>
MTBLD .BAT 9 21-JUN-1974 <233>
EDIT16.LDA 13 21-JUN-1974 <233>
FILCOM.LDA 14 21-JUN-1974 <233>
LNK256.LDA 57 21-JUN-1974 <233>
LNK64 .LDA 52 21-JUN-1974 <233>
LNK512.LDA 62 21-JUN-1974 <233>
LINK .LIB 176 21-JUN-1974 <233>
LINK .ODL 2 21-JUN-1974 <233>
CILUS .LIB 73 21-JUN-1974 <233>
PAT920.BCH 3 21-JUN-1974 <233>
CUSP .LIB 101 21-JUN-1974 <233>
PIP .LIB 119 21-JUN-1974 <233>
PIP .ODL 1 21-JUN-1974 <233>
MACRO .LIB 142 21-JUN-1974 <233>
MACRO .ODL 1 21-JUN-1974 <233>
VER256.LDA 67 21-JUN-1974 <233>
VER64 .LDA 66 21-JUN-1974 <233>
VER512.LDA 72 21-JUN-1974 <233>
CL0 .SYS 1 21-JUN-1974 <233>
CL1 .SYS 1 21-JUN-1974 <233>
CL2 .SYS 1 21-JUN-1974 <233>
CL3 .SYS 1 21-JUN-1974 <233>
CL4 .SYS 1 21-JUN-1974 <233>
CL5 .SYS 1 21-JUN-1974 <233>
CL6 .SYS 1 21-JUN-1974 <233>
CL7 .SYS 1 21-JUN-1974 <233>

TOTL BLKS: 1193
TOTL FILES: 29

DIRECTORY [7,1]

25-FEB-2024

SYSLOD.CIL 30 21-JUN-1974 <233>
MONLIB.LCL 135 21-JUN-1974 <233>
PIP16 .LDA 31 21-JUN-1974 <233>
MTBLD .BAT 9 21-JUN-1974 <233>
EDIT16.LDA 13 21-JUN-1974 <233>
FILCOM.LDA 14 21-JUN-1974 <233>
LNK256.LDA 57 21-JUN-1974 <233>
LNK64 .LDA 52 21-JUN-1974 <233>
LNK512.LDA 62 21-JUN-1974 <233>
LINK .LIB 176 21-JUN-1974 <233>
LINK .ODL 2 21-JUN-1974 <233>
CILUS .LIB 73 21-JUN-1974 <233>
PAT920.BCH 3 21-JUN-1974 <233>
CUSP .LIB 101 21-JUN-1974 <233>
PIP .LIB 119 21-JUN-1974 <233>
PIP .ODL 1 21-JUN-1974 <233>
MACRO .LIB 142 21-JUN-1974 <233>
MACRO .ODL 1 21-JUN-1974 <233>
VER256.LDA 67 21-JUN-1974 <233>
VER64 .LDA 66 21-JUN-1974 <233>
VER512.LDA 72 21-JUN-1974 <233>
CL0 .SYS 1 21-JUN-1974 <233>

TOTL BLKS: 305
TOTL FILES: 22

DIRECTORY [6,1]

25-FEB-2024

SYSLOD.CIL 30 21-JUN-1974 <233>
MONLIB.LCL 135 21-JUN-1974 <233>
PIP16 .LDA 31 21-JUN-1974 <233>
MTBLD .BAT 9 21-JUN-1974 <233>
EDIT16.LDA 13 21-JUN-1974 <233>
FILCOM.LDA 14 21-JUN-1974 <233>
LNK256.LDA 57 21-JUN-1974 <233>
LNK64 .LDA 52 21-JUN-1974 <233>
LNK512.LDA 62 21-JUN-1974 <233>
LINK .LIB 176 21-JUN-1974 <233>
LINK .ODL 2 21-JUN-1974 <233>
CILUS .LIB 73 21-JUN-1974 <233>
PAT920.BCH 3 21-JUN-1974 <233>
CUSP .LIB 101 21-JUN-1974 <233>
PIP .LIB 119 21-JUN-1974 <233>
PIP .ODL 1 21-JUN-1974 <233>
MACRO .LIB 142 21-JUN-1974 <233>
MACRO .ODL 1 21-JUN-1974 <233>
VER256.LDA 67 21-JUN-1974 <233>
VER64 .LDA 66 21-JUN-1974 <233>
VER512.LDA 72 21-JUN-1974 <233>
CL0 .SYS 1 21-JUN-1974 <233>
CL1 .SYS 1 21-JUN-1974 <233>
CL2 .SYS 1 21-JUN-1974 <233>
CL3 .SYS 1 21-JUN-1974 <233>
CL4 .SYS 1 21-JUN-1974 <233>
CL5 .SYS 1 21-JUN-1974 <233>
CL6 .SYS 1 21-JUN-1974 <233>
CL7 .SYS 1 21-JUN-1974 <233>
SYSMAC.SML 26 21-JUN-1974 <233>
ODT .OBJ 10 21-JUN-1974 <233>
LDUMP .LDA 29 21-JUN-1974 <233>
TEST .MAC 2 21-JUN-1974 <233>
TEST .BAT 1 21-JUN-1974 <233>
PTUTIL.LDA 11 21-JUN-1974 <233>
VERIFY.LIB 146 21-JUN-1974 <233>
VERIFY.ODL 1 21-JUN-1974 <233>
FILCOM.BAT 1 21-JUN-1974 <233>
MACNOV.BAT 1 21-JUN-1974 <233>

TOTL BLKS: 1649
TOTL FILES: 39

[2024-Feb-25 03:06:20 info ] Files extracted from "DEC-11-ODBFA-B-MC9_DOS11wFTN.v9.20c.tap" and written to "@DEC-11-ODBFA-B-MC9_DOS11wFTN.v9.20c.tap".
00:00:02.3630869

Из-за особенностей образов лент, а так же того, как хранятся файлы на ленте - пришлось много чего перетрясти во внутренностях ImageUtils. Ещё не весь стандартный функционал раскомментирован, что-то ещё будет дорабатываться ну и создания образа лент ещё нет :)

Из лент в формате DOS-11 у меня только одна лента, есть ещё от XXDP и вроде что то с программами для RSX есть :) Посмотрим, что ещё из особенностей вылезет :)

- - - Добавлено - - -

Ради интереса прогнал ещё одну ленту (что то типа C от DECUS) и.. непонятка - как хранится UIC у DOS-11 и НЕ DOS-11


[2024-Feb-25 03:17:25 Warning] File with same name 'KIT.DOC' found - saved as 'KIT.DOC.2'
[2024-Feb-25 03:17:25 Warning] File with same name 'README.NEW' found - saved as 'README.NEW.2'
[2024-Feb-25 03:17:25 Warning] File with same name 'KITDIR.TXT' found - saved as 'KITDIR.TXT.2'
Filesystem has 0 blocks, usage:
Blocks marked as "used" in bitmap: 0. Free: 0 - 0 = 0.



DIRECTORY [1,5]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>
RBUILD.CMD 2 19-NOV-1980 <233>
README.501 2 19-NOV-1980 <233>
RGTRNO.CMD 1 19-NOV-1980 <233>
RLBCMD.CMD 2 19-NOV-1980 <233>
RTKIT .CMD 2 19-NOV-1980 <233>
RVNET .CMD 2 19-NOV-1980 <233>
RWKIT2.CMD 1 19-NOV-1980 <233>
RWKIT3.CMD 1 19-NOV-1980 <233>
SETUP .COM 1 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>
STOMAC.BAS 12 19-NOV-1980 <233>
TO .DO 16 19-NOV-1980 <233>
TOLDOC.COM 2 19-NOV-1980 <233>
TOOLHD.RNO 5 19-NOV-1980 <233>
UPDATE.COM 1 19-NOV-1980 <233>
VBUILD.COM 1 19-NOV-1980 <233>
VGTCMD.COM 1 19-NOV-1980 <233>
VGTDOC.COM 7 19-NOV-1980 <233>
VGTRNO.COM 2 19-NOV-1980 <233>
VLBCMD.COM 2 19-NOV-1980 <233>
VRKIT1.COM 2 19-NOV-1980 <233>
VRKIT2.COM 2 19-NOV-1980 <233>
VRKIT3.COM 3 19-NOV-1980 <233>
WHYC .RNO 36 19-NOV-1980 <233>
KIT .RNO 36 19-NOV-1980 <233>
GETRNO.C 36 19-NOV-1980 <233>
RGTDOC.CMD 8 19-NOV-1980 <233>
FIXDOC.C 6 19-NOV-1980 <233>
RBUILD.LOG 97 19-NOV-1980 <233>
CC .RNO 71 19-NOV-1980 <233>
CLIBHD.RNO 75 19-NOV-1980 <233>
TS1 .CMD 1 19-NOV-1980 <233>
VRKIT .COM 5 19-NOV-1980 <233>
VWKIT .COM 3 19-NOV-1980 <233>
RWKIT .CMD 1 19-NOV-1980 <233>
RWKIT1.CMD 1 19-NOV-1980 <233>
CBUGS .RNO 17 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
README.NEW 3 19-NOV-1980 <233>
RWKITA.CMD 2 19-NOV-1980 <233>
RWKITB.CMD 2 19-NOV-1980 <233>
RWKITC.CMD 2 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>

TOTL BLKS: 880
TOTL FILES: 64

DIRECTORY [2,5]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>
RBUILD.CMD 2 19-NOV-1980 <233>
README.501 2 19-NOV-1980 <233>
RGTRNO.CMD 1 19-NOV-1980 <233>
RLBCMD.CMD 2 19-NOV-1980 <233>
RTKIT .CMD 2 19-NOV-1980 <233>
RVNET .CMD 2 19-NOV-1980 <233>
RWKIT2.CMD 1 19-NOV-1980 <233>
RWKIT3.CMD 1 19-NOV-1980 <233>
SETUP .COM 1 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>

TOTL BLKS: 2378
TOTL FILES: 31

DIRECTORY [3,5]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>
RBUILD.CMD 2 19-NOV-1980 <233>
README.501 2 19-NOV-1980 <233>
RGTRNO.CMD 1 19-NOV-1980 <233>
RLBCMD.CMD 2 19-NOV-1980 <233>
RTKIT .CMD 2 19-NOV-1980 <233>
RVNET .CMD 2 19-NOV-1980 <233>
RWKIT2.CMD 1 19-NOV-1980 <233>
RWKIT3.CMD 1 19-NOV-1980 <233>
SETUP .COM 1 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>
STOMAC.BAS 12 19-NOV-1980 <233>
TO .DO 16 19-NOV-1980 <233>
TOLDOC.COM 2 19-NOV-1980 <233>
TOOLHD.RNO 5 19-NOV-1980 <233>
UPDATE.COM 1 19-NOV-1980 <233>
VBUILD.COM 1 19-NOV-1980 <233>
VGTCMD.COM 1 19-NOV-1980 <233>
VGTDOC.COM 7 19-NOV-1980 <233>
VGTRNO.COM 2 19-NOV-1980 <233>
VLBCMD.COM 2 19-NOV-1980 <233>
VRKIT1.COM 2 19-NOV-1980 <233>
VRKIT2.COM 2 19-NOV-1980 <233>
VRKIT3.COM 3 19-NOV-1980 <233>
WHYC .RNO 36 19-NOV-1980 <233>
KIT .RNO 36 19-NOV-1980 <233>
GETRNO.C 36 19-NOV-1980 <233>
RGTDOC.CMD 8 19-NOV-1980 <233>
FIXDOC.C 6 19-NOV-1980 <233>
RBUILD.LOG 97 19-NOV-1980 <233>
CC .RNO 71 19-NOV-1980 <233>
CLIBHD.RNO 75 19-NOV-1980 <233>
TS1 .CMD 1 19-NOV-1980 <233>
VRKIT .COM 5 19-NOV-1980 <233>
VWKIT .COM 3 19-NOV-1980 <233>
RWKIT .CMD 1 19-NOV-1980 <233>
RWKIT1.CMD 1 19-NOV-1980 <233>
CBUGS .RNO 17 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
README.NEW 3 19-NOV-1980 <233>
RWKITA.CMD 2 19-NOV-1980 <233>
RWKITB.CMD 2 19-NOV-1980 <233>
RWKITC.CMD 2 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
CX .OLB 33 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>
XCOMLB.OLB 20 19-NOV-1980 <233>
CC .TSK 127 19-NOV-1980 <233>
RCOMLB.OBJ 10 19-NOV-1980 <233>
CC .SAV 98 19-NOV-1980 <233>
AS .TSK 105 19-NOV-1980 <233>
AS .SAV 84 19-NOV-1980 <233>
ASTINY.SAV 46 19-NOV-1980 <233>
C .OLB 87 19-NOV-1980 <233>
SUPORT.OBJ 1 19-NOV-1980 <233>
RSTS .OBJ 29 19-NOV-1980 <233>
RSERR .H 6 19-NOV-1980 <233>
RSTS .H 26 19-NOV-1980 <233>

TOTL BLKS: 1241
TOTL FILES: 78

DIRECTORY [4,5]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>
RBUILD.CMD 2 19-NOV-1980 <233>
README.501 2 19-NOV-1980 <233>
RGTRNO.CMD 1 19-NOV-1980 <233>
RLBCMD.CMD 2 19-NOV-1980 <233>
RTKIT .CMD 2 19-NOV-1980 <233>
RVNET .CMD 2 19-NOV-1980 <233>
RWKIT2.CMD 1 19-NOV-1980 <233>
RWKIT3.CMD 1 19-NOV-1980 <233>
SETUP .COM 1 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>
STOMAC.BAS 12 19-NOV-1980 <233>
TO .DO 16 19-NOV-1980 <233>
TOLDOC.COM 2 19-NOV-1980 <233>
TOOLHD.RNO 5 19-NOV-1980 <233>
UPDATE.COM 1 19-NOV-1980 <233>
VBUILD.COM 1 19-NOV-1980 <233>
VGTCMD.COM 1 19-NOV-1980 <233>
VGTDOC.COM 7 19-NOV-1980 <233>
VGTRNO.COM 2 19-NOV-1980 <233>
VLBCMD.COM 2 19-NOV-1980 <233>
VRKIT1.COM 2 19-NOV-1980 <233>
VRKIT2.COM 2 19-NOV-1980 <233>
VRKIT3.COM 3 19-NOV-1980 <233>
WHYC .RNO 36 19-NOV-1980 <233>
KIT .RNO 36 19-NOV-1980 <233>
GETRNO.C 36 19-NOV-1980 <233>
RGTDOC.CMD 8 19-NOV-1980 <233>
FIXDOC.C 6 19-NOV-1980 <233>
RBUILD.LOG 97 19-NOV-1980 <233>
CC .RNO 71 19-NOV-1980 <233>
CLIBHD.RNO 75 19-NOV-1980 <233>
TS1 .CMD 1 19-NOV-1980 <233>
VRKIT .COM 5 19-NOV-1980 <233>
VWKIT .COM 3 19-NOV-1980 <233>
RWKIT .CMD 1 19-NOV-1980 <233>
RWKIT1.CMD 1 19-NOV-1980 <233>
CBUGS .RNO 17 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
README.NEW 3 19-NOV-1980 <233>
RWKITA.CMD 2 19-NOV-1980 <233>
RWKITB.CMD 2 19-NOV-1980 <233>
RWKITC.CMD 2 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
CX .OLB 33 19-NOV-1980 <233>

TOTL BLKS: 363
TOTL FILES: 65

DIRECTORY [5,5]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>
RBUILD.CMD 2 19-NOV-1980 <233>
README.501 2 19-NOV-1980 <233>
RGTRNO.CMD 1 19-NOV-1980 <233>
RLBCMD.CMD 2 19-NOV-1980 <233>
RTKIT .CMD 2 19-NOV-1980 <233>
RVNET .CMD 2 19-NOV-1980 <233>
RWKIT2.CMD 1 19-NOV-1980 <233>
RWKIT3.CMD 1 19-NOV-1980 <233>
SETUP .COM 1 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>
STOMAC.BAS 12 19-NOV-1980 <233>
TO .DO 16 19-NOV-1980 <233>
TOLDOC.COM 2 19-NOV-1980 <233>
TOOLHD.RNO 5 19-NOV-1980 <233>
UPDATE.COM 1 19-NOV-1980 <233>
VBUILD.COM 1 19-NOV-1980 <233>
VGTCMD.COM 1 19-NOV-1980 <233>
VGTDOC.COM 7 19-NOV-1980 <233>
VGTRNO.COM 2 19-NOV-1980 <233>
VLBCMD.COM 2 19-NOV-1980 <233>
VRKIT1.COM 2 19-NOV-1980 <233>
VRKIT2.COM 2 19-NOV-1980 <233>
VRKIT3.COM 3 19-NOV-1980 <233>
WHYC .RNO 36 19-NOV-1980 <233>
KIT .RNO 36 19-NOV-1980 <233>
GETRNO.C 36 19-NOV-1980 <233>
RGTDOC.CMD 8 19-NOV-1980 <233>
FIXDOC.C 6 19-NOV-1980 <233>
RBUILD.LOG 97 19-NOV-1980 <233>
CC .RNO 71 19-NOV-1980 <233>
CLIBHD.RNO 75 19-NOV-1980 <233>
TS1 .CMD 1 19-NOV-1980 <233>
VRKIT .COM 5 19-NOV-1980 <233>
VWKIT .COM 3 19-NOV-1980 <233>
RWKIT .CMD 1 19-NOV-1980 <233>
RWKIT1.CMD 1 19-NOV-1980 <233>
CBUGS .RNO 17 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
README.NEW 3 19-NOV-1980 <233>
RWKITA.CMD 2 19-NOV-1980 <233>
RWKITB.CMD 2 19-NOV-1980 <233>
RWKITC.CMD 2 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
CX .OLB 33 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>

TOTL BLKS: 644
TOTL FILES: 66

DIRECTORY [6,5]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>
RBUILD.CMD 2 19-NOV-1980 <233>
README.501 2 19-NOV-1980 <233>
RGTRNO.CMD 1 19-NOV-1980 <233>
RLBCMD.CMD 2 19-NOV-1980 <233>
RTKIT .CMD 2 19-NOV-1980 <233>
RVNET .CMD 2 19-NOV-1980 <233>
RWKIT2.CMD 1 19-NOV-1980 <233>
RWKIT3.CMD 1 19-NOV-1980 <233>
SETUP .COM 1 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>
STOMAC.BAS 12 19-NOV-1980 <233>
TO .DO 16 19-NOV-1980 <233>
TOLDOC.COM 2 19-NOV-1980 <233>

TOTL BLKS: 106
TOTL FILES: 34

DIRECTORY [7,5]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>
RBUILD.CMD 2 19-NOV-1980 <233>
README.501 2 19-NOV-1980 <233>
RGTRNO.CMD 1 19-NOV-1980 <233>
RLBCMD.CMD 2 19-NOV-1980 <233>
RTKIT .CMD 2 19-NOV-1980 <233>
RVNET .CMD 2 19-NOV-1980 <233>
RWKIT2.CMD 1 19-NOV-1980 <233>
RWKIT3.CMD 1 19-NOV-1980 <233>
SETUP .COM 1 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>
STOMAC.BAS 12 19-NOV-1980 <233>
TO .DO 16 19-NOV-1980 <233>
TOLDOC.COM 2 19-NOV-1980 <233>
TOOLHD.RNO 5 19-NOV-1980 <233>
UPDATE.COM 1 19-NOV-1980 <233>
VBUILD.COM 1 19-NOV-1980 <233>
VGTCMD.COM 1 19-NOV-1980 <233>
VGTDOC.COM 7 19-NOV-1980 <233>
VGTRNO.COM 2 19-NOV-1980 <233>
VLBCMD.COM 2 19-NOV-1980 <233>
VRKIT1.COM 2 19-NOV-1980 <233>
VRKIT2.COM 2 19-NOV-1980 <233>
VRKIT3.COM 3 19-NOV-1980 <233>
WHYC .RNO 36 19-NOV-1980 <233>
KIT .RNO 36 19-NOV-1980 <233>
GETRNO.C 36 19-NOV-1980 <233>
RGTDOC.CMD 8 19-NOV-1980 <233>
FIXDOC.C 6 19-NOV-1980 <233>
RBUILD.LOG 97 19-NOV-1980 <233>
CC .RNO 71 19-NOV-1980 <233>
CLIBHD.RNO 75 19-NOV-1980 <233>
TS1 .CMD 1 19-NOV-1980 <233>
VRKIT .COM 5 19-NOV-1980 <233>
VWKIT .COM 3 19-NOV-1980 <233>
RWKIT .CMD 1 19-NOV-1980 <233>
RWKIT1.CMD 1 19-NOV-1980 <233>
CBUGS .RNO 17 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
README.NEW 3 19-NOV-1980 <233>
RWKITA.CMD 2 19-NOV-1980 <233>
RWKITB.CMD 2 19-NOV-1980 <233>
RWKITC.CMD 2 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
CX .OLB 33 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>
XCOMLB.OLB 20 19-NOV-1980 <233>
CC .TSK 127 19-NOV-1980 <233>
RCOMLB.OBJ 10 19-NOV-1980 <233>
CC .SAV 98 19-NOV-1980 <233>
AS .TSK 105 19-NOV-1980 <233>
AS .SAV 84 19-NOV-1980 <233>
ASTINY.SAV 46 19-NOV-1980 <233>
C .OLB 87 19-NOV-1980 <233>
SUPORT.OBJ 1 19-NOV-1980 <233>
RSTS .OBJ 29 19-NOV-1980 <233>
RSERR .H 6 19-NOV-1980 <233>
RSTS .H 26 19-NOV-1980 <233>
RSTS .OLB 39 19-NOV-1980 <233>
GETRNO.SAV 29 19-NOV-1980 <233>
GETKWK.SAV 15 19-NOV-1980 <233>
FIXDOC.SAV 15 19-NOV-1980 <233>
CC .DOC 122 19-NOV-1980 <233>
AS .DOC 64 19-NOV-1980 <233>
CLIB .DOC 389 19-NOV-1980 <233>

TOTL BLKS: 790
TOTL FILES: 85

DIRECTORY [1,6]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>
RBUILD.CMD 2 19-NOV-1980 <233>
README.501 2 19-NOV-1980 <233>
RGTRNO.CMD 1 19-NOV-1980 <233>
RLBCMD.CMD 2 19-NOV-1980 <233>
RTKIT .CMD 2 19-NOV-1980 <233>
RVNET .CMD 2 19-NOV-1980 <233>
RWKIT2.CMD 1 19-NOV-1980 <233>
RWKIT3.CMD 1 19-NOV-1980 <233>
SETUP .COM 1 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>
STOMAC.BAS 12 19-NOV-1980 <233>
TO .DO 16 19-NOV-1980 <233>
TOLDOC.COM 2 19-NOV-1980 <233>
TOOLHD.RNO 5 19-NOV-1980 <233>
UPDATE.COM 1 19-NOV-1980 <233>
VBUILD.COM 1 19-NOV-1980 <233>
VGTCMD.COM 1 19-NOV-1980 <233>
VGTDOC.COM 7 19-NOV-1980 <233>
VGTRNO.COM 2 19-NOV-1980 <233>
VLBCMD.COM 2 19-NOV-1980 <233>
VRKIT1.COM 2 19-NOV-1980 <233>
VRKIT2.COM 2 19-NOV-1980 <233>
VRKIT3.COM 3 19-NOV-1980 <233>
WHYC .RNO 36 19-NOV-1980 <233>
KIT .RNO 36 19-NOV-1980 <233>
GETRNO.C 36 19-NOV-1980 <233>
RGTDOC.CMD 8 19-NOV-1980 <233>
FIXDOC.C 6 19-NOV-1980 <233>
RBUILD.LOG 97 19-NOV-1980 <233>
CC .RNO 71 19-NOV-1980 <233>
CLIBHD.RNO 75 19-NOV-1980 <233>
TS1 .CMD 1 19-NOV-1980 <233>
VRKIT .COM 5 19-NOV-1980 <233>
VWKIT .COM 3 19-NOV-1980 <233>
RWKIT .CMD 1 19-NOV-1980 <233>
RWKIT1.CMD 1 19-NOV-1980 <233>
CBUGS .RNO 17 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
README.NEW 3 19-NOV-1980 <233>
RWKITA.CMD 2 19-NOV-1980 <233>
RWKITB.CMD 2 19-NOV-1980 <233>
RWKITC.CMD 2 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
CX .OLB 33 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>
XCOMLB.OLB 20 19-NOV-1980 <233>
CC .TSK 127 19-NOV-1980 <233>
RCOMLB.OBJ 10 19-NOV-1980 <233>
CC .SAV 98 19-NOV-1980 <233>
AS .TSK 105 19-NOV-1980 <233>
AS .SAV 84 19-NOV-1980 <233>
ASTINY.SAV 46 19-NOV-1980 <233>
C .OLB 87 19-NOV-1980 <233>
SUPORT.OBJ 1 19-NOV-1980 <233>
RSTS .OBJ 29 19-NOV-1980 <233>
RSERR .H 6 19-NOV-1980 <233>

TOTL BLKS: 432
TOTL FILES: 77

DIRECTORY [2,6]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>
RBUILD.CMD 2 19-NOV-1980 <233>
README.501 2 19-NOV-1980 <233>
RGTRNO.CMD 1 19-NOV-1980 <233>
RLBCMD.CMD 2 19-NOV-1980 <233>
RTKIT .CMD 2 19-NOV-1980 <233>
RVNET .CMD 2 19-NOV-1980 <233>
RWKIT2.CMD 1 19-NOV-1980 <233>
RWKIT3.CMD 1 19-NOV-1980 <233>
SETUP .COM 1 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>
STOMAC.BAS 12 19-NOV-1980 <233>
TO .DO 16 19-NOV-1980 <233>
TOLDOC.COM 2 19-NOV-1980 <233>
TOOLHD.RNO 5 19-NOV-1980 <233>
UPDATE.COM 1 19-NOV-1980 <233>
VBUILD.COM 1 19-NOV-1980 <233>
VGTCMD.COM 1 19-NOV-1980 <233>
VGTDOC.COM 7 19-NOV-1980 <233>
VGTRNO.COM 2 19-NOV-1980 <233>
VLBCMD.COM 2 19-NOV-1980 <233>
VRKIT1.COM 2 19-NOV-1980 <233>
VRKIT2.COM 2 19-NOV-1980 <233>
VRKIT3.COM 3 19-NOV-1980 <233>
WHYC .RNO 36 19-NOV-1980 <233>
KIT .RNO 36 19-NOV-1980 <233>
GETRNO.C 36 19-NOV-1980 <233>
RGTDOC.CMD 8 19-NOV-1980 <233>
FIXDOC.C 6 19-NOV-1980 <233>
RBUILD.LOG 97 19-NOV-1980 <233>
CC .RNO 71 19-NOV-1980 <233>
CLIBHD.RNO 75 19-NOV-1980 <233>
TS1 .CMD 1 19-NOV-1980 <233>

TOTL BLKS: 2145
TOTL FILES: 53

DIRECTORY [3,6]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>

TOTL BLKS: 334
TOTL FILES: 21

DIRECTORY [4,6]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>
RBUILD.CMD 2 19-NOV-1980 <233>
README.501 2 19-NOV-1980 <233>
RGTRNO.CMD 1 19-NOV-1980 <233>
RLBCMD.CMD 2 19-NOV-1980 <233>
RTKIT .CMD 2 19-NOV-1980 <233>
RVNET .CMD 2 19-NOV-1980 <233>
RWKIT2.CMD 1 19-NOV-1980 <233>
RWKIT3.CMD 1 19-NOV-1980 <233>
SETUP .COM 1 19-NOV-1980 <233>
STDIO .H 7 19-NOV-1980 <233>
STOMAC.BAS 12 19-NOV-1980 <233>
TO .DO 16 19-NOV-1980 <233>
TOLDOC.COM 2 19-NOV-1980 <233>
TOOLHD.RNO 5 19-NOV-1980 <233>
UPDATE.COM 1 19-NOV-1980 <233>
VBUILD.COM 1 19-NOV-1980 <233>
VGTCMD.COM 1 19-NOV-1980 <233>
VGTDOC.COM 7 19-NOV-1980 <233>
VGTRNO.COM 2 19-NOV-1980 <233>
VLBCMD.COM 2 19-NOV-1980 <233>
VRKIT1.COM 2 19-NOV-1980 <233>
VRKIT2.COM 2 19-NOV-1980 <233>
VRKIT3.COM 3 19-NOV-1980 <233>
WHYC .RNO 36 19-NOV-1980 <233>
KIT .RNO 36 19-NOV-1980 <233>
GETRNO.C 36 19-NOV-1980 <233>
RGTDOC.CMD 8 19-NOV-1980 <233>
FIXDOC.C 6 19-NOV-1980 <233>
RBUILD.LOG 97 19-NOV-1980 <233>
CC .RNO 71 19-NOV-1980 <233>
CLIBHD.RNO 75 19-NOV-1980 <233>
TS1 .CMD 1 19-NOV-1980 <233>
VRKIT .COM 5 19-NOV-1980 <233>
VWKIT .COM 3 19-NOV-1980 <233>
RWKIT .CMD 1 19-NOV-1980 <233>
RWKIT1.CMD 1 19-NOV-1980 <233>
CBUGS .RNO 17 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
README.NEW 3 19-NOV-1980 <233>
RWKITA.CMD 2 19-NOV-1980 <233>

TOTL BLKS: 423
TOTL FILES: 61

DIRECTORY [5,6]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>
RBUILD.CMD 2 19-NOV-1980 <233>

TOTL BLKS: 140
TOTL FILES: 22

DIRECTORY [6,6]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>

TOTL BLKS: 1
TOTL FILES: 1

DIRECTORY [7,6]

25-FEB-2024

README.NEW 3 19-NOV-1980 <233>
KIT .DOC 47 19-NOV-1980 <233>
KITDIR.TXT 54 19-NOV-1980 <233>
AS .RNO 45 19-NOV-1980 <233>
BATCH .COM 3 19-NOV-1980 <233>
CC .HLP 9 19-NOV-1980 <233>
CCHLP .COM 1 19-NOV-1980 <233>
CLIBAP.RNO 1 19-NOV-1980 <233>
CLIBUS.RNO 29 19-NOV-1980 <233>
CPYRIT.C 13 19-NOV-1980 <233>
DECUS .RNO 4 19-NOV-1980 <233>
GETCMD.C 17 19-NOV-1980 <233>
GETCMD.CMD 1 19-NOV-1980 <233>
GETKWK.C 10 19-NOV-1980 <233>
GETKWK.COM 1 19-NOV-1980 <233>
INDEX .COM 1 19-NOV-1980 <233>
INDEX .RNO 52 19-NOV-1980 <233>
INDXHD.RNO 1 19-NOV-1980 <233>
MCR .BAS 5 19-NOV-1980 <233>
MGTDOC.CMD 2 19-NOV-1980 <233>
PDTKIT.CMD 1 19-NOV-1980 <233>
RBUILD.CMD 2 19-NOV-1980 <233>

TOTL BLKS: 177
TOTL FILES: 22

[2024-Feb-25 03:17:26 info ] Files extracted from "11sp18.tap" and written to "@11sp18.tap".
00:00:07.4270701

Hunta
25.02.2024, 11:11
Задал вопрос эксперту :)


DOS/BATCH V9-20C
DATE: 25-FEB-99
TIME: 11:11
DIALOGUE? N

$
$LO 1,1
DATE:-25-FEB-99
TIME:-11:11:03
$RU PIP
PIP V10-02
#MT:[*,*]/DI

DIRECTORY MT0: [*,*]

25-FEB-99

SYSLOD.CIL 30 21-JUN-74 <233> [ 1,1 ]
MONLIB.LCL 135 21-JUN-74 <233> [ 1,1 ]
PIP16 .LDA 31 21-JUN-74 <233> [ 1,5 ]
MTBLD .BAT 9 21-JUN-74 <233> [ 1,1 ]
EDIT16.LDA 13 21-JUN-74 <233> [ 1,5 ]
FILCOM.LDA 14 21-JUN-74 <233> [ 1,1 ]
LNK256.LDA 57 21-JUN-74 <233> [ 1,5 ]
LNK64 .LDA 52 21-JUN-74 <233> [ 1,5 ]
LNK512.LDA 62 21-JUN-74 <233> [ 1,5 ]
LINK .LIB 176 21-JUN-74 <233> [ 1,5 ]
LINK .ODL 2 21-JUN-74 <233> [ 1,5 ]
CILUS .LIB 73 21-JUN-74 <233> [ 1,5 ]
PAT920.BCH 3 21-JUN-74 <233> [ 1,1 ]
CUSP .LIB 101 21-JUN-74 <233> [ 1,5 ]
PIP .LIB 119 21-JUN-74 <233> [ 1,5 ]
PIP .ODL 1 21-JUN-74 <233> [ 1,5 ]
MACRO .LIB 142 21-JUN-74 <233> [ 1,5 ]
MACRO .ODL 1 21-JUN-74 <233> [ 1,5 ]
VER256.LDA 67 21-JUN-74 <233> [ 1,5 ]
VER64 .LDA 66 21-JUN-74 <233> [ 1,5 ]
VER512.LDA 72 21-JUN-74 <233> [ 1,5 ]
CL0 .SYS 1 21-JUN-74 <233> [ 1,1 ]
CL1 .SYS 1 21-JUN-74 <233> [ 1,1 ]
CL2 .SYS 1 21-JUN-74 <233> [ 1,1 ]
CL3 .SYS 1 21-JUN-74 <233> [ 1,1 ]
CL4 .SYS 1 21-JUN-74 <233> [ 1,1 ]
CL5 .SYS 1 21-JUN-74 <233> [ 1,1 ]
CL6 .SYS 1 21-JUN-74 <233> [ 1,1 ]
CL7 .SYS 1 21-JUN-74 <233> [ 1,1 ]
SYSMAC.SML 26 21-JUN-74 <233> [ 1,1 ]
ODT .OBJ 10 21-JUN-74 <233> [ 1,1 ]
LDUMP .LDA 29 21-JUN-74 <233> [ 1,1 ]
TEST .MAC 2 21-JUN-74 <233> [ 1,7 ]
TEST .BAT 1 21-JUN-74 <233> [ 1,7 ]
PTUTIL.LDA 11 21-JUN-74 <233> [ 1,7 ]
VERIFY.LIB 146 21-JUN-74 <233> [ 1,5 ]
VERIFY.ODL 1 21-JUN-74 <233> [ 1,5 ]
FILCOM.BAT 1 21-JUN-74 <233> [ 1,5 ]
MACNOV.BAT 1 21-JUN-74 <233> [ 1,5 ]
DSKINT.BAT 1 21-JUN-74 <233> [ 1,5 ]
EBASCI.BAT 1 21-JUN-74 <233> [ 1,5 ]
EDIT .BAT 1 21-JUN-74 <233> [ 1,5 ]
LIBR .BAT 1 21-JUN-74 <233> [ 1,5 ]
FILDMP.BAT 1 21-JUN-74 <233> [ 1,5 ]
CREF .BAT 1 21-JUN-74 <233> [ 1,5 ]
PIPNOV.BAT 1 21-JUN-74 <233> [ 1,5 ]
VERNOV.BAT 1 21-JUN-74 <233> [ 1,5 ]
VEROV .BAT 1 21-JUN-74 <233> [ 1,5 ]
RMON .LDA 19 21-JUN-74 <233> [ 1,7 ]
RMON .STB 3 21-JUN-74 <233> [ 1,7 ]
TAILB .LDA 120 21-JUN-74 <233> [ 1,7 ]
PAT920.BAT 5 21-JUN-74 <233> [ 1,7 ]
SYSTEM.MAC 25 21-JUN-74 <233> [ 1,7 ]
CONFIG.MAC 18 21-JUN-74 <233> [ 1,7 ]
CFMAC .MAC 13 21-JUN-74 <233> [ 1,7 ]
FEATSW.MAC 2 21-JUN-74 <233> [ 1,7 ]
PRAMTR.MAC 7 21-JUN-74 <233> [ 1,7 ]
SYSMAC.MAC 15 21-JUN-74 <233> [ 1,7 ]
CMDS .MAC 5 21-JUN-74 <233> [ 1,7 ]
TMON .OBJ 15 21-JUN-74 <233> [ 1,7 ]
CCL .OBJ 4 21-JUN-74 <233> [ 1,7 ]
BATMAN.OBJ 2 21-JUN-74 <233> [ 1,7 ]
LKP .OBJ 2 21-JUN-74 <233> [ 1,7 ]
ROLLIN.OBJ 27 21-JUN-74 <233> [ 1,7 ]
LA30S .OBJ 1 21-JUN-74 <233> [ 1,7 ]
VT05B .OBJ 1 21-JUN-74 <233> [ 1,7 ]
EBASCI.DOC 7 21-JUN-74 <233> [ 1,7 ]
MTBLDF.BAT 8 21-JUN-74 <233> [ 1,1 ]
FORLIB.OBJ 166 21-JUN-74 <233> [ 1,6 ]
FORLIB.BAT 1 21-JUN-74 <233> [ 1,6 ]
FORPC .BAT 1 21-JUN-74 <233> [ 1,6 ]
EAELIB.BAT 1 21-JUN-74 <233> [ 1,6 ]
EAEPC .BAT 1 21-JUN-74 <233> [ 1,6 ]
EISLIB.BAT 1 21-JUN-74 <233> [ 1,6 ]
EISPC .BAT 1 21-JUN-74 <233> [ 1,6 ]
FISLIB.BAT 1 21-JUN-74 <233> [ 1,6 ]
FISPC .BAT 1 21-JUN-74 <233> [ 1,6 ]
FPULIB.BAT 1 21-JUN-74 <233> [ 1,6 ]
FPUPC .BAT 1 21-JUN-74 <233> [ 1,6 ]
FORTRN.OBJ 71 21-JUN-74 <233> [ 1,6 ]
OV0 .OBJ 71 21-JUN-74 <233> [ 1,6 ]
FORCOM.DGN 20 21-JUN-74 <233> [ 1,6 ]
FORRUN.DGN 15 21-JUN-74 <233> [ 1,6 ]
OV1 .OBJ 82 21-JUN-74 <233> [ 1,6 ]
OV2 .OBJ 101 21-JUN-74 <233> [ 1,6 ]
OV3 .OBJ 94 21-JUN-74 <233> [ 1,6 ]
OV4 .OBJ 46 21-JUN-74 <233> [ 1,6 ]
FORPC .OBJ 3 21-JUN-74 <233> [ 1,6 ]
EAEMOD.OBJ 16 21-JUN-74 <233> [ 1,6 ]
EAEPC .OBJ 3 21-JUN-74 <233> [ 1,6 ]
FISMOD.OBJ 2 21-JUN-74 <233> [ 1,6 ]
FISPC .OBJ 3 21-JUN-74 <233> [ 1,6 ]
EISMOD.OBJ 17 21-JUN-74 <233> [ 1,6 ]
EISPC .OBJ 3 21-JUN-74 <233> [ 1,6 ]
FPUMOD.OBJ 30 21-JUN-74 <233> [ 1,6 ]
FPUPC .OBJ 3 21-JUN-74 <233> [ 1,6 ]
TRCLIB.OBJ 12 21-JUN-74 <233> [ 1,6 ]
RUNDGN.SRC 13 21-JUN-74 <233> [ 1,6 ]
COMDGN.SRC 14 21-JUN-74 <233> [ 1,6 ]
FORDGN.FTN 5 21-JUN-74 <233> [ 1,6 ]
TRACEF.FTN 7 21-JUN-74 <233> [ 1,6 ]
DVB .MAC 9 21-JUN-74 <233> [ 1,6 ]
EAEPC .LIB 172 21-JUN-74 <233> [ 1,6 ]
EISPC .LIB 169 21-JUN-74 <233> [ 1,6 ]
FISMOD.LIB 167 21-JUN-74 <233> [ 1,6 ]
FISPC .LIB 167 21-JUN-74 <233> [ 1,6 ]
FPUPC .LIB 158 21-JUN-74 <233> [ 1,6 ]

TOTL BLKS: 3419
TOTL FILES: 107



#

Получается, что каталог ленты DOS-11 c битсэйвера (http://www.bitsavers.org/bits/DEC/pdp11/magtapes/dos11/DEC-11-ODBFA-B-MC9_DOS11wFTN_9-20C.dir.txt) - малость неправильный :)

- - - Добавлено - - -

Поправил в ImageUtils. Теперь и на 11sp18.tap привычные каталоги :) Ещё полистаю документацию на DOS-11, но вроде как вопрос про "как хранится UIC у DOS-11 и НЕ DOS-11" решён :)

- - - Добавлено - - -

По крайне мере PIP (из DOS-11) со мной согласен :)
Кусок кода из исходников:


MOVB #'[,(R0)+
CLR R3
BISB UIC+1,R3 ;UIC TO LIME BUFFER
MOVB #',,(R0)+ ;COMMA
CLR R3
BISB UIC,R3
JSR PC,BTOA
MOVB #'],(R0)+

Hunta
26.02.2024, 11:48
В первом приближении распаковка образов лент с ФС DOS-11 готова. Есть некоторые шерховатости, но они не имеют прямого отношения к процессу распаковки и на текущем моменте (они больше к вопросам создания образов) я с ними разбираться не буду :)

На очереди - создание образов лент с ФС DOS-11

Но перед этим нужно сделать некоторые доделки в работе с файлами Windows - первоначальный вариант программы не предпологал работу с образами с подкаталогами - в RT-11 их просто нет, а в варианте ФС от XXDP - технически он (один) есть, но поскольку один - фактически при распаковке не создается, а при создании образа не используется.

Hunta
26.02.2024, 14:54
Наткнулся на образы лент от RSTS. Решил потестировать. И - что неудивительно - наткнулся на ошибку в коде :) Поправил. И тут вылезает непонятная фигня. После разборок оказалось, что, несмотря на спецификацию tap :


Metadata markers occupy 4 bytes and are stored in little-endian order. Data records
consist of a leading 4-byte record length, an even number of bytes of data, and
a trailing 4-byte record length that must be the same as the initial record length.
The leading and trailing record lengths allow a record to be accessed either forward
or backward. The record length words are stored in little-endian order. A record of
length n appears as follows:

Leading Length n
Data Bytes n Bytes
Optional Pad only if n is odd 1 Byte
Trailing Length n

If the record length is odd, a pad byte is appended to the data bytes to produce
an even number. The extra byte is undefined but should be 0.

в данном образе никакого выравнивания нет.. Буду посмотреть другие образы..

- - - Добавлено - - -

Поправил описание класса - теперь лента парсится. Но там не DOS-11 формат - какой-то свой. Смотрю дальше :)

- - - Добавлено - - -

Попавшиеся под руку образы лент RSTS имеют такой же формат. Ну, может когда-нибудь и до него доберусь.
По любому - формат BRU (точнее - распаковка и, может быть, создание) интересует больше :)

Hunta
26.02.2024, 17:04
Наткнулся на тройку образов лент с нарушенной структурой - похоже на ошибки чтения, но вроде в tap такое должно помечаться. И вроде это не вариант с невыравниванием на границу слова - обычно в DOS-11 лентах блоки или 14 байт (заголовок) или 512 (данные). В общем - смотреть под микроскопом

Hunta
26.02.2024, 20:15
Сделал программу более устойчивой к ошибкам в образах. Но наткнулся на два образа, к которым в конце какие-то Д! присобачили кучу (в одном 14, в другом МНОГО) пробелов. Ну и в соответствии с форматом .TAP - это ПОЛНАЯ ХРЕНЬ ПОЛУЧАЕТСЯ... Но вроде программа начала справляться с ТАКИМ

Hunta
27.02.2024, 18:16
Ленты DOS-11, сделанные программой FLX под RSX, подсказали мне, что некоторые проверки структуры ленты я делал неправильно :) Программа не падала, но некорректно предупреждала о возможных проблемах на ленте. Поправил. Стало больше лент без замечаний :)

Hunta
27.02.2024, 20:55
Ещё из обнаруженного. На ленте XXDP в поле даты обнаружен флаг непрерывного файла - то есть дата хранится так же, как в DOS-11 и XXDP на дисках - с флагом непрерывности файла. Или я не нашёл ещё этого в доках или это КАКБЫ подразумевается :)

К шыжыленью, это выводит на одно из первых мест вопрос доработки Mapper-а - возможность описывать поля на уровне битов, а не только байт :)

Hunta
28.02.2024, 12:01
Ложился я вчера спать и.. как обычно... захотелось мне странного :) По прикидкам - для странного почти всё было готово :) Так что с утра набросал недостающий код и... пока, конечно, это концепт - но уже вполне работоспособный :)

Итак, встречаем расширение функционала ключей -from..-to!

Как конвертировать ленту XXDP в диск RT-11 за один проход


ImageUtilsX -from AP-T071S-MC_CZZZ4S0_MMDP_V2_1OF2_800_1986.tap tape dos11 -to test.dsk RP0456 rt11 >test.mylog.txt

ImageUtilsX -rt11 -unpack test.dsk @test.dsk >test.dsk.mylog.txt


test.mylog.txt


[2024-Feb-28 12:48:45 Warning] Offset: 0, block # 0 - field 'Creation Date' with 'Contiguous File' flag
[2024-Feb-28 12:48:47 info ] zero'd new image on 'test.dsk'
...
[2024-Feb-28 12:48:51 info ] Files from "AP-T071S-MC_CZZZ4S0_MMDP_V2_1OF2_800_1986.tap" written to "test.dsk".


test.dsk.mylog.txt


[2024-Feb-28 12:48:53 Warning] EMPTY.FIL - empty date
XXBOOT.MON 32P 01-JUL-1986 XXDPXM.SYS 34P 01-JUL-1986
XXDPSM.SYS 24P 01-JUL-1986 DRSXM .SYS 49P 01-JUL-1986
DRSSM .SYS 25P 01-JUL-1986 DIR .SYS 8P 01-JUL-1986
DB .SYS 3P 01-JUL-1986 DD .SYS 4P 01-JUL-1986
DL .SYS 5P 01-JUL-1986 DM .SYS 5P 01-JUL-1986
DR .SYS 4P 01-JUL-1986 DU .SYS 5P 01-JUL-1986
DY .SYS 4P 01-JUL-1986 LP .SYS 2P 01-JUL-1986
MM .SYS 4P 01-JUL-1986 MS .SYS 5P 01-JUL-1986
MU .SYS 5P 01-JUL-1986 DATE .SYS 3P 01-JUL-1986
DUSZ .SYS 3P 01-JUL-1986 MENUD0.BIC 5P 01-JUL-1986
UPDAT .BIC 30P 01-JUL-1986 XTECO .BIC 27P 01-JUL-1986
DXCL .BIC 45P 01-JUL-1986 SETUP .BIC 28P 01-JUL-1986
PATCH .BIC 31P 01-JUL-1986 HELP .TXT 19P 01-JUL-1986
BOOT .CCC 2P 01-JUL-1986 MN84A0.CCC 2P 01-JUL-1986
SY84C0.CCC 7P 01-JUL-1986 XMONF0.LIB 158P 01-JUL-1986
BKMAA0.BIN 2P 01-JUL-1986 CKBCC0.BIC 9P 01-JUL-1986
CMFAF0.BIC 18P 01-JUL-1986 CMSBB0.BIN 11P 01-JUL-1986
EFPAA0.BIC 60P 01-JUL-1986 EFPBA1.BIC 47P 01-JUL-1986
EKBAD0.BIC 12P 01-JUL-1986 EKBBF0.BIC 62P 01-JUL-1986
EKBCD1.BIC 45P 01-JUL-1986 EKBDE1.BIC 78P 01-JUL-1986
EKBEE1.BIC 61P 01-JUL-1986 EKBFD1.BIC 32P 01-JUL-1986
EKBGC0.BIC 28P 01-JUL-1986 EMJAD0.BIC 10P 01-JUL-1986
EMKAB0.BIC 81P 01-JUL-1986 EQKCE1.BIC 58P 01-JUL-1986
ERHAE1.BIC 55P 01-JUL-1986 ERSAA0.BIC 23P 01-JUL-1986
ERSBC0.BIC 19P 01-JUL-1986 ERSCB0.BIC 27P 01-JUL-1986
ERSDD0.BIN 25P 01-JUL-1986 FFPAA1.BIN 60P 01-JUL-1986
FFPBA0.BIN 60P 01-JUL-1986 FFPCB0.BIC 60P 01-JUL-1986
FKAAC0.BIC 25P 01-JUL-1986 FKABD0.BIC 16P 01-JUL-1986
FKACA0.BIC 17P 01-JUL-1986 FKKAB0.BIN 37P 01-JUL-1986
FKTGC0.BIC 18P 01-JUL-1986 FKTHB0.BIN 44P 01-JUL-1986
GKAAA0.BIC 15P 01-JUL-1986 GKABC0.BIC 16P 01-JUL-1986
JDLAA0.BIC 20P 01-JUL-1986 JFPAA1.BIC 51P 01-JUL-1986
JFPBA0.BIC 40P 01-JUL-1986 JKDAD1.BIC 29P 01-JUL-1986
JKDBD0.BIC 52P 01-JUL-1986 JKDCB0.BIC 53P 01-JUL-1986
JKDDB0.BIC 33P 01-JUL-1986 JKDEB0.BIN 91P 01-JUL-1986
JKDFB0.BIN 26P 01-JUL-1986 JKDHB0.BIC 56P 01-JUL-1986
JKDIB0.BIC 23P 01-JUL-1986 JKDJB0.BIN 93P 01-JUL-1986
JKL5B0.BIC 93P 01-JUL-1986 KFPAD0.BIC 63P 01-JUL-1986
KFPBC0.BIC 61P 01-JUL-1986 KFPCD0.BIC 65P 01-JUL-1986
KKAAB0.BIC 37P 01-JUL-1986 KKABD1.BIC 22P 01-JUL-1986
KKACC0.BIC 10P 01-JUL-1986 KKKAC0.BIC 43P 01-JUL-1986
KKTAB1.BIC 28P 01-JUL-1986 KKTBD0.BIN 31P 01-JUL-1986
KKUAE0.BIN 29P 01-JUL-1986 NDMAA0.BIC 32P 01-JUL-1986
NDMBA0.BIC 30P 01-JUL-1986 NDMCA0.BIC 31P 01-JUL-1986
NDMDA0.BIC 28P 01-JUL-1986 NDMEA0.BIC 28P 01-JUL-1986
NKMBB0.BIC 14P 01-JUL-1986 NKMCA0.BIN 31P 01-JUL-1986
NKMDA0.BIC 20P 01-JUL-1986 NKMEA0.BIC 17P 01-JUL-1986
NKTCA0.BIC 21P 01-JUL-1986 NKXAB0.BIC 25P 01-JUL-1986
NQNAA0.BIN 46P 01-JUL-1986 NRLGA0.BIC 20P 01-JUL-1986
NTSAA0.BIC 37P 01-JUL-1986 NTSBA0.BIC 62P 01-JUL-1986
NTSCA0.BIC 74P 01-JUL-1986 NTSDA0.BIC 69P 01-JUL-1986
NTSEA0.BIC 24P 01-JUL-1986 OEEAA0.BIC 5P 01-JUL-1986
OEEBA0.BIC 6P 01-JUL-1986 OEECA0.BIC 6P 01-JUL-1986
OEEDA0.BIC 6P 01-JUL-1986 OEEEA0.BIC 6P 01-JUL-1986
OEEFA0.BIC 5P 01-JUL-1986 OEEGB0.BIC 5P 01-JUL-1986
OEEHA0.BIC 3P 01-JUL-1986 OKDAF0.BIC 103P 01-JUL-1986
OKDBA0.BIN 14P 01-JUL-1986 OKDDB0.BIN 31P 01-JUL-1986
OKTAC0.BIC 28P 01-JUL-1986 EPOMUT.BIN 93P 01-JUL-1986
CPOMUT.CNF 3P 01-JUL-1986 EPOMUR.BIN 93P 01-JUL-1986
CPOMUR.CNF 3P 01-JUL-1986 EPOMRT.BIN 91P 01-JUL-1986
CPOMRT.CNF 3P 01-JUL-1986 RDTAC0.BIN 34P 01-JUL-1986
RIIAB0.BIC 36P 01-JUL-1986 RLPAB0.BIN 49P 01-JUL-1986
RLPBB0.BIN 20P 01-JUL-1986 RLPFC0.BIN 21P 01-JUL-1986
RLPGC0.BIN 29P 01-JUL-1986 RLPKC0.BIN 20P 01-JUL-1986
RLPLA0.BIC 33P 01-JUL-1986 RLPMB0.BIN 25P 01-JUL-1986
RLPNA1.BIC 27P 01-JUL-1986 VAAAA1.BIC 14P 01-JUL-1986
VADAC0.BIC 17P 01-JUL-1986 VAXAB0.BIC 17P 01-JUL-1986
VCDAB0.BIC 17P 01-JUL-1986 VCDBB0.BIC 32P 01-JUL-1986
VCDCB0.BIC 31P 01-JUL-1986 VCDDB0.BIC 30P 01-JUL-1986
VCLHC0.BIN 35P 01-JUL-1986 VCMAA0.BIC 16P 01-JUL-1986
VDHAE0.BIN 30P 01-JUL-1986 VDHBE0.BIN 30P 01-JUL-1986
VDHCE0.BIN 30P 01-JUL-1986 VDHEC0.BIN 51P 01-JUL-1986
VDLAB0.BIC 17P 01-JUL-1986 VDMAC1.BIN 32P 01-JUL-1986
VDMBC0.BIN 31P 01-JUL-1986 VDMCC1.BIN 31P 01-JUL-1986
VDMDC0.BIN 28P 01-JUL-1986 VDMEC0.BIN 28P 01-JUL-1986
VDPVC1.BIN 32P 01-JUL-1986 VDRAC0.BIC 14P 01-JUL-1986
VDRBA0.BIN 8P 01-JUL-1986 VDRCC0.BIC 17P 01-JUL-1986
VDRDB0.BIC 16P 01-JUL-1986 VDVAD1.BIN 15P 01-JUL-1986
VDVCC1.BIN 14P 01-JUL-1986 VDZAD3.BIC 17P 01-JUL-1986
VDZBD0.BIC 17P 01-JUL-1986 VDZCB1.BIN 13P 01-JUL-1986
VDZDA0.BIN 5P 01-JUL-1986 VIBAB0.BIC 14P 01-JUL-1986
VIBBA1.BIC 13P 01-JUL-1986 VKAAC0.BIC 17P 01-JUL-1986
VKABB0.BIC 17P 01-JUL-1986 VKACC1.BIC 17P 01-JUL-1986
VKADC1.BIC 14P 01-JUL-1986 VKAEB2.BIC 8P 01-JUL-1986
VKAFE0.BIN 6P 01-JUL-1986 VKAHA1.BIC 17P 01-JUL-1986
VKAIB0.BIN 16P 01-JUL-1986 VKAJB0.BIN 17P 01-JUL-1986
VKALA1.BIC 13P 01-JUL-1986 VKMAB0.BIN 20P 01-JUL-1986
VKMBB0.BIN 14P 01-JUL-1986 VKMCA0.BIN 31P 01-JUL-1986
VKMEB0.BIN 17P 01-JUL-1986 VKMHA0.BIN 32P 01-JUL-1986
VKMJA0.BIN 58P 01-JUL-1986 VKUAA0.BIN 17P 01-JUL-1986
VKWAC0.BIC 18P 01-JUL-1986 VM8AF0.BIC 15P 01-JUL-1986
VMEMA0.BIC 17P 01-JUL-1986 VMJAB0.BIC 60P 01-JUL-1986
VMNAC1.BIC 49P 01-JUL-1986 VMNBB0.BIC 19P 01-JUL-1986
VMNCB1.BIC 22P 01-JUL-1986 VMNDA1.BIC 18P 01-JUL-1986
VMNEA1.BIC 15P 01-JUL-1986 VMNFC0.BIC 10P 01-JUL-1986
VMNGA0.BIC 4P 01-JUL-1986 VMSAB0.BIC 25P 01-JUL-1986
VMSBC0.BIC 10P 01-JUL-1986 VMXAA0.BIC 16P 01-JUL-1986
VMXBA0.BIN 24P 01-JUL-1986 VNIAB0.BIN 43P 01-JUL-1986
VPCAG0.BIC 85P 01-JUL-1986 VRLAC0.BIN 25P 01-JUL-1986
VRLBB0.BIC 29P 01-JUL-1986 VTSAB0.BIC 39P 01-JUL-1986
VTSBD0.BIC 66P 01-JUL-1986 VTSCC0.BIC 77P 01-JUL-1986
VTSDD0.BIC 71P 01-JUL-1986 VTSEC0.BIC 26P 01-JUL-1986
VVSAB1.BIC 76P 01-JUL-1986 VVTAA1.BIN 19P 01-JUL-1986
VVTBA0.BIN 21P 01-JUL-1986 VVTCA0.BIN 20P 01-JUL-1986
XAAAD0.OBJ 4P 01-JUL-1986 XAABC0.OBJ 4P 01-JUL-1986
XAACB0.OBJ 5P 01-JUL-1986 XADAE0.OBJ 4P 01-JUL-1986
XAAVA0.OBJ 3P 01-JUL-1986 XADBB0.OBJ 9P 01-JUL-1986
XADCB0.OBJ 9P 01-JUL-1986 XADVA0.OBJ 3P 01-JUL-1986
XAFAE0.OBJ 4P 01-JUL-1986 XARAC0.OBJ 9P 01-JUL-1986
XBBAB0.OBJ 5P 01-JUL-1986 XBEAC0.OBJ 9P 01-JUL-1986
XBMCN0.OBJ 6P 01-JUL-1986 XBMDE0.OBJ 4P 01-JUL-1986
XBMEB0.OBJ 5P 01-JUL-1986 XBMFB0.OBJ 4P 01-JUL-1986
XBMGB0.OBJ 5P 01-JUL-1986 XBMHB0.OBJ 4P 01-JUL-1986
XBMIB0.OBJ 4P 01-JUL-1986 XBTAB0.OBJ 4P 01-JUL-1986
XBTBB0.OBJ 4P 01-JUL-1986 XBTCC0.OBJ 4P 01-JUL-1986
XCBAE0.OBJ 4P 01-JUL-1986 XCBBE0.OBJ 3P 01-JUL-1986
XCBCF0.OBJ 5P 01-JUL-1986 XCDAG0.OBJ 5P 01-JUL-1986
XCIAB0.OBJ 8P 01-JUL-1986 XCMAC0.OBJ 4P 01-JUL-1986
XCMJB0.OBJ 5P 01-JUL-1986 XCPAG0.OBJ 6P 01-JUL-1986
XCPBK0.OBJ 5P 01-JUL-1986 XCRAG0.OBJ 4P 01-JUL-1986
XCSTA0.OBJ 4P 01-JUL-1986 XDCAG0.OBJ 8P 01-JUL-1986
XDHAL0.OBJ 8P 01-JUL-1986 XDHUA0.OBJ 11P 01-JUL-1986
XDHVD0.OBJ 10P 01-JUL-1986 XDJAL0.OBJ 8P 01-JUL-1986
XDLAL0.OBJ 6P 01-JUL-1986 XDLBC0.OBJ 8P 01-JUL-1986
XDMBJ0.OBJ 4P 01-JUL-1986 XDMCC0.OBJ 7P 01-JUL-1986
XDMDE0.OBJ 14P 01-JUL-1986 XDMEC0.OBJ 12P 01-JUL-1986
XDMRC0.OBJ 10P 01-JUL-1986 XDMSA0.OBJ 4P 01-JUL-1986
XDNAH0.OBJ 4P 01-JUL-1986 XDPAE0.OBJ 7P 01-JUL-1986
XDPBB0.OBJ 7P 01-JUL-1986 XDPVC0.OBJ 5P 01-JUL-1986
XDQAI0.OBJ 8P 01-JUL-1986 XDRAD0.OBJ 4P 01-JUL-1986
XDRBJ0.OBJ 3P 01-JUL-1986 XDRCI0.OBJ 4P 01-JUL-1986
XDRDC0.OBJ 4P 01-JUL-1986 XDREC0.OBJ 9P 01-JUL-1986
XDRFE0.OBJ 7P 01-JUL-1986 XDRJB0.OBJ 4P 01-JUL-1986
XDRKA0.OBJ 5P 01-JUL-1986 XDRUA0.OBJ 4P 01-JUL-1986
XDRVA0.OBJ 11P 01-JUL-1986 XDRWD0.OBJ 3P 01-JUL-1986
XDTAD0.OBJ 8P 01-JUL-1986 XDUAI0.OBJ 8P 01-JUL-1986
XDUBE0.OBJ 12P 01-JUL-1986 XDVAB0.OBJ 19P 01-JUL-1986
XDXAG0.OBJ 4P 01-JUL-1986 XDZAG0.OBJ 7P 01-JUL-1986
XDZBC0.OBJ 8P 01-JUL-1986 XDZMA0.OBJ 6P 01-JUL-1986
XFPAG0.OBJ 5P 01-JUL-1986 XFPBE1.OBJ 10P 01-JUL-1986
XFPCA0.OBJ 7P 01-JUL-1986 XGTAE0.OBJ 8P 01-JUL-1986
XIBAD0.OBJ 5P 01-JUL-1986 XICAD0.OBJ 3P 01-JUL-1986
XICBC0.OBJ 7P 01-JUL-1986 XIEAA0.OBJ 4P 01-JUL-1986
XIEBA0.OBJ 8P 01-JUL-1986 XIECA0.OBJ 13P 01-JUL-1986
XKCTA0.OBJ 29P 01-JUL-1986 XKEAD0.OBJ 4P 01-JUL-1986
XKGAD0.OBJ 4P 01-JUL-1986 XKLAE0.OBJ 7P 01-JUL-1986
XKMAA0.OBJ 13P 01-JUL-1986 XKMCD0.OBJ 11P 01-JUL-1986
XKMDB0.OBJ 7P 01-JUL-1986 XKMKA0.OBJ 7P 01-JUL-1986
XKMSA0.OBJ 4P 01-JUL-1986 XKUAB0.OBJ 9P 01-JUL-1986
XKWAH0.OBJ 3P 01-JUL-1986 XKWBL0.OBJ 4P 01-JUL-1986
XKWCB0.OBJ 4P 01-JUL-1986 XKWDB0.OBJ 9P 01-JUL-1986
XKWEB0.OBJ 6P 01-JUL-1986 XKWFB0.OBJ 5P 01-JUL-1986
XKWGB0.OBJ 5P 01-JUL-1986 XLKAB0.OBJ 8P 01-JUL-1986
XLPAF0.OBJ 5P 01-JUL-1986 XLPBF0.OBJ 4P 01-JUL-1986
XLPCE0.OBJ 5P 01-JUL-1986 XLPDF0.OBJ 7P 01-JUL-1986
XLPED0.OBJ 6P 01-JUL-1986 XLPFB0.OBJ 6P 01-JUL-1986
XLPHE0.OBJ 23P 01-JUL-1986 XMLAA0.OBJ 9P 01-JUL-1986
XMNAB0.OBJ 7P 01-JUL-1986 XMNBB0.OBJ 12P 01-JUL-1986
XMNCB0.OBJ 5P 01-JUL-1986 XMNDB0.OBJ 4P 01-JUL-1986
XMNEB0.OBJ 4P 01-JUL-1986 XNCAD0.OBJ 6P 01-JUL-1986
XNCBB0.OBJ 7P 01-JUL-1986 XPAAF0.OBJ 5P 01-JUL-1986
XPABG0.OBJ 4P 01-JUL-1986 XPCCE0.OBJ 3P 01-JUL-1986
XPCSC0.OBJ 6P 01-JUL-1986 XPLAC0.OBJ 6P 01-JUL-1986
XQNAB0.OBJ 11P 01-JUL-1986 XRCAD0.OBJ 6P 01-JUL-1986
XRCFB0.OBJ 14P 01-JUL-1986 XRFAG0.OBJ 7P 01-JUL-1986
XRHAA0.OBJ 4P 01-JUL-1986 XRKAG0.OBJ 8P 01-JUL-1986
XRKBH1.OBJ 12P 01-JUL-1986 XRLAK0.OBJ 8P 01-JUL-1986
XRMBC0.OBJ 13P 01-JUL-1986 XRMDB0.OBJ 17P 01-JUL-1986
XRNAB0.OBJ 14P 01-JUL-1986 XRQAG0.OBJ 18P 01-JUL-1986
XRXAE0.OBJ 9P 01-JUL-1986 XRXBC0.OBJ 14P 01-JUL-1986
XTAAD0.OBJ 5P 01-JUL-1986 XTCAG0.OBJ 7P 01-JUL-1986
XTKAB0.OBJ 14P 01-JUL-1986 XTKBB0.OBJ 12P 01-JUL-1986
XTMAJ0.OBJ 7P 01-JUL-1986 XTMBM0.OBJ 12P 01-JUL-1986
XTMDB0.OBJ 16P 01-JUL-1986 XTRAD0.OBJ 8P 01-JUL-1986
XTSAC0.OBJ 10P 01-JUL-1986 XTSVA0.OBJ 11P 01-JUL-1986
XTUAD0.OBJ 10P 01-JUL-1986 XUACB0.OBJ 11P 01-JUL-1986
XUADB0.OBJ 11P 01-JUL-1986 XUDAD0.OBJ 4P 01-JUL-1986
XVSAC0.OBJ 12P 01-JUL-1986 XVSBB0.OBJ 9P 01-JUL-1986
XVSCB0.OBJ 16P 01-JUL-1986 XVSVA0.OBJ 10P 01-JUL-1986
XVTAB0.OBJ 8P 01-JUL-1986 XVTBB0.OBJ 9P 01-JUL-1986
XVTCB0.OBJ 8P 01-JUL-1986 XVTVB0.OBJ 5P 01-JUL-1986
XXYAD0.OBJ 5P 01-JUL-1986 XXYBB0.OBJ 4P 01-JUL-1986
EMPTY.FIL 40647 D
365 files, 7285 blocks
40647 Free blocks
[2024-Feb-28 12:48:54 info ] Files extracted from "test.dsk" and written to "@test.dsk".
00:00:02.7157684


Каталог ленты


[2024-Feb-28 12:56:22 Warning] Offset: 0, block # 0 - field 'Creation Date' with 'Contiguous File' flag
Filesystem has 1 ufds, 364 files and 8014 blocks


DIRECTORY [2,2]

28-FEB-2024

XXBOOT.MON 32 01-JUL-1986 <000>
XXDPXM.SYS 34 01-JUL-1986 <233>
XXDPSM.SYS 24 01-JUL-1986 <233>
DRSXM .SYS 49 01-JUL-1986 <233>
DRSSM .SYS 25 01-JUL-1986 <233>
DIR .SYS 8 01-JUL-1986 <233>
DB .SYS 3 01-JUL-1986 <233>
DD .SYS 4 01-JUL-1986 <233>
DL .SYS 5 01-JUL-1986 <233>
DM .SYS 5 01-JUL-1986 <233>
DR .SYS 4 01-JUL-1986 <233>
DU .SYS 5 01-JUL-1986 <233>
DY .SYS 4 01-JUL-1986 <233>
LP .SYS 2 01-JUL-1986 <233>
MM .SYS 4 01-JUL-1986 <233>
MS .SYS 5 01-JUL-1986 <233>
MU .SYS 5 01-JUL-1986 <233>
DATE .SYS 3 01-JUL-1986 <233>
DUSZ .SYS 3 01-JUL-1986 <233>
MENUD0.BIC 5 01-JUL-1986 <233>
UPDAT .BIC 30 01-JUL-1986 <233>
XTECO .BIC 27 01-JUL-1986 <233>
DXCL .BIC 45 01-JUL-1986 <233>
SETUP .BIC 28 01-JUL-1986 <233>
PATCH .BIC 31 01-JUL-1986 <233>
HELP .TXT 19 01-JUL-1986 <233>
BOOT .CCC 2 01-JUL-1986 <233>
MN84A0.CCC 2 01-JUL-1986 <233>
SY84C0.CCC 7 01-JUL-1986 <233>
XMONF0.LIB 158 01-JUL-1986 <233>
BKMAA0.BIN 2 01-JUL-1986 <233>
CKBCC0.BIC 9 01-JUL-1986 <233>
CMFAF0.BIC 18 01-JUL-1986 <233>
CMSBB0.BIN 11 01-JUL-1986 <233>
EFPAA0.BIC 60 01-JUL-1986 <233>
EFPBA1.BIC 47 01-JUL-1986 <233>
EKBAD0.BIC 12 01-JUL-1986 <233>
EKBBF0.BIC 62 01-JUL-1986 <233>
EKBCD1.BIC 45 01-JUL-1986 <233>
EKBDE1.BIC 78 01-JUL-1986 <233>
EKBEE1.BIC 61 01-JUL-1986 <233>
EKBFD1.BIC 32 01-JUL-1986 <233>
EKBGC0.BIC 28 01-JUL-1986 <233>
EMJAD0.BIC 10 01-JUL-1986 <233>
EMKAB0.BIC 81 01-JUL-1986 <233>
EQKCE1.BIC 58 01-JUL-1986 <233>
ERHAE1.BIC 55 01-JUL-1986 <233>
ERSAA0.BIC 23 01-JUL-1986 <233>
ERSBC0.BIC 19 01-JUL-1986 <233>
ERSCB0.BIC 27 01-JUL-1986 <233>
ERSDD0.BIN 25 01-JUL-1986 <233>
FFPAA1.BIN 60 01-JUL-1986 <233>
FFPBA0.BIN 60 01-JUL-1986 <233>
FFPCB0.BIC 60 01-JUL-1986 <233>
FKAAC0.BIC 25 01-JUL-1986 <233>
FKABD0.BIC 16 01-JUL-1986 <233>
FKACA0.BIC 17 01-JUL-1986 <233>
FKKAB0.BIN 37 01-JUL-1986 <233>
FKTGC0.BIC 18 01-JUL-1986 <233>
FKTHB0.BIN 44 01-JUL-1986 <233>
GKAAA0.BIC 15 01-JUL-1986 <233>
GKABC0.BIC 16 01-JUL-1986 <233>
JDLAA0.BIC 20 01-JUL-1986 <233>
JFPAA1.BIC 51 01-JUL-1986 <233>
JFPBA0.BIC 40 01-JUL-1986 <233>
JKDAD1.BIC 29 01-JUL-1986 <233>
JKDBD0.BIC 52 01-JUL-1986 <233>
JKDCB0.BIC 53 01-JUL-1986 <233>
JKDDB0.BIC 33 01-JUL-1986 <233>
JKDEB0.BIN 91 01-JUL-1986 <233>
JKDFB0.BIN 26 01-JUL-1986 <233>
JKDHB0.BIC 56 01-JUL-1986 <233>
JKDIB0.BIC 23 01-JUL-1986 <233>
JKDJB0.BIN 93 01-JUL-1986 <233>
JKL5B0.BIC 93 01-JUL-1986 <233>
KFPAD0.BIC 63 01-JUL-1986 <233>
KFPBC0.BIC 61 01-JUL-1986 <233>
KFPCD0.BIC 65 01-JUL-1986 <233>
KKAAB0.BIC 37 01-JUL-1986 <233>
KKABD1.BIC 22 01-JUL-1986 <233>
KKACC0.BIC 10 01-JUL-1986 <233>
KKKAC0.BIC 43 01-JUL-1986 <233>
KKTAB1.BIC 28 01-JUL-1986 <233>
KKTBD0.BIN 31 01-JUL-1986 <233>
KKUAE0.BIN 29 01-JUL-1986 <233>
NDMAA0.BIC 32 01-JUL-1986 <233>
NDMBA0.BIC 30 01-JUL-1986 <233>
NDMCA0.BIC 31 01-JUL-1986 <233>
NDMDA0.BIC 28 01-JUL-1986 <233>
NDMEA0.BIC 28 01-JUL-1986 <233>
NKMBB0.BIC 14 01-JUL-1986 <233>
NKMCA0.BIN 31 01-JUL-1986 <233>
NKMDA0.BIC 20 01-JUL-1986 <233>
NKMEA0.BIC 17 01-JUL-1986 <233>
NKTCA0.BIC 21 01-JUL-1986 <233>
NKXAB0.BIC 25 01-JUL-1986 <233>
NQNAA0.BIN 46 01-JUL-1986 <233>
NRLGA0.BIC 20 01-JUL-1986 <233>
NTSAA0.BIC 37 01-JUL-1986 <233>
NTSBA0.BIC 62 01-JUL-1986 <233>
NTSCA0.BIC 74 01-JUL-1986 <233>
NTSDA0.BIC 69 01-JUL-1986 <233>
NTSEA0.BIC 24 01-JUL-1986 <233>
OEEAA0.BIC 5 01-JUL-1986 <233>
OEEBA0.BIC 6 01-JUL-1986 <233>
OEECA0.BIC 6 01-JUL-1986 <233>
OEEDA0.BIC 6 01-JUL-1986 <233>
OEEEA0.BIC 6 01-JUL-1986 <233>
OEEFA0.BIC 5 01-JUL-1986 <233>
OEEGB0.BIC 5 01-JUL-1986 <233>
OEEHA0.BIC 3 01-JUL-1986 <233>
OKDAF0.BIC 103 01-JUL-1986 <233>
OKDBA0.BIN 14 01-JUL-1986 <233>
OKDDB0.BIN 31 01-JUL-1986 <233>
OKTAC0.BIC 28 01-JUL-1986 <233>
EPOMUT.BIN 93 01-JUL-1986 <233>
CPOMUT.CNF 3 01-JUL-1986 <233>
EPOMUR.BIN 93 01-JUL-1986 <233>
CPOMUR.CNF 3 01-JUL-1986 <233>
EPOMRT.BIN 91 01-JUL-1986 <233>
CPOMRT.CNF 3 01-JUL-1986 <233>
RDTAC0.BIN 34 01-JUL-1986 <233>
RIIAB0.BIC 36 01-JUL-1986 <233>
RLPAB0.BIN 49 01-JUL-1986 <233>
RLPBB0.BIN 20 01-JUL-1986 <233>
RLPFC0.BIN 21 01-JUL-1986 <233>
RLPGC0.BIN 29 01-JUL-1986 <233>
RLPKC0.BIN 20 01-JUL-1986 <233>
RLPLA0.BIC 33 01-JUL-1986 <233>
RLPMB0.BIN 25 01-JUL-1986 <233>
RLPNA1.BIC 27 01-JUL-1986 <233>
VAAAA1.BIC 14 01-JUL-1986 <233>
VADAC0.BIC 17 01-JUL-1986 <233>
VAXAB0.BIC 17 01-JUL-1986 <233>
VCDAB0.BIC 17 01-JUL-1986 <233>
VCDBB0.BIC 32 01-JUL-1986 <233>
VCDCB0.BIC 31 01-JUL-1986 <233>
VCDDB0.BIC 30 01-JUL-1986 <233>
VCLHC0.BIN 35 01-JUL-1986 <233>
VCMAA0.BIC 16 01-JUL-1986 <233>
VDHAE0.BIN 30 01-JUL-1986 <233>
VDHBE0.BIN 30 01-JUL-1986 <233>
VDHCE0.BIN 30 01-JUL-1986 <233>
VDHEC0.BIN 51 01-JUL-1986 <233>
VDLAB0.BIC 17 01-JUL-1986 <233>
VDMAC1.BIN 32 01-JUL-1986 <233>
VDMBC0.BIN 31 01-JUL-1986 <233>
VDMCC1.BIN 31 01-JUL-1986 <233>
VDMDC0.BIN 28 01-JUL-1986 <233>
VDMEC0.BIN 28 01-JUL-1986 <233>
VDPVC1.BIN 32 01-JUL-1986 <233>
VDRAC0.BIC 14 01-JUL-1986 <233>
VDRBA0.BIN 8 01-JUL-1986 <233>
VDRCC0.BIC 17 01-JUL-1986 <233>
VDRDB0.BIC 16 01-JUL-1986 <233>
VDVAD1.BIN 15 01-JUL-1986 <233>
VDVCC1.BIN 14 01-JUL-1986 <233>
VDZAD3.BIC 17 01-JUL-1986 <233>
VDZBD0.BIC 17 01-JUL-1986 <233>
VDZCB1.BIN 13 01-JUL-1986 <233>
VDZDA0.BIN 5 01-JUL-1986 <233>
VIBAB0.BIC 14 01-JUL-1986 <233>
VIBBA1.BIC 13 01-JUL-1986 <233>
VKAAC0.BIC 17 01-JUL-1986 <233>
VKABB0.BIC 17 01-JUL-1986 <233>
VKACC1.BIC 17 01-JUL-1986 <233>
VKADC1.BIC 14 01-JUL-1986 <233>
VKAEB2.BIC 8 01-JUL-1986 <233>
VKAFE0.BIN 6 01-JUL-1986 <233>
VKAHA1.BIC 17 01-JUL-1986 <233>
VKAIB0.BIN 16 01-JUL-1986 <233>
VKAJB0.BIN 17 01-JUL-1986 <233>
VKALA1.BIC 13 01-JUL-1986 <233>
VKMAB0.BIN 20 01-JUL-1986 <233>
VKMBB0.BIN 14 01-JUL-1986 <233>
VKMCA0.BIN 31 01-JUL-1986 <233>
VKMEB0.BIN 17 01-JUL-1986 <233>
VKMHA0.BIN 32 01-JUL-1986 <233>
VKMJA0.BIN 58 01-JUL-1986 <233>
VKUAA0.BIN 17 01-JUL-1986 <233>
VKWAC0.BIC 18 01-JUL-1986 <233>
VM8AF0.BIC 15 01-JUL-1986 <233>
VMEMA0.BIC 17 01-JUL-1986 <233>
VMJAB0.BIC 60 01-JUL-1986 <233>
VMNAC1.BIC 49 01-JUL-1986 <233>
VMNBB0.BIC 19 01-JUL-1986 <233>
VMNCB1.BIC 22 01-JUL-1986 <233>
VMNDA1.BIC 18 01-JUL-1986 <233>
VMNEA1.BIC 15 01-JUL-1986 <233>
VMNFC0.BIC 10 01-JUL-1986 <233>
VMNGA0.BIC 4 01-JUL-1986 <233>
VMSAB0.BIC 25 01-JUL-1986 <233>
VMSBC0.BIC 10 01-JUL-1986 <233>
VMXAA0.BIC 16 01-JUL-1986 <233>
VMXBA0.BIN 24 01-JUL-1986 <233>
VNIAB0.BIN 43 01-JUL-1986 <233>
VPCAG0.BIC 85 01-JUL-1986 <233>
VRLAC0.BIN 25 01-JUL-1986 <233>
VRLBB0.BIC 29 01-JUL-1986 <233>
VTSAB0.BIC 39 01-JUL-1986 <233>
VTSBD0.BIC 66 01-JUL-1986 <233>
VTSCC0.BIC 77 01-JUL-1986 <233>
VTSDD0.BIC 71 01-JUL-1986 <233>
VTSEC0.BIC 26 01-JUL-1986 <233>
VVSAB1.BIC 76 01-JUL-1986 <233>
VVTAA1.BIN 19 01-JUL-1986 <233>
VVTBA0.BIN 21 01-JUL-1986 <233>
VVTCA0.BIN 20 01-JUL-1986 <233>
XAAAD0.OBJ 4 01-JUL-1986 <233>
XAABC0.OBJ 4 01-JUL-1986 <233>
XAACB0.OBJ 5 01-JUL-1986 <233>
XADAE0.OBJ 4 01-JUL-1986 <233>
XAAVA0.OBJ 3 01-JUL-1986 <233>
XADBB0.OBJ 9 01-JUL-1986 <233>
XADCB0.OBJ 9 01-JUL-1986 <233>
XADVA0.OBJ 3 01-JUL-1986 <233>
XAFAE0.OBJ 4 01-JUL-1986 <233>
XARAC0.OBJ 9 01-JUL-1986 <233>
XBBAB0.OBJ 5 01-JUL-1986 <233>
XBEAC0.OBJ 9 01-JUL-1986 <233>
XBMCN0.OBJ 6 01-JUL-1986 <233>
XBMDE0.OBJ 4 01-JUL-1986 <233>
XBMEB0.OBJ 5 01-JUL-1986 <233>
XBMFB0.OBJ 4 01-JUL-1986 <233>
XBMGB0.OBJ 5 01-JUL-1986 <233>
XBMHB0.OBJ 4 01-JUL-1986 <233>
XBMIB0.OBJ 4 01-JUL-1986 <233>
XBTAB0.OBJ 4 01-JUL-1986 <233>
XBTBB0.OBJ 4 01-JUL-1986 <233>
XBTCC0.OBJ 4 01-JUL-1986 <233>
XCBAE0.OBJ 4 01-JUL-1986 <233>
XCBBE0.OBJ 3 01-JUL-1986 <233>
XCBCF0.OBJ 5 01-JUL-1986 <233>
XCDAG0.OBJ 5 01-JUL-1986 <233>
XCIAB0.OBJ 8 01-JUL-1986 <233>
XCMAC0.OBJ 4 01-JUL-1986 <233>
XCMJB0.OBJ 5 01-JUL-1986 <233>
XCPAG0.OBJ 6 01-JUL-1986 <233>
XCPBK0.OBJ 5 01-JUL-1986 <233>
XCRAG0.OBJ 4 01-JUL-1986 <233>
XCSTA0.OBJ 4 01-JUL-1986 <233>
XDCAG0.OBJ 8 01-JUL-1986 <233>
XDHAL0.OBJ 8 01-JUL-1986 <233>
XDHUA0.OBJ 11 01-JUL-1986 <233>
XDHVD0.OBJ 10 01-JUL-1986 <233>
XDJAL0.OBJ 8 01-JUL-1986 <233>
XDLAL0.OBJ 6 01-JUL-1986 <233>
XDLBC0.OBJ 8 01-JUL-1986 <233>
XDMBJ0.OBJ 4 01-JUL-1986 <233>
XDMCC0.OBJ 7 01-JUL-1986 <233>
XDMDE0.OBJ 14 01-JUL-1986 <233>
XDMEC0.OBJ 12 01-JUL-1986 <233>
XDMRC0.OBJ 10 01-JUL-1986 <233>
XDMSA0.OBJ 4 01-JUL-1986 <233>
XDNAH0.OBJ 4 01-JUL-1986 <233>
XDPAE0.OBJ 7 01-JUL-1986 <233>
XDPBB0.OBJ 7 01-JUL-1986 <233>
XDPVC0.OBJ 5 01-JUL-1986 <233>
XDQAI0.OBJ 8 01-JUL-1986 <233>
XDRAD0.OBJ 4 01-JUL-1986 <233>
XDRBJ0.OBJ 3 01-JUL-1986 <233>
XDRCI0.OBJ 4 01-JUL-1986 <233>
XDRDC0.OBJ 4 01-JUL-1986 <233>
XDREC0.OBJ 9 01-JUL-1986 <233>
XDRFE0.OBJ 7 01-JUL-1986 <233>
XDRJB0.OBJ 4 01-JUL-1986 <233>
XDRKA0.OBJ 5 01-JUL-1986 <233>
XDRUA0.OBJ 4 01-JUL-1986 <233>
XDRVA0.OBJ 11 01-JUL-1986 <233>
XDRWD0.OBJ 3 01-JUL-1986 <233>
XDTAD0.OBJ 8 01-JUL-1986 <233>
XDUAI0.OBJ 8 01-JUL-1986 <233>
XDUBE0.OBJ 12 01-JUL-1986 <233>
XDVAB0.OBJ 19 01-JUL-1986 <233>
XDXAG0.OBJ 4 01-JUL-1986 <233>
XDZAG0.OBJ 7 01-JUL-1986 <233>
XDZBC0.OBJ 8 01-JUL-1986 <233>
XDZMA0.OBJ 6 01-JUL-1986 <233>
XFPAG0.OBJ 5 01-JUL-1986 <233>
XFPBE1.OBJ 10 01-JUL-1986 <233>
XFPCA0.OBJ 7 01-JUL-1986 <233>
XGTAE0.OBJ 8 01-JUL-1986 <233>
XIBAD0.OBJ 5 01-JUL-1986 <233>
XICAD0.OBJ 3 01-JUL-1986 <233>
XICBC0.OBJ 7 01-JUL-1986 <233>
XIEAA0.OBJ 4 01-JUL-1986 <233>
XIEBA0.OBJ 8 01-JUL-1986 <233>
XIECA0.OBJ 13 01-JUL-1986 <233>
XKCTA0.OBJ 29 01-JUL-1986 <233>
XKEAD0.OBJ 4 01-JUL-1986 <233>
XKGAD0.OBJ 4 01-JUL-1986 <233>
XKLAE0.OBJ 7 01-JUL-1986 <233>
XKMAA0.OBJ 13 01-JUL-1986 <233>
XKMCD0.OBJ 11 01-JUL-1986 <233>
XKMDB0.OBJ 7 01-JUL-1986 <233>
XKMKA0.OBJ 7 01-JUL-1986 <233>
XKMSA0.OBJ 4 01-JUL-1986 <233>
XKUAB0.OBJ 9 01-JUL-1986 <233>
XKWAH0.OBJ 3 01-JUL-1986 <233>
XKWBL0.OBJ 4 01-JUL-1986 <233>
XKWCB0.OBJ 4 01-JUL-1986 <233>
XKWDB0.OBJ 9 01-JUL-1986 <233>
XKWEB0.OBJ 6 01-JUL-1986 <233>
XKWFB0.OBJ 5 01-JUL-1986 <233>
XKWGB0.OBJ 5 01-JUL-1986 <233>
XLKAB0.OBJ 8 01-JUL-1986 <233>
XLPAF0.OBJ 5 01-JUL-1986 <233>
XLPBF0.OBJ 4 01-JUL-1986 <233>
XLPCE0.OBJ 5 01-JUL-1986 <233>
XLPDF0.OBJ 7 01-JUL-1986 <233>
XLPED0.OBJ 6 01-JUL-1986 <233>
XLPFB0.OBJ 6 01-JUL-1986 <233>
XLPHE0.OBJ 23 01-JUL-1986 <233>
XMLAA0.OBJ 9 01-JUL-1986 <233>
XMNAB0.OBJ 7 01-JUL-1986 <233>
XMNBB0.OBJ 12 01-JUL-1986 <233>
XMNCB0.OBJ 5 01-JUL-1986 <233>
XMNDB0.OBJ 4 01-JUL-1986 <233>
XMNEB0.OBJ 4 01-JUL-1986 <233>
XNCAD0.OBJ 6 01-JUL-1986 <233>
XNCBB0.OBJ 7 01-JUL-1986 <233>
XPAAF0.OBJ 5 01-JUL-1986 <233>
XPABG0.OBJ 4 01-JUL-1986 <233>
XPCCE0.OBJ 3 01-JUL-1986 <233>
XPCSC0.OBJ 6 01-JUL-1986 <233>
XPLAC0.OBJ 6 01-JUL-1986 <233>
XQNAB0.OBJ 11 01-JUL-1986 <233>
XRCAD0.OBJ 6 01-JUL-1986 <233>
XRCFB0.OBJ 14 01-JUL-1986 <233>
XRFAG0.OBJ 7 01-JUL-1986 <233>
XRHAA0.OBJ 4 01-JUL-1986 <233>
XRKAG0.OBJ 8 01-JUL-1986 <233>
XRKBH1.OBJ 12 01-JUL-1986 <233>
XRLAK0.OBJ 8 01-JUL-1986 <233>
XRMBC0.OBJ 13 01-JUL-1986 <233>
XRMDB0.OBJ 17 01-JUL-1986 <233>
XRNAB0.OBJ 14 01-JUL-1986 <233>
XRQAG0.OBJ 18 01-JUL-1986 <233>
XRXAE0.OBJ 9 01-JUL-1986 <233>
XRXBC0.OBJ 14 01-JUL-1986 <233>
XTAAD0.OBJ 5 01-JUL-1986 <233>
XTCAG0.OBJ 7 01-JUL-1986 <233>
XTKAB0.OBJ 14 01-JUL-1986 <233>
XTKBB0.OBJ 12 01-JUL-1986 <233>
XTMAJ0.OBJ 7 01-JUL-1986 <233>
XTMBM0.OBJ 12 01-JUL-1986 <233>
XTMDB0.OBJ 16 01-JUL-1986 <233>
XTRAD0.OBJ 8 01-JUL-1986 <233>
XTSAC0.OBJ 10 01-JUL-1986 <233>
XTSVA0.OBJ 11 01-JUL-1986 <233>
XTUAD0.OBJ 10 01-JUL-1986 <233>
XUACB0.OBJ 11 01-JUL-1986 <233>
XUADB0.OBJ 11 01-JUL-1986 <233>
XUDAD0.OBJ 4 01-JUL-1986 <233>
XVSAC0.OBJ 12 01-JUL-1986 <233>
XVSBB0.OBJ 9 01-JUL-1986 <233>
XVSCB0.OBJ 16 01-JUL-1986 <233>
XVSVA0.OBJ 10 01-JUL-1986 <233>
XVTAB0.OBJ 8 01-JUL-1986 <233>
XVTBB0.OBJ 9 01-JUL-1986 <233>
XVTCB0.OBJ 8 01-JUL-1986 <233>
XVTVB0.OBJ 5 01-JUL-1986 <233>
XXYAD0.OBJ 5 01-JUL-1986 <233>
XXYBB0.OBJ 4 01-JUL-1986 <233>

TOTL BLKS: 7285
TOTL FILES: 364

[2024-Feb-28 12:56:24 info ] Files extracted from "AP-T071S-MC_CZZZ4S0_MMDP_V2_1OF2_800_1986.tap" and written to "@AP-T071S-MC_CZZZ4S0_MMDP_V2_1OF2_800_1986.tap".
00:00:06.7720130


То есть теперь эта пара ключей позволяет не только сменить тип диска (в первую очередь - интерлейс) - но и поменять ФС в образе :) Понятно, что не все вопросы ещё решены (например - ФС с каталогами в ФС без каталогов, не всё варианты ФС могут быть созданы), но главное - основная часть функционала есть :)

В целом - ещё один шаг в работе с различными образами (включая каталог с файлами Windows) единым API :)

Hunta
29.02.2024, 09:24
Почистил код, погонял тесты.
На очереди - создание ленты DOS-11..

Hunta
04.03.2024, 00:44
Выходные прошли в работе по поддержке домашних серверов (обновления операционки и замена на одном (физическом) сервере системного винчестера - проработал одинадцать с половиной лет (выпущен в феврале 2014 года) - по smart-у вроде норм, но.. на всякий) и в войне с поддержкой подкаталогов в ImageUtils.

Для распаковки образов было сделано вроде более-менее, хотя... на самом деле слегка.. хм.. кривовато, особенно для поддержки двухуровневых каталогов в Pro, но.. если делать работу с ФС VMS - не уверен, что всё было бы ок.

Плюс - работы по возможности создания образов лент с DOS-11... И вот тут - в исходном TU58em - никакой поддержки каталогов не было в принципе - ибо только RT-11 (а там их нет вообще) и XXDP (а там они как суслик - никто не видит, хотя он есть :) )

Так что для начала прочистить работу с каталогами в принципе (вроде это сделано, теперь тесты), потом сделать работу с каталогами в модуле поддержки Windows ФС, а потом - придумать - как связать каталоги в разных ФС между собой (а вот тут думать надо). Плюс разные правила в отношении имен файлов в разных ФС :)

В общем - движение вперёд есть, но до собственно создания лент ещё не дошёл (хотя поддержку записи в образ ленты вроде сделал, но.. не проверял :) )

- - - Добавлено - - -

Нда... Даже не знаю, как это назвать :) С одной стороны - вроде на процесс извлечения файлов из образа RSX (и даже POS) не влияет, но вот в листинг содержимого выводится.. немного хрень :) В целом - результат опять же - попытки реализовать возможность извлечения файлов из ODS-1, когда программа каталоги особо не поддерживает :) Причём самое инетерсное, что вторая по очереди реализация каталогов (для DOS-11) была сделана уже без этого ляпа :)

- - - Добавлено - - -

В общем - требуется доделка (RSX) и проверка (DOS-11) :)

Hunta
08.03.2024, 16:53
В целом и в первом приближении спрямил работу с каталогами - подход для разных ФС сблизился. Больше всего возни было с ODS-1. Дальше - оценка результата и, по возможности, ещё большее сближение.
Из интересного в отношении P/OS. Оказаось, что команда dir [*,*] в подкаталоги в каталогах не заходит :) Ну или я не знаю - как заставить :) Поэтому показ каталога в ImageUtils сделан по принципу - сначала файлы, потом в подкаталоги. Типа вот такого:



Directory [0,0]

INDEXF.SYS;1 (1,1) 4377./4377. 19-JUL-1997 21:15 [377,0] [RWE,RWE,R,R]
BITMAP.SYS;1 (2,2) 33./33. 19-JUL-1997 21:15 [377,0] [RWE,RWE,R,R]
BADBLK.SYS;1 (3,3) 1./1. 19-JUL-1997 21:15 [377,0] [RWE,RWE,R,R]
000000.DIR;1 (4,4) 3./3. C 19-JUL-1997 21:15 [377,0] [RWE,RWE,R,R]
CORIMG.SYS;1 (5,5) 1000./1000. C 19-JUL-1997 21:15 [377,0] [RWE,RWE,R,R]
DECNET.DIR;1 (6,1) 1./1. C 19-JUL-1997 21:15 [376,377][RWE,RWE,R,R]
SYSTEM.DIR;1 (12,1) 2./2. C 19-JUL-1997 21:15 [1,1] [RWE,RWE,R,R]
ZZDECNET.DIR;1 (20,1) 1./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
ZZFONT.DIR;1 (21,1) 1./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
ZZSYS.DIR;1 (22,1) 4./5. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
ZZUSER.DIR;1 (23,1) 1./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
ZZWLOCAL.DIR;1 (26,1) 1./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
ZZWS.DIR;1 (32,1) 1./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
001001.DIR;1 (35,1) 0./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
001002.DIR;1 (36,1) 1./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
001005.DIR;1 (37,1) 2./2. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
ZZNETMAIL.DIR;1 (40,1) 0./1. C 19-JUL-1997 21:16 [377,0] [RWE,RWE,RWE,RWE]
ZZ0PRINT.DIR;1 (41,1) 1./1. C 19-JUL-1997 21:16 [377,0] [RWED,RWED,RWE,RWE]
ZZPA.CTL;1 (324,1) 4./4. 01-JAN-1997 00:04 [1,1] [RWED,RWED,R,R] 19-JAN-1998 22:43(25.)
ZZPA00001.DIR;1 (325,1) 1./1. C 01-JAN-1997 00:04 [1,1] [RWE,RWE,R,R]
ZZCL.CTL;1 (332,1) 2./2. 01-JAN-1997 00:04 [377,0] [RWED,RWED,R,R] 19-JAN-1998 22:43(15.)
ZZCL00001.DIR;1 (333,1) 1./1. C 01-JAN-1997 00:04 [377,0] [R,R,R,]
ZZPRODCL.DIR;1 (335,1) 2./2. C 01-JAN-1997 00:04 [377,0] [R,R,R,]
ZZPA00002.DIR;1 (471,1) 1./1. C 01-JAN-1997 00:01 [1,1] [RWE,RWE,R,R]
ZZCL00002.DIR;1 (477,1) 1./1. C 01-JAN-1997 00:01 [377,0] [R,R,R,]
ZZBASIC.DIR;1 (501,1) 1./1. C 01-JAN-1997 00:01 [377,0] [R,R,R,]
ZZPA00003.DIR;1 (507,1) 1./1. C 01-JAN-1997 00:04 [1,1] [RWE,RWE,R,R]
ZZCL00003.DIR;1 (514,1) 1./1. C 01-JAN-1997 00:04 [377,0] [R,R,R,]
ZZMAINTNC.DIR;1 (516,1) 1./1. C 01-JAN-1997 00:04 [377,0] [R,R,R,]
ZZUPDATE.DIR;1 (537,1) 1./1. C 01-JAN-1997 00:05 [377,0] [R,R,R,]
ZZPA00004.DIR;1 (557,10) 1./1. C 01-JAN-1997 00:12 [1,1] [RWE,RWE,R,R]
ZZCL00004.DIR;1 (562,1) 1./1. C 01-JAN-1997 00:12 [377,0] [R,R,R,]
ZZSIGHT.DIR;1 (564,1) 2./2. C 01-JAN-1997 00:12 [377,0] [R,R,R,]
ZZPA00005.DIR;1 (640,1) 1./1. C 01-JAN-1997 00:13 [1,1] [RWE,RWE,R,R]
ZZPA00006.DIR;1 (670,1) 1./1. C 01-JAN-1997 00:02 [1,1] [RWE,RWE,R,R]
PROF77IVP.DIR;1 (757,3) 1./1. C 01-JAN-1997 00:05 [377,0] [R,R,R,]
ZZPA00007.DIR;1 (1004,1) 1./1. C 19-JAN-1998 22:04 [1,1] [RWE,RWE,R,R]
ZZCL00005.DIR;1 (1011,1) 1./1. C 19-JAN-1998 22:04 [377,0] [R,R,R,]
ZZPROVUE.DIR;1 (1013,1) 1./1. C 19-JAN-1998 22:04 [377,0] [R,R,R,]
ZZPA00008.DIR;1 (1046,1) 1./1. C 19-JAN-1998 22:06 [1,1] [RWE,RWE,R,R]
ZZPA00009.DIR;1 (1051,1) 1./1. C 19-JAN-1998 22:06 [1,1] [RWE,RWE,R,R]
ZZPA00010.DIR;1 (1054,1) 1./1. C 19-JAN-1998 22:06 [1,1] [RWE,RWE,R,R]
ZZPA00011.DIR;1 (1057,1) 1./1. C 19-JAN-1998 22:06 [1,1] [RWE,RWE,R,R]
ZZPA00012.DIR;1 (1064,1) 1./1. C 19-JAN-1998 22:08 [1,1] [RWE,RWE,R,R]
ZZPA00013.DIR;1 (1067,1) 1./1. C 19-JAN-1998 22:08 [1,1] [RWE,RWE,R,R]
ZZPA00014.DIR;1 (1134,1) 1./1. C 19-JAN-1998 22:21 [1,1] [RWE,RWE,R,R]
ZZCL00006.DIR;1 (1143,1) 1./1. C 19-JAN-1998 22:21 [377,0] [R,R,R,]
ZZPA00015.DIR;1 (1150,1) 1./1. C 19-JAN-1998 22:22 [1,1] [RWE,RWE,R,R]
ZZCL00007.DIR;1 (1157,1) 1./1. C 19-JAN-1998 22:22 [377,0] [R,R,R,]
ZZPA00016.DIR;1 (1162,1) 1./1. C 19-JAN-1998 22:22 [1,1] [RWE,RWE,R,R]
ZZCL00008.DIR;1 (1172,1) 1./1. C 19-JAN-1998 22:22 [377,0] [R,R,R,]
ZZPA00017.DIR;1 (1212,1) 1./1. C 19-JAN-1998 22:24 [1,1] [RWE,RWE,R,R]
ZZCL00009.DIR;1 (1221,1) 1./1. C 19-JAN-1998 22:24 [377,0] [R,R,R,]
ZZPA00018.DIR;1 (1226,1) 1./1. C 19-JAN-1998 22:24 [1,1] [RWE,RWE,R,R]
ZZCL00010.DIR;1 (1234,1) 1./1. C 19-JAN-1998 22:24 [377,0] [R,R,R,]
ZZPA00019.DIR;1 (1241,1) 1./1. C 19-JAN-1998 22:24 [1,1] [RWE,RWE,R,R]
ZZCL00011.DIR;1 (1250,1) 1./1. C 19-JAN-1998 22:24 [377,0] [R,R,R,]
ZZPA00020.DIR;1 (1272,1) 1./1. C 19-JAN-1998 22:32 [1,1] [RWE,RWE,R,R]
ZZCL00012.DIR;1 (1300,1) 1./1. C 19-JAN-1998 22:32 [377,0] [R,R,R,]
ZZCET2.DIR;1 (1302,1) 1./1. C 19-JAN-1998 22:32 [377,0] [R,R,R,]
ZZSKETCH.DIR;1 (1305,1) 1./1. C 19-JAN-1998 22:32 [377,0] [R,R,R,]
ZZPA00021.DIR;1 (1355,1) 1./1. C 19-JAN-1998 22:35 [1,1] [RWE,RWE,R,R]
ZZCL00013.DIR;1 (1363,1) 1./1. C 19-JAN-1998 22:35 [377,0] [R,R,R,]
ZZCOMM.DIR;1 (1365,1) 1./1. C 19-JAN-1998 22:35 [377,0] [R,R,R,]
ZZFILEX.DIR;1 (1404,1) 1./1. C 19-JAN-1998 22:36 [377,0] [R,R,R,]
ZZPA00022.DIR;1 (1437,2) 1./1. C 19-JAN-1998 22:43 [1,1] [RWE,RWE,R,R]
ZZPA00023.DIR;1 (1445,1) 1./1. C 19-JAN-1998 22:43 [1,1] [RWE,RWE,R,R]
ZZPA00024.DIR;1 (1451,1) 1./1. C 19-JAN-1998 22:43 [1,1] [RWE,RWE,R,R]
ZZCL00014.DIR;1 (1454,1) 1./1. C 19-JAN-1998 22:43 [377,0] [R,R,R,]
GAMES.DIR;1 (1456,1) 1./1. C 19-JAN-1998 22:43 [377,0] [R,R,R,]
ZZPA00025.DIR;1 (1462,1) 1./1. C 19-JAN-1998 22:43 [1,1] [RWE,RWE,R,R]
ZZCL00015.DIR;1 (1465,1) 1./1. C 19-JAN-1998 22:43 [377,0] [R,R,R,]
SGE.DIR;1 (1504,1) 1./1. C 19-JAN-1998 23:10 [1,1] [RWE,RWE,R,R]

Total of 5491./5494. blocks in 73. files

Directory [DECNET]

USERFILES.DIR;1 (7,1) 0./1. C 19-JUL-1997 21:15 [376,377][RWE,RWE,R,R]
ZZDECNET.DIR;1 (10,1) 0./1. C 19-JUL-1997 21:15 [376,377][RWE,RWE,R,R]
ZZSYS.DIR;1 (11,1) 1./1. C 19-JUL-1997 21:15 [376,377][RWE,RWE,R,R]

Total of 1./3. blocks in 3. files

Directory [DECNET.USERFILES]


Total of 0./0. blocks in 0. files

Directory [DECNET.ZZDECNET]


Total of 0./0. blocks in 0. files

Directory [DECNET.ZZSYS]

LOGIN.INI;1 (307,1) 1./1. 19-JUL-1997 21:28 [376,377][RWE,RWED,R,]
LOGOUT.INI;1 (310,1) 1./1. 19-JUL-1997 21:28 [376,377][RWE,RWED,R,]

Total of 2./2. blocks in 2. files

Directory [SYSTEM]

EXAMPLE.DIR;1 (13,1) 0./1. C 19-JUL-1997 21:15 [1,1] [RWE,RWE,R,R]
USERFILES.DIR;1 (14,1) 1./1. C 19-JUL-1997 21:15 [1,1] [RWE,RWE,R,R]
ZZDECNET.DIR;1 (15,1) 0./1. C 19-JUL-1997 21:15 [1,1] [RWE,RWE,R,R]
ZZSYS.DIR;1 (16,1) 1./1. C 19-JUL-1997 21:15 [1,1] [RWE,RWE,R,R]
001002.DIR;1 (17,1) 1./1. C 19-JUL-1997 21:16 [1,1] [RWE,RWE,R,R]
ZZAP.CTL;1 (464,1) 4./4. 01-JAN-1997 00:12 [1,1] [RWED,RWED,R,] 19-JAN-1998 22:45(27.)
ZZAP00001.DIR;1 (465,1) 1./1. C 01-JAN-1997 00:12 [1,1] [RWE,RWE,R,R]
ZZAP00002.DIR;1 (505,1) 1./1. C 01-JAN-1997 00:01 [1,1] [RWE,RWE,R,R]
ZZAP00003.DIR;1 (547,1) 1./1. C 01-JAN-1997 00:06 [1,1] [RWE,RWE,R,R]
ZZAP00004.DIR;1 (654,1) 1./1. C 01-JAN-1997 00:14 [1,1] [RWE,RWE,R,R]
ZZSIGHT.DIR;1 (656,1) 1./1. C 01-JAN-1997 00:14 [1,1] [RWE,RWE,R,R]
ZZAP00005.DIR;1 (661,1) 1./1. C 01-JAN-1997 00:14 [1,1] [RWE,RWE,R,R]
ZZAP00006.DIR;1 (674,1) 1./1. C 01-JAN-1997 00:03 [1,1] [RWE,RWE,R,R]
ZZDECUSC.DIR;1 (706,2) 2./2. C 01-JAN-1997 00:43 [1,1] [RWE,RWE,R,R]
ZZKERMIT.DIR;1 (776,1) 1./1. C 01-JAN-1997 00:19 [1,1] [RWE,RWE,R,R]
ZZAP00007.DIR;1 (1076,1) 1./1. C 19-JAN-1998 22:11 [1,1] [RWE,RWE,R,R]
ZZPROVUE.DIR;1 (1100,1) 1./1. C 19-JAN-1998 22:11 [1,1] [RWE,RWE,R,R]
ZZAP00008.DIR;1 (1110,1) 1./1. C 19-JAN-1998 22:13 [1,1] [RWE,RWE,R,R]
ZZAP00009.DIR;1 (1121,1) 1./1. C 19-JAN-1998 22:13 [1,1] [RWE,RWE,R,R]
ZZAP00010.DIR;1 (1123,1) 1./1. C 19-JAN-1998 22:14 [1,1] [RWE,RWE,R,R]
ZZAP00011.DIR;1 (1125,1) 1./1. C 19-JAN-1998 22:14 [1,1] [RWE,RWE,R,R]
ZZAP00013.DIR;1 (1127,2) 1./1. C 19-JAN-1998 22:15 [1,1] [RWE,RWE,R,R]
ZZAP00014.DIR;1 (1132,1) 1./1. C 19-JAN-1998 22:19 [1,1] [RWE,RWE,R,R]
ZZAP00015.DIR;1 (1175,1) 1./1. C 19-JAN-1998 22:22 [1,1] [RWE,RWE,R,R]
ZZAP00016.DIR;1 (1202,1) 1./1. C 19-JAN-1998 22:23 [1,1] [RWE,RWE,R,R]
ZZAP00017.DIR;1 (1206,1) 1./1. C 19-JAN-1998 22:23 [1,1] [RWE,RWE,R,R]
ZZAP00018.DIR;1 (1253,1) 1./1. C 19-JAN-1998 22:25 [1,1] [RWE,RWE,R,R]
ZZAP00020.DIR;1 (1260,2) 1./1. C 19-JAN-1998 22:26 [1,1] [RWE,RWE,R,R]
ZZAP00021.DIR;1 (1265,1) 1./1. C 19-JAN-1998 22:26 [1,1] [RWE,RWE,R,R]
ZZAP00022.DIR;1 (1342,1) 1./1. C 19-JAN-1998 22:34 [1,1] [RWE,RWE,R,R]
ZZCET2.DIR;1 (1346,1) 1./1. C 19-JAN-1998 22:34 [1,1] [RWE,RWE,R,R]
ZZAP00023.DIR;1 (1425,1) 1./1. C 19-JAN-1998 22:38 [1,1] [RWE,RWE,R,R]
ZZCOMM.DIR;1 (1431,1) 1./1. C 19-JAN-1998 22:38 [1,1] [RWE,RWE,R,R]
ZZAP00024.DIR;1 (1471,1) 1./1. C 19-JAN-1998 22:44 [1,1] [RWE,RWE,R,R]
ZZAP00025.DIR;1 (1474,1) 1./1. C 19-JAN-1998 22:44 [1,1] [RWE,RWE,R,R]
ZZAP00026.DIR;1 (1476,1) 1./1. C 19-JAN-1998 22:44 [1,1] [RWE,RWE,R,R]
ZZAP00027.DIR;1 (1500,1) 1./1. C 19-JAN-1998 22:45 [1,1] [RWE,RWE,R,R]

Total of 39./41. blocks in 37. files

Directory [SYSTEM.EXAMPLE]


Total of 0./0. blocks in 0. files

Directory [SYSTEM.USERFILES]

SAMPLE.SCP;1 (664,1) 3./3. 01-JAN-1997 00:15 [1,1] [RWED,RWED,R,R]
SAMPLE1.GID;1 (665,1) 2./2. 01-JAN-1997 00:15 [1,1] [RWED,RWED,R,R]
SAMPLE2.GID;1 (666,1) 3./3. 01-JAN-1997 00:15 [1,1] [RWED,RWED,R,R]
SAMPLE3.GID;1 (667,1) 2./2. 01-JAN-1997 00:15 [1,1] [RWED,RWED,R,R]
CC.TXT;1 (754,1) 2./6. C 26-NOV-1984 14:27 [1,1] [RWE,RWED,R,] 01-JAN-1997 00:47(5.)
PRINT.C;1 (756,1) 1./1. 01-JAN-1997 00:53 [1,1] [RWE,RWED,R,]
PRINT.OBJ;1 (755,3) 1./1. 01-JAN-1997 00:58 [1,1] [RWE,RWED,R,]
K11HLP.HLP;1 (1003,1) 140./140. 05-DEC-1985 12:57 [1,1] [RWE,RWED,R,] 01-JAN-1997 00:37(6.)
PRINT.TSK;1 (761,1) 39./39. C 01-JAN-1997 00:59 [1,1] [RWE,RWED,R,]
SYNERGY.DOC;1 (1107,1) 6./6. 19-JAN-1998 22:11 [1,1] [RWED,RWED,RWED,RWED]
EXAMPLE.WRK;1 (1201,1) 3./3. 19-JAN-1998 22:22 [1,1] [RWED,RWED,RWED,RWED]
EXAMPLE.TAB;1 (1257,1) 3./3. 19-JAN-1998 22:25 [1,1] [RWED,RWED,RWED,RWED]
CHESSGAME.CHE;1 (1271,1) 7./7. 19-JAN-1998 22:30 [1,1] [RWE,RWED,R,]
USER.DIC;1 (1350,1) 1./1. 19-JAN-1998 22:34 [1,1] [RWED,RWED,RWED,RWED]
EXAMPLE.DOC;1 (1351,1) 9./9. 19-JAN-1998 22:34 [1,1] [RWED,RWED,RWED,RWED]
EXAMPLE.GID;1 (1352,1) 8./8. 19-JAN-1998 22:34 [1,1] [RWED,RWED,RWED,RWED]
EXAMPLECV.GID;1 (1353,1) 18./18. 19-JAN-1998 22:34 [1,1] [RWED,RWED,RWED,RWED]
EXAMPLEHD.GID;1 (1354,1) 4./4. 19-JAN-1998 22:34 [1,1] [RWED,RWED,RWED,RWED]
PROCOM.DOC;1 (1435,1) 14./14. 19-JAN-1998 22:38 [1,1] [RWED,RWED,RWED,RWED]
PROSESK2.UDK;1 (1436,1) 10./10. 19-JAN-1998 22:40 [1,1] [RWE,RWED,R,] 19-JAN-1998 22:40(2.)
CHESS.TXT;1 (1473,1) 7./7. 19-JAN-1998 22:44 [1,1] [RWED,RWED,R,]

Total of 283./287. blocks in 21. files

Directory [SYSTEM.ZZDECNET]


Total of 0./0. blocks in 0. files

Directory [SYSTEM.ZZSYS]

COMSETUP.DAT;1 (311,1) 9./9. 19-JUL-1997 21:28 [1,1] [RWE,RWED,R,] 06-DEC-1903 10:20(136.)
LOGIN.INI;1 (312,1) 1./1. 19-JUL-1997 21:28 [1,1] [RWE,RWED,R,]
LOGOUT.INI;1 (313,1) 1./1. 19-JUL-1997 21:28 [1,1] [RWE,RWED,R,] 19-JAN-1998 22:11(2.)
MSGBOARD.SYS;1 (314,1) 32./32. C 19-JUL-1997 21:28 [1,1] [RWE,RWED,R,]
PRVSETUP.DAT;1 (315,1) 1./1. 19-JUL-1997 21:28 [1,1] [RWE,RWED,R,]
USERMENU.SYS;1 (316,1) 37./37. C 19-JUL-1997 21:28 [1,1] [RWE,RWED,R,] 19-JAN-1998 22:45(26.)
CLSETUP.DAT;1 (321,1) 4./4. 19-JUL-1997 21:29 [1,1] [RWE,RWED,R,] 06-DEC-1903 10:18(3.)
PROSE.UDK;1 (677,1) 10./10. 01-JAN-1997 00:04 [1,1] [RWE,RWED,R,] 01-JAN-1997 00:53(3.)

Total of 95./95. blocks in 8. files

Directory [SYSTEM.001002]

FMSERR.MSG;1 (317,1) 2./2. 19-JUL-1997 21:28 [1,1] [RWE,RWED,R,]

Total of 2./2. blocks in 1. files

Directory [SYSTEM.ZZAP00001]

ZZAP00001.INB;1 (466,1) 10./10. 01-JAN-1997 00:12 [1,1] [RD,RD,R,R]
START.CMD;1 (467,1) 5./5. 01-JAN-1997 00:12 [1,1] [RD,RWED,R,R]
EXIT.CMD;1 (470,1) 1./1. 01-JAN-1997 00:12 [1,1] [RD,RWED,R,R]

Total of 16./16. blocks in 3. files

.......


Directory [SGE]

SGE.TSK;1 (771,2) 75./75. C 19-JAN-1998 23:16 [1,1] [RWE,RWED,R,] 06-DEC-1903 10:19(3.)

Total of 75./75. blocks in 1. files

Grand Total of 25990./26193. blocks in 839. files in 158. directories

Узнаю, как заставить dir заходить в подкаталоги - сравню и подправлю :)

Hunta
09.03.2024, 13:29
Почти начал заниматься с обработкой файлов и каталогов в хостовой ОС (читай в Windows) - что бы тоже был похожий подход и тогда можно будет сделать обобщённый вариант копирования файлов из одной ФС в другую, как вдруг внезапно налетел на очередной косяк :) Ну точнее - не то что бы косяк, скорей - недоделка. Короче, выяснилось, что сломал работу с образами XXDP. Точнее - с ними можно работать как с образами DOS-11, ибо ФС очень близки, но есть и отличия. Самое заметное - как показывается каталог диска. Ну, в принципе первоначальная доделка почти из разряда Copy-Paste, но вот что ещё вылезит на тестировании.. В общем, доделываю.

Hunta
10.03.2024, 11:49
В целом, восстановление поддержки XXDP прошло достаточно легка, как и ожидалось.
Занялся добавкой ФС Windows в стандартный API работы с файловыми системами. Один из замороченных моментов - разная структура каталогов и разные правила с именами файлов... Как обычно - проблемы буду решать по мере поступления.
Вначала - добавка поддержки ФС Windows в принципе. А там посмотрим :)

- - - Добавлено - - -

Ещё из задумок - две с половиной ФС поддерживают несколько ссылок на файлы из каталогов. Это Windows, ODS-1(RSX) и частично DOS-11. Частично - поскольку формально да, а фактически.. вроде как ошибкой считается :) Думаю и над этим (хотя в модуле ODS-1 (пока) не поддерживается).

Hunta
10.03.2024, 19:01
Хорошая мысля приходит... вовремя :)


K:\Repo\ForDebug\ImageUtils\Pro>ImageUtilsX -dir pos32.rd RD ODS1

Directory [0,0]

INDEXF.SYS;1 (1,1) 4377./4377. 19-JUL-1997 21:15 [377,0] [RWE,RWE,R,R]
BITMAP.SYS;1 (2,2) 33./33. 19-JUL-1997 21:15 [377,0] [RWE,RWE,R,R]
BADBLK.SYS;1 (3,3) 1./1. 19-JUL-1997 21:15 [377,0] [RWE,RWE,R,R]
000000.DIR;1 (4,4) 3./3. C 19-JUL-1997 21:15 [377,0] [RWE,RWE,R,R]
CORIMG.SYS;1 (5,5) 1000./1000. C 19-JUL-1997 21:15 [377,0] [RWE,RWE,R,R]
DECNET.DIR;1 (6,1) 1./1. C 19-JUL-1997 21:15 [376,377][RWE,RWE,R,R]
SYSTEM.DIR;1 (12,1) 2./2. C 19-JUL-1997 21:15 [1,1] [RWE,RWE,R,R]
ZZDECNET.DIR;1 (20,1) 1./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
ZZFONT.DIR;1 (21,1) 1./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
ZZSYS.DIR;1 (22,1) 4./5. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
ZZUSER.DIR;1 (23,1) 1./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
ZZWLOCAL.DIR;1 (26,1) 1./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
ZZWS.DIR;1 (32,1) 1./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
001001.DIR;1 (35,1) 0./1. C 19-JUL-1997 21:16 [377,0] [R,R,R,]
.....

Directory [SGE]

SGE.TSK;1 (771,2) 75./75. C 19-JAN-1998 23:16 [1,1] [RWE,RWED,R,] 06-DEC-1903 10:19(3.)

Total of 75./75. blocks in 1. files

Grand Total of 25990./26193. blocks in 839. files in 158. directories




- - - Добавлено - - -

Вдогонку - реализация потребовала примерно 10 минут :)

- - - Добавлено - - -

Ещё вдогонку - вписываю работу с ФС Windows в стандартный API. Пришлось внутренности переделать на ещё один вариант хранилища информации. Был - блочный образ, потом для лент добавлен образ с записями переменной длины, теперь - каталог с файлами и подкаталогами :)

Вроде как вписал удачно, теперь собственно написание кода для работы с ним.

Hunta
11.03.2024, 23:10
Пока глубокий концепт (много чего поправить надо плюс продумать схему конвертации имен между разными ФС), но...
Альтернативный способ создания образа :)



del m013.Test.NoInt.dsk

ImageUtilsx -from @m013.dsk path winfs -to m013.Test.NoInt.dsk rk035 rt11 1>m013.Test.dsk.NoInt.Pack2.mylog.txt

ImageUtilsx -dir m013.Test.NoInt.dsk rk035 rt11 1>>m013.Test.dsk.NoInt.Pack2.mylog.txt

type m013.Test.dsk.NoInt.Pack2.mylog.txt

FDF331.DOC 302P 11-MAR-2024 FDF333.DOC 118P 11-MAR-2024
FILE .BAD 1P 11-MAR-2024 EMPTY .FIL 61P 11-MAR-2024
NNGAME.DSK 4P 11-MAR-2024 $ORDER.INF 1P 11-MAR-2024
6 files, 487 blocks
4303 Free blocks


FDF331.DOC 302P 11-MAR-2024 FDF333.DOC 118P 11-MAR-2024
FILE .BAD 1P 11-MAR-2024 EMPTY .FIL 61P 11-MAR-2024
NNGAME.DSK 4P 11-MAR-2024 $ORDER.INF 1P 11-MAR-2024
EMPTY.FIL 4303 D
7 files, 487 blocks
4303 Free blocks

Альтернативный способ распаковки надо ещё написать. Точнее - работа с Windows ФС на запись :) Ибо как только оно будет написано....... Как "волшебным" образом заработает и команда


ImageUtilsx -from m013.Test.NoInt.dsk rk035 rt11 -to @m013.dsk path winfs >m013.Test.dsk.NoInt.Pack2.mylog.txt


- - - Добавлено - - -

И в целом - если модуль работы с ФС позволяет записывать в неё.. то конвертирование из этой ФС или в эту ФС сразу будет доступным в -to -from :)

Ну а -pack и -unpack подразумевает Windows ФС с одной из сторон :)

Hunta
12.03.2024, 10:25
В процессе исправления косяков, недочётов и функционала...

- - - Добавлено - - -

Прогнал формальные тесты - вроде ничего не сломал - можно двигаться дальше..

Woxem
18.03.2024, 20:59
Здравствуйте вы закончили disasm можно его попросить на пробу?

Hunta
18.03.2024, 22:21
вы закончили disasm
Он в постоянном развитии

- - - Добавлено - - -


можно его попросить на пробу?
Можно. Завтра напишу

Hunta
21.03.2024, 10:51
Потихоньку (свободного времени катастрофически мало) доработываю обобщённый подход к переносу файлов из одной ФС в другую. В наследство от TU58fs достались только два метода - из ФС PDP11 в ФС хоста и из ФС хоста в фС PDP11 - но в ОЧЕНЬ простейшем варианте. Мой вариант будет более универсальным, в том числе - учитывающим особенности конкретной ФС. Типа поддержки или неподдержки каталогов. Но имена файлов всё ещё остаются проблемой..

Hunta
03.04.2024, 18:37
Подвижки вперёд есть. Сделал класс для работы с ФС Windows - что бы можно было включить в общий подход. Умеет принимать файлы и отдавать файлы. В процессе исправил так же пару ошибок в соседних (RT-11 и ODS-1) классах. Пока получается, что дальше причёска кода и тестирование - особенно работа с именами файлов и поддержка каталогов - основные ошибки в процессе написания класса ФС Windows были связаны именно с этим.

Ну и фактически - создавать образ с ФС PDP-11 пока уммет только класс ФС RT-11.

Технически несложной должна быть реализация создания MT DOS-11.

Для XXDP есть некий под от автора (но в процессе разборок с ФС XXDP налетел на неточности и в разборке и сборке.
ФС DOS-11 похожа на ФС XXDP, основное отличие - поддержка каталогов, хотя технически каталог (один!) есть в XXDP

Ну и ODS-1 - это отдельная пестня.

Плюс ещё остаётся вопрос, что в разных ФС есть отличия в формате текстовых файлов и объектных (obj которые) файлов - тоже вопрос, который ждёт исследования - не про все ФС известно - как :) Точнее - Я не вентилировал ещё тонкости :)

Ну и ещё один функционал, который был реализован автором исходной утилиты, и на который я подзабил пока - это эмуляция TU58. В планах восстановление функционала есть, плюс хочется сделать ещё эмулятор и других лент (да и дисков тоже) через COM порт, но вот это всё остальное упирается в то, что на другой стороне должно быть НЕЧТО, что примет/отправит через COM порт команды/данные :) То есть задач - две :)

- - - Добавлено - - -

И да - времени по прежнему...

Hunta
05.04.2024, 00:01
В первом приближении на новый подход (pack и unpack - это вариант переноса файлов между ФС, где на одной из сторон - ФС Windows) код прошерстил, написал и дописал. То есть ошибки и недописанное наверняка есть, но править буду по мере обнаружения.

Вот теперь готов к тому, с чего всё началось - запись на ленту в формате DOS-11 :) Может за выходные и успею накропать... :)

Hunta
06.04.2024, 00:39
Было у меня подозрение, что - за выходные - это много :) Итак первый (ещё не все сценарии обрабатываются и взят каталог с распакованным образом диска RT-11 - но тем не менее) работающий вариант



>ImageUtilsx -from @m013.Src.dsk Path WinFS -to m013.1.Int.tap tape dos11 >m013.1.tap.Pack.mylog.txt

>type m013.1.tap.Pack.mylog.txt

Filesystem has 1 ufds, 3 files and 429 blocks


DIRECTORY [1,1]

06-APR-2024

FDF331.DOC 302 27-OCT-1989 <233>
FDF333.DOC 118 27-OCT-1989 <233>
FILE .BAD 1 09-FEB-1990 <233>

TOTL BLKS: 421
TOTL FILES: 3


>type !Log.txt

[2024-Apr-06 01:26:10 info ] initialize empty none file system on "m013.1.Int.tap"
[2024-Apr-06 01:26:11] Files from "@m013.Src.dsk" written to "m013.1.Int.tap".
[2024-Apr-06 01:26:11] 00:00:00.3128520

В ФС RT-11 каталогов нет совсем, а ФС DOS-11 (в том числе и на ленте) по сути не имеет понятия - корневой каталог (точнее говоря - на дисках он есть, но там СПЕЦИФИЧЕСКИЕ записи) - поэтому было принято решение - всё из корневого каталога пихать в [1,1]

Следующая доработка-тест - запихать на ленту каталог с содержимым ODS-1.

А, да. Как вишенка на торт (тоже текущий вариант программы и тоже ФС RT-11):


>ImageUtilsx -from m013.Test.NoInt.dsk disk rt11 -to m013.2.Int.tap tape dos11 >m013.2.tap.Pack.mylog.txt

>type m013.2.tap.Pack.mylog.txt

Filesystem has 1 ufds, 4 files and 4802 blocks


DIRECTORY [1,1]

06-APR-2024

FDF331.DOC 302 27-OCT-1989 <233>
FDF333.DOC 118 27-OCT-1989 <233>
FILE .BAD 1 09-FEB-1990 <233>
EMPTY .FIL 4371 xx-JAN-1972 <233>

TOTL BLKS: 4792
TOTL FILES: 4


>type !Log.txt

[2024-Apr-06 01:35:51 Warning] EMPTY.FIL - empty date
[2024-Apr-06 01:35:51 info ] initialize empty none file system on "m013.2.Int.tap"
[2024-Apr-06 01:35:53] Files from "m013.Test.NoInt.dsk" written to "m013.2.Int.tap".
[2024-Apr-06 01:35:53] 00:00:02.0040217

Hunta
06.04.2024, 15:56
Вроде всё доделал для создания лент DOS-11


>ImageUtilsx -from @m013.Src.dsk Path WinFS -to m013.1.Int.tap tape dos11 >m013.1.tap.Pack.mylog.txt

>type m013.1.tap.Pack.mylog.txt

Filesystem has 2 ufds, 4 files and 733 blocks


DIRECTORY [1,1]

06-APR-2024

FDF331.DOC 302 27-OCT-1989 <233>
FDF333.DOC 118 27-OCT-1989 <233>
FILE .BAD 1 09-FEB-1990 <233>

TOTL BLKS: 421
TOTL FILES: 3

DIRECTORY [2,2]

06-APR-2024

FDF331.DOC 302 27-OCT-1989 <233>

TOTL BLKS: 302
TOTL FILES: 1

>type !Log.txt

[2024-Apr-06 15:32:25 info ] initialize empty none file system on "m013.1.Int.tap"
[2024-Apr-06 15:32:25 ERROR ] MTDOS11FileSystem does not support directory [NAMED]
[2024-Apr-06 15:32:25] Files from "@m013.Src.dsk" written to "m013.1.Int.tap".
[2024-Apr-06 15:32:25] 00:00:00.6702064

Дальше по текущим планам - добавить возможность указания порядка файлов в ФС - обобщённый вариант (то есть будет работать для всех ФС.. ну.. кроме Windows :D )
И проверки-исправления ошибок :)

А, да, сейчас хочу подсунуть созданную ленту в DOS-11 и посмотреть - как оно будет воспринято :)

- - - Добавлено - - -

SIMH помог найти ошибку :) Была в коде, который относится к записи на ленту, но который был написан без проверки. В нём нашлось две ошибки - одну нашёл в процессе написания и отладки, вторую нашел при попытке использовать ленту на SIMH, который делает больше проверок структуры ленты, чем ImageUtils. Результат:


DOS/BATCH V9-20C
DATE: 6-APR-99
TIME: 16:38
DIALOGUE?

$
$LO 1,1
DATE:-06-APR-99
TIME:-16:38:24
$RU PIP
PIP V10-02
#KB:<MT:FDF331.DOC[1,1]


utwervden

u1.00025-01 33 05-lu










programmnoe obespe~enie dwk

fortran/fodos-2

translqtor s fortrana

rukowodstwo programmista

u1.00025-01 33 05



listow 86

Из занимательного - напрочь вылетело - как указывается каталог в DOS-11 :) В отличии от RSX (и VMS) в DOS-11 он указывается ПОСЛЕ имени файла :) Помогло вспомнить только чтение документации

Hunta
08.04.2024, 23:47
Указание порядка добавил, есть некоторые шерховатости, но совпадение образа ленты (полученного распаковкой а потом запаковкой) с оригиналом - ОЧЕНЬ сильное (шерховатости) :) Завтра попробую сошлифовать шерховатости :)

- - - Добавлено - - -

Однако разобрался :) Ленту делали в RSX - а она поддерживает 9 символов в имени файла на ленте DOS-11 :) Ну, дальше понятно, что делать :)

Hunta
09.04.2024, 10:18
>ImageUtilsX -dos11 -unpack Src\11SKIT1_try1.tap 1\@11SKIT1_try1.tap tape >1\11SKIT1_try1.tap.UnPack.MyLog.txt

>ImageUtilsX -from 1\@11SKIT1_try1.tap Path WinFS -to 1\11SKIT1_try1.Pack.tap tape dos11 >1\11SKIT1_try1.Pack.tap.Pack.MyLog.txt

>fc 1\11SKIT1_try1.Pack.tap Src\11SKIT1_try1.tap /b
Comparing files 1\11SKIT1_try1.Pack.tap and SRC\11SKIT1_TRY1.TAP
FC: no differences encountered

Некоторая проблема может быть с идентичностью лент, созданных в XXDP и, есть вероятность, в DOS-11 - в поле дата старший (15-ый) бит использует как флаг непрерываного файла. Мой класс Mapper пока работает максимум на уровне байт, описания и поддержки битовых полей на текущий момент нет, только задумки.

Но, собственно, цель - возможность переноса файлов из Windows в DOS-11 (а фактически и в RSX-11) достигнута - даже с поддержкой имен 9.3 в RSX :)

Дальше в планах потестировать и вернутся к идее запуска DOS-11 с диска HD :)

- - - Добавлено - - -

Нашлось ещё интересное про ленты в формате DOS-11. На загрузочной ленте XXDP аппартно загружаемый монитор в имени файла использует больше шести символов :)


Filesystem has 1 ufds, 704 files and 18523 blocks


DIRECTORY [2,2]

09-APR-2024

XXBOOT2 .MON 32 05-DEC-1988 <000> <--!!!!
XXDPXM .SYS 39 05-DEC-1988 <000>
XXDPSM .SYS 29 05-DEC-1988 <000>
DRSXM .SYS 48 05-DEC-1988 <000>
DRSSM .SYS 24 05-DEC-1988 <000>
DIR .SYS 7 05-DEC-1988 <000>
DB .SYS 2 05-DEC-1988 <000>
DD .SYS 3 05-DEC-1988 <000>
...


- - - Добавлено - - -

Юмор из разряда - как посмотреть каталог Windows, используя ImageUtils :v2_dizzy_punk:


>ImageUtilsX -dir "K:\Repo\ForDebug\ImageUtils\!ForCheck\@11SKIT1_try 1.tap" path winfs

Directory [1,20]

CDA.OLB 79360
ICBLD.CMD 226
IPBLD.CMD 186
ISBLD.CMD 274
LAINIT.OLB 11264
UDCBLD.CMD 224

Total of 91534 bytes in 6 files

Directory [1,24]

CDABLD.BLD 10108
ICBLD.CMD 212
IPBLD.CMD 178
ISBLD.CMD 250
UDCBLD.CMD 212

Total of 10960 bytes in 5 files

Directory [1,54]

11MTKB.TSK 86528
11MVMR.TSK 78336
INDFIX.OBJ 5232

Total of 170096 bytes in 3 files

Directory [11,10]

CODRV.MAC 4424
CRDRV.MAC 21526
IPDRV.MAC 126032
LADRV.MAC 45138
LPDRV.MAC 12626
TTATT.MAC 42944
TTCAN.MAC 16080
TTCIS.MAC 10796
TTDAT.MAC 35458
TTFP.MAC 6566
TTICH.MAC 75358
TTINI.MAC 19146
TTJZ.MAC 3268
TTMAC.MAC 9046
TTMIS.MAC 3530
TTMOD.MAC 10830
TTODN.MAC 8678
TTOIS.MAC 6354
TTRW.MAC 47404
TTSUB.MAC 23440
TTTBL.MAC 10994
TTYH.MAC 21350
TTYJ.MAC 2924
TTYL.MAC 4568
TTYZ.MAC 10358
XMDRV.MAC 33594

Total of 612432 bytes in 26 files

Directory [2,20]

11SGEN.CMD 4656
11SGEN2.CMD 66602
ABOBAS.MAC 3334
ATLBAS.MAC 13810
BLXIOM.OBJ 266
BLXIOU.OBJ 156
BMPRE.MAC 1010
BRKBAS.MAC 1610
ERRBAS.MAC 2360
ERRMSG.MAC 2280
FCS11S.OBJ 11400
FMTDV.MAC 1632
FNDUCB.MAC 2632
GETNUM.MAC 1522
GNBLK.MAC 2046
KEYWD.MAC 2188
LKLST.MAC 2574
MCRBAS.MAC 8772
OPEBAS.MAC 35782
OTL.MAC 2330
OTLCD.MAC 8342
OTLCM.MAC 2602
OTLERR.MAC 7888
OTLHD.MAC 22926
OTLLB.MAC 32762
OTLLD.MAC 11876
OTLPRE.MAC 4030
OTLQIO.MAC 4222
OTLRD.MAC 7478
PRSBAS.MAC 2756
REDBAS.MAC 4500
REMBAS.MAC 5454
RMDMAP.OLB 54272
RMDUNM.OLB 38912
RPSBAS.MAC 6864
RUNBAS.MAC 9576
SETTIM.MAC 3498
SIP.MAC 6030
SIPBOO.MAC 38476
SIPCD.MAC 3292
SIPERR.MAC 3758
SIPLD.MAC 7926
SIPPRE.MAC 2834
SIPQIO.MAC 3838
TIMBAS.MAC 8866
TKTN.MAC 34320

Total of 504260 bytes in 46 files

Directory [200,200]

11SCOPY.CMD 4178
BLDLAINIT.CMD 6716
SGNBLDDRV.CMD 9306
SGNEXEC.CMD 84888
SGNICIS.CMD 22512
SGNIP.CMD 14520
SGNKLAB.CMD 34848
SGNPER.CMD 89574
SGNTT.CMD 14616
SYSGEN.CMD 42646

Total of 323804 bytes in 10 files

Directory [45,10]

KAADMP.MAC 5606
KAADRV.MAC 11648
KAASO3.MAC 2346
KADAGR.MAC 2700
KADDRV.MAC 6648
KADGCH.MAC 10044
KADIN0.MAC 2764
KADIN1.MAC 3782
KADIN2.MAC 2794
KADIN3.MAC 3780
KADIN4.MAC 2812
KADIN5.MAC 3608
KADINP.MAC 6276
KADSWP.MAC 3330
KAST.MAC 6850
KBFRMG.MAC 6086
KBFSTS.MAC 5438
KCLOKA.MAC 2306
KCLOKB.MAC 4546
KCOMM.MAC 2224
KCVADF.MAC 2920
KDIGO.MAC 4626
KDIO.MAC 5708
KDISWP.MAC 3418
KDOSWP.MAC 3390
KDRDRV.MAC 15648
KDSCAD.MAC 1854
KDSDGO.MAC 1986
KDVDF.MAC 5236
KEFQA.MAC 4784
KFLT16.MAC 2972
KGHIST.MAC 10548
KIESTO.MAC 1840
KKWDRV.MAC 8572
KLQSUB.MAC 3358
KMLB.MLB 10752
KMUL.MAC 1384
KPAA.MAC 3184
KPRE.MAC 1650
KRATE.B2S 3028
KRATE.FTN 3250
KRCLKB.MAC 2062
KRLOC.MAC 1948
KRWBF.MAC 5812
KSET.MAC 6494
KSTADC.MAC 3468
KSTB.MAC 3230
KSTIBF.MAC 2378
KSTOP.MAC 2364
KSUB.MAC 4880
KSWDF.MAC 6440
LABMAC.MAC 2668

Total of 237440 bytes in 52 files

Directory [45,20]

ASMK.CMD 316
K4ASM.CMD 80
KCLEAN.CMD 52
KCOMBLD.CMD 136
KLABMLB.CMD 126
KLIBBLD.CMD 110
KLIBRP.CMD 156

Total of 976 bytes in 7 files

Directory [45,24]

ASMK.CMD 316
K4ASM.CMD 80
KCLEAN.CMD 52
KCOMBLD.CMD 130
KLABMLB.CMD 128
KLIBBLD.CMD 108
KLIBRP.CMD 156

Total of 970 bytes in 7 files

Grand Total of 1952472 bytes in 162 files in 9 directories

Надо бы ещё показ даты файла добавить :)

Hunta
10.04.2024, 21:35
Тестирование и фикс ошибок.
Из существенного - доработал работу с версионностью файлов в ФС Windows для файлов, извлечённых из образов ODS-1. Пока полноценно проверить не получится - создание ODS-1 образов только в планах.
Поправил специфическую ошибку в Mapper-е - всё таки налетел на неё :) Вообще Mapper надо бы причесать по полной (хак на хаке костылём подгоняет), но больно неохото туда соваться :)
Ради интереса - образ ODS-1 с P/OS записал на ленту в формате DOS-11 :) Ну, вестимо, все именованные каталоги оно послало к бабушке, но остальное вроде всё записало :) Надо с получвшейся ленты файлы слить и сравнить с оригиналом :)

- - - Добавлено - - -

Ещё одно не совсем корректную настройку нашел.
Идея была в том, что если файл расположен в корневом каталоге (прицел был на ODS-1 с его [0,0], а также на корневой каталог типа RT-11, у которого нет имени), то в DOS-11 такие файлы будут класться в каталог [1,1]. Нуу... Для RT-11 всё ок, а в ODS-1 мне накидали почти всё содержимое [0,0], что практически бесполежно. Добавил проверку - кидаться файлы будут только из корневого каталога без имени.

- - - Добавлено - - -

Ну... Если образ распакован в Windows ФС - то фиг вам.. А из образа ODS-1 берётся ок. Думать надо...

Hunta
11.04.2024, 09:08
Переделал обработку [0,0] в ODS-1 и определение целевого каталога при добавлении файла в Windows ФС.
Теперь и ODS-1 структура в распакованном каталоге выглядит логичней и кода поменьше стало и полученный образ ленты одинаков - независимо от того, берутся файлы из образа ODS-1 или из каталога, куда образ распакован :)

Hunta
12.04.2024, 11:00
Вроде требуемый функционал (запись на ленты в формате DOS-11) получен, попутные доработки - прямо, косвенно и не связанные с ним :) сделаны, на тестировании ошибки и проблемы выявлены и пофиксины, так что возвращаюсь к первоначальному развлечению - поиграться в DOS-11 и, в частности, сделать драйвер и образ для HD :)

Hunta
13.04.2024, 13:32
Как обычно, ложился спать - и в засыпании вспомнил.
Итак, встречаем новую команду в ImageUtils - sq ака squeeze :)



>ImageUtilsX -dir m013.dsk rx01 rt11 1>m013.dsk.Dir.txt
>ImageUtilsX -sq m013.dsk rx01 rt11 1>m013.dsk.Squeeze.txt
>ImageUtilsX -dir m013.dsk rx01 rt11 1>>m013.dsk.Dir.txt

>type m013.dsk.Dir.txt

FDF331.DOC 302 27-OCT-1989 FDF333.DOC 118 27-OCT-1989
EMPTY.FIL 61 D 06-FEB-1990 FILE .BAD 1 09-FEB-1990
NNGAME.DSK 4 D 29-OCT-1989
5 files, 421 blocks
65 Free blocks


FDF331.DOC 302 27-OCT-1989 FDF333.DOC 118 27-OCT-1989
FILE .BAD 1 09-FEB-1990 EMPTY.FIL 72 D
4 files, 421 blocks
72 Free blocks



Реализация (включая тестирование) заняла порядка 10 минут - ибо всё сделано через (!!!) конвертирование образа из выбранной ФС в неё же саму с записью в тот же образ :) То есть по сути - SQUEEZE можно сделать и в другой файл командой

ImageUtilsX -from m013.dsk rx01 rt11 -to m013.new.dsk rx01 rt11

Осталось разобраться - почему показывает разное количество свободных блоков - с одной стороны, это объясняется тем, что метод создания образа ФС RT-11 в настоящее время динамически вычисляет - сколько блоков будет отведено под каталог, но с другой стороны - разница должна быть чётном в этом случае.

Чуть позже - исследую процесс - возможно - есть ошибка в создании описания свободной области в конце ФС

- - - Добавлено - - -

Проверил под RT-11 - получается, что в моём методе создания ФС RT-11 есть ошибка - количество сегментов каталога одинаковое (4) и правильно количество свободных блоков - 65. Нуштош - осталось пофиксить :)

- - - Добавлено - - -

Другое дело :)


>ImageUtilsX -dir m013.dsk rx01 rt11 1>m013.dsk.Dir.txt
>ImageUtilsX -sq m013.dsk rx01 rt11 1>m013.dsk.Squeeze.txt
>ImageUtilsX -dir m013.dsk rx01 rt11 1>>m013.dsk.Dir.txt

>type m013.dsk.Dir.txt

FDF331.DOC 302 27-OCT-1989 FDF333.DOC 118 27-OCT-1989
EMPTY.FIL 61 D 06-FEB-1990 FILE .BAD 1 09-FEB-1990
NNGAME.DSK 4 D 29-OCT-1989
5 files, 421 blocks
65 Free blocks


FDF331.DOC 302 27-OCT-1989 FDF333.DOC 118 27-OCT-1989
FILE .BAD 1 09-FEB-1990 EMPTY.FIL 65 D
4 files, 421 blocks
65 Free blocks



Не учёл описания того, сколько блоков на конкретном устройства испоользует конкретная ФС. На DX - 2002 физических секторов, 501 логический блок (по 512 байт), но RT использует только 494 - где то вроде попадалось объяснение, что первая физическая дорожка (26 секторов) в Interchange формате используется для чего-то, вот поэтому первые 7 блоков (28 секторов), которые сдвинуты через интерлив в конец дискеты (ЕМНИП) и не используются

- - - Добавлено - - -

Немного ошибся. 26 секторов в начале (сдвиг на дорожку) и 2 сектора в конце (так как 2002 на 4 нацело не делится, так что для RT-11 на дискете 500 блоков или 200 секторов)

Hunta
25.04.2024, 21:15
Следующая большая доделка - поддержка лент в формате BRU и, скорей всего - его же диски

- - - Добавлено - - -

А, да, ещё поддержку лент в формате tpc скорей всего добавлю

Hunta
02.05.2024, 00:48
Планы строим, планы ломаются :)
Очередная доработка (пока в некоторой степени ещё концепт) - для DOS-11 (и для XXDP) добавил сохранение блоков, которые помечены как свободные, в файлы. Аналог LostAndFound из ФС RT-11. В чём то задача посложней (файлы могут быть не непрерывными), в чём то - проще - есть понятие linked файлов - блоки у такие файлов связаны в цепочку - по сути - прообраз механизма таблицы FAT. Ну и специфический вариант - образы TU56, которое умеет писать блоки не только в прямом, но и в обратном направлении.

Hunta
07.07.2024, 23:16
Доработка вывода информации о ODS-1 (привёл к общему формату) и вывод информации о диапазонах блоков - если диапазон относится к одному и тому же файлу и в диапазон нет плохих секторов - иначе диапазон бьётся на части
Выглядит так.


# $VOLUM.INF - info about ODS-1 volume on RX50 device.
# Produced by ODS1FileSystem

# Volume name : CBISIS
# Volume structure level : ODS-1 (402)
# Volume owner's UIC : [200,200]
# Volume protection : [RWCD,RWCD,RWCD,RWCD]
# Default file protection : [RWED,RWED,RWED,RWED]
# Default extension : 5
# Volume creation date : 30-DEC-1985 04:54:34
# Volume serial number : 0

# System independent volume name : CBISIS
# System independent volume owner name : [128,128]
# System independent format type : DFCFILE11A

# Index file bitmap size : 1 block(s)
# Index file bitmap LBN # : 2
# Maximum number : 200 of files allowed
# Storage bitmap cluster factor : 1
# Disk device type : 0
# Volume characteristics : CH_NDC, CH_NAT
# Default window size : 7
# Directory pre-access limit : 3

# Block size : 512
# Block Count : 800

# File 1 [0,0]INDEXF.SYS;1
# File 2 [0,0]BITMAP.SYS;1
# File 3 [0,0]BADBLK.SYS;1
# File 4 [0,0]000000.DIR;1
# File 5 [0,0]CORIMG.SYS;1
# File 6 [0,0]USERFILES.DIR;1
# File 7 [0,0]PROCBI.DIR;1
# File 8 [PROCBI]GRAIL.TSK;1
# File 9 [PROCBI]PROCBI.MSG;3
# File 10 [PROCBI]PROCBI.INS;1
# File 11 [PROCBI]PROCBI.MSG;2
# File 12 [0,0]BASIC.DIR;1
# File 13 [BASIC]BASCLU.TSK;1
# File 14 [BASIC]BASTSK.TSK;1
# File 15 [BASIC]PROBASIC.ERR;1
# File 16 [BASIC]BASIC.INS;1


Logical blocks N 0 -> 1:[0,0]INDEXF.SYS;1 - BootBlock
Logical blocks N 1 -> 1:[0,0]INDEXF.SYS;1 - HomeBlock
Logical blocks N 2 -> 1:[0,0]INDEXF.SYS;1 - Index file headers bitmap
Logical blocks N 3 -> 1:[0,0]INDEXF.SYS;1 - Header of 1:INDEXF.SYS;1
Logical blocks N 4 -> 1:[0,0]INDEXF.SYS;1 - Header of 2:BITMAP.SYS;1
Logical blocks N 5 -> 1:[0,0]INDEXF.SYS;1 - Header of 3:BADBLK.SYS;1
Logical blocks N 6 -> 1:[0,0]INDEXF.SYS;1 - Header of 4:000000.DIR;1
Logical blocks N 7 -> 1:[0,0]INDEXF.SYS;1 - Header of 5:CORIMG.SYS;1
Logical blocks N 8 -> 1:[0,0]INDEXF.SYS;1 - Header of 6:USERFILES.DIR;1
Logical blocks N 9 -> 1:[0,0]INDEXF.SYS;1 - Header of 7:PROCBI.DIR;1
Logical blocks N 10 -> 1:[0,0]INDEXF.SYS;1 - Header of 8:GRAIL.TSK;1
Logical blocks N 11 -> 1:[0,0]INDEXF.SYS;1 - Header of 9:PROCBI.MSG;3
Logical blocks N 12 -> 1:[0,0]INDEXF.SYS;1 - Header of 10:PROCBI.INS;1
Logical blocks N 13 -> 1:[0,0]INDEXF.SYS;1 - Header of 11:PROCBI.MSG;2
Logical blocks N 14 -> 1:[0,0]INDEXF.SYS;1 - Header of 12:BASIC.DIR;1
Logical blocks N 15 -> 1:[0,0]INDEXF.SYS;1 - Header of 13:BASCLU.TSK;1
Logical blocks N 16 -> 1:[0,0]INDEXF.SYS;1 - Header of 14:BASTSK.TSK;1
Logical blocks N 17 -> 1:[0,0]INDEXF.SYS;1 - Header of 15:PROBASIC.ERR;1
Logical blocks N 18 -> 1:[0,0]INDEXF.SYS;1 - Header of 16:BASIC.INS;1
Logical blocks N 19- 47 -> 1:[0,0]INDEXF.SYS;1 - Index file header - not used
Logical blocks N 48 -> 4:[0,0]000000.DIR;1
Logical blocks N 49- 50 -> 2:[0,0]BITMAP.SYS;1
Logical blocks N 51 -> 6:[0,0]USERFILES.DIR;1
Logical blocks N 52 -> 7:[0,0]PROCBI.DIR;1
Logical blocks N 53- 58 -> 8:[PROCBI]GRAIL.TSK;1
Logical blocks N 59 -> 8:[PROCBI]GRAIL.TSK;1 !! bad block !!
Logical blocks N 60- 76 -> 8:[PROCBI]GRAIL.TSK;1
Logical blocks N 77 -> 8:[PROCBI]GRAIL.TSK;1 !! bad block !!
Logical blocks N 78- 94 -> 8:[PROCBI]GRAIL.TSK;1
Logical blocks N 95 -> 8:[PROCBI]GRAIL.TSK;1 !! bad block !!
Logical blocks N 96-148 -> 8:[PROCBI]GRAIL.TSK;1
Logical blocks N 149 -> 9:[PROCBI]PROCBI.MSG;3
Logical blocks N 150 -> 10:[PROCBI]PROCBI.INS;1
Logical blocks N 151 -> 11:[PROCBI]PROCBI.MSG;2
Logical blocks N 152 -> 12:[0,0]BASIC.DIR;1
Logical blocks N 153-182 -> 13:[BASIC]BASCLU.TSK;1
Logical blocks N 183-194 -> 14:[BASIC]BASTSK.TSK;1
Logical blocks N 195 -> 14:[BASIC]BASTSK.TSK;1 !! bad block !!
Logical blocks N 196-321 -> 14:[BASIC]BASTSK.TSK;1
Logical blocks N 322 -> 14:[BASIC]BASTSK.TSK;1 !! bad block !!
Logical blocks N 323-329 -> 14:[BASIC]BASTSK.TSK;1
Logical blocks N 330-358 -> 15:[BASIC]PROBASIC.ERR;1
Logical blocks N 359 -> 16:[BASIC]BASIC.INS;1
Logical blocks N 360-798
Logical blocks N 799 -> 3:[0,0]BADBLK.SYS;1

Physical blocks N 0- 6
Physical blocks N 7 -> 3:[0,0]BADBLK.SYS;1
Physical blocks N 8- 9
Physical blocks N 10 -> 1:[0,0]INDEXF.SYS;1 - BootBlock
Physical blocks N 11 -> 1:[0,0]INDEXF.SYS;1 - Header of 3:BADBLK.SYS;1
Physical blocks N 12 -> 1:[0,0]INDEXF.SYS;1 - HomeBlock
Physical blocks N 13 -> 1:[0,0]INDEXF.SYS;1 - Header of 4:000000.DIR;1
Physical blocks N 14 -> 1:[0,0]INDEXF.SYS;1 - Index file headers bitmap
Physical blocks N 15 -> 1:[0,0]INDEXF.SYS;1 - Header of 5:CORIMG.SYS;1
Physical blocks N 16 -> 1:[0,0]INDEXF.SYS;1 - Header of 1:INDEXF.SYS;1
Physical blocks N 17 -> 1:[0,0]INDEXF.SYS;1 - Header of 6:USERFILES.DIR;1
Physical blocks N 18 -> 1:[0,0]INDEXF.SYS;1 - Header of 2:BITMAP.SYS;1
Physical blocks N 19 -> 1:[0,0]INDEXF.SYS;1 - Header of 7:PROCBI.DIR;1
Physical blocks N 20 -> 1:[0,0]INDEXF.SYS;1 - Header of 12:BASIC.DIR;1
Physical blocks N 21 -> 1:[0,0]INDEXF.SYS;1 - Index file header - not used
Physical blocks N 22 -> 1:[0,0]INDEXF.SYS;1 - Header of 8:GRAIL.TSK;1
Physical blocks N 23 -> 1:[0,0]INDEXF.SYS;1 - Header of 13:BASCLU.TSK;1
Physical blocks N 24 -> 1:[0,0]INDEXF.SYS;1 - Header of 9:PROCBI.MSG;3
Physical blocks N 25 -> 1:[0,0]INDEXF.SYS;1 - Header of 14:BASTSK.TSK;1
Physical blocks N 26 -> 1:[0,0]INDEXF.SYS;1 - Header of 10:PROCBI.INS;1
Physical blocks N 27 -> 1:[0,0]INDEXF.SYS;1 - Header of 15:PROBASIC.ERR;1
Physical blocks N 28 -> 1:[0,0]INDEXF.SYS;1 - Header of 11:PROCBI.MSG;2
Physical blocks N 29 -> 1:[0,0]INDEXF.SYS;1 - Header of 16:BASIC.INS;1
Physical blocks N 30- 54 -> 1:[0,0]INDEXF.SYS;1 - Index file header - not used
Physical blocks N 55 -> 4:[0,0]000000.DIR;1
Physical blocks N 56 -> 1:[0,0]INDEXF.SYS;1 - Index file header - not used
Physical blocks N 57 -> 2:[0,0]BITMAP.SYS;1
Physical blocks N 58- 59 -> 1:[0,0]INDEXF.SYS;1 - Index file header - not used
Physical blocks N 60 -> 2:[0,0]BITMAP.SYS;1
Physical blocks N 61 -> 8:[PROCBI]GRAIL.TSK;1
Physical blocks N 62 -> 6:[0,0]USERFILES.DIR;1
Physical blocks N 63 -> 8:[PROCBI]GRAIL.TSK;1
Physical blocks N 64 -> 7:[0,0]PROCBI.DIR;1
Physical blocks N 65- 68 -> 8:[PROCBI]GRAIL.TSK;1
Physical blocks N 69 -> 8:[PROCBI]GRAIL.TSK;1 !! bad block !!
Physical blocks N 70- 88 -> 8:[PROCBI]GRAIL.TSK;1
Physical blocks N 89 -> 8:[PROCBI]GRAIL.TSK;1 !! bad block !!
Physical blocks N 90-108 -> 8:[PROCBI]GRAIL.TSK;1
Physical blocks N 109 -> 8:[PROCBI]GRAIL.TSK;1 !! bad block !!
Physical blocks N 110-156 -> 8:[PROCBI]GRAIL.TSK;1
Physical blocks N 157 -> 9:[PROCBI]PROCBI.MSG;3
Physical blocks N 158-159 -> 8:[PROCBI]GRAIL.TSK;1
Physical blocks N 160 -> 10:[PROCBI]PROCBI.INS;1
Physical blocks N 161 -> 13:[BASIC]BASCLU.TSK;1
Physical blocks N 162 -> 11:[PROCBI]PROCBI.MSG;2
Physical blocks N 163 -> 13:[BASIC]BASCLU.TSK;1
Physical blocks N 164 -> 12:[0,0]BASIC.DIR;1
Physical blocks N 165-190 -> 13:[BASIC]BASCLU.TSK;1
Physical blocks N 191-195 -> 14:[BASIC]BASTSK.TSK;1
Physical blocks N 196 -> 13:[BASIC]BASCLU.TSK;1
Physical blocks N 197 -> 14:[BASIC]BASTSK.TSK;1
Physical blocks N 198 -> 13:[BASIC]BASCLU.TSK;1
Physical blocks N 199-208 -> 14:[BASIC]BASTSK.TSK;1
Physical blocks N 209 -> 14:[BASIC]BASTSK.TSK;1 !! bad block !!
Physical blocks N 210-337 -> 14:[BASIC]BASTSK.TSK;1
Physical blocks N 338 -> 14:[BASIC]BASTSK.TSK;1 !! bad block !!
Physical blocks N 339 -> 14:[BASIC]BASTSK.TSK;1
Physical blocks N 340-368 -> 15:[BASIC]PROBASIC.ERR;1
Physical blocks N 369 -> 16:[BASIC]BASIC.INS;1
Physical blocks N 370-799

Теперь проверки-разборки изменений для других ФС
Потом проверки-разборки с потерянными файлами в ODS-1

Hunta
10.07.2024, 14:32
Развлекаюсь с обработкой "потерянных" (те, которые есть в индексе, но нет ни в одном каталоге и помеченных на удаление) файолов. Пока первый вариант - есть в индексе, нет в каталогах.

Казалось, не сильно сложный процесс, для RT-11 и DOS-11 уже сделал, но.. вылезли НЮАНСЫ :) Воюю с ними :)

Hunta
11.07.2024, 00:37
Как ни странно, на тестировании работы с потерянными файлами - выловил косяк для файлов большОго, если быть точнее - бОльшего 65535 блоков размера.

По началу вообще не мог понять - ОДИН и ровно ОДИН блок показывался, как принадлежащий двум файлам. Ну, такое бывает, когда том с повреждениями, только вот, по идее, этот том не должен был иметь повреждений :) Да и прикол в том, что он показывался, что принадлежит ДВАЖДЫ ОДНОМУ и ТОМУ ЖЕ файлу :) В общем - долгое гоняние под отладчиком с постепенным сужением подозрительного куска кода, пока наконец все не сошлось в методе, который по виртуальному номера блока (файла) не вычисляет логической номер блока (тома). И оказало, что переменная цикла (счётчик сегментов файла) была описана как байтовая - да, в принципе если файл не слишком большой или не слишком сегментированный, то норм, но для этого файла байта как счётчика просто не хватало, байт после значения 255 уходил в ноль и цикл начинал смотреть сегоменты опять с нулевого :) В общем, с ходу по внешним признакам понять - где накосячил... Не получилось :) Пришлось долго исследовать программу под микроскопом :)

vva
11.07.2024, 09:06
байт после значения 255 уходил в ноль
Известная ошибка, многие "нарывались". В Канаде куча людей получила большую дозу радиации (программеры использовали байтовый счетчик без тормозов для управления диафрагмой аппарата лучевой терапии).

Hunta
11.07.2024, 11:19
Известная ошибка, многие "нарывались".
В данном случае - это мой недосмотр. Метод, для которого используется этот байтовый счётчик, принимает на вход 16-ти битное слово, то есть при его написании я этот момент учёл, а вот в цикле.. Прохлопал :) Думаю включить проверку переполнения и протестировать в таком варианте программу - посмотрим, где ещё вылезет :) Но это точно в выходные, в оставшиеся два дня особо времени нет..

- - - Добавлено - - -

В целом же, после фикса этой ошибки ушло так же некоторое количество ошибок на образах - типа - что-то там не так с ФС :) Но поскольку на внешний взгляд файлы выглядили более менее..

Хотя то, что я получил некоторое количество ошибок на ISO образ с ФС RSX, взятый с bitsaver - должно было насторожить :) Но.. Решил, что криво образ сделали :) Но, в конце концов, собственно на нём я и воевал с этой ошибкой. И всё в порядке с ним :)

На нём лежит некоторая кучка .dsk файлов - их я тоже включил в автоматическое тестирование - надо будет посмотреть - что там программа про них в лог накарябала :)

- - - Добавлено - - -

В тестировании сейчас участвует 61 образ общим размером 1.3 Гб, в которых находится 2497 каталогов и 236766 файлов, общим размером 2,26 GB (для RSX файлы могут сохраняться в нескольких вариантах, поэтому увеличение).
Время тестирования - примерно 21 минута :)

Hunta
11.07.2024, 20:34
Всё таки не выдержал и врубил проверку арифметических переполнения и ... э.. underflow :)
Три ошибки уже поправил - две - подсчёт КС (ок) и проверку 31 бита (сдвиг, тоже ок)

- - - Добавлено - - -

И ещё одна КС и сдвиговые операции

Hunta
12.07.2024, 14:43
Занимательный образ k.rar (https://zx-pk.ru/threads/21450-vsjo-po-pvk-elektronika-ms-0585-mneniya-foto-voprosy.html?p=1201104&viewfull=1#post1201104) :)
Есть блок заголовка (и не один), который, с одной стороны, используется и (вроде как) имеет правильную КС, а с другой - одна из дат файла (дата последнего изменения) в нём неправильная :)
Похоже, придётся в описание правил преобразования из сырых данных в объекты .NET добавить для полей что-то типа флажка "Допустимы ошибки преобразования" :) Некоторая проблема в том, что - добавить легко, обрабатывать флаг тоже легко, а вот как сохранить информацию о том, что была ошибка.. Надо подумать :)

- - - Добавлено - - -

Первая часть реализована. Надо сохранением информации - думаю..

Hunta
13.07.2024, 17:11
Первый вариант сохранения информации о проблемах при преобразовании сырых данных в заголовок сделан. Дальше посмотрю - нужно ли будет сохранять (и какую) доп информацию.

Добавил некоторое количество эвристик по решению - насколько (потенциальный) заголовок повреждён и стоит ли его (потом) как-то обрабатывать - на предмет восстановления данных

Hunta
14.07.2024, 23:17
Среди образов, которые использовал для тестирования - образов с потерянными (нет ни в одном каталоге, заголовок правильный, файл не помечен на удаление) файлами нет. Надо будет сделать парочку образов для тестирования.

Следующие шаги - образы лент в формате BRU, а также - ODS-2 :) Вроде есть и ленты в формета BRU, снятые с ODS-2.

Буду по мере возможности писать код.

Hunta
16.07.2024, 00:47
Пофиксил ещё четыре ошибки. Две в ODS (точнее говоря - одну я исправил в процессе рефакторинга, сам того не зная, но посадил другую) и две в RT-11 (опять спасибо включению проверки переполнения) - при преобразовании даты и выход в определённых сценариях при ошибках в ФС за границу образа.

Hunta
17.07.2024, 00:48
По результатам последних доработок некоторые внутренние перетряски (изменение названий разного, влияние на функционал не оказывают)

И добавил заготовки под BRU и ODS-2. Пока практически пустые - некоторые наработки я начал (давно) делать, но там всё недоделанное и непроверенное. Скорей - по мотивам ODS-1 и поддержки лент что-то было добавлено и.. заброшено до сегодняшнего дня :)

Hunta
17.07.2024, 23:07
Реализовал давно зревшую в голове мысль - теперь указание ФС - это не ключ, а аргумент, как и указание устройства.
Было

ImageUtils -rt11 -unpack file.dsk catalog rx50

Стало

ImageUtils -unpack file.dsk catalog rx50 rt11

или можно

ImageUtils -unpack file.dsk catalog rt11 rx50

Из плюсов
- теперь добавление новой ФС не требует доработки парсера командной строки
- порядок - устройств ФС или ФС устройства - роли не играет, главное, что бы были указаны верно
- построение командой строки теперь более одинаково для команд -pack, -unpack и -from -to

Из минусов
- Командные файлы надо переделывать :)

- - - Добавлено - - -

В целом - это с прицелом на BRU и ODS-2 :)

Hunta
19.07.2024, 13:14
Выловил ещё одну ошибку, связанную с переполнением. Ох не зря DEC для RT-11 сделала максимальный размер тома 65535 блоков, а не 65536 (32 Mб) - вот тут у меня переполнение и вылезло :)

Вроде с включением в общий механизм ФС BRU и ODS-2 сделал всё, теперь, собственно, реализовать надо. Начну, скорее всего с BRU для лент :) Так как когда давно делал извлечение файлов с лент BRU. На СМ-2П. На Фортране :)

Hunta
19.07.2024, 20:46
Развлекаясь и тестируя разное.. Пришло в голову, что конвертирование образов с одного устройства в другое можно малость упростить. Сделать указание размера (если выходное устройство переменного размера) необязательным. Не указали - берём размер входного образа и вуаля :)

Было

ImageUtilsX -from ifile rx01 -to ofile rx01n (типа - хочу снять интерлейсинг)
или
ImageUtilsX -size 1M -from ifile rx01 -to ofile disk (по смыслу тоже, но для выходного размер указан)

Стало

ImageUtilsX -from ifile rx01 -to ofile disk

Но, конечно, никто не запрещает указания размера :)

Hunta
20.07.2024, 10:48
Поскольку подготовительные работы по добавке новой ФС (BRU+ODS1+ лента или диск) практически закончены, начал было вчера потихоньку писать код и в процессе приходит мне в голову мысль..

Мало того, что в образе (и диска и ленты) может быть несколько бэкапов BRU, а на ленте, технически, ещё и в перемежку идти не только данные от разные программ (на вскидку - ROLLIN, PRE, BRU и вроде как DSC), но ещё и просто файлы.

Скажем, лента BRU - это лента в формате ANSI (не помню, как он правильно у буржуинов называется, в нашем случае - это вроде ГОСТ 25752-83), так что там могут быть и простые файлы.

На диске с бэкап-сетами BRU создается файловая система ODS-1 (ака RSX) с единственным файлом BACKUP.SYS, который, насколько я знаю, иммитирует ленту.

Ну и так же есть диски MSCP, которые RT-11 умеет "бить на разделы", а так же мои CF, на которых могут быть одновременно и разделы с ФС RT и разделы с ODS-1.

А что бы окончательно добить.. Бэкап-сеты BRU (и возможно ROLLIN, PRE и DSC - тут не скажу, надо копаться в исходниках и доках) могут многотомными - то есть несколько лент или дисков (вон, для отладки ImageUtils валяется многодисковый бэкапсет MicroRSX образов RX50)

Вобщем, покрутив всё это безобразие в голове, пришёл к выводу, что в ImageUtils надо сначала добавить понятие Контейнер. Который сначала будет биться на отдельные образы в нём, а потом уже с образом будет разборка - какая ФС и что с ней хотят делать. Ну и плюс возможность - контейнер разобрать на отдельные образы и сохранить их в файлы. Или наоборот - из файлов собрать контейнер. Что то похожее я начал делать в программе CFMaint, но не все задумки закончил. Теперь, похоже, всё это плавное перейдёт в ImageUtils :)

И ещё бы придумать, как всё это богачество запихать в командную строку.. Пока приходит в голову только что-то типа командного файла..

Думаю дальше...

- - - Добавлено - - -

А ещё вспомнилось, что есть у меня SD-шки от PDP-11X - тоже контейнеры, только уже устройств (пока RK05 и RL02, но там ещё и RP были у автора)

А потом пришло в голову, что на CF могут быть и XXDP/DOS-11 разделы (стоит только написать драйвер CF для этих систем)...

А ещё есть RSTS.. А ещё есть другие ОС и не только от DEC.. Но этот момент пока сильно-глубоко в стороне.. Мне бы поддержку вышеописанного нарисовать :)

А так же опять всплывает момент с автоопределением ФС.. Но это тоже пока в сторону - пока только ручное указание ФС

Hunta
21.07.2024, 11:14
Шерстю список (и описание) устройств с прицелом на проверки характеристик (типа размера блока и количества блоков), более полное описание (не только имя устройства но и имя контроллера), выявление тех, кто может быть контейнерами.

Попутно некоторые устройства (с интерлейсом) лишаются своих безинтерлейсных двойников, так как двойники создавались для возможности конвертирования интерлейс->без интерлейса без задания размера для выходного образа, но теперь, с упрощением команды конвертирования, это стало не нежным :)

Ну и как обычно перед серьёзным расширением функционала - был проведён рефакторинг :)

Hunta
21.07.2024, 14:10
Обнаружились неожиданные контейнеры-кандидаты - диски от ОС ОСА от МС-0515, точнее говоря, образы, снятые с обеих сторон :)

Hunta
22.07.2024, 09:34
Проверку и добавление описаний устройств вроде закончил, если только что-то новое после чтения документации всплывёт..
Начинаю эксперименты и доработку под контейнеры, подопытный кролик - DU :)

Hunta
23.07.2024, 13:12
Новостей пока нет - продолжаются рефакторинг, доработки и эксперименты под контейнерными образы.

И думаю над тем, как передавать информацию из командной строки о ФС конкретных частей в контейнере. Пока только вариант - если работа с одной частью контейнера - можно из кс, а если со многими - через файл-описание, но возникает вопрос - как указать, что контейнер и как называется файл описание. Пока склоняюсь в пользу передачи как аргумента ключа с неким именем по умолчанию - примерно сделано для логов с ошибками чтения образа. Но есть некоторая проблема - контейер может быть как на входе, так и на выходе.. Вобщем - думаю..

Hunta
23.07.2024, 15:35
Ещё из мыслей вслух.

ImageUtils была основана на переписанном с С коде TU58fs. И даже сейчас осталось прилично кода, напрямую переписанного оттуда. Как и много идей. Пусть и ImageUtils лишилась функционала - эмуляции TU58 - оттуда.

И одна из особенностей и TU58Em и ImageUtils - образ ЦЕЛИКОМ читается в память. Плюсы - быстрота работы, минусы - если образ большой - то и памяти понадобиться больше :) В принципе, я уже столкнулся с большии образами - самый большой на текущий момент - RSX-11_Freeware_Disk_2.iso - 635 Mб.

Но с образами-контейнерами, я думаю, может всплыть сценарий, когда образ не получится целиком прочитать в память - если образ будет больше 2 Гб. Так как максимальный размер массива в .NET (ну или по крайне мере в C#) - 2 Гб - 1 элемент. И технически такие образы у меня есть - с CF карт :) Тоже есть над чем подумать :)

Hunta
25.07.2024, 23:10
В процессе размышления над реализацией разделов (или секций) образов и то, как работать с ними из командной строки (кстати, мысли есть и в процессе тестовой реализации) вспомнилась одна очень удобная возможность из RSX (что-то похожее есть и в RT-11) - косвенные командные файлы. Итак, встречаем:


>type stest.cmd

ImageUtilsX @icf

>type icf.cmd

-unpack Src\11SKIT1_try1.tap 1\@11SKIT1_try1.tap dos11 tape
-from 1\@11SKIT1_try1.tap Path WinFS -to 1\11SKIT1_try1.Pack.tap tape dos11

>stest.cmd

ImageUtilsX @icf

[2024-Jul-26 00:01:55 info ] 'Src\11SKIT1_try1.tap' proceeding...
[2024-Jul-26 00:01:58 info ] '1\@11SKIT1_try1.tap' proceeding...
[2024-Jul-26 00:01:58 info ] initialize empty WinFS file system on "1\@11SKIT1_try1.tap"
[2024-Jul-26 00:01:58 info ] Converting...
[2024-Jul-26 00:01:58] Files from "Src\11SKIT1_try1.tap" written to "1\@11SKIT1_try1.tap".
[2024-Jul-26 00:01:58] 00:00:03.1703666
[2024-Jul-26 00:01:58 info ] '1\@11SKIT1_try1.tap' proceeding...
[2024-Jul-26 00:01:58 info ] '1\11SKIT1_try1.Pack.tap' proceeding...
[2024-Jul-26 00:01:58 info ] initialize empty DOS11 file system on "1\11SKIT1_try1.Pack.tap"
[2024-Jul-26 00:01:58 info ] Converting...
[2024-Jul-26 00:02:00] Files from "1\@11SKIT1_try1.tap" written to "1\11SKIT1_try1.Pack.tap".
[2024-Jul-26 00:02:00] 00:00:02.1844931

>dir 1

Volume in drive ... is .....
Volume Serial Number is .....

Directory of ...\1

26.07.2024 00:02 <DIR> .
26.07.2024 00:02 <DIR> ..
26.07.2024 00:02 1 987 852 11SKIT1_try1.Pack.tap
26.07.2024 00:02 14 434 11SKIT1_try1.Pack.tap.FromFsToFs.MyLog.txt
26.07.2024 00:01 <DIR> @11SKIT1_try1.tap
2 File(s) 2 002 286 bytes
3 Dir(s) 159 370 285 056 bytes free


Вывод результата выполнения команд сдвинут вправо на два символа (что бы заметнее были команды в окне командной строки), результат вывода лога ImageUtils сдвинут на 4 символа вправо по той же причине.

В общем, в реализации не сильно много кода, наваял и отладил где-то за час :) В основном - время занял парсинг строк из ККФ по аналогии с Windows.

Так же была реализована (но ещё не оттестирована) и идея строк с продолжением - то есть если в конце строки определённый символ (в RSX, ЕМНИП - тире, для ImageUtils решил использовать &) - то следующая строка считается продолжением данной - и так пока в очередной строке в конце спец символа нет (или файл закончился) - тогда начинаем обрабатывать команду. Так что можно будет делать ОЧЕНЬ длинные команды, при этом не ухудшая читаемость :)

Hunta
27.07.2024, 12:12
Добавил возможность из одного ККФ вызывать другой ККФ (есть проверка на зациклинность) и устроил комплексное тестирование.

Из неожиданностей - несколько ускорилась работа командного файле комплексного тестирования. Последний вариант работал около получаса, с добавлением ККФ - порядка 15 минут. Технически вроде понятно - ImageUtils вызывается не на каждой команде заново, но все равно - такого не ожидал :) Надо будет восстановить исходный вариант (без ККФ) и сравнить более точно.

Из ожиданностей - пара или тройка.. ну даже не сказать - ошибок, а скорей небрежностей при переносе с C на C# и неучёта того, что парсинг команды начинается не совсем с нуля. Поправил, пока всё ОК

Подведение итогов

Теперь ImageUtils понимает файл с командами (ККФ), команда в ККФ может состоять из нескольких строк (в конце стоит &), один ККФ может ссылаться на другой ККФ.

Появились мысли с добавлением одной или двух команд с прицелом на ККФ, но.. срочной необходимости в них нет - поэтому - потом :)

- - - Добавлено - - -

Со временем выполнения теста ошибся, там помимо ImageUtils работают ещё команды, в частности - сравнение файлов, так что не 15 минут, а 21, но тоже быстрее :)

Hunta
28.07.2024, 23:13
Начал доработку кода именно уже под возможность использовать разделы. С хорошей вероятностью сделано всё до уровня работы с файлами. Но поскольку выделенного уровня нет (спасибо исходной TU58fs).. И поскольку есть ещё интерлейс.. С этим придётся повозиться. В том числе - проверить - не осталось где-то ещё зависимостей от варианта - работаем со всем образом, а не с частью.

Плюсом - рефакторинг, разборки с вариантами дисков с выделенной зоной замены плохих блоков (кодовое назавание - last track devices) - вроде теперь всё сделано правильно, а не вариант - ура, работает, и пофиксил ошибку в выводе подробной информации о ФС - в части информации о физических блоках (если есть отличие от логических блоков).

Из минусов - выходные закончились - времени будет меньше...

Hunta
29.07.2024, 14:37
Пошерстил слегка общение с ФС.. Подправил код чтения из файла и записи в файл и...
Концепт для образов дисков в первом приближении


>dir 1

Directory of 1

29.07.2024 15:33 <DIR> .
29.07.2024 15:34 <DIR> ..
29.07.2024 14:31 <DIR> @m013-0.dsk
29.07.2024 14:46 <DIR> @m013-1.dsk
0 File(s) 0 bytes
4 Dir(s) 159 373 152 256 bytes free

>ImageUtilsX -pack 1\@m013-0.dsk 1\m013.Test.dsk schema:du p:0 rt11

>ImageUtilsX -pack 1\@m013-1.dsk 1\m013.Test.dsk s:du partition:1 rt11

>ImageUtilsX -dir 1\m013.Test.dsk s:du p:0 rt11

>ImageUtilsX -dir 1\m013.Test.dsk s:du p:1 rt11

>dir 1

Directory of 1

29.07.2024 15:34 <DIR> .
29.07.2024 15:34 <DIR> ..
29.07.2024 14:31 <DIR> @m013-0.dsk
29.07.2024 14:46 <DIR> @m013-1.dsk
29.07.2024 15:34 67 108 864 m013.Test.dsk
29.07.2024 15:34 390 m013.Test.dsk.du.p0.Dir.MyLog.txt
29.07.2024 15:34 312 m013.Test.dsk.du.p0.Pack.MyLog.txt
29.07.2024 15:34 608 m013.Test.dsk.du.p1.Dir.MyLog.txt
29.07.2024 15:34 538 m013.Test.dsk.du.p1.Pack.MyLog.txt
5 File(s) 67 110 712 bytes
4 Dir(s) 159 306 035 200 bytes free

>type 1\m013.Test.dsk.du.p0.Dir.MyLog.txt

FDF331.DOC 302 27-OCT-1989 FDF333.DOC 118 27-OCT-1989
FILE .BAD 1 09-FEB-1990 EMPTY.FIL 65088 D
4 files, 421 blocks
65088 Free blocks


>type 1\m013.Test.dsk.du.p1.Dir.MyLog.txt

DDP278.LDA 38 13-FEB-1974 DDU278.LDA 39 13-FEB-1974
LDP278.LDA 35 13-FEB-1974 LDU278.LDA 35 13-FEB-1974
NDP278.LDA 37 13-FEB-1974 NDU278.LDA 37 13-FEB-1974
EMPTY.FIL 65246 D
7 files, 221 blocks
65246 Free blocks

Дальше - игры с получившимся результатом на предмет правильности, удобство в использовании и неучтённых нюансов.. :)

Hunta
04.08.2024, 14:18
На неделе был прилично занят, так в основном мелкие косметические изменения. Вчера и сегодня удалось прилично посидеть.

Из изменений

Рефакторинг парсинга командной строки, но для удобства работы с ним, а не что-то внешнее. Хотя нет - внешнее тоже есть - более читабельный вывод результата встроенного генератора текста для команды -help.

Первой под работу сразу с несколькими (точнее говоря - пока вариант - ВСЕ разделы) разделами попала команда -dir:



>dir
Directory of .

04.08.2024 15:04 <DIR> .
04.08.2024 00:49 <DIR> ..
04.08.2024 15:04 136 c.cmd
03.08.2024 20:09 67 108 864 m013.Test.dsk
2 File(s) 67 109 000 bytes
2 Dir(s) 159 236 890 624 bytes free

>ImageUtilsX -dir m013.Test.dsk s:du part:all rt11

>type m013.Test.dsk.Dir.MyLog.txt

Partition '0'

FDF331.DOC 302 27-OCT-1989 FDF333.DOC 118 27-OCT-1989
FILE .BAD 1 09-FEB-1990 EMPTY.FIL 65088 D
4 files, 421 blocks
65088 Free blocks

Partition '1'

A .MAC 1 11-DEC-1972 BADB .SYS 1 11-DEC-1972
CILUS .LDA 39 11-DEC-1972 CL0 .SYS 1 11-DEC-1972
CL1 .SYS 1 11-DEC-1972 CL2 .SYS 1 11-DEC-1972
CL3 .SYS 1 11-DEC-1972 CL4 .SYS 1 11-DEC-1972
CL5 .SYS 1 11-DEC-1972 CL6 .SYS 1 11-DEC-1972
CL7 .SYS 1 11-DEC-1972 CREF .LDA 10 11-DEC-1972
DTBLD .BAT 7 11-DEC-1972 EDIT .LDA 13 11-DEC-1972
FILCOM.LDA 14 11-DEC-1972 FILDMP.LDA 7 11-DEC-1972
LDUMP .LDA 29 11-DEC-1972 LIBR .LDA 9 11-DEC-1972
LINK .LDA 57 11-DEC-1972 MACRO .LDA 39 11-DEC-1972
MONLIB.CIL 175 11-DEC-1972 ODT .OBJ 10 11-DEC-1972
PIP .LDA 35 11-DEC-1972 PIP .LIB 120 11-DEC-1972
SYSMAC.SML 26 11-DEC-1972 TEST .TXT 1 11-DEC-1972
VERIFY.LDA 68 11-DEC-1972 EMPTY.FIL 64798 D
28 files, 669 blocks
64798 Free blocks


По результатам доработки-эксперимента (помимо того, что теперь -dir умеет) - некоторый рефакторинг работы с разделами.

Плюс - идея - новый вариант передачи информации о разделах, которые попадают под работу. То есть на текущий момент команда -dir умеет - или один конкретный раздел или все. А будет уметь - не один, но и не все :) В том числе в варианте - разные разделы с разной ФС.

Но пока дальше, как обычно - комплексное тестирование. И только после его успешного выполнения - дальнейшие доработки

Hunta
05.08.2024, 17:44
Текущий вариант для указания разделов


-dir 1\SectionsTest.dsk sectionschema[du]:0:2 rt11
-dir 1\SectionsTest.dsk s[du]:0:2[rt11] rt11

Работы продолжаются :)

Hunta
10.08.2024, 14:20
На неделе - в основном размышления, пробы и некоторые доработки. Сегодня до какой-то степени сведено в единую концепцию (не факт, что окончательную) и её (с доработками кода) результат:


>dir 1

Directory of K:\Repo\ForDebug\ImageUtils\!Test\1

04.08.2024 15:28 100 663 296 SectionsTest.dsk

>ImageUtilsX -unpack 1\SectionsTest.dsk 1\@SectionsTest.dsk s[du]:0:2 rt11

>dir 1

Directory of K:\Repo\ForDebug\ImageUtils\!Test\1

10.08.2024 15:09 <DIR> @SectionsTest.dsk
04.08.2024 15:28 100 663 296 SectionsTest.dsk
10.08.2024 15:08 1 198 SectionsTest.dsk.du.s000.UnPack.MyLog.txt
10.08.2024 15:09 534 SectionsTest.dsk.du.s002.UnPack.MyLog.txt

>dir 1\@SectionsTest.dsk

Directory of K:\Repo\ForDebug\ImageUtils\!Test\1\@SectionsTest. dsk

10.08.2024 15:09 <DIR> S000
10.08.2024 15:09 <DIR> S002

>dir 1\@SectionsTest.dsk\S000

Directory of K:\Repo\ForDebug\ImageUtils\!Test\1\@SectionsTest. dsk\S000

10.08.2024 15:09 <DIR> LOSTAndFound@
10.08.2024 15:09 <DIR> metaFiles@
05.11.1998 00:00 512 BADB.SYS
05.11.1998 00:00 16 896 CILUS.LDA
05.11.1998 00:00 4 608 CREF.LDA
05.11.1998 00:00 6 656 EDIT.LDA
05.11.1998 00:00 6 144 FILCOM.LDA
05.11.1998 00:00 4 608 FILDMP.LDA
06.11.1998 00:00 1 536 FOO.BAR
05.11.1998 00:00 5 120 LIBR.LDA
05.11.1998 00:00 34 304 LINK.LDA
05.11.1998 00:00 19 968 MACRO.LDA
05.11.1998 00:00 92 160 MONLIB.CIL
05.11.1998 00:00 2 560 OVRLAY.LIB
05.11.1998 00:00 18 432 PIP.LDA
05.11.1998 00:00 33 280 VERIFY.LDA

>dir 1\@SectionsTest.dsk\S002

Directory of K:\Repo\ForDebug\ImageUtils\!Test\1\@SectionsTest. dsk\S002

10.08.2024 15:09 <DIR> LOSTAndFound@
10.08.2024 15:09 <DIR> metaFiles@
12.06.1972 23:00 41 984 CREF.04A
12.06.1972 23:00 512 DOSV4.PAL
12.06.1972 23:00 144 896 MACRO.04A
12.06.1972 23:00 9 216 PST.04A
12.06.1972 23:00 7 680 SYSMAC.SML


Возможен так же вариант s[du]:all - под работу попадут все секции в дисковом образе
И на текущий момент (вроде бы) работоспособны только команды -dir и -unpack. И до какой-то степени комбинация -from -to - если -to ссылается на ФС Windows

Теперь оценка изменений и более детальное тестирование -unpack, а так же вариант, когда секция из образа будет распаковываться в файл образа секции - то есть образ с секциями можно будет разобрать не только на файлы из секций, но и на секции целиком

А затем -pack :)

- - - Добавлено - - -

Вдогонку - пока существует только один вариант разбиения образа на секции - как это сделано для дисков MSCP (ака DU) в RT-11, но модель расширяемая - это позволит добавить мои секционированные CF (два варианта), а также образы SD от PDP-2011 - в вариантах RK, RL и, в принципе - RH - но для него надо посмотреть - какие варианты возможны.

Hunta
10.08.2024, 21:40
Более-менее.. :)


>dir 1

Directory of ...\1

10.08.2024 22:32 <DIR> Dosv10-01A-RK.dsk
10.08.2024 22:32 <DIR> @gs0002.dta
10.08.2024 22:32 <DIR> @m013.dsk

>type SectionsTest.cmd

-pack "1 Dosv10-01A-RK.dsk\[1,1]" 1\SectionsTest.dsk s[du]:0 rt11
-pack 1\@m013.dsk 1\SectionsTest.dsk s[du]:1 rt11
-pack "1\@gs0002.dta\[1,1]" 1\SectionsTest.dsk s[du]:2 rt11
-unpack 1\SectionsTest.dsk 1\@SectionsTest.dsk s[du]:0[]:2 rt11
-dir 1\SectionsTest.dsk s[du]:1[rt11] rt11
-dir 1\SectionsTest.dsk section[du]:0:2[rt11] rt11

>ImageUtilsX @SectionsTest.cmd

K:\Repo\ForDebug\ImageUtils\!Test>dir 1

Directory of ...\1

10.08.2024 22:32 <DIR> Dosv10-01A-RK.dsk
10.08.2024 22:32 <DIR> @gs0002.dta
10.08.2024 22:32 <DIR> @m013.dsk
10.08.2024 22:37 <DIR> @SectionsTest.dsk
10.08.2024 22:37 100 663 296 SectionsTest.dsk
10.08.2024 22:37 1 794 SectionsTest.dsk.Dir.MyLog.txt
10.08.2024 22:37 1 128 SectionsTest.dsk.du.s000.Pack.MyLog.txt
10.08.2024 22:37 386 SectionsTest.dsk.du.s001.Dir.MyLog.txt
10.08.2024 22:37 308 SectionsTest.dsk.du.s001.Pack.MyLog.txt
10.08.2024 22:37 456 SectionsTest.dsk.du.s002.Pack.MyLog.txt
10.08.2024 22:37 534 SectionsTest.dsk.du.s002.UnPack.MyLog.txt

>dir 1\@SectionsTest.dsk

Directory of ...\1\@SectionsTest.dsk

10.08.2024 22:37 33 554 432 S000.section
10.08.2024 22:37 <DIR> S002

Hunta
11.08.2024, 13:14
По результатм тестирования - исправление неточностей, ошибок, рефакторинг.

-unpack вроде ок (если только с дальнейшей доработкой что-то не вылезет)

Теперь -pack

Hunta
11.08.2024, 20:11
-pack, первый подход к снаряду



>dir 1

Directory of ...\1

>type icf.cmd
-unpack Src\DOSv10-01A-RK.dsk 1 Dosv10-01A-RK.dsk rk035 dos11
-unpack Src\gs0002.dta 1\@gs0002.dta tu56 dos
-unpack Src\m013.dsk 1\@m013.dsk rx01 rt
-unpack Src\maindec-11-dzzgc-c-yb.img 1\@maindec-11-dzzgc-c-yb.img RX01 xx

-pack "1 Dosv10-01A-RK.dsk\[1,1]" 1\SectionsTest.dsk s[du]:0 rt11
-pack 1\@m013.dsk 1\SectionsTest.dsk s[du]:1 rt11
-pack "1\@gs0002.dta\[1,1]" 1\SectionsTest.dsk s[du]:2 rt11
-unpack 1\SectionsTest.dsk 1\@SectionsTest1.dsk s[du]:0[]:1[]:2[rt11]
-unpack 1\SectionsTest.dsk 1\@SectionsTest2.dsk s[du]:0[]:1[rt11]:2[rt11]
-unpack 1\SectionsTest.dsk 1\@SectionsTestAll.dsk s[du]:all[]
-dir 1\SectionsTest.dsk rt11
-dir 1\SectionsTest.dsk s[du]:0[rt11] rt11
-dir 1\SectionsTest.dsk s[du]:1[rt11] rt11
-dir 1\SectionsTest.dsk section[du]:0:2[rt11] rt11

-pack 1\@SectionsTest1.dsk 1\SectionsPackTest1.dsk s[du]:0[]:1[]:2[rt11]
-pack 1\@SectionsTest2.dsk 1\SectionsPackTest2.dsk s[du]:0[]:1[rt11]:2[rt11]

>ImageUtilsX @icf

>dir 1

11.08.2024 21:05 <DIR> Dosv10-01A-RK.dsk
11.08.2024 21:05 <DIR> @gs0002.dta
11.08.2024 21:05 <DIR> @m013.dsk
11.08.2024 21:05 <DIR> @maindec-11-dzzgc-c-yb.img
11.08.2024 21:05 <DIR> @SectionsTest1.dsk
11.08.2024 21:05 <DIR> @SectionsTest2.dsk
11.08.2024 21:05 <DIR> @SectionsTestAll.dsk
11.08.2024 21:05 100 663 296 SectionsPackTest1.dsk
11.08.2024 21:05 456 SectionsPackTest1.dsk.du.s002.Pack.MyLog.txt
11.08.2024 21:05 100 663 296 SectionsPackTest2.dsk
11.08.2024 21:05 308 SectionsPackTest2.dsk.du.s001.Pack.MyLog.txt
11.08.2024 21:05 456 SectionsPackTest2.dsk.du.s002.Pack.MyLog.txt
11.08.2024 21:05 100 663 296 SectionsTest.dsk
11.08.2024 21:05 1 198 SectionsTest.dsk.Dir.MyLog.txt
11.08.2024 21:05 1 128 SectionsTest.dsk.du.s000.Pack.MyLog.txt
11.08.2024 21:05 1 794 SectionsTest.dsk.du.s000.s002.Dir.MyLog.txt
11.08.2024 21:05 420 SectionsTest.dsk.du.s001.Dir.MyLog.txt
11.08.2024 21:05 308 SectionsTest.dsk.du.s001.Pack.MyLog.txt
11.08.2024 21:05 386 SectionsTest.dsk.du.s001.UnPack.MyLog.txt
11.08.2024 21:05 456 SectionsTest.dsk.du.s002.Pack.MyLog.txt
11.08.2024 21:05 534 SectionsTest.dsk.du.s002.UnPack.MyLog.txt

>fc 1\SectionsTest.dsk 1\SectionsPackTest1.dsk /b
Comparing files 1\SectionsTest.dsk and 1\SECTIONSPACKTEST1.DSK
FC: no differences encountered


>fc 1\SectionsTest.dsk 1\SectionsPackTest2.dsk /b
Comparing files 1\SectionsTest.dsk and 1\SECTIONSPACKTEST2.DSK
FC: no differences encountered


Из замечанного - если одной командой пакуются несколько сегментов с ФС - будет несколько логов, хотя по логике - должен быть. Наадо будет поправить.

Теперь включу новые тесты в общую цепочку и прогоню все

Hunta
12.08.2024, 09:12
Поскольку существенные доделки и поскольку опять рабочая неделя - на неделе скорее всего оценка ущерба :) и рефакторинг

Hunta
13.08.2024, 09:34
Как обычно - реализовав что-то, поигравшись и посмотрев на реализацию - понял, что все на самом деле проще, чем казалось :)

Несколько переработал код (тестирую), что, как ни странно, позволило сделать пару шагов к реализации поддержки секций в паре -from -to :)

Hunta
13.08.2024, 18:58
После исправления ошибок и неучтённостей последних переделок - оказалось - это не два шага было :)
Заработали сразу:


-from "1\@DOSv10-01A-RK.dsk\[1,1]" Path WinFS -to 1\SectionsTest0.dsk s[du]:0 rt11
-from 1\@gs0002.dta Path WinFS -to 1\SectionsTest1.dsk s[du]:1 rt11

То есть - надо напридумывать тестов - и вперёд :)

Hunta
15.08.2024, 09:33
Исправил пару ошибок, доработал вывод лога в сценарии работы с несколькими секциями в одной команде (теперь будет один файл, а не несколько), тестирую дальше...

Hunta
17.08.2024, 14:18
В какой-то момент для упрощения командной строки добавил вывод лога операции автоматом в файл. Имя файла лога формируется или по имени выходного файла (если там не каталог Windows) или по имени входного файла (если выходной файл - на самом деле каталог Windows). Всё работало достаточно логично для батников или @-файлов и файлы логов не затирались, если только в командном файле не было одинаковых выходных или входных файлов. Но это как бы уже на совести автора командного файла :)

Всё изменилось с приходом секций :) Теперь имя файла лога может быть одно и тоже для технически разных команд - разные секции :) Поэтому (помимо фиксов ошибок и не учтённых сценариев с секциями) много времени пришлось потратить на вопрос затирания файлов логов. К сожалению - полностью исключить это не удалось (хоть и количество сценриаев сведено к минимуму) поэтому а) файл лога, если он есть, не затирается, а новая информация пишется в конец и б) что бы понять - от какой команды часть лога - перед информацией пишется команда, которая привела к записи последующей инфы.

Возможно, что придумаю варианты формирования лога, которые будут уменьшать вероятность совпадения имени лога, но пока (а может быть и всегда) - так :)

Ну и в планах - сделать возможным ручное указание имени лога для операции. Но это - не в первоочередных планах - пока - секции и ленты BRU :)

Hunta
17.08.2024, 21:05
Вроде текушую концепцию секций добил, теперь попробую добавить ещё один вариант секций (из мира CF) и посмотреть - что вылезет :)

Hunta
19.08.2024, 00:02
Некоторое время повозился с переносом своей (недоделанной) утилиты CFMaint в общую кодовую базу. Некоторые вещи из неё перенесу в ImageUtils, а так же - есть некоторые задумки по развитию CFMaint (но это потом).

Попробовал добавить схемы секций из того, старого подхода.

Выводы.

- Вариант работы со схемами - вполне себе рабочий - доработок потребовалось мало (по сути - только добавить новые варианты вычисления смещения до и размера секции)

- Нужна возможность задавать диапазон секций, что то типа 2..10. Не уверен, что пройдёт вариант 2-10, но надо попробовать - этот вариант более приемлем при формировании имен логов :)

Ну и - в работу пошли образы размером больше 2 Гб, пока, правда, сами секции - меньше, так что пока проблем нет :)

- - - Добавлено - - -

Одна из причин, пришедших в голову - почему желательна возможность указать диапазон :)


>dir

Directory of ...

22.04.2020 22:33 4 017 807 360 001 RT под 1801ВМ3.dsk
18.08.2024 22:59 185 c.cmd
18.08.2024 22:59 0 log.txt

>type c.cmd
dir
type c.cmd
ImageUtilsX -unpack "001 RT под 1801ВМ3.dsk" "@001 RT под 1801ВМ3.dsk" s[cf11]:all[]
dir
dir "@001 RT под 1801ВМ3.dsk"

>ImageUtilsX -unpack "001 RT под 1801ВМ3.dsk" "@001 RT под 1801ВМ3.dsk" s[cf11]:all[]

>dir

Directory of ...

18.08.2024 23:00 15 046 !Log.txt
22.04.2020 22:33 4 017 807 360 001 RT под 1801ВМ3.dsk
18.08.2024 23:00 2 460 001 RT под 1801ВМ3.dsk.cf11.s000.s001.s002.s003.s004.s005.s 006.s007.s008.s009.s010.s011.s012.s013.s014.s015.s 016.s017.s018.s019.s020.s021.s022.s023.s024.s025.s 026.s027.s028.s029.s030.s031.s032.s033.s034.UnPack .MyLog.txt
18.08.2024 22:59 <DIR> @001 RT под 1801ВМ3.dsk
18.08.2024 22:59 185 c.cmd
18.08.2024 22:59 0 log.txt

>dir "@001 RT под 1801ВМ3.dsk"

Directory ...\@001 RT под 1801ВМ3.dsk

18.08.2024 22:59 33 554 432 $S000$.$section$
18.08.2024 22:59 33 554 432 $S001$.$section$
18.08.2024 22:59 33 554 432 $S002$.$section$
18.08.2024 22:59 33 554 432 $S003$.$section$
18.08.2024 22:59 33 554 432 $S004$.$section$
18.08.2024 22:59 33 554 432 $S005$.$section$
18.08.2024 22:59 33 554 432 $S006$.$section$
18.08.2024 22:59 33 554 432 $S007$.$section$
18.08.2024 22:59 33 554 432 $S008$.$section$
18.08.2024 22:59 33 554 432 $S009$.$section$
18.08.2024 22:59 33 554 432 $S010$.$section$
18.08.2024 22:59 33 554 432 $S011$.$section$
18.08.2024 22:59 33 554 432 $S012$.$section$
18.08.2024 22:59 33 554 432 $S013$.$section$
18.08.2024 22:59 33 554 432 $S014$.$section$
18.08.2024 22:59 33 554 432 $S015$.$section$
18.08.2024 22:59 33 554 432 $S016$.$section$
18.08.2024 22:59 33 554 432 $S017$.$section$
18.08.2024 22:59 33 554 432 $S018$.$section$
18.08.2024 22:59 33 554 432 $S019$.$section$
18.08.2024 22:59 33 554 432 $S020$.$section$
18.08.2024 22:59 33 554 432 $S021$.$section$
18.08.2024 22:59 33 554 432 $S022$.$section$
18.08.2024 22:59 33 554 432 $S023$.$section$
18.08.2024 22:59 33 554 432 $S024$.$section$
18.08.2024 23:00 33 554 432 $S025$.$section$
18.08.2024 23:00 33 554 432 $S026$.$section$
18.08.2024 23:00 33 554 432 $S027$.$section$
18.08.2024 23:00 33 554 432 $S028$.$section$
18.08.2024 23:00 33 554 432 $S029$.$section$
18.08.2024 23:00 33 554 432 $S030$.$section$
18.08.2024 23:00 33 554 432 $S031$.$section$
18.08.2024 23:00 1 073 741 824 $S032$.$section$
18.08.2024 23:00 1 073 741 824 $S033$.$section$
18.08.2024 23:00 796 581 888 $S034$.$section$


- - - Добавлено - - -

Оказалось даже проще, чем думал. Новый вариант:


>dir

Directory of ...

22.04.2020 22:33 4 017 807 360 001 RT под 1801ВМ3.dsk
19.08.2024 00:54 202 c.cmd
19.08.2024 00:54 0 log.txt

>type c.cmd
dir
type c.cmd
ImageUtilsX -unpack "001 RT под 1801ВМ3.dsk" @"001 RT под 1801ВМ3.dsk" s[cf12]:..4[rt11]:64[rsx]:65[]
dir
dir "@001 RT под 1801ВМ3.dsk"

>ImageUtilsX -unpack "001 RT под 1801ВМ3.dsk" @"001 RT под 1801ВМ3.dsk" s[cf12]:..4[rt11]:64[rsx]:65[]

>dir

Directory of ...

19.08.2024 00:55 6 628 !Log.txt
22.04.2020 22:33 4 017 807 360 001 RT под 1801ВМ3.dsk
19.08.2024 00:55 607 982 001 RT под 1801ВМ3.dsk.cf12.s000..s004.s064.s065.UnPack.MyL og.txt
19.08.2024 00:55 <DIR> @001 RT под 1801ВМ3.dsk
19.08.2024 00:54 202 c.cmd
19.08.2024 00:54 0 log.txt

>dir "@001 RT под 1801ВМ3.dsk"

Directory of ...\@001 RT под 1801ВМ3.dsk

19.08.2024 00:54 <DIR> $S000$
19.08.2024 00:55 <DIR> $S001$
19.08.2024 00:55 <DIR> $S002$
19.08.2024 00:55 <DIR> $S003$
19.08.2024 00:55 <DIR> $S004$
19.08.2024 00:55 <DIR> $S064$
19.08.2024 00:55 796 581 888 $S065$.$section$


Дальше, как обычно - добавка тестов и комплекс тестов :)

Hunta
19.08.2024, 09:50
Немного поигрался с доработками. Из замеченного

- пофиксил ошибку парсинга ФС rsx - в определённом сценарии неверной ФС программа слетает по исключению.

- ошибка парсинга ФС считалась фатальной - то есть программа сразу завершала работу. Счёл поведение неправильным, теперь программа прерывает только текущую операцию, то есть, если идёт работа @-файла - переходим на следующую операцию

- вариант указания секций all теперь работает как диапазон с первой по последнюю секцию - а то был прецедент генерации слишком длинного имени файла

Игры продолжаются

- - - Добавлено - - -

В целом - работа с секционными образами дисков вроде сделана полностью - по крайне мере - что-то нового в плане такого сценария в голову не приходит. Ну, может, что-то придёт в голову или что-то забыл - тогда вернусь в доработку.

А пока - тесты.

Затем - аналог секций для лент - с прицелом в первую очередь на ленты BRU

Hunta
19.08.2024, 11:56
В процесс подсовывания парсеру (теперь RT-11) разного налетел на чем-то похожую на ошибку парсера ФС rsx - в парсере ФС rt. Пофиксил - теперь тоже не падает. В целом - интересное развлечение - подсунуть парсеру ФС образ, который не то что с ошибками в ФС - а вообще с левым содержимым. По хорошему - программа не должна падать. Ругацца, материцца - но не падать :)

Hunta
20.08.2024, 09:32
По тестам вроде ничего не сломалось (что сломалось - починил ранее), так что очередная версия была отправлена в "промышленную" эксплуатацию :) А разработка вернулась к тому, с чего всё началось - к лентам BRU - начинаю второй заход проб :)

Hunta
25.08.2024, 00:48
Для дисков первоначальный вариант работы с секциями работал на уровне чтения отдельных секций - в том числе в плане борьбы с очень большими файлами.

В силу другой организации блочности в образах лент их разбиение на (возможные) секции требует первоначального чтения всего файла.

Пришлось переделать подход. Из сделанного

- Поддержка очень больших (больше 2 гигов) массивов. Теперь могу прочитать целиком в память и файлы размером больше 2 гигов :) .
- Секции в образах дисков теперь не читаются - их объекты мапятся на "сырые", прочитанные из файла, данные и таким образом происходит работа.

Текущий вариант вроде как, по крайне мере, на извлечение данных - работает, но исчерпывающиего тестирования ещё не запускал.

В планах сделать другой вариант реализации сверхбольших массивов - с подкачкой и (при изменении) записью в/из исходного файла. Но не в ближайших планах.

- - - Добавлено - - -

Из занимательного.

Есть образ с ФС RSX на примерно полтора гига. Как оказалось, при его распаковке в виртуалке съедается почти вся память. При этом ImageUtils раздувался до почти 20 гигов =) Надо будет парсинг ODS-1 шерстить - что-то как-то многовато получается памяти в использовании :)

- - - Добавлено - - -

"Out of memory" - класс! Не шмагла :) Где-то утечка памяти :)

- - - Добавлено - - -

Неее. Это ошибка. С утра буду разбираться - где накосячил

- - - Добавлено - - -

Не вытерпел, поковырялся :) Да, это была ошибка. Поправил. Теперь в районе 4.5 гигов потребляет при развертывании этого образа. То есть накладные расходын 4.5-1.7 - 2.8 гига. Многовато (но не 20 гигов), но в принципе понятно - почему так.

Но в процессе работы с образом выяснилось, что новый вариант программы распаковывает его неправильно. Вот теперь точно буду искать ошибку уже утром :)

Hunta
25.08.2024, 22:41
Фиксил ошибки - ляпы и просчёты в сценариях :) Начал гонять тесты. Есть, которые не проходят, но значительная часть уже отрабатывает. В процессе разборок сценариев прилетел философский вопрос. Вроде как в реальной жизни такое не встречал, но... тем не менее. Итак:

- Если у нас есть носитель с программными интерливом и разбиением на секции (ака разделы), то - интерлив должен быть в пределах всего носителя или в каждой секции свой? :)

После раздумий решил, что оба подхода могут иметь место быть, а значит - надо указывать в описании носителя - если используется интерлив, то - какой :)

Пока секционипрование исключает интерлив. Буду выставлять проверку (не случился ли интерлив с секционированием) и если вдруг - ронять программу. Ибо в текущих описаниях устройств такого нет, а если вдруг случится - то это МОЯ ошибка

- - - Добавлено - - -

По результатам - надо проверять секционирование - слетели почти все тесты на эту тему.

Завтра по мере свободного времени :)

Hunta
26.08.2024, 15:51
Поковырялся с утра и в обед. Пара ошибок (вроде) и один недоделанный сценарий. И - вуаля - тесты опять проходят все.
Далее - оценка ущерба (оказалось, что в силу ползучих изменения некоторая часть кода стала.. почти не нужной, так что попутно и её вырезал), причёска кода и тестирование. Если всё ок - очередной коммит

Hunta
30.08.2024, 09:29
Начал потихоньку (времени свободного на неделе мало) парсить ленты, пока в формате BRU.

Этап первый - выделение отдельных backup-ов (ака секций).

Попутно выяснилось, что в рядах образах, в которых секции выделяются на основе данных - пополнение -с екции в ФС Windows. Как-то до начала секционирования лент не задмывался над этим. И тестов на сборку не добавил, так что и с этой стороны подсказки не было. Не страшно - и подход выделения секций похожий и вопрос дальше похоже решать. Так что - попутно сделаю.

Hunta
03.09.2024, 10:59
Устал от программирования. Когда вернусь - не знаю :) Может - временами и понемногу, но.. не знаю.. :)

ra3qdp
03.09.2024, 14:51
за что возьметесь ?
А то, что-то тема (кроме этой ветки) совсем заглохла. У многих есть рабочие PDP, Электроники, ДВК, но - тишина. Кто что на них делает ? Зачем заимели ?

vva
03.09.2024, 22:17
Кто что на них делает ? Зачем заимели ?
Хобби. Приятные и простые машинки времен молодости!!!
Я, например, до сих пор "балдею" с MACRO (хотя с тех пор были освоены Fortran77(и далее), C, C++, Java, Perl).


У многих есть рабочие PDP, Электроники, ДВК
Увы, серия FPGA машинок от forth32 c процессорами от Vslav.
FPGA конечно "рулит" и "наше все", но мощно бесит - никакой стабильности :)))

Hunta
04.09.2024, 00:53
за что возьметесь ?
Программирования сейчас на работе хватает, поэтому на неделе вообще тяжело опять в программирование погружаться.
А на выходных - назревает немного калыма, но там некоторые вещи прояснить надо - занимается свободное время.
Попробую повозиться с PDP-11X, всё таки не программирование


Кто что на них делает ? Зачем заимели ?
Играются в игрушки

dk_spb
11.09.2024, 18:15
У многих есть рабочие PDP, Электроники, ДВК, но - тишина. Кто что на них делает ? Зачем заимели ?
Я на МС1212 колбасу и сало на закусь режу. Удобно мне так...

Hunta
17.09.2024, 19:42
Захотелось мне тут ... странного :)
Два вечера, часа четыре в сумме.
Результат:


>ImageUtilsX -unpack DECMATION_100Q_DISK2.rx02_sd DecMATION_100Q_DISK2.rx02_sd cpm8 cpm

>type DECMATION_100Q_DISK2.rx02_sd.UnPack.MyLog.txt
#
# -unpack "DECMATION_100Q_DISK2.rx02_sd" DecMATION_100Q_DISK2.rx02_sd" cpm8 cpm
#

MOVCPM .COM 76
PIP .COM 58
SUBMIT .COM 10
XSUB .COM 6
ED .COM 52
ASM .COM 64
DDT .COM 38
LOAD .COM 14
STAT .COM 41
REC .COM 5
DUMP .COM 4
SEN .COM 4
TYPICAL .ASM 73
WP .COM 64
WPEDPRNT.WPO 30
WPEDFORM.WPO 46
WPEDINIT.WPO 37
GENSYS .COM 6
WPEDDOCM.WPO 29
WPEDTYPE.WPO 7
XDIR .COM 16
WPEDHELP.WPO 15
WPEDCOPY.WPO 31
WPEDPAGE.WPO 17
WPEDSVRD.WPO 23
WPEDFILE.WPO 26
WPEDFI .WPO 3
WPEDFD .WPO 9
WPEDFCD .WPO 15
WPEDIT2 .WPO 114
WPEFL .WPO 20
WPEDIT .WPO 72
WPEDFIND.WPO 56
WPEDPRN2.WPO 154
HELP .WPH 184
VT100AV .ASM 120
PRINTER .SUB 2
TERMINAL.SUB 2
STD10 .ASM 35
INITFL .COM 5
DAISYIIF.ASM 41
BIOS64 .ASM 62
BIOS64 .ASM 62
42 files, 0 blocks
0 Free blocks


>dir DecMATION_100Q_DISK2.rx02_sd

Directory of ..... DecMATION_100Q_DISK2.rx02_sd

17.09.2024 20:39 <DIR> metaFiles@
17.09.2024 20:39 8 192 ASM.COM
17.09.2024 20:39 7 936 BIOS64.ASM
17.09.2024 20:39 5 248 DAISYIIF.ASM
17.09.2024 20:39 4 864 DDT.COM
17.09.2024 20:39 512 DUMP.COM
17.09.2024 20:39 6 656 ED.COM
17.09.2024 20:39 768 GENSYS.COM
17.09.2024 20:39 23 552 HELP.WPH
17.09.2024 20:39 640 INITFL.COM
17.09.2024 20:39 1 792 LOAD.COM
17.09.2024 20:39 9 728 MOVCPM.COM
17.09.2024 20:39 7 424 PIP.COM
17.09.2024 20:39 256 PRINTER.SUB
17.09.2024 20:39 640 REC.COM
17.09.2024 20:39 512 SEN.COM
17.09.2024 20:39 5 248 STAT.COM
17.09.2024 20:39 4 480 STD10.ASM
17.09.2024 20:39 1 280 SUBMIT.COM
17.09.2024 20:39 256 TERMINAL.SUB
17.09.2024 20:39 9 344 TYPICAL.ASM
17.09.2024 20:39 15 360 VT100AV.ASM
17.09.2024 20:39 8 192 WP.COM
17.09.2024 20:39 3 968 WPEDCOPY.WPO
17.09.2024 20:39 3 712 WPEDDOCM.WPO
17.09.2024 20:39 1 920 WPEDFCD.WPO
17.09.2024 20:39 1 152 WPEDFD.WPO
17.09.2024 20:39 384 WPEDFI.WPO
17.09.2024 20:39 3 328 WPEDFILE.WPO
17.09.2024 20:39 7 168 WPEDFIND.WPO
17.09.2024 20:39 5 888 WPEDFORM.WPO
17.09.2024 20:39 1 920 WPEDHELP.WPO
17.09.2024 20:39 4 736 WPEDINIT.WPO
17.09.2024 20:39 9 216 WPEDIT.WPO
17.09.2024 20:39 14 592 WPEDIT2.WPO
17.09.2024 20:39 2 176 WPEDPAGE.WPO
17.09.2024 20:39 19 712 WPEDPRN2.WPO
17.09.2024 20:39 3 840 WPEDPRNT.WPO
17.09.2024 20:39 2 944 WPEDSVRD.WPO
17.09.2024 20:39 896 WPEDTYPE.WPO
17.09.2024 20:39 2 560 WPEFL.WPO
17.09.2024 20:39 2 048 XDIR.COM
17.09.2024 20:39 768 XSUB.COM
42 File(s) 215 808 bytes

>ImageUtilsX -unpack DECMATION_100Q_DISK3.rx02_sd DecMATION_100Q_DISK3.rx02_sd cpm8 cpm

>type DECMATION_100Q_DISK3.rx02_sd.UnPack.MyLog.txt
#
# -unpack "DECMATION_100Q_DISK3.rx02_sd" DecMATION_100Q_DISK3.rx02_sd" cpm8 cpm
#

TERLIB .HET 243
DIABLO .HEX 5
DIABLO50.HEX 6
EPSON .HEX 6
ANADEX .HEX 7
README2 .TXT 5
EPSON-G .HEX 6
IDS560 .HEX 6
IDSPRISM.HEX 10
MALIBU .HEX 6
NEC7710 .HEX 6
NEC7710S.HEX 8
NEC7710T.HEX 8
NEC7715 .HEX 6
NEC7715S.HEX 8
NEC7715T.HEX 8
OKI-83A .HEX 6
PRISM-CQ.HEX 7
PRISM-DQ.HEX 7
PRO-WTR .HEX 9
PSPC8023.HEX 10
QUME5 .HEX 6
SELLUMI .HEX 5
SPINWTR .HEX 5
STARWTR .HEX 5
XYMEC .HEX 6
ACT5A .HEX 6
DAISYIIF.ASM 41
BOLDPS .ASM 36
TYPICAL .HEX 5
PRPATCH .HEX 1
VT100AV .ASM 120
VT100NAV.ASM 120
README1 .TXT 5
DAISY-II.ASM 141
BOLDPSX .ASM 36
DIAB630 .ASM 88
BOLDPS96.ASM 46
CUBPS96 .ASM 41
EMPEROR .ASM 36
EMPERORX.ASM 36
MODERN .ASM 37
PRO-WTRF.ASM 34
STD10 .ASM 35
THEME11 .ASM 36
THEME11 .ASM 36
45 files, 0 blocks
0 Free blocks


>dir DecMATION_100Q_DISK3.rx02_sd

Directory of ..... DecMATION_100Q_DISK3.rx02_sd

17.09.2024 20:39 <DIR> metaFiles@
17.09.2024 20:39 768 ACT5A.HEX
17.09.2024 20:39 896 ANADEX.HEX
17.09.2024 20:39 4 608 BOLDPS.ASM
17.09.2024 20:39 5 888 BOLDPS96.ASM
17.09.2024 20:39 4 608 BOLDPSX.ASM
17.09.2024 20:39 5 248 CUBPS96.ASM
17.09.2024 20:39 18 048 DAISY-II.ASM
17.09.2024 20:39 5 248 DAISYIIF.ASM
17.09.2024 20:39 11 264 DIAB630.ASM
17.09.2024 20:39 640 DIABLO.HEX
17.09.2024 20:39 768 DIABLO50.HEX
17.09.2024 20:39 4 608 EMPEROR.ASM
17.09.2024 20:39 4 608 EMPERORX.ASM
17.09.2024 20:39 768 EPSON-G.HEX
17.09.2024 20:39 768 EPSON.HEX
17.09.2024 20:39 768 IDS560.HEX
17.09.2024 20:39 1 280 IDSPRISM.HEX
17.09.2024 20:39 768 MALIBU.HEX
17.09.2024 20:39 4 736 MODERN.ASM
17.09.2024 20:39 768 NEC7710.HEX
17.09.2024 20:39 1 024 NEC7710S.HEX
17.09.2024 20:39 1 024 NEC7710T.HEX
17.09.2024 20:39 768 NEC7715.HEX
17.09.2024 20:39 1 024 NEC7715S.HEX
17.09.2024 20:39 1 024 NEC7715T.HEX
17.09.2024 20:39 768 OKI-83A.HEX
17.09.2024 20:39 896 PRISM-CQ.HEX
17.09.2024 20:39 896 PRISM-DQ.HEX
17.09.2024 20:39 1 152 PRO-WTR.HEX
17.09.2024 20:39 4 352 PRO-WTRF.ASM
17.09.2024 20:39 128 PRPATCH.HEX
17.09.2024 20:39 1 280 PSPC8023.HEX
17.09.2024 20:39 768 QUME5.HEX
17.09.2024 20:39 640 README1.TXT
17.09.2024 20:39 640 README2.TXT
17.09.2024 20:39 640 SELLUMI.HEX
17.09.2024 20:39 640 SPINWTR.HEX
17.09.2024 20:39 640 STARWTR.HEX
17.09.2024 20:39 4 480 STD10.ASM
17.09.2024 20:39 31 104 TERLIB.HET
17.09.2024 20:39 4 608 THEME11.ASM
17.09.2024 20:39 640 TYPICAL.HEX
17.09.2024 20:39 15 360 VT100AV.ASM
17.09.2024 20:39 15 360 VT100NAV.ASM
17.09.2024 20:39 768 XYMEC.HEX
45 File(s) 167 680 bytes

Это ОЧЕНЬ ранний альфа вариант :)

Hunta
17.09.2024, 22:23
Работа с образом 8-ми дюймовки с ФС CP/M выявило некоторую проблему - у неё свой вариант логического (не аппаратного) интерлива. Пока описать несколько вариантов интерлива для одного физического типа устройства ImageUtils не позволяет - только за счёт описания нескольких вариантов устройств. Подумаю над этим, а то устройства слишком плодятся :)

Hunta
02.10.2024, 16:02
Я тут в понедельник всё таки заболел (вирусняк), конкретно - до больничного. Обычно не беру - на удалённой работе. А тут вот - вот так...

Ну и к сегодняшнему дню самочувстивие стало чуть-чуть лучше, так что - воспользовался и дописал парсер предпоследней из известных мне файловых систем на PDP-11.

Пока нет парсера на RSTS.

Ну а unix системы мне никогда не нравились - не думаю, что буду делать парсер :)

Итак, встречаем - CAPS-11:


>dir
Directory of ...

26.04.2014 08:56 91 376 bascaps1.t60
02.10.2024 16:53 0 log.txt
02.10.2024 16:53 171 unp.cmd

>ImageUtilsX -unpack bascaps1.t60 @bascaps1.t60 tu60 caps11

>dir

Directory of ...

02.10.2024 16:53 1 070 !Log.txt
02.10.2024 16:53 <DIR> @bascaps1.t60
26.04.2014 08:56 91 376 bascaps1.t60
02.10.2024 16:53 988 bascaps1.t60.UnPack.MyLog.txt
02.10.2024 16:53 0 log.txt
02.10.2024 16:53 171 unp.cmd

>dir @bascaps1.t60
Directory of ...\@bascaps1.t60

02.10.2024 16:53 <DIR> metaFiles@
09.05.1974 23:00 16 384 BAS8K.SLO
08.05.1974 23:00 4 096 BASED.OVL
08.05.1974 23:00 4 096 BASEX.OVL
11.05.1974 23:00 24 576 BASIC.SLO
08.05.1974 23:00 1 024 CTLOAD.SYS
09.08.1974 23:00 4 096 FPMPEA.OBJ
09.08.1974 23:00 3 584 FPMPEI.OBJ
09.08.1974 23:00 1 536 FPMPFP.OBJ
17.05.1974 23:00 24 576 FTBLA.OBJ
17.05.1974 23:00 1 024 PROG2.BAS
17.05.1974 23:00 512 PROG2.OBJ

>type bascaps1.t60.UnPack.MyLog.txt
#
# -unpack "bascaps1.t60" "@bascaps1.t60" tu60 caps11
#

Filesystem has 0 ufds, 11 files and 692 blocks

CTLOAD.SYS 8 09-MAY-1974
BASED .OVL 32 09-MAY-1974
BASEX .OVL 32 09-MAY-1974
BAS8K .SLO 128 10-MAY-1974
BASIC .SLO 192 12-MAY-1974
FTBLA .OBJ 192 18-MAY-1974
PROG2 .OBJ 4 18-MAY-1974
PROG2 .BAS 8 18-MAY-1974
FPMPEA.OBJ 32 10-AUG-1974
FPMPEI.OBJ 28 10-AUG-1974
FPMPFP.OBJ 12 10-AUG-1974

TOTL BLKS: 668
TOTL FILES: 11


- - - Добавлено - - -

В силу простоты ФС, думаю набросать и обратный процесс - создание ФС CAPS-11, но посмотрим...

Hunta
05.10.2024, 00:48
В процессе написания процедур создания образа CAPS-11 выявлена ошибка, недописанный код (ну тут понятно - на момент написания для проверки ничего подходящего не было, так что оставил ловушку) и не совсем правильная реализация восстановления порядка файлов при СОЗДАНИИ образов (это из постепенной реализации возможности воссоздать полностью идентичный образ на основании файлов и метоинформации от процесса распаковки образа).

Поэтому - прикидочные варианты процедур создания образов и немного новый вариант подхода к сохранению и восстановлению (пока не полностью) метаинформации.

В планах - доделать создание полностью идентичных образов CAPS-11 и ещё продвинуться в сохранении метаинформации - в том числе, с учётом информации и знаний из первой задачи

Hunta
12.10.2024, 21:06
Вроде CAPS-11 - не сильно сложная ФС, но процесс создания образа потребовал доработок внутренностей, так как примерно как и у ODS-1 - есть заголовок файла, не всю информацию из которого можно сохранить в файле Windows. По сути, в Windows можно сохранить только дату-время создания (ну и изменения, который есть в ODS-1). Собственно - сохранение информации из заголовка сделать было просто (на ODS-1 механизм был более менее отработан), а вот использование её при создании ФС - такого механизма не было.

Так что - рефакторинг работы с мета-информацией (кое-что из неё я уже использую) образа и прикидочный вариант сохранения(новый)-восстановления инфы из заголовка и дальнейшей работы с ней.

Пока ещё в проверке-отладке, но уже более менее работает - ленты CAPS-11 воссоздаются идентичные оригинальным :)

Кое-что из информации DOS-11 на лентах не сохранялось (и не восстанавливалось ессссвенно) по этой же причине - теперь можно будет доделать. На существующих тестах не проверялось, но теперь можно будет добавить и проверки идентичности создаваемого отбаза.

Hunta
21.10.2024, 00:58
Прошедшая неделя - уже не на больничном, так что времени опять мало...

Из сделанного - доделал нужный (для создания CAPS-11) функционал в mapper-е, так что теперь ещё некоторый набор вариантов лент CAPS-11, которые ImageUtils должен способен воссоздать из набора файлов в исходном виде. На этом пока остановлюсь, так как для стандартных вариантов сделано всё плюс некоторые нестандартности.

Mapper у меня по прежнему в состоянии - код дописывается по необходимости, так что там всё сумбурно - надо будет постепенно навести порядок.. Но это как получится..

По результатам оценки того, что получилось с секционированными образами - есть некоторые мысли по доработке.

Ну и похоже - всё таки начну возиться с лентами BRU.

По мере наличия времени...

Hunta
23.10.2024, 10:10
Если вкратце - секции :)
Доработки по результатам работы с первоначальной реализацией плюс обкатка ещё некоторых мыслеидей. С прицелом на ленты и ленты BRU

Hunta
26.10.2024, 12:29
Первая доработка - переделал описание схем.

Было, скажем


sect[cf11]:..4[rt11]:32..34[rsx]

Стало


cf11[..4:rt11,32..34:rsx]

Вроде стало попроще.
Ну и добавил поддержку такого (пока только в парсере, реально ещё некому использовать :) )


tape[0:dos11,rsxbas..prvbld:bru1]


Пока переделал только парсер плюс добавил нужные класса, теперь это дело надо впилить в использование.

Hunta
30.10.2024, 18:15
Первый успешный прогон после доработок работы с секциями :)
Изменено или удалено 357 строк
Изменено или добавлено 714 строк
Не факт, что автотесты пройдут :) Пока ещё проверка других сценариев :)

Hunta
31.10.2024, 09:53
Проходящих тестов стало больше, но наблюдаются проблемы с формированием имени лог-файла, если идёт работа с секциями.
Продумать и поправить.

Hunta
31.10.2024, 17:50
Основной набор тестов - проходит. Найденные ошибки поправил. Из оставшихся замечаний - иногда (точнее говоря - один раз) неправильно сформировалось имя лога. На секциях уже обнаружил :)
Дальше - проверки работы с секциями (в том числе - добавление новых тестов, мысли о которых и привели к доработке)

Woxem
03.11.2024, 19:22
Можно ссылку на какой-нибудь работающий билд?

Hunta
03.11.2024, 21:10
Пока в разобранном состоянии, как будет хотя бы существующих тесты проходить - тогда

Hunta
05.11.2024, 09:46
Устал от ImageUtils - пока вожусь с DisAsm-11 :) ImageUtils всё ещё в разобранном состоянии.

Hunta
03.12.2024, 21:26
Понадобились мне некоторые файлы из одного образа и... оказывается, что ImageUtils падает на нём :)
Начал исправлять ошибку, одно за другим - и - достаточно прилично переписал работу с образами - точнее - с выбором секций для операций. Называется - после отдыха и свежего взгляда пришло помниманием - КАК оно должно быть сделано :)

Так что пока тут :)

Hunta
09.12.2024, 02:06
На неделе возился понемного вечерами и в выходные побольше.
Под новый подход и те сценарии, которые были в тестах - добавил код и исправил ошибки от перехода на новый подход.
На текущий момент - проходит всё тесты, которые были.
В планах - добавить ещё варианты секционирования и тесты.

Но скорее всего - много возиться не буду - инетересы в DisAsm-11

Hunta
10.12.2024, 17:20
Попробовал добавить второй вариант схемы секционирования CF в ImageUtils - в нёй максимальный размер секции - 2 Гб. Когда-то даже добавил этот вариант в драйвер для RSX (с RT-11 всё гораздо проще). И вот...

Подкралась засада, где не ждал :) А именно - максимальное количество элементов в массиве в .NET - 2^31 - 1.

Свою поддержку сверхбольших массивов я уже добавил, но.. не везде, как выяснилось :)

Пробую допилить :)

Hunta
10.12.2024, 21:03
Нууу... работу с более чем двух-гиговыми массивами поправил (всё равно это бы вылезло), но оказывается - допустил другую ошибку. Текст драйвера понял не правильно - секции не двух, а одно-гиговые :)
Из плюсов - распиленный образ собрал руками - совпал с оригиналом :)

Hunta
11.12.2024, 01:16
При попытки не просто распилить образ на составные секции, а извлечь из них файлы (из соотвествующих ФС) - ожидаемо была пара ошибок. Вроде поправил

Hunta
11.12.2024, 13:42
Мелкая ошибка при сохранении файла с нулевой длиной - поправил
Ошибка парсинга ODS-1 - опять на файле с extension заголовками - разбираюсь

И что-то непонятное с секционированием на больших CF в драйвере RSX - реальное разбиение отличается от того, что вижу в драйвере...

- - - Добавлено - - -

Парсинг ODS-1 - ошибку нашёл, вроде теперь ок (но надо автотесты прогнать)
А вот секционирование - пока разбираюсь

Hunta
11.12.2024, 23:19
Написал тестовую программу, которая показывает размеры секций по алгоритму разбиения из драйвера.

1. Логику понял правильно
2. Нашёл ошибку в ImageUtils
3. При "правильном" разбиении - ФС в секции тютю.

По размышлению - скорее всего на CF остался вариант разбиения с ошибкой. Почему так - не понятно, насколько я помню - вроде как RSX работала с секциями без проблем. Но, собственно - меня интересует инфа с карты, так что - распилю на секции и на этом с этим образом всё, а в ImageUtils оставлю только правильный вариант секционирования.

Из вариантов секционирования осталось добавить секционирование SD карты на RK (два варианта - от автора и мой) и RL (вроде как один вариант, но добавлю под RL01 и RL02). После этого, на текущий момент - будут реализованы всё известные и нужные мне варианты :)

Hunta
12.12.2024, 11:02
По планам - доотлаживаю второй и проблемный варианты секционирования - и опять к DisAsm-11 :)

Hunta
14.12.2024, 12:20
Попытка собрать разобранный образ показала - не всё в порядке в датском королевсте :) Вычислил, поправил, отладил. Теперь если разбирать образ на секции (как образы) и собрать обратно - результат идентичен исходному :)

Пока с ImageUtils перекур, поиграюсь с DisAsm :)

Woxem
22.12.2024, 11:50
А можно попросить фаил программы, поиграться

Hunta
22.12.2024, 14:14
Ссылку сбросил в личке.
Нюансы
- работа с секционированными образами пока всё ещё КРАЙНЕ экспериментальная возможность, в мини-доке не отражена, если вдруг понадобиться - пообщаемся отдельно
- документация поправлена сегодня - возможно, что-то забыл или не правильно/не точно описал - вопросы приветствуются

Hunta
30.04.2025, 14:16
Вернулся. Обнаружились ошибки - поправил. Снова вернулся к секционированным файлам - попробую всё таки добить ленты с резервными копиями BRU

Hunta
05.05.2025, 00:21
Пока внутренние доработки под секционирование лент, хотя более точный термин в данном случае - файл-контейнер :) Так как с точки зрения структуры ленты - на ней организована своебразная ФС (наш стандарт - ГОСТ 25752—83, буржуйский - IBM или ANSI, точно не скажу) и данные BRU пишутся в них.

Ещё из известных форматов лент с "секциями" или "контейнерами" - ленты ROLLIN и PRE. И вроде что-то такое пишет DSC, но точно не скажу..

Но пока прицел идёт на BRU.

Hunta
12.05.2025, 11:08
Внутренние доработки - пока всё что хотел - сделал.

Начал заниматься собственно разбиением ленты на секции (с прицелом не толко на ленты с backup-ами BRU), но идёт медленно - и объективные (мало свободного времени) и субъективные (пробные забракованные варианты - тоже требует время на сделать-попробовать) причины. Но двигаюсь.

Hunta
20.05.2025, 12:31
Началось параллельное движение - доделка разбиения ленты на секции (по некоторым сценариям есть вопросы, но - потом) и добрался до данных BRU. Больше упор на второе

Hunta
22.05.2025, 23:05
В первом приближении и для лент с ТОЛЬКО резервными копиями BRU (в том числе такими, где в начале идёт BRUSYS) секционирование ленты заработало :) На этом пока разборки с секциями на лентах приостанавливаю :)

Теперь парсинг резервной копии BRU. Технически - много чего будет взято из ODS1 - ибо это её резервная копия. Но нюансы есть :)

Из занимательного. Всегда думал, что две подряд TapeMark - это (логический) конец всего на ленте. А вот хрен.

Если лента в формате ANSI, то после меток-заголовков (HDR1..HDR9, в стандарте определено содержимое HDR1 и HDR2, остальные - чисто пользовательские) идет TapeMark, а потом данные файла. Но! Если файл пустой, то после первой TapeMark идёт сразу вторая TapeMark, а потом - внезапно - метки конца файл - (EOF1..EOF9 и та же хрень - в стандарте только EOF1 и EOF2). И вот только если после EOFx идёт подряд две TapeMark - тогда да - таки логический конец ленты.

Hunta
26.05.2025, 08:19
Если вкратце, то структура backup-а BRU - информация о каталогах, информация о заголовках файлов, данные из файлов.
На текущий момент - информация о каталогах разбирается и сохраняется, информация о заголовках файлов - начат разбор (фигня вопрос) и сохранение (вот чем начал заниматься)

Hunta
26.05.2025, 15:23
По информации о заголовках пробежался, в объекты ImageUtils загнал, теперь надо бы проверить - что туда загналось :) Особенно интересуют файлы, у которых несколько заголовков (в силу их размеров и/или фрагментации) - на них у меня долго была в ImageUtils ошибка :)

Hunta
26.05.2025, 19:34
Ну... Ну понятно, что не всё разобрано и косяков хватает, но.. Первый выход на свет :)



Volume Information
Class: ODS-1 (401)
Device: Tape
Volume label: RSX11MPBL87
Owner: [1,1]
Creation Date:18-DEC-1998 02:35:30
Serial Number:100000000
Protection: [RWCD,RWCD,RWCD,RWCD]
Default: [RWED,RWED,RWED,R]
Processor: ImageUtils


Directory [0,0]

RSX11.SYS;1 (37,1) 26./0. C [1,1] [RWED,RWED,RWED,R]

Total of 26./26. blocks in 1. files

Directory [1,1]

KITIDENT.DAT;1 (40,1) 2./0. [1,1] [RWED,RWED,RWED,R]
VERSION.CMD;1 (41,1) File not found!
RSXMAC.SML;1 (42,1) File not found!
SYSLIB.OLB;1 (43,1) File not found!
NOANSLIB.OLB;1 (44,1) File not found!
NOVACPLIB.OLB;1 (45,1) File not found!
VMLIB.OLB;1 (46,1) File not found!
RMSLIB.OLB;1 (47,1) File not found!
RMSDAP.OLB;1 (50,1) 102./0. C [1,1] [RWED,RWED,RWED,R]
EXEMC.MLB;1 (51,1) File not found!

............

Directory [200,200]

SYSGEN.CLB;1 (1422,1) File not found!
BLDLAINIT.CMD;1 (1423,1) File not found!
SGNBLDBLD.CMD;1 (1425,1) File not found!
SGNKLAB.CMD;1 (1424,1) File not found!
SGNPREFIX.CMD;1 (1421,1) File not found!
SYSGEN.CMD;1 (1420,1) File not found!
RSXMC0.MAC;1 (1417,1) File not found!
WRKEXECOP.TXT;1 (1426,1) File not found!
WRKMASSCO.TXT;1 (1427,1) File not found!
WRKMASSDR.TXT;1 (1430,1) File not found!
WRKUNIBCO.TXT;1 (1431,1) File not found!
WRKUNIBDR.TXT;1 (1432,1) File not found!
KADIN4.MAC;1 (1052,2) File not found!
KADIN5.MAC;1 (1062,2) File not found!
KADSWP.MAC;1 (1341,1) File not found!
KAST.MAC;1 (1064,2) File not found!
KBFRMG.MAC;1 (1066,2) File not found!
KBFSTS.MAC;1 (1333,1) File not found!
KCLOKA.MAC;1 (1071,2) File not found!
KCLOKB.MAC;1 (1006,2) File not found!
KCOMM.MAC;1 (1073,2) File not found!
KCVADF.MAC;1 (1074,2) File not found!
KDIGO.MAC;1 (1101,2) File not found!
KDIO.MAC;1 (1334,1) File not found!
KDISWP.MAC;1 (1113,2) File not found!
KDOSWP.MAC;1 (1143,2) File not found!
KDRDRV.MAC;1 (1336,1) File not found!
KDSCAD.MAC;1 (1302,2) File not found!
KDSDGO.MAC;1 (1303,2) File not found!
KDVDF.MAC;1 (1304,2) File not found!
KEFQA.MAC;1 (1306,2) File not found!

Total of 0./0. blocks in 31. files

Grand Total of 3319./3319. blocks in 1062. files in 26. directories


Можно считать первой проверкой и демонстрацией ошибок :)

Hunta
26.05.2025, 23:06
Ещё продвинулся :) Заголовки разобраны и распиханы по каталогам, но есть проблемы - размер файлов и отсутствие даты и времени



Volume Information
Class: ODS-1 (401)
Device: Tape
Volume label: RSX11MPBL87
Owner: [1,1]
Creation Date:18-DEC-1998 02:35:30
Serial Number:100000000
Protection: [RWCD,RWCD,RWCD,RWCD]
Default: [RWED,RWED,RWED,R]
Processor: ImageUtils


Directory [0,0]

RSX11.SYS;1 (37,1) 26./0. C [1,1] [RWED,RWED,RWED,R]

Total of 26./26. blocks in 1. files

Directory [1,1]

KITIDENT.DAT;1 (40,1) 2./0. [1,1] [RWED,RWED,RWED,R]
VERSION.CMD;1 (41,1) 1./0. [1,1] [RWED,RWED,RWED,R]
RSXMAC.SML;1 (42,1) 307./256. C [1,1] [RWED,RWED,RWED,R]
SYSLIB.OLB;1 (43,1) 280./256. C [1,1] [RWED,RWED,RWED,R] 18-DEC-1998 02:36(2.)
NOANSLIB.OLB;1 (44,1) 271./256. C [1,1] [RWED,RWED,RWED,R] 18-DEC-1998 02:38(2.)
NOVACPLIB.OLB;1 (45,1) 22./0. C [1,1] [RWED,RWED,RWED,R]
VMLIB.OLB;1 (46,1) 17./0. C [1,1] [RWED,RWED,RWED,R]
RMSLIB.OLB;1 (47,1) 222./0. C [1,1] [RWED,RWED,RWED,R]
RMSDAP.OLB;1 (50,1) 102./0. C [1,1] [RWED,RWED,RWED,R]
EXEMC.MLB;1 (51,1) 161./0. C [1,1] [RWED,RWED,RWED,R]
EXELIB.OLB;1 (52,1) 80./0. C [1,1] [RWED,RWED,RWED,R]
DEBUG.OLB;1 (53,1) 77./0. C [1,1] [RWED,RWED,RWED,R] 18-DEC-1998 02:38(2.)
FDVLIB.OLB;1 (54,1) 53./0. C [1,1] [RWED,RWED,RWED,R]
F52LIB.OLB;1 (55,1) 49./0. C [1,1] [RWED,RWED,RWED,R]
FDVLRM.OLB;1 (56,1) 54./0. C [1,1] [RWED,RWED,RWED,R]
DEUNA.MLB;1 (57,1) 18./0. C [1,1] [RWED,RWED,RWED,R]
RMSMAC.MLB;1 (60,1) 189./0. C [1,1] [RWED,RWED,RWED,R]
FMSMAC.MLB;1 (61,1) 9./0. C [1,1] [RWED,RWED,RWED,R]
EISLIB.OLB;1 (62,1) 23./0. C [1,1] [RWED,RWED,RWED,R] 18-DEC-1998 02:38(2.)
LUAMC.TSK;1 (63,1) 3./0. [1,1] [RWED,RWED,RWED,R]
UNAMC.TSK;1 (64,1) 3./0. [1,1] [RWED,RWED,RWED,R]
FCSFSL.TSK;1 (65,1) 1./0. C [1,1] [RWED,RWED,RWED,R]
FCSFSL.STB;1 (66,1) 2./0. [1,1] [RWED,RWED,RWED,R]
FCSRES.TSK;1 (67,1) 35./0. C [1,1] [RWED,RWED,RWED,R]
FCSRES.STB;1 (70,1) 12./0. [1,1] [RWED,RWED,RWED,R]
FCS.OBJ;1 (71,1) 25./0. [1,1] [RWED,RWED,RWED,R]
FCSMTA.OBJ;1 (72,1) 31./0. [1,1] [RWED,RWED,RWED,R]
FCSMBF.OBJ;1 (73,1) 33./0. [1,1] [RWED,RWED,RWED,R]
FCSNOVACP.OBS;1 (74,1) 18./0. [1,1] [RWED,RWED,RWED,R]
FCSNOLOG.OBS;1 (75,1) 2./0. [1,1] [RWED,RWED,RWED,R]
FCSLOG.OBS;1 (76,1) 5./0. [1,1] [RWED,RWED,RWED,R]
FCSFULL.OBS;1 (77,1) 55./0. [1,1] [RWED,RWED,RWED,R]
R0RMS1.MAC;1 (100,1) 12./0. [1,1] [RWED,RWED,RWED,R]
RMSFUN.OBJ;1 (101,1) 9./1. [1,1] [RWED,RWED,RWED,R]
RMSRLX.ODL;1 (102,1) 2./0. [1,1] [RWED,RWED,RWED,R]
RMSSLX.ODL;1 (103,1) 2./0. [1,1] [RWED,RWED,RWED,R]
RMS11.ODL;1 (104,1) 86./0. [1,1] [RWED,RWED,RWED,R]
RMS11S.ODL;1 (105,1) 5./0. [1,1] [RWED,RWED,RWED,R]
RMS12S.ODL;1 (106,1) 4./0. [1,1] [RWED,RWED,RWED,R]
RMS11X.ODL;1 (107,1) 6./0. [1,1] [RWED,RWED,RWED,R]
RMS12X.ODL;1 (110,1) 6./0. [1,1] [RWED,RWED,RWED,R]
RMSRES.TSK;1 (111,1) 4./0. C [1,1] [RWED,RWED,RWED,R]
RMSRESAB.TSK;1 (112,1) 48./0. C [1,1] [RWED,RWED,RWED,R]
RMSLBL.TSK;1 (113,1) 19./0. C [1,1] [RWED,RWED,RWED,R]
RMSLBM.TSK;1 (114,1) 31./0. C [1,1] [RWED,RWED,RWED,R]
RMSRES.STB;1 (115,1) 3./0. [1,1] [RWED,RWED,RWED,R]
DAPRLX.ODL;1 (116,1) 2./0. [1,1] [RWED,RWED,RWED,R]
DAP11X.ODL;1 (117,1) 6./0. [1,1] [RWED,RWED,RWED,R]
DAPRES.TSK;1 (120,1) 40./0. C [1,1] [RWED,RWED,RWED,R]
DAPRES.STB;1 (121,1) 2./0. [1,1] [RWED,RWED,RWED,R]
ODT.OBJ;1 (122,1) 8./0. [1,1] [RWED,RWED,RWED,R]
ODTID.OBJ;1 (123,1) 14./0. [1,1] [RWED,RWED,RWED,R]
LPA.OBJ;1 (124,1) 16./0. [1,1] [RWED,RWED,RWED,R]
PURISA.OBJ;1 (125,1) 8./0. [1,1] [RWED,RWED,RWED,R]
PURICR.OBJ;1 (126,1) 6./0. [1,1] [RWED,RWED,RWED,R]
PURPCS.OBJ;1 (127,1) 14./0. [1,1] [RWED,RWED,RWED,R]
PURUDC.OBJ;1 (130,1) 3./0. [1,1] [RWED,RWED,RWED,R]
PURUDC.OBJ;2 (131,1) 3./0. [1,1] [RWED,RWED,RWED,R]

Total of 2521./2521. blocks in 58. files

Directory [1,2]

STARTUP.CMD;1 (132,1) 9./0. [1,2] [RWED,RWED,RWED,R]
QMGSTART.CMD;1 (133,1) 4./0. [1,2] [RWED,RWED,RWED,R]
QMGSTOP.CMD;1 (134,1) 1./0. [1,2] [RWED,RWED,RWED,R]
SHUTUP.CMD;1 (135,1) 1./0. [1,2] [RWED,RWED,RWED,R]
QIOSYM.MSG;1 (136,1) 29./0. [1,2] [RWED,RWED,RWED,R]
RMSDES.IDX;1 (137,1) 142./0. [1,2] [RWED,RWED,RWED,R]
BATCH.TXT;1 (140,1) 2./0. [1,2] [RWED,RWED,RWED,R]
LOGIN.TXT;1 (141,1) 2./0. [1,2] [RWED,RWED,RWED,R]
INDSYS.CLB;1 (142,1) 130./0. C [1,2] [RWED,RWED,RWED,R]

Total of 320./320. blocks in 9. files

Directory [1,3]


Total of 0./0. blocks in 0. files

Directory [1,4]


Total of 0./0. blocks in 0. files

Directory [1,6]

ERRLOG.ULB;1 (143,1) 957./512. [1,6] [RWED,RWED,RWED,R]
ERRLOGETC.ULB;1 (144,1) 98./0. [1,6] [RWED,RWED,RWED,R]

Total of 1055./1055. blocks in 2. files

Directory [1,7]


Total of 0./0. blocks in 0. files

Directory [1,10]


Total of 0./0. blocks in 0. files

Directory [1,11]


Total of 0./0. blocks in 0. files

Directory [1,20]

ACCBLD.BLD;1 (331,1) 11./0. [1,20] [RWED,RWED,RWED,R]
ACDBLD.BLD;1 (333,1) 5./0. [1,20] [RWED,RWED,RWED,R]
ACFBLD.BLD;1 (222,1) 2./0. [1,20] [RWED,RWED,RWED,R]
ACNBLD.BLD;1 (334,1) 5./0. [1,20] [RWED,RWED,RWED,R]
ACOBLD.BLD;1 (221,1) 3./0. [1,20] [RWED,RWED,RWED,R]
ACSBLD.BLD;1 (332,1) 3./0. [1,20] [RWED,RWED,RWED,R]
AR2BLD.BLD;1 (156,1) 4./0. [1,20] [RWED,RWED,RWED,R]
BADBLD.BLD;1 (246,1) 4./2. [1,20] [RWED,RWED,RWED,R]
BOOBLD.BLD;1 (245,1) 5./0. [1,20] [RWED,RWED,RWED,R]
BPRBLD.BLD;1 (153,1) 16./0. [1,20] [RWED,RWED,RWED,R]
BROBLD.BLD;1 (247,1) 4./0. [1,20] [RWED,RWED,RWED,R]
BRUBLD.BLD;1 (341,1) 8./0. [1,20] [RWED,RWED,RWED,R]
BYEBLD.BLD;1 (250,1) 4./0. [1,20] [RWED,RWED,RWED,R]
CDABLD.BLD;1 (251,1) 20./0. [1,20] [RWED,RWED,RWED,R]
CFLBLD.BLD;1 (252,1) 9./0. [1,20] [RWED,RWED,RWED,R]
CIOBLD.BLD;1 (335,1) 2./0. [1,20] [RWED,RWED,RWED,R]
CMPBLD.BLD;1 (253,1) 7./0. [1,20] [RWED,RWED,RWED,R]
CONBLD.BLD;1 (353,1) 4./0. [1,20] [RWED,RWED,RWED,R]
COTBLD.BLD;1 (254,1) 5./0. [1,20] [RWED,RWED,RWED,R]
CPBBLD.BLD;1 (235,1) 2./0. [1,20] [RWED,RWED,RWED,R]
CPNBLD.BLD;1 (234,1) 2./0. [1,20] [RWED,RWED,RWED,R]
CRABLD.BLD;1 (155,1) 6./0. [1,20] [RWED,RWED,RWED,R]
CRFBLD.BLD;1 (241,1) 11./0. [1,20] [RWED,RWED,RWED,R]
CRPBLD.BLD;1 (255,1) 7./0. [1,20] [RWED,RWED,RWED,R]
DCLBLD.BLD;1 (256,1) 23./0. [1,20] [RWED,RWED,RWED,R]
DLDBLD.BLD;1 (257,1) 2./0. [1,20] [RWED,RWED,RWED,R]
DMOBLD.BLD;1 (260,1) 3./0. [1,20] [RWED,RWED,RWED,R]
DMPBLD.BLD;1 (324,1) 11./0. [1,20] [RWED,RWED,RWED,R]
DSCBLD.BLD;1 (261,1) 8./0. [1,20] [RWED,RWED,RWED,R]
DTEBLD.BLD;1 (262,1) 3./0. [1,20] [RWED,RWED,RWED,R]
EDIBLD.BLD;1 (243,1) 8./0. [1,20] [RWED,RWED,RWED,R]
EDTBLD.BLD;1 (263,1) 47./0. [1,20] [RWED,RWED,RWED,R]
ELIBLD.BLD;1 (264,1) 10./0. [1,20] [RWED,RWED,RWED,R]
ERLBLD.BLD;1 (265,1) 6./0. [1,20] [RWED,RWED,RWED,R]
FCPLRGBLD.BLD;1 (225,1) 14./0. [1,20] [RWED,RWED,RWED,R]
FCPMDLBLD.BLD;1 (226,1) 18./0. [1,20] [RWED,RWED,RWED,R]
FCPMINBLD.BLD;1 (230,1) 18./0. [1,20] [RWED,RWED,RWED,R]
FCPSMLBLD.BLD;1 (227,1) 12./0. [1,20] [RWED,RWED,RWED,R]
FCSFS0BLD.BLD;1 (223,1) 2./0. [1,20] [RWED,RWED,RWED,R]
FCSRS1BLD.BLD;1 (357,1) 14./0. [1,20] [RWED,RWED,RWED,R]
FLXBLD.BLD;1 (326,1) 17./0. [1,20] [RWED,RWED,RWED,R]
FMTBLD.BLD;1 (266,1) 5./0. [1,20] [RWED,RWED,RWED,R]
FTBBLD.BLD;1 (267,1) 7./0. [1,20] [RWED,RWED,RWED,R]
FXRBLD.BLD;1 (270,1) 2./0. [1,20] [RWED,RWED,RWED,R]
F11MSGBLD.BLD;1 (231,1) 3./0. [1,20] [RWED,RWED,RWED,R]
HELBLD.BLD;1 (345,1) 12./0. [1,20] [RWED,RWED,RWED,R]
HFTBLD.BLD;1 (237,1) 8./0. [1,20] [RWED,RWED,RWED,R]
HFTRESBLD.BLD;1 (220,1) 8./0. [1,20] [RWED,RWED,RWED,R]
HFTRESODL.BLD;1 (240,1) 19./0. [1,20] [RWED,RWED,RWED,R]
HRCBLD.BLD;1 (354,1) 6./0. [1,20] [RWED,RWED,RWED,R]
ICMBLD.BLD;1 (320,1) 12./0. [1,20] [RWED,RWED,RWED,R]
ICPCOMBLD.BLD;1 (314,1) 22./0. [1,20] [RWED,RWED,RWED,R]
ICPFSLBLD.BLD;1 (172,1) 1./0. [1,20] [RWED,RWED,RWED,R]
ICPRESBLD.BLD;1 (175,1) 1./0. [1,20] [RWED,RWED,RWED,R]
IDLBLD.BLD;1 (337,1) 2./0. [1,20] [RWED,RWED,RWED,R]
INIBLD.BLD;1 (271,1) 11./0. [1,20] [RWED,RWED,RWED,R]
INSBLD.BLD;1 (343,1) 3./0. [1,20] [RWED,RWED,RWED,R]
IOXBLD.BLD;1 (273,1) 21./0. [1,20] [RWED,RWED,RWED,R]
IPPBLD.BLD;1 (272,1) 3./0. [1,20] [RWED,RWED,RWED,R]
LBRBLD.BLD;1 (316,1) 19./0. [1,20] [RWED,RWED,RWED,R]
LOABLD.BLD;1 (274,1) 5./0. [1,20] [RWED,RWED,RWED,R]
LPIBLD.BLD;1 (166,1) 2./0. [1,20] [RWED,RWED,RWED,R]
LPPBLD.BLD;1 (342,1) 23./0. [1,20] [RWED,RWED,RWED,R]
MACBLD.BLD;1 (233,1) 27./0. [1,20] [RWED,RWED,RWED,R]
MACOLD.BLD;1 (162,1) 16./0. [1,20] [RWED,RWED,RWED,R]
MCDBLD.BLD;1 (362,1) 4./0. [1,20] [RWED,RWED,RWED,R]
MCLBLD.BLD;1 (147,1) 2./0. [1,20] [RWED,RWED,RWED,R]
MCRBLD.BLD;1 (360,1) 9./0. [1,20] [RWED,RWED,RWED,R]
MDMBLD.BLD;1 (152,1) 2./0. [1,20] [RWED,RWED,RWED,R]
MFTBLD.BLD;1 (275,1) 4./0. [1,20] [RWED,RWED,RWED,R]
MOUBLD.BLD;1 (276,1) 6./0. [1,20] [RWED,RWED,RWED,R]
MPDBLD.BLD;1 (336,1) 9./0. [1,20] [RWED,RWED,RWED,R]
MTABLD.BLD;1 (277,1) 18./0. [1,20] [RWED,RWED,RWED,R]
NCTCTLBLD.BLD;1 (150,1) 2./0. [1,20] [RWED,RWED,RWED,R]
PATBLD.BLD;1 (244,1) 9./0. [1,20] [RWED,RWED,RWED,R]
PIPBLD.BLD;1 (322,1) 21./0. [1,20] [RWED,RWED,RWED,R]
PMDBLD.BLD;1 (300,1) 8./0. [1,20] [RWED,RWED,RWED,R]
PMTBLD.BLD;1 (301,1) 9./0. [1,20] [RWED,RWED,RWED,R]
PRTBLD.BLD;1 (207,1) 9./0. [1,20] [RWED,RWED,RWED,R]
PSWBLD.BLD;1 (302,1) 8./0. [1,20] [RWED,RWED,RWED,R]
QCLBLD.BLD;1 (330,1) 9./0. [1,20] [RWED,RWED,RWED,R]
QMGBLD.BLD;1 (327,1) 17./0. [1,20] [RWED,RWED,RWED,R]
QPRBLD.BLD;1 (303,1) 3./0. [1,20] [RWED,RWED,RWED,R]
RCTBLD.BLD;1 (304,1) 3./0. [1,20] [RWED,RWED,RWED,R]
RMDBLD.BLD;1 (351,1) 21./0. [1,20] [RWED,RWED,RWED,R]
RPTBLD.BLD;1 (317,1) 15./0. [1,20] [RWED,RWED,RWED,R]
SAVBLD.BLD;1 (355,1) 12./0. [1,20] [RWED,RWED,RWED,R]
SECBLD.BLD;1 (154,1) 2./0. [1,20] [RWED,RWED,RWED,R]
SHABLD.BLD;1 (340,1) 11./0. [1,20] [RWED,RWED,RWED,R]
SHFBLD.BLD;1 (305,1) 3./0. [1,20] [RWED,RWED,RWED,R]
SHUBLD.BLD;1 (306,1) 4./3. [1,20] [RWED,RWED,RWED,R]
SLNBLD.BLD;1 (206,1) 6./1. [1,20] [RWED,RWED,RWED,R]
SLPBLD.BLD;1 (325,1) 8./0. [1,20] [RWED,RWED,RWED,R]
STKBLD.BLD;1 (224,1) 9./0. [1,20] [RWED,RWED,RWED,R]
STUBLD.BLD;1 (232,1) 2./0. [1,20] [RWED,RWED,RWED,R]
SYLBLD.BLD;1 (350,1) 3./0. [1,20] [RWED,RWED,RWED,R]
TDXBLD.BLD;1 (307,1) 3./0. [1,20] [RWED,RWED,RWED,R]
TKBBLD.BLD;1 (323,1) 9./0. [1,20] [RWED,RWED,RWED,R]
TKBCOMBLD.BLD;1 (242,1) 24./0. [1,20] [RWED,RWED,RWED,R]
TKNBLD.BLD;1 (310,1) 3./0. [1,20] [RWED,RWED,RWED,R]
UFDBLD.BLD;1 (311,1) 3./0. [1,20] [RWED,RWED,RWED,R]
UMLBLD.BLD;1 (312,1) 2./0. [1,20] [RWED,RWED,RWED,R]
UNLBLD.BLD;1 (313,1) 5./0. [1,20] [RWED,RWED,RWED,R]
URTBLD.BLD;1 (361,1) 3./0. [1,20] [RWED,RWED,RWED,R]
VCPBLD.BLD;1 (315,1) 8./0. [1,20] [RWED,RWED,RWED,R]
VFDBLD.BLD;1 (356,1) 3./0. [1,20] [RWED,RWED,RWED,R]
VFYBLD.BLD;1 (352,1) 10./0. [1,20] [RWED,RWED,RWED,R]
VMRBLD.BLD;1 (344,1) 15./0. [1,20] [RWED,RWED,RWED,R]
VMSBLD.BLD;1 (157,1) 2./0. [1,20] [RWED,RWED,RWED,R]
XDTBLD.BLD;1 (347,1) 3./0. [1,20] [RWED,RWED,RWED,R]
ZAPBLD.BLD;1 (321,1) 5./0. [1,20] [RWED,RWED,RWED,R]
SLQBLD.CMD;1 (346,1) 6./0. [1,20] [RWED,RWED,RWED,R]
OUTPUT.LST;1 (363,1) 2./0. [1,20] [RWED,RWED,RWED,R]

Total of 957./957. blocks in 113. files

Directory [1,24]

BCKNON.CMD;1 (176,2) 1./0. [1,24] [RWED,RWED,RWED,R]
BCKNRN.CMD;1 (173,2) 1./0. [1,24] [RWED,RWED,RWED,R]
BCKNSN.CMD;1 (200,2) 1./0. [1,24] [RWED,RWED,RWED,R]
CNVNON.CMD;1 (214,2) 1./0. [1,24] [RWED,RWED,RWED,R]
CNVNOO.CMD;1 (216,2) 1./0. [1,24] [RWED,RWED,RWED,R]
CNVNRN.CMD;1 (212,2) 1./0. [1,24] [RWED,RWED,RWED,R]
CNVNRR.CMD;1 (236,2) 1./0. [1,24] [RWED,RWED,RWED,R]
CNVNSN.CMD;1 (365,1) 1./0. [1,24] [RWED,RWED,RWED,R]
DAPRES.CMD;1 (170,2) 1./0. [1,24] [RWED,RWED,RWED,R]
DEFNON.CMD;1 (377,1) 1./0. [1,24] [RWED,RWED,RWED,R]
DEFNRN.CMD;1 (375,1) 1./0. [1,24] [RWED,RWED,RWED,R]
DEFNSN.CMD;1 (401,1) 1./0. [1,24] [RWED,RWED,RWED,R]
DESNON.CMD;1 (405,1) 1./0. [1,24] [RWED,RWED,RWED,R]
DESNRN.CMD;1 (403,1) 1./0. [1,24] [RWED,RWED,RWED,R]
DESNSN.CMD;1 (407,1) 1./0. [1,24] [RWED,RWED,RWED,R]
DSPNON.CMD;1 (371,1) 1./0. [1,24] [RWED,RWED,RWED,R]
DSPNRN.CMD;1 (367,1) 1./0. [1,24] [RWED,RWED,RWED,R]
DSPNSN.CMD;1 (373,1) 1./0. [1,24] [RWED,RWED,RWED,R]
IFLNON.CMD;1 (411,1) 1./0. [1,24] [RWED,RWED,RWED,R]
IFLNRN.CMD;1 (413,1) 1./0. [1,24] [RWED,RWED,RWED,R]
IFLNSN.CMD;1 (415,1) 1./0. [1,24] [RWED,RWED,RWED,R]
RMSFAKAB.CMD;1 (145,2) 3./0. [1,24] [RWED,RWED,RWED,R]
RMSLBL.CMD;1 (151,2) 1./0. [1,24] [RWED,RWED,RWED,R]
RMSLBM.CMD;1 (160,2) 1./0. [1,24] [RWED,RWED,RWED,R]
RMSRESAB.CMD;1 (146,2) 2./0. [1,24] [RWED,RWED,RWED,R]
RSTNON.CMD;1 (204,2) 1./0. [1,24] [RWED,RWED,RWED,R]
RSTNRN.CMD;1 (202,2) 1./0. [1,24] [RWED,RWED,RWED,R]
RSTNSN.CMD;1 (210,2) 1./0. [1,24] [RWED,RWED,RWED,R]
BCKNON.ODL;1 (177,2) 5./0. [1,24] [RWED,RWED,RWED,R]
BCKNRN.ODL;1 (174,2) 5./0. [1,24] [RWED,RWED,RWED,R]
BCKNSN.ODL;1 (201,2) 5./0. [1,24] [RWED,RWED,RWED,R]
CNVNON.ODL;1 (215,2) 10./0. [1,24] [RWED,RWED,RWED,R]
CNVNOO.ODL;1 (217,2) 5./0. [1,24] [RWED,RWED,RWED,R]
CNVNRN.ODL;1 (213,2) 5./0. [1,24] [RWED,RWED,RWED,R]
CNVNRR.ODL;1 (364,1) 6./3. [1,24] [RWED,RWED,RWED,R]
CNVNSN.ODL;1 (366,1) 6./0. [1,24] [RWED,RWED,RWED,R]
DAPRES.ODL;1 (171,2) 1./0. [1,24] [RWED,RWED,RWED,R]
DEFNON.ODL;1 (400,1) 3./0. [1,24] [RWED,RWED,RWED,R]
DEFNRN.ODL;1 (376,1) 3./2. [1,24] [RWED,RWED,RWED,R]
DEFNSN.ODL;1 (402,1) 3./0. [1,24] [RWED,RWED,RWED,R]
DESNON.ODL;1 (406,1) 6./1. [1,24] [RWED,RWED,RWED,R]
DESNRN.ODL;1 (404,1) 6./0. [1,24] [RWED,RWED,RWED,R]
DESNSN.ODL;1 (410,1) 7./0. [1,24] [RWED,RWED,RWED,R]
DSPNON.ODL;1 (372,1) 3./0. [1,24] [RWED,RWED,RWED,R]
DSPNRN.ODL;1 (370,1) 3./0. [1,24] [RWED,RWED,RWED,R]
DSPNSN.ODL;1 (374,1) 4./0. [1,24] [RWED,RWED,RWED,R]
IFLNON.ODL;1 (412,1) 5./0. [1,24] [RWED,RWED,RWED,R]
IFLNRN.ODL;1 (414,1) 3./0. [1,24] [RWED,RWED,RWED,R]
IFLNSN.ODL;1 (416,1) 3./0. [1,24] [RWED,RWED,RWED,R]
RMSLBL.ODL;1 (163,2) 3./0. [1,24] [RWED,RWED,RWED,R]
RMSLBM.ODL;1 (164,2) 3./0. [1,24] [RWED,RWED,RWED,R]
RMSODL.ODL;1 (165,2) 24./0. [1,24] [RWED,RWED,RWED,R]
RMSRESAB.ODL;1 (161,2) 8./0. [1,24] [RWED,RWED,RWED,R]
RSTNON.ODL;1 (205,2) 5./0. [1,24] [RWED,RWED,RWED,R]
RSTNRN.ODL;1 (203,2) 5./0. [1,24] [RWED,RWED,RWED,R]
RSTNSN.ODL;1 (211,2) 5./0. [1,24] [RWED,RWED,RWED,R]
ACC.OLB;1 (417,1) 130./0. C [1,24] [RWED,RWED,RWED,R]
ACD.OLB;1 (420,1) 20./0. C [1,24] [RWED,RWED,RWED,R]
ACF.OLB;1 (421,1) 49./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:39(2.)
BAD.OLB;1 (422,1) 44./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:40(2.)
BOO.OLB;1 (423,1) 26./0. C [1,24] [RWED,RWED,RWED,R]
BPR.OLB;1 (424,1) 60./0. C [1,24] [RWED,RWED,RWED,R]
BRU.OLB;1 (425,1) 320./256. C [1,24] [RWED,RWED,RWED,R]
CDA.OLB;1 (426,1) 221./0. C [1,24] [RWED,RWED,RWED,R]
CMP.OLB;1 (427,1) 27./0. C [1,24] [RWED,RWED,RWED,R]
COT.OLB;1 (430,1) 37./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:40(2.)
CRF.OLB;1 (431,1) 40./0. C [1,24] [RWED,RWED,RWED,R]
CRP.OLB;1 (432,1) 55./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:40(2.)
DCLO.OLB;1 (433,1) 795./512. C [1,24] [RWED,RWED,RWED,R]
DCLR.OLB;1 (434,1) 64./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:40(2.)
DMP.OLB;1 (435,1) 51./0. C [1,24] [RWED,RWED,RWED,R]
DSC.OLB;1 (436,1) 164./0. C [1,24] [RWED,RWED,RWED,R]
DTE.OLB;1 (437,1) 99./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:40(2.)
EDI.OLB;1 (440,1) 57./0. C [1,24] [RWED,RWED,RWED,R]
EDTLIB.OLB;1 (441,1) 376./256. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:41(2.)
ERL.OLB;1 (442,1) 66./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:41(2.)
EUT.OLB;1 (443,1) 176./0. C [1,24] [RWED,RWED,RWED,R]
FCP.OLB;1 (444,1) 103./0. C [1,24] [RWED,RWED,RWED,R]
FIL.OLB;1 (445,1) 196./0. C [1,24] [RWED,RWED,RWED,R]
FLX.OLB;1 (446,1) 148./0. C [1,24] [RWED,RWED,RWED,R]
FMT.OLB;1 (447,1) 60./0. C [1,24] [RWED,RWED,RWED,R]
FTB.OLB;1 (450,1) 106./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:41(2.)
F11MSG.OLB;1 (451,1) 9./0. C [1,24] [RWED,RWED,RWED,R]
ICPNPR.OLB;1 (452,1) 151./0. C [1,24] [RWED,RWED,RWED,R]
INI.OLB;1 (453,1) 89./0. C [1,24] [RWED,RWED,RWED,R]
INS.OLB;1 (454,1) 57./0. C [1,24] [RWED,RWED,RWED,R]
IOX.OLB;1 (455,1) 140./0. C [1,24] [RWED,RWED,RWED,R]
LAINIT.OLB;1 (456,1) 21./0. C [1,24] [RWED,RWED,RWED,R]
LBR.OLB;1 (457,1) 70./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:41(2.)
LOA.OLB;1 (460,1) 77./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:41(2.)
LPP.OLB;1 (461,1) 57./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:41(2.)
MAC.OLB;1 (462,1) 152./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:41(2.)
MCR.OLB;1 (463,1) 331./256. C [1,24] [RWED,RWED,RWED,R]
MFT.OLB;1 (464,1) 123./0. C [1,24] [RWED,RWED,RWED,R]
MLTUSR.OLB;1 (465,1) 157./0. C [1,24] [RWED,RWED,RWED,R]
MTA.OLB;1 (466,1) 103./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:42(2.)
NEISLB.OLB;1 (467,1) 14./0. C [1,24] [RWED,RWED,RWED,R]
OLR.OLB;1 (470,1) 185./0. C [1,24] [RWED,RWED,RWED,R]
PAT.OLB;1 (471,1) 34./0. C [1,24] [RWED,RWED,RWED,R]
PIP.OLB;1 (472,1) 114./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:42(2.)
PIPUTL.OLB;1 (473,1) 30./0. C [1,24] [RWED,RWED,RWED,R]
PRL.OLB;1 (474,1) 34./0. C [1,24] [RWED,RWED,RWED,R]
QMG.OLB;1 (475,1) 77./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:42(2.)
QMGCLI.OLB;1 (476,1) 116./0. C [1,24] [RWED,RWED,RWED,R]
RCT.OLB;1 (477,1) 25./0. C [1,24] [RWED,RWED,RWED,R]
RMD.OLB;1 (500,1) 183./0. C [1,24] [RWED,RWED,RWED,R]
RMSUTL.OLB;1 (501,1) 817./512. C [1,24] [RWED,RWED,RWED,R]
RPT.OLB;1 (502,1) 228./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:42(2.)
SAV.OLB;1 (503,1) 125./0. C [1,24] [RWED,RWED,RWED,R]
SHA.OLB;1 (504,1) 51./0. C [1,24] [RWED,RWED,RWED,R]
SLP.OLB;1 (505,1) 34./0. C [1,24] [RWED,RWED,RWED,R]
TDX.OLB;1 (506,1) 28./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:42(2.)
TKB.OLB;1 (507,1) 338./256. C [1,24] [RWED,RWED,RWED,R]
UML.OLB;1 (510,1) 7./0. C [1,24] [RWED,RWED,RWED,R] 18-DEC-1998 02:43(2.)
VCP.OLB;1 (511,1) 231./0. C [1,24] [RWED,RWED,RWED,R]
VFY.OLB;1 (512,1) 53./0. C [1,24] [RWED,RWED,RWED,R]
VMR.OLB;1 (513,1) 319./256. C [1,24] [RWED,RWED,RWED,R]
ZAP.OLB;1 (514,1) 33./0. C [1,24] [RWED,RWED,RWED,R]
RMSROTAB.STB;1 (167,2) 2./0. [1,24] [RWED,RWED,RWED,R]

Total of 8286./8286. blocks in 119. files

Directory [1,34]

RMSLBL.MAP;1 (515,1) 19./0. [1,34] [RWED,RWED,RWED,R]
RMSLBM.MAP;1 (516,1) 19./0. [1,34] [RWED,RWED,RWED,R]
RMSRESAB.MAP;1 (517,1) 33./0. [1,34] [RWED,RWED,RWED,R]
DAPRES.MAP;1 (520,1) 17./0. [1,34] [RWED,RWED,RWED,R]

Total of 88./88. blocks in 4. files

Directory [1,54]


Total of 0./0. blocks in 0. files

Directory [2,54]

BASTART.CMD;1 (1433,1) 74./0. [2,54] [RWED,RWED,RWED,R]
RSX11M.SYS;1 (1434,1) 498./256. C [2,54] [RWED,RWED,RWED,R] 18-DEC-1998 02:50(2.)
ACF.TSK;1 (1435,1) 33./0. C [2,54] [RWED,RWED,RWED,R]
LDR.TSK;1 (1436,1) 7./0. C [2,54] [RWED,RWED,RWED,R]
SAV.TSK;1 (1437,1) 67./0. C [2,54] [RWED,RWED,RWED,R]
RSX11M.TSK;1 (1440,1) 130./0. C [2,54] [RWED,RWED,RWED,R]
RSX11M.STB;1 (1441,1) 33./0. [2,54] [RWED,RWED,RWED,R]
DIR11M.TSK;1 (1442,1) 15./0. C [2,54] [RWED,RWED,RWED,R]
DIR11M.STB;1 (1443,1) 6./0. [2,54] [RWED,RWED,RWED,R]
DR211M.TSK;1 (1444,1) 16./0. C [2,54] [RWED,RWED,RWED,R]
DR211M.STB;1 (1445,1) 5./0. [2,54] [RWED,RWED,RWED,R]
DR311M.TSK;1 (1446,1) 7./0. C [2,54] [RWED,RWED,RWED,R]
DR311M.STB;1 (1447,1) 2./0. [2,54] [RWED,RWED,RWED,R]
DR411M.TSK;1 (1450,1) 2./0. C [2,54] [RWED,RWED,RWED,R]
DR411M.STB;1 (1451,1) 1./0. [2,54] [RWED,RWED,RWED,R]
VEC11M.TSK;1 (1452,1) 13./0. C [2,54] [RWED,RWED,RWED,R]
VEC11M.STB;1 (1453,1) 12./0. [2,54] [RWED,RWED,RWED,R]
DCM11M.TSK;1 (1454,1) 2./0. C [2,54] [RWED,RWED,RWED,R]
DBDRV.TSK;1 (1455,1) 9./0. C [2,54] [RWED,RWED,RWED,R]
DBDRV.STB;1 (1456,1) 2./0. [2,54] [RWED,RWED,RWED,R]
DDDRV.TSK;1 (1457,1) 7./0. C [2,54] [RWED,RWED,RWED,R]
DDDRV.STB;1 (1460,1) 1./0. [2,54] [RWED,RWED,RWED,R]
DKDRV.TSK;1 (1461,1) 4./0. C [2,54] [RWED,RWED,RWED,R]
DKDRV.STB;1 (1462,1) 2./0. [2,54] [RWED,RWED,RWED,R]
DLDRV.TSK;1 (1463,1) 6./0. C [2,54] [RWED,RWED,RWED,R]
DLDRV.STB;1 (1464,1) 2./0. [2,54] [RWED,RWED,RWED,R]
DMDRV.TSK;1 (1465,1) 8./0. C [2,54] [RWED,RWED,RWED,R]
DMDRV.STB;1 (1466,1) 2./0. [2,54] [RWED,RWED,RWED,R]
DRDRV.TSK;1 (1467,1) 9./0. C [2,54] [RWED,RWED,RWED,R]
DRDRV.STB;1 (1470,1) 3./0. [2,54] [RWED,RWED,RWED,R]
DUDRV.TSK;1 (1471,1) 15./0. C [2,54] [RWED,RWED,RWED,R]
DUDRV.STB;1 (1472,1) 2./0. [2,54] [RWED,RWED,RWED,R]
DXDRV.TSK;1 (1473,1) 5./0. C [2,54] [RWED,RWED,RWED,R]
DXDRV.STB;1 (1474,1) 1./0. [2,54] [RWED,RWED,RWED,R]
DYCOM.TSK;1 (1475,1) 4./0. C [2,54] [RWED,RWED,RWED,R]
DYDRV.TSK;1 (1476,1) 8./0. C [2,54] [RWED,RWED,RWED,R]
DYDRV.STB;1 (1477,1) 1./0. [2,54] [RWED,RWED,RWED,R]
LPDRV.TSK;1 (1500,1) 4./0. C [2,54] [RWED,RWED,RWED,R]
LPDRV.STB;1 (1501,1) 1./0. [2,54] [RWED,RWED,RWED,R]
MMDRV.TSK;1 (1502,1) 8./0. C [2,54] [RWED,RWED,RWED,R]
MMDRV.STB;1 (1503,1) 1./0. [2,54] [RWED,RWED,RWED,R]
MSDRV.TSK;1 (1504,1) 8./0. C [2,54] [RWED,RWED,RWED,R]
MSDRV.STB;1 (1505,1) 2./0. [2,54] [RWED,RWED,RWED,R]
MTDRV.TSK;1 (1506,1) 7./0. C [2,54] [RWED,RWED,RWED,R]
MTDRV.STB;1 (1507,1) 2./0. [2,54] [RWED,RWED,RWED,R]
MUDRV.TSK;1 (1510,1) 12./0. C [2,54] [RWED,RWED,RWED,R]
MUDRV.STB;1 (1511,1) 2./0. [2,54] [RWED,RWED,RWED,R]
NLDRV.TSK;1 (1512,1) 3./0. C [2,54] [RWED,RWED,RWED,R]
NLDRV.STB;1 (1513,1) 1./0. [2,54] [RWED,RWED,RWED,R]
PUCOM.TSK;1 (1514,1) 8./0. C [2,54] [RWED,RWED,RWED,R]
PUCOM.STB;1 (1515,1) 1./0. [2,54] [RWED,RWED,RWED,R]
TTDRV.STB;1 (1516,1) 8./0. [2,54] [RWED,RWED,RWED,R]
TTDRV.TSK;1 (1517,1) 32./0. C [2,54] [RWED,RWED,RWED,R]
TTEXT.STB;1 (1520,1) 1./0. [2,54] [RWED,RWED,RWED,R]
TTEXT.TSK;1 (1521,1) 8./0. C [2,54] [RWED,RWED,RWED,R]
VTDRV.TSK;1 (1522,1) 5./0. C [2,54] [RWED,RWED,RWED,R]
VTDRV.STB;1 (1523,1) 1./0. [2,54] [RWED,RWED,RWED,R]
FCSRES.TSK;1 (1524,1) 35./0. C [2,54] [RWED,RWED,RWED,R]
FCSRES.STB;1 (1525,1) 12./0. [2,54] [RWED,RWED,RWED,R]
BASLINVMR.CMD;1 (1526,1) 15./0. [2,54] [RWED,RWED,RWED,R]
BASLINTTY.CMD;1 (1527,1) 5./0. [2,54] [RWED,RWED,RWED,R]
RSXMC.MAC;1 (1530,1) 39./0. [2,54] [RWED,RWED,RWED,R]

Total of 1235./1235. blocks in 62. files

Directory [3,54]

CATCHALL.CMD;1 (770,1) 4./0. [3,54] [RWED,RWED,RWED,R]
CRSIOP.STB;1 (560,1) 1./0. [3,54] [RWED,RWED,RWED,R]
DLCRSH.STB;1 (563,1) 1./0. [3,54] [RWED,RWED,RWED,R]
DUCRSH.STB;1 (574,1) 1./0. [3,54] [RWED,RWED,RWED,R]
MMCRSH.STB;1 (662,1) 1./0. [3,54] [RWED,RWED,RWED,R]
MSCRSH.STB;1 (665,1) 1./0. [3,54] [RWED,RWED,RWED,R]
MUCRSH.STB;1 (670,1) 1./0. [3,54] [RWED,RWED,RWED,R]
RDDRV.STB;1 (711,1) 1./0. [3,54] [RWED,RWED,RWED,R]
RMSRES.STB;1 (722,1) 3./0. [3,54] [RWED,RWED,RWED,R]
RSXVEC.STB;1 (767,1) 14./0. [3,54] [RWED,RWED,RWED,R]
SEC.STB;1 (727,1) 1./0. [3,54] [RWED,RWED,RWED,R]
VFDRV.STB;1 (756,1) 1./0. [3,54] [RWED,RWED,RWED,R]
XDT.STB;1 (764,1) 9./0. [3,54] [RWED,RWED,RWED,R]
ACC.TSK;1 (521,1) 97./0. C [3,54] [RWED,RWED,RWED,R]
ACCRES.TSK;1 (522,1) 57./0. C [3,54] [RWED,RWED,RWED,R]
ACD.TSK;1 (523,1) 37./0. C [3,54] [RWED,RWED,RWED,R]
ACNT.TSK;1 (524,1) 65./0. C [3,54] [RWED,RWED,RWED,R]
ACNTFSL.TSK;1 (525,1) 45./0. C [3,54] [RWED,RWED,RWED,R]
ACNTRES.TSK;1 (526,1) 46./0. C [3,54] [RWED,RWED,RWED,R]
ACO.TSK;1 (527,1) 46./0. C [3,54] [RWED,RWED,RWED,R]
ACS.TSK;1 (530,1) 18./0. C [3,54] [RWED,RWED,RWED,R]
ACSRES.TSK;1 (531,1) 8./0. C [3,54] [RWED,RWED,RWED,R]
BAD.TSK;1 (532,1) 60./0. C [3,54] [RWED,RWED,RWED,R]
BOO.TSK;1 (533,1) 43./0. C [3,54] [RWED,RWED,RWED,R]
BPR.TSK;1 (534,1) 86./0. C [3,54] [RWED,RWED,RWED,R]
BRO.TSK;1 (535,1) 36./0. C [3,54] [RWED,RWED,RWED,R]
BRU.TSK;1 (536,1) 160./0. C [3,54] [RWED,RWED,RWED,R]
BYE.TSK;1 (537,1) 20./0. C [3,54] [RWED,RWED,RWED,R]
CDA.TSK;1 (540,1) 214./0. C [3,54] [RWED,RWED,RWED,R]
CDARES.TSK;1 (541,1) 155./0. C [3,54] [RWED,RWED,RWED,R]
CFL.TSK;1 (542,1) 121./0. C [3,54] [RWED,RWED,RWED,R]
CFLFSL.TSK;1 (543,1) 101./0. C [3,54] [RWED,RWED,RWED,R]
CFLRES.TSK;1 (544,1) 102./0. C [3,54] [RWED,RWED,RWED,R]
CMP.TSK;1 (545,1) 58./0. C [3,54] [RWED,RWED,RWED,R]
CMPFSL.TSK;1 (546,1) 24./0. C [3,54] [RWED,RWED,RWED,R]
CMPRES.TSK;1 (547,1) 26./0. C [3,54] [RWED,RWED,RWED,R]
CON.TSK;1 (550,1) 84./0. C [3,54] [RWED,RWED,RWED,R]
COT.TSK;1 (551,1) 46./0. C [3,54] [RWED,RWED,RWED,R]
COTRES.TSK;1 (552,1) 24./0. C [3,54] [RWED,RWED,RWED,R]
CRF.TSK;1 (553,1) 41./0. C [3,54] [RWED,RWED,RWED,R]
CRFFSL.TSK;1 (554,1) 21./0. C [3,54] [RWED,RWED,RWED,R]
CRFRES.TSK;1 (555,1) 24./0. C [3,54] [RWED,RWED,RWED,R]
CRP.TSK;1 (556,1) 68./0. C [3,54] [RWED,RWED,RWED,R]
CRSIOP.TSK;1 (557,1) 18./0. C [3,54] [RWED,RWED,RWED,R]
DCL.TSK;1 (561,1) 442./256. C [3,54] [RWED,RWED,RWED,R]
DLCRSH.TSK;1 (562,1) 4./0. C [3,54] [RWED,RWED,RWED,R]
DLD.TSK;1 (564,1) 45./0. C [3,54] [RWED,RWED,RWED,R]
DMO.TSK;1 (565,1) 18./0. C [3,54] [RWED,RWED,RWED,R]
DMP.TSK;1 (566,1) 82./0. C [3,54] [RWED,RWED,RWED,R]
DMPFSL.TSK;1 (567,1) 47./0. C [3,54] [RWED,RWED,RWED,R]
DMPRES.TSK;1 (570,1) 55./0. C [3,54] [RWED,RWED,RWED,R]
DSC.TSK;1 (571,1) 86./0. C [3,54] [RWED,RWED,RWED,R]
DTE.TSK;1 (572,1) 77./0. C [3,54] [RWED,RWED,RWED,R]
DUCRSH.TSK;1 (573,1) 4./0. C [3,54] [RWED,RWED,RWED,R]
EDI.TSK;1 (575,1) 67./0. C [3,54] [RWED,RWED,RWED,R]
EDIFSL.TSK;1 (576,1) 35./0. C [3,54] [RWED,RWED,RWED,R]
EDIRES.TSK;1 (577,1) 41./0. C [3,54] [RWED,RWED,RWED,R]
EDT.TSK;1 (600,1) 221./0. C [3,54] [RWED,RWED,RWED,R]
EDTFSL.TSK;1 (601,1) 188./0. C [3,54] [RWED,RWED,RWED,R]
EDTRES.TSK;1 (602,1) 195./0. C [3,54] [RWED,RWED,RWED,R]
ELI.TSK;1 (603,1) 58./0. C [3,54] [RWED,RWED,RWED,R]
ELIRES.TSK;1 (604,1) 29./0. C [3,54] [RWED,RWED,RWED,R]
ERL.TSK;1 (605,1) 50./0. C [3,54] [RWED,RWED,RWED,R]
FCPLRG.TSK;1 (606,1) 39./0. C [3,54] [RWED,RWED,RWED,R]
FCPLRGID.TSK;1 (607,1) 63./0. C [3,54] [RWED,RWED,RWED,R]
FLX.TSK;1 (610,1) 138./0. C [3,54] [RWED,RWED,RWED,R]
FLXFSL.TSK;1 (611,1) 72./0. C [3,54] [RWED,RWED,RWED,R]
FLXRES.TSK;1 (612,1) 100./0. C [3,54] [RWED,RWED,RWED,R]
FMT.TSK;1 (613,1) 70./0. C [3,54] [RWED,RWED,RWED,R]
FTB.TSK;1 (614,1) 93./0. C [3,54] [RWED,RWED,RWED,R]
FTBFSL.TSK;1 (615,1) 73./0. C [3,54] [RWED,RWED,RWED,R]
FTBRES.TSK;1 (616,1) 74./0. C [3,54] [RWED,RWED,RWED,R]
FXR.TSK;1 (617,1) 6./0. C [3,54] [RWED,RWED,RWED,R]
F11MSG.TSK;1 (620,1) 11./0. C [3,54] [RWED,RWED,RWED,R]
HEL.TSK;1 (621,1) 77./0. C [3,54] [RWED,RWED,RWED,R]
HELRES.TSK;1 (622,1) 52./0. C [3,54] [RWED,RWED,RWED,R]
HFT.TSK;1 (623,1) 197./0. C [3,54] [RWED,RWED,RWED,R]
HRC.TSK;1 (624,1) 78./0. C [3,54] [RWED,RWED,RWED,R]
ICM.TSK;1 (625,1) 126./0. C [3,54] [RWED,RWED,RWED,R]
ICMFSL.TSK;1 (626,1) 103./0. C [3,54] [RWED,RWED,RWED,R]
ICMRES.TSK;1 (627,1) 105./0. C [3,54] [RWED,RWED,RWED,R]
INI.TSK;1 (630,1) 60./0. C [3,54] [RWED,RWED,RWED,R]
INS.TSK;1 (631,1) 45./0. C [3,54] [RWED,RWED,RWED,R]
IOX.TSK;1 (632,1) 122./0. C [3,54] [RWED,RWED,RWED,R]
IOXFSL.TSK;1 (633,1) 85./0. C [3,54] [RWED,RWED,RWED,R]
IOXRES.TSK;1 (634,1) 87./0. C [3,54] [RWED,RWED,RWED,R]
IPP.TSK;1 (635,1) 48./0. C [3,54] [RWED,RWED,RWED,R]
IPPRES.TSK;1 (636,1) 21./0. C [3,54] [RWED,RWED,RWED,R]
LBR.TSK;1 (637,1) 83./0. C [3,54] [RWED,RWED,RWED,R]
LBRFSL.TSK;1 (640,1) 41./0. C [3,54] [RWED,RWED,RWED,R]
LBRRES.TSK;1 (641,1) 51./0. C [3,54] [RWED,RWED,RWED,R]
LOA.TSK;1 (642,1) 50./0. C [3,54] [RWED,RWED,RWED,R]
LPP.TSK;1 (643,1) 75./0. C [3,54] [RWED,RWED,RWED,R]
LPPRES.TSK;1 (644,1) 29./0. C [3,54] [RWED,RWED,RWED,R]
MAC.TSK;1 (645,1) 99./0. C [3,54] [RWED,RWED,RWED,R]
MACFSL.TSK;1 (646,1) 72./0. C [3,54] [RWED,RWED,RWED,R]
MACRES.TSK;1 (647,1) 72./0. C [3,54] [RWED,RWED,RWED,R]
MAG.TSK;1 (650,1) 34./0. C [3,54] [RWED,RWED,RWED,R]
MCD.TSK;1 (651,1) 30./0. C [3,54] [RWED,RWED,RWED,R]
MCR.TSK;1 (652,1) 198./0. C [3,54] [RWED,RWED,RWED,R]
MCSVT.TSK;1 (653,1) 4./0. C [3,54] [RWED,RWED,RWED,R]
MCSVTW.TSK;1 (654,1) 5./0. C [3,54] [RWED,RWED,RWED,R]
MCSVTWF.TSK;1 (655,1) 5./0. C [3,54] [RWED,RWED,RWED,R]
MCSVTWG.TSK;1 (656,1) 5./0. C [3,54] [RWED,RWED,RWED,R]
MDM.TSK;1 (657,1) 5./0. C [3,54] [RWED,RWED,RWED,R]
MFT.TSK;1 (660,1) 216./0. C [3,54] [RWED,RWED,RWED,R]
MMCRSH.TSK;1 (661,1) 4./0. C [3,54] [RWED,RWED,RWED,R]
MOU.TSK;1 (663,1) 53./0. C [3,54] [RWED,RWED,RWED,R]
MSCRSH.TSK;1 (664,1) 4./0. C [3,54] [RWED,RWED,RWED,R]
MTAACP.TSK;1 (666,1) 87./0. C [3,54] [RWED,RWED,RWED,R]
MUCRSH.TSK;1 (667,1) 4./0. C [3,54] [RWED,RWED,RWED,R]
PAT.TSK;1 (671,1) 58./0. C [3,54] [RWED,RWED,RWED,R]
PATRES.TSK;1 (672,1) 24./0. C [3,54] [RWED,RWED,RWED,R]
PIP.TSK;1 (673,1) 88./0. C [3,54] [RWED,RWED,RWED,R]
PIPFSL.TSK;1 (674,1) 59./0. C [3,54] [RWED,RWED,RWED,R]
PIPRES.TSK;1 (675,1) 64./0. C [3,54] [RWED,RWED,RWED,R]
PMD.TSK;1 (676,1) 48./0. C [3,54] [RWED,RWED,RWED,R]
PMDRES.TSK;1 (677,1) 24./0. C [3,54] [RWED,RWED,RWED,R]
PMT.TSK;1 (700,1) 10./0. C [3,54] [RWED,RWED,RWED,R]
PSW.TSK;1 (701,1) 43./0. C [3,54] [RWED,RWED,RWED,R]
PSWRES.TSK;1 (702,1) 18./0. C [3,54] [RWED,RWED,RWED,R]
QMG.TSK;1 (703,1) 53./0. C [3,54] [RWED,RWED,RWED,R]
QMGCLI.TSK;1 (704,1) 130./0. C [3,54] [RWED,RWED,RWED,R]
QMGPRT.TSK;1 (705,1) 4./0. C [3,54] [RWED,RWED,RWED,R]
QMGRES.TSK;1 (706,1) 33./0. C [3,54] [RWED,RWED,RWED,R]
RCT.TSK;1 (707,1) 14./0. C [3,54] [RWED,RWED,RWED,R]
RDDRV.TSK;1 (710,1) 4./0. C [3,54] [RWED,RWED,RWED,R]
RMD.TSK;1 (712,1) 162./0. C [3,54] [RWED,RWED,RWED,R]
RMSBCK.TSK;1 (713,1) 56./0. C [3,54] [RWED,RWED,RWED,R]
RMSCNV.TSK;1 (714,1) 93./0. C [3,54] [RWED,RWED,RWED,R]
RMSDEF.TSK;1 (715,1) 77./0. C [3,54] [RWED,RWED,RWED,R]
RMSDES.TSK;1 (716,1) 116./0. C [3,54] [RWED,RWED,RWED,R]
RMSDSP.TSK;1 (717,1) 50./0. C [3,54] [RWED,RWED,RWED,R]
RMSIFL.TSK;1 (720,1) 84./0. C [3,54] [RWED,RWED,RWED,R]
RMSRES.TSK;1 (721,1) 18./0. C [3,54] [RWED,RWED,RWED,R]
RMSRST.TSK;1 (723,1) 59./0. C [3,54] [RWED,RWED,RWED,R]
RPT.TSK;1 (724,1) 145./0. C [3,54] [RWED,RWED,RWED,R]
RPTFSL.TSK;1 (725,1) 96./0. C [3,54] [RWED,RWED,RWED,R]
SEC.TSK;1 (726,1) 3./0. C [3,54] [RWED,RWED,RWED,R]
SHA.TSK;1 (730,1) 61./0. C [3,54] [RWED,RWED,RWED,R]
SHC.TSK;1 (731,1) 46./0. C [3,54] [RWED,RWED,RWED,R]
SHE.TSK;1 (732,1) 15./0. C [3,54] [RWED,RWED,RWED,R]
SHF.TSK;1 (733,1) 5./0. C [3,54] [RWED,RWED,RWED,R]
SHUTUP.TSK;1 (734,1) 17./0. C [3,54] [RWED,RWED,RWED,R]
SLP.TSK;1 (735,1) 55./0. C [3,54] [RWED,RWED,RWED,R]
SLPRES.TSK;1 (736,1) 27./0. C [3,54] [RWED,RWED,RWED,R]
SYL.TSK;1 (737,1) 41./0. C [3,54] [RWED,RWED,RWED,R]
SYLRES.TSK;1 (740,1) 23./0. C [3,54] [RWED,RWED,RWED,R]
TDX.TSK;1 (741,1) 24./0. C [3,54] [RWED,RWED,RWED,R]
TKB.TSK;1 (742,1) 203./0. C [3,54] [RWED,RWED,RWED,R]
TKBFSL.TSK;1 (743,1) 173./0. C [3,54] [RWED,RWED,RWED,R]
TKBRES.TSK;1 (744,1) 171./0. C [3,54] [RWED,RWED,RWED,R]
TKN.TSK;1 (745,1) 11./0. C [3,54] [RWED,RWED,RWED,R]
UFD.TSK;1 (746,1) 15./0. C [3,54] [RWED,RWED,RWED,R]
UML.TSK;1 (747,1) 22./0. C [3,54] [RWED,RWED,RWED,R]
UNL.TSK;1 (752,1) 39./0. C [3,54] [RWED,RWED,RWED,R]
UNLRES.TSK;1 (753,1) 20./0. C [3,54] [RWED,RWED,RWED,R]
URT.TSK;1 (750,1) 12./0. C [3,54] [RWED,RWED,RWED,R]
URTRES.TSK;1 (751,1) 10./0. C [3,54] [RWED,RWED,RWED,R]
VCPRES.TSK;1 (754,1) 124./0. C [3,54] [RWED,RWED,RWED,R]
VFDRV.TSK;1 (755,1) 19./0. C [3,54] [RWED,RWED,RWED,R]
VFY.TSK;1 (757,1) 64./0. C [3,54] [RWED,RWED,RWED,R]
VFYFSL.TSK;1 (760,1) 33./0. C [3,54] [RWED,RWED,RWED,R]
VFYRES.TSK;1 (761,1) 38./0. C [3,54] [RWED,RWED,RWED,R]
VMR.TSK;1 (762,1) 212./0. C [3,54] [RWED,RWED,RWED,R]
XDT.TSK;1 (763,1) 23./0. C [3,54] [RWED,RWED,RWED,R]
ZAP.TSK;1 (765,1) 58./0. C [3,54] [RWED,RWED,RWED,R]
ZAPRES.TSK;1 (766,1) 27./0. C [3,54] [RWED,RWED,RWED,R]

Total of 10126./10126. blocks in 168. files

Directory [6,54]

BRUSYS.STB;1 (772,1) 24./0. [6,54] [RWED,RWED,RWED,R]
BRUSYS.SYS;1 (771,1) 434./256. C [6,54] [RWED,RWED,RWED,R]
VMRM48.TSK;1 (773,1) 165./0. C [6,54] [RWED,RWED,RWED,R]

Total of 623./623. blocks in 3. files

Directory [11,10]

ACSUB.MAC;1 (1103,1) 25./0. [11,10] [RWED,RWED,RWED,R]
AFSUB.MAC;1 (1033,1) 8./0. [11,10] [RWED,RWED,RWED,R]
BFCTL.MAC;1 (1272,1) 17./0. [11,10] [RWED,RWED,RWED,R]
BSDRV.MAC;1 (1030,1) 34./0. [11,10] [RWED,RWED,RWED,R]
CEXBF.MAC;1 (1230,1) 139./0. [11,10] [RWED,RWED,RWED,R]
CODRV.MAC;1 (1133,1) 10./0. [11,10] [RWED,RWED,RWED,R]
CORAL.MAC;1 (1275,1) 57./0. [11,10] [RWED,RWED,RWED,R]
CPR.MAC;1 (1305,1) 38./0. [11,10] [RWED,RWED,RWED,R]
CRASH.MAC;1 (1255,1) 130./0. [11,10] [RWED,RWED,RWED,R]
CRDRV.MAC;1 (1134,1) 36./0. [11,10] [RWED,RWED,RWED,R]
CTDRV.MAC;1 (774,1) 18./0. [11,10] [RWED,RWED,RWED,R]
CVRTM.MAC;1 (775,1) 4./0. [11,10] [RWED,RWED,RWED,R]
DBDRV.MAC;1 (1267,1) 79./0. [11,10] [RWED,RWED,RWED,R]
DCCHE.MAC;1 (1224,1) 48./0. [11,10] [RWED,RWED,RWED,R]
DCCTL.MAC;1 (1256,1) 60./0. [11,10] [RWED,RWED,RWED,R]
DCPRE.MAC;1 (1225,1) 15./0. [11,10] [RWED,RWED,RWED,R]
DCQUE.MAC;1 (1223,1) 25./0. [11,10] [RWED,RWED,RWED,R]
DCROP.MAC;1 (1245,1) 77./0. [11,10] [RWED,RWED,RWED,R]
DCSUB.MAC;1 (1274,1) 97./0. [11,10] [RWED,RWED,RWED,R]
DCWOP.MAC;1 (1276,1) 51./0. [11,10] [RWED,RWED,RWED,R]
DDDRV.MAC;1 (1116,1) 66./0. [11,10] [RWED,RWED,RWED,R]
DKDRV.MAC;1 (776,1) 21./0. [11,10] [RWED,RWED,RWED,R]
DLDRV.MAC;1 (1131,1) 59./0. [11,10] [RWED,RWED,RWED,R]
DLPRE.MAC;1 (1056,1) 1./0. [11,10] [RWED,RWED,RWED,R]
DLTBL.MAC;1 (1070,1) 6./0. [11,10] [RWED,RWED,RWED,R]
DLUPD.MAC;1 (1107,1) 1./0. [11,10] [RWED,RWED,RWED,R]
DMDRV.MAC;1 (1216,1) 86./0. [11,10] [RWED,RWED,RWED,R]
DPDRV.MAC;1 (1000,1) 23./0. [11,10] [RWED,RWED,RWED,R]
DQDRV.MAC;1 (1024,1) 62./0. [11,10] [RWED,RWED,RWED,R]
DRABO.MAC;1 (1105,1) 9./0. [11,10] [RWED,RWED,RWED,R]
DRAFF.MAC;1 (1001,1) 6./0. [11,10] [RWED,RWED,RWED,R]
DRASG.MAC;1 (1165,1) 41./0. [11,10] [RWED,RWED,RWED,R]
DRATX.MAC;1 (1075,1) 9./2. [11,10] [RWED,RWED,RWED,R]
DRCIN.MAC;1 (1111,1) 22./0. [11,10] [RWED,RWED,RWED,R]
DRCLI.MAC;1 (1160,1) 40./0. [11,10] [RWED,RWED,RWED,R]
DRCMT.MAC;1 (1053,1) 4./0. [11,10] [RWED,RWED,RWED,R]
DRCPC.MAC;1 (1060,1) 5./0. [11,10] [RWED,RWED,RWED,R]
DRCRV.MAC;1 (1206,1) 29./0. [11,10] [RWED,RWED,RWED,R]
DRDAR.MAC;1 (1002,1) 6./0. [11,10] [RWED,RWED,RWED,R]
DRDCP.MAC;1 (1003,1) 7./0. [11,10] [RWED,RWED,RWED,R]
DRDRV.MAC;1 (1270,1) 88./0. [11,10] [RWED,RWED,RWED,R]
DRDSP.MAC;1 (1215,1) 42./0. [11,10] [RWED,RWED,RWED,R]
DREIF.MAC;1 (1262,1) 69./0. [11,10] [RWED,RWED,RWED,R]
DREXP.MAC;1 (1130,1) 29./0. [11,10] [RWED,RWED,RWED,R]
DRFEA.MAC;1 (1114,1) 10./0. [11,10] [RWED,RWED,RWED,R]
DRGCL.MAC;1 (1124,1) 40./0. [11,10] [RWED,RWED,RWED,R]
DRGEF.MAC;1 (1077,1) 16./0. [11,10] [RWED,RWED,RWED,R]
DRGIN.MAC;1 (1257,1) 154./0. [11,10] [RWED,RWED,RWED,R]
DRGLI.MAC;1 (1200,1) 21./0. [11,10] [RWED,RWED,RWED,R]
DRGPP.MAC;1 (1034,1) 11./0. [11,10] [RWED,RWED,RWED,R]
DRGSS.MAC;1 (1265,1) 4./0. [11,10] [RWED,RWED,RWED,R]
DRGTK.MAC;1 (1125,1) 11./0. [11,10] [RWED,RWED,RWED,R]
DRGTP.MAC;1 (1222,1) 18./0. [11,10] [RWED,RWED,RWED,R]
DRLOG.MAC;1 (1162,1) 212./0. [11,10] [RWED,RWED,RWED,R]
DRMAP.MAC;1 (1221,1) 105./0. [11,10] [RWED,RWED,RWED,R]
DRMKT.MAC;1 (1211,1) 17./0. [11,10] [RWED,RWED,RWED,R]
DRPFN.MAC;1 (1202,1) 421./256. [11,10] [RWED,RWED,RWED,R]
DRPUT.MAC;1 (1041,1) 24./4. [11,10] [RWED,RWED,RWED,R]
DRQIO.MAC;1 (1207,1) 80./0. [11,10] [RWED,RWED,RWED,R]
DRRAS.MAC;1 (1277,1) 39./0. [11,10] [RWED,RWED,RWED,R]
DRREG.MAC;1 (1250,1) 36./0. [11,10] [RWED,RWED,RWED,R]
DRREQ.MAC;1 (1104,1) 8./0. [11,10] [RWED,RWED,RWED,R]
DRRES.MAC;1 (1054,1) 23./0. [11,10] [RWED,RWED,RWED,R]
DRSCA.MAC;1 (1076,1) 18./0. [11,10] [RWED,RWED,RWED,R]
DRSED.MAC;1 (1040,1) 26./23. [11,10] [RWED,RWED,RWED,R]
DRSMG.MAC;1 (1100,1) 9./0. [11,10] [RWED,RWED,RWED,R]
DRSPW.MAC;1 (1220,1) 84./0. [11,10] [RWED,RWED,RWED,R]
DRSRF.MAC;1 (1061,1) 17./0. [11,10] [RWED,RWED,RWED,R]
DRSST.MAC;1 (1004,1) 10./0. [11,10] [RWED,RWED,RWED,R]
DRSUB.MAC;1 (1237,1) 102./0. [11,10] [RWED,RWED,RWED,R]
DRSWS.MAC;1 (1050,1) 8./0. [11,10] [RWED,RWED,RWED,R]
DRTBL.MAC;1 (1214,1) 26./0. [11,10] [RWED,RWED,RWED,R]
DR1ND.MAC;1 (1026,1) 1./0. [11,10] [RWED,RWED,RWED,R]
DR1ST.MAC;1 (1025,1) 1./0. [11,10] [RWED,RWED,RWED,R]
DSAPRE.MAC;1 (1271,1) 26./0. [11,10] [RWED,RWED,RWED,R]
DSDRV.MAC;1 (1106,1) 37./0. [11,10] [RWED,RWED,RWED,R]
DTDRV.MAC;1 (1005,1) 22./0. [11,10] [RWED,RWED,RWED,R]
DU.MAC;1 (1177,1) 2./0. [11,10] [RWED,RWED,RWED,R]
DUPRE.MAC;1 (1063,1) 1./0. [11,10] [RWED,RWED,RWED,R]
DVINT.MAC;1 (1102,1) 38./0. [11,10] [RWED,RWED,RWED,R]
DXDRV.MAC;1 (1117,1) 35./0. [11,10] [RWED,RWED,RWED,R]
DYCOM.MAC;1 (1057,1) 2./0. [11,10] [RWED,RWED,RWED,R]
DYDRV.MAC;1 (1226,1) 76./0. [11,10] [RWED,RWED,RWED,R]
EMDRV.MAC;1 (1036,1) 36./19. [11,10] [RWED,RWED,RWED,R]
ERROR.MAC;1 (1170,1) 22./0. [11,10] [RWED,RWED,RWED,R]
ERSUB.MAC;1 (1115,1) 76./0. [11,10] [RWED,RWED,RWED,R]
EVENT.MAC;1 (1031,1) 12./0. [11,10] [RWED,RWED,RWED,R]
EXDBT.MAC;1 (1132,1) 110./0. [11,10] [RWED,RWED,RWED,R]
EXEND.MAC;1 (1007,1) 1./0. [11,10] [RWED,RWED,RWED,R]
EXESB.MAC;1 (1173,1) 60./0. [11,10] [RWED,RWED,RWED,R]
EXPOL.MAC;1 (1037,1) 2./0. [11,10] [RWED,RWED,RWED,R]
ICEND.MAC;1 (1300,1) 2./0. [11,10] [RWED,RWED,RWED,R]
IISRV.MAC;1 (1205,1) 66./0. [11,10] [RWED,RWED,RWED,R]
INICRA.MAC;1 (1174,1) 6./0. [11,10] [RWED,RWED,RWED,R]
INITL.MAC;1 (1264,1) 116./0. [11,10] [RWED,RWED,RWED,R]
IOSUB.MAC;1 (1243,1) 133./0. [11,10] [RWED,RWED,RWED,R]
KXDRV.MAC;1 (1203,1) 116./0. [11,10] [RWED,RWED,RWED,R]
LADRV.MAC;1 (1227,1) 93./0. [11,10] [RWED,RWED,RWED,R]
LOADR.MAC;1 (1244,1) 98./0. [11,10] [RWED,RWED,RWED,R]
LOWCR.MAC;1 (1266,1) 41./0. [11,10] [RWED,RWED,RWED,R]
LPDRV.MAC;1 (1153,1) 65./0. [11,10] [RWED,RWED,RWED,R]
LRDRV.MAC;1 (1163,1) 43./0. [11,10] [RWED,RWED,RWED,R]
LTDRV.MAC;1 (1032,1) 50./0. [11,10] [RWED,RWED,RWED,R]
MDSUB.MAC;1 (1236,1) 101./0. [11,10] [RWED,RWED,RWED,R]
MEMAP.MAC;1 (1232,1) 45./0. [11,10] [RWED,RWED,RWED,R]
MKDRV.MAC;1 (1012,1) 67./0. [11,10] [RWED,RWED,RWED,R]
MLOCK.MAC;1 (1204,1) 15./0. [11,10] [RWED,RWED,RWED,R]
MMDRV.MAC;1 (1120,1) 91./0. [11,10] [RWED,RWED,RWED,R]
MMPRE.MAC;1 (1127,1) 1./0. [11,10] [RWED,RWED,RWED,R]
MPENT.MAC;1 (1261,1) 18./0. [11,10] [RWED,RWED,RWED,R]
MPTBL.MAC;1 (1035,1) 4./1. [11,10] [RWED,RWED,RWED,R]
MSCPDRV.MAC;1 (1246,1) 305./256. [11,10] [RWED,RWED,RWED,R]
MSDRV.MAC;1 (1254,1) 95./0. [11,10] [RWED,RWED,RWED,R]
MSPRE.MAC;1 (1055,1) 1./0. [11,10] [RWED,RWED,RWED,R]
MTDRV.MAC;1 (1121,1) 56./0. [11,10] [RWED,RWED,RWED,R]
MU.MAC;1 (1176,1) 4./0. [11,10] [RWED,RWED,RWED,R]
MUPRE.MAC;1 (1065,1) 1./0. [11,10] [RWED,RWED,RWED,R]
NETCM.MAC;1 (1110,1) 22./0. [11,10] [RWED,RWED,RWED,R]
NETLC.MAC;1 (1027,1) 2./0. [11,10] [RWED,RWED,RWED,R]
NLDRV.MAC;1 (1013,1) 4./0. [11,10] [RWED,RWED,RWED,R]
NVRUP.MAC;1 (1043,1) 6./0. [11,10] [RWED,RWED,RWED,R]
OLRSR.MAC;1 (1253,1) 34./0. [11,10] [RWED,RWED,RWED,R]
PARTY.MAC;1 (1217,1) 34./0. [11,10] [RWED,RWED,RWED,R]
PLSUB.MAC;1 (1233,1) 61./0. [11,10] [RWED,RWED,RWED,R]
POWER.MAC;1 (1201,1) 57./0. [11,10] [RWED,RWED,RWED,R]
PPDRV.MAC;1 (1014,1) 13./0. [11,10] [RWED,RWED,RWED,R]
PRDRV.MAC;1 (1015,1) 12./0. [11,10] [RWED,RWED,RWED,R]
PUCOM.MAC;1 (1231,1) 78./0. [11,10] [RWED,RWED,RWED,R]
QITBL.MAC;1 (1122,1) 11./0. [11,10] [RWED,RWED,RWED,R]
QUEUE.MAC;1 (1112,1) 53./0. [11,10] [RWED,RWED,RWED,R]
RDDRV.MAC;1 (1273,1) 34./0. [11,10] [RWED,RWED,RWED,R]
REQSB.MAC;1 (1252,1) 187./0. [11,10] [RWED,RWED,RWED,R]
SAVXT.MAC;1 (1044,1) 16./0. [11,10] [RWED,RWED,RWED,R]
SFVC2.MAC;1 (1242,1) 48./0. [11,10] [RWED,RWED,RWED,R]
SSTSR.MAC;1 (1123,1) 42./0. [11,10] [RWED,RWED,RWED,R]
SYSCM.MAC;1 (1247,1) 73./0. [11,10] [RWED,RWED,RWED,R]
SYSDF.MAC;1 (1067,1) 13./0. [11,10] [RWED,RWED,RWED,R]
SYSID.MAC;1 (1301,1) 4./0. [11,10] [RWED,RWED,RWED,R]
SYSXT.MAC;1 (1263,1) 171./0. [11,10] [RWED,RWED,RWED,R]
TDSCH.MAC;1 (1234,1) 35./0. [11,10] [RWED,RWED,RWED,R]
TTATT.MAC;1 (1150,1) 198./95. [11,10] [RWED,RWED,RWED,R]
TTCAN.MAC;1 (1155,1) 30./0. [11,10] [RWED,RWED,RWED,R]
TTCIS.MAC;1 (1235,1) 20./5. [11,10] [RWED,RWED,RWED,R]
TTCT.MAC;1 (1141,1) 30./0. [11,10] [RWED,RWED,RWED,R]
TTDAT.MAC;1 (1151,1) 96./0. [11,10] [RWED,RWED,RWED,R]
TTFP.MAC;1 (1147,1) 27./0. [11,10] [RWED,RWED,RWED,R]
TTICH.MAC;1 (1212,1) 200./0. [11,10] [RWED,RWED,RWED,R]
TTINI.MAC;1 (1213,1) 79./0. [11,10] [RWED,RWED,RWED,R]
TTJZ.MAC;1 (1140,1) 7./0. [11,10] [RWED,RWED,RWED,R]
TTLH.MAC;1 (1260,1) 105./0. [11,10] [RWED,RWED,RWED,R]
TTMAC.MAC;1 (1154,1) 22./0. [11,10] [RWED,RWED,RWED,R]
TTMIS.MAC;1 (1144,1) 7./0. [11,10] [RWED,RWED,RWED,R]
TTMOD.MAC;1 (1241,1) 26./0. [11,10] [RWED,RWED,RWED,R]
TTODN.MAC;1 (1146,1) 18./0. [11,10] [RWED,RWED,RWED,R]
TTOIS.MAC;1 (1137,1) 15./0. [11,10] [RWED,RWED,RWED,R]
TTRW.MAC;1 (1166,1) 114./0. [11,10] [RWED,RWED,RWED,R]
TTSUB.MAC;1 (1167,1) 62./0. [11,10] [RWED,RWED,RWED,R]
TTTBL.MAC;1 (1175,1) 21./0. [11,10] [RWED,RWED,RWED,R]
TTUS.MAC;1 (1145,1) 14./0. [11,10] [RWED,RWED,RWED,R]
TTYH.MAC;1 (1240,1) 42./0. [11,10] [RWED,RWED,RWED,R]
TTYHV.MAC;1 (1251,1) 50./0. [11,10] [RWED,RWED,RWED,R]
TTYJ.MAC;1 (1135,1) 6./3. [11,10] [RWED,RWED,RWED,R]
TTYL.MAC;1 (1157,1) 14./0. [11,10] [RWED,RWED,RWED,R]
TTYZ.MAC;1 (1152,1) 18./0. [11,10] [RWED,RWED,RWED,R]
UTLDEF.MAC;1 (1051,1) 4./0. [11,10] [RWED,RWED,RWED,R]
UTSUB.MAC;1 (1017,1) 11./0. [11,10] [RWED,RWED,RWED,R]
VIDSUB.MAC;1 (1042,1) 6./0. [11,10] [RWED,RWED,RWED,R]
VTDRV.MAC;1 (1161,1) 53./0. [11,10] [RWED,RWED,RWED,R]
XEDRV.MAC;1 (1156,1) 419./256. [11,10] [RWED,RWED,RWED,R]
XEPRE.MAC;1 (1136,1) 1./0. [11,10] [RWED,RWED,RWED,R]
XMDRV.MAC;1 (1142,1) 66./0. [11,10] [RWED,RWED,RWED,R]
XWDRV.MAC;1 (1020,1) 25./0. [11,10] [RWED,RWED,RWED,R]
XXATT.MAC;1 (1126,1) 20./0. [11,10] [RWED,RWED,RWED,R]
XXDRV.MAC;1 (1210,1) 46./0. [11,10] [RWED,RWED,RWED,R]
XXFIN.MAC;1 (1172,1) 25./0. [11,10] [RWED,RWED,RWED,R]
XXPRE.MAC;1 (1171,1) 49./0. [11,10] [RWED,RWED,RWED,R]
XXTTI.MAC;1 (1164,1) 42./0. [11,10] [RWED,RWED,RWED,R]

Total of 8440./8440. blocks in 177. files

Directory [11,24]


Total of 0./0. blocks in 0. files

Directory [11,34]


Total of 0./0. blocks in 0. files

Directory [11,40]


Total of 0./0. blocks in 0. files

Directory [12,24]

DLD.OBJ;1 (777,2) 19./0. [12,24] [RWED,RWED,RWED,R]

Total of 19./19. blocks in 1. files

Directory [45,10]

KRATE.B2S;1 (1327,1) 7./0. [45,10] [RWED,RWED,RWED,R]
KRATE.FTN;1 (1010,2) 7./0. [45,10] [RWED,RWED,RWED,R]
KAADMP.MAC;1 (1011,2) 12./0. [45,10] [RWED,RWED,RWED,R]
KAADRV.MAC;1 (1335,1) 24./0. [45,10] [RWED,RWED,RWED,R]
KAASO3.MAC;1 (1016,2) 5./0. [45,10] [RWED,RWED,RWED,R]
KADAGR.MAC;1 (1021,2) 6./0. [45,10] [RWED,RWED,RWED,R]
KADDRV.MAC;1 (1022,2) 14./0. [45,10] [RWED,RWED,RWED,R]
KADGCH.MAC;1 (1332,1) 20./5. [45,10] [RWED,RWED,RWED,R]
KADINP.MAC;1 (1340,1) 13./0. [45,10] [RWED,RWED,RWED,R]
KADIN0.MAC;1 (1023,2) 6./0. [45,10] [RWED,RWED,RWED,R]
KADIN1.MAC;1 (1045,2) 8./0. [45,10] [RWED,RWED,RWED,R]
KADIN2.MAC;1 (1046,2) 6./0. [45,10] [RWED,RWED,RWED,R]
KADIN3.MAC;1 (1047,2) 8./0. [45,10] [RWED,RWED,RWED,R]
KADIN4.MAC;1 (1052,2) 6./0. [45,10] [RWED,RWED,RWED,R]
KADIN5.MAC;1 (1062,2) 8./0. [45,10] [RWED,RWED,RWED,R]
KADSWP.MAC;1 (1341,1) 7./1. [45,10] [RWED,RWED,RWED,R]
KAST.MAC;1 (1064,2) 14./9. [45,10] [RWED,RWED,RWED,R]
KBFRMG.MAC;1 (1066,2) 13./0. [45,10] [RWED,RWED,RWED,R]
KBFSTS.MAC;1 (1333,1) 11./9. [45,10] [RWED,RWED,RWED,R]
KCLOKA.MAC;1 (1071,2) 5./0. [45,10] [RWED,RWED,RWED,R]
KCLOKB.MAC;1 (1006,2) 10./0. [45,10] [RWED,RWED,RWED,R]
KCOMM.MAC;1 (1073,2) 5./0. [45,10] [RWED,RWED,RWED,R]
KCVADF.MAC;1 (1074,2) 6./0. [45,10] [RWED,RWED,RWED,R]
KDIGO.MAC;1 (1101,2) 10./0. [45,10] [RWED,RWED,RWED,R]
KDIO.MAC;1 (1334,1) 11./0. [45,10] [RWED,RWED,RWED,R]
KDISWP.MAC;1 (1113,2) 7./0. [45,10] [RWED,RWED,RWED,R]
KDOSWP.MAC;1 (1143,2) 7./0. [45,10] [RWED,RWED,RWED,R]
KDRDRV.MAC;1 (1336,1) 30./0. [45,10] [RWED,RWED,RWED,R]
KDSCAD.MAC;1 (1302,2) 4./0. [45,10] [RWED,RWED,RWED,R]
KDSDGO.MAC;1 (1303,2) 4./0. [45,10] [RWED,RWED,RWED,R]
KDVDF.MAC;1 (1304,2) 11./0. [45,10] [RWED,RWED,RWED,R]
KEFQA.MAC;1 (1306,2) 10./0. [45,10] [RWED,RWED,RWED,R]
KFLT16.MAC;1 (1307,1) 6./0. [45,10] [RWED,RWED,RWED,R]
KGHIST.MAC;1 (1326,1) 21./0. [45,10] [RWED,RWED,RWED,R]
KIESTO.MAC;1 (1310,1) 4./0. [45,10] [RWED,RWED,RWED,R]
KKWDRV.MAC;1 (1311,1) 18./0. [45,10] [RWED,RWED,RWED,R]
KLQSUB.MAC;1 (1312,1) 7./0. [45,10] [RWED,RWED,RWED,R]
KMUL.MAC;1 (1314,1) 3./0. [45,10] [RWED,RWED,RWED,R]
KPAA.MAC;1 (1313,1) 7./0. [45,10] [RWED,RWED,RWED,R]
KPRE.MAC;1 (1320,1) 4./0. [45,10] [RWED,RWED,RWED,R]
KRCLKB.MAC;1 (1316,1) 5./0. [45,10] [RWED,RWED,RWED,R]
KRLOC.MAC;1 (1317,1) 4./1. [45,10] [RWED,RWED,RWED,R]
KRWBF.MAC;1 (1315,1) 12./0. [45,10] [RWED,RWED,RWED,R]
KSET.MAC;1 (1331,1) 13./0. [45,10] [RWED,RWED,RWED,R]
KSTADC.MAC;1 (1337,1) 7./0. [45,10] [RWED,RWED,RWED,R]
KSTB.MAC;1 (1321,1) 7./0. [45,10] [RWED,RWED,RWED,R]
KSTIBF.MAC;1 (1322,1) 5./4. [45,10] [RWED,RWED,RWED,R]
KSTOP.MAC;1 (1323,1) 5./0. [45,10] [RWED,RWED,RWED,R]
KSUB.MAC;1 (1325,1) 10./0. [45,10] [RWED,RWED,RWED,R]
KSWDF.MAC;1 (1072,2) 13./0. [45,10] [RWED,RWED,RWED,R]
LABMAC.MAC;1 (1324,1) 6./0. [45,10] [RWED,RWED,RWED,R]
KMLB.MLB;1 (1330,1) 21./0. [45,10] [RWED,RWED,RWED,R]

Total of 493./493. blocks in 52. files

Directory [45,24]

ASMK.CMD;1 (1343,1) 1./0. [45,24] [RWED,RWED,RWED,R]
KCLEAN.CMD;1 (1344,1) 1./0. [45,24] [RWED,RWED,RWED,R]
KCOMBLD.CMD;1 (1350,1) 1./0. [45,24] [RWED,RWED,RWED,R]
KLABMLB.CMD;1 (1342,1) 1./0. [45,24] [RWED,RWED,RWED,R]
KLIBBLD.CMD;1 (1345,1) 1./0. [45,24] [RWED,RWED,RWED,R]
KLIBRP.CMD;1 (1346,1) 1./0. [45,24] [RWED,RWED,RWED,R]
K4ASM.CMD;1 (1347,1) 1./0. [45,24] [RWED,RWED,RWED,R]

Total of 7./7. blocks in 7. files

Directory [200,1]

LOGIN.CMD;1 (1351,1) 1./0. [200,1] [RWED,R,R,R]

Total of 1./1. blocks in 1. files

Directory [USER]

BATCH.BAT;1 (1352,1) 1./0. [200,1] [RWED,R,R,R]
CLEAN.CMD;1 (1353,1) 1./0. [200,1] [RWED,R,R,R]
CLKGEN.CMD;1 (1354,1) 8./0. [200,1] [RWED,R,R,R]
DELETE.CMD;1 (1355,1) 1./0. [200,1] [RWED,R,R,R]
LOGIN.CMD;1 (1356,1) 1./0. [200,1] [RWED,R,R,R]
MYDISK.CMD;1 (1357,1) 4./0. [200,1] [RWED,R,R,R]
SHAVE.CMD;1 (1360,1) 1./0. [200,1] [RWED,R,R,R]
SHOW.CMD;1 (1361,1) 1./0. [200,1] [RWED,R,R,R]
TMCLI.FTN;1 (1362,1) 22./0. [200,1] [RWED,R,R,R]
BMDRV.MAC;1 (1363,1) 50./0. [200,1] [RWED,R,R,R]
BMTAB.MAC;1 (1364,1) 5./0. [200,1] [RWED,R,R,R]
CLOCK.MAC;1 (1365,1) 47./30. [200,1] [RWED,R,R,R]
HIYA.MAC;1 (1366,1) 8./0. [200,1] [RWED,R,R,R]
STARS.MAC;1 (1367,1) 2./0. [200,1] [RWED,R,R,R]
TMCLI.MAC;1 (1370,1) 22./13. [200,1] [RWED,R,R,R]
XXDRV.MAC;1 (1371,1) 22./0. [200,1] [RWED,R,R,R]
XXTAB.MAC;1 (1372,1) 11./0. [200,1] [RWED,R,R,R]
ERROR.TSK;1 (1373,1) 4./0. C [200,1] [RWED,R,R,R]
SEVERE.TSK;1 (1374,1) 4./0. C [200,1] [RWED,R,R,R]
SUCCESS.TSK;1 (1375,1) 4./0. C [200,1] [RWED,R,R,R]
WARNING.TSK;1 (1376,1) 4./0. C [200,1] [RWED,R,R,R]
FLU.TXT;1 (1377,1) 1./0. [200,1] [RWED,R,R,R]
FLY.TXT;3 (1400,1) 1./0. [200,1] [RWED,R,R,R]
FLY.TXT;2 (1401,1) 1./0. [200,1] [RWED,R,R,R]
FLY.TXT;1 (1402,1) 1./0. [200,1] [RWED,R,R,R]
HELLO.TXT;1 (1403,1) 2./0. [200,1] [RWED,R,R,R]
LONG.TXT;1 (1404,1) 25./0. [200,1] [RWED,R,R,R]
WHATSHERE.TXT;1 (1405,1) 10./0. [200,1] [RWED,R,R,R]
GSA.MAC;1 (1406,1) 19./0. [200,1] [RWED,R,R,R]
SEARCH.MAC;1 (1407,1) 10./0. [200,1] [RWED,R,R,R]
RENAME.MAC;1 (1410,1) 12./0. [200,1] [RWED,R,R,R]
ERASE.MAC;1 (1411,1) 10./0. [200,1] [RWED,R,R,R]
PARSE.MAC;1 (1412,1) 11./0. [200,1] [RWED,R,R,R]
SEARCH.TSK;1 (1413,1) 26./0. C [200,1] [RWED,R,R,R]
RENAME.TSK;1 (1414,1) 26./0. C [200,1] [RWED,R,R,R]
ERASE.TSK;1 (1415,1) 25./0. C [200,1] [RWED,R,R,R]
PARSE.TSK;1 (1416,1) 22./0. C [200,1] [RWED,R,R,R]

Total of 425./425. blocks in 37. files

Directory [200,200]

SYSGEN.CLB;1 (1422,1) 1270./512. C [200,200][RWED,RWED,RWED,R]
BLDLAINIT.CMD;1 (1423,1) 12./0. [200,200][RWED,RWED,RWED,R]
SGNBLDBLD.CMD;1 (1425,1) 57./0. [200,200][RWED,RWED,RWED,R]
SGNKLAB.CMD;1 (1424,1) 71./0. [200,200][RWED,RWED,RWED,R]
SGNPREFIX.CMD;1 (1421,1) 12./8. [200,200][RWED,RWED,RWED,R]
SYSGEN.CMD;1 (1420,1) 3./0. [200,200][RWED,RWED,RWED,R]
RSXMC0.MAC;1 (1417,1) 16./0. [200,200][RWED,RWED,RWED,R]
WRKEXECOP.TXT;1 (1426,1) 7./0. [200,200][RWED,RWED,RWED,R]
WRKMASSCO.TXT;1 (1427,1) 2./0. [200,200][RWED,RWED,RWED,R]
WRKMASSDR.TXT;1 (1430,1) 4./0. [200,200][RWED,RWED,RWED,R]
WRKUNIBCO.TXT;1 (1431,1) 3./0. [200,200][RWED,RWED,RWED,R]
WRKUNIBDR.TXT;1 (1432,1) 4./0. [200,200][RWED,RWED,RWED,R]

Total of 1461./1461. blocks in 12. files

Grand Total of 36083./36083. blocks in 826. files in 26. directories


Из занимательного - блоки заголовков идут вперемешку с блоками данных. Видимо, всё определяется размерами буферов в BRU - сколько она может считать заголовков перед тем как память закончится - и тогда сбрасывает на ленту, а потом пишет данные из этих файлов, потом следующая порция заголовков, опять данные и пока всё выбранное не скопирует

Hunta
27.05.2025, 09:39
С датами было всё просто, но наводит на размышление, что надо это поле переделать :)

Ещё из занимательного - в некоторых (их количество - приличное) заголовках файлов обнулены (так называемые) Retrieval Pointers (по сути - описание - какие блоки на диске принадлежат данному файлу). Там, где не описано - совпадает с информацией, которую можно собрать из заголовка блока данных DATA. Чем так специфичны "обнулённые" файлы - пока не понял.



Volume Information
Class: ODS-1 (401)
Device: Tape
Volume label: RSX11MPBL87
Owner: [1,1]
Creation Date:18-DEC-1998 02:35:30
Serial Number:100000000
Protection: [RWCD,RWCD,RWCD,RWCD]
Default: [RWED,RWED,RWED,R]
Processor: ImageUtils


Directory [0,0]

RSX11.SYS;1 (37,1) 26./0. C 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]

Total of 26./26. blocks in 1. files

Directory [1,1]

KITIDENT.DAT;1 (40,1) 2./0. 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]
VERSION.CMD;1 (41,1) 1./0. 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]
RSXMAC.SML;1 (42,1) 307./256. C 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]
SYSLIB.OLB;1 (43,1) 280./256. C 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R] 18-DEC-1998 02:36(2.)
NOANSLIB.OLB;1 (44,1) 271./256. C 18-DEC-1998 02:36 [1,1] [RWED,RWED,RWED,R] 18-DEC-1998 02:38(2.)
NOVACPLIB.OLB;1 (45,1) 22./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
VMLIB.OLB;1 (46,1) 17./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
RMSLIB.OLB;1 (47,1) 222./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
RMSDAP.OLB;1 (50,1) 102./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
EXEMC.MLB;1 (51,1) 161./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
EXELIB.OLB;1 (52,1) 80./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
DEBUG.OLB;1 (53,1) 77./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R] 18-DEC-1998 02:38(2.)
FDVLIB.OLB;1 (54,1) 53./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
F52LIB.OLB;1 (55,1) 49./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
FDVLRM.OLB;1 (56,1) 54./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
DEUNA.MLB;1 (57,1) 18./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
RMSMAC.MLB;1 (60,1) 189./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
FMSMAC.MLB;1 (61,1) 9./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
EISLIB.OLB;1 (62,1) 23./0. C 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R] 18-DEC-1998 02:38(2.)
LUAMC.TSK;1 (63,1) 3./0. 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]
UNAMC.TSK;1 (64,1) 3./0. 18-DEC-1998 02:38 [1,1] [RWED,RWED,RWED,R]


Что осталось - проверить - что-там с multiheader файлами и, собственно, извлечение данных.

Потом будет проверка - что же сформировалось в объектах ImageUtils и насколько оно сохраняемо в ФС Windows :)

И, кстати - по логу видно - у каких файлов были обнулены Retrieval Pointrs и что с multiheader файлами не всё в порядке в датском королевстве :) Но про multiheader файлы - возможно я что-то не так понял - в любом случае - проверять :)

Hunta
27.05.2025, 17:43
Вроде понял, в чем причина "кривых" Retrieval Pointers, но нужна понять - как решить - она не в разборщике информации с ленты, а в разборщике сырых данных в объект по атррибутам членов класса. То есть сейчас с лентой всё ок, но попытка распаковать обычный образ диска - падение.
Сравнение информации с диска, восстановленного с ленты, с тем, что даёт сейчас Dir непосредственно для ленты:



Comparing files 1 of 2 RSX11MPBL87 RQ.dsk.UnPack.MyLog.txt and TEMP.TXT
***** 1 of 2 RSX11MPBL87 RQ.dsk.UnPack.MyLog.txt
Volume Information
Class: ODS-1 (401)
Device: Disk
Volume label: RSX11MPBL87
***** TEMP.TXT
Volume Information
Class: ODS-1 (401)
Device: Tape
Volume label: RSX11MPBL87
*****

***** 1 of 2 RSX11MPBL87 RQ.dsk.UnPack.MyLog.txt
Owner: [1,1]
Creation Date:25-FEB-2015 21:13:07
Serial Number:247400000
Protection: [RWCD,RWCD,RWCD,RWCD]
***** TEMP.TXT
Owner: [1,1]
Creation Date:18-DEC-1998 02:35:30
Serial Number:100000000
Protection: [RWCD,RWCD,RWCD,RWCD]
*****

***** 1 of 2 RSX11MPBL87 RQ.dsk.UnPack.MyLog.txt

INDEXF.SYS;1 (1,1) 1416./1416. 25-FEB-2015 21:13 [1,1] [RWED,RWED,RWED,R]
BITMAP.SYS;1 (2,2) 77./77. 25-FEB-2015 21:13 [1,1] [RWED,RWED,RWED,R]
BADBLK.SYS;1 (3,3) 1./1. 25-FEB-2015 21:13 [1,1] [RWED,RWED,RWED,R]
000000.DIR;1 (4,4) 1./1. C 25-FEB-2015 21:13 [1,1] [RWED,RWED,RWED,R]
CORIMG.SYS;1 (5,5) 0./0. 25-FEB-2015 21:13 [1,1] [RWED,RWED,RWED,R]
RSX11.SYS;1 (37,1) 26./26. C 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]
001001.DIR;1 (6,1) 2./2. C 25-FEB-2015 21:13 [1,1] [RWED,RWED,RWED,R]
001002.DIR;1 (7,1) 1./1. C 25-FEB-2015 21:13 [1,2] [RWED,RWED,RWED,R]
001003.DIR;1 (10,1) 1./1. C 25-FEB-2015 21:13 [1,3] [RWED,RWED,RWED,R]
001004.DIR;1 (11,1) 1./1. C 25-FEB-2015 21:13 [1,4] [RWED,RWED,RWED,R]
001006.DIR;1 (12,1) 1./1. C 25-FEB-2015 21:13 [1,6] [RWED,RWED,RWED,R]
001007.DIR;1 (13,1) 1./1. C 25-FEB-2015 21:13 [1,7] [RWED,RWED,RWED,R]
001010.DIR;1 (14,1) 1./1. C 25-FEB-2015 21:13 [1,10] [RWED,RWED,RWED,R]
001011.DIR;1 (15,1) 1./1. C 25-FEB-2015 21:13 [1,11] [RWED,RWED,RWED,R]
001020.DIR;1 (16,1) 4./4. C 25-FEB-2015 21:13 [1,20] [RWED,RWED,RWED,R]
001024.DIR;1 (17,1) 4./4. C 25-FEB-2015 21:13 [1,24] [RWED,RWED,RWED,R]
001034.DIR;1 (20,1) 1./1. C 25-FEB-2015 21:13 [1,34] [RWED,RWED,RWED,R]
001054.DIR;1 (21,1) 1./1. C 25-FEB-2015 21:13 [1,54] [RWED,RWED,RWED,R]
002054.DIR;1 (22,1) 2./2. C 25-FEB-2015 21:13 [2,54] [RWED,RWED,RWED,R]
003054.DIR;1 (23,1) 6./6. C 25-FEB-2015 21:13 [3,54] [RWED,RWED,RWED,R]
006054.DIR;1 (24,1) 1./1. C 25-FEB-2015 21:13 [6,54] [RWED,RWED,RWED,R]
011010.DIR;1 (25,1) 6./6. C 25-FEB-2015 21:13 [11,10] [RWED,RWED,RWED,R]
011024.DIR;1 (26,1) 1./1. C 25-FEB-2015 21:13 [11,24] [RWED,RWED,RWED,R]
011034.DIR;1 (27,1) 1./1. C 25-FEB-2015 21:13 [11,34] [RWED,RWED,RWED,R]
011040.DIR;1 (30,1) 1./1. C 25-FEB-2015 21:13 [11,40] [RWED,RWED,RWED,R]
012024.DIR;1 (31,1) 1./1. C 25-FEB-2015 21:13 [12,24] [RWED,RWED,RWED,R]
045010.DIR;1 (32,1) 2./2. C 25-FEB-2015 21:13 [45,10] [RWED,RWED,RWED,R]
045024.DIR;1 (33,1) 1./1. C 25-FEB-2015 21:13 [45,24] [RWED,RWED,RWED,R]
200001.DIR;1 (34,1) 1./1. C 25-FEB-2015 21:13 [200,1] [RWED,RWED,RWED,R]
USER.DIR;1 (35,1) 2./2. C 25-FEB-2015 21:13 [200,1] [RWED,RWED,RWED,R]
200200.DIR;1 (36,1) 1./1. C 25-FEB-2015 21:13 [200,200][RWED,RWED,RWED,R]

Total of 1566./1566. blocks in 31. files

***** TEMP.TXT

RSX11.SYS;1 (37,1) 26./26. C 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]

Total of 26./26. blocks in 1. files

*****

***** 1 of 2 RSX11MPBL87 RQ.dsk.UnPack.MyLog.txt

Grand Total of 37623./37623. blocks in 856. files in 26. directories

***** TEMP.TXT

Grand Total of 36083./36083. blocks in 826. files in 26. directories

*****

Отличия только в том, что на ленте информации из каталогов как файлов и служебных файлов - не сохраняется, поэтому в [0,0] только один файл

Так что технически осталось - найти решение проблемы и - разбросать данные по файлам :)

- - - Добавлено - - -

Поправка. Вроде бы уже решил (видимо, тест взял предыдущий вариант exe-шника) - но нужно оценить изменения - разборщик сырых данных ОЧЕНЬ МНОГО ГДЕ используется, так что может ещё где аукнуться...

- - - Добавлено - - -

Проверка разборщика сырых данных - позднее (когда будет комплексное тестирование).

На текущий момент - со служебкой почти всё, кроме multiheader файлов - пока не пойму - как оно отображается в данных BRU. Возможно, что на этой ленте таких файлов и нет - надо глянуть - что после восстановления на диск показывает с служебной информации. Если действительно нет - придётся специально сделать backup с большим файлом :)

- - - Добавлено - - -

Проверил - нет в этом backup-е multiheader файлов, значит, тоже пока откладывается.
Ок, значит на очереди - парсинг собственно данных

- - - Добавлено - - -

Прогнал весь цикл распаковки. Понятно, что данных пока никаких нет да и написанный уже код надо причесать, но было интересено - где и что вылезет. На удивление - только в двух местах была ошибка - из-за отсутствия некоторых служебных данных, что, впрочем, понятно и легко скорректировалось. Что в логе:


#
# -unpack "Tapes\BB-J0810-01_L01 RSX-11M-PLUS V4.6 BRU 16MT9.tap" "1\@BB-J0810-01_L01 RSX-11M-PLUS V4.6 BRU 16MT9.tap" tape[] tape bru1
#

Section '0' is none fs image

Section '1' ('RSX11MPBL87')

Volume Information
Class: ODS-1 (401)
Device: Tape
Volume label: RSX11MPBL87
Owner: [1,1]
Creation Date:18-DEC-1998 02:35:30
Serial Number:100000000
Protection: [RWCD,RWCD,RWCD,RWCD]
Default: [RWED,RWED,RWED,R]
Processor: ImageUtils


Directory [0,0]

RSX11.SYS;1 (37,1) 26./26. C 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]

Total of 26./26. blocks in 1. files

Directory [1,1]

KITIDENT.DAT;1 (40,1) 2./2. 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]
VERSION.CMD;1 (41,1) 1./1. 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]
RSXMAC.SML;1 (42,1) 307./307. C 18-DEC-1998 02:35 [1,1] [RWED,RWED,RWED,R]

....

Directory [200,200]

SYSGEN.CLB;1 (1422,1) 1270./1270. C 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
BLDLAINIT.CMD;1 (1423,1) 12./12. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
SGNBLDBLD.CMD;1 (1425,1) 57./57. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
SGNKLAB.CMD;1 (1424,1) 71./71. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
SGNPREFIX.CMD;1 (1421,1) 12./12. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
SYSGEN.CMD;1 (1420,1) 3./3. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
RSXMC0.MAC;1 (1417,1) 16./16. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
WRKEXECOP.TXT;1 (1426,1) 7./7. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
WRKMASSCO.TXT;1 (1427,1) 2./2. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
WRKMASSDR.TXT;1 (1430,1) 4./4. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
WRKUNIBCO.TXT;1 (1431,1) 3./3. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]
WRKUNIBDR.TXT;1 (1432,1) 4./4. 18-DEC-1998 02:46 [200,200][RWED,RWED,RWED,R]

Total of 1461./1461. blocks in 12. files

Grand Total of 36083./36083. blocks in 826. files in 26. directories


Section '2' ('MPBL87SRC')

Volume Information
Class: ODS-1 (401)
Device: Tape
Volume label: MPBL87SRC
Owner: [1,1]
Creation Date:18-DEC-1998 02:50:57
Serial Number:100000000
Protection: [RWCD,RWCD,RWCD,RWCD]
Default: [RWED,RWED,RWED,R]
Processor: ImageUtils


Directory [0,0]


Total of 0./0. blocks in 0. files

Directory [1,2]

ACC.HLP;1 (115,1) 15./15. 18-DEC-1998 02:51 [1,2] [RWED,RWED,RWED,R]
ASCII.HLP;1 (116,1) 9./9. 18-DEC-1998 02:51 [1,2] [RWED,RWED,RWED,R]
BAD.HLP;1 (413,1) 5./5. 18-DEC-1998 02:52 [1,2] [RWED,RWED,RWED,R]
BAS.HLP;1 (117,1) 3./3. 18-DEC-1998 02:51 [1,2] [RWED,RWED,RWED,R]
BATCH.HLP;1 (120,1) 13./13. 18-DEC-1998 02:51 [1,2] [RWED,RWED,RWED,R]
BRU.HLP;1 (121,1) 51./51. 18-DEC-1998 02:51 [1,2] [RWED,RWED,RWED,R]

.....

Directory [126,40]


Total of 0./0. blocks in 0. files

Directory [126,10]

ACNDF.DOC;1 (2415,1) 25./25. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
ACCDEF.MAC;1 (2436,1) 3./3. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
ACCROT.MAC;1 (2437,1) 12./12. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
CLTRN.MAC;1 (2423,1) 4./4. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
CRTRN.MAC;1 (2424,1) 7./7. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
EXTRN.MAC;1 (2425,1) 8./8. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
FDSCN.MAC;1 (2421,1) 4./4. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
FDTRN.MAC;1 (2416,1) 3./3. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
GBLDF.MAC;1 (2420,1) 3./3. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
GTPAR.MAC;1 (2433,1) 10./10. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
MSG.MAC;1 (2426,1) 14./14. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
OPNFIL.MAC;1 (2440,1) 6./6. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
OPTRN.MAC;1 (2427,1) 5./5. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
PARSR.MAC;1 (2447,1) 43./43. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
PRE.MAC;1 (2431,1) 14./14. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
RCOVR.MAC;1 (2435,1) 16./16. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
RPFDB.MAC;1 (2422,1) 3./3. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
SETOV.MAC;1 (2442,1) 10./10. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
SHDOV.MAC;1 (2434,1) 38./38. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
SHROV.MAC;1 (2441,1) 75./75. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
STPOV.MAC;1 (2443,1) 10./10. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
STPSB.MAC;1 (2444,1) 23./23. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
STROV.MAC;1 (2445,1) 19./19. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
SYDF.MAC;1 (2417,1) 1./1. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
SYLIDL.MAC;1 (2451,1) 21./21. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
SYSLOG.MAC;1 (2450,1) 51./51. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
TSRCH.MAC;1 (2432,1) 12./12. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
ULUAB.MAC;1 (2446,1) 15./15. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]
WRTRN.MAC;1 (2430,1) 12./12. 18-DEC-1998 02:57 [126,10] [RWED,RWED,RWED,R]

Total of 467./467. blocks in 29. files

Grand Total of 22006./22006. blocks in 1248. files in 72. directories


- - - Добавлено - - -

Ну, в общем до хоть какого-никакого полезного (кроме каталога :) ) результата - только парсинг данных :)
Возможно - уже сегодня :)

Hunta
27.05.2025, 20:39
Код жутко не причёсанный и не оптимальный, но... Тадададам!


Directory of @BB-J0810-01_L01 RSX-11M-PLUS V4.6 BRU 16MT9.tap

27.05.2025 21:26 592 $$ection$.000
27.05.2025 21:26 <DIR> $$ection$.001
27.05.2025 21:27 <DIR> $$ection$.002

Directory of @BB-J0810-01_L01 RSX-11M-PLUS V4.6 BRU 16MT9.tap\$$ection$.001

27.05.2025 21:26 <DIR> metaFiles@
27.05.2025 21:26 <DIR> [0,0]
27.05.2025 21:26 <DIR> [1,1]
27.05.2025 21:26 <DIR> [1,20]
27.05.2025 21:26 <DIR> [1,24]
27.05.2025 21:26 <DIR> [1,2]
27.05.2025 21:26 <DIR> [1,34]
27.05.2025 21:26 <DIR> [1,6]
27.05.2025 21:26 <DIR> [11,10]
27.05.2025 21:26 <DIR> [12,24]
27.05.2025 21:26 <DIR> [2,54]
27.05.2025 21:26 <DIR> [200,1]
27.05.2025 21:26 <DIR> [200,200]
27.05.2025 21:26 <DIR> [3,54]
27.05.2025 21:26 <DIR> [45,10]
27.05.2025 21:26 <DIR> [45,24]
27.05.2025 21:26 <DIR> [6,54]
27.05.2025 21:26 <DIR> [USER]

Directory of @BB-J0810-01_L01 RSX-11M-PLUS V4.6 BRU 16MT9.tap\$$ection$.001 metaFiles@

27.05.2025 21:26 512 $BOOT.BLK
27.05.2025 21:26 48 536 $META.INF
27.05.2025 21:26 32 236 $ORDER.INF
27.05.2025 21:26 80 904 $VOLUM.INF
4 File(s) 162 188 bytes

Directory of @BB-J0810-01_L01 RSX-11M-PLUS V4.6 BRU 16MT9.tap\$$ection$.001\[0,0]

18.12.1998 02:35 13 312 RSX11.SYS;1
18.12.1998 02:35 3 186 RSX11.SYS;1.header
2 File(s) 16 498 bytes

Directory of @BB-J0810-01_L01 RSX-11M-PLUS V4.6 BRU 16MT9.tap\$$ection$.001\[1,1]

18.12.1998 02:38 2 953 DAP11X.ODL;1
18.12.1998 02:38 2 980 DAP11X.ODL;1.binary
18.12.1998 02:38 3 216 DAP11X.ODL;1.header
18.12.1998 02:38 3 072 DAP11X.ODL;1.image
18.12.1998 02:38 974 DAPRES.STB;1
18.12.1998 02:38 974 DAPRES.STB;1.binary
18.12.1998 02:38 3 164 DAPRES.STB;1.header
18.12.1998 02:38 1 024 DAPRES.STB;1.image
18.12.1998 02:38 20 480 DAPRES.TSK;1
18.12.1998 02:38 3 192 DAPRES.TSK;1.header
18.12.1998 02:38 830 DAPRLX.ODL;1
18.12.1998 02:38 844 DAPRLX.ODL;1.binary
18.12.1998 02:38 3 216 DAPRLX.ODL;1.header
18.12.1998 02:38 1 024 DAPRLX.ODL;1.image
18.12.1998 02:38 39 124 DEBUG.OLB;1
18.12.1998 02:38 3 186 DEBUG.OLB;1.header
18.12.1998 02:38 39 424 DEBUG.OLB;1.image
18.12.1998 02:38 8 724 DEUNA.MLB;1
18.12.1998 02:38 3 184 DEUNA.MLB;1.header
18.12.1998 02:38 9 216 DEUNA.MLB;1.image
...

Используя свою программу xcompx, провел сравнения каталога с файлами с ленты с каталогом, где файлы были извлечены из диска, восстановленного с ленты - ожидаемо не совпали только текстовые файлы - дамп заголовков - так как на ленте описания Retrieval Pointers - с исходного диска, а на диске - как уже их BRU при восстановлении распределил. Для сравнения заголовков БЕЗ учёта Retrieval Pointers будет использован спецтестовый вариант (он просто не будет дампить эту инфу)

В общем - первый живой черновой вариант - есть!

Hunta
28.05.2025, 13:29
Какой-то... чудак в конец образа ленты формата TAP дописал 0xFFFFFFFF. То есть это вообще не то что ни о чём, а нарушение формата образа ленты (надо бы найти описание и проверить - что там сказано). Но разборщик сырых данных встал в тупик (моя ошибка, поправил), а потом ещё и парсер ленты споткнулся на блоке, который сформировался на этих данных - то есть вроде и не конец ленты и не конец файла, а вместо данных - null. Пришлось слегка прикостылить.

Дальше начал проверять работу с лентой backup-ов BRU, где в начале записана загружаемая система. Поскольку технически возможность работы с такими данными в начале ленты - есть, но практически - код не был написан - дописываю. А так в принципе лента на секции разобралася норм.

- - - Добавлено - - -

После фикса четырёх-пяти ошибок (счёт не вёл, примерно) (куда ж без них) - успешно распакованы 4 дистрибутивные ленты (дистрибутив и загружаемая лента с фиксами и pregenerated системой) - RSX+ 4.4 и 4.6. Распакованные 4.6 (через диск) есть (сравню), а вот 4.4 пока только ленты :)

- - - Добавлено - - -

Добавил в тестирование ещё и 4.5 - есть распакованные через диск

Hunta
29.05.2025, 16:33
Включил распаковку BRU лент в комплексное тестирование, запустил и.. ну понятно - ошибки :) Нахожу, фиксю

Hunta
30.05.2025, 10:49
На текущий момент - прогон всех тестов (включая ленты BRU) - без падения ImageUtils, но на выходе некоторое количество отличающихся файлов-логов или файлов со служебной информацией. Продолжаю находить причину и фиксить

- - - Добавлено - - -

По промежуточному тестированию - вроде всё найденное поправил. Запустил полное (оно примерно час идёт :) )

- - - Добавлено - - -

Да, все тесты прошли. Теперь можно создать коммит и начать причёсывать код :)

Hunta
30.05.2025, 14:36
Слегка причесал код (коммита не делал), прогнал тесты и сделал коммит. Теперь внимательно посмотрим - что же у меня получилось :) Кстати, одна доработка точно нужна - информация по блокам - какой к чему-кому относится - пока пилил поддержку BRU на лентах - на это дело слегка забил :)

Hunta
31.05.2025, 20:17
Из занимательного - распределение информации по блокам (начало инфы) в бэкапе от BRU


Logical block N 0 -> Label:HDR1
Logical block N 1 -> Label:HDR2
Logical block N 2 -> <TM>
Logical block N 3 -> BRU Header for 'RSX11MPBL87' backup set
Logical block N 4 -> Boot Block
Logical block N 5 -> Home Block for volume 'RSX11MPBL87'
Logical block N 6 -> UFD: [0,0]
Logical block N 7 -> UFD: [0,0] - data
Logical block N 8 -> UFD: [1,1]
Logical blocks N 9- 10 -> UFD: [1,1] - data
Logical block N 11 -> UFD: [1,2]
Logical block N 12 -> UFD: [1,2] - data
Logical block N 13 -> UFD: [1,3]
Logical block N 14 -> UFD: [1,4]
Logical block N 15 -> UFD: [1,6]
Logical block N 16 -> UFD: [1,6] - data
Logical block N 17 -> UFD: [1,7]
Logical block N 18 -> UFD: [1,10]
Logical block N 19 -> UFD: [1,11]
Logical block N 20 -> UFD: [1,20]
Logical blocks N 21- 24 -> UFD: [1,20] - data
Logical block N 25 -> UFD: [1,24]
Logical blocks N 26- 29 -> UFD: [1,24] - data
Logical block N 30 -> UFD: [1,34]
Logical block N 31 -> UFD: [1,34] - data
Logical block N 32 -> UFD: [1,54]
Logical block N 33 -> UFD: [2,54]
Logical blocks N 34- 35 -> UFD: [2,54] - data
Logical block N 36 -> UFD: [3,54]
Logical blocks N 37- 42 -> UFD: [3,54] - data
Logical block N 43 -> UFD: [6,54]
Logical block N 44 -> UFD: [6,54] - data
Logical block N 45 -> UFD: [11,10]
Logical blocks N 46- 51 -> UFD: [11,10] - data
Logical block N 52 -> UFD: [11,24]
Logical block N 53 -> UFD: [11,34]
Logical block N 54 -> UFD: [11,40]
Logical block N 55 -> UFD: [12,24]
Logical block N 56 -> UFD: [12,24] - data
Logical block N 57 -> UFD: [45,10]
Logical blocks N 58- 59 -> UFD: [45,10] - data
Logical block N 60 -> UFD: [45,24]
Logical block N 61 -> UFD: [45,24] - data
Logical block N 62 -> UFD: [200,1]
Logical block N 63 -> UFD: [200,1] - data
Logical block N 64 -> UFD: [USER]
Logical blocks N 65- 66 -> UFD: [USER] - data
Logical block N 67 -> UFD: [200,200]
Logical block N 68 -> UFD: [200,200] - data
Logical block N 69 -> Start of HEADers and DATAs
Logical block N 70 -> UFD: [0,0]
Logical block N 71 -> 31:RSX11.SYS;1
Logical block N 72 -> UFD: [1,1]
Logical block N 73 -> 32:KITIDENT.DAT;1 | 33:VERSION.CMD;1 | 34:RSXMAC.SML;1 | 35:SYSLIB.OLB;1 | 36:NOANSLIB.OLB;1 | 37:NOVACPLIB.OLB;1 | 38:VMLIB.OLB;1 | 39:RMSLIB.OLB;1
Logical block N 74 -> 40:RMSDAP.OLB;1 | 41:EXEMC.MLB;1 | 42:EXELIB.OLB;1 | 43:DEBUG.OLB;1 | 44:FDVLIB.OLB;1 | 45:F52LIB.OLB;1 | 46:FDVLRM.OLB;1 | 47:DEUNA.MLB;1
Logical block N 75 -> 48:RMSMAC.MLB;1 | 49:FMSMAC.MLB;1 | 50:EISLIB.OLB;1 | 51:LUAMC.TSK;1 | 52:UNAMC.TSK;1 | 53:FCSFSL.TSK;1 | 54:FCSFSL.STB;1 | 55:FCSRES.TSK;1
Logical block N 76 -> 56:FCSRES.STB;1 | 57:FCS.OBJ;1 | 58:FCSMTA.OBJ;1 | 59:FCSMBF.OBJ;1 | 60:FCSNOVACP.OBS;1 | 61:FCSNOLOG.OBS;1 | 62:FCSLOG.OBS;1 | 63:FCSFULL.OBS;1
Logical block N 77 -> 64:R0RMS1.MAC;1 | 65:RMSFUN.OBJ;1 | 66:RMSRLX.ODL;1 | 67:RMSSLX.ODL;1 | 68:RMS11.ODL;1 | 69:RMS11S.ODL;1 | 70:RMS12S.ODL;1 | 71:RMS11X.ODL;1
Logical block N 78 -> 72:RMS12X.ODL;1 | 73:RMSRES.TSK;1 | 74:RMSRESAB.TSK;1 | 75:RMSLBL.TSK;1 | 76:RMSLBM.TSK;1 | 77:RMSRES.STB;1 | 78:DAPRLX.ODL;1 | 79:DAP11X.ODL;1
Logical block N 79 -> 80:DAPRES.TSK;1 | 81:DAPRES.STB;1 | 82:ODT.OBJ;1 | 83:ODTID.OBJ;1 | 84:LPA.OBJ;1 | 85:PURISA.OBJ;1 | 86:PURICR.OBJ;1 | 87:PURPCS.OBJ;1
Logical block N 80 -> 88:PURUDC.OBJ;1 | 89:PURUDC.OBJ;2
Logical block N 81 -> UFD: [1,2]
Logical block N 82 -> 90:STARTUP.CMD;1 | 91:QMGSTART.CMD;1 | 92:QMGSTOP.CMD;1 | 93:SHUTUP.CMD;1 | 94:QIOSYM.MSG;1 | 95:RMSDES.IDX;1 | 96:BATCH.TXT;1 | 97:LOGIN.TXT;1
Logical block N 83 -> 98:INDSYS.CLB;1
Logical block N 84 -> UFD: [1,3]
Logical block N 85 -> UFD: [1,4]
Logical block N 86 -> UFD: [1,6]
Logical block N 87 -> 99:ERRLOG.ULB;1 | 100:ERRLOGETC.ULB;1
Logical block N 88 -> UFD: [1,7]
Logical block N 89 -> UFD: [1,10]
Logical block N 90 -> UFD: [1,11]
Logical block N 91 -> UFD: [1,20]
Logical block N 92 -> 217:ACCBLD.BLD;1 | 219:ACDBLD.BLD;1 | 146:ACFBLD.BLD;1 | 220:ACNBLD.BLD;1 | 145:ACOBLD.BLD;1 | 218:ACSBLD.BLD;1 | 110:AR2BLD.BLD;1 | 166:BADBLD.BLD;1
Logical block N 93 -> 165:BOOBLD.BLD;1 | 107:BPRBLD.BLD;1 | 167:BROBLD.BLD;1 | 225:BRUBLD.BLD;1 | 168:BYEBLD.BLD;1 | 169:CDABLD.BLD;1 | 170:CFLBLD.BLD;1 | 221:CIOBLD.BLD;1
Logical block N 94 -> 171:CMPBLD.BLD;1 | 235:CONBLD.BLD;1 | 172:COTBLD.BLD;1 | 157:CPBBLD.BLD;1 | 156:CPNBLD.BLD;1 | 109:CRABLD.BLD;1 | 161:CRFBLD.BLD;1 | 173:CRPBLD.BLD;1
Logical block N 95 -> 174:DCLBLD.BLD;1 | 175:DLDBLD.BLD;1 | 176:DMOBLD.BLD;1 | 212:DMPBLD.BLD;1 | 177:DSCBLD.BLD;1 | 178:DTEBLD.BLD;1 | 163:EDIBLD.BLD;1 | 179:EDTBLD.BLD;1
Logical block N 96 -> 180:ELIBLD.BLD;1 | 181:ERLBLD.BLD;1 | 149:FCPLRGBLD.BLD;1 | 150:FCPMDLBLD.BLD;1 | 152:FCPMINBLD.BLD;1 | 151:FCPSMLBLD.BLD;1 | 147:FCSFS0BLD.BLD;1 | 239:FCSRS1BLD.BLD;1
Logical block N 97 -> 214:FLXBLD.BLD;1 | 182:FMTBLD.BLD;1 | 183:FTBBLD.BLD;1 | 184:FXRBLD.BLD;1 | 153:F11MSGBLD.BLD;1 | 229:HELBLD.BLD;1 | 159:HFTBLD.BLD;1 | 144:HFTRESBLD.BLD;1
Logical block N 98 -> 160:HFTRESODL.BLD;1 | 236:HRCBLD.BLD;1 | 208:ICMBLD.BLD;1 | 204:ICPCOMBLD.BLD;1 | 122:ICPFSLBLD.BLD;1 | 125:ICPRESBLD.BLD;1 | 223:IDLBLD.BLD;1 | 185:INIBLD.BLD;1
Logical block N 99 -> 227:INSBLD.BLD;1 | 187:IOXBLD.BLD;1 | 186:IPPBLD.BLD;1 | 206:LBRBLD.BLD;1 | 188:LOABLD.BLD;1 | 118:LPIBLD.BLD;1 | 226:LPPBLD.BLD;1 | 155:MACBLD.BLD;1
Logical block N 100 -> 114:MACOLD.BLD;1 | 242:MCDBLD.BLD;1 | 103:MCLBLD.BLD;1 | 240:MCRBLD.BLD;1 | 106:MDMBLD.BLD;1 | 189:MFTBLD.BLD;1 | 190:MOUBLD.BLD;1 | 222:MPDBLD.BLD;1
Logical block N 101 -> 191:MTABLD.BLD;1 | 104:NCTCTLBLD.BLD;1 | 164:PATBLD.BLD;1 | 210:PIPBLD.BLD;1 | 192:PMDBLD.BLD;1 | 193:PMTBLD.BLD;1 | 135:PRTBLD.BLD;1 | 194:PSWBLD.BLD;1
Logical block N 102 -> 216:QCLBLD.BLD;1 | 215:QMGBLD.BLD;1 | 195:QPRBLD.BLD;1 | 196:RCTBLD.BLD;1 | 233:RMDBLD.BLD;1 | 207:RPTBLD.BLD;1 | 237:SAVBLD.BLD;1 | 108:SECBLD.BLD;1
Logical block N 103 -> 224:SHABLD.BLD;1 | 197:SHFBLD.BLD;1 | 198:SHUBLD.BLD;1 | 134:SLNBLD.BLD;1 | 213:SLPBLD.BLD;1 | 148:STKBLD.BLD;1 | 154:STUBLD.BLD;1 | 232:SYLBLD.BLD;1
Logical block N 104 -> 199:TDXBLD.BLD;1 | 211:TKBBLD.BLD;1 | 162:TKBCOMBLD.BLD;1 | 200:TKNBLD.BLD;1 | 201:UFDBLD.BLD;1 | 202:UMLBLD.BLD;1 | 203:UNLBLD.BLD;1 | 241:URTBLD.BLD;1
Logical block N 105 -> 205:VCPBLD.BLD;1 | 238:VFDBLD.BLD;1 | 234:VFYBLD.BLD;1 | 228:VMRBLD.BLD;1 | 111:VMSBLD.BLD;1 | 231:XDTBLD.BLD;1 | 209:ZAPBLD.BLD;1 | 230:SLQBLD.CMD;1
Logical block N 106 -> 243:OUTPUT.LST;1
Logical block N 107 -> UFD: [1,24]
Logical block N 108 -> 126:BCKNON.CMD;1 | 123:BCKNRN.CMD;1 | 128:BCKNSN.CMD;1 | 140:CNVNON.CMD;1 | 142:CNVNOO.CMD;1 | 138:CNVNRN.CMD;1 | 158:CNVNRR.CMD;1 | 245:CNVNSN.CMD;1
Logical block N 109 -> 120:DAPRES.CMD;1 | 255:DEFNON.CMD;1 | 253:DEFNRN.CMD;1 | 257:DEFNSN.CMD;1 | 261:DESNON.CMD;1 | 259:DESNRN.CMD;1 | 263:DESNSN.CMD;1 | 249:DSPNON.CMD;1
Logical block N 110 -> 247:DSPNRN.CMD;1 | 251:DSPNSN.CMD;1 | 265:IFLNON.CMD;1 | 267:IFLNRN.CMD;1 | 269:IFLNSN.CMD;1 | 101:RMSFAKAB.CMD;1 | 105:RMSLBL.CMD;1 | 112:RMSLBM.CMD;1
Logical block N 111 -> 102:RMSRESAB.CMD;1 | 132:RSTNON.CMD;1 | 130:RSTNRN.CMD;1 | 136:RSTNSN.CMD;1 | 127:BCKNON.ODL;1 | 124:BCKNRN.ODL;1 | 129:BCKNSN.ODL;1 | 141:CNVNON.ODL;1
Logical block N 112 -> 143:CNVNOO.ODL;1 | 139:CNVNRN.ODL;1 | 244:CNVNRR.ODL;1 | 246:CNVNSN.ODL;1 | 121:DAPRES.ODL;1 | 256:DEFNON.ODL;1 | 254:DEFNRN.ODL;1 | 258:DEFNSN.ODL;1
Logical block N 113 -> 262:DESNON.ODL;1 | 260:DESNRN.ODL;1 | 264:DESNSN.ODL;1 | 250:DSPNON.ODL;1 | 248:DSPNRN.ODL;1 | 252:DSPNSN.ODL;1 | 266:IFLNON.ODL;1 | 268:IFLNRN.ODL;1
Logical block N 114 -> 270:IFLNSN.ODL;1 | 115:RMSLBL.ODL;1 | 116:RMSLBM.ODL;1 | 117:RMSODL.ODL;1 | 113:RMSRESAB.ODL;1 | 133:RSTNON.ODL;1 | 131:RSTNRN.ODL;1 | 137:RSTNSN.ODL;1
Logical block N 115 -> 271:ACC.OLB;1 | 272:ACD.OLB;1 | 273:ACF.OLB;1 | 274:BAD.OLB;1 | 275:BOO.OLB;1 | 276:BPR.OLB;1 | 277:BRU.OLB;1 | 278:CDA.OLB;1
Logical block N 116 -> 279:CMP.OLB;1 | 280:COT.OLB;1 | 281:CRF.OLB;1 | 282:CRP.OLB;1 | 283:DCLO.OLB;1 | 284:DCLR.OLB;1 | 285:DMP.OLB;1 | 286:DSC.OLB;1
Logical block N 117 -> 287:DTE.OLB;1 | 288:EDI.OLB;1 | 289:EDTLIB.OLB;1 | 290:ERL.OLB;1 | 291:EUT.OLB;1 | 292:FCP.OLB;1 | 293:FIL.OLB;1 | 294:FLX.OLB;1
Logical block N 118 -> 295:FMT.OLB;1 | 296:FTB.OLB;1 | 297:F11MSG.OLB;1 | 298:ICPNPR.OLB;1 | 299:INI.OLB;1 | 300:INS.OLB;1 | 301:IOX.OLB;1 | 302:LAINIT.OLB;1
Logical block N 119 -> 303:LBR.OLB;1 | 304:LOA.OLB;1 | 305:LPP.OLB;1 | 306:MAC.OLB;1 | 307:MCR.OLB;1 | 308:MFT.OLB;1 | 309:MLTUSR.OLB;1 | 310:MTA.OLB;1
Logical block N 120 -> 311:NEISLB.OLB;1 | 312:OLR.OLB;1 | 313:PAT.OLB;1 | 314:PIP.OLB;1 | 315:PIPUTL.OLB;1 | 316:PRL.OLB;1 | 317:QMG.OLB;1 | 318:QMGCLI.OLB;1
Logical block N 121 -> 319:RCT.OLB;1 | 320:RMD.OLB;1 | 321:RMSUTL.OLB;1 | 322:RPT.OLB;1 | 323:SAV.OLB;1 | 324:SHA.OLB;1 | 325:SLP.OLB;1 | 326:TDX.OLB;1
Logical block N 122 -> 327:TKB.OLB;1 | 328:UML.OLB;1 | 329:VCP.OLB;1 | 330:VFY.OLB;1 | 331:VMR.OLB;1 | 332:ZAP.OLB;1 | 119:RMSROTAB.STB;1
Logical block N 123 -> UFD: [1,34]
Logical block N 124 -> 333:RMSLBL.MAP;1 | 334:RMSLBM.MAP;1 | 335:RMSRESAB.MAP;1 | 336:DAPRES.MAP;1
Logical block N 125 -> UFD: [1,54]
Logical block N 126 -> UFD: [2,54]
Logical block N 127 -> 795:BASTART.CMD;1 | 796:RSX11M.SYS;1 | 797:ACF.TSK;1 | 798:LDR.TSK;1 | 799:SAV.TSK;1 | 800:RSX11M.TSK;1 | 801:RSX11M.STB;1 | 802:DIR11M.TSK;1
Logical block N 128 -> 803:DIR11M.STB;1 | 804:DR211M.TSK;1 | 805:DR211M.STB;1 | 806:DR311M.TSK;1 | 807:DR311M.STB;1 | 808:DR411M.TSK;1 | 809:DR411M.STB;1 | 810:VEC11M.TSK;1
Logical block N 129 -> 811:VEC11M.STB;1 | 812:DCM11M.TSK;1 | 813:DBDRV.TSK;1 | 814:DBDRV.STB;1 | 815:DDDRV.TSK;1 | 816:DDDRV.STB;1 | 817:DKDRV.TSK;1 | 818:DKDRV.STB;1
Logical block N 130 -> 819:DLDRV.TSK;1 | 820:DLDRV.STB;1 | 821:DMDRV.TSK;1 | 822:DMDRV.STB;1 | 823:DRDRV.TSK;1 | 824:DRDRV.STB;1 | 825:DUDRV.TSK;1 | 826:DUDRV.STB;1
Logical block N 131 -> 827:DXDRV.TSK;1 | 828:DXDRV.STB;1 | 829:DYCOM.TSK;1 | 830:DYDRV.TSK;1 | 831:DYDRV.STB;1 | 832:LPDRV.TSK;1 | 833:LPDRV.STB;1 | 834:MMDRV.TSK;1
Logical block N 132 -> 835:MMDRV.STB;1 | 836:MSDRV.TSK;1 | 837:MSDRV.STB;1 | 838:MTDRV.TSK;1 | 839:MTDRV.STB;1 | 840:MUDRV.TSK;1 | 841:MUDRV.STB;1 | 842:NLDRV.TSK;1
Logical block N 133 -> 843:NLDRV.STB;1 | 844:PUCOM.TSK;1 | 845:PUCOM.STB;1 | 846:TTDRV.STB;1 | 847:TTDRV.TSK;1 | 848:TTEXT.STB;1 | 849:TTEXT.TSK;1 | 850:VTDRV.TSK;1
Logical block N 134 -> 851:VTDRV.STB;1 | 852:FCSRES.TSK;1 | 853:FCSRES.STB;1 | 854:BASLINVMR.CMD;1 | 855:BASLINTTY.CMD;1 | 856:RSXMC.MAC;1
Logical block N 135 -> UFD: [3,54]
Logical block N 136 -> 504:CATCHALL.CMD;1 | 368:CRSIOP.STB;1 | 371:DLCRSH.STB;1 | 380:DUCRSH.STB;1 | 434:MMCRSH.STB;1 | 437:MSCRSH.STB;1 | 440:MUCRSH.STB;1 | 457:RDDRV.STB;1
Logical block N 137 -> 466:RMSRES.STB;1 | 503:RSXVEC.STB;1 | 471:SEC.STB;1 | 494:VFDRV.STB;1 | 500:XDT.STB;1 | 337:ACC.TSK;1 | 338:ACCRES.TSK;1 | 339:ACD.TSK;1

Hunta
01.06.2025, 10:50
В целом, на БЕЗпроблемных образах лент, работает норм. Три оставшихся момента:

- сохранение информации о метках (ленты и файлов). Если с метками файлов особых вопрос нет, то вот как и куда сохранять информацию о метках ленты...

- сохранение загрузчика с ленты (заглушка или загружающий систему типа BRUSYS). Примерно как метками ленты - как и куда

- BRU в описании данных оперируем ЛГИЧЕСКИМИ (то есть с тома), а не ВИРТУАЛЬНЫМИ (из файла) блоками. То есть по правильному - надо по Retrieval Pointers преобразовать ЛОГИЧЕСКИЙ блок в ВИРТУАЛЬНЫЙ - и на основании его номера уже добавлять данные в объект файла. Правда, если судить по результату - если тупо добавлять новые данные в конец уже добавленных - всё будет тип-топ :) Но.. Как-то не по феншую :) Так что тоже надо - доработать :)

Кстати, при парсинге образов дисков ODS-1 - нужен был (и был написан) обратный процесс - из виртуального в физический :) Технически - обратный процесс не должен быть сильно сложным :)

Hunta
01.06.2025, 14:27
Попалась лента с ошибкой (чтения при создании?). ImageUtils упал при попытке разделения её на секции. Проблема - переставлены местами <TM> и блок данных. Похоже - будет ещё и редактор образов :)

Hunta
01.06.2025, 19:44
Да, пока в полностью ручном режиме, да,уточнение деталей под под отладчиком, но...

Первая лента пофиксина :)

Стопроцентной уверенности нет - но ещё надо подумать-придумать - что выводить в лог и как проверять.

И до реально юзабельного инструмента - ещё далекооооо....

- - - Добавлено - - -

Вдогонку. Оказалось - не в одном месте такая фигня, а в трех - перестановка блоков.

- - - Добавлено - - -

Ещё одна лента BRU с ошибкой(ами)..

- - - Добавлено - - -

Хм.. нет, что-то другое.. пока не понял..

- - - Добавлено - - -

Несколько нестандартный блок загрузчика-пустышки. Смотрю дальше..

- - - Добавлено - - -

И немколько другой формат блока-заголовка BRU

Hunta
01.06.2025, 23:25
У BRU из не плюса - некоторые отличия в блоке-заголовке. Хорошо, когда есть исходники :)
Распаковывает :)

- - - Добавлено - - -

Ещё одно какое-то... чудило... Теперь в конец образа дописано 14 пробелов. Есссвенно - ни в какие ворота по стандарту...

- - - Добавлено - - -

И эту проблему ImageUtils теперь обходит :)

Hunta
04.06.2025, 20:29
Некоторое перетряхивание внутренностей.
А то что-то много if - else if - else if - else развелось.
Схема старая - вносятся некоторое количество изменений - и на тесты

Hunta
07.06.2025, 10:42
Вроде энтузазим на перетряхивание внутренностей закончился. Точнее - есть ещё одна давняя мысль.

Но сначала доделаю работу с лентами - есть мысли, как сохранять заголовок и загрузчик с возможным загрузочным модулем (ака BRUSYS) при распаковке плюс сделаю несколько более правильным перенос данных с блоков ленты в файлы (с проверкой - какие виртуальные блоки переносятся).

А там видно будет - чем дальше займусь :)

- - - Добавлено - - -

А, да - и продолжу тестировать - распаковывая другие образы лент :) Что было начато, но прервано :)

Hunta
08.06.2025, 10:54
Ну, вроде с сохранением информации из начала ленты (заголовок, загрузчик плюс, возможно, загружаемая система) теперь ок. Хотя первоначально мысли - как? - были другие, потом всё таки выехал на ПРАВИЛЬНЫЙ подход и дальше всё было просто - лента в формате ANSI, это ФС на ленте - значит - парсер и стандартный подход сохранения служебки. Так что на коленках набросал парсер (пока фактически ничего не делает, только смотрит на заголовок), добавил сохранение $VOLUM.INF, $BOOT.BLK и, если есть, $MONI.TOR - и всё.

Но были мысли по работе с секциями, так что там была доработка - вот её сейчас тестирую, ибо - есть ошибки :)

Hunta
09.06.2025, 23:32
Уф.. Очередная переделка секций, очередная война за то, что бы оно работала, как мамка велела. Ну, вроде работает... Теперь оценка ушерба, причёска код, контрольный тест и, если ок, коммит

Далее - виртуальные блоки их логических

- - - Добавлено - - -

Но с секциями надо что-то делать. Основная проблема - правильно сформировать набор секция для выходных данных. Так как для входных - элементарно просчитывается по схеме и фильтру (какие в работу пойдут), а вот для выходных данных.. Банальный вопрос - а на выходном устройстве секции есть? А если есть - ФС поддерживается? В этом плане - распаковка - проще - ибо всё сливается в папку Windows - но надо подменить ФС на выходе (ибо на входе может быть, скажем, RSX, а на выходе... WinFS :) ). В общем - пока мысли, но не решение

- - - Добавлено - - -

А, да, и есть повторяющися код парсинга ANSI лент, что не есть хорошо - ибо если править что-то (например, ошибки) - то в трёх местах (и не всё). Тоже думаю...

Hunta
15.06.2025, 01:27
Первые шаги (не всё ещё доделано и образ только один в пыточной) :) Три дня, примерно 15 часов :)




RSTS>dir



Directory of RSTS



15.06.2025 01:51 <DIR> .

13.06.2025 18:46 <DIR> ..

15.06.2025 01:51 0 log.txt

09.06.1998 00:09 5 235 200 rsts_full_rl.dsk

09.06.1998 23:22 5 235 200 rsts_min_rl.dsk

09.06.1998 23:23 5 235 200 rsts_swap_rl.dsk

15.06.2025 01:51 167 test.cmd

14.06.2025 18:26 84 994 716 VT52.log

6 File(s) 100 700 483 bytes

2 Dir(s) 110 653 681 664 bytes free



RSTS>ImageUtilsX -unpack rsts_full_rl.dsk rsts_full_rl.dsk rsts



RSTS>dir



Directory of RSTS



15.06.2025 01:52 <DIR> .

13.06.2025 18:46 <DIR> ..

15.06.2025 01:52 1 452 !Log.txt

15.06.2025 01:52 <DIR> rsts_full_rl.dsk

15.06.2025 01:51 0 log.txt

09.06.1998 00:09 5 235 200 rsts_full_rl.dsk

15.06.2025 01:52 16 426 rsts_full_rl.dsk.UnPack.MyLog.txt

09.06.1998 23:22 5 235 200 rsts_min_rl.dsk

09.06.1998 23:23 5 235 200 rsts_swap_rl.dsk

15.06.2025 01:51 167 test.cmd

14.06.2025 18:26 84 994 716 VT52.log

8 File(s) 100 718 361 bytes

3 Dir(s) 110 647 218 176 bytes free



RSTS>dir rsts_full_rl.dsk /s



Directory of RSTS rsts_full_rl.dsk



15.06.2025 01:52 <DIR> .

15.06.2025 01:52 <DIR> ..

15.06.2025 01:52 <DIR> metaFiles@

15.06.2025 01:52 <DIR> [0,1]

15.06.2025 01:52 <DIR> [1,10]

15.06.2025 01:52 <DIR> [1,1]

15.06.2025 01:52 <DIR> [1,2]

15.06.2025 01:52 <DIR> [1,5]

15.06.2025 01:52 <DIR> [1,6]

15.06.2025 01:52 <DIR> [1,7]

0 File(s) 0 bytes



Directory of RSTS rsts_full_rl.dsk metaFiles@



15.06.2025 01:52 <DIR> .

15.06.2025 01:52 <DIR> ..

15.06.2025 01:52 512 $BOOT.BLK

15.06.2025 01:52 12 740 $META.INF

15.06.2025 01:52 8 040 $ORDER.INF

15.06.2025 01:52 49 190 $VOLUM.INF

4 File(s) 70 482 bytes



Directory of RSTS rsts_full_rl.dsk\[0,1]



15.06.2025 01:52 <DIR> .

15.06.2025 01:52 <DIR> ..

15.06.2025 01:52 0 BADB.SYS

15.06.2025 01:52 43 008 BASIC.RTS

15.06.2025 01:52 21 504 CRASH.SYS

15.06.2025 01:52 14 336 ERR.ERR

15.06.2025 01:52 215 040 INIT.SYS

15.06.2025 01:52 172 032 RSTS.SIL

15.06.2025 01:52 14 336 RSX.RTS

15.06.2025 01:52 14 336 RT11.RTS

15.06.2025 01:52 7 168 SATT.SYS

15.06.2025 01:52 136 192 SWAP.SYS

15.06.2025 01:52 107 520 SYSGEN.SIL

15.06.2025 01:52 21 504 TECO.RTS

12 File(s) 766 976 bytes



Directory of RSTS rsts_full_rl.dsk\[1,10]



15.06.2025 01:52 <DIR> .

15.06.2025 01:52 <DIR> ..

15.06.2025 01:52 7 168 BPCHLP.HLP

15.06.2025 01:52 7 168 BPCOMM.HLP

15.06.2025 01:52 7 168 BPFUNC.HLP

...

15.06.2025 01:52 7 168 TYPE.HLP

15.06.2025 01:52 14 336 UTHELP.HLP

15.06.2025 01:52 7 168 VTEDIT.HLP

32 File(s) 272 384 bytes



Directory of RSTS rsts_full_rl.dsk\[1,1]



15.06.2025 01:52 <DIR> .

15.06.2025 01:52 <DIR> ..

15.06.2025 01:52 107 520 CSPCOM.OLB

15.06.2025 01:52 7 168 ODT.OBJ

15.06.2025 01:52 78 848 RSXMAC.SML

15.06.2025 01:52 93 184 SYSLIB.OLB

4 File(s) 286 720 bytes



Directory of RSTS rsts_full_rl.dsk\[1,2]



15.06.2025 01:52 <DIR> .

15.06.2025 01:52 <DIR> ..

15.06.2025 01:52 7 168 ACCT.SYS

15.06.2025 01:52 28 672 ANALY1.BAC

15.06.2025 01:52 28 672 ANALYS.BAC

...

15.06.2025 01:52 28 672 UTILTY.BAC

15.06.2025 01:52 14 336 UTILTY.HLP

15.06.2025 01:52 14 336 UTILTY.SAV

15.06.2025 01:52 7 168 VT05.DPY

15.06.2025 01:52 7 168 VT50.DPY

15.06.2025 01:52 64 512 VTEDIT.DOC

15.06.2025 01:52 14 336 VTEDIT.TEC

153 File(s) 3 677 184 bytes



Directory of RSTS rsts_full_rl.dsk\[1,5]



15.06.2025 01:52 <DIR> .

15.06.2025 01:52 <DIR> ..

15.06.2025 01:52 28 672 BATCH.BAC

15.06.2025 01:52 7 168 BATCH.DCD

15.06.2025 01:52 14 336 BATDCD.BAC

15.06.2025 01:52 28 672 BATDEC.BAC

15.06.2025 01:52 28 672 BATIDL.BAC

15.06.2025 01:52 28 672 BATRUN.BAC

15.06.2025 01:52 14 336 CHARS.BAC

15.06.2025 01:52 7 168 CHARS.QUE

15.06.2025 01:52 14 336 OPSER.BAC

15.06.2025 01:52 7 168 OPSER0.WRK

15.06.2025 01:52 43 008 OPSRUN.BAC

15.06.2025 01:52 28 672 QUEMAN.BAC

15.06.2025 01:52 7 168 QUEUE.WRK

15.06.2025 01:52 28 672 QUMRUN.BAC

15.06.2025 01:52 43 008 SPLIDL.BAC

15.06.2025 01:52 43 008 SPLRUN.BAC

15.06.2025 01:52 28 672 SPOOL.BAC

17 File(s) 401 408 bytes



Directory of RSTS rsts_full_rl.dsk\[1,6]



15.06.2025 01:52 <DIR> .

15.06.2025 01:52 <DIR> ..

15.06.2025 01:52 28 672 BACCOM.BAC

15.06.2025 01:52 28 672 BACCON.BAC

15.06.2025 01:52 28 672 BACDEL.BAC

15.06.2025 01:52 28 672 BACDIR.BAC

15.06.2025 01:52 28 672 BACDMP.BAC

15.06.2025 01:52 14 336 BACDSK.BAC

15.06.2025 01:52 28 672 BACENT.BAC

15.06.2025 01:52 28 672 BACFRM.BAC

15.06.2025 01:52 28 672 BACKTO.BAC

15.06.2025 01:52 28 672 BACKUP.BAC

15.06.2025 01:52 7 168 BACKUP.HLP

15.06.2025 01:52 7 168 BACKUP.PRM

15.06.2025 01:52 28 672 BACLAB.BAC

15.06.2025 01:52 28 672 BACLOD.BAC

15.06.2025 01:52 28 672 BACLST.BAC

15.06.2025 01:52 43 008 BACMNT.BAC

15.06.2025 01:52 14 336 BACPRM.BAC

17 File(s) 430 080 bytes



Directory of RSTS rsts_full_rl.dsk\[1,7]



15.06.2025 01:52 <DIR> .

15.06.2025 01:52 <DIR> ..

15.06.2025 01:52 14 336 CPEXER.BAC

15.06.2025 01:52 14 336 CPUTST.BAC

15.06.2025 01:52 14 336 DSKEXR.BAC

15.06.2025 01:52 14 336 DSKSEK.BAC

15.06.2025 01:52 14 336 DTEXER.BAC

15.06.2025 01:52 14 336 DXEXER.BAC

15.06.2025 01:52 14 336 KBEXER.BAC

15.06.2025 01:52 14 336 LPEXER.BAC

15.06.2025 01:52 14 336 MTEXER.BAC

15.06.2025 01:52 14 336 PPEXER.BAC

15.06.2025 01:52 14 336 PREXER.BAC

11 File(s) 157 696 bytes



Total Files Listed:

250 File(s) 6 062 930 bytes

26 Dir(s) 110 647 201 792 bytes free

Hunta
16.06.2025, 01:33
#
# -unpack "RSTS\rsts_full_rl.dsk" "RSTS\@rsts_full_rl.dsk" rsts
#


Name .Ext Size Prot Date [1,1]
SYSLIB.OLB 182 < 40> 23-SEP-1979
RSXMAC.SML 154 < 40> 23-SEP-1979
CSPCOM.OLB 208 < 40> 19-SEP-1979
ODT .OBJ 10 < 40> 08-JUN-1998

Total of 554 blocks in 4 files in [1,1]

Name .Ext Size Prot Date [0,1]
BADB .SYS 0P < 63> 08-JUN-1998
SATT .SYS 2CP < 63> 08-JUN-1998
INIT .SYS 420P < 40> 08-JUN-1998
ERR .ERR 16CP < 40> 08-JUN-1998
SYSGEN.SIL 206 < 60> 08-JUN-1998
RT11 .RTS 20C < 60> 08-JUN-1998
RSTS .SIL 324CP < 60> 08-JUN-1998
BASIC .RTS 74CP < 60> 08-JUN-1998
SWAP .SYS 256CP < 63> 08-JUN-1998
CRASH .SYS 36CP < 63> 08-JUN-1998
RSX .RTS 16C < 60> 23-SEP-1979
TECO .RTS 40C < 60> 24-SEP-1979

Total of 1410 blocks in 12 files in [0,1]

Name .Ext Size Prot Date [1,2]
CREATE.LOG 4 < 60> 08-JUN-1998
LOGIN .SAV 14 <232> 23-SEP-1979
LOGOUT.SAV 12 <232> 23-SEP-1979
PIP .SAV 50 <232> 23-SEP-1979
UTILTY.SAV 22 <104> 23-SEP-1979
MACRO .SAV 58 <104> 23-SEP-1979
CREF .SAV 8 <104> 23-SEP-1979
LINK .SAV 40 <104> 23-SEP-1979
SILUS .SAV 22 <104> 23-SEP-1979
HOOK .SAV 28 <104> 23-SEP-1979
SYSGEN.SAV 140 <104> 23-SEP-1979
SYSBAT.SAV 18 <124> 23-SEP-1979
ONLPAT.SAV 60 <104> 23-SEP-1979
ERR .STB 4 < 40> 23-SEP-1979
PIPSAV.TXT 30 < 40> 23-SEP-1979
CONFIG.MAC 6 < 60> 08-JUN-1998
SYSGEN.CTL 6 < 60> 08-JUN-1998
SYSGEN.LOG 180 < 60> 08-JUN-1998
COMMON.MAC 32 < 40> 23-SEP-1979
OVLHD .OBJ 2 < 40> 21-JUN-1979
LIBR .SAV 22 <104> 24-SEP-1979
PATCH .SAV 12 <104> 23-SEP-1979
PAT .SAV 10 <104> 23-SEP-1979
MINCOP.BAS 16 < 60> 24-SEP-1979
RSTS .MAP 42 < 60> 08-JUN-1998
DSK .MAP 34 < 60> 08-JUN-1998
TER .MAP 38 < 60> 08-JUN-1998
EMT .MAP 32 < 60> 08-JUN-1998
FIP .MAP 38 < 60> 08-JUN-1998
RSX .MAP 32 < 60> 08-JUN-1998
OVR .MAP 44 < 60> 08-JUN-1998
SYSLIB.OBJ 2 < 40> 08-JUN-1998
BASIC .MAP 18 < 60> 08-JUN-1998
TEMP01.TMP 136 < 60> 08-JUN-1998
CPATCH.BAC 24C <124> 08-JUN-1998
AUTOED.BAC 32C <124> 08-JUN-1998
BUILD .BAC 60C <124> 08-JUN-1998
ATPK .BAC 32C <124> 08-JUN-1998
LOGIN .BAC 32C <232> 08-JUN-1998
LOGOUT.BAC 24C <232> 08-JUN-1998
PATCPY.BAC 32C <124> 08-JUN-1998
PBUILD.BAC 24C <124> 08-JUN-1998
UTILTY.BAC 48C <124> 08-JUN-1998
INIT .BAC 32C <124> 08-JUN-1998
SHUTUP.BAC 32C <124> 08-JUN-1998
ERRBLD.BAC 32C <124> 08-JUN-1998
ERRDAT.FIL 68 < 60> 08-JUN-1998
ERRINT.BAC 20C <124> 08-JUN-1998
ERRCPY.BAC 16C <124> 08-JUN-1998
DIRECT.BAC 48C <232> 08-JUN-1998
TTYSET.BAC 32C <232> 08-JUN-1998
SYSTAT.BAC 40C <232> 08-JUN-1998
EDIT .BAC 20C <104> 08-JUN-1998
EDITCH.BAC 24C <104> 08-JUN-1998
ERRDIS.BAC 32C <124> 08-JUN-1998
ERRDET.BAC 32C <124> 08-JUN-1998
ANALYS.BAC 56C <124> 08-JUN-1998
ANALY1.BAC 48C <124> 08-JUN-1998
ODT .BAC 32C <124> 08-JUN-1998
REACT .BAC 16C <124> 08-JUN-1998
REORDR.BAC 24C <124> 08-JUN-1998
DSKINT.BAC 36C <124> 08-JUN-1998
UMOUNT.BAC 32C <232> 08-JUN-1998
COPY .BAC 28C <104> 08-JUN-1998
FILCOM.BAC 40C <104> 08-JUN-1998
QUOLST.BAC 16C <232> 08-JUN-1998
MONEY .BAC 16C <104> 08-JUN-1998
GRIPE .BAC 16C <232> 08-JUN-1998
TALK .BAC 12C <232> 08-JUN-1998
PLEASE.BAC 16C <232> 08-JUN-1998
INUSE .BAC 12C <104> 08-JUN-1998
SWITCH.BAC 12C <232> 08-JUN-1998
ONLCLN.SAV 74 <124> 23-SEP-1979
NOTICE.TXT 2 < 40> 24-SEP-1979
HELP .TXT 2 < 40> 24-SEP-1979
TTY .CMD 2 < 60> 24-SEP-1979
RTS .BAK 2 < 60> 24-SEP-1979
CCL .CMD 4 < 60> 24-SEP-1979
CRASH .BAK 2 < 60> 08-JUN-1998
ANALYS.CMD 2 < 60> 08-JUN-1998
CLEAN .CMD 2 < 60> 24-SEP-1979
UTILTY.HLP 20 < 40> 24-SEP-1979
DIRECT.HLP 4 < 40> 24-SEP-1979
ERRDIS.HLP 6 < 40> 24-SEP-1979
ACCT .SYS 2 <188> 24-SEP-1979
COPY .HLP 4 < 40> 24-SEP-1979
ERRLOG.FIL 2 < 60> 08-JUN-1998
QUE .BAC 56C <232> 08-JUN-1998
SPOOL .CMD 2 < 60> 08-JUN-1998
START .BAK 2 < 60> 08-JUN-1998
CRASH .CTL 2 < 60> 08-JUN-1998
DSKDMP.BAC 20C <124> 08-JUN-1998
STATUS.BAC 32C <124> 08-JUN-1998
DEMO55.BAC 24C <124> 08-JUN-1998
DSKDMP.HLP 26 < 40> 24-SEP-1979
VT50 .DPY 12 < 60> 08-JUN-1998
VT05 .DPY 10 < 60> 08-JUN-1998
FIT .BAC 60C <232> 08-JUN-1998
FLINT .BAC 44C <104> 08-JUN-1998
PMDUMP.BAC 44C <104> 08-JUN-1998
BPCREF.BAC 28C <104> 08-JUN-1998
BPCRF1.BAC 36C <104> 08-JUN-1998
RUNOFF.BAC 56C <104> 08-JUN-1998
MAKSIL.BAC 44C <104> 08-JUN-1998
SAVRES.SAV 200 <124> 03-DEC-1981
BPCREF.HLP 14 < 40> 24-SEP-1979
FIT .HLP 10 < 40> 24-SEP-1979
RUNOFF.RNO 56 < 40> 24-SEP-1979
HELP .BAC 24C <232> 08-JUN-1998
HELP .HLP 14 < 60> 08-JUN-1998
TKB .TSK 170 <104> 23-SEP-1979
SLOTKB.TSK 164 <104> 23-SEP-1979
MAC .TSK 92 <104> 23-SEP-1979
LBR .TSK 78 <104> 23-SEP-1979
PAT .TSK 54 <104> 23-SEP-1979
EDT .TSK 122 <104> 23-SEP-1979
CSPCOM.TSK 406 <124> 11-SEP-1979
SHUTUP.RSX 52 <124> 24-SEP-1979
EDTCOM.TXT 16 < 40> 23-SEP-1979
EDTCOM.MSG 16 < 40> 08-JUN-1998
ICRFG .COR 2 < 60> 08-JUN-1998
ICRPT .COR 2 < 60> 08-JUN-1998
STXCM .COR 2 < 60> 08-JUN-1998
IVOPN .COR 2 < 60> 08-JUN-1998
CALLS .COR 2 < 60> 08-JUN-1998
ECONV .COR 2 < 60> 08-JUN-1998
IXCLS .COR 2 < 60> 08-JUN-1998
IXOPN .COR 2 < 60> 08-JUN-1998
DEBUG .COR 2 < 60> 08-JUN-1998
IMOPN .COR 2 < 60> 08-JUN-1998
BINIT .COR 2 < 60> 08-JUN-1998
IROPN .COR 2 < 60> 08-JUN-1998
ISOPN .COR 2 < 60> 08-JUN-1998
IMERR .COR 2 < 60> 08-JUN-1998
IMFSS .COR 2 < 60> 08-JUN-1998
ICRED .COR 4 < 60> 08-JUN-1998
ICPRG .COR 2 < 60> 08-JUN-1998
TECO .TEC 10 <104> 24-SEP-1979
TYPE .TEC 8 <104> 24-SEP-1979
VTEDIT.TEC 22 <104> 24-SEP-1979
TECO .DOC 460 < 40> 24-SEP-1979
VTEDIT.DOC 118 < 40> 24-SEP-1979
BLD02 .TMP 10 < 60> 08-JUN-1998
SORT .TSK 196 <104> 23-SEP-1979
SORT .OLB 258 < 60> 13-SEP-1979
SRTRSX.CMD 2 < 60> 13-SEP-1979
SRTRSX.ODL 2 < 60> 05-MAR-1979
SRTEIO.ODL 24 < 60> 05-MAR-1979
START .CTL 2 < 60> 08-JUN-1998
RTS .CMD 2 < 60> 08-JUN-1998
OPSER1.WRK 22 < 40> 08-JUN-1998
OPSER .LOG 2 < 60> 08-JUN-1998
QUEUE .SYS 18 < 40> 08-JUN-1998

Total of 5668 blocks in 153 files in [1,2]

Name .Ext Size Prot Date [1,5]
QUEMAN.BAC 32C <124> 08-JUN-1998
QUMRUN.BAC 56C <124> 08-JUN-1998
OPSER .BAC 28C <124> 08-JUN-1998
OPSRUN.BAC 60C <124> 08-JUN-1998
CHARS .BAC 16C <124> 08-JUN-1998
CHARS .QUE 2 < 60> 08-JUN-1998
SPOOL .BAC 52C <124> 08-JUN-1998
SPLIDL.BAC 60C <124> 08-JUN-1998
SPLRUN.BAC 60C <124> 08-JUN-1998
BATDCD.BAC 20C <124> 08-JUN-1998
BATCH .DCD 12C < 60> 08-JUN-1998
BATCH .BAC 52C <124> 08-JUN-1998
BATIDL.BAC 48C <124> 08-JUN-1998
BATDEC.BAC 56C <124> 08-JUN-1998
BATRUN.BAC 56C <124> 08-JUN-1998
OPSER0.WRK 2 < 60> 08-JUN-1998
QUEUE .WRK 12 < 60> 08-JUN-1998

Total of 624 blocks in 17 files in [1,5]

Name .Ext Size Prot Date [1,6]
BACKUP.BAC 52C <232> 08-JUN-1998
BACLST.BAC 56C <232> 08-JUN-1998
BACCON.BAC 32C <232> 08-JUN-1998
BACDIR.BAC 56C <232> 08-JUN-1998
BACMNT.BAC 60C <232> 08-JUN-1998
BACLAB.BAC 44C <232> 08-JUN-1998
BACDSK.BAC 28C <232> 08-JUN-1998
BACKTO.BAC 52C <232> 08-JUN-1998
BACCOM.BAC 48C <232> 08-JUN-1998
BACDMP.BAC 52C <232> 08-JUN-1998
BACDEL.BAC 40C <232> 08-JUN-1998
BACLOD.BAC 52C <232> 08-JUN-1998
BACENT.BAC 44C <124> 08-JUN-1998
BACFRM.BAC 52C <232> 08-JUN-1998
BACPRM.BAC 28C <124> 08-JUN-1998
BACKUP.PRM 6 < 60> 08-JUN-1998
BACKUP.HLP 14 < 60> 08-JUN-1998

Total of 716 blocks in 17 files in [1,6]

Name .Ext Size Prot Date [1,7]
DSKSEK.BAC 16C <124> 08-JUN-1998
DSKEXR.BAC 20C <124> 08-JUN-1998
LPEXER.BAC 16C <124> 08-JUN-1998
PPEXER.BAC 16C <124> 08-JUN-1998
PREXER.BAC 16C <124> 08-JUN-1998
DXEXER.BAC 20C <124> 08-JUN-1998
DTEXER.BAC 16C <124> 08-JUN-1998
CPEXER.BAC 28C <124> 08-JUN-1998
CPUTST.BAC 16C <124> 08-JUN-1998
KBEXER.BAC 20C <124> 08-JUN-1998
MTEXER.BAC 24C <124> 08-JUN-1998

Total of 208 blocks in 11 files in [1,7]

Name .Ext Size Prot Date [1,10]
BPHELP.HLP 2 < 60> 24-SEP-1979
BPCOMM.HLP 10 < 60> 24-SEP-1979
BPSTAT.HLP 16 < 60> 24-SEP-1979
BPFUNC.HLP 12 < 60> 24-SEP-1979
BPCHLP.HLP 4 < 60> 24-SEP-1979
DIRHLP.HLP 4 < 60> 24-SEP-1979
FILNAM.HLP 12 < 60> 24-SEP-1979
FITHLP.HLP 10 < 60> 24-SEP-1979
KEYBRD.HLP 6 < 60> 24-SEP-1979
CTRLT .HLP 6 < 60> 24-SEP-1979
PIPHLP.HLP 28 < 60> 24-SEP-1979
PIPDIR.HLP 2 < 60> 24-SEP-1979
PLEASE.HLP 6 < 60> 24-SEP-1979
PLEBAC.HLP 6 < 60> 24-SEP-1979
PLEBAT.HLP 4 < 60> 24-SEP-1979
PLEQUE.HLP 4 < 60> 24-SEP-1979
PLESPL.HLP 6 < 60> 24-SEP-1979
QUEHLP.HLP 6 < 60> 24-SEP-1979
DISK .HLP 6 < 60> 24-SEP-1979
MAGTAP.HLP 8 < 60> 24-SEP-1979
TERMNL.HLP 2 < 60> 24-SEP-1979
RSX .HLP 2 < 60> 24-SEP-1979
RT11 .HLP 14 < 60> 24-SEP-1979
SETHLP.HLP 18 < 60> 24-SEP-1979
SYSHLP.HLP 22 < 60> 24-SEP-1979
TECO .HLP 4 < 60> 24-SEP-1979
TECOFL.HLP 4 < 60> 24-SEP-1979
TECOMD.HLP 12 < 60> 24-SEP-1979
TYPE .HLP 4 < 60> 24-SEP-1979
UTHELP.HLP 16 < 60> 24-SEP-1979
VTEDIT.HLP 4 < 60> 24-SEP-1979
RSTS .HLP 16 < 60> 08-JUN-1998

Total of 276 blocks in 32 files in [1,10]


Grand total of 9456 blocks in 246 files in [*,*]

Hunta
17.06.2025, 22:05
Ещё некоторые продвижения - теперь содержимое образа, показанное ImageUtils (ака DIR) - совпадает с выводом команды DIR в RSTS
Так же распознаются (ну по крайне мере - программа пытается) текстовые файлы :) С соответствующим выводом в файл :)

Hunta
19.06.2025, 09:29
Причёска кода и увеличение выводимой технической информации.
Потом в планах - то, ради чего это всё собственно затевалось - ленты, где в перемешку идут не-BRU информация (как правило, в начале ленты) и BRU бэкапы (в варианте RSTS)

Hunta
22.06.2025, 10:29
По прежнему образы дисков RSTS :)

Переделал парсинг служебки - некоторые объединения кода и сохранение технической информации. Часть техинфы уже выводится. Смотрю на результат.

В целом - извлечение файлов уже вроде ок, так что сейчас цель - сохранения служебки RSTS.

Плюс так же думаю над сохранения служебки в других ФС, но это так - мысли на будущее.