KENBAK-1 sim

 

Вернулся к древнему компьютеру из-за лекции одного "энтузиаста" на "Демодуляция 2023". Не лекция, а позорище, это мудило обосрал все и вся незаслуженно. Короче, решил вернуться к старой идее - сделать эмулятор программы и отладчик. Основу кода взял у симулятора на JS и потратил 3 дня на правку. Идею дизассемблера заимствовал у пакета на Питоне и постепенно доработал код.

Самым сложным была проверка кода, взял готовый бинарь вычисления дня недели по дате. Не работает. Стал разбираться - нужно вносить числа в формате BCD. Не считает. Стал разбираться - алгоритм подсчета другой. Заодно вылезли баги - на одной инструкции отладчик завис на одном адресе. Ну я так и знал - при правке кода вылезут ошибки из-за ублюдской привычки использовать восьмиричные числа. Написал тест всех инструкций - вылезло 8 ошибок! Исправил. И параллельно работе я составлял список опкодов, обнаружив неверные таблицы в интернетах.

Хорошо бы в идеале написать ассемблер, но с мнемониками инструкций сплошная путаница, поэтому я составил таблицу отдельно по категориям команд.

Работает симулятор или нет? Надеюсь, что да. Скачать.

Комментарии