Форум программистов, компьютерный форум, киберфорум
Микроконтроллеры ARM, Cortex, STM32
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.80/1311: Рейтинг темы: голосов - 1311, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92

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

21.10.2013, 20:38. Показов 253426. Ответов 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
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
31.10.2013, 14:45
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Koryim
создал test.h, в нем объявил переменную:- extern int i;
Это называется объявление. Ссылка (упоминание) на объект, но не он сам.

Цитата Сообщение от Koryim
Пробую в одном из *.с файлов добавить int i;
А это называется определение, оно создаёт собственно объект и занимает память (4 байта в ROM).

В каком-то из файлов (в принципе в любом, выберите наиболее подходящий по смыслу) обязательно должно быть определение, т.к. переменная должна существовать физически.
0
4 / 4 / 0
Регистрация: 12.03.2013
Сообщений: 24
31.10.2013, 17:28
Цитата Сообщение от OtyxPM
Цитата Сообщение от Koryim
создал test.h, в нем объявил переменную:- extern int i;
Это называется объявление. Ссылка (упоминание) на объект, но не он сам.

Цитата Сообщение от Koryim
Пробую в одном из *.с файлов добавить int i;
А это называется определение, оно создаёт собственно объект и занимает память (4 байта в ROM).

В каком-то из файлов (в принципе в любом, выберите наиболее подходящий по смыслу) обязательно должно быть определение, т.к. переменная должна существовать физически.
вот они, вот, пагубные последствия от программирования на васике!
0
1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92
02.11.2013, 20:34
Цитата Сообщение от buy
вот они, вот, пагубные последствия от программирования на васике!
Есть немного :)

Дописал видео часть, теперь дисплей обновляется 50 раз в секунду (FSMC+DMA), параллельно работает эмулятор. Прицепил клавиатуру и динамик. Таймингов пока нет, думаю нужен еще один проц:)

обнаружил глюк...


а это программа


Есть программа которая может обнаружить ошибки эмуляции?
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
02.11.2013, 21:34
Цитата Сообщение от Koryim
Дописал видео часть, теперь дисплей обновляется 50 раз в секунду (FSMC+DMA), параллельно работает эмулятор. Прицепил клавиатуру и динамик.
ПРОГРЕСС!!!!!
Дисплей обновляется весь за раз? или построчно по таймеру?
Какой процент мощности (процент времени работы) контроллера забирает обработка видео?

Цитата Сообщение от Koryim
Таймингов пока нет, думаю нужен еще один проц:)
Можно текст последнего варианта глянуть...
0
1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92
02.11.2013, 22:36
Цитата Сообщение от ShodS
Цитата Сообщение от Koryim
Дописал видео часть, теперь дисплей обновляется 50 раз в секунду (FSMC+DMA), параллельно работает эмулятор. Прицепил клавиатуру и динамик.
ПРОГРЕСС!!!!!
Дисплей обновляется весь за раз? или построчно по таймеру?
Какой процент мощности (процент времени работы) контроллера забирает обработка видео?

Цитата Сообщение от Koryim
Таймингов пока нет, думаю нужен еще один проц:)
Можно текст последнего варианта глянуть...

Дисплей обновляется по 8 пикселей (и бордюр и экран) по прерываниям от таймера. По скорости пока рано говорить, обработчик прерываний нужно оптимизировать. Код всегда пожалуйста :)

[99.35 Кб]
0
1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92
02.11.2013, 22:40
Ну и общий вид.
0
0 / 0 / 0
Регистрация: 23.05.2012
Сообщений: 214
03.11.2013, 07:31
А что не так с эмуляцией?
Отсутствие нуля смущает? Так это так и на реальном.
0
1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92
03.11.2013, 08:18
Цитата Сообщение от moksir
А что не так с эмуляцией?
Отсутствие нуля смущает? Так это так и на реальном.
Да отсутствие нуля, то есть то нет, и цифр разное количество. По памяти 20 лет назад такого вроде не было.
0
1 / 1 / 0
Регистрация: 01.02.2010
Сообщений: 2,010
03.11.2013, 11:09
Цитата Сообщение от moksir
Так это так и на реальном.
Кстати... да!
Проверил на простеньком симуляторчике - именно то что и у тебя...

[43.49 Кб]
0
1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92
03.11.2013, 15:00
Цитата Сообщение от ShodS
Цитата Сообщение от moksir
Так это так и на реальном.
Кстати... да!
Проверил на простеньком симуляторчике - именно то что и у тебя...

