1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92
1

Эмулятор ZX Spectrum на STM32f4

21.10.2013, 20:38. Показов 247658. Ответов 340
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написал эмулятор процессора Z80. Использовал отладочную плату STM32f4-discovery, к ней подключен LCD по FSMC. К PA[0-4](входы) и PC[0-7](выходы) подключается стандартная спектрумовская клавиатура (у меня ее правда нет, поэтому пока просто замыкаю пины проводком :)). Пока не реализован тайминг выполнения команд и нормальные прерывания от дисплея (возможно на нормальный вывод на LCD не хватит ресурсов). Но заветная надпись....


вот она!!!
Т.к. это мой первый проект на ARM буду рад услышать критику или предложения, ну и вопросы.


[34.63 Кб]
1
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2013, 20:38
Ответы с готовыми решениями:

Нужно настроить эмулятор мобильного телефона MEMU чтобы приложения не видели что это эмулятор
Нужно чтобы сторонние приложения воспринимали эмулятор как реальное устройство без root прав

Qt spectrum
Доброго времени суток. Возникли сложности с пониманием готового кода в Qt примерах. Буду очень...

Audio Spectrum
Всем привет, пишу аудио плеер (WinForm). Встал вопрос как сделать Spectrum, кто знает скажите...

Игры на ZX-Spectrum
У кого было это чудо? :) И любимые игры на нем?

340
Oxford
21.10.2013, 20:47 2
крут
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
21.10.2013, 21:01 3
Цитата Сообщение от Koryim
Т.к. это мой первый проект на ARM буду рад услышать критику или предложения, ну и вопросы.
Неужели это первый проект? Обалденно.

Предложение: Spectrum - не Spectrum, если нет звука :-) К счастью, на F4-Dyscovery есть разные звуковые возможности (GPIO, DAC, audyo-codec).
0
Oxford
21.10.2013, 21:12 4
я вот денди бы хотел или сегу есть нет проекты работающие
Хотелось бы сделать Dendy на STM и дисплей 5 дюймов в виде джойстика с аккумом. Переносная типо консолька.)) Интересно я вот думаю если взять денди оригинал и реконструировать ее, т.е. CPU оригинал, а графику перенаправить на дисплей. Плату свою замастырить, а картриджи как то эмулировать.
0 / 0 / 0
Регистрация: 24.02.2013
Сообщений: 39
21.10.2013, 23:18 5
Огромное спасибо! Сам спектрум не очень интересен, но есть в наличии куча измерительных приборов на базе Z80, которым замена мозгов на АРМ, с сохранением возможности исполнения оригинальной прошивки, очень полезна будет!
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
21.10.2013, 23:30 6
Цитата Сообщение от Koryim
подключается стандартная спектрумовская клавиатура (у меня ее правда нет, поэтому пока просто замыкаю пины проводком :)).
Слышал, что многие PS2 клаву подключают :) .
А программы с USB флэшки загружать умеет? Обожаю RiverRaid ...
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
21.10.2013, 23:34 7
Цитата Сообщение от Koryim
Написал эмулятор процессора Z80.
Что прям с нуля?..... Как он работает, как транслятор команд Z80 в функции ARM-а?....

Т.е. надо в памяти контроллера завести переменные соответствующие РОН-ам процессора Z80, и потом с помощью транслятора команд обрабатывать эти регистры... так?

А сама структура пространства памяти спектрума тоже организована выделенными областями в ROM контроллера?...
т.е. это 16кб системы, 48кб оперативы... так?

И экран как обновляется, самим же контроллером по прерыванию с определенной частотой, например 50Гц?
Какая частота контроллера?
0
hosh
22.10.2013, 02:23 8
+2001000 !!!
Давай ещё TR-DOS через SDIO :)
Зачот однозначно.... poke,peek,порты
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
22.10.2013, 02:31 9
как ща помню..... в слепую набирал.....

