Цитата Сообщение от ALKO Посмотреть сообщение
Reobne, сорс отправил (паскалевский исходник, ну и асм, в который оно собирается).
Принял, смотрю.
Музыкальный файл ты дизассемблировал полностью, чтобы без запарки иметь его в исходном файле.
Это рациональная идея. Только в следующий раз, когда будешь дизассемблировать, поставь галочку "в виде DEFB" (в EmulZWin "As Data Block"). Так будет надёжнее. Ибо кто его знает, вдруг попадётся код, синонимичный другому коду, и после туда-сюда-ассемблера, код изменится. Или недокументированная команда какая нибудь попадётся, которую дизассемблер не прожуёт...

Оказывается я ошибся, когда решил, что поставив метку LastAddr в конец кода, мы получим действительно конец кода. Дело в том что LikePascal после этой метки запишет свои внутренние подпрограммы. Так что метка LastAddr не будет нам показывать место, за которым свободная память. Сейчас я собираюсь переписать свой Im2Init, чтобы таблица прерываний лежала внутри тела программы.

И ты зря закомментировал asm(MUSINIT);. Он нужен конечно! Andrew771 тебе не глядя посоветовал, у него опыт работы с другим музыкальным редактором, так что в этом вопросе не полагайся на него.



- - - Добавлено - - -

Andrew771, В будущих версиях можно было-бы предусмотреть особую метку в конце программы, чтобы после неё выделять свободную память.