ПРИЛОЖЕНИЕ Е
------------------------------------------------------------------
                                            Сообщения об ошибках
------------------------------------------------------------------

     В ТУРБО БЕЙСИКе  регистрируются  два  основных  типа  ошибок:
ошибки  компиляции  и  ошибки  выполнения.  К  ошибкам  компиляции
относятся  синтаксические  ошибки,  обнаруженные  компилятором.  К
ошибкам выполнения  относятся  отклонения,  найденные  механизмами
обнаружения  ошибок,  которые  компилятор  помещает  в   объектной
программе.
     Большая часть ошибок  компиляции - это ошибки  в  синтаксисе,
вызванные  пропуском  символа,  неправильным  написанием  команды,
непарным числом скобок и т д.  Если  компилятор  встречает  что-то
в исходной программе, чего он не может  понять  или  допустить, Вы
немедленно оказываетесь в  редакторе,  и  курсор  указывает  на то
место, где произошла ошибка. Вам нужно нажать  на  любую  клавишу,
чтобы  убрать  сообщение  об  ошибке,  затем  исправить  ошибочный
оператор и повторить компиляцию.
      ТУРБО БЕЙСИК выводит номер ошибки и краткое  ее  описание  в
нижней строке экрана. Ошибки компиляции  имеют  номера  от  256  и
выше. Ошибки выполнения возникают  при  прогоне  оттранслированной
программы. Пример таких  ошибок:  ошибки  файловой  системы  (диск
полон  или  защищен   для   записи),   неверные   вызовы   функций
(графические операторы без графического адаптера, попытка извлече-
ния корня из отрицательного числа),  ошибки  использования  памяти
(обычно связанные с ее недостатком) и множество других.
     Ошибки выполнения могут  вызывать  прерывания,  то  есть,  вы
можете  установить  с  помощью  оператора  ON  ERROR,   что   если
произойдет  ошибка,  управление  должно  быть  передано   заданной
подпрограмме обработки ошибок. Эта подпрограмма может "рассудить",
что делать дальше в зависимости от обнаруженной  ошибки.  Особенно
удобно  использовать  такие  подпрограммы  для  обработки   ошибок
файловой системы (например, диск  полон) - это  единственный класс
ошибок,  с  которыми  должна  иметь  дело   тщательно   отлаженная
программа.
     С  помощью  оператора  ERROR   можно   симулировать    ошибки
выполнения  выполнения  в  качестве  способа  отладки  подпрограмм
обработки ошибок.
     Для более детальной информации  об  ошибках выполнения см.  в
главе  5  "Справочное  руководство  по  ТУРБО  БЕЙСИКУ"   описание
операторов ON  ERROR и ERROR, функций ERR, ERL и ERADR.
     Если ваша программа не  обрабатывает  ошибки,  тогда  при  их
обнаружении ТУРБО  БЕЙСИКОМ  выполнение  программы  преждевременно
прекращается,  выводится   номер   ошибки   и   краткое   описание
создавшихся условий. Если программа выполнилась в  ТУРБО  БЕЙСИКЕ,
курсор редактора указывает на оператор, вызвавший  ошибку.  Ошибки
выполнения имеют номера между 0 и 255. Например:

     Error 5 Illegal function call at pgm-ctr: 761
   (Ошибка 5 неверный вызов функции по программному счетчику: 761)

     Сообщения об ошибках не  включаются  в  .ЕХЕ  файлы;  поэтому
ошибки выполнения, возникающие в программах, запущенных из DOS, не
содержат текст сообщения об ошибке, а только ее номер.  Отладочный
режим поиска ошибок выполнения (FIND) может преобразовать значение
программного счетчика, определяющего адрес  ошибки,  в  конкретный
оператор в исходном файле, который вызвал ошибку. Например:

     nnn Error - destination ,

где nnn - номер ошибки из трех цифр. Для более  полной  информации
см. главу 3 "Команда DEBUG".

     Ошибки выполнения
     -----------------
2 Syntax error
  Синтаксическая ошибка
     Синтаксическая  ошибка   выполнения,   которая   возникла   в
операторе READ при попытке загрузки символьных данных  в  числовую
переменную.   Остальные   синтаксические   ошибки   обнаруживаются
компилятором.

3 RETURN without GOSUB
  RETURN без GOSUB
     Задан оператор RETURN  без  соответствующего  ему  GOSUB;  то
есть, соответственно возврат (RETURN) осуществлять неоткуда.

4 Out of data
  Конец данных
     Оператор READ вышел за пределы значений в операторе DATA.

5 Illegal function call
  Неверный вызов функции.
     Все  ошибки,   связанные   с   передачей   несоответствующего
аргумента оператору или  функции.  Сразу  несколько  причин  могут
вызывать их:
* слишком большое значение цвета или режима экрана;
* наличие  оператора,  работающего  с  графикой  без  графического
  адаптера или при несоответствующем режиме,  заданном  оператором
  SCREEN;
* попытка выполнения неверной математической операции, такой  как,
  например, извлечение корня из отрицательного числа;
* слишком большой (или отрицательный) номер  записи  в  операторах
  GET и PUT;
* попытка использования оператора WIDTH в последовательном файле.

6 Overflow
  Переполнение
     Переполнение возникает при получении в результате  вычислений
слишком больших значений, которые не  могут  быть  представлены  в
виде числовых данных заданного типа. Например, х%=32767+1 приведет
к переполнению, также как 32768 не может быть  представлено  целым
числом. Ошибки переполнения целочисленных не обнаруживаются,  если
в меню "Вариант" не был установлен режим (Overflow);  переполнение
значений с плавающей запятой всегда регистрируются.

7 Out of memory
  Выход за пределы памяти
     Многочисленные  ситуации  могут  приводить  к  выводу   этого
сообщения, в частности, определение слишком большого массива.

9 Subscript out of range
  Индекс за пределами диапазона
     Возникает при попытке  использовать  индекса,  большего,  чем
максимальное допустимое.

10 Duplicate definition
   Двойное определение
     Повторная  попытка  размещения   динамического   массива   до
освобождения уже размещенного массива с тем же именем.

11 Division by zero
   Деление на ноль
     Попытка деления на ноль или возведения нуля  в  отрицательную
степень.

13 Type mismatch
   Несоответствие типов данных
     Вместо  числового  значения  используется   символьное   или,
наоборот. Возникает в операторах PRINT USING, DRAW или PLAY.

14 Out of string space
   Выход  за пределы пространства символьных переменных
     Исчерпана память  для  символьных  переменных,  она не должна
превышать 64К.

15 String to long
   Слишком длинная строка
     Строка,  полученная  в   результате   символьного   выражения
превышает 32767 байтов.

19 No RESUME
   Нет оператора  RESUME
     Выполнение подпрограммы обработки ошибок дошло до физического
конца программы. Возможно, в программе пропущен оператор RESUME.

20 RESUME without error
   RESUME без ошибки
     Выполнение оператора RESUME, когда ошибки не было,  т.е.  нет
подпрограммы обработки ошибки, из  которой  должен  быть  выполнен
выход RESUME.

24 Device time out
   Тайм-аут устройства
     Истекло заданное время (Тайм-аут) для коммуникационной  линии
состояния. Значения тайм-аута могут быть заданы для CTS (Clear  To
Send), CD (CarrierDetect) и DSR  (DataSetReady)  линий  состояния.
Программа   либо   преждевременно   завершается,   либо   повторно
выполняются  коммуникационные  операции.   Для   более   детальной
информации см. описание операторов OPEN COM в главе 5.

25 Device fault
   Ошибка устройства
     Возникла аппаратная ошибка; например, в интерфейсе  принтера,
или коммуникационном адаптере.

27 Out of paper
   Конец бумаги
     Интерфейс  принтера  указывает,  что  кончилась   бумага.   В
действительности, он может быть просто выключен или в нем  имеются
какие-либо сложности.

50 Field overflow
   Переполнение поля
     При заданной длине записи файла определяется слишком  большое
множество переменных полей в операторе FIELD.

51 Internal error
   Внутренняя ошибка
     Возник сбой в системе выполнения ТУРБО-БЕЙСИКА. Обратитесь  с
