Главная Дока Микро-80 Радио-86РК ЮТ-88 Орион-128 Ссылки Новости Письмо

Описание компьютера Радио-86РК
Журнал РАДИО

Радио-86РК ... .. терминал передачи данных.

Довольно часто возникает необходимость подключения к компьютеру периферийных устройств, имеющих последовательный интерфейс: например, чтобы связаться с мощным профессиональным компьютером и обменяться с ним текстом программы, а затем вывести его на печатающее устройство. К сожалению, многие простые персональные компьютеры, такие, например, как "Радио-86РК", не имеют необходимого для этой цели встроенного порта последовательного ввода - вывода.

Функции порта последовательного ввода - вывода с успехом можно реализовать программно, возложив функции отсчета временных интервалов, анализа принимаемых сигналов, формирования передаваемых последовательно посылок и сигналов управления на процессор.

Предлагаемая вниманию читателей программа ТЕРМИНАЛ позволяет подключать персональный компьютер "Радио-86РК" в качестве терминала к любому периферийному устройству (ПУ) с последовательным интерфейсом, работающим в полудуплексном режиме со скоростями до 1200Бод. Таким устройством может быть, например, радиолюбительский контроллер пакетной связи TNC, модем или другой компьютер. Принцип работы программы, ее отдельные подпрограммы, обслуживающие последовательный обмен, можно использовать для самостоятельной разработки подпрограмм (драйверов), подключения к компьютеру дополнительных устройств.

Программа работает совместно с усовершенствованным текстовым редактором "МИКРОН"*.

Рассмотрим принцип программной реализации последовательного обмена данными в режиме полудуплекса на примере упрощенной версии программы, исходный текст которой приведен в табл.1. Данная программа выдает в последовательный канал, образованный отдельными разрядами порта D14 код нажатой клавиши, принимает передаваемые в компьютер байты и выводит их на экран, т. е. реализует так называемый "прозрачный терминал".

В качестве линий последовательного интерфейса используются четыре разряда параллельного порта D14: TXD - разряд D0 порта А;
RTS - разряд D1 порта А;
RXD - разряд D0 порта В;
CTS - разряд D1 порта В.

Основу программы составляют модули RXBYTE и TXBYTE.

Модуль RXBYTE осуществляет прием последовательно передаваемых байтов и сохраняет их в промежуточном, "нераспакованном", виде в буфере ОЗУ. Выполнение подпрограммы завершается, если приемный буфер заполнен или если по истечении определенного интервала времени не было принято ни одного байта.

Модуль TXBYTE передает байт, предварительно помещенный в регистр микропроцессора С. Если перед выдачей байта был обнаружен сигнал CTS=1, то байт не передается и выполнение программы завершается. При этом возвращается флаг FZ=1. Если ПУ (периферийное устройство) было готово к приему и байт был передан, то возвращается флаг FZ=0.

Для того чтобы не потерять те несколько байтов, которые ПУ может выдать после получения запроса на передачу RTS=1; канал приема в модуле RCHNL опрашивается дважды: первый раз - в режиме приема, второй раз - после выдачи запроса на передачу.

В модуле OUTBUF разгружается буфер принятых байтов. Принятые байты "распаковываются" и выводятся на экран компьютера. При этом ПУ находится в закрытом состоянии, так как на него подается сигнал RTS=1.

В головной части программы циклически опрашивается канал приема и клавиатура. Если какая-либо клавиша была нажата, то ее код передается на ПУ. В момент передачи ПУ находится в состоянии ожидания и может принять переданный байт. Если требуется только передавать данные, например, на печатающее устройство, то для этого достаточно использовать модули TXBYTE и TIME. Часть программы, выдающая на принтер байт, выглядит следующим образом:

; ===== ВЫДАЧА БАЙТА, НАХОДЯЩЕГОСЯ В РЕГИСТРЕ (С)
OUT: CALL TXBYTE; ВЫДАЧА БАЙТА НА ПРИНТЕР
JNZ OUT; НЕ ПЕРЕДАН СНОВА ВЫДАТЬ


