Несколько слов о программе

Как нетрудно догадаться из названия, этот продукт представляет собой программный эмулятор БК, который я обещал написать в течение года :) Если Вы никогда (или практически никогда) не сталкивались с БК - для начала ознакомьтесь с FAQ.
Программа написана на 100% ассемблере, критичные по времени участки оптимизированы под 68020+ с учётом наличия fast-памяти. Для желающих создать свои эмуляторы других основанных на PDP-11 машин, а также портировать эмулятор на другие 680х0 платформы (например, Macintosh) и под другие операционные системы в комплекте прилагается исходный текст программы.

Настоящая версия обеспечивает полноценную эмуляцию:

Принцип работы эмулятора следующий: очередная 16-битная инструкция процессора выбирается из памяти, затем из 256-килобайтной таблицы переходов берётся адрес обработчика. Простейшие инструкции обрабатываются сразу, в более сложных затем идёт разбор методов адресации и вызов процедур обработки адресаций (на каждую комбинацию регистра и метода заведен свой обработчик). Регистры PDP-11 хранятся в регистрах 68k - регистрам R0-R7 соответствуют A0-A3 и D0-D3. Слово состояния лежит в D5, A4 указывает на область памяти эмулятора. Для доступа к этой памяти применяется косвенная адресация с индексированием d(A4,Rn.w), при обращении к словам в памяти производится «обмен местами» байт (у PDP-11 и у 68k порядок байт в слове при обращении к памяти разный). Некоторые наиболее часто применяемые инструкции - пересылки из регистра и в регистр, а также сдвиги обрабатываются без анализа кода операции, то есть на все варианты операций заведены собственные подпрограммы - это позволило несколько поднять быстродействие.

Все предложения - как комментарии и идеи по оптимизации кода, так и комментарии по поводу этого документа (впрочем, как и всё остальное) - направляйте мне.


Перейти к [ Содержанию ] [ FAQ ]