
Сообщение от
ZX_NOVOSIB
Как он, бейсик, определят что CLEAR слишком низкая?
Разница между новым значением RAMTOP и значением в (STKEND) должна быть больше 50 байт. Если ты не планируешь возвращаеться в BASIC, то CLEAR можно и не делать, хотя при этом все равно возможны side-эффекты. Если ты подменишь значение в STKEND, BASIC умрет. Как вариант:
Код:
ld de,(PROG) ; #5c53
ld hl,(STKEND) ; #5c65
dec hl
call RECLAIM-1 ; #19e5
При этом стирается вся BASIC-программа, переменные и все, что там ниже, но делается это корректно.
Если ты попытаешься обмануть интерпретатор, поставить насильно CLEAR выше, чем он позволяет, и вернешься в BASIC, то у тебя машинный стек наедет на стек калькулятора, а BASIC без калькулятора не может исполнить и десятка команд. Собсна, затрет сам себе машинный стек и улетит в космос.