С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Как я уже написал, реализовать сохранение времени будет не сложно, так как, фактически, со стороны данных уже всё есть:
Проверить только пока не на чем - образа с TSX готового нет. В общем, в приницпе в будущем, при удобном случае - добавлюКод:[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); }
- - - Добавлено - - -
Скорее всего - в ближайшее время, но пока внутренние правки (по работе в целом, а не конкретно под RT-11, хотя всё первоначально делалось под (в силу простоты ФС и некоторых заморочек в описаниях) и проверялось на RT-11) и тестирование
Сделаю на досуге.
В принципе есть TSX+ online на telnet://pdp-11.online:2023, там есть FTP сервер - его можно выставить внаружу, тогда можно будет заливать туда образы и тестить через LD.
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Ну и до кучи - что еще можно поддерживать
Может пригодиться работа с образом RTEM shared image.
В сущности она почти ничем не отличается от обычного RT-11 dsk.
Отличия:
- образ всегда SQUEEZED, без свободного места, сегменты линкуются по порядку, все файлы protected
- первый сегмент может быть пустым со всеми записями, имеющими статус 100000 - не особо знаю зачем это нужно, но JOAT создает именно в таком виде (вручную создавал без этого - все работало); возможно для того и делается чтобы где-то опознавать что это именно shared image
- при добавлении новых файлов, их нужно вставлять перед SWAP.SYS (по крайней мере по умолчанию)
PDP-11/83, Электроника МС0511 (УК-НЦ), DECserver 90M
Q-Bus: H9278-A, DLV11-J, DZQ11, DHV11, DELQA-M, LPV11, CQD-420/TM, DRV11
PMI: KDJ11-BF, MSV11-JE
VT220, CM7209
Пока у меня прицел - переделать создание образов XXDP (и DOS-11 заодно сделать) и сделать создание образов ODS-1
Из перечисленного под RTEM:
- "образ всегда SQUEEZED, без свободного места, сегменты линкуются по порядку, все файлы protected" - исходно оно так и будет кроме пункта - все файлы protected - сейчас, если в Windows файл readonly, то будут выставлены E_READ и E_PROT. В планах - реализация механизма более точного указания свойств файлов и образа
- "первый сегмент может быть пустым со всеми записями, имеющими статус 100000" - в принципе, реализовать можно, но основной вопрос - как сказать, что это shared для RTEM. До реализации механизма более точного указания свойств файлов и образа заморачиваться не буду
- "при добавлении новых файлов, их нужно вставлять перед SWAP.SYS" - сейчас в работе (в том числе) механизм указания порядка файлов в образе (ибо в Windows в каталоге они отсортированы и на этот порядок полагаться... не стОит
Сортировка (возможный вариант) добавлена
Порядок перед запаковкой можно задать и свой
Инфа о распаковываемом образе:
Инфа о запакованном образеКод:[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) для файлов. Думаю.
Добавил эру
Код: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
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)