D3 Reference Manual

Index | Help

Поиск по страницам

Разделы / Общие сведения / Binary Files

Binary Files

Хранение двоичных записей и файлов

Доступ к двоичным файлам с помощью стандартных утилит D3. Доступ к двоичным записям может быть получен через OSFI с использованием AQL, Pick/BASIC, FlashBASIC и т.д., как к обычным записям D3.

Соглашения

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

  • Следующие символы двоичной записи преобразуются в соответствующие ESC-последовательности при чтении через двоичный интерфейс. Это правило инвертируется при сохранении записи. Отметим, что данная схема преобразований аналогична используемой интерфейсом Unix, что позволяет хранить внешние данные в двоичной записи D3 точно так, как они представлены во внешней файловой системе.
        SM   DLE _
        AM   DLE ^
        VM   DLE ]
        SVM  DLE \
        DLE  DLE DLE 
    
  • При чтении не двоичной записи возвращается запись без какой-либо трансляции.
  • При сохранении записи через двоичный интерфейс всегда получается двоичная запись. Действительная длина данных (после применения инверсного преобразования) сохраняется в заголовке записи и передается всеми стандартными утилитами, включая "copy", "t-dump", "t-load", "save" и "restore".
  • Двоичные записи старого формата D3, которые не включают размер двоичных данных, при чтении могут возвращать число символов нуля в конце данных ("zero filled").
Формат Q-указателя

Q-указатель имеет следующий формат:

file.name
    001 Q
    002
    003 binary:filename

'binary' - имя "двоичного" драйвера в файле 'dm,hosts,'. 'filename' - имя файла D3. Использование двоичного Q-указателя обычно не требуется для не-D3 файлов, поскольку драйверы доступа к этим файлам уже конвертировали двоичные данные в недвоичный ESC-формат, аналогичный тому, что используется двоичным драйвером. В ряде случаев файл может быть открыт напрямую с добавлением к имени файла префикса "binary:".

Примеры:

В следующем примере приведен текстовый фрагмент объектного кода BASIC.

:ct dict binary:bp test
001 ............]}..............:. B..B..who._.. u0.P..E._..
    test.]9885.[38516.]7.]bh/]brad.]6.2.0.M0.A2.D2.F5.].^._.
    ............................................(many more dots)

В следующем примере с машины DOS в стандартную запись D3 (через NFS) копируется двоичное изображение. Отметим, что стандартная запись D3 НЕ является двоичной и вся двоичная информация представленная ESC-последовательностями будет обработана как ESC-последовательности (есть они или нет) при передаче данных из DOS в D3. Вторая команда копирует эту запись в двоичную запись D3. Данные двоичной записи в точности соответствуют данным оригинального изображения DOS.

copy /dos PIC001.GIR
(pictures
   1 PIC001.GIR
copy pictures PIC001.GIR
(bin:pictures2
   1 PIC001.GIR