|
Глава 25 - системные переменные.
|
Глава 25
С И С Т Е М Н Ы Е П Е Р Е М Е Н Н Ы Е
Байты памяти с 23532 до 23733 предназначены для специального
использования. В них размещаются, так называемые системные пере-
менные. Не надо путать их имена с именами переменных в программе.
Компьютер не распознает ссылки к этим переменным из бейсик прог-
раммы по их именам. Имена изпользуются только для мнемонического
обозначения этих переменных в этом описании.
Информация, записанная в первом столбце таблицы, имеет сле-
дующее значение:
X - изменять нельзя, так как это может нарушить работу системы.
N - изменение переменной не приводит к длительному эффекту.
Число - число байтов в переменной (для двухбайтовых переменных
младший байт первый).
Например, необходимо изменить значение на V в двухбайтовой
переменной по адресу N:
10 POKE N,V - 256*INT(V/256)
20 POKE N+1,INT(V/256)
Для просмотра нового значения можно использовать оператор:
PEEK N+256*PEEK(N+1)
Ъ-----В-------В---------В----------------------------------------ї
? 3H ? Адрес ? Имя ? Содержание ?
Г-----Е-------Е---------Е----------------------------------------?
? N8 ? 23552 ? KSTATE ? Используется при чтении с клавиатуры ?
Г-----Е-------Е---------Е----------------------------------------?
? N1 ? 23560 ? LAST K ? Запоминается вновь нажатая клавиша ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23561 ? REPDEL ? Время, в 50-ых долях секунды, в течение?
? ? ? ? которого клавиша должна быть зафиксиро-?
? ? ? ? вана в нажатом состоянии, начальное ?
? ? ? ? значение 35, но может быть изменено. ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23562 ? REPPER ? Задержка в 50-х долях секунды, между ?
? ? ? ? последовательными опросами клавиш, ?
? ? ? ? начальное значение 5 ?
Г-----Е-------Е---------Е----------------------------------------?
? N2 ? 23563 ? DEFADD ? Адрес аргументов функции пользователя, ?
? ? ? ? если они используются , иначе 0. ?
Г-----Е-------Е---------Е----------------------------------------?
? N1 ? 23565 ? K DATA ? Второй байт управления цветом с кла- ?
? ? ? ? виатуры. ?
Г-----Е-------Е---------Е----------------------------------------?
? N2 ? 23566 ? TVDATA ? Байты цвета, AT,TAB управления телевиз.?
Г-----Е-------Е---------Е----------------------------------------?
? X38 ? 23568 ? STRMS ? Адреса подключенных каналов. ?
А-----Б-------Б---------Б----------------------------------------Щ
Ъ-----В-------В---------В----------------------------------------ї
? 3H ? Адрес ? Имя ? Содержание ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23606 ? CHARS ? Адрес символьного набора -255, обычно ?
? ? ? ? этот набор находится в ПЗУ, но может ?
? ? ? ? быть размещен и в ОЗУ с указанием CHARS?
? ? ? ? адреса размещения: ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23608 ? RASP ? Продолжительность звукового сигнала ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23609 ? PIP ? Длительность задержки устраняющей дре- ?
? ? ? ? безг клавиатуры. ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23610 ? ERR NR ? Код сообщения -1, начальное значение ?
? ? ? ? 255 ( для '-1'), т.е. PEEK 23610=26 ?
Г-----Е-------Е---------Е----------------------------------------?
? X1 ? 23611 ? FLAGS ? Управляющие флажки бейсика ?
Г-----Е-------Е---------Е----------------------------------------?
? X1 ? 23612 ?TV FLAG ? Флажок телевизора ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23613 ? ERR SP ? Адрес в аппаратном стеке, используемый ?
? ? ? ? как адрес возврата при ошибке. ?
Г-----Е-------Е---------Е----------------------------------------?
? N2 ? 23615 ? LIST SF ? Адрес возврата из автоматического ?
? ? ? ? листинга. ?
Г-----Е-------Е---------Е----------------------------------------?
? N1 ? 23617 ? MODE ? Режим, спецификация (K), (L), (C), (E) ?
? ? ? ? или (G) курсора. ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23618 ?NEW PPC ? Номер строки, на которую должен быть ?
? ? ? ? сделан переход. ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23621 ? PPC ? Номер строки оператор в которой ?
? ? ? ? выполняется. ?
А-----Б-------Б---------Б----------------------------------------Щ
Ъ-----В-------В---------В----------------------------------------ї
? 3H ? Адрес ? Имя ? Содержание ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23623 ? SUB PPC ? Порядковыйй номер выполняющегося ?
? ? ? ? оператора в строке. ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23624 ? DORDCR ? Цвет рамки экрана, содержит атрибут ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23625 ? K PPC ? Количество текущих строк курсоров ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23627 ? VARS ? Адреса переменных. ?
Г-----Е-------Е---------Е----------------------------------------?
? N2 ? 23629 ? DEST ? Адрес переменной в задании ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23631 ? CHANS ? Адрес канала данных ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23633 ? CURGRL ? Адрес данных для ввода-вывода ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23636 ? PROG ? Адрес бейсик программы. ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23637 ? NXTLIN ? Aдрес следующей строки в программе ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23639 ? DATADD ? Адрес терминатора последнего символа ?
? ? ? ? B DATA. ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23641 ? E LINE ? Адрес выведенной команды. ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23643 ? K CUR ? Адрес курсора. ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23645 ? CH ADD ? Адрес следующего интерпретируемого ?
? ? ? ? символа: символ аргумента в PEEK, ?
? ? ? ? NEWLINE или POKE операторах. ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23647 ? X PRI ? Адрес символа следующего за маркером ?
? ? ? ? (?). ?
А-----Б-------Б---------Б----------------------------------------Щ
Ъ-----В-------В---------В----------------------------------------ї
? 3H ? Адрес ? Имя ? Содержание ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23649 ? WORR SP ? Адрес временной рабочей области ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23651 ? STK SOT ? Адрес "дна" програмируемого стека ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23653 ? STK END ? Адрес начала резервной области памяти ?
Г-----Е-------Е---------Е----------------------------------------?
? N1 ? 23655 ? BREG ? B-регистр калькулятора ?
Г-----Е-------Е---------Е----------------------------------------?
? N2 ? 23656 ? MEM ? Адрес области, используемой как па- ?
? ? ? ? мять калькулятора ( обычно MEMBOT, но ?
? ? ? ? не всегда). ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23658 ? FLAG S ? Старшие флажки ?
Г-----Е-------Е---------Е----------------------------------------?
? X1 ? 23659 ? DF SZ ? Число строк (включая и одну чистую) ?
? ? ? ? в нижней части экрана ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23660 ? S TOP ? Количество верхних строк в программе ?
? ? ? ? в автоматическом листинге. ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23662 ? OLDPPC ? Номер строки на которую указывает ?
? ? ? ? CONTINUE. ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23664 ? OSPPC ? Номер оператора в строке на которую ?
? ? ? ? указывает CONTINUE. ?
Г-----Е-------Е---------Е----------------------------------------?
? N1 ? 23665 ? FLAGX ? Переменные флажки ?
Г-----Е-------Е---------Е----------------------------------------?
? N2 ? 23666 ? STR LEN ? Размер расстояния между строками ?
Г-----Е-------Е---------Е----------------------------------------?
? N2 ? 23668 ? T ADDR ? Адрес следующего символа в синтакси- ?
? ? ? ? ческой таблице. ?
А-----Б-------Б---------Б----------------------------------------Щ
Ъ-----В-------В---------В----------------------------------------ї
? 3H ? Адрес ? Имя ? Содержание ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23670 ? SEED ? Начальное значение для RND, ?
? ? ? ? изменяется функцией RANDOMIZE ?
Г-----Е-------Е---------Е----------------------------------------?
? 3 ? 23672 ? FLAMES ? Счетчик кадров - приращение через ?
? ? ? ? каждые 20 MS ( см. главу 18). ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23675 ? UDG ? Адрес первого определяемого ?
? ? ? ? пользователем символа. ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23677 ? COORDS ? X -координата точки графопостроителя ?
? ? 23678 ? ? Y -координата точки графопостроителя ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23679 ? P POSN ? 33-позиционное число для позициониро- ?
? ? ? ? вания принтера. ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23680 ? PR CC ? Младший байт адреса позиций для ?
? ? ? ? LPRINT для печати. ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23681 ? ? Не используется ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23682 ? ECHO E ? 33-позиционное и 24-строковое число ?
? ? ? ? (в нижней половине) конца входного ?
? ? ? ? буфера ?
Г-----Е-------Е---------Е----------------------------------------?
? ? 23684 ? DF CC ? Адрес принт-позиций в области экрана ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23686 ? DF CCL ? Подобно DF CC для нижней части экрана ?
Г-----Е-------Е---------Е----------------------------------------?
? X1 ? 23688 ? S POSN ? 33-позиционное число для PRINT ?
? ? ? ? позиций ?
? X1 ? 23669 ? ? 23- строковое число для PRINT позиций ?
Г-----Е-------Е---------Е----------------------------------------?
? X2 ? 23690 ? S POSNL ? Подобно S POSN для нижней части ?
А-----Б-------Б---------Б----------------------------------------Щ
Ъ-----В-------В---------В----------------------------------------ї
? 3H ? Адрес ? Имя ? Содержание ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23692 ? SCR CT ? Счетчик сверток: всегда на 1 больше ?
? ? ? ? числа сверток, которые должны прове- ?
? ? ? ? дены перед остановом со сверткой если ?
? ? ? ? вы установите это число больше чем на ?
? ? ? ? 1 (скажем 255 ), то экран будет сво- ?
? ? ? ? рачиваться без запроса к. ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23693 ? ATTR P ? Сплошные цвета ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23694 ? MASK P ? Используется для высвечивания цвета ?
? ? ? ? бит, установленный в 1, показывает ?
? ? ? ? биты атрибутов берутся не из ATTR, а ?
? ? ? ? из того, что указано на экране. ?
Г-----Е-------Е---------Е----------------------------------------?
? N1 ? 23695 ? ATTR T ? Временный указаталь цветов ?
Г-----Е-------Е---------Е----------------------------------------?
? N1 ? 23696 ? MASK T ? Временный MASK P ?
Г-----Е-------Е---------Е----------------------------------------?
? 1 ? 23697 ? P FLAG ? Старшие флажки ?
Г-----Е-------Е---------Е----------------------------------------?
? N30 ? 23698 ? MEMBOT ? Область памяти для калькулятора, ?
? ? ? ? используется для записи чисел, ?
? ? ? ? которые могут быть размещены в ?
? ? ? ? програмируемом стеке калькулятора ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23728 ? ? Не используется ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23730 ? RAMTOP ? Адрес последнего байта области ?
? ? ? ? бейсик-системы ?
Г-----Е-------Е---------Е----------------------------------------?
? 2 ? 23732 ? P-RAMT ? Адрес последнего байта физического ?
? ? ? ? ОЗУ ?
А-----Б-------Б---------Б----------------------------------------Щ
Следующая программа выдает вам первые 22 байта области
системных переменных:
10 FOR N=0 TO 21
20 PRINT PEEK (PEEK 23627+256*PEEK 23628+N)
30 NEXT N
Теперь замените строку 20 на
20 PRINT PEEK(23765+N)
и вы дополнительно получите DAMP самой программы.
|
|