Тайники ZX Spectrum 1969 г.

Basic - управляющие символы. Системные сообщения.


                    3.7 Управляющие символы
     Среди символов, используемых в ZX Spectrum, есть так  называе-
мые управляющие символы.  Они имеют коды  меньше 32 (причем  не все
коды используются).  Применение их  на уровне  ZX BASIC ограничено,
так  как  те  же  самые  эффекты  можно  получить  с помощью других
инструкций. Однако они  незаменимы при программировании  в машинных
кодах.  Ниже  приведены  те  из  них,  ввод которых дает какой-либо
эффект:
CHR$ 6   - Этот символ может использоваться вместо запятой как раз-
           делитель в списках INPUT и PRINT.
CHR$ 8   - Вызывает сдвиг курсора на одно поле влево.
CHR$ 9   - См. раздел "Ошибки системы".
CHR$ 15  - Это символ клавиши "Enter". В списках INPUT и PRINT мо-
           жет  применяться   вместо    единичного   апострофа.   В
           программах ZX-BASIC он помещается в конце каждой строки.
CHR$ 16  - Ключевое слово INK.
CHR$ 17  - Ключевое слово PAPER.
CHR$ 18  - Ключевое слово FLASH.
CHR$ 19  - Ключевое слово BRIGHT.
CHR$ 20  - Ключевое слово INVERSE.
CHR$ 21  - Ключевое слово OVER.
CHR$ 22  - Ключевое слово AT.
CHR$ 23  - Ключевое слово TAB.
     Символы  от  CHR$16  до  CHR$21  должны  набираться  в   форме
CHR$K+CHR$M или CHR$K; CHR$M, где М есть значение  соответствующего
данной инструкции параметра.
     После символов CHR$22 и CHR$23 должны следовать два параметра.
Для AT это понятно, а для TAB единственный аргумент  представляется
двумя байтами.  На практике  значение второго  байта (старшего)  не
имеет значения, так как это число берется по модулю 32.  Оставшиеся
из  управляющих   символов  используются   редактором  в   процессе
считывания  с  клавиатуры  и  не  имеют  практического значения для
программиста. Во время вывода последовательности знаков символы, не
описанные  выше,  с  кодами  меньше  32  заменяются вопросительными
знаками.

                    3.8 Системные сообщения
     Каждая  ошибка,  обнаруженная  Spectrum  в программе, вызывает
останов и вывод соответствующего  сообщения в нижней части  экрана.
Эти сообщения имеют одинаковую стандартную форму:
         Номер  Текст сообщения  K:M
Номер - это цифра от  0 до 9 или литера  от A до R. Текст  сообщает
по-английски  причину  передачи  управления  в  редактор. Числа K:M
информируют:  в  какой  строке  какой  инструкцией  вызвано  данное
сообщение.   K=0   относится   обычно   к   командам,    задаваемым
непосредственно с клавиатуры.
0 Ok             - Нормальное  завершение  команд, введенных с кла-
                   виатуры, конец программы, либо переход с помощью
                   GO  TO  на  строку  с  наибольшим  номером.  При
                   обслуживании  такой  "ошибки"  не модифицируются
                   системные   переменные   OLDPPC   и   OSPPC,   в
                   результате чего команда CONTINUE, выданная после
                   такого  сообщения,  заново  вызовет   выполнение
                   последней  инструкции   в  программе   (это   не
                   относится    к    директивам,    введенным     с
                   клавиатуры).
1 NEXT without FOR
                 - Интерпретатор встретил  инструкцию NEXT @. В об-
                   ласти  переменных  нет  управляющей переменной с
                   данным  именем  @,  но  есть  простая   числовая
                   переменная  @.  Если  бы  не  было и такой, то в
                   аналогичной ситуации было бы выведено  сообщение
                   2.  Наиболее  частой  причиной  ошибки  является
                   отсутствие  соответствующей  инструкции  FOR или
                   переход внутрь цикла.
2 Variable not found
                 - Попытка использования переменной, не  существую-
                   щей в   области  переменных,   а   следовательно
                   такой,  которой   еще   не   придано    никакого
                   значения   с помощью  LET, READ,  INPUT, FOR или
                   DIM.
3 Subscript wrong
                 - Индексы массивов  вышли  за  предельное значение
                   (но  поместились  в  диапазон  0...65535),   или
                   задано неправильное  их число,  а также  попытка
                   присвоения  символов  простой алфавитно-цифровой
                   переменной  с  размерностью  больше,  чем  длина
                   переменной.  Если  индексы  превзойдут  значение
                   65535,  то  в   аналогичной  ситуации   появится
                   сообщение B.
