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