ГЛАВА 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-х полях секунды, в течение которого клавиша должна быть зафиксирована в нажатом сос- тоянии. Используется так же для автоповтора. На- чальное значение 35 |
1 |
23562 |
REPPER |
задержка в 50-х долях секунды между последователь- ными опросами клавиш. Начальное значение 5 |
N2 |
23563 |
DEFADD |
адрес аргументов функций пользователя если они используются, иначе 0 |
N1 |
23565 |
К DATA |
второй байт управления цветом с клавиатуры |
N2 |
23566 |
TVDATA |
байты цвета, AT, TAB, управления телевизором |
Х38 |
23568 |
STRMS |
адреса подключенных каналов
23568 устройство 253 канал "К" 23570 устройство 254 канал "S" 23572 устройство 255 канал "R" 23574 устройство 0 канал "К" 23576 устройство 1 канал "К" 23578 устройство 2 канал "S" 23580 устройство 3 канал "Р" 23582 устройство 4 канал
23606 устройство 15 канал |
2 |
23606 |
CHARS |
адреса символьного набора -256. Обычно этот набор находится в ПЗУ, но может оыть размещён и в ОЗУ с указанием в CHARS адреса размещения ' |
Знач. |
-
Адрес |
Имя |
Содержание |
1 |
23608 |
RASP |
продолжительность звукового сигнала ошибки |
1 |
23609 |
PIP |
продолжительность звукового сигнала клавиш |
1 |
23610 |
ERR NR |
код сообщения -1. Начальное значение 255 ( для '-Г ), т.е. РЕЕК 23610 = 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 оператора в строке, на которую казывает CONTINUE |
N1 |
23665 |
FLAGX |
переменные флажки |
N2 |
23666 |
STRLEN |
, 1 i
размер текущей ( редактируемой ) строки » |
N2 |
23668 |
T ADDR |
адрес следующего символа в синтаксической таблице | |
2 |
,23Q70 |
SEED |
начальное значение для RND. изменяется функцией RANDOMIZE ! |
3 |
23672 |
FRAMES |
счётчик кадров - приращение через каждые 20 т$ (смотрите Главу 18) |
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 строковое числа ( в нижней половине ) конца входного буфера "К" в области экрана "S |
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 больше числа свёрток, ко- торые должны быть проведены перед остановом со сверткой. £сли Вы установите это число больше, чем на 1 ( скажем 255 ), то экран будет сворачиваться без запроса к Вам - Scrool ? |
i |
23693 |
ЛГТР P |
сплошные цвета - глобальные для всего экрана |
Знач. |
Адрес |
Имя |
Содержание |
1 |
23694 |
MASK Р |
используется для высвечивания цветов. Бит, установ- ленный в 1 ' показывает что биты атрибутов берутся не из ATTR Р, а из того, что указано на экране |
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+п)
и Вы дополнительно получите дамп самой программы.