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

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

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

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


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


[34.63 Кб]
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.10.2013, 20:38
Ответы с готовыми решениями:

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

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

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

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

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

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

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

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

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
Респект.
Нарисуйте в сообщесто полноразмерный триллер о создании девайсины.
Думаю, всем интересно будет.
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
22.10.2013, 03:40
Цитата Сообщение от OtyxPM
Spectrum - не Spectrum, если нет звука :-)
а так же если не эмулятся времянки экрана и всё такое%)
Цитата Сообщение от khosh
Сам спектрум не очень интересен, но есть в наличии куча измерительных приборов на базе Z80, которым замена мозгов на АРМ, с сохранением возможности исполнения оригинальной прошивки, очень полезна будет!
давным давно есть открытые, годами отточеные библиотеки эмуляции z80, в которых ТАКИЕ нюансы учтены, что ужас. а самописная вчера библиотека для серьезных девайсов - зло злейшее. на моей памяти было несколько попыток написания таких эмуляторов, и КАЖДАЯ лажала будь здоров.
0
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 214
22.10.2013, 07:42
Цитата Сообщение от 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
Нужно срочно поправить левые названия типа переменных (jamp, picsel и прочий рунглиш) на правильные англоязычные, добавить вменяемую лицензию и выложить на github :)
Комментарии бы тоже желательно на английский перевести, но это не так критично.
Тогда возможно увидим развитие в что-то большее.

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

http://gfile.ru/a22Qy
0
1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92
22.10.2013, 20:13
Цитата Сообщение от 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
Цитата Сообщение от Koryim
Экран не обновляется, при записи в видео ROM выводим сразу на экран.
Дык этож не правильно... нужно завести таймер который будет щелкать раз в 20мс и вызывать процедуру обновления всего экрана..... (думаю это будет эффективнее чем сейчас)
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
22.10.2013, 21:46
Цитата Сообщение от ShodS
нужно завести таймер который будет щелкать раз в 20мс и вызывать процедуру обновления всего экрана..... (думаю это будет эффективнее чем сейчас)
А ещё эффективнее - поручить DMA перекидывать видеомассив в LCD. А процессор сможет в это время заниматься вычислениями.
0
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 122
23.10.2013, 02:35
Цитата Сообщение от 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
Тут такое дело... на 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
Цитата Сообщение от Koryim
стандартная спектрумовская клавиатура (у меня ее правда нет, поэтому пока просто замыкаю пины проводком :))
Если есть тачскрин на борде, то идеальный вариант - виртуальная клавиатура.

Кстати, бордюр эмулируется?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.10.2013, 02:49
Помогаю со студенческими работами здесь

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

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

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

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

ZX Spectrum на AVR, V2_0
Здравствуйте! Представляю свою новую разраюотку - AVR ZX Spectrum V2_0 Видео: http://www.youtube.com/watch?v=y4JQdIvJunI Схема,...


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

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

Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru