Pull to refresh
69
Karma
0
Rating
Stanislav Maslovski @smaslovski

Пользователь

Программирование для БК0010 с использованием Android

В качестве комментария допишу, что поскольку Rhialto недавно добавил к macro11 ключи -rsx и -rt11 (генерация объектника либо в формате RSX, либо в RT-11), то можно и не редактировать Makefile перед сборкой. Но тогда при компиляции надо добавлять ключик -rt11. Также, у Rhialto выложен несколько более новый скрипт obj2bin от оригинального автора (Don North), который может работать не только с obj в формате RT-11, но и с RSX. Но там нет поддержки БКшных bin и загрузочных образов. Надо будет обновить свои правки под эту версию и выложить на гитхабе (https://github.com/smaslovski/pdp11dasm.git, в utils), где также можно найти простой дизассемблер БКшных bin файлов.

О том, как найти ошибку в микропроцессоре, выпущенном тридцать пять лет назад

Этот микропроцессор появился на базе другой советской разработки, а именно, однокристального микрокомпьютера 1801ВЕ1, у которого была своя, полностью оригинальная система команд и архитектура (Электроника НЦ). Первые прототипы того, что позже стало БК-0010, были собраны именно на ВЕ1 (с 79 по 81 г.). Однако, в связи с тем, что в 82 году МЭП СССР закрыло все работы по НЦ, процессор пришлось лихорадочно переделывать под архитектуру и систему команд, cовместимую с Электроникой 60 (клон PDP-11), как того хотело министерство. Поэтому, Ваш вариант с «закладкой» я исключаю, как не имеющий под собой оснований (иначе была бы вероятность поиметь проблемы с совместимостью). Более вероятно, что это баг, который появился в процессе спешной переделки микрокода под новую систему команд.

О том, как найти ошибку в микропроцессоре, выпущенном тридцать пять лет назад

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

О том, как найти ошибку в микропроцессоре, выпущенном тридцать пять лет назад

На моей памяти, на форуме ZX-PK.ru обсуждалась такая возможность. По-моему, как раз в теме, на которую сослался Wesha.

О том, как найти ошибку в микропроцессоре, выпущенном тридцать пять лет назад

Например, пока не пофиксят эмуляторы, этот баг дает возможность отличить выполнение на реальном железе от выполнения из-под эмулятора.

О том, как найти ошибку в микропроцессоре, выпущенном тридцать пять лет назад

Про какой-либо аналогичный баг на PDP-11 мне ничего не известно. По документации (ссылка есть в статье), инструкция MOVB на PDP-11 не влияет на флаг С.

О том, как найти ошибку в микропроцессоре, выпущенном тридцать пять лет назад

Спасибо! 1801ВМ1 — отечественная разработка, от PDP-11 позаимствована лишь система команд и общая архитектура.

О том, как найти ошибку в микропроцессоре, выпущенном тридцать пять лет назад

Как уже совершенно верно тут заметили, это сделано ради экономии места за счет уменьшения числа инструкций.

О том, как найти ошибку в микропроцессоре, выпущенном тридцать пять лет назад

Причина выяснена, объяснение (весьма упрощенное, конечно) дано ближе к концу статьи. На самом деле, поскольку есть полная модель процессора в Verilog (благодаря реверсу, который Вячеслав проделал), можно пройтись по всем деталям.

Information

Rating
6,088-th
Registered
Activity