Board.KolibriOS.org
http://board.kolibrios.org/

Эмулятор ZX Spectrum
http://board.kolibrios.org/viewtopic.php?f=43&t=982
Page 2 of 4

Author:  Ghost [ Mon Feb 11, 2008 7:33 pm ]
Post subject:  Re: Эмулятор ZX Spectrum

mike.dld - толково придумал )))

andrew_programmer - например это работает так:
t = time_stamp();
z80_run(100);
t = time_stamp() - t;
sleep(CT - t); // пусть параметр в миллесекундах

где CT - сремя в мс выполнения 100 тактов на целевой машине (Z80)

только тут надо определится с камнем - зилоги выпускали все кому не лень и с разыми частотами.

и еще не надо забывать что выполнение (эмуляция) целевого кода, ввод данных (клавиатура/джойстик/etc) и отображение вирт. экрана должно обрабатыватся в разных потокам (хотя в отображение и ввод можно объединить) иначе это будет не эмулятор а пошаговая головная боль.

Author:  Albom [ Tue Feb 12, 2008 7:40 am ]
Post subject:  Re: Эмулятор ZX Spectrum

частоту Z80 думаю взять стандартную - 3,5 МГц (хотя можно сделать в виде переменной и изменять, например, разгонять до 7 МГц, как это делали радиолюбители на настоящих спектрумах, или вообще не осуществлять задержки, тем самым можно быстрее прогонять некоторые циклы с вычислениями)

Author:  Albom [ Wed Jun 25, 2008 5:42 pm ]
Post subject:  Re: Эмулятор ZX Spectrum

Проект жив!!!

После 2 переписываний с нуля ядра эмулятора проца Z80 решил взять готовое. Выбор остановился на ядре, которое написал Santiago Romero Iglesias.
За день напрограммировал эмулятор, который в принципе запускается и даже грузит файлы SNA. Но сделать ещё нужно очень много.

Кто-нибудь знает, какая клавиша (в матрице спектрума) соответствует BackSpace?

Attachments:
e80-0.1.zip [25.11 KiB]
Downloaded 364 times

Author:  Alver [ Thu Jun 26, 2008 10:11 am ]
Post subject:  Re: Эмулятор ZX Spectrum

Клавиша BackSpace (или по спектрумовски DELETE) набирается комбинацией CAPS/0 а значит соответственно по портам #FEFE и #EFFE выдает значение ???11110b, где ??? - биты остающиеся от состояния шины данных ( как правило 111 но если шина не стабильна то могут прыгать).
Вопрос на засыпку: твой эмуль проца обрабатывает регистр регенерации?

Author:  Albom [ Thu Jun 26, 2008 6:56 pm ]
Post subject:  Re: Эмулятор ZX Spectrum

Alver
Спасибо за подсказку по клавиатуре. Сделал BackSpace, но он стирает всю строку, а не последний символ. Почему?

Quote:
Вопрос на засыпку: твой эмуль проца обрабатывает регистр регенерации?

Точно на засыпку! :) Ядро вроде поддерживает обработку этого регистра, но если честно я не пока не разбирался и сам его не обрабатывал.

P.S. Я живого спектрума не видел, пользовался только эмуляторами. Из инфы только 1 книга и немного факов, в основном на инглише.

Author:  Alver [ Thu Jun 26, 2008 8:18 pm ]
Post subject:  Re: Эмулятор ZX Spectrum

Quote:
Сделал BackSpace, но он стирает всю строку, а не последний символ. Почему?

Гдето глюк. А стирает где, в командной строке?
Quote:
Я живого спектрума не видел, пользовался только эмуляторами. Из инфы только 1 книга и немного факов, в основном на инглише.

