Пока не нашел закономерность появления этого глюка, но нашел попутно другой глюк: если в программе одна метка она не импортируется.Сообщение от SMT
Пока не нашел закономерность появления этого глюка, но нашел попутно другой глюк: если в программе одна метка она не импортируется.Сообщение от SMT
я уже писал, почему. или лучше список из десятка найденных цепочек разгребать?Сообщение от Spectreможет, дело в размере (таблица не помещается в страницу?)Сообщение от Spectre
Отловил я этот глюк. Причина очень простая: неправильно определяется начало таблицы меток. Я компилирую разные исходники, смотрю какой адрес аласм передает в STS, сравниваю его с тем что показывает US по CTRL+A, иногда адреса совпадают, но часто различаются, тогда глюк и проявляется.
исходник вышлешь?
http://ob.scenosaurus.org/temp/bug.zipСообщение от SMT
Бага нету на версиях аласма 4.47 и 5.01 (может еще на каких, я не проверял). Есть баг вот на этой версии (4.46) с этим куском исходника. Настроено под Pentagon 512. При компиляции выдаст кучу ненайденных меток, не обращай внимание. US не находит ни одной метки, STS 5.6 спокойно их находит.
Проверяю на US 0.32b4.
FromNet: Ryazan (Ryazan_Net)
Hello Андрей!
16 Oct 05 21:52, Андрей Богданович wrote to All:
я слабо разбираюсь в исходнике аласмаПокопал я немного компилятор Аласма, пытался найти проверку которой он
метки разбирает на правильные и неправильные, но там не все так
просто, нахрапом найти не получилось. Может AlCo напишет, или позже я
еще раз попробую.
видимо, в srclbl просто проходятся все символы идентификатора, а выход
происходит на неметочных символах. после этого ошибка выдаётся не здесь, а при
анализе следующего символа (если он не арифметический, не команда, не
комментарий, не табуляция.... одним словом, неожиданный).
- A.Coder [Wolf3d2004 InfoGuide7 ACEdit96 ACN42 PT3695 Chip13 HexFill HDDoct6]
[Ansi04 8col12 ZXRar27UnR59 Jpg042 CacVox1 Dbs07 Gluk61R PC21 Alasm5.01 Sts70i]
... ZX Spectrum today
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
видимо, разные версии аласма по-разному заканчивают табдицу меток. в одном случае кодом #00 (по адресу #FDFF), в другом - строго по адресу #FE00, начиная с #FE00 - просто мусор. сейчас сделал оба условия. дополнительно сделал проверку корректности ещё не определённых меток (раньше их игнорировал, но ведь идентификатор для них уже сформирован, можно проверить). должно быть меньше ложных срабатыванийСообщение от Spectre
тут ещё можно подумать с нулевым банком. для четвертинки #0000-#3fff указывать, в какой физической странице (пзу, кеш, банк 0, или что-то ещё) будет лежать этот код. для полной универсальности можно и на остальные чеивертинки жто сделать, например, для ATM можно банки перемещать, но слишком запутанно для пользователя будет...
Проверил на разных моделях памяти (Scorpion и Pentagon), импортирует отлично. Только появился баг: кое-где попадаются метки с мусором вместо названия (в этих местах меток вообще быть не должно), причем в одном месте есть JP на такую метку, так US вываливается в винду с ошибкой когда пытается напечатать этот JP.
Было бы просто великолепно иметь возможность выбора! Я думаю достаточно выбирать из 3 вариантов: ПЗУ (default), ОЗУ (0 bank) и кэш.Сообщение от SMT
странно, ведь содержимое меток проверяется на алфавитно-цифровые знаки. не можешь выслать пример файла?Сообщение от Spectre
Я пытаюсь вычленить кусок исходника на котором глюк заметен, но пока не получается. Есть у меня подозрение что это связано с такими командами как JR NZ,$-5, где имя метки не присутствует, но метка есть.Сообщение от SMT
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)