Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Радио 86 РК на STM32

Ср май 23, 2012 11:42:33

Cтарым давним временам посвящается, а также всем тем кто это помнит.

Вобщем в дань уважения этому компу решил реанимировать сие чудо как говорится все в одном флаконе. Был создан проект, применен проц stm32f103ret6. По идее проект ожил, на данный момент осуществляется полная эмуляция к580 вм80, контроллер клавиатуры и видеочасть. Также работает монитор. Клавиатура присоединена PS/2 в качестве вывода информации - телек.

Собственно для чего все это нужно. Ищутся сомышленники, и помошники в реализации отладки и отлавливания косяков.
Что не доделано. Первое - нужно дорабатывать эмулятор в области вывода видео (обновление экрана сейчас 2 кило за 3 секунды) думаю поправимо. Второе, необходимо поправить сканкоды клавы. Третье (это уже сам) хочу доделать файловую систему, чтение запись сд карточки. И еще, нужно добавить в знакогенератор русские буквы. Заместо них щас выводятся буржуйские строчные.
Пишем пожалуйста пожелания. Схема будет в ближайшее время. Исходники дам только особо одаренным лицам после личной беседы ))). По идее проект прост, главное желание и время на его завершение (доработку).
И пожалуйста, оставьте критику на потом. Тема только зарождается посему не надо рубать с плеча. Хотел запостить тему на ZX PK да там похоже форум накрывается.

Re: Радио 86 РК на STM32

Ср май 23, 2012 12:38:06

Эх ностальгия. Собирал 86 РК когда-то. Записался бы в помощники, да времени и так не хватает. Может этот проект чем-то поможет http://www.davidcranor.com/David_Cranor ... ent.html#2

Re: Радио 86 РК на STM32

Ср май 23, 2012 12:48:53

угу, финнерклиент как раз таки был взят за основу. Умело был пришит эмулятор рк86, многое выкинуто за ненадобностью, и вот он, рк86.

Re: Радио 86 РК на STM32

Ср май 23, 2012 13:24:58

Очень интересная тема, я находил похожее

http://www.exploringpic32.com/ZX.html (на freertos)
http://geoffg.net/MaximiteDesign.html

Может zx лучше? он посовременее)

или cp/m
http://spritesmods.com/?art=avrcpm&page=2

Re: Радио 86 РК на STM32

Ср май 23, 2012 13:46:55

спектрум конечно интересно. но столько их че то развелось. Да и мне кажется эмулить экран спектрума - мозг свернуть можно. ССылка первая хороша, надо смотреть спасибо.

Re: Радио 86 РК на STM32

Ср май 23, 2012 14:42:00

stm32 или ARM имеют только внутреннюю память программ - их применение в такого вида конструкциях будет ограничено "интеллектуальной периферией"... или исключительно фиксированными программами обработки каких-либо данных - гонять ПЗУ EEPROM так же как и обычную ОЗУ затруднительно из-за ограниченного количества циклов стирание/запись :cry:

Re: Радио 86 РК на STM32

Ср май 23, 2012 14:48:37

Я не понял насчет видео. Стандартный видеовыход?
На чем написано? (в какой среде?).
Я думал сам над таким эмулятором на 1 чипе-процессоре с подключаемой пс2 клавой и стандартным видеовыходом или SVGA.

Re: Радио 86 РК на STM32

Ср май 23, 2012 14:49:20

Предлагаю ещё одно усложнение, полезное впрочем. В №№ 6 и 7 за 1989год было описано подключение вв51 к компьютерам типа рк86 (можно и к микро 80 наверное) неплохо бы это тоже впихнуть в проект.
Ещё : а почему бы не МИКРО-80 ? Он же лучше, чем рк, проблема была лишь в большем количестве корпусов ИМС и в сложности наладки, но в современной реализации эта проблема изначально отсутствует. А ещё публиковался "монитор" для микро80, делающий полностью совместимым всё ПО для них. Так что, полагаю лучше впихивать туда именно микро-80. Тем более, что можно будет ещё и CP/M запускать. И не придётся делать :
masster79 писал(а):... Третье (это уже сам) хочу доделать файловую систему, чтение запись сд карточки...

, ибо файловая в CP/M то уже есть, только вот устройство "SD-card" приделать как ещё диск.
Последний раз редактировалось petrenko Ср май 23, 2012 15:07:42, всего редактировалось 1 раз.

Re: Радио 86 РК на STM32

Ср май 23, 2012 14:58:07

BOB51 писал(а):stm32 или ARM имеют только внутреннюю память программ - их применение в такого вида конструкциях будет ограничено "интеллектуальной периферией"... или исключительно фиксированными программами обработки каких-либо данных - гонять ПЗУ EEPROM так же как и обычную ОЗУ затруднительно из-за ограниченного количества циклов стирание/запись :cry:

