Аппаратный эмулятор Радио-86РК на ESP8266

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

tchv71
Writer
Posts: 12
Joined: 19 Mar 2021 18:47

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by tchv71 »

Прочитал я все страницы темы и задался вопросом: неужто никто, включая автора не сделал толковое описание с нормальной схемой и пошаговой процедурой заливки прошивки для новичков? Дел то на час, а польза - большая
P.S. У меня всё прошилось и запустилось, но кои-8 в исходниках - это что-то с чем-то... И схема оставляет желать лучшего
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by Damir »

А можно ли этот эмулятор запустить на ESP 32 ?
User avatar
askfind
Devil
Posts: 798
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by askfind »

Damir wrote:А можно ли этот эмулятор запустить на ESP 32 ?
Есть интересный проект ESP32 VGA с i8080 процессором и графической библиотекой.
Emulating Altair 8800 with FabGL (ESP32) - CP/M languages (BBC Basic, Nevada Basic, forth, lisp...)
Demo using FabGL Library (VGA Controller, PS/2 Keyboard Controller, Graphics Library, Sound Engine, Game Engine and ANSI/VT Terminal for the ESP32)
Демонстрация:

Используя эти прототипы можно сделать эмулятор "Радио-86РК"...
You do not have the required permissions to view the files attached to this post.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
fifan
Devil
Posts: 911
Joined: 06 Oct 2006 03:17
Location: г.Лянтор,Сургутского р-на,ХМАО

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by fifan »

Уже сталкивался с таким. Похожий эмулятор только Специалиста у меня где-то лежит. Чёрно-белый выход, подключение PS/2 клавиатуры, загрузка файлов по Wi-Fi. Разработкик бросил проект на полпути.
User avatar
askfind
Devil
Posts: 798
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by askfind »

This is my 8080-Emulator (yet another 8080 Emulator) running on an ESP32

https://github.com/meinlebenswerk/YAE80 ... rduino.git
About
This is my 8080-Emulator (yet another 8080 Emulator) running on an ESP32. The Idea is to later have a webserver running on the second core, so it can stream the emulated game!

Code: Select all

$ tree -L 3
.
├── lib
│   ├── librom
│   │   └── invaders.h
│   ├── libyae8080
│   │   ├── yae8080.cpp
│   │   └── yae8080.h
│   └── readme.txt
├── platformio.ini
├── README.md
└── src
    └── main.cpp
Выполнил сборку и старт. Проект успешно собрался:

Code: Select all

Retrieving maximum program size .pio/build/esp32dev/firmware.elf
Checking size .pio/build/esp32dev/firmware.elf
Advanced Memory Usage is available via "PlatformIO Home > Project Inspect"
RAM:   [          ]   4.1% (used 13504 bytes from 327680 bytes)
Flash: [==        ]  16.9% (used 221890 bytes from 1310720 bytes)
Запуск и проверка производительности эмуляции выполнения кода i8080:

Code: Select all

--- Quit: Ctrl+C | Menu: Ctrl+T | Help: Ctrl+T followed by Ctrl+H ---
Free Heap:: [310528]bytes
cycletime: [0.245350]us, -> max emulation frequency: [4.0758] MHz
Free Heap:: [310528]bytes
cycletime: [0.244960]us, -> max emulation frequency: [4.0823] MHz
Free Heap:: [310528]bytes
cycletime: [0.245100]us, -> max emulation frequency: [4.0800] MHz
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 798
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by askfind »

Эмулятор Радио-86РК на ESP8266

Оригинальный проект: - https://github.com/klad-me/RK8266

Схема: - https://easyeda.com/UN7FGO/RADIO_86RK_ESP8266

В проекте есть документация: - https://github.com/klad-me/RK8266

зашёл в каталог './RK8266/soft/EmuAPP' и собрал проект для esp8266:

Code: Select all

>$ make 
...
Making emu.bin...
esptool.py v3.1
Creating image for ESP8266...
Merged 1 ELF section
В скрипте 'boot.sh'

Есть фрагмент для прошивки esp8266:

Code: Select all

