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

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

21.10.2013, 20:38. Показов 252797. Ответов 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
Закрытая тема Создать тему
Новые блоги и статьи
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
Создание формы заимствованного документа
Maks 03.08.2026
Задача: Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также табличная часть со следующими реквизитами: - Расчетный счет покупателя. . .
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача: В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов. Логика кажется понятной: 1. Находим ключевые слова. 2. Добавляем их на. . .
Знание — сила: Доктрина интенциональности знаний, углубление в формулу
Hrethgir 01.08.2026
https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11957&stc=1&d=1785567302 Знаменитый афоризм Фрэнсиса Бэкона «Знание — сила» (Scientia potentia est) в массовой культуре принято понимать. . .
SUNO Ai - Река Без Дна
zorxor 31.07.2026
Автор стихотворения - астрофизик Марина Катыс Ссылка на сгенерированную музыкальную композицию: https:/ / suno. com/ song/ 6f6e5464-b290-4650-be6c-44c85f8d8013 Я говорю, что Время- как вода течет. . .
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Салют, шампанское, овации! :drink:
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru