PDA

Просмотр полной версии : Напомните про блокировку L BREAK



JeRrS
15.02.2011, 11:00
0

null_device
15.02.2011, 11:44
Если там и упоминалось, что-нибудь подобное, то остановка по-break не блокировалась, а изменялся адрес ПП обработки ошибок. Т.е. вместо вывода сообщения об ошибке и остановки бейсик программы, производился переход на определенную строку в бейсике (или выполнялась ассемблерная ПП, не вызывающая остановку выполнения бейсика).
По-моему изменение данной переменной (адрес ПП обработки ошибок) на 2 от того, что там находится первоначально (вверх или вниз, уже не помню) давало эффект "блокировки" нажатия break (но при использовании в программе go sub ..\return он не работал).

AER
15.02.2011, 13:33
пока 23613,0 вызовет ресет при нажатии бреак, или любой ошибке бейсика. но заметил из-за этого иногда не катят проги в коде.

John North
15.02.2011, 18:15
23759,0
вроде как сжимал 'нижнее системное окно' до нуля строк.

23739,111
вроде перенаправлял вывод системных сообщений на принтер.
но корректно работало не на всех прошивках..

Enigmatic
29.12.2011, 21:27
Подскажите процедурку для защиты проги от банального BREAK.
(в ассемблере)

Alex Rider
31.12.2011, 00:41
блокирующий вызов L BREAK cont repeats.

Так L BREAK into program или D BREAK cont repeats?
Теория и практика про обработку ошибок в Basic (написано толково):
http://vtrdos.ru/book/ZXREVU92.ZIP, страница 263.
Если уменьшить на 2 слово, на которое указывает системная переменная #5C3D, то при возникновении любой ошибки повторно выполнится тот опреатор, который ее вызвал. Если это ошибка L, то получится как бы блокировка BREAK'а. Если нет, то последствия могут быть любыми (зависон скорее всего). Алсо вероятно есть операторы, которые возвращают штатные цифры #1303 в слово, на которое указывает #5C3D (я бы побоялся использовать CLEAR и RUN при такой "защите").

AndTorp
31.12.2011, 03:15
В книге "Системные программы для ZX-Spectrum (Питер'93)"
http://vtrdos.ru/book/SYSZX.ZIP
на странице 162 описаны две процедуры из "SuperCode" - обработка ошибок бейсик-программы и обработка прерывания по BREAK.