Программирование на языке BASIC 1990 г.

Глава 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 самой программы.



СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Игровой автомат - Черный Ворон: новые игровые уровни.
Ассемблер - Запись чисел, пересылка числа в регистр, запись числа в регистровую пару, скролирование экрана, установка вывода на экран, очистка экрана.
Новости - Список работающих серверов в Минске.
Почта - Переписка с читателями журнала.
News - Новости не только нашего городка.

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