Может имеется в виду эмуляция 8080 ? То есть во внутреннем ПЗУ будет именно программа эмуляции. Эмулирующий проц. под управление внутренней программы выставляет на порт адрес команды из якобы регистра счётчика, получает из внешней ОЗУ через другой порт код команды(8080), по case выбирает подпрограммку эмуляции именно полученного кода - и так далее по циклу.
^_Вот написал и только потом заметил, что мы с Вами оба невнимательно прочли первое сообщение:
masster79 писал(а):... Был создан проект, применен проц stm32f103ret6. По идее проект ожил, на данный момент осуществляется полная эмуляция к580 вм80 ....
Последний раз редактировалось petrenko Ср май 23, 2012 15:12:01, всего редактировалось 1 раз.

Re: Радио 86 РК на STM32

Ср май 23, 2012 15:11:04

BOB51 писал(а):stm32 или ARM имеют только внутреннюю память программ - их применение в такого вида конструкциях будет ограничено "интеллектуальной периферией"... или исключительно фиксированными программами обработки каких-либо данных - гонять ПЗУ EEPROM так же как и обычную ОЗУ затруднительно из-за ограниченного количества циклов стирание/запись :cry:

слегка не понял... ну ладно. Постараюсь объяснить. Вся память эмулируемого РК прописана у меня одним 32х килобайтным буфером в озу МК, коего там 64 кило. ПЗУ прописана во флэш контроллера, да и монитор работает только на чтение. Обращение к портам "вылавливается" программно. Какие проблемы имел автор поста - непонятно )).

Re: Радио 86 РК на STM32

Ср май 23, 2012 15:12:00

makser писал(а):Я не понял насчет видео. Стандартный видеовыход?
На чем написано? (в какой среде?).
Я думал сам над таким эмулятором на 1 чипе-процессоре с подключаемой пс2 клавой и стандартным видеовыходом или SVGA.

Да, стандартный видеовыход. стандарт ntsc.

Re: Радио 86 РК на STM32

Ср май 23, 2012 15:18:42

petrenko писал(а):Предлагаю ещё одно усложнение, полезное впрочем. В №№ 6 и 7 за 1989год было описано подключение вв51 к компьютерам типа рк86 (можно и к микро 80 наверное) неплохо бы это тоже впихнуть в проект.
Ещё : а почему бы не МИКРО-80 ? Он же лучше, чем рк, проблема была лишь в большем количестве корпусов ИМС и в сложности наладки, но в современной реализации эта проблема изначально отсутствует. А ещё публиковался "монитор" для микро80, делающий полностью совместимым всё ПО для них. Так что, полагаю лучше впихивать туда именно микро-80. Тем более, что можно будет ещё и CP/M запускать. И не придётся делать :
masster79 писал(а):... Третье (это уже сам) хочу доделать файловую систему, чтение запись сд карточки...

, ибо файловая в CP/M то уже есть, только вот устройство "SD-card" приделать как ещё диск.

Вот здесь маленькая загвоздка. Первое - ограничение памяти срам.Внешнюю память прилепить можно, но повторяемость устройства пропадет процентов на 100. Контроллер с больше срам? - кирпич более 100 ног, да и цена возрастает. По поводу файловой оболочки - это самое интересное. СР-М отдыхает )). А вот насчет последовательного порта были мысли. У РК остались неиспользоваными команды IN OUT их можно и задействовать под усарт микроконтроллера. А если честно - будет упор под максимальную совместимость с микрошей, на коего софта навалом.
Забыл упомянуть про таймер ви53. Он тоже пока не отлавливается, но на заметке.

Re: Радио 86 РК на STM32

Ср май 23, 2012 15:30:19

CP/M может и поотдыхать, но только если наша система будет с ней совместима, мы получим доступ к многим готовым программам, что есть хорошо. Теперь про разделение/неразделение адресных пространств ввода/вывода и памяти. МИКРО-80 имеет преимущество, IMHO , также как и ЮТ-88 именно потому, что применение команд IN и OUT предпочтительнее.
Так что давайте лучше эмулировать МИКРО-80 под управление "монитора, совестимого с РК"
Что то закрадываются сомнения, что все друг друга правильно понимают.
Хочу уточнить у TopickStarter-а, а Вы системную шину как делаете ? Поподробней, ежели то не очень секрет, пожалуйста.

Re: Радио 86 РК на STM32

Ср май 23, 2012 15:35:20

Выбор несовсем удачный.
Съэкономить копейки, головняков на тысячи рублев.