Машинные коды программы ТЕРМИНАЛ приведены в табл.2. Программа размещается в ОЗУ с адреса 800Н по CDFH, занимает немногим более 1 Кбайт и подключается к текстовому редактору "МИКРОН". Контрольные суммы блоков программы приведены в табл.3. В редакторе "МИКРОН" необходимо произвести изменения в соответствии с табл.4.

Таблица 3.

ОБЛАСТЬ ОЗУ

КОНТР.СУММА

0800-08 FF

41EB

0900-09PF

B94E

0A00-0AFF

D027

0B00-0BFF

C399

0C00-0CDF

8A56

0800-0CDF

194F

Таблица 4.

АДРЕС

0002

0021

0739

32K

74

74

21

16K

34

34

21

Для работы со стандартными последовательными интерфейсами к порту D14 необходимо подключить формирователи и приемники уровней протокола интерфейса V.24, схема которых приведена на рисунке. Компараторы DA1, DA2 формируют уровни с размахом около 4В, чего вполне достаточно для линий связи длиной до нескольких метров.

Программу запускают директивой МОНИТОРа G800. После запуска она инициализирует порт D14 и вызывает редактор "МИКРОН". Находясь в редакторе, можно готовить тексты, которые затем будут передаваться из компьютера на периферийное устройство. Особенно следует отметить команду редактора AP2+S - занесение в промежуточный буфер помеченного фрагмента текста. Помеченный текст из ТЕРМИНАЛА можно передать на подключенное к компьютеру периферийное устройство.

Переход из РЕДАКТОРа в ТЕРМИНАЛ происходит после нажатия клавиши СТР. На экране появляется сообщение:

ТЕРМИНАЛ RA3AU КОНЕЦ ТЕКСТА: ХХХХ

Вместо ХХХХ будет выведено шестнадцатеричное число, соответствующее адресу конца текста. Область текста начинается с адреса 2100Н и продолжается до адреса 73FFH, а область стека простирается до адреса 74FFH. С адреса 7500Н по 75FFH размещается буфер принимаемых байтов.

В ТЕРМИНАЛе, как и в РЕДАКТОРе, команды состоят из комбинации АР2 и какой-либо буквы (вводимой, однако, в любом - РУС или ЛАТ - регистре). Всего в ТЕРМИНАЛе шесть команд: S, G, А, С, Е, и ? Если команда задана неправильно, то на экран выводится сообщение об ошибке со списком-подсказкой команд:
ОШИБКА
СПИСОК КОМАНД:
АР2+АР2 ПЕРЕДАЧА АР2
S ПЕРЕДАЧА ТЕКСТА ИЗ БУФЕРА
G ВКЛ/ВЫКЛ ПРИЕМА ТЕКСТА
А ВКЛ/ВЫКЛ ВК/ПС
С ВКЛ/ВЫКЛ ЭХО
Е ПЕРЕХОД В РЕДАКТОР
? ВЫДАЧА СПИСКА КОМАНД

Если на АР2 нажать дважды, то в линию будет один раз выдан код АР2. По команде АР2+? выводится список подсказка команд.

Команда АР2+Е передает управление текстовому РЕДАКТОРу. После перехода в РЕДАКТОР передача из ПУ останавливается и возобновляется только при возврате из РЕДАКТОРа в ТЕРМИНАЛ.

Команда AP2+G включает или выключает режим приема текста в память компьютера (после начального запуска по умолчанию прием выключен). После ввода команды выдается звуковой сигнал и сообщение о текущем состоянии режима: ПРИЕМ ВКЛ - если ранее прием был выключен,
ПРИЕМ ВЫКЛ - если ранее прием был включен.

После включения режима приема весь принимаемый от периферийного устройства текст не только отображается на экране компьютера, но и заносится в память редактора, дополняя уже имеющийся там текст. Если область текста заполнена, т. е. адрес очередного заносимого в память кода превышает 73FFH, то выдается звуковой сигнал и сообщение:

ПЕРЕПОЛНЕНО ОЗУ

