Опубликованные в статьях «Монитор для «Специалиста» («М-К», 1988, № 9) и «Программа для системной ППЗУ» («М-К», 1989, № 4) материалы расширили функции компьютера и приблизили набор подпрограмм к ПЭВМ «Радио-86РК», «Микро-80», «Микроша» и аналогичным. Однако возможности микроЭВМ «Специалист»этим не ограничены. Реализовать их в полной мере поможет предлагаемый набор системных программ, который вобрал в себя ранее разработанные аналогичные программы и содержит все подпрограммы, имеющиеся в названных компьютерах; добавлены также и изменены некоторые функции в работе «Специалиста».
Новый набор системных программ позволяет использовать программное обеспечение, разработанное как для «Специалиста», так и для ПЭВМ «Радио-86РК», «Микро-80», «Микроша».
Набор состоит из следующих программ: Загрузчика, Монитора, пакета подпрограмм и кодов знакогенератора.
При применении данного набора программ адресное пространство компьютера выглядит следующим образом: 0000Н—8EFFH ОЗУ пользователя, 8F00H—8FCAH ОЗУ резерв, 8FCBH—8FFFH ОЗУ служебные ячейки, 9000Н—BFFFH ОЗУ экран,
СОООН—C7FFH Загрузчик и Монитор (ПЗУ № 1), С800Н—CFFFH пакет подпрограмм (ПЗУ № 2), D000H—D7FFH коды знакогенератора (ПЗУ № 3), D800H—F7FFH резерв для ПЗУ или внешних устройств, F800H—FFFFH программируемый интерфейс DD44 (см. схему компьютера «Специалист»).
Как видно, набор системных программ занимает 6 Кбайт адресного пространства компьютера и располагается в трех микросхемах К573РФ2 или К573РФ5: ПЗУ № 1 — это DD52 (см. «М-К», 1987, № 2), ПЗУ № 2 и № 3 подключаются параллельно ПЗУ № 1, кроме ножек 20, на которые подается сигнал с выводов 10 и 11 DD51 соответственно.
Разделение набора системных программ на три ПЗУ условно, поскольку все программы взаимосвязаны и работоспособность компьютера обеспечивается одновременным включением трех микросхем ПЗУ. Рассмотрим отдельные компоненты набора системных программ.
ЗАГРУЗЧИК. Эта программа разработана на основе таблицы 1, опубликованной в «М-К» № 5 за 1987 год. Использованный ранее основной набор подпрограмм сохранен, кроме подпрограммы ввода блока с магнитофона (C3F9H), располагаемой в пакете подпрограмм.
Основные подпрограммы Загрузчика приведены в таблице 1. В программу Загрузчик добавлены некоторые функции — работа в режиме «рулон» (текст или изображение проплывает по экрану снизу вверх, режим еще называется SCROLL), кодировка символов по КОИ-8 при выводе символа на экран, ввод цифровой информации в любом регистре, а также изменены назначения и введены новые служебные ячейки. Их назначение приведено в таблице 5.
МОНИТОР. Программа разработана ча основе таблицы 3, опубликованной в «М-К» № 6 за 1987 год. Монитор расположен на месте старого набора кодов знакогенератора и работает только в области ПЗУ, что расширяет объем ОЗУ почти до 36 Кбайт (0000Н—8FCAH).
Набор директив Монитора изменен. Оставлены только те, которыми пользуются чаще всего, а также добавлены директивы: К, L, У, R, W.
Набор директив Монитора приведен в таблице 6. В ней отсутствуют такие директивы, как I, О из-за нецелесообразности их применения. Для тех пользователей, кто не знает отличие форматов записи на ленте в «Специалисте» и «Радио-86РК», приводим таблицу 2. С помощью ее и директив R, W всю информацию на ленте можно привести к одному формату записи, как в «Радио-86РК».
Коды Загрузчика и Монитора приведены в таблице 3, а в таблице 4 даны их поблочные контрольные суммы.
Таблица 1. ОСНОВНЫЕ ПОДПРОГРАММЫ ЗАГРУЗЧИКА
Таблица 2. ФОРМАТЫ ЗАПИСИ НА МАГНИТНУЮ ЛЕНТУ
Таблица 3. КОДЫ ЗАГРУЗЧИКА И МОНИТОРА
Таблица 4. КОНТРОЛЬНЫЕ СУММЫ ЗАГРУЗЧИКА И МОНИТОРА
Таблица 5. СЛУЖЕБНЫЕ ЯЧЕЙКИ
Таблица 6. ДИРЕКТИВЫ МОНИТОРА
D — формат <D> (A1) (А2) <ВК>.
Вывод на экран в виде шестнадцатеричной таблицы содержимое ячеек памяти.
М — формат <М> (А1) <ВК>…
Запись в ОЗУ, начиная с указанного адреса, последовательность шестнадцатеричных чисел.
Т — формат <Т> (А1) (А2) (А3) < ВК>.
Пересылает содержимое области памяти А1-А2 по адресу А3.
F — формат <F> (А1) (А2) (N) <BK>.
Заполняет области памяти А1-А2 константой N.
С — формат <C> (А1) (А2) (А3) <ВК>.
Сравнивает содержимое области памяти А1-А2 с областью А3. При несравнении выводятся адреса й содержимое двух областей.
S — формат <S> (A1) (А2) (N) <BK>.
Выводит адреса ячеек памяти в интервале А1—А2, хранящих код N, и индицирует содержимое двух последовательных ячеек памяти до и после найденного адреса.
J — формат <J> (А1) <ВК>.
Запуск программы по адресу А1. Для возврата в Монитор в программе пользователя должна быть команда RET.
R — формат <R> <BK> или <R> (А1) (А2) <ВК>.
Вводит информацию с магнитофона, которая записана в формате «Радио-РК86», индицирует начальный и конечный адреса, контрольную сумму, записанные на ленте, а также контрольную сумму блока в памяти.
W — фopмaт <W> (А1) (А2) <ВК>.
Выводит на магнитофон содержимое памяти в формате «Радио-РК86» и индицирует контрольную сумму выводимого блока.
К — формат <К> (А1) (А2) <ВК>
Выводит контрольную сумму памяти А1-А2.
L — формат <L> (A1) (А2) <ВК>
Вывод таблицы символов памяти А1—А2. Если код символа не встретился, выводится точка.
Y — формат <Y> (A1) <ВК>.
Вывод сообщения с заданного адреса.
Предлагаемый пакет подпрограмм (табл. 7) включает в себя весь набор, идентичный ПЭВМ «Радио-86РК», а также дополнительные адреса резервных подпрограмм. Рассмотрим отдельные из них, требующие пояснений.
Таблица 7. ПАКЕТ ПОДПРОГРАММ
Примечания:
* — адрес подпрограмм для ПК «Радио-86РК»,
** — десятичные адреса вызовов в Бейсике,
*** — подпрограммы не существует, и в таблице вызовов стоит команда RET.
С803Н — ввод символа с клавиатуры; возвращает в аккумуляторе коды клавиш. Данная подпрограмма переназначает коды функциональных клавиш в соответствии с таблицей 8. Клавиши <Fl>, <F2>, <F3>, <F4>, <TAB>, <АР2>, <УС> используются в персональном компьютере «Радио-86РК»; например, для реализации комбинации УС+Е нужно последовательно нажать клавиши <УС> и <Е>.
Клавиша <РУЛОН> действует подобно триггеру, то есть при каждом нажатии включается и выключается режим «рулон».
Клавиша <КОИ-8>, также действуя как триггер, включает режимы «КОИ-7» и «КОИ-8», то есть предусмотрена возможность работы с алфавитно-цифровыми наборами КОИ-7Н2 и КОИ-8. Режим «КОИ-7» включается также по сбросу. В режиме «КОИ-8» клавиша <HP> выполняет функцию ВР/НР, а <НРФ>—РУС/LAT.
Таблица 8. КЛАВИШИ
Включать и выключать режимы можно, записывая определенный код в служебные ячейки (см. таблицу 2, «М-К» 1990 г. № 2). Из-за отсутствия индикаторов режимов все переключения подтверждаются характерным звуковым сопровождением.
Для полной адаптации с ПЭВМ «Радио-86РК» выход из подпрограммы происходит после нажатия и отпускания клавиши (а не как раньше — только после нажатия).
С809Н — вывод символа, код которого помещен в регистре С, на экран. При этом обрабатывается весь набор символов, коды которых лежат в диапазоне ООН—FFH. В подпрограмму введена новая функция — прямая адресация курсора. При последовательном поступлении набора таких символов, как 1ВН, 59Н, 20Н+(номер. строки), 20Н+(номер позиции), курсор устанавливается на заданных строке и позиции. Данная функция оперативно управляет курсором при выводе информации на экран.
С81ВН — опрос кода нажатой клавиши. Подпрограмма возвращает в аккумуляторе код, соответствующий определенному состоянию клавиатуры. Коды нажатых клавиш вырабатываются в режиме «КОИ-7» как в нижнем, так и в верхнем регистрах; в режиме «КОИ-8» как в РУС, так и в LAT регистрах. Коды спецзнаков (!, «, # , & и т. д.) не вырабатываются. Код OFEH возникает только при нажатии клавиши (НРФ) (РУС/LAT).
Функциональные клавиши вырабатывают код как в подпрограмме С803Н (кроме клавиш <УС>, <РУЛОН>, <КОИ-8>).
С821Н — запрос байта из экранного буфера. Подпрограмма возвращает в аккумуляторе код символа, расположенного на экране над курсором. При одинаково написанных символах, например О и О, приоритет отдается латинскому. Если символ не найден в знакогенераторе, то ему присваивается код 20Н. Подпрограмма работает как при темном, так и при светлом фоне экрана.
C82DH — разрешение отображения информации на экране. Такой подпрограммы в «Специалисте» не существует, поскольку нет необходимости включать и выключать отображение на экране, и поэтому в таблице 7 стоит команда RET.
С855Н — генерирование звука. Подпрограмма вырабатывает электрические колебания с заданными частотой и длительностью.
C80FH, С840Н, С843Н, С852Н— резервные подпрограммы работы с различными принтерами, для совместимости программ которых и предлагаются приведенные адреса вызовов и параметры этих подпрограмм. Чтобы составлять последние, зарезервированы ячейки CE5FH — CFFFH.
Подпрограммы, работающие с кодами символов (С803Н, С809Н, С818Н, С81ВН, С821Н), функционируют в режимах «КОИ-7» и «КОИ-8» (в отличие от ранее разработанных для «Специалиста» и «Радио-86РК», действовавших лишь в режиме КОИ-7). Пользователь должен выбрать, в каком режиме будет работать программа.
Таблица 9. КОДЫ ПАКЕТА ПОДПРОГРАММ
Коды пакета подпрограмм и поблочные контрольные суммы приведены в таблицах 9 и 10 соответственно.
Коды знакогенератора. Набор кодов знакогенератора был опубликован в «М-К» № 4 за 1989 год. В данный набор добавлены коды из «Радио-86РК» — это ячейки D000H — D0FFH. С таким набором кодов знакогенератора можно работать в обоих режимах: «КОИ-7» и «КОИ-8».
Таблица 10. КОНТРОЛЬНЫЕ СУММЫ ПАКЕТА ПОДПРОГРАММ
Для того чтобы узнать, какие символы закодированы в знакогенераторе, нужно задать директиву в Мониторе: Т D000 D7FF В000. На экране появятся восемь столбцов с символами, и если посчитать сверху вниз и слева направо, то можно узнать код каждого символа в КОИ-8.
Дополнительные коды знакогенератора и их контрольная сумма приведены в таблице 11.
При помощи программатора в ПЗУ № 1,2 и 3 необходимо запрограммировать коды: Загрузчика и Монитора (таблица 5), пакета подпрограмм (таблица 9), знакогенератора КОИ-8 (таблица 2, «М-К» 1989 г., № 4, с. 22, 23) плюс дополнительные коды знакогенератора (таблица 11), подсоединить микросхемы, как было сказано выше, и включить питание. Для вызова Монитора после сброса нужно нажать клавишу <F>(<F1>), а для вызова программы, адрес запуска которой записан в рабочих ячейках 8FE1H и 8FE2H, нажать клавишу <HELP> (<F2>).
Таблица 11. ДОПОЛНИТЕЛЬНЫЕ КОДЫ ЗНАКОГЕНЕРАТОРА
После нажатия клавиши (СБРОС) запускается подпрограмма С803Н, и вы можете выбрать любой режим кодирования информации («КОИ-8» или «КОИ-7»), включить или выключить режим «рулон», нажимая соответствующие клавиши. Если их не нажимать, включится режим «КОИ-7», а режим «рулон» останется таким, каким вы его задали до сброса.
К сожалению, не все программы компьютера «Радио-86РК» можно адаптировать на «Специалисте». Трудности представляют те программы, которые при формировании символа на экран не используют обращение к подпрограмме вывода символа на экран (F809H). Но в основном данный набор системных программ позволяет владельцам компьютеров «Специалист» воспользоваться программным обеспечением таких ПЭВМ, как «Радио-86РК», «Микроша» и аналогичных.
С. САВОЩЕНКО