Статьи » Разработки |
2020-01-12 в 13:56 (последнее изменение 2020-02-07 в 15:03)
Микропроцессор 8080 (КР580ИК80, позже КР580ВМ80А) у многих ассоциируется с домашними компьютерами "Радио-86РК", "Орион-128", "Вектор-06Ц" и другими. Но область его применения значительно шире, чем одна "бытовуха". Он применён в качестве основного в компьютерах СМ1800, "ВЭФ-Микро" и "Океан-240", а в качестве вспомогательного - в "Искре-226", а это - машины вполне профессионального назначения. Даже на такой "чужой" ему платформе, как ДВК, этот микропроцессор нашёл применение в контроллерах КСД и КСМ - соответственно, контроллере символьного дисплея и контроллере символьного монитора. Понятно, что тогда под дисплеем и монитором понимали одно и то же, просто эти платы - разработки разных лет, несколько отличающиеся устройством и возможностями. Так, например, во второй из них добавлена возможность подмешивания сигнала от КГД - контроллера графического дисплея. Компьютеры ПК8000 и "Корвет" занимали промежуточное положение между домашними и профессиональными - они были учебными. Во втором из них видеоконтроллер превосходил по возможностям EGA. Первый же был попроще, но надёжнее. Данный микропроцессор использовался и в качестве встроенного - т.е., с той целью, с которой сегодня применяются микроконтроллеры. Например, в громоздком, прожорливом, но весьма надёжном принтере "Электроника МС6304", многоголосных аналоговых синтезаторах с цифровым управлением "Маэстро" и RMIF TI-3, LD-проигрывателях "Русь" и "Амфитон" ВП-201, пишущей машинке "Элема". В отличие от других популярных восьмибитных микропроцессоров, 8080 и его аналоги требовали трёх напряжений питания, подаваемых и снимаемых либо одновременно, либо в определённой последовательности, иначе микросхема выходила из строя. Поздние выпуски КР580ВМ80А могли работать от одного напряжения, но этот режим не считался штатным - если микропроцессор всё же выйдет из строя от несоблюдения правил эксплуатации, с гарантии он снимался. Затем был выпущен микропроцессор КР580ВМ1 с расширенными возможностями, для которого питание одним напряжением является штатным режимом. В конце девяностых начались первые признаки ностальгии пользователей по различной технике с применением данного процессора. К тому времени начали устаревать ПК даже на процессорах 80386. Владельцы "пней" начали продавать "трёшки" по доступным ценам, и многие из них попадали к программистам, среди которых оказался житель Нижнего Новгорода Виктор Пыхонин. Он начал работу над EMU80 - эмулятором "Радио-86РК" и других компьютеров на микропроцессоре КР580ВМ80А. Этот эмулятор довольно долго был мегахитом, "широко известным в узких кругах". Вскоре последовали аналогичные эмуляторы и от других разработчиков. Позже эмулировать системы с данным микропроцессором начали другими способами. "Специалист" - на Java, "Орион-128" - на Flash... Но постепенно обе технологии начали исчезать из браузеров пользователей. Web 2.0 медленно наступал, и программист Александр Дёмин написал эмулятор "Радио-86РК" на JavaScript, а за ним другой программист Shaos адаптировал эту разработку к планшетам, не имеющим физической клавиатуры. А потянут ли эмуляцию КР580ВМ80А современные микроконтроллеры? Одним из первых такой эксперимент провёл тот же Александр Дёмин, написавший эмулятор "Радио-86РК" для платы Maximite на контроллере PIC32. Через несколько лет программист Алексей Пресняков написал эмулятор того же компьютера для недорогой платы ESP-01S. А что же Arduino, хватит ли для тех же целей возможности этой, как известно, не самой мощной в мире платформы? Оказывается, впритык, но хватит. Программист под ником companje, объединив наработки Даниэля Карлинга и того же Александра Дёмина, сделал на её основе функциональный аналог компьютера MITS Altair 8800, но для его работы потребовалось подключить к плате слишком уж много периферийных устройств. Об этой конструкции можно почитать здесь: https://github.com/companje/Altair8800/blob/master/README.md Другой программист, под ником maly, решил данную разработку значительно упростить - так, чтобы кроме Arduino, потребовалось только любое устройство с USB-хостом - ПК, смартфон или планшет с возможностью запуска терминальной программы. Эмулятору 8080 выделено 4 кБ ПЗУ и 1 кБ ОЗУ с возможностью расширения до 1,5. Всё это внутри микроконтроллера уже имеется - периферия не требуется. Вот только очень удобный Бейсик "Микрон", к которому привыкли пользователи "Радио-86РК", туда не поместится. Нужен Tiny Basic - очень компактный интерпретатор, разработанный программистом Ли-Ченом Вангом ещё в 1976 году. О том, как maly всё это объединил, он рассказывает здесь: https://www.uelectronics.info/2017....arduino Краткий рассказ о том, как он всё это реализовал. 1. Взял за основу уже упомянутую выше разработку companje. Результат он выложил сюда: https://github.com/maly/arduino8080basic?files=1 Что ж, посмотрим, что будет, если всё это залить в Arduino-совместимую плату с характеристиками не хуже, чем у Uno, и запустить на устройстве, к которому через USB-хост подключена плата, терминальную программу. Как видим, эмулятор работает, и без подключения чего-либо к GPIO. Задействованным у Arduino оказался только USB-интерфейс. Можно попробовать набрать в терминале несколько строк и запустить. Самый неудобный в применении из-за трёх напряжений питания, но и самый романтичный из восьмибитных микропроцессоров обрёл новый, виртуальный дом, возможно, и в вашем Arduino. И здесь он уже не так требователен к питанию, но работает ничуть не хуже. Разве это не здорово? Не пропустите обновления! Подписывайтесь на нашу группу Вконтакте. Так же у нас есть Telegram канал. Вам понравился наш материал? Поделитесь с коллегами! Просмотров: 5607. Оценка статьи: 5.0 из 5. Уже оценило 1 читатель |
Всего комментариев: 0 | |