ГЛАВА 25
СИСТЕМНЫЕ ПЕРЕМЕННЫЕ
Байты памяти с 23552 до 23733 предназначены для специального
использования. В них размещаются так называемые системные переменные.
Не надо путать их имена с именами переменных в программе. Компьютер не
распознаёт ссылки к этим переменным из BASIC - программы по их именам
Имена используются только для мнемонического обозначения этих перемен-
ных в этом описании.
Информация, записанная в первом столбце таблицы, имеет следующее
значение:
X - переменная не должна изменяться, так как это может нарушить
работу системы:
N - изменение переменной не приводит к длительному эффекту;
Число - число байтов в переменной (для двухбайтовых переменных -
младший байт первый).
Например, необходимо изменить значение на V в двухбайтовой пере-
менной по адресу N:
10 POKE N,V-256*INT (V/256)
20 POKE N+1JNT (V/256)
Для просмотра нового значения можно использовать оператор:
PEEK N+256* PEEK (N+1)
|
Знач. |
Адрес |
Имя |
Содержание |
|
N8 |
23552 |
KSTATE |
используется при чтении с клавиатуры |
|
N1 |
23560 |
LAST К |
запоминается кол последней нажатой клавиши |
|
1 |
23561 |
REPDEL |
время в 50-х полях секунды, в течение которого |
|
1 |
23562 |
REPPER |
задержка в 50-х долях секунды между последователь- |
|
N2 |
23563 |
DEFADD |
адрес аргументов функций пользователя если они |
|
N1 |
23565 |
К DATA |
второй байт управления цветом с клавиатуры |
|
N2 |
23566 |
TVDATA |
байты цвета, AT, TAB, управления телевизором |
|
Х38 |
23568 |
STRMS |
адреса подключенных каналов 23568 устройство 253 канал "К" 23606 устройство 15 канал |
|
2 |
23606 |
CHARS |
адреса символьного набора -256. Обычно этот набор |
|
Знач. |
- Адрес |
Имя |
Содержание | |
|
1 |
23608 |
RASP |
продолжительность звукового сигнала ошибки | |
|
1 |
23609 |
PIP |
продолжительность звукового сигнала клавиш | |
|
1 |
23610 |
ERR NR |
код сообщения -1. Начальное значение 255 ( для '-Г ), | |
|
XI |
23611 |
FLAGS |
управляющие флажки BASIC'a | |
|
XI |
23612 |
TV FLAG |
флажок телевизора 0 bit - экран канал "К" 3 bit EDIT 4 bit - автолист 5 bit - автоповтор клавии. | |
|
Х2 |
23613 |
ERR SP |
адрес в аппаратном стеке, используемый как адрес | |
|
N2 |
23615 |
LIST SP |
адрес возврата из автоматического листинга | |
|
N1 |
23617 |
MODE |
режим курсора |
ru/ic,.» 9:3 |
|
2 |
23618 |
NEWPPC |
номер строки, на которую должен быть сделан переход! | |
|
1 |
23620 |
ESSPPC |
номер оператора в строке, на которую должен быть | |
|
2 |
23621 |
PPC |
номер строки, оператор в которой выполняется | |
|
1 |
23623 |
SUB PPC |
порядковый номер выполняющегося оператора в стро- | |
|
1 |
23624 |
BORDCR |
цвет рамки экрана, содержит атрибуты ( *8 ) | |
|
2 |
23625 |
E PPC |
номер текущей строки с программным курсором | |
|
Х2 |
23627 |
VARS |
адреса переменных BASIC'a | |
|
N2 |
23629 |
DEST |
адрес переменной в выполняемом операторе | |
|
Х2 |
23631 |
CHANS |
адрес канала данных | |
|
Х2 |
23633 |
CURCHL |
адрес текущего кана та ввода - вывода | |
|
Х2 |
23635 |
PROG |
адрес BASIC - программы | |
|
Х2 |
2363? |
NXTLIN |
адрес следующей строкиs программе | |
|
Х2 |
230*9 |
DATADD |
адрес терминатора последнего символа в DATA | |
|
Х2 |
23MI |
E LINE |
адрес выведенной команды | |
|
2 |
23643 |
К CUR |
адрес курсора | |
|
Х2 |
23645 |
CH ADD |
адрес следующего интерпретируемого символа: символ аргумента в PEEK, NEWLINE или РОКЕ | |
|
2 |
23647 |
XPRT |
адрес символа следующего за маркером [?] | |
|
Х2 |
23649 |
WORKSP |
адрес временной рабочей области | |
|
Х2 |
23651 |
STKBOT |
адрес " дна " программируемого стека | |
|
Х2 |
23653 |
STKEND |
адрес начала резервной области памяти | |
|
N1 |
23655 |
BREG |
В регистр калькулятора |
|
N2 |
2Д656 |
MLM |
адрес области, используемой как памя1ь калькулято- |
|
1 |
23658 |
FLAGS2 |
старшие флажки 0 bit - экран 1 bit - буфер печати пуст при 0 2 bit - 3 bit - CAPS LOCK 4 bit - текущий "К" канал |
|
XI |
23659 |
DFSZ |
число строк ( включая и одну чистую) в нижней части |
|
2 |
23660 |
STOP |
количество верхних строк программы в автоматичес- |
|
2 |
23662 |
OLDPPC |
номер « троки, на которою указывает CONTINUE |
|
1 |
23664 |
OSPPC |
Hov.ep оператора в строке, на которую казывает |
|
N1 |
23665 |
FLAGX |
переменные флажки |
|
N2 |
23666 |
STRLEN |
, 1 i размер текущей ( редактируемой ) строки » |
|
N2 |
23668 |
T ADDR |
адрес следующего символа в синтаксической таблице | |
|
2 |
,23Q70 |
SEED |
начальное значение для RND. изменяется функцией |
|
3 |
23672 |
FRAMES |
счётчик кадров - приращение через каждые 20 т$ |
|
2 |
23675 |
UDG |
ад^с_первого. определяемого пользователем, символа |
|
1 |
23677 |
COORDS |
X - координата точки графопостроителя PLOT |
|
1 |
23678 |
COORDS |
Y - координата точки графопостроителя PLOT |
|
1 |
23679 |
P POSN |
33-позиционное число для позиционирования |
|
1 |
23680 |
PR CC |
младший байт адреса позиции для LPRINT для печати |
|
I |
23681 |
не используется | |
|
2 |
23682 |
ECHO E |
33-позиционное и 24 строковое числа ( в нижней |
|
2 |
23686 |
DF CCL |
подобно DF СС для нижней части экрана "К' |
|
XI |
23688 |
S POSN |
33-позиционное число для PRINT позиции "S" |
|
XI |
23689 |
24-строковое число для PRINT позиции | |
|
X2 |
23690 |
S POSN1 |
подобно S POSN для нижней части "К" |
|
1 |
23692 |
SCR CT i |
счётчик свёрток: всегда на 1 больше числа свёрток, ко- |
|
i |
23693 |
ЛГТР P |
сплошные цвета - глобальные для всего экрана |
|
Знач. |
Адрес |
Имя |
Содержание |
|
1 |
23694 |
MASK Р |
используется для высвечивания цветов. Бит, установ- |
|
N1 |
23695 |
ATTRT |
временный указатель цветов ( в PRINT, INPUT ) |
|
N1 |
23696 |
MASK Т |
временный MASK Р |
|
1 |
23697 |
PFLAG |
старшие флажки 0 bit - OVER 1 - временные 1 bit - -"- - глобальные 2 bit - INVERSE 1 - временные 3 bit - -"- - глобальные 4 bit - INK 9 - временные 5 bit - - глобальные 6 bit-PAPER 9 -временные 7 bit - -"- - глобальные |
|
N30 |
23698 |
МЕМВОТ |
область памяти для калькулятора. Используется для |
|
2 |
23728 |
не используется | |
|
2 |
23730 |
RAMTOP |
адрес последнего байта области BASIC-системы |
|
2 |
23732 |
P-RAMT |
адрес последнего байта физического ОЗУ |
Следующая программа выдаст Вам первые 22 байта области системных
переменных:
10 FOR пЮ ТО 21
20 PRINT РЕЕК (РЕЕК 23627+256*РЕЕК 23628)+п
30 NEXT п
Теперь замените строку 20 на
20 PRINT РЕЕК (23755+п)
и Вы дополнительно получите дамп самой программы.