Перейти к содержанию
    

ZX Spectrum: аппаратная реализация на микроконтроллерах AVR

Что-то там Error (404).

Прошу прощения, исправил ...

AVR_ZX_Spectrum.zip

ASpect_128_Photo.zip

Изменено пользователем Lisitsin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полный проект со всеми исходниками:

http://dl.dropbox.com/u/12408899/Aspect128...l%20project.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Полный проект со всеми исходниками:

http://dl.dropbox.com/u/12408899/Aspect128...l%20project.zip

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Товарищи! если кто-то собрал девайс, хотелось бы услышать отзывы. Пишем, не стесьняемся !!!. Можно на [email protected] )))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Lisitsin, прошу прощения за то что не по теме, но очень хочется узнать, что повергло вас использовать в своем проекте AVR-архитектуру, тогда как Spectrum ZX гораздо ближе к 51-ой архитектуре. Даже в том случае, когда полного сходства с командами Z80 нет, для нынешних 51-х вполне можно было бы перетранслировать старые коды байт в байт. Т.е. написать примитивный ретранслятор из кода в код, таким образом, чтобы были только замены, но сам код не сжимался и не расширялся. И это всё затем, чтобы адреса переходов не требовали модификации. Или я слишком оптимистична?

 

Такой подход нельзя назвать эмуляцией, поскольку процесс интерпретации команд во время работы программы не происходит (run-time), а в новый код преобразуется без его деассемблирования. Да и нынешние 51-е МК работают во много раз быстрее, чем старый Z80, хотя и эту архитектуру ныне считают устаревшей. Два года назад я уже задавала в этой теме вопрос (http://electronix.ru/forum/index.php?s=&am...st&p=819032) относительно перспективности использования eZ80 от Zilog (в частности eZ80F91), но вы тогда мне не ответили. Может быть сейчас ответите?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Или я слишком оптимистична?

Даже очень слишком. Что со стеком будем делать, например? Разные они настолько, что концепции перевода не может быть даже.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Даже очень слишком. Что со стеком будем делать, например? Разные они настолько, что концепции перевода не может быть даже.

 

Что делать со стеком? - Да ничего! Я, когда программирую, вообще о нем не думаю. :)

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Что делать со стеком? - Да ничего! Я, когда программирую, вообще о нем не думаю. :)

Там эмуляция/перевод невозможны, потому что 51-стек растет вверх, а у Z80 - по нормальному :), к тому же в 51 - стек не отображается во внешнюю память... кому я это рассказываю? Вы и так всё прекрасно знаете.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Может быть сейчас ответите?

51? Это интересно. Вот только правильнее было бы тогда сразу взять сам Z80 и на нём всё делать.

Дело в том, что эмуляция очень специфическая штука. Эмулировать можно одно устройство при помощи другого только в том случае, если запас по производительности компенсирует разницу в системе команд + обеспечивает техническую сторону задачи - т. е. выборка/дешифрация/проверка прерываний/переход к собственно программе эмуляции.

Насколько я осведомлён, 51-ые контроллеры не слишком шагнули вперёд по производительности из-за всё тех же гранц, накладываемых архитектурой - 4 такта в машинном цикле, 21 МГц. При этом главная задача эмуляции - замена инструкций, выполняющихся с отличиями от Z80-ых последовательностью своих родных. При этом мы не располагаем дополнительными свободными регистрами для выполнения этой задачи, а значит, пользуемся ОЗУ. Это удлинняет время выполнения инструкции в неопределённое число раз. При всём при том, пока речь ещё не шла о недокументированных особенностях выполнения команд Z80, без которых будет работать только бейсик и всё.

Преобразование же кода из родного Z80 формата в некий 51х формат выглядит безобидно только с первого взгляда. На самом деле если глубокомысленно и медетативно посмотреть на эту задачу, можно увидеть, что это есть ни что иное как та же самая эмуляция, но выполняемая заранее. Она ни сколько не проще Real-time эмуляции.

Огромное спасибо за вопрос!

Изменено пользователем Lisitsin

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Насколько я осведомлён, 51-ые контроллеры не слишком шагнули вперёд по производительности из-за всё тех же гранц, накладываемых архитектурой - 4 такта в машинном цикле, 21 МГц.

 

Еще как шагнули вперед, 1-2 такта и 100Мгц.

 

http://www.silabs.com/products/mcu/Pages/8...ontrollers.aspx

http://we.easyelectronics.ru/MCS51/start-s-silabom.html

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Засунул его в клавиатуру Genius )))

Осталось прикрутить экранчик от сотового 256х192 - и будет моноблок :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...