Апну тему. В исходниках осталась одна логическая ошибка с выравниванием данных, поэтому вот два варианта сборки - моноблок и бейсик-загрузчик с отдельными файлами.
не знаю, на что эта ошибка влияет, у мну так компилиЦЦа, кстати в крайнем компиляторе, надо бы на предыдущих проверить.
Но при этом скомпиленное работает, и в эмуле, и в virtual TR-DOS, что главное.Код:---------- Capture Output ----------> "K:\Program Files\Crimson Editor SVN286M\sjasmplus-win32-1.07-rc7\sjasmplus.exe" scl.asm SjASMPlus Z80 Cross-Assembler v.20190304.3 scl.asm(24): error: [IF] Forward reference scl.asm(31): error: [IF] Forward reference Pass 1 complete (2 errors) Pass 2 complete (2 errors) writing 00258657 Pass 3 complete Errors: 2, warnings: 0, compiled: 118 lines > Terminated with exit code 1.
Profi v3.2 -=- Speccy2010,r2
Вроде бы мелькало решение таких ошибок. У меня тоже выскакивают сообщения, но файлы работают.
Работает потому что размер кода внутри блоков IF и ELSE одинаков. (+ в данном случае в IF используется разница адресов, на которую длина кода внутри IF/ELSE все равно не влияет) Иначе в общем случае могут быть проблемы. Разрулить в sjasmplus это по-нормальному по идее можно (не для всех случаев), но нетривиально.
Последний раз редактировалось mastermind; 26.03.2019 в 02:19.
Если причина в секторах для моноблока
то проще такКод:macro sectors datab,datae IF low (datae-datab)=0 db high (datae-datab) ELSE db (1+high (datae-datab)) ENDIF endm
Код:db high($FE+datae-datab)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)