А у меня вся не слишком большая инфа по тетрадкам, да на шкафу еще Profi+ с 512 kb RAM валяется, а диски поразмагнитились давно(жалко) :( .
Вот тут есть много книжек, не знаю может чего пригодится. http://trd.speccy.cz.

Author:  Gargo [ Thu Jun 26, 2008 10:19 pm ]
Post subject:  Re: Эмулятор ZX Spectrum

Хочется задать вопрос немножко не по теме. А какой платформы эмулятор написать проще: Денди или Спектрум?

Author:  Alver [ Thu Jun 26, 2008 10:34 pm ]
Post subject:  Re: Эмулятор ZX Spectrum

Той, о которой больше знаешь.

Author:  Ghost [ Fri Jun 27, 2008 8:43 am ]
Post subject:  Re: Эмулятор ZX Spectrum

Alver прав. Но из опыта замечу что под NES видюха (PPU) сложнее Спектрумовского, и форматов образов на порядок больше.

Author:  Alver [ Fri Jun 27, 2008 5:49 pm ]
Post subject:  Re: Эмулятор ZX Spectrum

Зы, а если прилично эмулировать Спектрум, то (ну расширения памяти не проблема) добавь минимум AY-3-8910(12) и BetaDiskInterface с TR-DOS . Ну а если очень хорошо эмулировать то еще там всякие Kempston Mouse, GeneralSound, COVOX, примочки с графическими расширениями ... :mrgreen:

Author:  Albom [ Fri Jun 27, 2008 6:40 pm ]
Post subject:  Re: Эмулятор ZX Spectrum

Quote:
Зы, а если прилично эмулировать Спектрум, то (ну расширения памяти не проблема) добавь минимум AY-3-8910(12) и BetaDiskInterface с TR-DOS . Ну а если очень хорошо эмулировать то еще там всякие Kempston Mouse, GeneralSound, COVOX, примочки с графическими расширениями ...


ну это ты уже загнул! многие эмуляторы под винду такого не могут! не то что под Колибри. например, как я буду эмулировать AY-3-8910 без дров на звуковуху?!!! :)

Attachments:
File comment: Версия 0.2 :)
e80-0.2.zip [25.92 KiB]
Downloaded 371 times

Author:  Leency [ Fri Jun 27, 2008 7:31 pm ]
Post subject:  Re: Эмулятор ZX Spectrum

Я так и не разобрался с управлением...

Author:  Albom [ Fri Jun 27, 2008 8:16 pm ]
Post subject:  Re: Эмулятор ZX Spectrum

Quote:
Я так и не разобрался с управлением...


Если запустить e80 без параметров, то стартует BASIC. После появления информации о прошивке нужно нажать Enter. Появляется командная строка. Здесь имеется 3 режима ввода (режимы в эмуляторе вручную пока не переключаются), особенностью 2-х из которых является то, что для ввода команды требуется нажатие всего одной клавиши. Например, клавише P соответстует оператор PRINT, I - INPUT, K - LIST, A - NEW, R - RUN. Простой пример:

10 PRINT "HELLO"
20 INPUT A
30 PRINT A

Для ввода кавычек используется комбинация Ctrl+P. Кстати, в процедуре обработки нажатия клавиш многие клавиши (знаки препинания и математические операции, например) ещё не прописаны .
После нажатия R и Enter запускается программа - выводится на экран HELLO, ожидается ввод переменной A и производится вывод этой переменной.
Команды S (SAVE) и J (LOAD) пока не реализованы.

Author:  Alver [ Sat Jun 28, 2008 12:02 am ]
Post subject:  Re: Эмулятор ZX Spectrum

Albom
В обработке клавиш надо как то обрабатывать одновременные нажатия (ну хотябы с шифтами), чтобы биты одновременно нажимаемых клавиш одновременно обнулялись по соответствующимдля них портам. Тогда хотя бы основная клава спектрума будет работать как надо. А потом уже комбинации на отдельные клавиши вешать.
Блин а емуль всетаки смотрится!
Успехов!

Author:  Albom [ Sat Jun 28, 2008 6:45 am ]
Post subject:  Re: Эмулятор ZX Spectrum

Quote:
В обработке клавиш надо как то обрабатывать одновременные нажатия (ну хотябы с шифтами)

так и сейчас уже есть обработка клавиш с шифтом и контроллом! :)

Quote:
Блин а емуль всетаки смотрится!

значит не зря над ним работаю!

Page 2 of 4 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/