Радио 86РК — различия между версиями
Vinxru (обсуждение | вклад) |
Vinxru (обсуждение | вклад) |
||
| Строка 48: | Строка 48: | ||
<table border="1" style="border-collapse: collapse" cellpadding=2> | <table border="1" style="border-collapse: collapse" cellpadding=2> | ||
<tr><td><b>16 Кб ОЗУ</b></td><td><b>32 Кб ОЗУ</b></td><td><b>Описание</b></td></tr> | <tr><td><b>16 Кб ОЗУ</b></td><td><b>32 Кб ОЗУ</b></td><td><b>Описание</b></td></tr> | ||
| − | <tr><td> | + | <tr><td>0000h - 3500h</td><td>0000h - 7600h</td><td>ОЗУ Пользователя</td></tr> |
| − | <tr><td> | + | <tr><td>3500h - 3600h</td><td>7600h - 76D0h</td><td>ОЗУ. Переменные монитора</td></tr> |
| − | <tr><td> | + | <tr><td>35D0h - 4000h</td><td>76D0h - 8000h</td><td>ОЗУ. Видеопамять (может быть программно перемещена)</td></tr> |
| − | <tr><td align=center colspan=2> | + | <tr><td align=center colspan=2>8000h - 9FFFh</td><td>Контроллер клавиатуры ([[КР580ВВ55]])</td></tr> |
| − | <tr><td align=center colspan=2> | + | <tr><td align=center colspan=2>A000h - BFFFh</td><td>Универсальный параллельный порт ([[КР580ВВ55]])</td></tr> |
| − | <tr><td align=center colspan=2> | + | <tr><td align=center colspan=2>С000h - DFFFh</td><td>Видеоконтроллер ([[КР580ВГ75]])</td></tr> |
| − | <tr><td align=center colspan=2> | + | <tr><td align=center colspan=2>E000h - FFFFh</td><td>Контроллер ПДП ([[КР580ВТ57]]). Только запись</td></tr> |
| − | <tr><td align=center colspan=2> | + | <tr><td align=center colspan=2>F800h - FFFFh</td><td>ПЗУ. Только чтение</td></tr> |
</table> | </table> | ||
| Строка 64: | Строка 64: | ||
<table border=1 style='border-collapse:collapse' cellpadding=2> | <table border=1 style='border-collapse:collapse' cellpadding=2> | ||
<tr><td><b>Адрес</b></td><td><b>Описание</b></td><td><b>Входные данные</b></td><td><b>Выходные данные</b></td></tr> | <tr><td><b>Адрес</b></td><td><b>Описание</b></td><td><b>Входные данные</b></td><td><b>Выходные данные</b></td></tr> | ||
| − | <tr><td> | + | <tr><td>F803h</td><td>Ввод символа с клавиатуры с ожиданием</td><td> </td><td>A - код символа</td></tr> |
| − | <tr><td> | + | <tr><td>F806h</td><td>Чтение байта с магнитофона</td><td>А=FF - с поиском синхробайта<br>A=08 - без поиска синхробайта</td><td>A - считанный байт</td></tr> |
| − | <tr><td> | + | <tr><td>F809h</td><td>Вывод символа на экран</td><td>С - символ</td><td> </td></tr> |
| − | <tr><td> | + | <tr><td>F80Сh</td><td>Запись байта на магнитофон</td><td>C - байт</td><td> </td></tr> |
| − | <tr><td> | + | <tr><td>F80Fh</td><td>Не используется</td><td> </td><td> </td></tr> |
| − | <tr><td> | + | <tr><td>F812h</td><td>Опрос состояния клавиатуры 1</td><td> </td><td>A=FF - ни одна клавиша не нажата<br>A<>FF - нажата</td></tr> |
| − | <tr><td> | + | <tr><td>F815h</td><td>Вывод на экран 16-ричного числа</td><td>A - число</td><td> </td></tr> |
| − | <tr><td> | + | <tr><td>F818h</td><td>Вывод на экран текстовой строки</td><td>HL - адрес строки (код 0 конец строки)</td><td> </td></tr> |
| − | <tr><td> | + | <tr><td>F81Bh</td><td>Опрос состояния клавиатуры 2</td><td> </td><td>A=FF - ни одна клавиша не нажата<br>A=FE - нажата клавиша РУС/ЛАТ<br>Иначе A - код клавиши</td></tr> |
| − | <tr><td> | + | <tr><td>F81Eh</td><td>Запрос положения курсора</td><td> </td><td>Н - номер строки<br>L - номер позиции</td></tr> |
| − | <tr><td> | + | <tr><td>F821h</td><td>Запрос символа под курсором</td><td> </td><td>А - символ</td></tr> |
| − | <tr><td> | + | <tr><td>F824h</td><td>Чтение блока с магнитофона</td><td>HL - смещение</td><td>HL - смещение<br>HL - адрес начала<br>DE - адрес конца<br>ВС - контрольная сумма считанная с ленты</td></tr> |
| − | <tr><td> | + | <tr><td>F827h</td><td>Вывод блока на магнитофон</td><td>HL - адрес начала<br>DE - адрес конца<br>ВС - контрольная сумма</td><td> </td></tr> |
| − | <tr><td> | + | <tr><td>F82Ah</td><td>Подсчет контрольной суммы блока</td><td>HL - адрес начала<br>DE - адрес конца</td><td>ВС - контрольная сумма</td></tr> |
| − | <tr><td> | + | <tr><td>F82Dh</td><td>Инициализация видеоконтроллера</td><td> </td><td> </td></tr> |
| − | <tr><td> | + | <tr><td>F830h</td><td>Запрос верхней границы доступной памяти</td><td> </td><td>HL - адрес</td></tr> |
| − | <tr><td> | + | <tr><td>F833h</td><td>Установка верхней границы<br>доступной памяти</td><td>HL - адрес</td><td> </td></tr> |
</table> | </table> | ||
Версия 13:59, 19 апреля 2012
Группа: Радио 86РК-совместимый
Процессор: КР580ВМ80А (клон 8080)
ОЗУ: 16/32 Кб
ПЗУ: 2 Кб (программа Монитор)
Разъемы: Универсальный параллельный порт КР580ВВ55А, магнитофон, НЧ видео
Видео: КР580ВГ75+КР580ВТ57 Черно белый текстовый режим от 64x25 до 64x64. Или псевдографический 128x62. Подключается в телевизору.
Звук: бипер
Разработан: 1986 год
Содержание
О компьютере
Компьютер Радио 86РК появился в виде схем в журнале Радио, номер № 4-6/1986 г. Авторы разработки Г.В. Зеленко, Д.В. Горшков, Ю.В. Озеров и С.Н. Попов. Радиолюбители должны были собрать этот компьютер самостоятельно. Но уже через год многие заводы наладили выпуск этих компьютеров. Некоторые компьютеры отличались только корпусами (например: Альфа БК, ПК Импульс-02), а некоторые были значительно расширены (например: Апогей БК-01, Партнер 01.01) и стали несовместимы с оригинальным Радио 86РК.
Компьютер стал популярным из за небольшой схемы. Всего 29 микросхем для версии с 16 Кб оперативной памяти. Схема была простой благодаря использованию микросхемы КР580ВГ75, которая содержала в себе большую часть видеоконтроллера. Эта микросхема работала совместно с контроллером ПДП КР580ВТ57, ПЗУ знакогенератора и еще несколькими простыми микросхемами.
К сожалению, микросхема КР580ВГ75 могла отображать лишь текстовый режим экрана 64x25 / 64x64 использующий всего 128 символов. Знакогенератор содержит английские и русские буквы, но маленького знакогенератора хватило только на заглавные буквы. Строчных букв нет. Так же в знакогенератор поместили 16 псевдографических символа делящих знакоместо пополам по ширине и высоте. Благодаря им можно реализовать псевдографический режим 128x62.
Микросхема КР580ВГ75 позволяла реализовать цветное изображение, но ради простоты в компьютере Радио 86РК эта возможность не была реализована. Эта доработка требовала максимум 3 простых микросхемы, и любители дорабатывали компьютер РК86 руками.
Видеоадаптер во время чтения ОЗУ непредсказуемо притормаживал процессор, поэтому время выполнения программы рассчитать было невозможно. А это необходимо для корректной работы программы загрузки и сохранения на магнитофон. Поэтому во время загрузки с магнитофона, видеоконтроллер отключался и пользователь видел черный экран.
Видеоконтроллер побочно регенерировал ОЗУ компьютера, поэтому программа загрузки с магнитофона выключившая видеоконтроллер должна сама регенерировать ОЗУ.
В этом компьютере интересно сделан вывод звука. Для вывода звука используется ножка INTE процессора (разрешение прерываний).
Прерывания и порты ввода-вывода в этом компьютере не используются.
Команды монитора
| D[начало],[конец] | Выводит содержимое области памяти в шестнадцатеричном виде. |
| L[начало],[конец] | Выводит содержимое области памяти в текстовом виде. |
| F[начало],[конец],[байт] | Заполняет область памяти байтом. |
| M[начало] | Последовательно просматривает память позволяя изменять значения. |
| T[из_начало],[из_конец],[куда начало] | Копирует область памяти. |
| С[начало],[конец],[начало 2] | Сравнивает области памяти. |
| S[начало],[конец],[байт] | Ищет байт в области памяти. |
| G[адрес],[точка останова] | Запустить программу. Точку останова можон не указывать. Адрес то же можно не указывыть, тогда выполнение начинается с адреса 0. |
| X | Просмотр и изменение регистров процессора. |
| R[из начало],[из конец],[куда начало] | Загрузить данные из внешнего ПЗУ. Третий параметр можно не указывать, тогда загрузка произойдет в адрес 0. |
| O[начало],[конец],[скорость] | Сохраняет область памяти на магнитофон. Третий параметр можно не указывать. |
| I[начало],[скорость] | Загружает область памяти с магнитофона. Оба параметра можно не указывать. |
| U | ??? |
Карта памяти
| 16 Кб ОЗУ | 32 Кб ОЗУ | Описание |
| 0000h - 3500h | 0000h - 7600h | ОЗУ Пользователя |
| 3500h - 3600h | 7600h - 76D0h | ОЗУ. Переменные монитора |
| 35D0h - 4000h | 76D0h - 8000h | ОЗУ. Видеопамять (может быть программно перемещена) |
| 8000h - 9FFFh | Контроллер клавиатуры (КР580ВВ55) | |
| A000h - BFFFh | Универсальный параллельный порт (КР580ВВ55) | |
| С000h - DFFFh | Видеоконтроллер (КР580ВГ75) | |
| E000h - FFFFh | Контроллер ПДП (КР580ВТ57). Только запись | |
| F800h - FFFFh | ПЗУ. Только чтение | |
(Порты ввода-вывода обращаются к этой же памяти)
Стандартный набор программ ввода-вывода
| Адрес | Описание | Входные данные | Выходные данные |
| F803h | Ввод символа с клавиатуры с ожиданием | A - код символа | |
| F806h | Чтение байта с магнитофона | А=FF - с поиском синхробайта A=08 - без поиска синхробайта | A - считанный байт |
| F809h | Вывод символа на экран | С - символ | |
| F80Сh | Запись байта на магнитофон | C - байт | |
| F80Fh | Не используется | ||
| F812h | Опрос состояния клавиатуры 1 | A=FF - ни одна клавиша не нажата A<>FF - нажата | |
| F815h | Вывод на экран 16-ричного числа | A - число | |
| F818h | Вывод на экран текстовой строки | HL - адрес строки (код 0 конец строки) | |
| F81Bh | Опрос состояния клавиатуры 2 | A=FF - ни одна клавиша не нажата A=FE - нажата клавиша РУС/ЛАТ Иначе A - код клавиши | |
| F81Eh | Запрос положения курсора | Н - номер строки L - номер позиции | |
| F821h | Запрос символа под курсором | А - символ | |
| F824h | Чтение блока с магнитофона | HL - смещение | HL - смещение HL - адрес начала DE - адрес конца ВС - контрольная сумма считанная с ленты |
| F827h | Вывод блока на магнитофон | HL - адрес начала DE - адрес конца ВС - контрольная сумма | |
| F82Ah | Подсчет контрольной суммы блока | HL - адрес начала DE - адрес конца | ВС - контрольная сумма |
| F82Dh | Инициализация видеоконтроллера | ||
| F830h | Запрос верхней границы доступной памяти | HL - адрес | |
| F833h | Установка верхней границы доступной памяти | HL - адрес |
Замена КР580ВГ75
В журнале Радио предлагалась схема замены дефицитной микросхемы ВГ75 на отдельную плату, которая содержала 20 более доступных и простых микросхем.
Эта плата была несовместима с микрсохемой КР580ВГ75. Отличалось положение и внутреннее устройство видеопамяти. Отличался способ отображения курсора. Плата не поддерживала изменение высоты шрифта, изменение ширины и высоты экрана, изменение положения видеопамяти в адресном пространстве, не поддерживались аттрибуты и т.д.
Из за этого требовалось альтернативное ПЗУ. И на таком компьютере некорректно работали стандартные РК86 программы обращающиеся к видеопамяти напрямую. А это почти все игры. Работали только программы обращающиеся к видеопамяти через функции ПЗУ.
Плата содержала собственное видео ОЗУ, статическую память объемом 2 Кб. Формирование изображения происходило из этой памяти. В отличии от КР580ВГ75, изображение формирвоалось даже при отключенном контроллере ПДП (он отключается во время загрузки и сохранения на магнитофон). Когда процессор записывал данные в видео ОЗУ платы, на экране появилясь помехи.
http://www.danbigras.ru/RK86/Naladka/NoVG75.html - Если нет ВГ75, журал Радио.
Ссылки
http://www.danbigras.ru/RK86/Index.html - Статьи из журнала Радио
http://emu80.org/dl.html - Эмулятор и игры для Радио-86РК