/home/heavy/KLAD/x-tools/esp8266/xtensa-lx106-elf/bin/esptool.py	\
    --port /dev/ttyUSB0 			\
    write_flash					\
    --flash_size 8m				\
    --flash_freq 20m				\
    --flash_mode dio				\
    0x00000	boot-2apps/out/boot.bin		\
    0x01000	EmuAPP/out/emu-0x00000.bin	\
    0x10000	WiFiAPP/out/wifi.1.bin		\
    0x50000	help/help.bin			\
    0x70000	WiFiAPP/httpfs/httpfs.bin	\
Автор проекта выполнил большую работу. Проект в Linux Ubuntu 20.04 успешно собрался.

P.S.
Для ESP32 можно исходные файлы проекта перенести в YAE8080_ESP32 (This is my 8080-Emulator (yet another 8080 Emulator) running on an ESP32).
You do not have the required permissions to view the files attached to this post.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by Damir »

askfind wrote:
Damir wrote:А можно ли этот эмулятор запустить на ESP 32 ?
Есть интересный проект ESP32 VGA с i8080 процессором и графической библиотекой.
Emulating Altair 8800 with FabGL (ESP32) - CP/M languages (BBC Basic, Nevada Basic, forth, lisp...)
Demo using FabGL Library (VGA Controller, PS/2 Keyboard Controller, Graphics Library, Sound Engine, Game Engine and ANSI/VT Terminal for the ESP32)
Используя эти прототипы можно сделать эмулятор "Радио-86РК"...
Это я все перепробовал. и ещё на STM32F407 на 4 " ЛСД повторил Спектрум. но это все спекки, а Радио 86РК нет.

Хотя ЕСП 01 тоже уже заказал, может к концу апреля придут, придется осваивать его. Сам я не сильно программист, больше по железу,
могу на Ассемблере все, но вот в совремменных С++ не очень получается понять.

Давно хотел такое же для 86РК , ещё лучше было бы на ЛСД дисплее 3... 4 " . Тут я ещё увидел, что прошивку можно загружать по WiFi, а может и с
СД карты можно обновлять ? тогда можно было бы универсальный емулятор всех Ретро компов сделать, меняя прошивку на одном и том же процессоре (STM32 или ESP32) тем более половина модулей в них одна и та же.

Ещё на ЕСП есть эмулятор БК 010, тоже интересно. но программ на СД почти нет для него.
You do not have the required permissions to view the files attached to this post.
User avatar
askfind
Devil
Posts: 798
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by askfind »

Damir wrote:
Это я все перепробовал. и ещё на STM32F407 на 4 " ЛСД повторил Спектрум. но это все спекки, а Радио 86РК нет.


Хотя ЕСП 01 тоже уже заказал, может к концу апреля придут, придется осваивать его. Сам я не сильно программист, больше по железу,
могу на Ассемблере все, но вот в совремменных С++ не очень получается понять.

Давно хотел такое же для 86РК , ещё лучше было бы на ЛСД дисплее 3... 4 " . Тут я ещё увидел, что прошивку можно загружать по WiFi, а может и с
СД карты можно обновлять ? тогда можно было бы универсальный емулятор всех Ретро компов сделать, меняя прошивку на одном и том же процессоре (STM32 или ESP32) тем более половина модулей в них одна и та же.
Мой вердикт - использовать шаблон Arduino ESP32 DevKit и перенести исходные файлы проект от esp8266 РК-86.

esp8266 - устаревший микроконтроллер. Лучше и проще ESP32!
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by Damir »

В скрипте 'boot.sh'
Есть фрагмент для прошивки esp8266:
А можно про прошивку есп8266 поподробнее !
если придет ЕСП 01 , мне придется с эти разбираться, и пока не очень понятно ... немного похоже на прошивку ЕСП32 ?

у меня есть ESP-IDF 4/4 CMD, можно ли его использовать.

а программы автора в чем собирать ( есть VSC Platformio)?

не совсем пока понял, как прошивать bin файлы , у автора их 15 папок, в каждой по 3 - 4 файла , с адресом прошивки ...
надо только из 1 папки прошивать или их все ? там ещё есть fota.bin - его по каким адресам ?
User avatar
askfind
Devil
Posts: 798
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by askfind »

Damir wrote:

не совсем пока понял, как прошивать bin файлы , у автора их 15 папок, в каждой по 3 - 4 файла , с адресом прошивки ...
надо только из 1 папки прошивать или их все ? там ещё есть fota.bin - его по каким адресам ?
Версии прошивок здесь -
https://github.com/klad-me/RK8266/tree/master/builds

Бинарные файлы и адреса во flash esp8266 из txt-файла https://github.com/klad-me/RK8266/blob/ ... layout.txt в проекте :

Code: Select all

Адрес		Размер		Описание
0x00000		4k		Загрузчик
0x01000		60k		Эмулятор
0x10000		256k		Приложение для WiFi
0x50000		64k		Справка
0x60000		64k		Буфер для записи на магнитофон
0x70000		48k		Файловая система для HTTP-сервера
0x7C000		16k		Системная область SDK
0x80000		до конца	Flash-диск
Выполнить команду:

Code: Select all

 ./esp8266/xtensa-lx106-elf/bin/esptool.py	\
    --port /dev/ttyUSB0 			\
    write_flash					\
    --flash_size 8m				\
    --flash_freq 20m				\
    --flash_mode dio				\
    0x00000	boot-2apps/out/boot.bin		\
    0x01000	EmuAPP/out/emu-0x00000.bin	\
    0x10000	WiFiAPP/out/wifi.1.bin		\
    0x50000	help/help.bin			\
    0x70000	WiFiAPP/httpfs/httpfs.bin
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
askfind
Devil
Posts: 798
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by askfind »

Damir wrote:

не совсем пока понял, как прошивать bin файлы , у автора их 15 папок, в каждой по 3 - 4 файла , с адресом прошивки ...
надо только из 1 папки прошивать или их все ? там ещё есть fota.bin - его по каким адресам ?
Версии прошивок здесь -
https://github.com/klad-me/RK8266/tree/master/builds

Бинарные файлы и адреса во flash esp8266 из txt-файла https://github.com/klad-me/RK8266/blob/ ... layout.txt в проекте :

Code: Select all

Адрес		Размер		Описание
0x00000		4k		Загрузчик
0x01000		60k		Эмулятор
0x10000		256k		Приложение для WiFi
0x50000		64k		Справка
0x60000		64k		Буфер для записи на магнитофон
0x70000		48k		Файловая система для HTTP-сервера
0x7C000		16k		Системная область SDK
0x80000		до конца	Flash-диск
Выполнить команду:

Code: Select all

 ./esp8266/xtensa-lx106-elf/bin/esptool.py	\
    --port /dev/ttyUSB0 			\
    write_flash					\
    --flash_size 8m				\
    --flash_freq 20m				\
    --flash_mode dio				\
    0x00000	boot-2apps/out/boot.bin		\
    0x01000	EmuAPP/out/emu-0x00000.bin	\
    0x10000	WiFiAPP/out/wifi.1.bin		\
    0x50000	help/help.bin			\
    0x70000	WiFiAPP/httpfs/httpfs.bin
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by Damir »

Cпасибо, стало понятно. Там оказывается тексты в кодировке другой, поэтому я ничего не видел.

а ещё про это можно обьяснить, как сделать :
использовать шаблон Arduino ESP32 DevKit и перенести исходные файлы проект от esp8266 РК-86.
User avatar
askfind
Devil
Posts: 798
Joined: 04 Jan 2016 09:15
Location: Russia, S.- Peterburg

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by askfind »

Damir wrote:Cпасибо, стало понятно. Там оказывается тексты в кодировке другой, поэтому я ничего не видел.
а ещё про это можно обьяснить, как сделать :
использовать шаблон Arduino ESP32 DevKit и перенести исходные файлы проект от esp8266 РК-86.
Это работа программиста. Неделю, другую необходимо заниматься проектом.

Вы предлагаете вместе сделать?

Пишите сообщение в личку. Готов в качестве консультанта-наставника стать для планирования и переноса файлов из esp8266.
"Ученье свет, а неученье — тьма. Дело мастера боится, и коль крестьянин не умеет сохою владеть — хлеб не родится." (С)
User avatar
Lavr
Supreme God
Posts: 16680
Joined: 21 Oct 2009 08:08
Location: Россия

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by Lavr »

Джентльмены, а подскажите мне, почему это называется "Аппаратный эмулятор" ? :roll:
Слежу за этой веткой... так на мой взгляд это - "программный эмулятор" на подходящем по скорости железе...

Где-то у нас была ветка типа "эмулятор Радио-86РК на PIC" и на Atmega вроде был проект,
так никто эти эмуляторы "аппаратными" не называл... :-?
iLavr
Damir
Fanat
Posts: 88
Joined: 21 Feb 2017 06:54
Location: Казань

Re: Аппаратный эмулятор Радио-86РК на ESP8266

Post by Damir »

Наконец и я собрал этот эмулятор Радио 86РК. За лето пришли 3 платки ESР8266, осенью закончились садово-огородные заботы и появилось время проверить платки в деле.
Сразу напишу что все платки - ESP-01, ESP-D1 mini, ESP Nodemcu на макете заработали без проблем. Прошиваются программкой ESPFlashDownloadTool_v3.4 .
IMG_17.JPG
Самой удобной оказалась WEMOS D1mini, её я и использовал в дальнейшем.
wemos-pins-2.jpg
Получился компактный эмулятор со встроенным MicroUSB интерфейсом для програмирования и питания:
IMG_1788.JPG


Элемент 2И-НЕ использовал КР1533ЛА3, она хорошо работает при напряжении питания 3,3 В.
(на макете попробовал 555ла3 - тоже работает при 3,3В.) Две клавиатуры PS/2, которые у меня есть, тоже замечательно работают при питании 3,3В. Ещё есть клавиатура USB - она тоже заработала через стандартный переходник. Потребляет эмулятор примерно 65ма, при включении Wi-Fi потребление возрастает до 95ма.
Прошивал для теста разные версии прошивок, все работают, кроме 23 сборки. Она у меня не пошла, работает до момента записи во флешку. Например запись на магнитофон - файл записывается, в каталоге появляется имя, при попытке чтения, иногда и раньше, все виснет и не работает совсем, приходиться аж заново прошивать контроллер. Я использовал 21 сборку, она работает стабильно, файлы на флешку записываются и читаются нормально, и из Монитора, и из Бейсика и из Редактора. Но есть недоработка при чтении длинных файлов более 2 К - буфер магнитофона налезает в область знакогенератора и портится экран - видно что что-то загрузилось, но прочитать ничего не возможно. Видимо все таки неправильно использовать области ПЗУ для записи блоков знакогенератора.
Запись на магнитофон происходит штатно по директиве «О,адрН,адрК». Чтение происходит следующим образом - по директиве «I», при нажатии на ВК ничего не происходит, надо нажать F5, зайти в файловый менеджер, выбрать «Магнитофонные записи» , из каталога выбрать нужный файл, и тогда он загружается блоками по указанному в заголовке файла адресу, выводит НачА, КонА, и КС. Примерно то же самое надо проделать и при загрузке файлов в Бейсике и Редакторе. Если с ПК поместить в каталог .bin файл без заголовка- то эмулятор показывает, что грузит, пересчитывает на экране блоки, но куда загрузилось и как найти данные неизвестно. Утилиты, Игры и Программы грузятся и стартуют нормально. ещё в эмуляторе есть возможность скачать образ файловой системы, но у меня ни разу не получилось это, пишет, что осталось до конца загрузки примерно 1 час. и ничего не происходит очень долго. Очень не хватает эмуляции директивы «R», можно выделить для неё из 3,5 Мб флешки 32 Кб и адресовать по адресам регистров директивы «R», и грузить в память. В неё можно будет грузить с ПК любые файлы и вводить в память РК по директиве «R».

ПС. Попробовал прошить представленные здесь прошивки «СПЕЦИАЛИСТа», ничего не пошло. выводить на экран фразу «ПРОГРАММА», при нажатии на Ф7 начинает мигать курсор и все, далее ничего не происходит. Но зато работает Wi-Fi, при нажатии на Ф12 идет на страничку поиска Wi-Fi сети. Жаль, если довести до уровня эмулятора РК86, хорошая была бы штука.
You do not have the required permissions to view the files attached to this post.