|
|
  |
ZX Spectrum: аппаратная реализация на микроконтроллерах AVR |
|
|
|
Oct 3 2010, 08:31
|
Местный
  
Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868

|
Цитата(MaslovVG @ Oct 3 2010, 12:24)  Ну а мне непонятен вообще такой подход. SPECTRUM легко реализуется всего на трех корпусах. Любой современный клон Z80, CPLD для обвязки и контроллера дисков, и памяти. И никакой програмной эмуляции. Или в конце концов одна FPGA достаточного объема. А так как у автора топика можно и на транзисторах собирать. Если на CPLD - прибавим ещё ROM, стабилизатор питания, на чём-то надо собирать орбитр памяти. Реальные конструкции на CPLD на самом деле имеют около 10 корпусов. У меня 8 - и без CPLD. Планирую сократить до 7.
--------------------
с Уважением, Lisitsin Vasil.Lisitsin@yandex.ru
|
|
|
|
|
Oct 3 2010, 09:19
|
Местный
  
Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868

|
Цитата(131959G @ Oct 3 2010, 13:07)  Тема из молодости. Автору: ИМХО, для реальных программ (игрушек) завязанных на клавиатуру и всякие "фишки" реальной схемотехники Синклерной той эпохи, наверняка будут "вилы". Например, как правильно строить реализацию, если кем то писанная программа захочет прочитать код команды не из памяти, а например с шины данных по адресу устройства, которого в настоящем клоне каком нибудь просто нет физически? Как в первоисточнике или как в КЛОНЕ? Прошу прощения: а про модель то я и забыл!!! 48, он родной! У него на борту всего один порт ввода-вывода - номер 254. Эмулируется влёт. И каким это программам будет нужно читать данные из несуществующего адреса? А для клавиатурного контроллера программу пол часа назад откомпелировал. Прогоняю в AVRStudio- работает !!!
--------------------
с Уважением, Lisitsin Vasil.Lisitsin@yandex.ru
|
|
|
|
|
Oct 3 2010, 09:36
|

Частый гость
 
Группа: Участник
Сообщений: 86
Регистрация: 8-04-07
Из: г.Луга Ленинградская обл.
Пользователь №: 26 862

|
Цитата(Lisitsin @ Oct 3 2010, 13:19)  Прошу прощения: а про модель то я и забыл!!! 48, он родной! У него на борту всего один порт ввода-вывода - номер 254. Эмулируется влёт. И каким это программам будет нужно читать данные из несуществующего адреса? А для клавиатурного контроллера программу пол часа назад откомпелировал. Прогоняю в AVRStudio- работает !!! Ну к примеру, кто нить в Питере "подправил" "ломаную" игрушку. Прочитал FF с ШД, подтянутой резисторами к плюсу и "поехал" в прерывание... . Когда слепите идею, то "обкатайте" ее в реальном времени реальными программами типа "Пинг Понга" http://zxspec.ru/screens/p/ping_pong.0.gif и сравните с реальным 48. Интересно, что получится.
|
|
|
|
|
Oct 3 2010, 09:50
|
Профессионал
    
Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134

|
Цитата(Lisitsin @ Oct 3 2010, 13:02)  [\quote] Кроме того вспомните ZX81 (предшественник оригинального SPEKTRUM) был на четырех микросхемах CPU, ROM, RAM и ULA и все. (держал в руках такой в начале 80-х).
Ой !!! А ссылочку можно ? Увы Интернета да и PC тогда еще не существовало. В начале 90-х встречал клон спектрума с логикой реализованой на БМК (это нечто масочное предшественник CPLD) минимум корпусов. Да в игрушках и в защите программ использовалось много специфических особеностей, недокументированные команды Z80, значение регистра REFRESH, чтение отсутствующих портов (состояние шины данных, следы от выода на экран) и многое другое. На эту тему можно книги писать.
|
|
|
|
|
Oct 3 2010, 10:25
|
Местный
  
Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868

|
Цитата(131959G @ Oct 3 2010, 13:36)  Ну к примеру, кто нить в Питере "подправил" "ломаную" игрушку. Прочитал FF с ШД, подтянутой резисторами к плюсу и "поехал" в прерывание... . Когда слепите идею, то "обкатайте" ее в реальном времени реальными программами типа "Пинг Понга" http://zxspec.ru/screens/p/ping_pong.0.gif и сравните с реальным 48. Интересно, что получится. Прерывание в 48 только INT, и то только для клавиатуры. А программы для другого типа ZX запускать не планирую. Может быть, только в перспективе. Цитата(MaslovVG @ Oct 3 2010, 13:50)  Увы Интернета да и PC тогда еще не существовало. В начале 90-х встречал клон спектрума с логикой реализованой на БМК (это нечто масочное предшественник CPLD) минимум корпусов.
Да в игрушках и в защите программ использовалось много специфических особеностей, недокументированные команды Z80, значение регистра REFRESH, чтение отсутствующих портов (состояние шины данных, следы от выода на экран) и многое другое. На эту тему можно книги писать. Если в НЭТЕ до сих пор нет ничего касательно такого проекта - моя тема актуальна. Недокументированные команды эмулирую. Насчёт чтения несуществующих портов: хотелось бы иметь игрушку или программу, которая это делает - чтобы потом погонять. Спасибо.
--------------------
с Уважением, Lisitsin Vasil.Lisitsin@yandex.ru
|
|
|
|
|
Oct 3 2010, 11:04
|
Профессионал
    