информацией о вашей программе в группу технического сопровождения.

52 Bad file number
   Неверный номер файла
     Номер файла,  указанный  в  операторе  работы  с  файлом,  не
соответствует  номеру  в  операторе  OPEN  или  выходит  за  рамки
диапазона допустимых номеров файлов.

53 File not found
   Файл не найден
     Заданное имя файла не обнаружено на указанном диске.

54 Bad file mode
   Неверный режим работы с файлом
     Попытка  выполнить  PUT  или  GET  (или  PUT$  и  GET$)   для
последовательного файла.

55 File already more
   Файл уже открыт
     Попытка открыть уже открытый файл, или удалить открытый файл.

57 Device I/O error
   Ошибка вода/вывода устройства
     Возникла серьезная аппаратная  неисправность  при  выполнении
команды.

58 File already exists
   Файл уже существует
     Новое имя файла, указанное в операторе NAME уже существует.

61 Disk full
   Диск полон
     На указанном диске или диске по умолчанию  не  хватает  места
для выполнения операции с файлом. Убедитесь, что места  достаточно
и запустите программу повторно.

62 Input past end
   Ввод после конца
     Попытка прочитать больше данных, чем имеется в файле. Для то-
го, чтобы избежать этой сложности, используйте функцию EOF  (конец
файла).   Ошибка   также   может   возникнуть   при   чтении    из
последовательного файла,  открытого  для  записи  или  дозаписи  в
конец.

63 Bad record number
   Неверный номер записи
     В качестве номера записи в операторах GET или PUT для  файлов
с произвольным доступом  указано  отрицательное  число  или  число
больше чем 16777215.

64 Bad file name
   Неверное имя файла
     Имя файла,  указанное  в  операторах  FILES,  KILL  или  NAME
содержит недопустимые символы.

67 To many files
   Слишком много файлов
     Эта ошибка может быть вызвана либо попыткой создания  слишком
большого количества файлов  в  корневом  каталоге,  либо  неверным
именем файла при выполнении системного  вызова  DOS  для  создания
файла.

68 Device unavailable
   Устройство недоступно
     Попытка  открытия  (OPEN)  файла  устройства  на  машине,  на
которой этого  устройства  нет;  например,  СОМ1:  в  системе  без
серийного адаптера или модема.

69 Communication buffer overflow
   Переполнение коммуникационного буфера
     Выполнение  оператора  INPUT  для  ввода   символов   в   уже
заполненный  коммуникационный   буфер.   Программа   либо   должна
проверять и чаще очищать буфер, либо увеличить размер буфера.

70 Permission denied
   Нарушение защиты
     Попытка записи на защищенный для записи диск.

71 Disk not ready
   Диск не готов
     Открыта крышка накопителя на гибком устройстве, или  диск  не
установлен на заданном накопителе.

72 Disk media error
   Ошибка дискового накопителя
     Панель контроллера гибкого  или  жесткого  диска  регистрирует
постоянную ошибку в одном или нескольких секторах носителя.

74 Rename across disks
   Переименование с переменой диска.
     Переименовать файл с  заданием  другого  диска  или  каталога
нельзя. Оператор NAME лишь присваивает ему новое имя.

75 Path/File acces error
   Ошибка доступа в маршруте/файле
     В команде, требующей указания маршрута  (OPEN,  NAME,  MKDIR)
неправильно  использован  маршрут;  например,  открывается  (OPEN)
подкаталог или удаляется используемый каталог.

76 Path not found
   Маршрут не найден
     Маршрут, заданный в операторах CHDIR, MKDIR, OPEN и т.д.,  не
найден.

202 Out of string temp space
    Выход за пределы временного пространства для символьных данных
     Символьное  выражение  требует использования слишком большого
