МЭСМ-6 работает
2019-04-06 23:00![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Сегодня свершилось эпохальное событие: процессор МЭСМ-6 прошел основной тест арифметического устройства, доставшийся нам от БЭСМ-6. То есть теперь с уверенностью можно сказать, что машина работает. Подробности смотрите в сообществе
besm6.
Исходники теста АУ и файлы трассировки можно скачать отсюда: mesm6-test-alu-detailed.zip (92.2 Мб).
![[community profile]](https://www.dreamwidth.org/img/silk/identity/community.png)
Исходники теста АУ и файлы трассировки можно скачать отсюда: mesm6-test-alu-detailed.zip (92.2 Мб).
no subject
Date: 2019-04-07 14:48 (UTC)no subject
Date: 2019-04-07 15:52 (UTC)Сбылась мечта детства: досконально понять устройство БЭСМ-6.
no subject
Date: 2019-04-07 18:37 (UTC)no subject
Date: 2019-04-07 16:55 (UTC)no subject
Date: 2019-04-08 05:44 (UTC)(1) Сдвиг на -64 отрабатывался как сдвиг на 0. Простая ошибка, особенно характерная для программистов на Си. :)
(2) При заблокированной нормализации не выполнялась нормализация вправо. То есть сложение двух одинаковых положительных чисел давало отрицательный результат.
(3) Команда XTA 0 не устанавливала логическую группу. Потому что я её заоптимизировал для эффективности до одного такта, а про логическую группу забыл.
(4) Потерялся знаковый бит порядка в команде E+X.
(5) Если слагаемые отличаются больше чем на 2^40, часть битов мантиссы при выравнивании выезжала за пределы регистра РМР и терялась для округления. Пришлось ввести "залипающий" бит, который ловит выезжающие единицы и учитывается при округлении.
(6) Аналогично с единицей, прибавляемой при инвертировании знака слагаемого.
(7) Нетривиальный алгоритм работы команды STI (15), если регистр M(15) равен 15. Должна выполняться как ATI 15; XTA (15).