10 for z=0 to 20
20 beep .01,z
30 next z
40 goto 10
0
0 / 0 / 0
Регистрация: 06.11.2009
Сообщений: 155
22.10.2013, 02:55 10
Респект.
Нарисуйте в сообщесто полноразмерный триллер о создании девайсины.
Думаю, всем интересно будет.
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
22.10.2013, 03:40 11
Цитата Сообщение от OtyxPM
Spectrum - не Spectrum, если нет звука :-)
а так же если не эмулятся времянки экрана и всё такое%)
Цитата Сообщение от khosh
Сам спектрум не очень интересен, но есть в наличии куча измерительных приборов на базе Z80, которым замена мозгов на АРМ, с сохранением возможности исполнения оригинальной прошивки, очень полезна будет!
давным давно есть открытые, годами отточеные библиотеки эмуляции z80, в которых ТАКИЕ нюансы учтены, что ужас. а самописная вчера библиотека для серьезных девайсов - зло злейшее. на моей памяти было несколько попыток написания таких эмуляторов, и КАЖДАЯ лажала будь здоров.
0
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 214
22.10.2013, 07:42 12
Цитата Сообщение от Koryim
Написал эмулятор процессора Z80. Использовал отладочную плату STM32f4-discovery, к ней подключен LCD по FSMC. К PA[0-4](входы) и PC[0-7](выходы) подключается стандартная спектрумовская клавиатура (у меня ее правда нет, поэтому пока просто замыкаю пины проводком :)). Пока не реализован тайминг выполнения команд и нормальные прерывания от дисплея (возможно на нормальный вывод на LCD не хватит ресурсов). Но заветная надпись....
Вложение:
DSC_04311.jpg
вот она!!!
Т.к. это мой первый проект на ARM буду рад услышать критику или предложения, ну и вопросы.
DSC_04321.jpg

Sorce.rar
Молодец, давно вынашивал эту идею, руки не доходили, просмотрю исходники.
Я думал прикручивать к обычному телику, даже писал видеодрайвер с выводом из обычного порта 64 цвета стандартного RGB.
Так же вижу, что порт версии 48, но в принципе можно и полнофункциональную версию 128 с эмулятором бета диска и ауди чипа (2 канала ЦАП есть).
Пока такие мысли.
Вообще идея карманного спектрума очень занятна. Игр то написано за 10тыс, и они лучше чем нынешние.

ps
Вам на zx.pk.ru надо. Там это встретят воодушевленно.
Вон некий Лисицин обкатал там свой проект спека на 3х! атмег128 и в РАДИО напечатался.
А Ваш проект на ОДНОЙ микросхеме вообще фурор вызовет.
0
0 / 0 / 0
Регистрация: 22.09.2012
Сообщений: 300
22.10.2013, 08:40 13
Нужно срочно поправить левые названия типа переменных (jamp, picsel и прочий рунглиш) на правильные англоязычные, добавить вменяемую лицензию и выложить на github :)
Комментарии бы тоже желательно на английский перевести, но это не так критично.
Тогда возможно увидим развитие в что-то большее.

p.s. Единственно ромы надо бы отдельно, т.к. легально их можно не все версии распространять, в частности на оригинальный 48k статус не известен (скорее всего всем уже все равно, но лучше утрясти это заранее). Например Amstrad версии rom можно распространять и модифицировать, если не изменяется копирайт, только для software эмуляторов и без коммерческой выгоды.
0
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 214
22.10.2013, 09:09 14
Вот еще где то взял, не помню.

http://gfile.ru/a22Qy
0
1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92
22.10.2013, 20:13 15
Цитата Сообщение от moksir
Вот еще где то взял, не помню.

http://gfile.ru/a22Qy
Не ну это пока для меня темный лес.

Цитата Сообщение от moksir
Молодец, давно вынашивал эту идею, руки не доходили, просмотрю исходники....

ps
Вам на zx.pk.ru надо. Там это встретят воодушевленно.
Вон некий Лисицин обкатал там свой проект спека на 3х! атмег128 и в РАДИО напечатался.
А Ваш проект на ОДНОЙ микросхеме вообще фурор вызовет.
До того проекта мне еще далеко, Лисицин наверняка потратил не один день на создание своего проекта. А на тот сайт я пробивался пробивался да и забросил это дело.

Цитата Сообщение от Ymk
давным давно есть открытые, годами отточеные библиотеки эмуляции z80, в которых ТАКИЕ нюансы учтены, что ужас. а самописная вчера библиотека...
Так это не для каких интересов, а просто для разминки мозга (хобби)!