количества  временных буферов для символьных данных. Ошибка  может
быть   вызвана   выражением   типа    MID$(LEFT$(MID$(RIGHT$(...).
Попробуйте  упростить  символьное   выражение   путем   сохранения
промежуточных результатов во временных символьных переменных.

203 Mismatched common variables
    Несоответствие общих переменных
     Попытка выполнить CHAIN между двумя  программными  сегментами,
которые содержат несоответствующие друг  другу  операторы  COMMON.
ТУРБО БЕЙСИК сверяет тип и число переменных в операторах COMMON.

204 Mismatched program option
    Несоответствие программных опций
     Попытка выполнить CHAIN между двумя  программными  сегментами,
компиляция которых происходила  с  несоответствующими  друг  другу
программными  опциями  (различными  математическими   библиотеками,
требованиями сопроцессора и т.д.).

205 Mismatched program versions
    Несоответствие версий в программе
     Попытка выполнить CHAIN между двумя  программными  сегментами,
которые созданы различными версиями компилятора ТУРБО БЕЙСИК.

206 Invalid program file
    Непригодный программный файл
     Попытка  выполнить  CHAIN  или  RUN для программного сегмента,
компиляция которого выполнилась не в ТУРБО БЕЙСИКЕ.

242 String/array memory corrupt
    Разрушение памяти строки/массива
     Область памяти символьных данных была  неверно  перезаписана.
Ошибка  может  быть  вызвана  неверными  действиями   ассемблерной
подпрограммы, доступом к  символьному  массиву  за  пределами  его
размерности или нарушениями в системе выполнения ТУРБО БЕЙСИКА.

243 CHAIN/RUN from .EXE file only
    CHAIN/RUN допустимы только из файла .EXE
     Попытка выполнить CHAIN или RUN для программного сегмента  из
среды ТУРБО БЕЙСИКА.  Следует  выполнить  компиляцию  программы  и
записать оттранслированный модуль на диск с  помощью  команд  меню
"Варианты", а  затем  запустить  из  DOS  программу,  использующую
операторы CHAIN и RUN.

     Ошибки компиляции
     -----------------
401 Expression too complex
    Слишком сложное выражение
     Выражение  содержит   слишком   много   операторов/операндов;
следует разбить его на два или несколько более простых выражений.

402 Statement too complex
    Оператор слишком сложен
     Сложность оператора вызвала переполнение  внутреннего  буфера
компилятора.   Следует  разбить  его  на  два  или  более  простых
оператора.

403 $IF nesting overflow
    Переполнение вложенных $IF
     Число блоков условной компиляции ($IF/$ELSE/$ENDIF) не должно
составлять более 16 уровней.

404 $INCLUDE nesting overflow
    Переполнение вложенных $INCLUDE
     Вложенность  включаемых  файлов  не  должна  быть  больше   5
уровней, включая саму основную программу. Это  позволяет  иметь  в
программе 4 вложенных включаемых ($INCLUDE) файла.

405 Block nesting overflow
    Переполнение вложенных блоков
     В вашей программе слишком много операторов блочных  структур,
вложенных один в другой. Блочные структуры в ТУРБО  БЕЙСИКЕ  могут
иметь не более 255 уровней вложенности.

406 Compiler out of memory
    Компилятор вышел за пределы памяти
     Исчерпана  доступная  память  компилятора   для   символьного
пространства, буферов и т.д. Если память  исчерпана,  выделите  из
вашей программы небольшую основную программу,  которая  использует
метаоператор $INCLUDE для  включения  остальной  части  программы.
Если вы компилируете программу в память и  возникает  эта  ошибка,
попробуйте с помощью меню "Варианты" выполнить компиляцию на диск.

407 Program too large
    Программа слишком велика
     Ваша программа содержит более 65530 операторов.

408 Segment exceeds 64K
    Сегмент превышает 64К
     Ваша программа включает сегмент, превышающий ограничение 64К.
Добавьте  метаоператор  $SEGMENT  в  исходную   программу,   чтобы
разместить программный код в дополнительном сегменте.

409 Variables exceeds 64K
    Переменные превышают 64К
     Общее пространство скалярных переменных ограничено 64К. В это
пространство включаются указатели  строк,  целые,  длинные  целые,
вещественные числа с одинарной и двойной точностью. Избавьтесь  от
неиспользуемых переменных или разбейте вашу программу на отдельные
основную и цепные (CHAIN) программы.

410 "," expected
    Предполагается ","
     Синтаксис оператора требует запятую (,).

411 ";" expected
    Предполагается ";"
     Синтаксис оператора требует точку с запятой (;).

412 "(" expected
    Предполагается "("
     Синтаксис оператора требует левую скобку (().

413 ")" expected
    Предполагается ")"
     Синтаксис оператора требует правую скобку ()).

414 "=" expected
    Предполагается "="
     Синтаксис оператора требует знак равенства (=).

415 "-" expected
    Предполагается "-"
     Синтаксис оператора требует знак минуса (-).

416 Statement expected
    Предполагается оператор
     ТУРБО БЕЙСИК полагает,что в этом месте должен быть  оператор.
Некоторый символ не может быть идентифицирован ни как команда,  ни
как метакоманда, ни как переменная.

417 Label/line number expected
    Предполагается метка/номер строки
     В операторах IF,  GOTO,  GOSUB  или  ON  должна  быть  задана
допустимая метка или номер строки.

418 Numeric expression requires relational opernd
    Численное выражение требует соответствующего операнда
     Компилятор обнаружил символьный  операнд  в  том  месте,  где
должен быть числовой операнд.

419 String expression requires string operand
    Для символьного выражения требуется символьный операнд
     Компилятор ожидал символьное выражение, а нашел нечто другое,
например: Х$=А$+В .

420 Scalar variable expected
    Предполагается скалярная переменная
     Компилятор  ожидал  найти  скалярную  переменную  в  качестве
формального   параметра   функции,   определенной   пользователем.
Скалярные переменные  включают  строки,  целые,  длинные  целые  и
вещественные числа с одинарной и двойной точностью.

421 Array variable expected
    Предполагается переменная массив
     В операторах DIM или операторах работы с графикой GET или PUT
должна быть указана переменная массив.

422 Numeric variable expected
    Предполагается числовая переменная
     В операторах INCR, DECR  или при задании смещения в операторе
CALL ABSOLUTE должна быть указана числовая переменная.

423 String variable expected
    Предполагается символьная переменная
     В операторах FIELD, GET$, PUT$  или  LINE INPUT  должна  быть
указана символьная переменная.

424 Variable expected
    Предполагается переменная
     В функциях VARPTR,  VARPTR  или  VARSEG  должна  быть  задана
переменная.

425 Integer constant expected
    Предполагается целая константа
     В поименованном  присваивании константы или в командах услов-
ной компиляции $IF/$ELSEIF должна быть указана целая константа.

426 Positive integer constant expected
    Предполагается положительная целая константа
     При указании границ массива DIM  STATIC  и  в  метаоператорах
$COM, $SOUND и $STACK  должна  быть  указана  положительная  целая
константа.

427 String constant expected
    Предполагается символьная константа
     В качестве имени файла в метаоператоре $INCLUDE  должна  быть
указана символьная константа.

428 Numeric scalar variable expected
    Предполагается числовая скалярная переменная
     Должна  быть  указана  целая,  длинная  целая,   вещественная
переменная с одинарной или двойной  точностью;  например  в  цикле
FOR/NEXT.

429 Integer scalar variable expected
    Предполагается целая скалярная переменная
     В качестве параметра в операторе CALL  ABSOLUTE  должна  быть
указана целая переменная.

430 Integer array variable expected
    Предполагается целая переменная массив
     Должна быть  указана  целая  переменная  массив;  например  в
операторе PALETTE.

431 End of line expected
    Предполагается конец строки
     В  строке,  содержащей  метаоператор,   недопустимы   никакие
символы, кроме комментария.

432 AS expected
    Предполагается AS
     Служебное слово AS пропущено в  операторах  FIELD  или  OPEN.
Проверьте в главе 5 синтаксис операторов FIELD и OPEN.

433 DEF FN expected
    Предполагается DEF FN
     Компилятор  обнаружил  операторы  END  FN  или  EXIT  FN  без
определения функции DEF FN.

434 IF expected
    Предполагается IF
     Компилятор  обнаружил  операторы  END  IF  или  EXIT  IF  без
предшествующего им оператора IF.

435 DO LOOP expected
    Предполагается петля DO
     Компилятор  обнаружил  операторы  LOOP  или  EXIT  LOOP  без
предшествующего им оператора DO.

436 SELECT expected
    Предполагается SELECT
     При определении оператора SELECT CASE вы либо забыли  указать
служебное слово SELECT, либо компилятор  обнаружил  операторы  END
SELECT или EXIT SELECT.

437 CASE expected
    Предполагается CASE
     При определении оператора SELECT CASE  не  указано  служебное
слово СASE. Эта ошибка может также  возникнуть  при  использовании
служебного слова SELECT в качестве имени переменной.

438 FOR LOOP expected
    Предполагается петля FOR
     Компилятор обнаружил  оператор EXIT FOR  без  предшествующего
ему оператора FOR.

439 SUB expected
    Предполагается SUB
     Компилятор  обнаружил   оператор  END SUB  или  EXIT SUB  без
предшествующего ему оператора SUB. Началом объявления подпрограммы
должен быть оператор SUB.

440 END DEF expected
    Предполагается END DEF
     Определение  функции  не  завершается   соответствующим   ему
оператором END DEF.

441 END IF expected
    Предполагается END IF
     Блок IF не завершается соответствующим END IF.

442 LOOP/WEND expected
    Предполагается LOOP/WEND
     Циклы  DO  или   WHILE   не    завершаются   соответствующими
операторами LOOP/WEND.

443 END SELECT expected
    Предполагается END SELECT
     Оператор SELECT CASE не был правильно завершен оператором END
SELECT.

444 END SUB expected
    Предполагается END SUB
     Процедура не была правильно завершена оператором END SUB.

445 NEXT expected
    Предполагается NEXT
     Цикл FOR не был правильно завершен оператором NEXT.

446 THEN expected
    Предполагается THEN
     В операторе IF пропущено служебное слово THEN.

447 TO expected
    Предполагается ТО
     В операторе FOR пропущено служебное слово TO.

448 GOSUB expected
    Предполагается GOSUB
     В операторе ON пропущена входящая в него часть GOSUB.

449 GOTO expected
    Предполагается GOTO
     В операторе ON пропущена входящая в него часть GOТО.

450 $ENDIF expected
    Предполагается $ENDIF
     В операторе условной компиляции $IF пропущено служебное слово
$ENDIF. Посмотрите все метаоператоры $IF, чтобы найти  место,  где
следует указать соответствующей ему $ENDIF.

451 Unmatched $ELSE
    Непарный метаоператор $ELSE
     Компилятор обнаружил метаоператор $ELSE  без  предшествующего
ему метаоператора условной компиляции $IF. Посмотрите  в  исходном
тексте  предшествующие  $ELSE,  чтобы  найти  место,  где  следует
указать соответствующей ему $IF.

452 Unmatched $ENDIF
    Непарный метаоператор $ENDIF
     Компилятор обнаружил метаоператор $ENDIF  без предшествующего
ему метаоператора условной компиляции $IF. Посмотрите  в  исходном
тексте предшествующие  $ENDIF,  чтобы  найти  место,  где  следует
указать соответствующей ему $IF.

453 Undefined name constant
    Неопределенная именная константа
     В  программе  использована  именная  константа,  которая   не
определена.  Определите  именную  константу  или   используйте   в
операторе литеральную константу.

454 Undefined function reference
    Обращение к неопределенной функции
     В  выражении  указано  имя  функции,  которая  не определена.
Проверьте,  нет  ли  ошибок  в  имени   функции   или   определите
функцию.

455 Undefined subprogram reference
    Обращение к неопределенной подпрограмме
     Выполнен  вызов  подпрограммы  (CALL),  но  в  программе  нет
определения  подпрограммы.  Проверьте,  нет  ли  ошибок  в   имени
подпрограммы или задайте подпрограмму.

456 Undefined label/line reference
    Обращение к неопределенной метке/номеру строки
     В операторах  IF,  GOTO,  GOSUB  или  ON  указана  метка  или
оператор строки, неопределенные в  программе.  Проверьте,  нет  ли
ошибок в метке или номере строки, или задайте их в программе.

457 Undefined array reference
    Обращение к неопределенному массиву
     Выполнено обращение к массиву, не определенному  в  операторе
DIM. Проверьте, нет ли ошибок в имени массива, или укажите  его  в
операторе DIM.

458 Duplicate label/line number
    Двойное определение метки/номера строки
     Дважды указан один и тот же номер строки или метки. Найдите в
вашей программе и включаемых файлах двойные определения и измените
одно из них или оба.

459 Duplicate named constant
    Двойное определение имени константы
     Две  именные  константы  были  заданы с одинаковыми  именами.
Найдите в вашей программе и включаемых файлах двойные  определения
и измените одно из них или оба.

461 Duplicate subprogram definition
    Двойное определение имени подпрограммы
     Две  процедуры  SUB  были  определены с одинаковыми  именами.
Найдите в вашей программе и включаемых файлах  двойные определения
и измените одно из них или оба.

462 Duplicate common variable
    Двойная общая переменная
     В списке переменных оператора COMMON одна переменная  указана
дважды. Найдите в  вашей программе  и  включаемых  файлах  двойные
определения и измените одно из них или оба.

463 Duplicate variable declaration
    Двойное определение переменной
     В операторах LOCAL, STATIC или SHARED две переменные  указаны
с  одинаковыми  именами.  Найдите  в  вашей программе и включаемых
файлах двойные определения и измените одно из них или оба.

464 Duplicate $COM definition
    Двойное определение $COM
     Для каждого коммуникационного порта в вашей  программе  может
быть  только  один метаоператор $COM.  Найдите в вашей программе и
включаемых файлах определения $COM и удалите одно из них .

465 Duplicate $SOUND definition
    Двойное определение $SOUND
     В  программе может быть  использован только один метаоператор
$SOUND. Найдите в вашей программе и включаемых файлах  определения
$SOUND и удалите одно из них .

466 Duplicate $STACK definition
    Двойное определение $STACK
     В  программе может быть  использован только один метаоператор
$STACK Найдите в вашей программе  и включаемых  файлах определения
$STACK и удалите одно из них .

467 Invalid line number
    Неверный номер строки
     Номер строки должен быть в диапазоне от 0 до 65535.

469 Metastatements not allowed here
    Использование метаоператоров здесь недопустимо
     Метаоператоры должны быть первыми командами в строке

470 Block/scanned statements not allowed here
    Блочные операторы здесь недопустимы
     Блочные операторы типа WHILE/WEND, DO/LOOP и SELECT  CASE  не
могут быть использованы в однострочных операторах IF.

471 Unknown identifier/syntax error
    Неизвестный оператор/синтаксическая ошибка
     В  строке что-то не  так  -  компилятор  не  может  подобрать
соответствующее сообщение об ошибке.

472 Array subscript error
    Ошибка в индексе массива
     Вы задали массив с одним числом индексов, а использовали  его
с другим числом.

473 Array bounds error
    Ошибка выхода за границы массива
     Программа  обращается  к  статическому  массиву   с   помощью
литерального значения, выходящего за пределы диапазона.

474 Tipe mismatch
    Несоответствие числовых типов
     Типы переменных в операторе SWAP неодинаковы.

475 Parameter mismatch
    Несоответствие параметров
     Типы  или  число  параметров  не  соответствуют   определению
функции или процедуры.

476 CLEAR parameter error - use MEMSET/$STACK
    Ошибка параметров CLEAR - используйте MEMSET/$STACK
     Дополнительные  параметры,  доступные   оператору  CLEAR,  не
доступны в таком компиляторе БЕЙСИКА, как  ТУРБО БЕЙСИК.

477 LOCAL requires DEF FN/SUB
    LOCAL требует DEF FN/SUB
     Локальные переменные могут быть объявлены только в  процедуре
или функции.

478 SHARED requires DEF FN/SUB
    SHARED требует DEF FN/SUB
     Разделяемые   переменные   могут   быть  объявлены  только  в
процедуре или функции.

479 STATIC requires DEF FN/SUB
    STATIC требует DEF FN/SUB
     Статические   переменные   могут  быть   объявлены  только  в
 процедуре или функции.

480 COMMON array must be dynamic
    Массивы СOMMON должны быть динамическими
     Общие массивы, указанные  в  операторе  COMMON,  должны  быть
объявлены как DYNAMIC.

481 LOCAL array must be dynamic
    Массивы LOCAL должны быть динамическими
     Локальные массивы, указанные  в  операторе LOCAL, должны быть
объявлены как DYNAMIC.

482 Parameter arrays cannot be altered
    Массивы - параметры не могут быть изменены
     Нельзя  стереть  (ERASE)   или   разместить   (DIM)   массив,
используемый в качестве параметра функции или подпрограммы.

483 Array is not STATIC
    Массив не является статическим
     Нельзя определять размерность статического массива с  помощью
переменных в качестве индекса. При задании индексов  массива  типа
STATIC  следует  использовать   либо   именные   константы,   либо
литеральные константы.

484 Array previously STATIC
    Первоначально массив был определен как статический
     Если в вашей программе для  одного  и  того  же  массива  два
оператора DIM, массив автоматически считается динамическим. Либо в
другом месте программы пытались объявить массив как  STATIC,  либо
ваша  программа  выполняет  команду  DIM  DYNAMIC   для   массива,
объявленного ранее как  STATIC.

485 Array name without "()" expected
    Требуется имя массива без "()"
     При  использовании  оператора  ERASE  не  следует  за  именем
массива указывать скобки.

486 Array exceeds 64K
    Массив превосходит 64К
     Размеры массива не  должны  превышать  64К  (одного  сегмента
данных). Если  вам  нужны  массивы  большего  размера,  вы  можете
разбить один массив на несколько меньших.

487 Arrays limited to eights dimensions
    Размерность массива не должна превышать 8
     Это внутренне ограничение для компилятора.

488 Invalid numeric format
    Неверный числовой формат
     В программе объявлено число, содержащее более 36 цифр  или  в
числе  с  плавающей  запятой  не  указано  значение  показателя  в
компоненте Е.

489 Invalid function/procedure name
    Неверное имя процедуры/функции
     В случае функции, за  FN  должна  следовать  буква,  а  затем
другие буквы, цифры и точки, завершать  может  идентификатор  типа
(%, &, !, #, или $). В случае процедуры имя  должно  начинаться  с
буквы, включать другие буквы, цифры и точки, но не должно включать
идентификатор типа.

490 No parameters with INLINE SUB
    В INLINE SUB не заданы параметры
     Не указан список формальных параметров в объявлении процедуры
INLINE SUB.  За число и тип параметров, передаваемых  ассемблерной
программе отвечает она сама. Никакая проверка типов не выполняется
компилятором.

491 Only $INLINE allowed here
    Здесь допустимо только $INLINE
     В процедуре SUB с режимом INLINE допустимы  только  операторы
$INLINE.

492 $INLINE requires SUB INLINE
    Для $INLINE необходимы SUB INLINE
     Операторы $INLINE допустимы только в процедурах SUB с режимом
INLINE.

493 $INCLUDE file not found
    Файл $INCLUDE не найден
     Включаемый  файл  не  найден  в  заданном  маршруте,  текущем
каталоге или маршруте,  указанном  в  режиме  DIRECTORIES  в  меню
SETUP. Проверьте  маршруты  или  убедитесь  в  том,  что  заданный
включаемый файл существует.

494 $INCLUDE disk error
    Ошибка на диске при выполнении $INCLUDE
     При попытке  открытия  ТУРБО  БЕЙСИКОМ  включаемого  файла  в
процессе компиляции возникла ошибка на диске.

495 $INCLUDE file too large
    Файл $INCLUDE слишком велик
     Включаемые файлы, так же  как  и  все  файлы,  загружаемые  в
редактор ТУРБО БЕЙСИКА, не должны превосходить 64К.

496 $INLINE file not found
    Файл $INLINE не найден
     Файл INLINE не найден ни в заданном маршруте,  ни  в  текущем
каталоге.  Убедитесь  в  том,  что   указанный   включаемый   файл
существует.

497 $INLINE disk read error
    Ошибка чтении с диска файла $INLINE
     При попытке открытия ТУРБО БЕЙСИКОМ файла INLINE  в  процессе
компиляции возникла ошибка на диске.

498 Temporary file acces error
    Ошибка доступа к временному файлу
     При компиляции на диск (в файлы .ЕХЕ или .ТВС) компилятор  не
смог  осуществить  доступ  к  временному  файлу. Проверьте каталог
ТУРБО в режиме DIRECTORIES в меню SETUP, чтобы  убедиться  в  том,
что заданный каталог существует.

499 Destination file write error
    Ошибка записи в файл назначения
     При компиляции на диск (в файлы  .ЕХЕ  или  .ТВС)  компилятор
получил информацию об ошибке записи на диск.

600-610 Internal error
    Внутренняя ошибка
     Если возникла какая-либо из этих ошибок  немедленно  сообщите
группе технического сопровождения.


                        ПРИЛОЖЕНИЕ F
------------------------------------------------------------------
                                            Справочные материалы
------------------------------------------------------------------

     Этот  раздел  посвящен  справочным  материалам   и   включает
скэн-коды клавиатуры и расширенные коды.

     Расширенные коды клавиатуры
     ---------------------------
     Расширенными кодами клавиатуры кодируются  клавиши,  или   их
комбинации, которые не могут быть представлены в коде ASCII.
     Расширенные коды возвращаются системной переменной $INKEY.  В
двухсимвольной строке  в  качестве  первого  символа  возвращается
ноль. Обычно  вторым  информационным  символом  является  скэн-код
первой клавиши.  В таблице F-1  представлены информационные коды и
их значения.
                         Таблица F-1.  Расширенные коды клавиатуры
------------------------------------------------------------------
Информаци-   Значение
онный код
------------------------------------------------------------------
  3          NULL, (пустой символ)
  15         Shift-Tab
  16-25      Alt-Q/W/E/R/T/Y/U/I/O/P
  30-38      Alt-A/S/D/F/G/H/J/K/L
  44-50      Alt-Z/X/C/V/B/N/M
  59-68      F1-F10 (Задействованы как программные ключи)
  71         Home
  72         Стрелка вверх
  73         PgUp
  75         Стрелка влево
  77         Стрелка вправо
  79         End
  80         Стрелка вниз
  81         PgDn
  82         Ins
  83         Del
  84-93      F11-F20 (Shift-F1 до Shift-F10)
  94-103     F21-F30 (Ctrl-F1 до Ctrl-F10)
  104-113    F31-F40 (Alt-F1 до Alt-F10)
  114        Ctrl-PrtSc
  115        Ctrl-стрелка влево
  116        Ctrl-стрелка вправо
  117        Ctrl-End
  118        Ctrl-PgDn
  119        Ctrl-Home
  120-131    Alt-1/2/3/4/5/6/7/8/9/0/-/=
  132        Ctrl-PgUp
  133        F11
  134        F12
  135        Shift-F11
  136        Shift-F12
  137        Ctrl-F11
  138        Ctrl-F12
  139        Alt-F11
  140        Alt-F12
------------------------------------------------------------------

     Скэн-коды клавиатуры
     --------------------
     В скэн-кодах  кодируются  клавиши  на  клавиатуру  IBM  PC  в
соответствии с тем, как их  понимает  ТУРБО  БЕЙСИК.  Эти  клавиши
особенно полезны при работе на  уровне языка  ассемблер.  Обратите
внимание, что  скэн-коды  клавиатуры  приведены  в  таблице  F-2 в
шестнадцатиричном виде.
                                Таблица F-2.  Скэн-коды клавиатуры
------------------------------------------------------------------
Клавиша скэн-код     Клавиша скэн-код     Клавиша скэн-код
------------------------------------------------------------------
Esc           01     A             1E     F1            3B
!1            02     S             1F     F2            3C
@2            03     D             20     F3            3D
#3            04     F             21     F4            3E
$4            05     G             22     F5            3F
%5            06     H             23     F6            40
^6            07     J             24     F7            41
&7            08     K             25     F8            42
*8            09     L             26     F9            43
(9            0A     ;:            27     F10           44
)0            0B     "'            28     Num Lock      45
_-            0C     ~`            29     Scroll Lock   46
+=            0D     Левый Schift  2A     7 Home        47
BckSp         0E     |\            2B     8 Стр.вверх   48
Tab           0F     Z             2C     9 Pg Up       49
Q             10     X             2D     -             4A
W             11     C             2E     4 Стр. влево  4В
E             12     V             2F     6 Стр. вправ  4D
R             13     B             30     5             4C
T             14     N             31     +             4E
Y             15     M             32     1 End         4F
U             16     ,<            33     2 Стр. вниз   50
I             17     .>            34     3 PgDn        51
O             18     /?            35     0 lns         52
P             19     Правый Schift 36     . Del         53
[{            1A     PrtScr        37     F11           D9
]}            1B     Alt           38     F12           DA
Enter         1C     Кл.пробел     39
Ctrl          1D     Caps Lock     3A
------------------------------------------------------------------


                        ПРИЛОЖЕНИЕ G
------------------------------------------------------------------
                                              DOS для начинающих
------------------------------------------------------------------

     В  этом  приложении  вашему  внимания   предлагается
краткий обзор следующих положений и функций DOS:
     - Что такое DOS и для чего он нужен;
     - Надлежащий способ загрузки программ;
     - Каталоги, подкаталоги и команда PATH;
     - Использование файлов АUTOEXEC.BAT.
     Для более полной информации обратитесь к руководству  пользо-
вателя по MS-DOS или РС-DOS,  которым снабжена ваша вычислительная
система.
     ТУРБО БЕЙСИК работает  под  управлением  операционных  систем
MS-DOS и РС-DOS версий 2.0 и более поздних.

     Что такое DOS?
     --------------
     DOS это сокращенное название дисковой  операционной  системы.
Под МS-DOS понимают версию DOS фирмы Microsoft, РС-DOS - это DOS в
исполнении IBM. DOS является координатором движения, менеджером  и
оператором взаимодействий, возникающих  между  отдельными  частями
вычислительной системы, между компьютером и вами. DOS  работает  в
фоновом  режиме,  заботясь  о  выполнении  служебных  компьютерных
функций, о которых вы не хотели бы и думать - например, о передаче
символов между клавиатурой  и  компьютером,  между  компьютером  и
принтером, между вашими дисками и внутренней памятью (RAM).
     Выполнение  других  взаимодействий  вы   инициируете   вводом
команды в командной  строке  DOS;  иначе  говоря,  непосредственно
после подсказки DOS.
     Подсказки DOS выглядят следующим образом:
     А>   или   В>   или   С>
     Прописная буква относится к  активному  дисковому  накопителю
(который DOS и вы используете в данный момент).  Команды,  которые
вы зададите DOS будут обращены к этому накопителю. Если вы захоти-
те переключиться на другой диск,  сделав  его активным, - наберите
букву диска, за  которым  следует  двоеточие,  и  нажмите  клавишу
"Enter".  Например, чтобы перейти на накопитель В, введите:

     В:

     Есть несколько команд,  которые  вам  в  DOS  придется  часто
использовать, если уже не пришлось, такие как:

DEL или ERASE       Удалить файл
DIR                 Посмотреть список файлов на диске, на который
                    вы настроились
COPY                Скопировать файлы с одного диска на другой
TB                  Загрузить ТУРБО БЕЙСИК.

     Для  DOS  не  имеет  значения,  вводите  вы  строчные  буквы,
прописные или и те и другие вперемешку.
     Обратитесь  к  руководству  по DOS, чтобы узнать, как пользо-
ваться  первыми  тремя указанными  командами.  Далее мы рассмотрим
надлежащий способ загрузки такой программы, как ТУРБО БЕЙСИК.

     Как загрузить программу
     -----------------------
     На вашем диске с системой ТУРБО  БЕЙСИК  вы  найдете  файл  с
именем ТВ.ЕХЕ. Этот программный файл содержит все основные функции
БЕЙСИКА.  Наберите  на клавиатуре ТВ и нажмите Enter, чтобы загру-
зить ТУРБО БЕЙСИК в память вашего компьютера.
     При загрузке ТУРБО  БЕЙСИКА  или  другой  подобной  программы
следует  помнить:  для  того,  чтобы  загрузить  программу,  нужно
настроиться на диск и каталог, в котором она находится. Если вы не
задали маршрут DOS,  операционная  система  не  будет  знать,  где
искать программу.
     Вы можете задать "маршрут" для ваших файлов на  БЕЙСИКЕ  так,
что DOS сможет найти их  с  помощью  команды  Path.  Более  полную
информацию вы найдете в разделе "Файл AUTOEXEC.BAT".

     Каталоги
     --------
     Каталоги позволяют подразделить  диск  на  несколько  частей.
При этом, если вы наберете DIR в командной строке DOS, вам не при-
дется в поисках нужного файла просматривать сотни других имен. Бу-
дет выведен  список  файлов  лишь  того  каталога,  на  который вы
настроились.
     Работая на уровне DOS, а не в ТУРБО  БЕЙСИКЕ  или  какой-либо
другой программе, вы можете создавать новые  каталоги,  перемещать
файлы  из одного каталога в другой и выводить список файлов в кон-
кретном каталоге.
     В приведенных ниже примерах предполагается, что вы используе-
те систему на жестком диске, и настроены на жесткий  диск так, что
на экране вы видите подсказку С>.

     Для того, чтобы создать каталог  для  файлов  ТУРБО  БЕЙСИКА,
следует выполнить следующее:
     1. На подсказку С>  наберите  MRDIR BASIC  и  нажмите  Enter.
Команда MKDIR сообщает DOS о том,  что  нужно  создать  каталог  с
именем BASIC.
     2. Введите CHDIR BASIC и нажмите Enter. Команда CHDIR настра-
ивает DOS на ваш каталог.
     3. Затем поместите диск с ТУРБО БЕЙСИКОМ, который  вы  хотите
скопировать на одно из устройств для гибких дисков, скажем,  А,  и
введите команду  СОРY А: *.* 

     Подкаталоги
     - - - - - -
     Если вам нравится структурная организация, вы можете  разбить
каталоги на подкаталоги.  Можно создать столько каталогов и подка-
талогов, сколько вам  захочется  -  не забудьте только, куда какие
файлы вы поместили.
     Подкаталог создается тем же  способом,  что  и  каталог.  Для
того, чтобы создать подкаталог  в  каталоге  BASIC  (например  для
хранения графических файлов), сделайте следующее:
     1. Убедитесь в том, что вы в каталоге BASIC
     2. Введите MKDIR GRAF Enter
     3. Введите CHDIR GRAF Enter
Теперь вы в подкаталоге GRAF.
     Основная команда DOS для смены каталогов - это CHDIR.

     Где я нахожусь? Подсказки $p$g
     - - - - - - - - - - - - - - - -
     Возможно, что вы уже заметили, что при  смене  каталогов,  вы
видите одну и ту же подсказку  С>;  т.е.,  не  очевидно,  в  каком
каталоге или подкаталоге  вы находитесь. DOS предоставляет простой
способ обнаружить это. Введите
     prompt=$p$g
и с этого момента (до тех пор, пока вы не выключите компьютер  или
не  перезагрузитесь)  подсказка точно  покажет вам, где вы находи-
тесь. Если вы еще  в подкаталоге GRAF,  подсказка DOS будет выгля-
деть так:
     С:\BASIC\GRAF>

     Фaйл AUTOEXEC.BAT
     -----------------
     Можно избежать ввода команды подсказки  (которая  обсуждалась
выше) для того, чтобы посмотреть "где вы  находитесь"  при  каждом
включении компьютера, если внести ее в файл AUTOEXEC.BAT.
     Чтобы не углубляться  в детали  относительно этого файла,  мы
предлагаем  обратиться  к руководству  по DOS.  Однако, мы покажем
вам,  как создать файл AUTOEXEC.BAT, который автоматически изменит
подсказку с тем, чтобы вы всегда  знали, где в структуре каталогов
вы находитесь, и установит маршрут каталога BASIC.
     Команда задания маршрута (path) в  DOS  сообщает  компьютеру,
где искать команды, которые операционная система не может  узнать.
DOS узнает программы только в текущем (том, на  который  настроен)
каталоге, если не задан маршрут  каталога,  содержащий  подходящие
программы или файлы.
     В следующем примере устанавливается маршрут к каталогу  BASIC
и подкаталогу FILES.
     Если в  корневом  каталоге  имеется  файл  AUTOEXEC.BAT,  ваш
компьютер выполнит все, что в нем содержится в тот  момент,  когда
компьютер будет включен.

     Далее изложено как создать файл AUTOEXEC.BAT:
     1.  Наберите CHDIR \ для того, чтобы настроиться на  корневой
каталог.
     2. Наберите  COPY CON AUTOEXEC.BAT . Эта команда сооб-
щает DOS, что все введенное вами дальше  должно  быть  скопировано
в файл AUTOEXEC.BAT.
     3. Введите

     ECHO OFF
     PROMPT=$P$G
     PATH=C:\BASIC;C:\BASIC\FILES
     CHDIR \BASIC
     Ctrl-Z 

     Команда  Ctrl-Z  сохраняет   введенные   команды   в   файле
AUTOEXEC.BAT.
     Для  того,  чтобы  проверить  ваш  новый  файл  AUTOEXEC.BAT,
перезагрузите  систему,  нажав  одновременно  Ctrl-Alt-Del.  Когда
загрузка завершится, вы увидите подсказку C:\BASIC>.

     Конфигурирование операционной среды
     -----------------------------------
     Если у вас есть специальные требования к аппаратным средствам
или вы разработчик, нуждающийся в динамической среде,  возможность
установки переменных среды предоставляет вам  определенный  выбор.
Переменные  среды  задаются  с  помощью  команды  SET  в   DOS   и
переопределяют опции компилятора и/или программы.
     Переменные среды воздействуют на всю среду, в которой  выпол-
няется программа.  Таким образом,  установленный однажды  параметр
действует до тех пор, пока он не будет переустановлен или пока ма-
шина не будет выключена. Если  значения параметров устанавливаются
всегда одним и тем же образом, вы можете ввести команду  SET в па-
кетный (bath) файл, или в файл AUTOEXEC.BAT.
     Переменные среды в  ТУРБО  БЕЙСИКЕ  позволяют  переопределять
опции компилятора и режимы  выполнения  для  сопроцессора  8087  и
проверки цветного графического адаптера (CGA). Предположим, что вы
хотите использовать сопроцессора 8087  в  операционной  среде.  На
подсказку DOS введите:

     SET 87=yes

где "yes" означает, что у вас есть сопроцессор, "no" означает, что
если даже 8087 имеется, использовать его не следует. По  умолчанию
- "yes".
     В случае "снежной проверки" CGA, введите

     SET CGASNOWCHK=no

где "no"  отменяет  выполнение  "снежной  проверки",  а  "yes"  ее
выполняет.  По  умолчанию - "yes".
     Когда компилятор начинает работу, или запускается на выполне-
ние сгенерированные  файлы .ЕХЕ,  происходит просмотр пространства
переменных среды с целью определения их значений. Хотя и нет необ-
ходимости в установке значений переменной среды, они в вашем  рас-
поряжении в любой момент, когда вам это понадобится.


                        ПРИЛОЖЕНИЕ H
------------------------------------------------------------------
                             Краткое описание функций и процедур
------------------------------------------------------------------

     Это приложение  можно  использовать  как  краткий  справочник
процедур и функций, сгруппированных в соответствии с их действием.
Так, например, под заголовком "Символьные операции"  приведена,  в
частности, функция BIN$, которая  возвращает  двоичный  символьный
эквивалент заданного числа, а также все остальные операции  работы
со строками.

                          Метаоператоры
$COM        Размещает принимающий буфер последовательного порта.
$DYNAMIC    Объявляет динамическими массивы, размещение которых
              выполняется по умолчанию.
$EVENT      Управляет генерацией кода прерывания по событиям.
$IF/$ELSE/  Определяет  части  исходной  программы,  которые
  $ENDIF      компилируются или  пропускаются в зависимости от
              условий.
$INCLUDE    Включает текстовый файл.
$SEGMENT    Объявляет новый сегмент кода.
$SOUND      Объявляет емкость буфера фоновой музыки.
$STACK      Задает размер стека для прогона программы.
$STATIC     Объявляет статическими массивы, выполнение  которых
              выполняется по умолчанию.

                        Связывание
CHAIN       Вызывает цепной модуль ТУРБО БЕЙСИКА (*.ТВС).
COMMON      Объявляет переменные, передаваемые в цепную программу.
SHELL       Загружает и выполняет порожденный процесс (для версии
               DOS начиная с 3.0).
RUN         Перезапускает программу.

                        Определение данных
DATA        Объявляет константы для оператора READ.
DIM         Объявляет массивы.
LET         Присваивает переменной значение.
LOCAL       Объявляет локальные переменные в процедуре или
              функции.
OPTION BASE Объявляет минимальное значение для индексов массива.
READ        Загружает переменные константами из оператора DATA.
RESTORE     Позволяет повторно читать константы оператора DATA.
SHARED      Определяет разделяемые (глобальные) переменные в
               процедуре или функции.
STATIC      Объявляет статические переменные в процедуре или
               функции.
SWAP        Обменивает значение двух переменных.

                        Числовые операции
ABS         Возвращает абсолютное значение.
ASC         Возвращает ASCII код первого символа строки.
ATN         Возвращает значение тригонометрического арктангенса
CDBL        Преобразует число в формат с двойной точностью.
CEIL        Возвращает наименьшее  целое,  большее  или  равное
              аргументу.
CINT        Преобразует в целое.
CLNG        Преобразует в длинное целое.
COS         Возвращает значение тригонометрического косинуса.
CSGN        Преобразует числовое выражение в эквивалентное  ему
              число.
DECR        Уменьшает значение переменной.
DEFINT/     Объявляет тип идентификаторов переменных, установлен-
  DEFLNG/DEFSNG/   установленный по умолчанию.
  DEFDBL/DEFSTR
EXP         Возвращает e в степени Х.
EXP2        Возвращает 2 в степени Х.
EXP10       Возвращает 10 в степени Х.
FIX         Округляет до целого.
INCR        Увеличивает значение переменной.
INT         Преобразует числовое выражение в целое.
LOG         Возвращает значение натурального логарифма.
LOG2        Возвращает значение логарифма по  основанию  2.
LOG10       Возвращает значение логарифма по  основанию  10.
RANDOMIZE   Устанавливает начальное значение для генератора
              случайных чисел.
RND         Возвращает случайное число.
SGN         Возвращает знак числового выражения.
SIN         Возвращает значение тригонометрического синуса.
SQRT        Возвращает значение квадратного корня.
TAN         Возвращает значение тригонометрического тангенса.

                       Символьные операции
BIN$        Возвращает двоичный символьный эквивалент числа
CHR$        Преобразует ASCII код в односимвольную строку
HEX$        Преобразует число  в  шестнадцатиричный  символьный
              эквивалент
INSTR       Просматривает строки в поисках заданного шаблона
LCASE$      Возвращает строку, состоящую  только  из  прописных
              букв
LEFT$       Возвращает n самых левых символов в строке
LEN         Возвращает длину строки
MID$        Возвращает символьную строку
MID$        Замещает символьную строку
OCT$        Возвращает строку, представляющую значение числа  в
              восьмеричном (по основанию 8) виде
RIGHT$      Возвращает n самых правых символов строки
SPACE$      Возвращает строку, состоящую из n пробелов
STR$        Возвращает символьный эквивалент числа
STRING$     Возвращает строку, состоящую из многократных  копий
              заданного символа
UCASE$      Возвращает строку,  состоящую  только  из  строчных
              букв
VAL         Возвращает числовой эквивалент строки

                    Управление ходом программы
CALL            Вызывает процедуру, подпрограмму.
CALL ABSOLUTE   Вызывает процедуру на языке ассемблер.
CALL INTERUPT   Вызывает системное прерывание.
DEF FN/END DEF  Определяет функцию.
DO/LOOP     Строит цикл с проверкой вначале и/или в конце
END         Завершает выполнение программы или определяет конец
              структурного блока.
EXIT        Преждевременный выход из структуры.
FOR/NEXT    Задает  цикл  с  автоматически  возрастающим   (или
              уменьшающимся параметром цикла).
GOSUB       Вызывает подпрограмму.
GOTO        Направляет ход программы на оператор, идентифицируемый
              меткой.
IF          Проверяет условие и изменяет  ход  программы,  если
              условие выполнено.
IF блочный  Создает последовательность операторов IF.
INLINE      Объявляет встроенный машинный код.
REM         Отделяет программные комментарии.
RETURN      Возвращает управление из подпрограммы в  вызывающую
              программу.
SELECT      Формирует оператор проверки общего назначения.
STOP        Останавливает программу.
SUB/END SUB Определяет процедуру (подпрограмму).
SYSTEM      Завершает программу.
WHILE/WEND  Строит цикл с проверкой в начале.

                               Ввод
INKEY$      Читает с клавиатуры.
INPUT       Запрашивает у пользователя значения, которые  будут
              присвоены одной или нескольким переменным.
INPUT$      Читает заданное число символов с клавиатуры.
INSTAT      Возвращает состояние клавиатуры.
LINE INPUT  Считывает  строку  с   клавиатуры   в   символьную
              переменную, игнорируя разделители.

                              Вывод
PRINT [USING]   Посылает на экран сформатированную информацию.
SPC         Пропускает n пробелов (используется в опepаторах
              PRINT)
TAB         Устанавливает табуляцию на заданную позицию  вывода
              n (используется  в  операторах PRINT).
WRITE       Посылает на экран данные, разделенные запятыми.

                              Файлы
BLOADS      Загружает файл ВSAVED в память.
BSAVE       Сохраняет на диске  содержимое  памяти  в  заданном
              диапазоне адресов.
CHDIR       Изменяет текущий каталог (команда CD DOS).
CLOSE         Закрывает файл или устройство.
CVI/CVL/    Преобразует символьные  данные,  прочитанные  из
  CVS/CVD     файла с произвольным доступом в числовую форму.
CVMD/CVMS   Преобразует  символьные  переменные,  прочитанные
              из файла с произвольным доступом в формате Microsoft
              числовую форму.
EOF         Возвращает состояние конца файла.
FIELD       Определяет  переменные  поля  в  буфере   файла   с
              произвольным доступом.
FILES       Выводит содержимое каталога (подобно команде DIR DOS)
GET(файлы)  Читает запись из файла с произвольным доступом.
GET$        Читает  в  символьном  формате  данные  из   файла,
              открытого в режиме BINARY.
INPUT#      Присваивает переменным данные из последовательного
              файла.
INPUT$      Читает заданное число символов из файла.
KILL        Удаляет файл (подобно команде DEL DOS).
LINE INPUT# Считывает  строку  из  последовательного  файла  в
              символьную переменную, игнорируя разделители.
LOC         Возвращает текущую позицию в файле.
LOF         Возвращает длину файла.
LSET        Пересылает символьные данные в буфер файла.
MKDIR       Создает каталог (подобно команде MKDIR DOS)
MKI$/MKL$/  Преобразует числовые данные в символьные (для файлов
  MKS$/MKD$   с произвольным доступом).
MKMD$/MKMS$ Преобразует числовые данные в формате Microsoft (для
              файлов с произвольным доступом).
NAME        Переименовывает файл (подобно функции RЕN DOS).
OPEN        Готовит файл или устройство к записи или чтению.
PRINT# [USING]  Записывает в файл сформатированную информацию.
PUT         Записывает запись в файл с произвольным доступом.
PUT$        Записывает строку в файл в двоичном режиме.
RESET       Закрывает и сбрасывает все дисковые файлы.
RMDIR       Удаляет каталог (подобно команде RMDIR DOS)
RSET        Пересылает  символьные  данные  в  буфер  файла   с
              произвольным доступом.
SEEK        Устанавливает позицию в  двоичном  файле  для  GET$
              и РUT$.
WRITE#      Выводит данные в последовательный файл.

                      Печатающее устройство
LPOS        Возвращает позицию  курсора  в  буфере  печатающего
              устройства.
LPRINT [USING]  Посылает данные на принтер (LPT1:).

                              Экран
CLS         Очищает экран
COLOR       Задает цвет
CSRLIN      Возвращает  текущую  вертикальную  позицию  курсора
              (номер строки)
LOCATE      Размещает курсор и/или определяет размер  указателя
              (курсора)
POS         Возвращает текущую горизонтальную  позицию  курсора
              (номер колонки )
SCREEN(функция)  Возвращает ASCII-код символа в заданной строке и
                   колонке
WIDTH       Устанавливает логическую длину строки

                            Устройства
COM  (n)    Управляет прерываниями, связанные с событиями
              последовательного порта
INP         Читает из порта ввода/вывода.
IOCTL/IOCTL$    Работают с драйвером устройства.
OPEN COM    Открывает и конфигурирует коммуникационный порт.
OUT         Пишет в порт ввода/вывода.

                      Управление клавиатурой
KEY         Устанавливает и воспроизводит назначения
              функциональных клавиш и определяет значения
              прерываний по клавишам.
KEY (n)     Включает и  выключает  прерывание  по  определенной
              клавише.

                        Аппаратные события
DELAY       Устанавливает задержку.
ON COM(n)   Создает  подпрограмму  обработки  прерывания   по
              событиям последовательного порта.
ON ERROR    Определяет процедуру обработки  ошибки  и  включает
              прерывания по ошибке.
ON /GOSUB   Вызывает одну из нескольких возможных подпрограмм в
              соответствии со значением числового выражения.
ON /GOTO    Направляет ход программы по  одному  из  нескольких
              возможных  адресов  в   зависимости   от   значения
              числового выражения.
ON KEY(n)   Объявляет   подпрограмму   обработки   прерывания,
              получающую управление при нажатии заданной клавиши.
ON PEN      Объявляет   подпрограмму   обработки   прерывания,
              получающую управление, если  начинается  работа  со
              световым пером.
ON PLAY     Объявляет   подпрограмму   обработки   прерывания,
              получающую управление, если  буфер  фоновой  музыки
              содержит меньше заданного количества нот.
ON STRIG    Объявляет   подпрограмму   обработки   прерывания,
              связанных с кнопками джойстика.
ON TIMER    Объявляет   подпрограмму   обработки   прерывания,
              которая получает управление каждые n секунд.
STICK       Возвращает информацию о позиции джойстика.
STRIG (функция) Возвращает состояние кнопок джойстика.
STRIG (оператор)Управляет  проверкой  событий,  связанных   с
                  кнопками джойстика.
WAIT        Ждет заданных условий состояния кнопок клавиатуры.

                             Графика
CIRCLE      Рисует круг или часть круга.
COLOR       Задает цвет для графических операций
DRAW        Изображает контур на графическом экране.
GET(графика)    Считывает часть экрана или весь экран в массив.
LINE        Рисует прямую линию или прямоугольник.
PAINT       Закрашивает замкнутую область на графическом экране
              выбранным цветом.
PEN (функция)   Читает состояние светового пера.
PEN (оператор)  Управляет проверкой событий, связанных со  световым
                  пером.
PMAP        Переводит физические координаты в  пользовательские
              и наоборот.
POINT       Определяет цвет пиксела или информацию LPR.
PRESET      Изображает точку на графическом экране.
PSET        Изображает точку на графическом экране.
PUT         Изображает   на   графическом   экране   содержимое
              числового массива.
SCREEN(графика) Устанавливает режим изображения на экране
VIEW        Определяет  активную  область  (после  изображения)
              графического окна.
WINDOW      Определяет графическую систему координат.

                               Звук
BEEP            Генерирует звуковой сигнал
PLAY(функция)   Возвращает число нот в буфере фоновой музыки
PLAY(оператор)  Возвращает число нот в буфере фоновой музыки
SOUND           Генерирует тон заданной частоты и длительности

                        Управление памятью
CLEAR       Очищает память переменных.
DEF SEG     Определяет  сегмент  данных,  который  используется
              операторами BLOAD, BSAVE, CALL ABSOLUTE, PEEK, POKE
END MEM     Возвращает адрес конца физической памяти.
ERASE       Удаляет динамические массивы и возвращает в
              исходное состояние.
FRE         Возвращает  количество  свободной  памяти,  которая
              доступна вашей программе.
МEМSET      Объявляет верхнюю границу памяти.
PEEK        Возвращает байт, записанный в заданную ячейку памяти.
POKE        Записывает байт по заданному адресу.
REG         Устанавливает или возвращает значение в регистровом
              буфере.
VARPTR      Возвращает адрес переменной.
VARPTR$     Возвращает указатель переменной в символьном формате.
VARSEG      Возвращает адрес сегмента переменной.

                     Обработка ошибок и отладка
ERADR           Возвращает адрес самой последней ошибки.
ERRDEV/ERRDEV$  Возвращает информацию драйвера устройства.
ERL/ERR         Возвращает номер строки и код последней ошибки.
ERROR       Имитирует ошибку выполнения.
RESUME      Перезапускает выполнение программы после  обработки
              ошибки.
TRON/TROFF  Включает и выключает трассировку выполнения.


                        ПРИЛОЖЕНИЕ I
------------------------------------------------------------------
                               Подготовка к работе ТУРБО БЕЙСИКА
------------------------------------------------------------------

     Программа TBINST.COM позволяет
* задавать маршрут для файлов, выполняющих настройку, и файлов  со
  вспомогательной информацией (help)
* приспосабливать клавиатуру
* модифицировать режимы редактора, устанавливаемые по умолчанию
* настраивать режим работы с экраном по умолчанию.
     Если вы хотите хранить файлы со  вспомогательной  информацией
(TBHELP.TBH) и/или файлы настройки (TBCONFIG.TB) не в том  катало-
ге, где хранится ТВ.ЕХЕ, а в другом, вам потребуется  режим работы
с  каталогами  ТУРБО БЕЙСИКА для задания маршрута поиска этих фай-
лов.
     Если вы не знакомы с редактором ТУРБО БЕЙСИКА или прикованы к
другому  редактору,  вы   можете   использовать   режим   "Команды
редактора" для того, чтобы  переконфигурировать  (приспособить)  к
вашим привычкам клавиши редактора.
     Для   установки   по   умолчанию   нескольких   характеристик
редактора:  режима   вставки   или   перезаписи,   табуляторов   и
автоматического  структурирования,-  можно  использовать   вариант
"Default" (по умолчанию) в режиме редактирования.
     И, наконец, можно устанавливать режим экрана, в котором будет
работать ТУРБО БЕЙСИК.

     Запуск TBINST
     -------------
     Для запуска программы введите на подсказку DOS TBINST. Первое
меню позволит выбрать: каталог ТУРБО  БЕЙСИК,  команды  редактора,
режимы редактирования  по  умолчанию,  режимы  работы  экрана  или
выход.  Вы  можете  либо  нажать   высвеченную   заглавную   букву
выбранного режима, либо использовать стрелки вверх  или  вниз  для
перемещения указателя к выбранному пункту и нажать Enter. Нажмите,
например, D для того,  чтобы  изменить  режимы  редактирования  по
умолчанию.  Нажатие  клавиши  Esc  вернет  вас  в  основное   меню
программы TBINST.

     Режим "Каталог ТУРБО БЕЙСИКА"
     -----------------------------
     Режим "Каталог ТУРБО БЕЙСИКА"  полезен,  в  действительности,
только пользователям, работающим  с  жестким  диском.  Этот  режим
используется для задания маршрута к конфигурационным файлам с тем,
чтобы они были  доступны  всякий  раз  при  вызове  ТУРБО  БЕЙСИКА
(предполагается, что вы задали оператор маршрута для ТБ).
     После выбора  режима "Каталог ТБ",  появляется  подсказка  на
ввод полного маршрута к каталогу ТУРБО (т.е. каталога,  в  котором
хранятся ваши конфигурационные файлы; см. в гл.3  описание  режима
Directories в спускающемся меню SETUP). Например, если  вы  хотите
хранить  конфигурационные файлы в подкаталоге с продуктами Борлан-
да, вы должны в качестве маршрута указать:
C:\BORLAND\BASIC
     После ввода маршрута нажмите Enter для приема ответа,  и  вам
будет вновь предложено меню. При выходе из программы  вы  получите
запрос о том, сохранить ли сделанные изменения.