Как работать с защищёнными программами (тайники спектрума) 1990 г.

Глава 5. - "защитные" управляющие символы.


5 "ЗАЩИТНЫЕ" УПРАВЛЯЮЩИЕ СИМВОЛЫ

В этом разделе мы рассмотрим остальные управляющие
символы. Три из них касается изменения места вывода, 6 -
смены атрибутов.

Символ "УПРАВЛЯЮЩАЯ ЗАПЯТАЯ" -CHR$ 6 - "СОММА CONTROL"
Этот символ действует так же как запятая, отделяющая тексты
в инструкции PRINT, т.е. выводит столько пробелов (но не
менее одного) , чтобы оказаться в колонке 0 или 16:

PRINT " 1", "2 "
а также

PRINT "1" + CHR$ 6+"2"
имеют идентичное значение.

Символ "AT -УПРАВЛЯЮЩИЙ" - CHR$ 2 2 -AT CTRL
Этот символ позволяет переносить позиции вывода в любое
место экрана так же. как AT а инструкции PRINT. После этого
знака должны появиться два байта, определяющие номер строки
и номер колонки, в которой должен быть расположен следующий
знак:

PRINT AT 10,7, " ! "
равнозначно

PRINT CHR$ 22;CHR$ 10; CHR$ 7: "!"
Чтобы убедиться,как с помощью этого символа делать програм-
мы невидимыми < точнее листинги программ) , введем, например:

10 RANDOMIZE USR 3 0000: REM НИЧЕГО НЕ ВИДНО !
После инструкции REM введем три пробела, а после восклица-
тельного знака две управляющие запятые. Их можно получить
непосредственно с клавиатуры, нажимая последовательно клави-
ши: EXTENT (или оба SHIFTa вместе) чтобы получить курсор "Е"
а затем клавишу "6" (курсор сменит цвет на желтый) и DELETE
-курсор перескочит к ближайшей половине экрана. После ввода
этой строки заменим три этих пробела на знак AT 0,0 с
помошью РОКЕ 23774,22: РОКЕ 23775,0: РОКЕ 23776,0
Попробуем теперь посмотреть программу. На экране не появит-
ся текст всей строки - начальная часть ее закрыта надписью,
находящейся после инструкции REM и знака AT CHRL. Такие же
трудности возникают, если эту строку перенести в зону редак-
тирования (клавиша EDIT) . Координаты, заданные в символе
AT CHR$ должны находиться в поле экрана, т.е. номер строки
не может быть больше 21, номер колонки - не больше 31.
Задание больших значений в случае FRINT или LIST вызовет
сообщение "OUT OF SCREEN" и отмену дальнейшего вывода.
Если же листинг получен нажатием "ENTER" (автоматический
листинг) - также наступит прекращение дальнейшего вывода,
а кроме того в нижней части экрана появится мигающий знак
вопроса - сигнал ошибки. Следовательно это практический
способ защиты от просмотра текста для каждой программы.

Символ "ГОРИЗОНТАЛЬНАЯ ТАБУЛЯЦИЯ" -CHR$ 23 - "TAB CTRL"
После этого символа следуют два байта, определяющие номер
колонки, в которую переносится позиция вывода. Они трактуют-
ся как одно двухбайтовое число ( первый байт - младший ).
Поскольку колонок только 32, то число берется по модулю 32,
т.е. старший байт и три старших бита младшего байта игнори-
руются. Второй существенной стороной является то, что TAB
переносит позицию вывода с помощью вывода пробелов - также
как и управляющая запятая и, следовательно, может быть
использован для закрывания уже находящихся на экране
текстов.




  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Их нравы - бабка стриптизерша.
Юмор - В.Тихонов.
От автора - Встречайте новую рубрику, новые обзорчики.
Software for Sale - Купи себе немного Speccy.
Silly Jokes Time!

В этот день...   1 января

SibNews #08, Woot! #01, Spectrum Magazine #01, ACNews #25, Psychoz #14, ACNews #14, Last 128 #08, Last 128 #06, Last 128 #05, Last 128 #04, Last 128 #03, Last 128 #02, Last 128 #09, Last 128 #3.5, Last 128 #8.025, Sinclair Club #05, Last 128 #M!R 01, Fantadrom #01, Buzz #20, Last 128 #01, DonNews #13, Nicron #120, Promised Land #01, Inferno #01, Marazm #25, Ultimathum #01, Marazm #21, Hooy Mag #02, KrNews #11, Marazm #22, Marazm #23, ZX Football 2000 #01, Codemania #01, Always #03, Bugs #02, IzhNews #08, Virtual Worlds #01, Listok #04, Scenergy #02, Flash Info #18, Marazm #16, Marazm #17, Zed #01, Balagan #02, ZX Format #08, ZX Power #03, Shock #01, Impulse #02, Deja Vu #03, ZX Club #08, ZX Club #06, Numberology #01, Marazm #13, Marazm #12, Marazm #14, Gorodok #02, Zodiac #01, Marazm #15, Deja Vu #07, Marazm #11, Deja Vu #07, Playboy #03, Crazy News #2, Crazy News #4, ZX Light #01, Crazy News #5, Playboy #02, ZX News #03, ZX Review #1-2, Read Me #02, Crazy News #3, Nicron #13, Read Me #01, Public Spirit #01, Faultless #06, Faultless #05, ZX Software #01, Stump #04, Speccy #07, Возраждение #0, Speccy #03, On-Line #17, Scene+ #01, Welcome Press #01, ZX Konig #04, Adventurer #01, Faultless #05, Faultless #04, Di Halt #01, Faultless #01, Playboy #01, Crazy News #1, Faultless #03, Pioneer #03, Sinclair Town #02, ZX Magazine #01, Eldorado #01, ZX Magazine #02, Spectron #01, ZX News #01, ZX Konig #02, 200 #W, Welcome Press #00, Dune #07, Subliminal Extacy #01, Subliminal Extacy #02, ZX Konig #01, Subliminal Extacy #00, Muchomor #01, Spectrofon #01, ZX Revija #02, Outlet #01, Outlet #1-3