-
На неделе был прилично занят, так в основном мелкие косметические изменения. Вчера и сегодня удалось прилично посидеть.
Из изменений
Рефакторинг парсинга командной строки, но для удобства работы с ним, а не что-то внешнее. Хотя нет - внешнее тоже есть - более читабельный вывод результата встроенного генератора текста для команды -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 умеет - или один конкретный раздел или все. А будет уметь - не один, но и не все :) В том числе в варианте - разные разделы с разной ФС.
Но пока дальше, как обычно - комплексное тестирование. И только после его успешного выполнения - дальнейшие доработки
-
Текущий вариант для указания разделов
Код:
-dir 1\SectionsTest.dsk sectionschema[du]:0:2 rt11
-dir 1\SectionsTest.dsk s[du]:0:2[rt11] rt11
Работы продолжаются :)
-
На неделе - в основном размышления, пробы и некоторые доработки. Сегодня до какой-то степени сведено в единую концепцию (не факт, что окончательную) и её (с доработками кода) результат:
Код:
>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 - но для него надо посмотреть - какие варианты возможны.
-
Более-менее.. :)
Код:
>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
-
По результатм тестирования - исправление неточностей, ошибок, рефакторинг.
-unpack вроде ок (если только с дальнейшей доработкой что-то не вылезет)
Теперь -pack
-
-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
Из замечанного - если одной командой пакуются несколько сегментов с ФС - будет несколько логов, хотя по логике - должен быть. Наадо будет поправить.
Теперь включу новые тесты в общую цепочку и прогоню все
-
Поскольку существенные доделки и поскольку опять рабочая неделя - на неделе скорее всего оценка ущерба :) и рефакторинг
-
Как обычно - реализовав что-то, поигравшись и посмотрев на реализацию - понял, что все на самом деле проще, чем казалось :)
Несколько переработал код (тестирую), что, как ни странно, позволило сделать пару шагов к реализации поддержки секций в паре -from -to :)
-
После исправления ошибок и неучтённостей последних переделок - оказалось - это не два шага было :)
Заработали сразу:
Код:
-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
То есть - надо напридумывать тестов - и вперёд :)
-
Исправил пару ошибок, доработал вывод лога в сценарии работы с несколькими секциями в одной команде (теперь будет один файл, а не несколько), тестирую дальше...