0
0
Последний раз редактировалось JeRrS; 06.01.2013 в 18:20.
Группа в ВК, посвященная кассетным версиям игр для спектрума
В коллекции:GRM-128 (YM+TR-DOS), Кворум 128+, Дельта 128, Эксперт-006, Рифей-01, Квант V3.а, Квант (Didaktik), Спектр БК-001, Sintez-M (Intercompex), Компаньон-2 (V2.2)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Если там и упоминалось, что-нибудь подобное, то остановка по-break не блокировалась, а изменялся адрес ПП обработки ошибок. Т.е. вместо вывода сообщения об ошибке и остановки бейсик программы, производился переход на определенную строку в бейсике (или выполнялась ассемблерная ПП, не вызывающая остановку выполнения бейсика).
По-моему изменение данной переменной (адрес ПП обработки ошибок) на 2 от того, что там находится первоначально (вверх или вниз, уже не помню) давало эффект "блокировки" нажатия break (но при использовании в программе go sub ..\return он не работал).
Когда есть, но не знаешь где - это все равно, что нету.
пока 23613,0 вызовет ресет при нажатии бреак, или любой ошибке бейсика. но заметил из-за этого иногда не катят проги в коде.
23759,0
вроде как сжимал 'нижнее системное окно' до нуля строк.
23739,111
вроде перенаправлял вывод системных сообщений на принтер.
но корректно работало не на всех прошивках..
Хороший.. Плохой.. Главное - у кого ружьё !!
Подскажите процедурку для защиты проги от банального BREAK.
(в ассемблере)
Моё железо
Скрытый текст
ZX_Evolution rev.b + NEO_GS + TSFM
Ленинград-128/256kb + AY + TR_Dos
Delta_micro /repair status/
Москва_48кb /repair status/[свернуть]
Так L BREAK into program или D BREAK cont repeats?
Теория и практика про обработку ошибок в Basic (написано толково):
http://vtrdos.ru/book/ZXREVU92.ZIP, страница 263.
Если уменьшить на 2 слово, на которое указывает системная переменная #5C3D, то при возникновении любой ошибки повторно выполнится тот опреатор, который ее вызвал. Если это ошибка L, то получится как бы блокировка BREAK'а. Если нет, то последствия могут быть любыми (зависон скорее всего). Алсо вероятно есть операторы, которые возвращают штатные цифры #1303 в слово, на которое указывает #5C3D (я бы побоялся использовать CLEAR и RUN при такой "защите").
В книге "Системные программы для ZX-Spectrum (Питер'93)"
http://vtrdos.ru/book/SYSZX.ZIP
на странице 162 описаны две процедуры из "SuperCode" - обработка ошибок бейсик-программы и обработка прерывания по BREAK.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)