В процесс игр - обнуления флагов ячеек и выставления признака - Код (с автоопределением макровызовов) наткнулся на то, что обнуление флагов на макровызове осколками цепляет предыдущий макровызов, причём цепляет фатально - сам макровызов не обнуляется, а вот с его ячеек сбрасывается флаг, что они из макровызова. Разбираясь, наткнулся на (свой!) непонятный код. Такое впечатление, что была какая-то ошибка в определении макросов (а может были мыли про вложенные макросы - что, как мне сейчас кажется - глупость) - и вот она рванула. Закомментил, оставил комментарии, пофиксил - играюсь дальше...
- - - Добавлено - - -
Наткнулся так же на ошибку DisAsm и одновременно особенность дизассемблируемого файла. Выглядит так
То есть, я предполагаю, что в исходнике было что-то типаКод:5599 036272 M36272: U 5600 036272 016765 002540 000006 MOV M36276, 6(R5) ; Ошибка! Должно быть K41036 5602 036300 001402 BEQ M36306 6294 040632 M40632: 6295 040632 104405 TRAP 5 6296 040634 RETURN ; 40636: ; Этот адрес уже за пределами файла
но особенность LDA формата в том, что .BLKB и .BLKW в выходной файлы не попадосКод:6294 040632 M40632: 6295 040632 104405 TRAP 5 6296 040634 RETURN ; 40636: ; Этот адрес уже за пределами файла .BLKB 200 .... 041036 K41036: ...
Я уже рисовал код для правильной работы с такими ОТСУТСТВУЮЩИМИ ячейками в LDA, но, видимо, не всё корректно в датском королевстеБудем смотреть и фиксить
Интересно, как с таким справляется всеми любимый IDA (да ещё что бы и на выходе был файл, который проходит компиляцию стандартным MACRO-11 !)![]()





Ответить с цитированием