Speccy - наш выбор!

Speccy - наш выбор! (http://zx-pk.ru/index.php)
-   Разное (http://zx-pk.ru/forumdisplay.php?f=26)
-   -   хочу написать эмулятор (http://zx-pk.ru/showthread.php?t=7333)

Виктор 16th March 2008 14:46

хочу написать эмулятор
 
Уважаемые сектрумисты, давно мечтаю написать свой эмулятор, но чувствую , что знаний маловато, неплохо (как я считаю) знаю visual basic, на нем и собираюсь писать, но как это делать??? никогда не писал эмуляторы, подскажите, пожалуйста, с чего начинать, что для этого нужно знать, натолкните, какую нужно прочитать литературу

[bETA]mEN 16th March 2008 15:32

Quote:

Для начала нужно ознакомиться с набором команд центрального процессора системы, которую собрался эмулировать, затем разобраться с <картой памяти> этой системы, а именно по-каким адресам лежит оперативная память, как происходит доступ к портам ввода\вывода с помощью специальных команд аналогичных in\out у x86, или же порты <промэпированы> в общее адресное пространство, в таком случае доступ к ним производиться с помощью команд чтения\записи данных из\в память, далее необходимо разобраться с самими портами ввода\вывода т.е. как происходит взаимодействие центрального процессора с <обвязкой>. Вот когда разберешься хотя бы с этим, станет понятно, что и как дальше делать.
(c) Wind /DEMUL Team

Виктор 16th March 2008 16:27

прекрасно, спасибо
кстати, необходимой литературы под рукой нет (электронной:D) ?
спасибо за ответ, [bETA]mEN

[bETA]mEN 16th March 2008 16:39

Quote:

Originally Posted by Виктор (Post 124662)
кстати, необходимой литературы под рукой нет (электронной:D) ?

http://fms.komkon.org/EMUL8/HOWTO.html

Eltaron 16th March 2008 21:06

можно глянуть исходники vbSpec еще, много чего можно почерпнуть

Виктор 16th March 2008 21:36

vbSpec нашел, но так сразу и не разобраться

ILoveSpeccy 17th March 2008 15:48

Интересная тема...
Хотя эмуль писать наверное небуду (реал как-то интереснее), но вопрос имеется:
как в принципе реальзован такт в эмулях???
Неужели стоит таймер, который 3.5 миллиона раз в секунду тактует эмуль Z80 и т.д. ???? :eek:
Как это на практике реализовывается???

Error404 17th March 2008 16:43

Quote:

Originally Posted by ILoveSpeccy (Post 124876)
Интересная тема...
Хотя эмуль писать наверное небуду (реал как-то интереснее), но вопрос имеется:
как в принципе реальзован такт в эмулях???
Неужели стоит таймер, который 3.5 миллиона раз в секунду тактует эмуль Z80 и т.д. ???? :eek:
Как это на практике реализовывается???

Количество тактов эмулируемой машины на N-ой частоте между перываниями принимаем константой "С". Прерывания эмулируются с той же частотой, что и на реале. С начала интервала прерывания эмулируем некоторое количество команд процессора, суммируя их длительность в тактах, пока не достигнем "С", остаток интервала до наступления следующего прерывания курим. Так по крайней мере делает упомянутый здесь vbSpec

CityAceE 17th March 2008 17:03

Quote:

Originally Posted by Виктор (Post 124645)
никогда не писал эмуляторы, подскажите, пожалуйста, с чего начинать, что для этого нужно знать

Когда начал делать эмулятор под Палм не умел ни на Палме программировать, ни представления о том, как эмуляторы пишутся. Зато неплохо знал, как сам Спек работает. Для начала взял SNA и начал с вывода экарана. А потом потихоньку начал код оживлять. Дальше пошло и поехало само собой... В итоге, конечно, от первоначального варианта ничего не осталось, но зато я сам разобрался со всем без всякой литературы.

Raydac 17th March 2008 18:13

начинать надо с эмуля процессора, потом эмуль материнки и эмуль видеосистемы с клавиатурой, для тестов сэмулить читалку с магнитофона.. когда всё это пашет, то можно приступать к эмулю ВГ93 и всяких вещей типа мышки


All times are GMT +4. The time now is 11:53.

Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.