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

|
Всем привет. Разрабатываю ZX Spectrum на микроконтроллерах ATMEL (ATMega128 - 2 шт, ATtiny2313 - 1 шт.) Всего в схеме 8 микросхем: центральный процессор (ATMega128), видео процессор (ATMega128), контроллер клавиатуры (ATtiny2313) (планируется применение стандартной клавиатуры PC/2), стабилизатор питания (MC78M05CDT), порт ввода-вывода (SN74S04), формирователь цветного изображения (SN74S257), ОЗУ (IS62C1024) с защёлкой адреса (74AC373). В настоящее время сформировал цветной видеосигнал и написал около 80% эмулятора команд (произво-дительности вполне хватает.)
Сообщение отредактировал Lisitsin - Oct 2 2010, 13:28
Прикрепленные файлы
ZX.ZIP ( 1.59 мегабайт )
Кол-во скачиваний: 170
--------------------
с Уважением, Lisitsin Vasil.Lisitsin@yandex.ru
|
|
|
|
|
 |
Ответов
(75 - 89)
|
Apr 7 2012, 09:03
|
Местный
  
Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868

|
Цитата(Vasily_ @ Apr 7 2012, 12:01)  Что-то там Error (404). Прошу прощения, исправил ...
Сообщение отредактировал Lisitsin - Apr 7 2012, 09:11
--------------------
с Уважением, Lisitsin Vasil.Lisitsin@yandex.ru
|
|
|
|
|
Nov 7 2012, 15:43
|

Гуру
     
Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237

|
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), но вы тогда мне не ответили. Может быть сейчас ответите?
|
|
|
|
|
Nov 8 2012, 09:54
|
Местный
  
Группа: Участник
Сообщений: 227
Регистрация: 1-10-10
Из: Рязань
Пользователь №: 59 868

|
Цитата(Xenia @ Nov 7 2012, 19:43)  Может быть сейчас ответите? 51? Это интересно. Вот только правильнее было бы тогда сразу взять сам Z80 и на нём всё делать. Дело в том, что эмуляция очень специфическая штука. Эмулировать можно одно устройство при помощи другого только в том случае, если запас по производительности компенсирует разницу в системе команд + обеспечивает техническую сторону задачи - т. е. выборка/дешифрация/проверка прерываний/переход к собственно программе эмуляции. Насколько я осведомлён, 51-ые контроллеры не слишком шагнули вперёд по производительности из-за всё тех же гранц, накладываемых архитектурой - 4 такта в машинном цикле, 21 МГц. При этом главная задача эмуляции - замена инструкций, выполняющихся с отличиями от Z80-ых последовательностью своих родных. При этом мы не располагаем дополнительными свободными регистрами для выполнения этой задачи, а значит, пользуемся ОЗУ. Это удлинняет время выполнения инструкции в неопределённое число раз. При всём при том, пока речь ещё не шла о недокументированных особенностях выполнения команд Z80, без которых будет работать только бейсик и всё. Преобразование же кода из родного Z80 формата в некий 51х формат выглядит безобидно только с первого взгляда. На самом деле если глубокомысленно и медетативно посмотреть на эту задачу, можно увидеть, что это есть ни что иное как та же самая эмуляция, но выполняемая заранее. Она ни сколько не проще Real-time эмуляции. Огромное спасибо за вопрос!
Сообщение отредактировал Lisitsin - Nov 8 2012, 09:56
--------------------
с Уважением, Lisitsin Vasil.Lisitsin@yandex.ru
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|