Берите не STM32F103 , А LPC1785 к нему SDRAMку самую мелкую, SDCARD для залива-слива программ, далее в нем есть LCD контроллер. Собсно ставите на выходе видеоDAC - вот вам полностью стандартное и без ужимок VGA. Хотя, можете тот же TFT воткнуть - будет у вас Радио86-геймпад -))
Видеодак чтука дорогая. Можно попробовать R2R -))) Не голый ессно, а с усилителями-повторителями. Далее - ОУ на такие частоты стоят тоже не условно. Но условно стоят спец микросхемы-повторители для VGA разветвителей - берите на заметку.

Re: Радио 86 РК на STM32

Ср май 23, 2012 15:35:55

BOB51 писал(а):stm32 или ARM имеют только внутреннюю память программ

Это сейчас что и про что было ? :shock:

Re: Радио 86 РК на STM32

Ср май 23, 2012 15:39:01

masster79 писал(а):Вот здесь маленькая загвоздка. Первое - ограничение памяти срам.Внешнюю память прилепить можно, но повторяемость устройства пропадет процентов на 100. Контроллер с больше срам? - кирпич более 100 ног, да и цена возрастает. По поводу файловой оболочки - это самое интересное. СР-М отдыхает )).

Нафиг SRAM. стоит дорого, размер мелкий, ног много.
могу пальцем показать, где есть 8Mb SDRAM в розницу за ~70р. Да и на каждом углу есть. или 2Мb в розницу за ~40р. но она редкая, плохо с повторяемостью -))
LPC1785 с SDRAM контрллером и видеоконтроллером стоит в МТ-систем менее 250р.

Ну, плата ЛУТная тут врядли или для очень упорных джедаев, с пайкой куда более демократично.

Re: Радио 86 РК на STM32

Ср май 23, 2012 15:49:56

Извините, что спешу, но дюже любопытно, потому и повторяю вопрос :
"Что то закрадываются сомнения, что все друг друга правильно понимают.
Хочу уточнить у TopickStarter-а, а Вы системную шину как делаете ? Поподробней, ежели то не очень секрет, пожалуйста."
И ещё вопрос, у Вас при эмуляции в среднем по сколько команд эмулируещего приходится на одну эмулируемую ?

Re: Радио 86 РК на STM32

Ср май 23, 2012 15:54:12

petrenko писал(а):И ещё вопрос, у Вас при эмуляции в среднем по сколько команд эмулируещего приходится на одну эмулируемую ?

При "200…300 тыс. оп/c на частоте 2 МГц." у Радио86 и 150млн оп/c на 120Мгц у кортекса врядли будут какие то проблемы -))

Re: Радио 86 РК на STM32

Ср май 23, 2012 15:56:40

Чистое любопытство. И про системную шину тоже любопытно.

Re: Радио 86 РК на STM32

Ср май 23, 2012 15:57:08

petrenko писал(а):CP/M может и поотдыхать, но только если наша система будет с ней совместима, мы получим доступ к многим готовым программам, что есть хорошо. Теперь про разделение/неразделение адресных пространств ввода/вывода и памяти. МИКРО-80 имеет преимущество, IMHO , также как и ЮТ-88 именно потому, что применение команд IN и OUT предпочтительнее.
Так что давайте лучше эмулировать МИКРО-80 под управление "монитора, совестимого с РК"
Что то закрадываются сомнения, что все друг друга правильно понимают.
Хочу уточнить у TopickStarter-а, а Вы системную шину как делаете ? Поподробней, ежели то не очень секрет, пожалуйста.

ОК. Системная шина эмулируется вылавливанием команд, обращающимся к записи/чтению по адресам. К примеру, запрашивает сам эмулятор адрес 0х8001 идем на подпрограмму, которая отдает сканкод клавы. Так работает все все. По сути можно таким макаром заэмулить практически все платформы, разница в обработке адресов. К рк привязался - так как в детстве знал всю адресацию его наизусть. А вот адресацию микро 80 вообще не знаю, надо копать архивы. С СР/М конечно все гладко, понимаю, куча софта, но опять же вписываемся в ограниченный объем памяти озу самого мк.
Насчет команд IN/OUT в том то и дело, что рк их не пользовал, поэтому хочется уже использовать их под себя. Понимаю никакой совместимости быть не может, но и опять же, в те времена народ и не мечтал пользовать аппаратный SPI USART и крутой ацп.

Код:
unsigned char RD_BYTE(unsigned int addr)
{
   unsigned int key;
   unsigned char ch;
        int i;



   if (addr==0x8002) {
                  //клавиатура
                     }

   if (addr==0x8001) {
      // отдаем сканкод
                     }

   //и так можно перебирать всю адресную шину.....;

   return mem[ addr ];
}

пока писал меня опередили ))))
Ответить