|
Глава 25 - системные переменные.
|
Глава 25
Системные переменные
Байты памяти с 23552 до 23733 предназначены для специального использования. В них размещаются т.н. системные переменные. Не надо путать их имена с именами переменных в программе. Компьютер не распознает ссылки к этим переменным из бейсик-программы по их именам. Имена используются только для мнемонического обозначения этих переменных в этом описании.
Информация, записанная в первом столбце таблицы, имеет следую- щее значение:
х-перамеииая не должна изменяться, т.к. это может нарушить ра- боту системы.
N-изменеиие переменной не приводит к длительному эффекту, число - число байтов переменной (для 2-х байтовых переменных младший байт -1-й).
Например, необходимо изменить значение на V в 2-х байтовой пе- ременной по адресу N:
10 POKE N, V-256MNT (V/256) 20 POKE N+l, INT (V/256) Для просмотра нового значения можно использовать оператор: PEEK N+256+PEEK (N+1)
зи. |
адрес |
имя |
Содержание |
N8 |
23552 |
KSTATE |
используется при чтении с клавиатуры |
N1 |
23560 |
LAST К |
запоминается вновь нажатая клавиша |
1 |
23561 |
REPDEL |
время в 50-х долях секунды,в течение которого клавиша должна быть зафикси- рована в нажатом состоянии.Начальное значение 35,но может быть изменено |
1 |
23562 |
REPPER |
Задержка,в 50-х долях секунды,между последовательными опросами клавиш, начальное значение 5. |
N2 |
23563 |
DEFADD |
адрес аргументов функций пользовате- ля, если они используются,иначе 0. |
N1 |
23565 |
К DATA |
второй байт управления цветом с клави- атуры . |
N2 |
23566 |
TVDATA |
байты цвета,ат,тав управления телевиз. |
Х38 |
23568 |
STRMS |
адреса подключенных каналов |
2 |
23606 |
CHARS |
адрес ^символьного набора-2 5 6.Обычно этот набор находится в ПЗУ,но может быть размешаем и в ОЗУ с указанием в CHARS адреса размещения. |
1 |
23608 |
RASP |
продолжительность звукового сигнала. |
1 |
23609 |
PIP |
длительность задержки,устраняющей дребезг клавиатуры. |
1 |
23610 |
ERR NR |
код сообщения -1.Начальное значение 255 (для "-1"),т.е.РЕЕК 23610 « 255. |
XI |
2361 1 |
FLAGS |
управляющие флажки бейснка. |
XI |
23612 |
TV FLAG |
флажок телевизора. |
Х2 |
23613 |
ERR SP |
адрес в аппаратном стеке,используемый как адрес возврата при ошибке. |
N2 |
23615 |
LIST SP |
адрес возврата из автоматического листинга. |
N1 |
23617 |
MODE |
режим.Спецификация [К] , [L] , [С], [Е] или [G] курсора. |
|
|
|
|
2 |
23618 |
NEW PPC |
номер строки,на которую должен быть сделан переход. |
2 |
23621 |
PPC |
номер строки,оператор в которой выполняется. |
1 |
23623 |
SUB PPS |
порядковый номер, выполняющегося оператора в строке. |
1 |
23624 |
DORDCR |
цвет рамки экрана,содержит атрибуты. |
2 |
23025 |
E PPC |
количество текущих отрок (с курсором). |
X2 |
23627 |
VARS |
адреса переменных. |
N2 |
23629 |
DEST |
адрес переменной в задании. |
X2 |
23631 |
CHANS |
адрес канала данных. |
X2 |
23633 |
CURCHL |
адрес данных для ввода-вывода. |
X2 |
23635 |
PROG |
адрес бейсик-программы. |
X2 |
23637 |
NXTLIN |
адрес следующей строки в программе. |
X2 |
23639 |
DATADD |
адрес терминатора последнего символа в DATA. |
X2 |
23641 |
E LINE |
адрес выведенной команды. |
2 |
23643 |
К CUR |
адрес курсора. |
X2 |
23645 |
CH ADD |
адрес следующего интерпретируемого символа:символ аргумента в РЕЕК , NEWLINE или в РОКЕ операторах. |
2 |
23647 |
X PRT |
адрес символа,следующего за маркером
С?]. |
X2 |
23649 |
WORK SP |
адрес временной рабочей области. |
X2 |
236$ 1 |
STK ВОТ |
адрес "дна" программируемого стека. |
X2 |
23653 |
STK END |
адрес начала резервной области памяти. |
N1 |
23655 |
BREG |
В-регистр калькулятора. |
N2 |
23656 |
MEM |
адрес области,используемой как память калькулятора (обычно МЕМВОТ , но не всегда) |
1 |
23658 |
PLAG52 |
старшие флажки. |
XI |
23659 |
DF SZ |
число строк (включая и одну чистую) в нижней части экрана. |
2 |
23660 |
S TOP |
количество верхних строк программы в |
|
|
|
автоматическом листинге. |
2 |
23662 |
OLDPPC |
номер строки,иа которую указывает CONTINUE. |
1
N1 |
23664
23665 |
OSPPC FLAGX |
номер оператора в строке,иа которую указывает CONTINUE, переменные фДажки. |
N2 |
23666 |
STR LEN |
размер расстояний между строками. |
N2 |
23668 |
T ADDR |
адрес следующего символа в синтакси- ческой таблице. |
2 |
23670 |
SEED |
начальное значение для RND, изменяется функцией RANDOMIZE. |
3 |
23672 |
FRAMES |
счетчик кадров - приращение через каждые 20 mS (см. Главу 18). |
2 |
23675 |
UDG |
адрес первого определяемого пользователем символа. |
1 1 |
23677
23678 |
COORDS |
Х-координата точки графопостроителя Y-координата точки графопостроителя |
1 |
23679 |
P POSN |
33-позиционное число для
позиционирования принтера |
1 |
23680 |
PR CC |
младший байт адреса позиции для LPRINT для печати. |
I |
23681 |
|
не используется. |
2 |
23682 |
ECHO E |
33-позиционное и 24-строковое числа (в нижней половине) конца входного буфера. |
2 |
23684 |
DF CC |
адрес PRINT-позиции в области экрана. |
2 |
23686 |
DF CCL |
подобно DF СС в нижней части экрана. |
XI XI |
23688
23689 |
S POSN |
33-позиционное число для PRINT позиции
23-строковое число для PRINT позиции. |
X2 |
23690 |
S POSNL |
подобно S POSN для^ нижней части. |
1 |
23692 |
SCR CT |
счетчик сверток:всегда иа 1 больше числа сверток,которые должны быть проведены перед ост-вом со сверткой, если вы установите это число больше, чем на 1 (скажем 255),то экран будет сворачиваться без запроса. |
1 |
23693 |
ATTR P |
сплошные цвета. |
|
|
|
|
1 |
23694 |
MASK Р |
используется для высвечивания цветов бит,установленный в 1,показывает, биты атрибутов берутся не из ATTR Р, а из того,что указано на экране. |
N1 |
23695 |
ATTR Т |
временный указатель цветов |
N1 |
23696 |
MASK Т |
временный MASK Р |
1 |
23697 |
Р FLAG |
старшие флажки. |
N30 |
23698 |
МЕМВОТ |
область памяти для калькулятора, используется для записи чисел, которые не могут быть размещены в программируемом стеке калькулятора. |
2 |
23728 |
|
не используется |
2 |
23730 |
RAMTOP |
адрес последнего байта области бейсик-системы. |
2 |
23732 |
P-RAMT |
адрес последнего байта физического
ОЗУ. |
Следующая программа выдаст вам первые 22 байта области систем- ных переменных:
10 FOR N=0 ТО 21
20 PRINT PEEK (PEEK 23627+256»РЕЕК 23628+N) 3 0 NEXT N Теперь замените строку 20 на:
20 PRINT РЕЕК (23755+N) И вы дополнительно получите дамп самой программы.
|
|