Я думал, ты в курсе, как работает RST 8, но если нет - поясню. Он восстанавливает SP из системной переменной ERR_SP и выполняет возврат. Таким образом, при выполнении RST 8 где-нибудь во вложенной подпрограмме из бейсика, выполняется "ускоренный возврат" на верхний уровень исполнения. При этом освобождается ресурс - стек, на котором хранятся адреса вложенных подпрограмм и сохраненные значения регистров. Временно выделенная память не освобождается, но по-видимому, RST 8 не используется в тех местах бейсика, где нужно освобождать временно выделенную память, либо такое освобождение реализуется до вызова RST 8, то есть в обход механизма исключений.
Если RST 8 срабатывает при проверке синтаксиса - то бейсик отображает знак вопроса в редактируемой строке, в противном случае - печатает сообщение об ошибке. То есть налицо некое подобие блоков TRY/CATCH, так как по RST 8 возврат не всегда происходит в одно и то же место кода.




Ответить с цитированием
Размещение рекламы на форуме способствует его дальнейшему развитию 