4 Out of memory  - Не хватает места в памяти для выполнения требуе-
                   мой  акции.   Чаще  всего  бывает при выполнении
                   инструкций LET, INPUT, READ, DIM, GO SUB,  LOAD,
                   MERGE, попытке рекурсивного обращения к функции.
                   Вообще,   причиной   является   слишком   низкое
                   положение  RAMTOP.  Для   вывода  из   аварийной
                   ситуации  может  оказаться  необходимым удаление
                   какой-либо  строки  из   программы  так,   чтобы
                   получить  место,   необходимое  для   выполнения
                   директив, задаваемых с клавиатуры.
5 Out of screen  - INPUT пытается занять более 22 строк  или  пара-
                   метры AT указывают поле за 22 верхними  строками
                   экрана.
6 Number too big - Во время проводимых вычислений была попытка вый-
                   ти  за  1.7E38.   Этим  сообщением   завершаются
                   попытки деления на 0 или вычисления TAN(PI/2).
7 RETURN without GO SUB
                 - Попытка выполнить  RETURN  без   предшествующего
                   GO SUB, а также  когда число выполняемых GO  SUB
                   меньше числа выполняемых RETURN.
8 End of file    - Это сообщение может  появиться   только   в   ZX
                   Srectrum с присоединенным ZX интерфейсом 1.
9 Stop statement - Выполнена инструкция STOP.
A Invalid argument
                 - Задан неверный аргумент  стандартной  функции, к
                   примеру  попытка  вычисления  SQR  или  LN   для
                   отрицательного  числа,  или   алфавитно-цифровой
                   аргумент функции  USR не  является одной  верной
                   литерой. Эта  ошибка не  относится к  аргументам
                   функций, определенных программистом.
B Integer out of range
                 - Целочисленный параметр  инструкции превысил пре-
                   дельное значение.
C Nonsens in BASIC
                 - Анализируемый текст некорректен  с  точки зрения
                   правил  языка.   Чаще  всего  появляется,  когда
                   аргументы функций VAL  или VAL$ не  представляют
                   верной формы  выражения. Это  сообщение появится
                   также    при    попытке    выполнения    команд,
                   нераспознаваемых системой,  например, считана  и
                   запущена программа,  работающая с  Microdrive, а
                   ZX интерфейс 1 не подключен.
D BREAK-CONT repeats
                 - Работа программы прервана  во  время  выполнения
                   инструкций,  связанных  с  внешними устройствами
                   (принтер,  магнитофон  или  телевизор  -   после
                   вопроса "Scroll?"  нажат BREAK,  STOP или  "N").
                   Введенная   с   клавиатуры   директива  CONTINUE
                   повторит еще раз прерванную команду.
E Out of DATA    - Попытка  читать  данные  из списка DATA, если он
                   исчерпан.
F Invalid file name
                 - Попытка  записать на кассету набор без имени или
                   с именем длиннее 10 символов.
G No room for line
                 - Нехватка места в памяти  для  очередной   сборки
                   программы, если она слишком длинная или  слишком
                   низко установлен RAMTOP.
H STOP in INPUT  - Программа была  остановлена  во время выполнения
                   инструкции INPUT.
I FOR without NEXT
                 - Инициализированный цикл не может  быть  выполнен
                   ни разу (например, FOR I=1 TO 0), а в  программе
                   нет инструкции NEXT.
J Invalid I/O device
                 - Ошибка возможна при подключении ZX интерфейса 1.
K Invalid colour - Аргумент инструкций  INK, PAPER, BORDER, BRIGHT,
                   FLASH,  OVER  или  INVERSE  вышел  за   пределы,
                   определенные для этой инструкции. Это  сообщение
                   также  может  появиться  после  ввода   символа,
                   управляющего  цветом,  если  следующий  вводимый
                   символ   имеет   несоответствие   с    введенным
                   управляющим символом.
L BREAK into program
                 - Прерывание выполнения программы пользователя.
M RAMTOP no good - Попытка  присвоения  системной переменной RAMTOP
                   слишком малой или слишком большой величины.
N Statement lost - Попытка выполнения с помощью  RETURN,  NEXT  или
                   CONTINUE перехода к несуществующей инструкции.
O Invalid stream - Попытка пересылки  информации потоком до подклю-
                   чения  к  какому  либо  каналу  или  к  каналу с
                   номером больше 15.
P FN without DEF - Вызвана функция, которая не была определена.
Q Parametr error - Рассогласованность количества или типов аргумен-
                   тов    при    вызове    функции,    определенной
                   пользователем.
R Tape loading error
                 - Требуемый набор был найден  на  кассете,  но  по
                   какой-то  причине   не  может   быть  считан   в
                   компьютер.



СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Программирование - О мультиколоре вообще и программе MC24 в частности.
Реклама - реклама и обьявления.
Зеркало - интервью с Майком Сингльтоном, автором таких известных игр, как "Lords of Midnight", "Doomdark Revenge", "War in the middle earth", "Dark Scepetre" и др.
Системки - NedoOS истоки: История NedoOS уходит корнями в далёкие 90-е годы.
Учебник - Стратегия и тактика половой борьбы: Если вам сказали нет.

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