Посмотрел как реализован RENUM, криминала не нашел и без примера неправильной работы вряд ли смогу найти.
Попутно заметил, что в двух из четырех случаев вызова процедуры CHECKCROSSWITHSTACK забыл изменить следующий байт с команды на данные. Это не приводит к проблемам при компиляции исходника, но для наглядности и правильности исходника все же стоит его поправить, у себя поправил.
- - - Добавлено - - -
И все же я понял, в чем проблема. Дело не в размере программы (в VU7 написали про ошибки RENUM "особенно в длинных программах"), а в сочетании двух факторов - должна быть ссылка на последнюю строку и перед этим должен был быть хоть один сдвиг списка номеров в сторону уменьшения. Проще всего (я так и сделал в 2.58) при сдвиге в сторону уменьшения пересылать на 1 байт больше. Можно убедиться на renumtest, если после загрузки сделать RENUM1,1 то в других бейсиках во второй строке будет неправильный номер строки в GOTO. Это проблема не только BASIC2.5, а еще оригинального бейсика-микрон. Проверил только РКшный оригинал, но скорее всего и во всех его адаптациях на другие компы этот баг тоже есть.
Наивно надеюсь, что теперь все ошибки исправлены.
- - - Добавлено - - -
Еще попробовал Апогей, Специалист и Искру-1080 (renum 1) - эта ошибка есть.





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