После этого нажатие на любую клавишу вызовет переход в РЕДАКТОР. В этом случае необходимо освободить хотя бы часть занятой текстом памяти, выводя, например, принятый текст на магнитную ленту и удаляя затем ненужное. После перехода обратно в ТЕРМИНАЛ прием продолжится. Приемный буфер при переполнении сохраняется и повторно выводится как на экран, так и в память, что позволяет не потерять фрагмент принятого текста.

Команда АР2+А включает или выключает режим выдачи кода перевода строки (ПС-0АН) после выдачи каждого кода возврата каретки (ВК - 0DН). Начальная установка ТЕРМИНАЛа - режим ВК/ПС выключен. Этот режим требуется для некоторых периферийных устройств, например, печатающего устройства. После ввода команды выдается сообщение: ВК/ПС ВКЛ - если режим ранее был выключен;
ВК/ПС ВЫКЛ - если режим ранее был включен.
Команда АР2+С включает или выключает режим эхо - выдачи на экран каждого передаваемого на ПУ символа. Начальная установка ТЕРМИНАЛа - ЭХО выключено. Режим ЭХО необходимо устанавливать, если ПУ не выдает обратно на компьютер каждый принимаемый символ. После ввода команды выдается сообщение: ЭХО ВКЛ - если режим эхо ранее был выключен;
ЭХО ВЫКЛ - если режим эхо ранее был включен.

Команда AP2+S вызывает передачу на ПУ содержимого временного буфера РЕДАКТОРа, в который предварительно в РЕДАКТОРе был занесен фрагмент текста также с помощью команды AP2+S. После ввода команды также выдается соответствующее сообщение.

Если перед началом передачи был включен режим ЭХО, то каждый передаваемый символ отображается на экране. Если режим ЭХО выключен, то после передачи символа ТЕРМИНАЛ переходит на прием и ожидает от ПУ некоторое время эхо символа. Получив от ПУ эхо, или после истечения времени ожидания, передается следующий символ и т. д. При выключенном ЭХО несколько замедляется скорость передачи из-за ожидания эхо от ПУ.

При необходимости прервать передачу необходимо ввести команду УС+Z. Передача текста из буфера прекратится и будет выдано сообщение: ПРЕРВАНА.

По окончании передачи содержимого буфера на экран будет выведено сообщение: ОКОНЧЕНА.

Если во время предыдущего сеанса работы с РЕДАКТОРОМ во временный буфер ничего не было записано (т. е. буфер пуст), при попытке его передачи выдается сообщение: ПЕРЕДАЧА ПРЕРВАНА

Таблица 5.

АДРЕС

50 БОД

110 БОД

300 БОД

600 БОД

1200 БОД

0CD0

F4

58

2B

14

0CD1

02

00

00

00

00

Для сопряжения программы ТЕРМИНАЛ с различными ПУ необходима настройка на требуемые параметры последовательного интерфейса. Скорость обмена определяется содержимым ячеек программы, приведенным в табл.5 (указанные значения справедливы для частоты кварца РК-16МГц). Длина передаваемого слова (7 или 8 бит) заносится в ячейку 0GD2H. Удвоенное число стоповых бит - в ячейку 0CD3H. Приведенная версия программы не учитывает бит паритета.

По адресу 08С1Н размещена константа, определяющая размер приемного буфера. Оптимальный размер буфера определяется допустимым временем заполнения буфера (1-2сек) и зависит от скорости обмена. Чем меньше скорость, тем меньший буфер целесообразно использовать. Для скорости 1200 Бод оптимальный размер буфера - 127 байт (7F). Для скорости 300Бод - 32 байта, для скорости 50Бод - 5 байт.

Таблица 6.

АДРЕС

080E

0823

08BB

0924

092C

0944

098A

09CB

32К

75

74

75

75

75

75

74

75

16K

35

34

35

35

35

35

34

35

Программа ТЕРМИНАЛ предназначена для компьютера "Радио-86РК" с объемом ОЗУ в 32 Кбайт. В табл.6 приведены адреса ячеек памяти, содержимое которых нужно изменить для 16-ки-лобайтной версии компьютера. Соответственно нужно настроить на 16 Кбайт и редактор "МИКРОН".

