Работа с ZX-Spectrum 1993 г.

Глава 26 - системные переменные.


ГЛАВА 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+п)
и Вы дополнительно получите дамп самой программы.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Водные приключения "Полный вперед"
Конкурс - Первые эмблемы для FunTop'a.
От авторов - несколько слов о следующем номере.
Интервью - уфимским кодером с Vasil из группы ChemneSoft.
Новинки - Аlast hero of the light force, Dune 2, Городки.

В этот день...   19 апреля