Партнёр/Радиолюбитель 1994/Большие возможности ПК «Партнёр»: различия между версиями
Panther (обсуждение | вклад) |
Xolod (обсуждение | вклад) Нет описания правки |
||
Строка 430: | Строка 430: | ||
== Литература == | == Литература == | ||
# [[:Категория:Радио-86РК/Публикации|Горшков Д., Зеленко Г., Озеров Ю., Попов С. Персональный радиолюбительский компьютер «Радио-86РК». — Радио, 1986 г., NN5…10.]] | # [[:Категория:Радио-86РК/Публикации|Горшков Д., Зеленко Г., Озеров Ю., Попов С. Персональный радиолюбительский компьютер «Радио-86РК». — Радио, 1986 г., NN5…10.]] | ||
# [ | # [https://emuverse.ru/downloads/computers/Partner/docs/Partner_Schematics_Album.djvu Машины электронные вычислительные персональные. Модуль вычислительный центральный «Партнер 01.01». Альбом схем.] | ||
# Самофалов К. Г., Викторов О. В. Микропроцессоры. — Киев. Техника, 1989. — 312 с. | # Самофалов К. Г., Викторов О. В. Микропроцессоры. — Киев. Техника, 1989. — 312 с. | ||
# Программное обеспечение МВЦ «Партнер 01.01». Руководство оператора. 1П.00045-01 34 01.1988, с.56 | # Программное обеспечение МВЦ «Партнер 01.01». Руководство оператора. 1П.00045-01 34 01.1988, с.56 |
Текущая версия от 22:33, 18 сентября 2023
Круг пользователей компьютеров расширяется, практически, с каждым днем. Их все чаще покупают люди, ранее не соприкасавшиеся с информатикой.
Прочитав красочную рекламу ПК «Партнер» в журнале «Радио» (N 7/1988 г.), некоторые любители компьютерной техники приобрели этот компьютер, надеясь в будущем приобрести еще и дополнительные модули расширения. Однако мало кому это удалось.
С другой стороны, отсутствие хорошего описания архитектуры ПК вынуждает многих пользователей ограничить возможности своего компьютера возможностями «Радио-86РК» с ОЗУ емкостью 32 К.
Целью данной статьи является дополнение эксплуатационной документации, поставляемой с ПК «Партнер», которое даст возможность пользователю создавать более сложное мощное программное обеспечение.
Описание разбито на разделы, в каждом из которых описан один узел ПК. Так как прародителем «Партнера» является «Радио-86РК», рекомендуем всем пользователям ПК «Партнер» прочесть его подробное описание в [1].
МОНИТОР
Компьютер является ничем иным как беспрекословным исполнителем программ, в первую очередь, программ операционной системы (ОС). ОС обеспечивает управление ресурсами компьютера и процессами. В ПК «Партнер» функции ОС выполняет управляющая программа «Монитор».
«Монитор» занимает в адресном пространстве ПК 4 Кбайта и, после нажатия на клавишу «Сброс» располагается в адресах 0F000H — 0FFFFH. Более подробная информация приведена в табл.1.
Технологический тест запускается по директиве А1234. После этого производится проверка ОЗУ, ПЗУ и узла управления прерываниями. Неисправность идентифицируется по светодиоду РУС/ЛАТ и звуковому сигналу: Табл.1
Адрес Назначение 0F003H—0F03EH Таблица переходов на подпрограммы обработки прерываний 0F03FH—0F0FFH Свободно 0F100Н—0F24FH Технологический тест компьютера 0F250H—0F281Н Подпрограмма обработки директивы Е 0F282H—0F749H Подпрограммы обработки диретив R и W 0F74AH—0F7FFH Свободно 0F800H—0FFE9H Основная часть монитора OFFEAH—0FFFEH Свободно 0FFFFH DD — байт идентификации ПЗУ
- РУС/ЛАТ не горит, сигнала нет — неисправность узла управления прерываниями;
- РУС/ЛАТ не горит, сигнал есть — неисправность ПЗУ;
- РУС/ЛАТ светится, сигнала нет — неисправность ОЗУ.
В мониторе имеются три неописанные директивы: Е, К и Z.
Директива Е имеет форму Е N, где N-1,2,3 или 4 и определяет номер разъема X1, Х2, Х3 или Х4, к которому подсоединено некоторое внешнее устройство (ВУ). Какое — гадать не будем. Можно только сказать, что после идентификации этого ВУ по первым двум символам «ПР» (код 0x70 и 0x72) управление передается по адресу, прочитанному из 0Е004Н, 0Е005Н.
Директива К предназначена для создания рисунков и надписей на всем поле экрана. Параметров директива не имеет. Выход — по нажатию клавиши F4. Директива может быть полезна для печатания писем, объявлений, если осуществляется вывод символа параллельно на экран и на печатающее устройство.
Директива Z предназначена для поиска в области памяти двухбайтного значения (слова). Формат директивы Z подобен формату директивы S за исключением третьего параметра, длина которого равна двум байтам.
В таблице переходов монитора (адреса с 0xF800 пo 0xF85F) существуют пять неописанных точек входа:
- 0F851Н — выключает мотор магнитофона (МГ) и запускает индикацию на экране;
- 0F854H — временная задержка порядка 2,8 с, выключает мотор на МГ и запускает индикацию на экране;
- 0F857H — обнуление области хранения контрольной суммы (0764ВН,0764СН);
- 0F85AH — подсчет контрольной суммы по алгоритму директив R и W. Вход: HL — адрес начала, DE — адрес конца. Выход: HL — контрольная сумма;
- 0F85DH — преобразует байт в двухбайтное число и прибавляет к контрольной сумме. Вход: А — код. Выход — увеличенная сумма в 0764ВН, 0764СН. Например, в результате преобразования числа 055Н, содержащегося в регистре А, получится число 001FEH, которое будет прибавлено к контрольной сумме.
Назначение полей рабочей области монитора представлено в табл.2.
Табл.2
7600Н—7601Н | Адрес курсора в экранной области (например, 077BDH — первый символ первой строки). |
7602Н—7603Н | Координаты курсора в экранной области (счетчик строк, счетчик столбцов). |
7604Н | Флаг состояния клавиши РУС/ЛАТ. |
7605Н | 02СН — стандартное значение константы записи. |
7606Н | 042Н — стандартное значение константы чтения. |
7607Н | Рабочая ячейка подпрограммы ввода байта с МГ. |
7608Н—7609Н | Не используются. |
760АН—760ВН | Рабочие ячейки при работе с клавиатурой. По адресу 0760АН содержится последний введенный код. |
760СН—760DH | Рабочие ячейки. Используются при прямой адресации курсора. |
760ЕН—760FH | Рабочие ячейки при работе с клавиатурой. |
7610Н—7611Н | 075FFH — адрес ОЗУ, доступного пользователю. |
7612Н—761ЗН | Значение регистра PC. Сохраняется при достижении точки останова (выполнение G с адресом останова). |
7614Н—7615Н | Значение регистра HL. Сохраняется при достижении точки останова (выполнение G с адресом останова. |
7616Н—7617Н | Значение регистра ВС. Сохраняется при достижении точки останова (выполнение G с адресом останова). |
7618Н—7619Н | Значение регистра DE. Сохраняется при достижении точки останова (выполнение G с адресом останова). |
761АН—761ВН | Значение регистра SP. Сохраняется при достижении точки останова (выполнение G с адресом останова). |
761СН—761DH | Значение регистра AF. Сохраняется при достижении точки останова (выполнение G с адресом останова). |
761ЕН | Сохраняется байт программы, на место которого помещается код команды RST7 (G с адресом останова). |
761FH | 0C3H (JMP) — в конце выполнения директивы G по этому адресу передается управление. |
7620Н—7621Н | Первый параметр директивы (число). |
7622Н—7623Н | Второй параметр директивы (число). |
7624Н—7625Н | Третий параметр директивы (число). |
7626Н | Рабочая ячейка. |
7627Н—7636Н | Буква директивы и ее параметры в символьном виде или имя файла (до 8 байт) — используют R и W. |
7637Н—7639Н | (С90000) Использует подпрограмма ввода символа с клавиатуры. |
763АН—763СН | (С90000) Использует подпрограмма вывода символа на экран. |
763DH—763FH | (С90000) Использует подпрограмма ввода блока с магнитофона. |
7640Н—7642Н | (С90000) Использует подпрограмма вывода блока на магнитофон. |
7643Н—7645Н | Рабочие ячейки. |
7646Н | Не используется. |
7647Н | Рабочая ячейка. |
7648Н | Не используется. |
7649Н | 00 — не подсчитывать контрольную сумму; FF — подсчитывать контрольную сумму. |
764АН | Рабочая ячейка. |
764ВН—764СН | Значение контрольной суммы (используется директивами R и W). |
764DH—7652Н | Имя файла, прочитанного по директиве R. |
7653Н—76CFH | Стек. |
7FD0H—76F3H | Экранная область (видеоЗУ). |
7FF4H—7FFFH | Свободно. |
Практический интерес представляют поля с 07637Н по 07642Н, использование которых позволяет расширить четыре подпрограммы монитора дополнительными функциями, установив соответствующий вектор перехода. При необходимости эти стандартные подпрограммы монитора можно даже полностью заменить подпрограммами пользователя.
В заключение приводим некоторые полезные подпрограммы монитора, которые можно использовать при разработке программного обеспечения:
- 0F22CH — переключение на ОЗУ 54К;
- 0xF3B3 — заполнение поля пробелами. HL — адрес начала, С — количество байт. Обращений PUSH H, PUSH В, CALL 0xF3B3;
- 0F3C7H — вывод на экран ВК и ПС;
- 0F554H — задержка порядка 0,78 с, выкл. мотора МГ, запуск индикации на экране;
- 0F96DH — ввод строки символов с возможностью редактирования по адресу 07627Н с одновременным отображением на экране. Длина вводимой строки — не более 16 байт. Нельзя вводить символ '.';
- 0FA3FH — печать HL в НЕХ-виде;
- 0FA4BH — то же. Обращение: PUSH В, CALL 0FA4BH;
- 0FA34H — вывод содержимого регистра А в НЕХ-виде и символа ' ' (пробел);
- 0FE4AH — звуковой сигнал. Изменяется содержимое регистровой пары ВС;
- 0FF85H — проверка на равенство HL и DE. Если равны, устанавливается признак Z.
Следует отметить, что эти подпрограммы монитора нужно использовать с осторожностью, так как их применение приводит к непереносимости программ на другие типы ПК.
УПРАВЛЕНИЕ ПРЕРЫВАНИЯМИ
Микропроцессор (МП) должен оперативно реагировать на различные события, происходящие в ПК в результате действий пользователя или по другим причинам. Необходимую реакцию на события выполняет система прерываний, состоящая из аппаратных и программных средств, которые обеспечивают выявление и обработку прерываний.
Узел управления прерываниями (УУП) состоит из следующих элементов: D2.1, D2.2, D3.1, D3.2, D5.2, D8.1, D10.3, D16.2, D16.3, D19 и двух диодов VD 2 и VD7 (здесь и далее все обозначения даны по электрической принципиальной схеме блока вычислителя в [ 2]).
В исходном состоянии, когда МП находится в состоянии запрета прерываний, а именно в этом состоянии находится МП после нажатия на клавишу «Сброс», на выводе 8 D3.2 присутствует уровень логической единицы. Импульсы обратного хода кадровой развертки VRTC.H, приходящие с частотой 50 Гц с вывода 8 контроллера дисплея D23, никакого действия не производят. На выводе 6 D5.2 будет уровень «О», так как триггер прерывания МП в состоянии запрета прерывания (выход INTE) установлен в «О». Сигнал TM.L (вывод 5 D8.1) установлен в «1» и обеспечивает на выводе 1 D2 уровень «1». Сигнал INTAI.L (вывод 4 D2) установлен в «1», так как сигнал SWOF.H (вывод 5 D3) установлен в «О».
В таком состоянии УУП будет находиться до тех пор, пока в программе пользователя не будет выполнена команда EI (Enable Interrupt), переводящая МП в состояние разрешения прерывания. В результате выполнения команды EI на выводе 16 МП устанавливается «1» (сигнал INTE) и по фронту этого сигнала на выводе 5 D8 устанавливается уровень логического нуля (сигнал TM.L — таймер). Низкий уровень сигнала ТМ.L вызывает появление «1» на выводе 1 D2, что интерпретируется МП как появление запроса на прерывание.
О переходе к обработке прерывания МП сообщает другим модулям компьютера словом состояния с единицей в разряде DO (приходит на вывод 2 триггера D3). С переходом сигнала STSB от низкого уровня к высокому (вывод 3 D3) сигнал SWOF.H (вывод 5 D3) устанавливается в «1». Появление сигнала SWOF. Н подтверждает запрос не прерывание. Сигнал SWOF.L («О» на выводе 6 D3), который является инверсным значением сигнала SWOF.H, вызывает установку сигнала IR.L (вывод 10 D16) в «О». Сигнал IR.L устанавливает на выводе 8 D3 уровень логического нуля и через диод VD2 устанавливает уровень нуля в третьем разряде шины данных. Таким образом, благодаря сигналу IR.L на шине данных формируется код 11110111В, что является кодом команды RST6, и МП начинает выполнение этой инструкции.
С приходом сигнала DBIN (строб приема данных при чтении), формируемого микропроцессором, на вывод 9 D10, на выводе 4 D19 вырабатывается сигнал RESINT.L. Этот сигнал переводит УУП в исходное состояние: сигнал SWOF.H устанавливается в «О», сигнал TM.L устанавливается в « 1». В этом состоянии УУП находится до прихода на вывод 11 D3 очередного импульса VRTC.H, после чего весь цикл повторяется.
Табл.3
1100: 3Е С3 32 30 00 2А В4 11 22 31 00 21 00 00 22 AF 1110: 11 FB С9 F3 F5 С5 D5 Е5 21 ЕЕ 77 22 В1 11 3А В3 1120: 11 3С 32 В3 11 FE 32 С2 6F 11 AF 32 В3 11 2А AF 1130: 11 23 22 AF 11 1E 11 CD 75 11 4F IE 11 CD 75 11 1140. 47 7D 59 21 B6 11 77 CD 98 11 70 CD 8D 11 73 CD 1150: 8D 11 7B FE 59 C2 6F 11 2A AF 11 11 28 00 19 22 1160: AF 11 78 FE 59 C2 6F 11 01 АО OF 09 22 AF 11 E1 1170: D1 C1 F1 FB C9 AF 1D C8 29 8F 27 D2 76 11 23 C3 1180: 76 11 E5 2A B1 11 71 23 22 B1 11 E1 C9 E5 2A B1
Результатом выполнения команды RST6 является передача управления по адресу 0x0030, куда программа пользователя до выдачи инструкции EI должна поместить команду перехода на подпрограмму обработки прерывания.
Использование прерывания 6 показано на примере программных часов, представленных в табл.3. Программа оттранслирована с адреса 0x1100. После запуска монитора по директиве G1100 в правом верхнем углу экрана начинает отсчитываться с нуля время в формате час:мин:сек. Заинтересованному читателю предоставляется возможность дизассемблировать программу и оттранслировать с любого другого адреса. Можно также добавить процедуру установки текущего времени.
Кроме прерывания 6, УУП может обрабатывать также и прерывание 5. Это прерывание использует внешнее устройство (ВУ), подстыкованное к одному из системных разъемов X1,Х2,ХЗ или Х4. Запрос на прерывание от ВУ приходит с контакта ВЗ системного разъема (сигнал INTREQ.L). Сигнал INTREQ.L также формирует на выводе 1 D2 запрос к МП на прерывание. С установкой сигнала SWOF.H в единичное состояние и при условии отсутствия запроса на прерывание от таймера (сигнал TM.L установлен в «1»), на выходе элемента D2.2 формируется сигнал низкого уровня INTAI.L. Таким образом, элемент D2.2 обеспечивает приоритетное обслуживание запросов на прерывание от таймера.
С установкой сигнала INTAI.L в нулевое состояние через диод VD7 четвертый разряд шины данных будет также установлен в «О» и на шине данных установится код 11101111В, что является кодом команды RST5. Сигнал INTAI.L поступает через один из системных разъемов на ВУ, которое при нулевом сигнале INTAI.L должно установить сигнал INTREQ.L в единичное состояние.
Для обработки прерывания 5 от ВУ предварительно необходимо установить по адресу 0x0028 команду перехода на подпрограмму обработки прерывания.
Более подробную информацию об обработке прерывания можно извлечь, например, из [3].
ДЕШИФРАТОР БАНКОВ
Наибольший интерес у пользователей ПК «Партнер», бесспорно, вызывает дешифратор банков (ДБ). ДБ собран на следующих элементах: D16.1, D17.5, D18 и ПЗУ D14 [2]. Запись информации со старшей тетрады шины данных (D4…D8) в триггер D18 производится прн выполнении процессором команды записи по адресу 0xDA00. В результате выполнения этой команды устанавливаются сигналы REC0, REC1, REC2 и REC3 (выводы 2, 7, 10, 15 D18 соответственно), которые поступают на старшие адресные разряды А5…А8 ПЗУ D14 (выводы 3, 2, 1 и 23) и обеспечивают перераспределение адресного пространства. На младшие адресные разряды А0…А14 ПЗУ D14 (выводы 8, 7, 6, 5, 4) поступают пять старших двоичных разрядов адресной шины, которые делят адресное пространство на 32 равные части по 2К.
Четыре сигнала REC0, REC1, REC2 и REC3 позволяют перераспределять адресное пространство ПК шестнадцатью вариантами, однако в ПК «Партнер 01.01» версии 02 используются, вероятно, только одиннадцать первых вариантов. Оставшиеся, по мнению автора, не используются.
В табл.4 показано распределение адресного пространства в каждом из одиннадцати вариантов. Вверху таблицы приведено значение управляющего байта, запись которого по адресу 0xDA00 и вызывает переключение на соответствующий вариант.
ПЗУ D14 формирует следующие сигналы выборки ВУ:
- MASK-ROML (вывод 9) — выборка дополнительного ПЗУ;
- EXTL (вывод 10) — не используется;
- MASK-RAML (вывод 11) — выборка дополнительного ОЗУ;
- ROM2L (вывод 13) — выборка ПЗУ D32, в котором «зашиты» монитор, редактор и ассемблер;
- ROM1L (вывод 14) — выборка ПЗУ D30 с интерпретатором BASIC;
- RAM1L (вывод 15) —выборка ОЗУ D35…D42. При обращении к ОЗУ старший разряд шины адреса А15 не используется;
- RAM2L (вывод 16) — при обращении к ОЗУ заменяет старший разряд шины адреса А15;
- SLOTL (вывод 17) — устанавливается в состояние логического нуля при обращении к адресному пространству 0xD800…0xDFFF. Поступает на дешифратор D21 (вывод 5) и необходим для формирования сигналов выборки еще восьми ВУ.
Дешифратор D21 формирует следующие сигналы:
- CSCRTL — выбор контроллера видеотерминала D23 (адрес 0xD800);
- CSPPIL — выбор программируемого параллельного адаптера (ППА) D28 (адрес 0xD900);
- CS1L — выбор ДБ (адрес 0xDA00);
- CSDMAL — выбор контроллера прямого доступа к памяти (ПДП) D20 (адрес 0xDB00);
- PORT1L, PORT2L, SELSLOTL, SELINTL — выбор ВУ, подключаемых к системным разъемам X1, Х2, ХЗ, Х4 (адреса — соответственно 0xDC00, 0xDD00, 0xDE00, 0xDF00).
Табл. 4
00 | 10 | 20 | 30 | 40 | 50 | 60 | 70 | 80 | 90 | А0 |
F800 монитор | монитор | монитор | свободно | свободно | свободно | монитор | монитор | монитор | ОЗУ | монитор |
F000 ROM2L | ROM2L | ROM2L | ROM2L | ROM2L | ROM2L | бк | ROM2L | |||
Е800 асм. ROM2L | 8GM. ROM2L | асм. ROM2L | MASK-ROML | MASK-ROML | MASK-ROML | асм. ROM2L | aсм. ROM2L | асм. ROM2L | RAM1L RAM2L | асм. ROM2L |
Е000 MASK-ROML | ред. MASK-ROML | MASK-ROML | MASK-ROML | MASK-ROML | MASK-ROML | MASK-ROML | ||||
D800 BY | BY | BY | BY | BY | BY | BY | BY | BY | BY | BY |
D000 | ОЗУ | ОЗУ | ОЗУ | свободно | свободно | ОЗУ | ||||
С800 ОЗУ | ОЗУ | ОЗУ | ОЗУ | бк | 6к | 6к | ОЗУ | MASK-RAM L | MASK-RAM L | RAM1L RAM2L |
С0О0 | RAM1L RAM2L | RAM1L RAM2L | RAM1L RAM2L | peд. ROM2L | ОЗУ | peд. ROM2L | ||||
В800 22к | 22к | 22к | 22к | MASK RAML | 22к | Юк | ||||
ВООО | свободно | BASIC | BASIC | банк 2 | свобожно | |||||
А800 банк 2 | банк 2 | банк 2 | банк 2 | ОЗУ | банк 1 | RAM1L RAM2L | ||||
А000 | 14к | 16к | ROM1L | ROM1L | 16к | |||||
9800 RAM1L RAM2L | RAM1L RAM2L | RAM1L RAM2L | RAM1L RAM2L | банк 2 | ОЗУ | RAM1L | свободно | свободно | ||
9000 | MASK-RAML | 8к | 8к | 8к | MASK RAML | |||||
8800 | RAM1L RAM2L | RAML1 RAML2 | MASK-ROML | MASK-ROML | ||||||
8000 | ||||||||||
7800 эдоан | экран | экран | экран | экран | экран | экоан | ||||
7000 | ОЗУ | |||||||||
6800 ОЗУ | ОЗУ | ОЗУ | ОЗУ | ОЗУ | ОЗУ | ОЗУ | ОЗУ | ОЗУ | ОЗУ | бк |
6000 | RAM1L | |||||||||
5800 28к | 30к | 30к | 32к | 32к | 32к | 30к | 30к | 30к | 32к | свободно |
5000 | 8к | |||||||||
4800 банк 1 | банк 1 | банк 1 | банк 1 | 6анк 1 | банк 1 | банк 1 | банк 2 | банк 1 | банк 1 | MASK-ROML |
1000 | ||||||||||
3800 | ||||||||||
3000 RAM1L | RAM1L | RAM1L | RAM1L | RAM1L | RAM1L. | RAM1L | RAM1L RAM2L | RAM1L | ОЗУ | |
2800 | ||||||||||
2000 | 16к | |||||||||
1800 | банк 1 | |||||||||
1000 | ||||||||||
800 | RAM1L | |||||||||
000 ред. ROM2L |
Рассмотрим табл.4 несколько подробнее.
После нажатия на клавишу «Сброс» ПК переходит в состояние 00, так как с приходом сигнала RESL на вывод 1 D18 REC0, REC1, REC2 и REC3 устанавливаются в состояние логического нуля. Счетчик команд PC обнуляется и микропроцессор начинает выборку из памяти команды, расположенной по нулевому адресу. Как видно из табл.4, по нулевому адресу расположена команда из ПЗУ D32. Этой командой является инструкция JMP 0xF800, по которой осуществляется переход на монитор. С третьего байта расположена программа редактор. Рабочие ячейки монитора и экранная область занимают адреса с 0x7600 по Ox7FF3.
Распределение адресного пространства в состоянии 0x10 и 0x20 незначительно отличается от состояния 00.
В состоянии 0x30, 0x40 в старших 8К адресного пространства можно установить дополнительное ПЗУ, выбираемое по сигналу MASK-ROML. В состоянии 0x40 можно использовать также дополнительную память с адреса 0хВ800. Неизвестно, совпадение это или нет, но видеобуфер многих адаптеров IBM-совместимых компьютеров также находится в области памяти ОхВ800 (значение сегментного регистра).
В состоянии 0x50 в области памяти 0x8000…OxBFFF можно разместить дополнительное ОЗУ, используемое, например, модулем графического контроллера. Этого объема памяти хватит для отображения 640x200 точек в монохромном режиме.
В состоянии 0x70 страницы ОЗУ меняются местами.
Монитор инициализирует состояние 0x80. В этом варианте распределения адресного пространства доступны все программные средства: редактор, ассемблер и BASIC. Можно установить еще 12К дополнительной памяти, выбираемой сигналами MASK-RAML и MASK-ROML.
Используя состояние 0x90 совместно с состоянием 0x70, можно относительно просто реализовать две экранные области монитора без перепрограммирования контроллера видеотерминала D23. Вторая экранная область занимает адреса 0xF6D0…0xFFF3 и в состоянии 0x90 незаметно от пользователя в этой экранной области можно создавать изображение, которое почти мгновенно может предстать перед пользователем после перехода ПК в состояние 0x70. Пример подобной программы представлен в табл.5.
Табл. 5
1100: | CD | 2С | F2 | 21 | 65 | F8 | 11 | C8 | F8 | 01 | 20 | 11 | CD | OF | F8 | 21 |
1110: | 00 | 11 | 11 | 00 | 21 | 01 | 00 | 91 | CD | OF | F8 | 3E | 70 | 32 | 00 | DA |
1120: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
1130: | 00 | 00 | 00 | 00 | DO | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
1140: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
1150: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
1160: | 00 | 00 | 00 | 00 | DO | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
1170: | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
1180: | 00 | 00 | 00 | 00 | CD | 3F | FF | CD | A1 | FF | 0D | 20 | 7C | 6B | 72 | 61 |
1190: | 6Е | 20 | 20 | 6Е | 6F | 6D | 65 | 72 | 20 | 20 | 32 | 20 | 20 | 20 | 20 | 20 |
11А0: | 20 | 00 | CD | 33 | F5 | CD | 33 | F5 | 3E | 20 | 32 | 00 | DA | CD | 3F | FF |
11ВО: | CD | 33 | F5 | CD | 33 | F5 | 3E | 70 | 32 | 00 | DA | CD | 3F | FF | CD | 33 |
11С0: | F5 | C3 | А2 | 11 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 | 00 |
Знакогенератор
В [4] указано, что ПК «Партнер 01.01» обладает возможностью работы с восемью наборами символов. Более подробная информация о всевозможных способах кодировки содержится, например, в [5].
В табл. 6…13 приведены все восемь наборов символов.
В табл.6 представлен номер набора 0, выбираемый управляющим кодом контроллера видеотерминала 10ПН00М0 [4]. Этот набор соответствует основной кодировке ГОСТа (коды 0x00…0x7F).
Табл.7 содержит символы набора 1 (управляющий код — 10ПН01М0). Номер набора 1 соответствует основной кодировке ГОСТа (коды 0x80…0xFF).
В табл.8 приведен набор 2 (управляющий код — 10ПН10М0). Здесь содержится изображение шахматных фигур и специальных графических символов. Использование кодов 0x70…0x7С позволит воспроизвести плавное перемещение тонкой линии по диагонали экрана.
Номер набора 3 (табл.9, управляющий код — 10ПН11М0) содержит прописные русские и латинские буквы. Именно этот набор символов выбирается при инициализации ПК (после нажатия на клавишу «Сброс»).
Четвертый набор символов (табл.10, управляющий код — 10ПН00М1) содержит специальные графические символы, предназначенные для построения таблиц, плавного перемещения по вертикали и горизонтали прямых линий и шарика.
Набор символов 5 (табл.11, управляющий код — 10ПН01М0) позволяет изобразить скрипичный ключ (коды 0x10…0x17), ноты, плавное перемещение жирной линии по диагонали, плавное движение колеса машины (коды 0x67…0x77) и др.
Набор символов 6 (табл. 12, управляющий код — 10ПН10М1) и набор символов 7 (табл.13, управляющий код — 10ПН11М1) представляют собой последовательность закодированных чисел. Если байт 76543210 представить в виде
0 1 2 3 4 5 7 6
набор 6 соответствует числовым значениям 0…127, а набор 7 — числовым значениям 128…255.
Таким образом, числу 01000111В соответствует символ
X X X . . . . X
из набора 6. Наборы 6 и 7 позволяют в два раза увеличить разрешающую способность по горизонтали и в четыре раза — по вертикали. При наличии соответствующего ПО эти два набора символов обеспечат рисование окружностей, эллипсов и других графических изображений.
На этом мы закончим краткое знакомство с возможностями ПК «Партнер 01.01» версии 02. В статье возможны неточности, опечатки, в таблицах знакогенератора присутствует 16 явных ошибок, допущенных при программировании ПЗУ на заводе. Поэтому перед пользователем открываются широкие перспективы в исследовании своего ПК. Будем надеяться, что данная статья окажет существенную помощь при разработке широкого спектра программ.
ПЕЧАТЬ
При работе на ПЭВМ создание текстов является одной из наиболее часто встречающихся задач. Во-первых, чтобы создать какую-либо программу, ее вначале необходимо записать в виде текста в специальный файл. Затем — многократно редактировать: исправлять синтаксические ошибки, на которые укажет транслятор соответствующего языка программирования, вставлять дополнительные операторы. Во-вторых, с помощью ПЭВМ можно решить огромное число задач, связанных с подготовкой разнообразных текстовых документов.
Практика использования ПЭВМ показывает, что более семидесяти процентов всех применении ПК связано именно с подготовкой текстов [5]. Поэтому совсем простой и дешевый компьютер, оснащенный внешней памятью на магнитных дисках и печатающим устройством, резко увеличивает свои функциональные возможности. В данной статье описывается интерфейс сопряжения ПЭВМ «Партнер» с печатающим устройством типа «CONSUL» и с принтером «МС-6313».
Описание печатающей части «CONSUL» довольно подробно дано в [6]. Отличительной особенностью данного интерфейса является максимальная программная реализация выполняемых функций.
Принципиальная схема сопряжения печатающего устройства «CONSUL-254» и компьютера «Партнер 01.01 (В02)» приведена на рис. 1. В основу построения схемы положен следующий принцип: если записать байт в какой-либо порт программируемого параллельного адаптера (ППА) КР580ВВ55 (А, В или С), информация на выводах ППА, соответствующих данному порту, будет сохраняться до тех пор, пока не придет сигнал сброса или в этот порт не будет записана другая информация [3].
На схеме отсутствуют такие традиционные элементы, как дешифраторы и микросхема ПЗУ. Вывод информации с шины данных ПК на внешнее устройство осуществляется через микросхему D1 КР580ВВ55. Разъем XI подсоединяется к системному каналу ПЭВМ «Партнер» через один из системных разъемов X1, Х2, ХЗ, Х4 (см.схему электрическую принципиальную блока вычислителя). Инверторы D2.2…D4.5 предназначены для повышения нагрузочной способности портов А и В ППА и могут быть заменены на ЛН2, ЛАЗ и т. п. Так как электромагниты печати потребляют значительный ток (до 1,5 А при 12В), ключи на транзисторах VT9…VT1 б следует питать от отдельного источника питания +12 В (можно нестабилизированного). Напряжение питания +12 В подается на все блоки Al…A8.
Вместо печатающего устройства «CONSUL-254» можно использовать и аналогичные модели — −260, −260.1 или другие, но в этом случае потребуется изменить разводку разъема Х2.
Текст подпрограммы печати приведен в табл.1.
В данном случае подпрограмма транслируется с адреса 1100Н, что позволяет разместить подпрограмму печати в области трансляции ассемблера, а весь текстовый буфер использовать для хранения и редактирования печатаемого текста.
Для инициализации процесса печати необходимо запустить подпрограмму с адреса 1100Н (метка INIT). Разработчики управляющей программы Монитор ПЭВМ «Партнер» в начале подпрограммы вывода символа на экран монитора предусмотрительно включили команду обращения в ОЗУ в рабочую область монитора. При нажатии на клавишу «Сброс» на клавиатуре ПЭВМ в эту рабочую область записывается код команды RET (0хС9 по адресу 0х763А). Подпрограмма инициализации печати (метка INIT) перед своим завершением устанавливает вектор перехода на подпрограмму печати символа (метка START) по этому же адресу (0х763А). Таким образом, после инициализации печати все символы, выводимые на экран, будут параллельно выводиться на печать.
В табл. 1 даны необходимые комментарии. Добавим только, что использование двух адресов (ATABL и ATABL1) из таблицы кодировки вызвано тем, что при вычислении трехбайтного смещения в таблице кодировки для кода больше 0x75 в регистре А микропроцессора смещение оказывается больше 255, регистр А обнуляется и логика работы подпрограммы нарушается.
Каждому коду символа в таблице кодировки соответствует три байта. Первый байт определяет, в каком регистре, нижнем (0) или верхнем (0xFF), необходимо печатать. Второй байт выдается в порт В ППА, подключая этим корпус к одному из восьми столбцов матрицы электромагнитов. Третий байт выдается в порт А ППА, подавая тем самым через ключи VT9…VT16 напряжение+12 В на одну из
восьми строк матрицы электромагнитов. Таким образом однозначно выбирается один из 64 возможных электромагнитов печати. После печатания символа через 40… 100 мс [2] в порты А и В ППА записывается байт 0xFF, убирая этим напряжение питания с ранее выбранного электромагнита печати.
Подпрограмма PRINT предназначена для распечатки текста из текстового буфера редактора-ассемблера без вывода текста на экран монитора.
Один из способов подключения принтера «МС-6313» к ПЭВМ «Партнер 01.01 (В02)» показан на рис.2, программная поддержка данного способа подключения приведена в табл.2.
Печать в обеих подпрограммах прекращается при нажатии на клавишу «Сброс» на клавиатуре ПЭВМ. Этот недостаток можно устранить, добавив в обеих подпрограммах опрос клавиатуры, и при нажатии определенной клавиши (например, F4) записать по адресу Ох7бЗА код 0хС9.
Литература
- Горшков Д., Зеленко Г., Озеров Ю., Попов С. Персональный радиолюбительский компьютер «Радио-86РК». — Радио, 1986 г., NN5…10.
- Машины электронные вычислительные персональные. Модуль вычислительный центральный «Партнер 01.01». Альбом схем.
- Самофалов К. Г., Викторов О. В. Микропроцессоры. — Киев. Техника, 1989. — 312 с.
- Программное обеспечение МВЦ «Партнер 01.01». Руководство оператора. 1П.00045-01 34 01.1988, с.56
- Фигурнов В. Э. Русские буквы на вашем компьютере. — Компьютер, 1990 г., вып. 1.
- В. М. Брябрин. Программное обеспечение персональных ЭВМ. — М.:Наука, 1990. — 272 с.
- В.Сугоняко. Универсальный интерфейс для «CONSUL». — Радио, 1989, N 12, с.37.
А.ЛАШКОВ,
416500, Астраханская обл., г. Капустин Яр-1, ул. Янгеля, 7 — 52.