Радио-86РК/Радио 07-90/Обработка файлов на компьютерах IBM
Данный материал защищён авторскими правами!
Использование материала заявлено как добросовестное, исключительно для образовательных некоммерческих целей. Автор: А. ДОЛГИЙ |
В статье «Преобразователь интерфейса» было описано устройство, позволяющее ввести данные, записанные на магнитную ленту компьютером «Радио-86РК», в любой компьютер, снабженный стандартным интерфейсом «стык С2» (RS-232C). Однако структура файлов, формируемых компьютером «Радио-86РК», отличается от принятой в операционных системах профессиональных компьютеров. Поэтому использовать их непосредственно после приема в большинстве случаев невозможно. Ниже приведена программа преобразования файлов компьютера «Радио-86РК» в стандартный вид. Программа написана на языке Паскаль (использовался транслятор TURBO—PASCAL версия 3.0).
Данные, подготовленные на «Радио-86РК», должны находиться на магнитном диске в так называемом «файле без типа», представляющем собой простую последовательность принятых через интерфейс кодов. В начале своей работы программа запрашивает у оператора имя, которое было присвоено этому файлу при записи на дискету. Затем она читает файл и пытается определить, сформирован ли он редактором текста ED.МИКРОН, одним из интерпретаторов языка Бейсик или МОНИТОРОМ «Радио-86РК». Дальнейшие действия зависят от результата этой операции.
ФАЙЛ РЕДАКТОРА ТЕКСТА
На экран дисплея выводится сообщение с именем, присвоенным тексту при записи на ленту, а также длина текста в байтах. Программа предлагает преобразовать данные в стандартный текстовый файл или перейти к обработке другого файла. Перед выполнением преобразования запрашивается имя, под которым обработанный текст будет записан на диск. Если задать имя файла CON: или LST:, то результат обработки вместо записи на диск будет выведен соответственно на дисплей или на принтер. Операцию преобразования одних и тех же исходных данных можно повторять неоднократно, задавая разные имена для результирующих файлов. Можно задавать и имя, совпадающее с именем файла, содержащего необработанные данные. Но нужно иметь в виду, что в этом случае исходные данные будут уничтожены.
ФАЙЛ ИНТЕРПРЕТАТОРА БЕЙСИК
После опознавания типа файла на экран выдается сообщение об этом и имя, присвоенное программа при записи на магнитную ленту. Программа на языке Бейсик преобразуется в текстовый файл, причем закодированные интерпретатором ключевыее слова языка выводятся в своей полной форме. Его можно записать на магнитный диск, вывести на дисплей или на принтер (аналогично, файлу редактора ED.МИКРОН). В процессе. преобразования фиксируются следующие ситуации:
- встретился байт, который не может быть интерпретирован ни как код символа, ни как код ключевого слова. Он заменяется кодом символа «#»;
- встретился код псевдографического символа, имеющегося в знакогенераторе «Радио-86РК», но отсутствующего в стандартном наборе символов КОИ-7. Он заменяется кодом символа «Ш»; 1
- встретился код директивы (RUN, LIST, CONT, NEW и т. п.), обычно не используемой в программе;
- встретился оператор или функция, не предусмотренные в интерпретаторе BASIC-80 фирмы MICROSOFT;
- встретился оператор или функция, которые в интерпретаторе BASIC-80 фирмы MICROSOFT работают иначе, чем в интерпретаторах для «Радио-86РК».
Строго говоря, только первая из этих ситуаций всегда является ошибкой. Остальные фиксируются для облегчения анализа и адаптации к другим компьютерам программ, разработанных для «Радио-86РК».
По окончании обработки на экран дисплея выводится информация о числе строк в обработанной программе и номере последней строки. Если зафиксированы ошибки, то сообщаете их число, и в меню появляется строка, предоставляющая возможность записать сообщение об ошибках в отдельный файл или добавить их в тот же файл, куда записывалась программа.
ФАЙЛ МОНИТОРА «РАДИО-86РК»
После опознавания такого файла на экран дисплея выводятся его начальный и конечный адреса и контрольная сумма, если в принятых данных контрольная сумма отсутствует или она не совпадает со значением, подсчитанным программой обработки, об этом также сообщается. Принятые данные могут быть преобразованы в текстовые файлы, имеющие вид таблиц, аналогичных выводимым на экран дисплея «Радио-8бРК» по директивам D и L МОНИТОРА, или в так называемый НЕХ-файл. Последний формат удобен тем, что может быть преобразован в двоичные коды и загружен в память компьютера с помощью стандартной программы-загрузчика.
ФАЙЛ ТРАНСЛЯТОРА ЛС-ПАСКАЛЬ
Для записи текста стандартная подпрограмма вывода блока данных МОНИТОРА «Радио-86РК». Поэтому такой файл первоначально обрабатывается как файл МОНИТОРА, сообщаются его начальный и конечный адреса и контрольная сумма, Затем программа анализирует дополнительные признаки файла и, если они соответствуют формату файла транслятора ЛС-ПАСКАЛЬ, то в меню появляется строка, предоставляющая возможность записать в указанный Вами файл текста программы. Текст выводится без номеров строк. Ключевые слова записываются в полной форме; INTEGER, PROCEDURE, FUNCTION. Символы с кодами 05Н и 12Н, ограничивающие комментарий, заменяются соответственно на *.
Любой файл, тип которого программе опознать не удалось, обрабатывается как файл МОНИТОРА, Единственное отличие заключается в том, что начальный адрес данных запрашивается у оператора, а конечный адрес вычисляется исходя из количества принятых байтов.
В компьютерах, совместимых с IBM PC, коды русских букв отличаются от используемых в «Радио-86РК». Для их правильного воспроизведения в программе обработки файлов имеется функция перекодировки русских букв TRANSRUS. Если необходимости в перекодировке нет, то ее можно удалить из программы. Все вызовы TRANSRUS(B) в этом случае заменить на СНР (В).
А. ДОЛГИЙ, г. Москва
См. также вариант программы, разработанный Ю. Лесных на языке С.