Программа испытана с различными периферийными устройствами: радиолюбительскими TNC типов MFJ-1274, РК-232, РК-88, модемом Concord-224. Со всеми из них ТЕРМИНАЛ устойчиво работал при скорости обмена 1200 Бод.

На основе приведенных в табл.1 модулей для редактора "МИКРОН" и БЕЙСИКа "МИКРОН" разработаны драйверы печатающего устройства типа "Роботрон-К6312" с последовательным интерфейсом.

ТАБЛИЦА 7
7400: 31 FF 73 21 AA 74 CD 18 F8 3E 82 32 03 АО 3E 03
7410: 32 00 АО 21 00 21 22 E4 74 CD 03 F8 2A E4 74 7C
7420: FE 73 CA 36 74 7E 4F FE FF CA 3C 74 23 22 E4 74
7430: CD 3F 74 C3 1С 74 21 C8 74 CO 18 F8 C3 6C F8 79
7440: FE 00 C2 40 74 CO 54 74 C2 45 74 OE OA CD 54 74
7450: C2 40 74 C9 C5 05 E5 06 FF ЗА 01 АО E6 02 CA 69
7460: 74 05 C2 59 74 A7 C3 98 74 3E 02 32 00 АО 16 02

7470: C
O 9C 74 ЗА E2 74 47 79 F6 02 E6 03 32 00 АО 79
7480: OF 4F 16 02 CO 9C 74 05 C2 77 74 3E 03 32 00 АО
7490: ЗА E3 74 57 CO 9C 74 AF E1 01 C1 C9 2A EO 74 2В
74AO: 7C B5 C2 9F 74 15 C2 9C 74 C9 IF ОС ЗЕ ЗЕ 6Е 61

74BO: 76 60 69 74 65 20 6C 60 62 75 60 20 6В 6C
61 77
74CO: 69 7В 75 3C 3C 00 OA 00 ЗЕ ЗЕ 70 65 72 65 70 6Г
7400: 6C 6E 65 6E 69 65 20 20 6F 7A 75 3C 3C 00 0A 00
74E0: 14 00 08 04 00 00 00 00 00 00 00 00 00 00 00 00

Код драйвера для редактора ((МИКРОН" приведен в табл.7. Драйвер размещается в ОЗУ, начиная с адреса 7400Н, и запускается директивой МОНИТОРа G7400. После запуска драйвера необходимо включить принтер и затем нажать любую клавишу. Текст, размещенный в ОЗУ с адреса 2100Н, будет выведен на принтер.

ТАБЛИЦА 8

7400: 31 FP 73 ЗЕ 82 32 03 АО ЗЕ 03 32 00 АО 21 1В 74
7410: 22 85 03 ЗЕ 73 32 02 00 C3 00 00 F5 C5 D5 E5 CD
7420: 2A 74 C2 IP 74 E1 01 C1 F1 C9 C5 05 E5 06 FF ЗА
7430: 01 АО E6 02 CA 3F 74 05 C2 ?F 74 Д7 C3 6E 74 ЗЕ
7440: 02 32 00 АО 16 02 CO 72 74 ЗА 82 74 47 79 F6 02
7450: E6 03 32 00 АО 79 OF 4F 16 02 CO 72 74 05 C2 40
7460: 74 ЗЕ 03 32 00 АО ЗА 83 74 57 CD 72 74 AF El D1
7470: C1 C9 2A 80 74 2В 7C B5 C2 75 74 15 C2 72 74 C9
7480: 14 00 08 04 00 00 00 00 00 00 00 00 00 00 00 00

Код драйвера для БЕЙСИКа "МИКРОН" приведен в табл.8. Драйвер размещается, начиная с адреса 7400Н. После запуска по директиве G7400 инициализируется порт D14 и вызывается интерпретатор БЕЙСИКа. Драйвер поддерживает работу операторов LPRINT и LLIST.

Г. ИВАНОВ

г. Москва

* "Радио", 1988, № 3

Описание компьютера Радио-86РК
Журнал РАДИО



(C) 2003-2010 www.danbigras.ru Наш адрес: info@danbigras.ru
Всё о старых компьютерах