Цитата Сообщение от 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 без калькулятора не может исполнить и десятка команд. Собсна, затрет сам себе машинный стек и улетит в космос.