Блин, вот бы все команды проверить... Потом можно было бы все разделить и избавится от CASE.
0
0 / 0 / 0
Регистрация: 18.03.2010
Сообщений: 2,230
03.11.2013, 22:07
http://ru.wikipedia.org/wiki/ZEXALL
0
1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92
04.11.2013, 09:45
Цитата Сообщение от Ymk
http://ru.wikipedia.org/wiki/ZEXALL
Попробовал запустить на UnrealSpeccy, выполняет первый тест... жду.
0
1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92
04.11.2013, 09:57
Цитата Сообщение от Koryim
Цитата Сообщение от Ymk
http://ru.wikipedia.org/wiki/ZEXALL
Попробовал запустить на UnrealSpeccy, выполняет первый тест... жду.

Сконвертировал бинарник в массив, дома буду пробовать.
PS Кто как создает массивы для программ? Я пишу маленькие программы на QBosyse [28.52 Кб]

эта программка конвертирует бинарник в вид 0х01, 0хАА...
0
0 / 0 / 0
Регистрация: 22.09.2012
Сообщений: 300
04.11.2013, 10:39
Цитата Сообщение от Koryim
PS Кто как создает массивы для программ? Я пишу маленькие программы на QBosyse
Python если нужно быстро написать, С если нужно очень быстро много создать и не один раз.
А так без разницы в общем-то.
0
0 / 0 / 0
Регистрация: 06.12.2016
Сообщений: 2,309
04.11.2013, 13:51
А еще есть perl - но с ним удобнее, если надо обрабатывать текстовые файлы (синтаксис разбирать например).
0
1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92
04.11.2013, 14:35
Цитата Сообщение от Koryim
Цитата Сообщение от Ymk
http://ru.wikipedia.org/wiki/ZEXALL
Попробовал запустить на UnrealSpeccy, выполняет первый тест... жду.

UnrealSpeccy тест якобы не прошёл, есть ошибки. Ошибки примерно такие как тут http://mdfs.net/Software/Z80/Exerciser/ ... outall.txt, этот листинг с железного спектрума. Сам тест идет ну очень долго, около 5 часов. Так что не показатель, но ради интереса запущу.
0
3 / 3 / 0
Регистрация: 06.12.2016
Сообщений: 1,605
04.11.2013, 15:01
Так это похоже на тест процессора. Только при чём там CRC, я не понял. Z80 вроде CRC железно на считает..
0
0 / 0 / 0
Регистрация: 05.09.2013
Сообщений: 122
04.11.2013, 16:46
Цитата Сообщение от Koryim
Сконвертировал бинарник в массив, дома буду пробовать.
PS Кто как создает массивы для программ? Я пишу маленькие программы на QBosyse
PureBasic, 30mb, работает из коробки без настройки, с флешки, куча либ, Win/Mac/Linux.
Скорость и размер получаемых программ сопоставимы с Си.
0
1 / 1 / 0
Регистрация: 11.01.2013
Сообщений: 5,479
04.11.2013, 16:58
Цитата Сообщение от trowim
Цитата Сообщение от Koryim
Сконвертировал бинарник в массив, дома буду пробовать.
PS Кто как создает массивы для программ? Я пишу маленькие программы на QBosyse
PureBasic, 30mb, работает из коробки ...Imho автор спрашивал про мелкие "подножные" средства, а тут 30-тиметровая пушка для стрельбы по воробьям.
Что-нибудь типа QBosys, которому даже Wymdows не нужен, - хороший путь для быстрого конвертора на коленке: надо всего-то открыть два файла (исходный код и сконвертированный), в цикле прочитать-пересчитать-записать байты, закрыть два файла.

То же самое можно получить на VBO, ведь Excel или Word установлены на большинстве компьютеров. А значит, есть Бейсик под рукой :-)
0
1 / 1 / 0
Регистрация: 18.10.2013
Сообщений: 92
05.11.2013, 07:59
Цитата Сообщение от hd44780
Так это похоже на тест процессора. Только при чём там CRC, я не понял. Z80 вроде CRC железно на считает..
Контрольная сумма там софтово считается, Не один тест я не прошел, во как.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.11.2013, 07:59

Игры на 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 Схема,...


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

Или воспользуйтесь поиском по форуму:
80
Закрытая тема Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru