РК86 в роли терминала

Перейти вниз

РК86 в роли терминала

Сообщение  barsik в Пт Сен 01 2017, 09:44

Мало кто догадался, но РК86 кроме использования как собственно бытовой компьютер, может с успехом служить терминалом для другой микро ЭВМ. Например, реализуя стандартный терминал CP/M-машины. Заметим, что сам РК86 в качестве полноценной инструментальной CP/M-машины, даже при ОЗУ в 64К, как из-за тормознутости, так и отсутствия Z80, - не очень привлекателен.

Гораздо более мощная CP/M машина получится если добавить к РК простейшее МП-ядро с Z80B на такте 9-10 МГЦ (это всего 6-7 корпусов), используя РК как терминал, причём со скоростным параллельным интерфейсом. Эта внешняя платка подключается всего десятком проводов через запасной ППА D14. При этом даже не требуются апп.доработки базового РК, достаточно простой замены ПЗУ с ROM-BIOS.

В простейшем случае роль внешнего скоросного компьютера может сыграть старая ненужная платка ZX-48К типа "Зона-композит", которая имеет слепыш на четверти площади. Эта плата легко переделывается в CP/M ЭВМ с ОЗУ в 62К, для чего на плате устанавливается ППА ВВ55 для интерфейса, ПЗУ 16 кб снимается (всё пространство 0...F7FF отдаётся ОЗУ) и устанавливается ПЗУ РФ2 по адресу F800. Кварц 14 МГЦ можно заменить на максимально возможный, например 16-24 МГЦ, сколько потянет ОЗУ. В итоге из двух непригодных для CP/M компьютеров получится один полноценный. Интересно, что другие отечественные ЭВМ для роли терминала годятся намного хуже.

Терминал это дисплей с прикрученной к нему клавиатурой, соединённый с основной ЭВМ по двухпроводной линии (иногда даже через всю страну по телефонному модему). Терминалы ценой в 800-1500 USD в середине 70-тых обычно работали со скоростью всего 110 бод, т.е всего 15 символов в секунду (очевидно для задач того времени такой скорости хватало). А РК86 при обмене программно по параллельному интерфейсу с другой ЭВМ может обеспечить скорость вывода ~10 тысяч символов в секунду. Такой скорости достаточно даже для динамичных игр. Заметим, что графические ЭВМ типа ОРИОНА или ИРИШИ, если их использовать аналогично в роли терминала, могут обеспечить скорость вывода лишь примерно в 1000 раз меньшую.

Однако, иногда возникает необходимость превратить РК в полноценный терминал, когда терминал и модуль ЦП далеко разнесены и для связи между ними используется линия всего в два провода. В этом случае наличие аппаратного ВВ51 ускоряет обмен, но даже имитация последовательного обмена программно даёт приемлемую скорость, причём даже, если роль ЦП играет IBM PC. В случае обмена с IBM PC программный обмен без доп.аппаратуры получается очень медленным ~50 символов в секунду (при передаче файлов, когда идёт сплошной пототок битов без побайтовой синхронизации, скорость обмена в несколько раз выше).

Как видно из конструкций простейших западных 8-ми разрядных самоделок на процессорах Z80, 6809 и 65C02 сделанных любителями, терминалы используются почти всегда. Даже на этапе отладки МП-конструкций, обычно ставят в системе SIO и в качестве терминала используют IBM PC со стандартной терминальной программой, подключеныый через COM-интерфейс. Терминалы, даже любители уже, естественно, делают не на рассыпухе как в 70-тые годы (400 корпусов) и даже не с использованием отдельного микропроцессора и БИС для видеовывода типа MC6845 (~25 корпусов), а на ПЛИС и МК (~6-8 корпусов). Наличие у пользователя РК86 позволяет упростить задачу, и актуально для тех кто предпочитает не связываться с ПЛИС и МК.

Для изучения системы команд какого-либо микропроцессора (8-ми разрядных МП известно несколько десятков, хотя "выжили" только Z80, 6809 и 6502) можно не собирать не только целую ЭВМ с данным CPU, но даже и отладочный стенд с HEX-индикаторами (что естественно, проще и дешевле), а достаточно иметь терминал подключенный к IBM PC через LPT-порт принтера и программу эмуляции конкретного процессора написанную для IBM PC. Это избавляет от необходимости паять для каждого микропроцессора отдельную платку. А при разработке эмулятора, это упрощает его отладку.

Трудность отладки эмулятора редкого микропроцессора, например 6800, заключается в том, что для него нет готовых программ, которые можно было бы прогнать с целью проверки правильности работы блока эмуляции. Поэтому требуется отлаживать блок эмуляции путём оперативного написания небольших программ и сравнения результатов их прогона с реалом или другими эмуляторами. После отладки блока эмуляции 6800 уже не составляет труда написать и отладить в эмуляторе ROM-BIOS для любой конструкции на данном МП, тогда как отладка на реале путём тысячекратных перепрошивок ПЗУ, как это делалось на заре цивилизации, гораздо более трудоёмко. Кроме того, наличии эмулятора 6800 просто необходимо для конверсии для 6800 программ от КР580, например от РК86.

Таким образом, есть две задачи. Первая, - это обслуживание скоростного простейшего МП-ядра на Z80B, интерфейс с которым осуществляется в параллельном интерфейсе (в ВВ55 есть такой режим) через запасной ППА D14. Вторая задача, - это терминал для модуля ЦП, роль которого эмулирует IBM PC имеющий LPT-порт (конечно можно и COM-порт, но с LPT всё-же проще, т.к никому не охота трахаться и устанавливать в РК86 новую БИС ВВ51). Для каждой из этих задач можно загрузить в ОЗУ РК86 и запустить соответствующую терминальную программу. Но удобнее прошить её в ПЗУ E000...E7FF, т.е в те адреса, что уже и так стандартизованы для расширения ПЗУ в РК86 при введении RK-DOS. Терминальная программа с минимумом функций (не VT52 или VT100) вполне влезает и в ПЗУ F800. Тогда РК86 сразу по сбросу служит терминалом (но естественно, уже не может прогонять игры от РК86).

Пока я не имею скоростного МП-ядра на Z80, чтобы написать для РК терминальную программу в параллельном интерфейсе. Спаять такую плату и написать для неё ROM-BIOS несложно. На таком довольно быстром (~10 МГЦ такта и накопитель - винт) компьютере вполне можно даже писать программы. При использовании для трансляции эл.диска один цикл итерации (модификация-трансляция-проверка) будет получаться быстрее, чем более удобная трансляция на PC, всё тормозит сложность пересылок готовых кодов из PC на РК86. Пока есть довольно медленная (~100 байт в секунду) терминальная программа использующая программно эмулируемый последовательный интерфейс по двум проводам.

Некоторые материалы интересные для фанатов процессора MC6800 вот тут.

To be continued...

_________________
***
avatar
barsik
новичёк

Сообщения : 87
Дата регистрации : 2016-11-10
Откуда : 600 км от Москвы

Посмотреть профиль

Вернуться к началу Перейти вниз

Вернуться к началу


 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения