Как я уже написал, реализовать сохранение времени будет не сложно, так как, фактически, со стороны данных уже всё есть:
Код:
[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 готового нет. В общем, в приницпе в будущем, при удобном случае - добавлю
- - - Добавлено - - -

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