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