Команды работы с бинарными файлами
В командах работы бинарными файлами (BF) поддерживаются следующие режимы адресации к данным:
Таблица 2
P1 | bit 7 = 1 bit 0 .. bit 4 – короткий идентификатор файла bit 7 = 0 bit 0 .. bit 6 - MSB адреса |
P2 | LSB адреса |
Нечетные INS не поддерживаются.
Примечание для ОС "Магистра 1.30": В случае нечетного INS:
P1-P2 | если bit 5 .. bit 15 = 0, то bit 0 .. bit 4 – короткий идентификатор файла, если значения всех битов не одинаковы если bit 0 .. bit 15 = 0, то команда применяется к текущему файлу в остальных случаях P1, P2 - идентификатор файла |
BF заполняется нулевыми байтами (со значением 00h) при создании.
типы файлов:
DF (MF) | BF | FRF | VRF | CRF | TF | KF | ARF |
- | + | - | - | - | - | - | - |
9.4.1 READ BINARY
Команда читает данные из BF по указанному смещению. Если команда содержит короткий идентификатор файла, то файл предварительно выбирается и остается текущим после завершения команды.
тип команды | out (case 2) |
формат команды:
CLA | 00 |
INS | B0 |
P1:P2 | см. Таблица 2 |
Lc | - |
данные | - |
Le | кол-во байт для чтения |
ответ | данные |
характерные статусы ошибок:
6A82 | файл не найден |
6B00 | неверные параметры P1-P2 – смещение за границей файла |
В случае указания Le=00 производится чтение до конца файла, либо до достижения максимального размера коммуникационного буфера (256/246 байт без использования SM по контактному/бесконтактному интерфейсам и меньший размер при использовании SM).
9.4.2 UPDATE BINARY
Команда записывает данные в BF по указанному смещению. Если команда содержит короткий идентификатор файла, то файл предварительно выбирается и остается текущим после завершения команды.
тип команды | in (case 3) |
формат команды:
CLA | 00 |
INS | D6 |
P1:P2 | см. Таблица 2 |
Lc | количество байт для записи |
данные | данные |
Le | - |
ответ | - |
характерные статусы ошибок:
6700 | неверная длина входных данных – ноль байт для записи |
6A82 | файл не найден |
6B00 | неверные параметры P1-P2 – смещение за границей файла |
9.4.3 WRITE BINARY
Команда производит побитовую операцию OR над передаваемыми данными и предыдущим содержимым файла. Записывается Lc байт по указанному смещению. Если команда содержит короткий идентификатор файла, то он предварительно выбирается и остается текущим после завершения команды.
тип команды | in (case 3) |
формат команды:
CLA | 00 |
INS | D0 |
P1:P2 | см. Таблица 2 |
Lc | количество байт для записи |
данные | данные |
Le | - |
ответ | - |
характерные статусы ошибок:
6700 | неверная длина входных данных – ноль байт для записи |
6A82 | файл не найден |
6B00 | неверные параметры P1-P2 – смещение за границей файла |