Jump to content

    

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

Всем привет. Разрабатываю ZX Spectrum на микроконтроллерах ATMEL (ATMega128 - 2 шт, ATtiny2313 - 1 шт.) Всего в схеме 8 микросхем: центральный процессор (ATMega128), видео процессор (ATMega128), контроллер клавиатуры (ATtiny2313) (планируется применение стандартной клавиатуры PC/2), стабилизатор питания (MC78M05CDT), порт ввода-вывода (SN74S04), формирователь цветного изображения (SN74S257), ОЗУ (IS62C1024) с защёлкой адреса (74AC373). В настоящее время сформировал цветной видеосигнал и написал около 80% эмулятора команд (произво-дительности вполне хватает.)

ZX.ZIP

Edited by Lisitsin

Share this post


Link to post
Share on other sites

Интересно, как вы собираетесь решать проблему разных архитектур Z80 (Неймановская) и AVR (Гарвардская, да еще с неизменяемой программной памятью). Программы под спектрум в принципе могут иметь самомодифицирующийся код, а тут такой финт не пройдет.

Share this post


Link to post
Share on other sites
Интересно, как вы собираетесь решать проблему разных архитектур Z80 (Неймановская) и AVR (Гарвардская, да еще с неизменяемой программной памятью). Программы под спектрум в принципе могут иметь самомодифицирующийся код, а тут такой финт не пройдет.

Примерно так: (это называется эмуляция)

OPCODE_00.zip

Share this post


Link to post
Share on other sites

Эх, студенчество вспомнилось! :rolleyes: Не могу сдержаться: А зачем всё это? Если для саморазвития, то я бы Spectrum предпочёл на FPGA сэмулировать, это жесть! А AVR32 или PIC32 однозначно потянут, это же очевидно! Насчёт ATMegi128 не знаю, но интересна конечная цель.

Share this post


Link to post
Share on other sites
Эх, студенчество вспомнилось! :rolleyes: Не могу сдержаться: А зачем всё это?

 

Простите, YIG, "G"-это от "Гамлет"?

Share this post


Link to post
Share on other sites
Простите, YIG, "G"-это от "Гамлет"?

YIG - это железо-иттриевый гранат, специально выбрал такой ник, чтобы молодые радиоинженеры развивались. Кроме того, сам ими потихоньку занимаюсь! А как насчёт моего вопроса, интересно же?

 

ЗЫ: А-а-а, всё понял, вот зачем: http://electronix.ru/forum/index.php?showt...mp;#entry818427 Я в этот раздел не ходок, поэтому не сразу заметил. Но всё-таки проект для чего-то создавался!? :rolleyes:

Share this post


Link to post
Share on other sites
YIG - это железо-иттриевый гранат, специально выбрал такой ник, чтобы молодые радиоинженеры развивались. Кроме того, сам ими потихоньку занимаюсь! А как насчёт моего вопроса, интересно же?

 

ЗЫ: А-а-а, всё понял, вот зачем: http://electronix.ru/forum/index.php?showt...mp;#entry818427 Я в этот раздел не ходок, поэтому не сразу заметил. Но всё-таки проект для чего-то создавался!? :rolleyes:

Лучше уж сразу задать вопрос зачем я живу.

Share this post


Link to post
Share on other sites
Лучше уж сразу задать вопрос зачем я живу.

Как-то мне это всё напоминает анекдот:

Юлий Соломонович, а почему все евреи отвечают вопросом на вопрос?

А что, нельзя?

 

Что касаемо нашей ситуации, то ситуация такая:

Вы открываете тему, в которой никого ни о чём не спрашиваете, выкладывая свой проект.

Я в студенчестве собирал Spectrum, интересуюсь целью темы и проекта.

Вы по прежнему не хотите ответить на простой и праздный вопрос.

Не хотите - как хотите! Всего доброго!...

Share this post


Link to post
Share on other sites
YIG - это железо-иттриевый гранат, специально выбрал такой ник, чтобы молодые радиоинженеры развивались. Кроме того, сам ими потихоньку занимаюсь! А как насчёт моего вопроса, интересно же?

 

ЗЫ: А-а-а, всё понял, вот зачем: http://electronix.ru/forum/index.php?showt...mp;#entry818427

Вы ведь и так уже всё поняли ...

 

Я в студенчестве собирал Spectrum, интересуюсь целью темы и проекта.

Интересуетесь целью и темой того, чем сами занимались? Не понял ...

Share this post


Link to post
Share on other sites

Где-то в инете натыкался на железку где на ПЛИСине с кучей обвязки люди сделали Спектрум 1024. Он вроде так и назывался.

Share this post


Link to post
Share on other sites
Примерно так: (это называется эмуляция)

 

А ваш программный эмулятор будет точно все времянки эмулировать? А то игрушки, которые в бордере текст писали, не пойдут - так кому он нужен будет? :laughing:

Share this post


Link to post
Share on other sites
Примерно так: (это называется эмуляция)

Ну, что такое эмуляция, я представляю, а читать исходник, представленный в качестве ответа на мой вопрос, мне лень.

Потому переформулирую вопрос, просьба ответить словами, а не на ассемблере:

Как вы запустите программу, представляющую собой нечто вроде самораспаковывающегося архива, или просто в целях защиты меняющую некоторые ячейки программного кода после запуска?

Share this post


Link to post
Share on other sites
А ваш программный эмулятор будет точно все времянки эмулировать? А то игрушки, которые в бордере текст писали, не пойдут - так кому он нужен будет? :laughing:

Люблю грамотные вопросы, а не просто "зачекм тебе всё это надо?". Выдерживаюсь до такта. Подсчитываюсь прямо в комментариях. Но есть небольшие сложности: команды DAA, EX, XOR выполняются чуть чуть по-дольше. Я не знаю к чему это может привести. Есть возможность включить счётчик и подсчитывать это накопляющееся время, а за счёт других команд, выполняющихся более быстро, его компенсировать. Но пока это я не реализовал. Вот кто объяснит мне чем грозят затянутые DAA, EX, XOR - тот мне окажет огромную услугу. Спасибо за вопрос.

 

Ну, что такое эмуляция, я представляю, а читать исходник, представленный в качестве ответа на мой вопрос, мне лень.

Потому переформулирую вопрос, просьба ответить словами, а не на ассемблере:

Как вы запустите программу, представляющую собой нечто вроде самораспаковывающегося архива, или просто в целях защиты меняющую некоторые ячейки программного кода после запуска?

А в чём тут, собственно, проблема? Любой код, буть он раньше архивом или нет, для эмулятора - просто код. В чём здесь должна быть сложность?

Share this post


Link to post
Share on other sites
А в чём тут, собственно, проблема? Любой код, буть он раньше архивом или нет, для эмулятора - просто код. В чём здесь должна быть сложность?

ааа, понял, вопрос снимаю...

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this