Группа: Свой
Сообщений: 1 210
Регистрация: 24-01-05
Из: Россия Волгодонск
Пользователь №: 2 134

|
Цитата(Lisitsin @ Oct 3 2010, 14:25)  Прерывание в 48 только INT, и то только для клавиатуры. А программы для другого типа ZX запускать не планирую. Может быть, только в перспективе. Через BASIC и чтение клавиатуры по стандартным подпрограммам работали толбко первые простые игрушки. На смену им пришли игры в бинарных кодах. Работающие совсем автономно, после загрузки ПЗУ вообще не использовалось. Прерывание устанавливалось NMI и клавиатура опрашивалась любым способом на выбор автора, вплоть до сканирования избранных клавиш. Применение внешней IBM совместимой клавиатуры в таких случаях чрезвычайно сложно эмулировать. И главное Не вижу практического смысла. Комерческого будущего у этого изделия нет. Разве поучится программировать. Тогда уж сделать какой нибудь Роутер, аудио проигрыватель, JPS навигатор.
|
|
|
|
|
Oct 3 2010, 11:39
|
Местный
  
Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868

|
Цитата(MaslovVG @ Oct 3 2010, 15:04)  Через BASIC и чтение клавиатуры по стандартным подпрограммам работали толбко первые простые игрушки. На смену им пришли игры в бинарных кодах. Работающие совсем автономно, после загрузки ПЗУ вообще не использовалось. Прерывание устанавливалось NMI и клавиатура опрашивалась любым способом на выбор автора, вплоть до сканирования избранных клавиш. Применение внешней IBM совместимой клавиатуры в таких случаях чрезвычайно сложно эмулировать. И главное Не вижу практического смысла. Комерческого будущего у этого изделия нет. Разве поучится программировать. Тогда уж сделать какой нибудь Роутер, аудио проигрыватель, JPS навигатор. Прерывание от IBM совместимой клавиатуры уже обрабатывается. Опрашивать можно командой IN с любым параметром опроса (0-255). Тип прерывания устанавливается программно любой. Коммерческие цели приследую не в первую очередь. А вообще коммерческая сторона дела мне интересна: что такое сегодня можно разработать, что пользовалось бы хорошим спросом?
Сообщение отредактировал Lisitsin - Oct 3 2010, 11:42
--------------------
с Уважением, Lisitsin Vasil.Lisitsin@yandex.ru
|
|
|
|
|
Oct 3 2010, 11:44
|

Ally
     
Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050

|
Цитата(Lisitsin @ Oct 2 2010, 16:27)  Всем привет. Разрабатываю ZX Spectrum на микроконтроллерах ATMEL (ATMega128 - 2 шт, ATtiny2313 - 1 шт.) Всего в схеме 8 микросхем: центральный процессор (ATMega128), видео процессор (ATMega128), контроллер клавиатуры (ATtiny2313) (планируется применение стандартной клавиатуры PC/2), стабилизатор питания (MC78M05CDT), порт ввода-вывода (SN74S04), формирователь цветного изображения (SN74S257), ОЗУ (IS62C1024) с защёлкой адреса (74AC373). В настоящее время сформировал цветной видеосигнал и написал около 80% эмулятора команд (произво-дительности вполне хватает.) Вы однако выбрали самый тяжелый и неэффективный путь. Вот например на такой платформе вы могли бы свою идею реализовать ну за неделю не больше. http://www.alylab.eu/OpenProjects/ARMGeoSpyder2/ARMGS2.htmНаличие акселерометра могло бы заменить джойстик, тачскрин заменил бы мышь. Микрофон и float poin сопроцессор помогли бы сделать управление голосом. И все это не меняя основной бинарный код старых игрушек. В качестве эмулятора Z80 очень неплохой вот это проект: http://sourceforge.net/projects/cingb/ Здесь в конфе год или больше назад один любитель даже анализ разных эмуляторов Z80 проводил (вернее их расширенных аналогов для игровых приставок) и демонстрировал их работу на макетной платформе на ARM9. Так cingb вообщем самый удобный для портирования оказался.
|
|
|
|
|
Oct 3 2010, 12:25
|
Местный
  
Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868

|
Цитата(AlexandrY @ Oct 3 2010, 15:44)  Вы однако выбрали самый тяжелый и неэффективный путь. Вот например на такой платформе вы могли бы свою идею реализовать ну за неделю не больше. http://www.alylab.eu/OpenProjects/ARMGeoSpyder2/ARMGS2.htmНаличие акселерометра могло бы заменить джойстик, тачскрин заменил бы мышь. Микрофон и float poin сопроцессор помогли бы сделать управление голосом. И все это не меняя основной бинарный код старых игрушек. А ради интереса, сколько такая игрушка стоит? Ну а о вышесказанных наворотах я и не думал: это уже не синклер получится. Цитата(Oldring @ Oct 3 2010, 15:47)  Ну уж явно не эмулятор Спектрума на AVR с минимумом использованных корпусов. Разработать сейчас можно всё что угодно, сложно только продать в достаточном количестве, чтобы окупить затраты на разработку. Те, кто нащупали свои ниши - с вами точно делиться ими не будут. А то ... Кто станет делиться - пусть сразу наличкой даст, чтобы я глупые вопросы не задавал.
--------------------
с Уважением, Lisitsin Vasil.Lisitsin@yandex.ru
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|