Проект аппаратной эмуляции
Привет.
Я заинтересован в написании эмулятора для какого-то старого компьютера. Тем не менее, я хотел бы выбрать для начала что-то простое, архитектуру, которая не слишком сложна и относительно известна, чтобы легко найти документацию. Не могли бы вы предложить что-нибудь? Также приветствуем: ссылки на технические характеристики / документацию предлагаемой платформы, rom архивы и т. Д.:)
2 ответа
Старый добрый Commodore 64 был бы хорошим выбором. Хорошо документировано, доступно множество архивов ПЗУ, а также достаточная поддержка сообщества.
Он работает на 8-битном микропроцессоре ( MOS 6510), который работает с набором команд RISC и должен быть довольно простым для моделирования (так как любую аппаратную эмуляцию можно назвать "простой":)
Техническое описание процессора даже доступно!
Уже сделав что-то подобное, я бы согласился с e.James и пошел бы с чем-то вроде 6502. 6502 управляема, я думаю, менее 256 инструкций. Например, z80 мультиплексирует некоторые коды операций и требует гораздо больше работы. С 6502 вы можете пойти после vic20 Commodore64 и т. Д., А также такие места, как астероиды, лунные корабли, прорывы и некоторые другие. Apple Iie и Atari vcs (2600) и другие также основаны на 6502.
Хорошо пойти с чем-то вроде этого, которое уже эмулировалось (и есть открытый исходный код). Что-то, что вы можете изучить как таблицы данных, так и реализации вместе, когда создаете свои собственные. Остерегайтесь не все без ошибок, они могут хорошо подражать одной вещи, возможно, потому что эта вещь никогда не использует эту сломанную инструкцию или этот флаг. Вы также можете найти различные интерпретации таблицы данных.
Благодаря маме и другим, есть много видеоигр (не обязательно основанных на 6502), возможно, у вас есть любимый. Эмуляторы процессора в маме, как и в других, часто написаны для скорости выполнения, и им может быть трудно следовать. Конечно, не образовательный код, но сильно настроенный на производительность (был необходим для платформы 486, но сегодня не обязательно такой настройки).
Если 6502 слишком большой, чтобы его переварить, или если вы посмотрите на периферию, которую вам нужно эмулировать, вы можете использовать только процессор или микроконтроллер, например, 12-битный набор микрочипов или набор команд msp430. очень хорошо усваивается, все еще в производстве, поэтому инструменты доступны, оба имеют, например, c-компиляторы. Не собирается запускать известные сексуальные программы или что-то в этом роде, но не менее образовательно.