Цитата Сообщение от ShodS
Что прям с нуля?..... Как он работает, как транслятор команд Z80 в функции ARM-а?....
Не ну не прям с нуля, посмотрел как декодировать команды, ну и так интернеты почитал. Работает просто в памяти организовано несколько массивов ROM, ROM (видео и обычное ОЗУ), читаем код операции, декодируем, выполняем, приращиваем счетчик команд (при необходимости), и так пока программа не кончится :) Экран не обновляется, при записи в видео ROM выводим сразу на экран. Частота 165МГц, вроде, по таймингам выполнения пока не смотрел. С экраном нужно однозначно что то решать, он пока самое медленное звено. Возможно нужен еще один проц :)

Цитата Сообщение от OtyxPM
Неужели это первый проект? Обалденно.
Oxford писал(а):
крут
Всем спасибо. Вот допилю клаву, потом и звуком займусь с таймингами.
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
22.10.2013, 21:18 16
Цитата Сообщение от Koryim
Экран не обновляется, при записи в видео ROM выводим сразу на экран.
Дык этож не правильно... нужно завести таймер который будет щелкать раз в 20мс и вызывать процедуру обновления всего экрана..... (думаю это будет эффективнее чем сейчас)
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
22.10.2013, 21:46 17
Цитата Сообщение от ShodS
нужно завести таймер который будет щелкать раз в 20мс и вызывать процедуру обновления всего экрана..... (думаю это будет эффективнее чем сейчас)
А ещё эффективнее - поручить DMA перекидывать видеомассив в LCD. А процессор сможет в это время заниматься вычислениями.
0
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 122
23.10.2013, 02:35 18
Цитата Сообщение от OtyxPM
Цитата Сообщение от Koryim
Т.к. это мой первый проект на ARM буду рад услышать критику или предложения, ну и вопросы.
Неужели это первый проект? Обалденно.

Предложение: Spectrum - не Spectrum, если нет звука :-) К счастью, на F4-Dyscovery есть разные звуковые возможности (GPIO, DAC, audyo-codec).
Для 48к хватит и 1-битного звука (DAC не нужен).
0
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 122
23.10.2013, 02:42 19
Тут такое дело... на Nintendo DS есть эмулятор спектрума 128, который эмулирует и звук и TR-DOS и всё тайминиги.
Причем без пропусков кадров, один из самый точных и четких эмуляторов спектрума.

Так вот, процессор там: ARM946E-S — 67 Мгц + сопроцессор ARM7TDMI — 33 МГц.
Сорцы закрыты, но автор известный спектрумист и достаточно адекватен, думаю с ним можно на тему сабжа пообщаться, думаю он много полезного может рассказать...

А еще приятель 10 лет назад писал эмулятор Спектрума под Palm с 16 мгц процессором...
В общем думаю что и F3 будет более чем достаточно.
Вопрос только в том сколько ресурсов отьедает работа с LCD экраном.
0
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 122
23.10.2013, 02:49 20
Цитата Сообщение от Koryim
стандартная спектрумовская клавиатура (у меня ее правда нет, поэтому пока просто замыкаю пины проводком :))
Если есть тачскрин на борде, то идеальный вариант - виртуальная клавиатура.

Кстати, бордюр эмулируется?
0
23.10.2013, 02:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
23.10.2013, 02:49
Помогаю со студенческими работами здесь

bass spectrum
Зашкаливает спектрум, смена высоты не помогает, какая команда отвечает за "чувствительность"...

Кассеты / ZX Spectrum
Доброго времени суток! Простите за дебильный вопрос, но всё же: можно ли подружить вот такой КПК...

Spectrum bass.dll
Доброе утро всем. Подскажите кто знает. "использую фоновую картинку на форме" вот и хотелось бы его...

ZX Spectrum на AVR, V2_0
Здравствуйте! Представляю свою новую разраюотку - AVR ZX Spectrum V2_0 Видео:...

FIR and spectrum tools
afrtohtcoefs -program for converting AFR coeffs to h(t) coeffs for FIR // afrtohtcoefs.cpp :...

Compute and plot the spectrum
A discrete time “unit impulse” is defined by the time signal δ = 1, if n = 0 δ = 0, if otherwise...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Закрытая тема Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru