Получился первый удобоваримый ассемблерный вариант, который собирается в точную побитнуюLavr wrote:Ну и планирую я его ассемблерный текст привести к виду, который бы компилировался в побитную копию.
А это не так просто, Монитор перемещаемый - почти всё на относительных смещениях...
копию оригинала Монитора. При сборке со смещением о1000 все относительные смещения вычисляются правильно,
и далее полученный бинарный код перемещаем.
Собирал код вот этим КроссАссемблером, он добавляет в начале 4 байта для эмулятора БК-0010.
Сверял сборку побитно програмой fc (file compare) с опцией /b - бинарное сравнение.
Сравнивал с оригинальным кодом Монитора, который тоже на всякий случай прилагаю: На всякий случай - пометки в исходнике: '%%%' - посмотреть, что за число; '???' - это не совсем понятно.
Нашел все таблицы переходов (вычисляются сейчас при сборке правильно), нашел таблицы и значения
в тексте для 7-сегментных кодов.
Не нашел 7-сегментных кодов для комбинации 'HA': Возможно, их делают не так прямолинейно, как остальные...
В общем с этой версией исходного кода Монитора уже удобно работать с компилятором Ассемблера,
хотя следует быть внимательным - кое где относительные смещения к таблицам вычисляются неявно,
без указания метки, поэтому вставлять что-то своё в код следует осторожно.
Везде, где я это нашел - прокомментировал, но доводить до вычислений Ассемблером - не стал.