Принтер работает с любыми виртуальными моделями ЭКВМ. Для МК-152 можно
работать через параллельный порт, для других моделей можно использовать SPI.
Также для любой модели возможен обмен через последовательный порт.
Совместно с последовательным портом и интерфейсом SPI можно использовать
сигналы SELECT IN и AUTOFEED для управления интерпретацией символов возврата
каретки и перевода строки.
Сигнал BUSY используется только при работе через параллельный порт. Для SPI
его функцию выполняет принимаемый от принтера байт (0 или 255), а для
последовательного порта используется управление потоком через ожидание
приёма нулевого байта после посылки нулевого байта (на другие символы
принтер в ответ ничего не посылает). Работа через параллельный порт
осуществляется только в режиме совместимости (Centronics).
Соответственно, в eMKatic нужно активировать работу с внешним приложением
для используемых интерфейсов ("в качестве ведущего" для последовательного
порта). Также в eMKatic следует загрузить "драйвер принтера". Это программа,
поставляемая вместе с MK-printer, упрощающая работу с принтером. Драйвер
является перемещаемым, и может быть загружен, начиная с любой страницы
памяти программ.
Драйвер предоставляет пользователю пять прерываний, вызываемых программно.
Использование механизма прерываний позволяет сохранять содержимое регистров
во время выполнения подпрограмм печати. Функции этих прерываний следующие:
Прерывание 5 - Печать строки из памяти программ. В регистре Y передаётся
адрес строки (в регистре X будет номер прерывания). Строка
должна заканчиваться байтом со значением 0 или 255.
Прерывание 6 - Печать строки из памяти двоичных или текстовых данных. В
регистре Y передаётся адрес строки. Строка должна
заканчиваться байтом со значением 0 или 255.
Прерывание 7 - Печать строки из универсального байтового буфера. Строка
берётся с позиции, указываемой индексным регистром 0, и
должна заканчиваться байтом со значением 0 или 255.
Прерывание 8 - Печать одного символа. Код символа передаётся в регистре Y.
Прерывание 9 - Прочие функции. В регистре Y передаётся номер функции, а в
регистре Z - параметр, если требуется.
Прерывание 9 предоставляет пользователю различные вспомогательные функции.
На данный момент реализованы следующие:
Функция 0 - Завершение работы. Функция отключает используемые порты.
Функция 1 - Инициализация. Эта функция автоматически вызывается при
начальной инициализации драйвера. Функция 1 устанавливает
векторы остальных прерываний и включает требуемые порты.
Используемый интерфейс определяется параметром функции
(см. ниже).
Перед началом печати следует вызвать подпрограмму по адресу загрузки
драйвера. В регистре X при этом должен быть параметр, который будет передан
функции 1. Возможные значения параметра приведены в следующей таблице:
+----------+--------------------------------------------------------------+
| Значение | Описание |
+----------+--------------------------------------------------------------+
| 0 | Работа через Centronics для МК-152 и SPI для других моделей. |
| | Принудительное включение автоматического перевода строки. |
| | |
| 1 | Работа через последовательный порт. |
| | Принудительное включение автоматического перевода строки. |
| | |
| 2 | Работа через Centronics для МК-152 и SPI для других моделей. |
| | Принудительное отключение автоматического перевода строки. |
| | |
| 3 | Работа через последовательный порт. |
| | Принудительное отключение автоматического перевода строки. |
| | |
| 4 | Работа через Centronics для МК-152 и SPI для других моделей. |
| | Автоматический возврат каретки при переводе строки. |
| | |
| 5 | Работа через последовательный порт. |
| | Автоматический возврат каретки при переводе строки. |
| | |
| 6 | Работа через Centronics для МК-152 и SPI для других моделей. |
| | Автоматический перевод строки устанавливается пользователем. |
| | |
| 7 | Работа через последовательный порт. |
| | Автоматический перевод строки устанавливается пользователем. |
+----------+--------------------------------------------------------------+
В режимах 6 (кроме МК-152) и 7 параллельный порт не используется драйвером
и может выполнять другие задачи.
После выполнения подпрограммы начальной инициализации (по адресу загрузки
драйвера) в регистре X возвращается адрес вспомогательной подпрограммы
печати одного символа. Этот адрес можно сохранить в одном из регистров, и
вызывать подпрограмму при помощи косвенной адресации. Данная подпрограмма
вызывает прерывание 8 с последующей обратной прокруткой стека. Код символа
передаётся в регистре X, и регистры X, Y и Z сохраняются.
Перед началом работы с MK-printer следует установить каталог для сохранения
результатов печати (меню "Файл"-->"Сохранять распечатки в..."). Результаты
печати могут сохранятся в виде JPEG-файлов, либо в виде PDF-документов. Для
сохранения в виде PDF-документов нужно установить галочку "PDF-документ" в
меню "Файл". Начало нового документа следует отметить выбором пункта "Начать
документ", а закончить печать документа - выбором пункта "Завершить
документ". При этом в выбранном каталоге будет создан PDF-файл с именем,
соответствующим текущей дате и времени. JPEG-файлы тоже можно группировать
по документам аналогичным способом. При этом в выбранном каталоге будет
создан подкаталог с именем, соответствующим текущей дате и времени, а сами
файлы будут размещаться в нём с именами соответствующими номеру страницы.
После выбора нужного интерфейса в меню "Интерфейс" следует нажать кнопку
"On Line" на передней панели принтера, после чего принтер готов к печати.
Повторное нажатие на кнопку "On Line" снимает состояние готовности, после
чего при необходимости можно поменять интерфейс.
Если программа пользователя не устанавливает состояние автоматического
перевода строки, или галочка "Select In / Autofeed" в меню "Интерфейс" не
установлена, то пользователь может устанавливать режим автоматического
перевода строки кнопкой "Autofeed" на передней панели принтера. Стандартные
кнопки "Line Feed" и "Form Feed" выполняют перевод строки и прогон страницы
соответственно.
В принтер можно вставлять виртуальную бумагу разного формата и в разной
ориентации. Это делается через меню "Бумага". Там же можно выбрать левое
поле, которое создаётся путём смещения бумаги относительно базового
положения каретки (действует на следующую загрузку бумаги). Можно отключить
сохранение страниц для экспериментов без создания мусора. И наконец, есть
функция ручной протяжки бумаги. Если она включена, то можно протягивать
бумагу, перемещая мышь по вертикали в основном пространстве окна с нажатой
левой кнопкой (перетаскивание мышью).
С помощью меню "Масштаб" можно установить масштаб отображения бумаги и
печатающей головки на экране. Масштаб отличный от 100% на некоторых
платформах (в частности Linux) может вызывать замедление работы, если
графическая подсистема не использует аппаратное ускорение.