ВВЕДЕНИЕ

ТУРБО БЕЙСИК - это автономная программная среда для персональных
IBM-совместимых компьютеров. ТУРБО БЕЙСИК
включает в себя редактор, быстродействующий компилятор типа "па-
мять - память",  библиотеку рабочих программ и внутренний редак-
тор связей. Его современный пользовательский интерфейс использу-
ет окна  и  спускающиеся  меню.
    Другие важнейшие характеристики включают :
- Обеспечение работы с числами с плавающей запятой (полная  под-
держка сопроцессора  8087 и полная эмуляция программного обеспе-
чения)
- Новые программные операторы с блочной структурой
- Полное обеспечение расширенного графического адаптера (EGA)
    ТУРБО БЕЙСИК  совместим с интерпретирующей версией 3.00 рас-
ширенного языка  программирования  БЕЙСИК  (Advanced  BASIC) IBM
(обычно встречается под названием BASICа)  и  версией  GW  BASIC
Microsoft (с небольшими исключениями,  т.к. они являются интерп-
ретаторами) и содержит много добавлений.
    Программы, созданные с помощью ТУРБО БЕЙСИКа имеют доступ ко
всему объему памяти вычислительных машин - 64 К для числовых пе-
ременных, 64 К для символьных переменных, достаточная память для
массивов и более 64 К для программ.  Компилятор генерирует обыч-
ные выполняемые файлы типа .EXE, которые выполняются от 4 до 100
раз быстрее, чем их интерпретаторные аналоги. А поддержка сопро-
цессора 8087  дает существенные преимущества в решении численных
задач.
    Благодаря передовым конструкциям с управляющей логикой (бло-
ки IF/THEN/ELSE, IF/ELSE/ENDIF, DO/LOOP, CASE/SELECT, CALL/SUB),
программы на ТБ (ТУРБО БЕЙСИК) легче писать, отлаживать и сопро-
вождать, чем  программы на Интерпретаторе БЕЙСИКа.  Номера строк
необязательны; буквенно-цифровые метки могут служить адресом для
операторов GOTO  и  GOSUB.  Определяемые пользователем функции и
процедуры дают возможность объявлять  локальные,  статические  и
общие (совместно  используемые) переменные,  позволяют использо-
вать рекурсию.
    ТУРБО БЕЙСИК   обеспечивает  значительно  расширенную  длину
строк (до 32767 знаков в строке) и исключает  временные затраты,
связанные с периодической "сборкой мусора".  Для обработки файла
на нижнем уровне существуют двоичные файлы типа  BINARY,  а  для
быстрой гибкой  обработки числовых данных - длинные целые числа.
Операторы CALL и REG осуществляют прямую связь с языком ассемб-
лера, существуют  также многочисленные директивы компилятора для
условной компиляции,  прерывания вследствие обнаружения  ошибки,
управление буфером и т.д.
    В  данном руководстве нет всеобъемлющего введения в програм-
мирование на языке БЕЙСИК. Настоящий учебник  также  нельзя рас-
сматривать  как замену  таких  источников  информации, как ДОС и
техническое руководство по вашей машине.
    Настоящее руководство является справочником по системе разра-
ботки  программ,  известной как ТУРБО БЕЙСИК. Мы начинаем с крат-
кого обучения тому,  как установить систему на гибкий или жесткий
диск, а затем объясняем, как использовать ТУРБО БЕЙСИК для редак-
тирования и компилирования простых программ. Затем даются  теоре-
тические основы, они располагаются в основном в Главе  3 , "ТУРБО
БЕЙСИК: Программа."  и в  Главе 4 "ТУРБО БЕЙСИК: Язык."  Глава 5,
"Справочное  руководство  по  ТУРБО БЕЙСИКу"  представляет  собой
справочный раздел с описанием команд  ТУРБО  БЕЙСИКа,  переменных
системы, функций, операторов и метаоператоров в алфавитном поряд-
ке.
    В приложении даются : стандартный американский код для обмена
информацией (ASCII) и скэн-коды клавиатуры,  а также дополнитель-
ная информация, информация о прерываниях, интерфейс с подпрограм-
мами на ассемблере,  ошибки компиляции и  выполнения  и  различия
между ТУРБО БЕЙСИКом и Интерпретатором БЕЙСИКа.


                         Г Л А В А   1
----------------------------------------------------------------
                                               О языке  БЕЙСИК
----------------------------------------------------------------

Созданный в 1964 в Дартмудском Колледже в  Ганновере,  штат Нью-
Хемпшир,  как  язык  обучения  программированию, БЕЙСИК является
общепринятым   акронимом   от "Beginner's  All-purpose  Symbolic
Instruction Code" (BASIC) - Многоцелевой Символический Обучающий
Код для Начинающих"

ТУРБО БЕЙСИК
----------------------------------------------------------------
ТУРБО БЕЙСИК - компилятор БЕЙСИКа.  Вам может быть известен БЕЙ-
СИК для ИБМ (IBM'S  Advansed  Basic),  ( который  называется  GW
BASIC на многих совместимых системах,  но который мы здесь назы-
ваем "Интерпретатор(Interpretive) БЕЙСИК"),популярная  интерпре-
тирующая версия фирмы Microsoft.  Интерпретирование и компилиро-
вание - два основных способа реализации языков  высокого уровня.
Для  понимания важных различий между данными двумя подходами, а,
следовательно, между языками ТУРБО БЕЙСИК и Интерпретатором БЕЙ-
СИКа, требуется вкратце осветить азы программирования.

Назад к основам - машинный язык
- - - - - - - - - - - - - - - -
Конкретный компьютер способен работать с программами, написанны-
ми на его родном машинном языке.  Существует  почти  столько же
разных машинных языков, сколько и компьютеров,  но все они суть
разновидности  одной идей - простые  операции  производятся  со
скоростью молнии на  двоичных числах.  Персональные  компьютеры
IBM используют машинный  язык  микропроцессоров семейства 8086,
т.к. их аппаратная часть основывается именно  на данных  микро-
процессорах.
    Существует два  основных  вида трансляторов: интерпретаторы,
которые сканируют и проверяют исходный код в один шаг,  и компи-
ляторы, которые  сканируют  исходный код для производства текста
программы на машинном языке, которая затем выполняется отдельно.

Интерпретаторы
- - - - - - - -
Исторически БЕЙСИК   обычно   был    реализован    интерпретатор
(Interpretive БЕЙСИК).  Одним  из  часто упоминаемых преимуществ
интерпретатора является то,   что он разрешает  "прямой  режим".
Прямой режим работы позволяет вам дать компьютеру задание,  нап-
ример PRINT 3.14159 * 3^2.1 и возвращает ответ,  как  только  вы
нажмете клавишу  Enter.
    Кроме того,  интерпретаторы  имеют  определенные  возможнос-
ти,которые упрощают отладку.  Например, можно прервать обработку
программы интерпретатором, вывести содержимое определенных пере-
менных на экран,  просмотреть исходную программу и затем продол-
жить выполнение программы.
    Программистам особенно нравится в интерпретаторе  моменталь-
ный ответ.  Нет  необходимости  в компилировании,  интерпретатор
всегда готов отреагировать на вашу программу.  Введите RUN  ,  и
результат  последних  изменений в программе будет выведен на эк-
ран.
    Интерпретируемые языки не лишены недостатков.  Например, не-
обходимо иметь копию интерпретатора в памяти все время - а  мно-
гие из  характеристик  интерпретатора  (и  поэтому  большие  его
размеры) могут не понадобиться при выполнении данной программы.
    Небольшой недостаток  интерпретаторов заключается в том, что
они препятствуют хорошему стилю программирования.Так как коммен-
тарий и  другие  тонкости  форматирования  отнимают  драгоценное
пространство памяти программы, программисты стараются не пользо-
ваться ими.  Можно  только представить себе адские муки програм-
миста, использующего  Интерпретатор  BASIC,пытающегося  заложить
программу в 120К в память размером 60К.
    Но самое неприятное это то,что интерпретаторы медленно рабо-
тают. Они  тратят слишком много времени на обдумывание того, что
надо сделать,  вместо того, чтобы сразу сделать это.При выполне-
нии оператора  программы  интерпретатор сначала сканирует каждый
оператор на содержание, а затем выполняет требуемую операцию.
Операторы внутри цикла сканируются избыточно.
    Ознакомьтесь со следующей программой из трех строк:
10 FOR n=1 TO 100
20 PRINT n, SQR(n)
30 NEXT n
    Сначала Интерпретатор  BASIC будет вычислять,  что строка 20
означает:
    1. Преобразовать числовую переменную в символьную.
    2. Вывести строку на экран.
    3. Перевести курсор в следующую печатную зону.
    4. Извлечь квадратный корень из n.
    5. Преобразовать результат в строку.
    6. Послать строку на экран.
    При повторном прохождении цикла он будет вновь всю ее выпол-
нять, полностью позабыв все,  что он узнал об этой строке  всего
за миллисекунду до этого. Так же проходят следующие 999 циклов.
    Понятно, что если вам удастся отделить фазу сканирование/по-
нимание от фазы выполнения, вы получите более быструю программу.
Вот для этого и нужны компиляторы.

Компиляторы
- - - - - -
Компилятор - это транслятор типа  текст/машинный  язык,  который
считывает исходный текст, оценивает его с точки зрения синтакси-
ческой структуры языка и переводит на  машинный  язык.  Машинный
язык на  выходе  (называемый  объектным кодом) затем выполняется
как независимая ступень. Другими словами компилятор не выполняет
программу, он строит ее. Интерпретаторы нельзя отделить от прог-
рамм, которые они выполняют,  компиляторы делают свое дело и за-
тем удаляются.
    Работая с  компилируемым  языком,  каковым  является   TURBO
BASIC, необходимо учитывать в программах две главные фазы их су-
ществования: время компилирования и время выполнения.  В  случае
интерпретатора мы говорим только о времени выполнения.
    Ускорение программы с использованием языка TURBO BASIC зави-
сит от самой программы. Большинство программ будут выполняться в
4-10 раз быстрее,  чем их интерпретируемые аналоги.  При желании
можно добиться 100-кратного ускорения.

Номера строк и TURBO BASIC
- - - - - - - - - - - - - -
Интерпретатору BASIC необходимы такие номера строк, чтобы он мог
хорошо ориентироваться в случаях, когда команды GOTO и GOSUB пе-
редают выполнение программы оператору,  который не является сле-
дующим в последовательности команд. Кроме того, номера строк яв-
ляются сердцевиной   его   процесса   редактирования.   Допуская
существование номеров строк, язык TURBO BASIC не испытывает пот-
ребности в них. Вместо GOTO 5000 в языке ТУРБО БЕЙСИК вы скажете
что-нибудь вроде GOTO ErrorExit где  ErrorExit есть метка начала
процедуры Error Exit  (выход  из  ошибки).
    Компиляторы бывают разные.  С самого начала ТУРБО БЕЙСИК был
предназначен для быстрого действия. Эта цель была достигнута при
помощи интегрированной системы,  которая хранит компилятор,  ре-
дактор и  программу в памяти одновременно,  исключая бесконечные
поиски на дисковом накопителе, что приводило к тому, что обычные
компиляторы делали переход текст - текст в 10-20 раз медленнее.
    Скорость компилирования языка ТУРБО БЕЙСИК  настолько велика
(тысячи строк  в  минуту),  что он сохраняет интерактивность ин-
терпретируемого БЕЙСИКа.  Просто нажмите клавишу R  и  программа
языка ТУРБО БЕЙСИК запускается.


                         Г Л А В А   2
-----------------------------------------------------------------
                                    Путешествие в  ТУРБО БЕЙСИК
-----------------------------------------------------------------

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

Дублирование ваших дисков
-----------------------------------------------------------------
В  целях безопасности сделайте дубль-копию дистрибутивного диска,
затем сохраните оригинал в  безопасном месте.

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

Установка
- - - - -
Для систем на гибких дисках копируйте TB.EXE на диск самозагрузки
наряду с максимально  возможным числом утилитарных  программ  DOS
(например, CHKDSK, FORMAT). Используйте накопитель В для хранения
исходных и выполняемых программ, которые вы будете создавать.
   Для систем  на жестких дисках создайте новый каталог вне корня
под названием "TB" или что-нибудь в  этом  роде.  Скопируйте  все
файлы на дистрибутивном диске в \TB. Если вам не хватает места на
диске,  копируйте только TB.EXE. При стандартной  конфигурации  с
жестким диском C и первым гибким диском A потребуются команды:

C>MD \TB
C>COPY A:*.* \TB
C>CD \TB
C\TB>

   Для запуска ТУРБО БЕЙСИКа из других каталогов на вашем жестком
диске задайте соответствующий маршрут.

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

SET 87 = yes

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

SET CGASNOWCHK = no

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

Запуск ТУРБО БЕЙСИКа
------------------------------------------------------------------
Введите TB на подсказку DOS и нажмите клавишу "Ввод" (Enter):

C>TB

появляется первый экран ТУРБО БЕЙСИКа:
    ----------------------------------------------------------¬
    ¦ File  Edit  Run  Compile  Options  Setup  Window  Debug ¦
    +--------------------------------------------------T------+
    +------------------------ Edit -------------------¬¦Trace ¦
    ¦  C:NONAME.BAS  Line 1  Col 1  Insert Indent Tab ¦¦      ¦
    ¦                                                 ¦¦      ¦
    ¦                                                 ¦¦      ¦
    ¦                                                 ¦¦      ¦
    +--------------------------------------------------¦      ¦
    +----------- Message ---------¬-------- Run ------¬¦      ¦
    ¦                             ¦¦                  ¦¦      ¦
    ¦                             ¦¦                  ¦¦      ¦
    ¦                             ¦¦                  ¦¦      ¦
    +-----------------------------++------------------++------+
    ¦F1-Help  F5-Zoom  F7-Gate  SCBOOL-Size/weve    Alt-X-Edit¦
    L----------------------------------------------------------
            Рисунок  2-1    Основной экран ТУРБО БЕЙСИКа

   Строка основного меню в верхней части экрана дает варианты ко-
манд и четыре окна "Редактор,  Сообщение,  Трассировка и Прогон".
Вы можете выбрать элемент меню нажатием соответствующей высвечен-
ной прописной  буквы  (например,  E  для Редактора) или перевести
высвеченную полосу с помощью левой или правой  клавиши управления
курсором на  требуемый элемент и нажать клавишу Enter.
   Поэкспериментируйте немного. Выберите команду File. "Спускает-
ся" набор вариантов работы с файлами.  Для выбора одного из вари-
антов снова нажмите первую букву названия варианта или используй-
те стрелки,  движущиеся  вверх и вниз,  для установки высвеченной
полосы и нажмите клавишу Enter.  Для возврата в основное меню и к
его набору  вариантов  нажмите клавишу Esc,  которая вернет вас в
основное меню.  Независимо  от  того,  где вы сейчас находитесь в
ТУРБО БЕЙСИКе,  при неоднократном нажатии на клавишу Esc вы возв-
ращаетесь в  основное меню.
   Помните, что строка подсказки в нижней части экрана изменяется
в зависимости от того, где вы находитесь в системе меню; при зат-
руднении сначала  прочитайте строку подсказки - может быть, этого
будет достаточно.  Если вам требуется дополнительная помощь, наж-
мит клавишу F1.
   Некоторые из элементов основного меню не имеют других  вариан-
тов, кроме того,  что есть на дисплее.  Например,  Compile просто
компилирует ваш загруженный файл, у него нет спускающихся меню. С
другой стороны, File имеет спускающееся меню с несколькими верси-
ями.
   На  практике  большую часть  времени вы будете производить три
типа выбора меню:
- Редактировать (Edit) - создание и изменение исходных программ
- Компилировать (Compile) - компилирование  исходных  программ  в
выполняемую форму
- Прогнать (Run) - выполнить программы или в случае необходимости
компилировать программы.

Набор поддержки редактора
-----------------------------------------------------------------
Перед тем,как приступить к написанию программ, вам необходимо уз-
нать кое-что о редакторе, который вы будете  использовать. В таб-
лице  2-1  даются основные  команды. Помните, что помощь рядом  -
стоит  только  нажать  клавишу  F1,  и  вы  получите  контекстно-
зависимую вспомогательную информацию независимо  от  того, где вы
находитесь.

            Таблица 2-1     Сводная таблица клавиш редактора
-----------------------------------------------------------------
Клавиши                             Функция
-----------------------------------------------------------------
Esc                                 выводит из редактора
Клавиши стрелок,PgUp,PgDn,Home,     двигают курсор
End
Del                                 стирает знаки в текущей пози-
                                     ции курсора
Ins/Ctrl-V                          включает/выключает режим
                                     вставки/замены
Ctrl-KB                             отмечает начало блока
Ctrl-KK                             отмечает конец блока
Ctrl-KH                             стирает маркировку блока
Ctrl-KC                             копирует отмеченный блок в
                                     положение, указанное курсором
Ctrl-KY                             стирает отмеченный блок
Ctrl-KV                             перемещает  отмеченный блок в
                                     положение, указанное  текущей
                                    позицией курсора
F1                                  вспомогательная информация
                                     (подсказка)
F2                                  сохранение файла
F3                                  новый файл
F5                                  увеличение  масштаба  изобра-
                                     жения
F6                                  переключение окон
F7                                  отметить начало блока
F8                                  отметить конец блока
-----------------------------------------------------------------

Основные операции
- - - - - - - - -
Выберите Edit в основном меню нажатием клавиши E из  любого места
в зоне основного меню либо нажмите клавишу Enter,  если указатель
установлен на команде Edit.  Сначала обратите внимание на  строку
состояния, чтобы определить, находитесь вы в режиме вставки или в
режиме замены.  Режим вставки означает, что все символы, набирае-
мые на клавиатуре, вводятся в текущей позиции курсора; ранее наб-
ранный текст при вводе пермещается вправо от  курсора.  В  режиме
замены каждый вводимый знак заменяет то,  что в данный момент
находится над курсором.  Вы включаете и выключаете эти  режимы  с
помощью клавиши Ins или клавиши Ctrl-V. Выберите наиболее удобную
для вас.
   Теперь введите ваше имя и адрес,  как вы это делаете на почто-
вом конверте; например:

SAM SPADE
1264 Clinton St.
New York, NY 12345

и нажмите клавишу Esc,  чтобы закончить редактирование. Затем за-
пишите содержимое рабочего файла,  выбрав File (нажмите F, где бы
в основном меню вы ни находились или нажмите Enter, если вы нахо-
дитесь в позиции File) и после этого дайте команду Save.  Так как
вы не дали имя файлу,  по  умолчанию  файлу  было  присвоено  имя
NONAME.BAS.
    Вы можете теперь  переименовать  файл путем  сохранения того,
что находится в редакторе, под именем файла  ADDRESS. (Если вы не
указываете расширение файла,  ТУРБО БЕЙСИК присвоит вашему  файлу
для расширения .BAS).
    Теперь воспользуйтесь операцией New для стирания того, что вы
ввели в редактор.  Сначала нажмите клавишу File и N для New.  Те-
перь нажмите клавишу Е и список из пяти ваших самых любимых блюд,
каждое из блюд на отдельной строке.

chiken curry
sushi
blakened fish
chimichangas
lumpia

    Теперь закончите редактирование (нажав опять клавишу  Esc)  и
выберите File в основном меню,  затем Load.  Отвечая на вопрос об
имени файла, введите ADDRESS и введите Enter. Машина запрашивает,
хотите ли вы сохранить текст в текущем рабочем файле.  Вам это не
нужно, значит,  нажмите клавишу N(No) и обратите внимание на  то,
что произошло  в окне редактора - ваши любимые блюда заменил файл
ADDRESS.

Операции с блоками
- - - - - - - - - -
Находясь в окне Edit,  вы можете также отметить  блок  текста  на
стирание, перенесение  или копирование.  Отметив блок,  вы можете
перенести его в другую часть текста, скопировать в другое место в
тексте, стереть его.
    Маркировать блок в тексте несложно.  Для этого сначала  вновь
выберите коменду  Edit.  Ваше  имя  и  адрес еще находятся в окне
Edit, воспользуйтесь клавишами управления курсором,  чтобы  пере-
вести курсор  в  крайнее  левое положение в верхней части экрана.
Отметьте начало блока нажатием клавиши Ctrl-KB. Теперь перемести-
те курсор в положение последнего символа в последней строке ваше-
го адреса и отметьте конец блока нажатием клавиши Ctrl-KK.
    Теперь сделайте  несколько  копий  этого  блока:  передвиньте
курсор в  конец вашего адреса и сделать копию блока нажатием кла-
виши Ctrl-KC.  Передвиньте курсор в конец вновь созданного текста
и делайте еще одну копию блока.  Повторяйте этот процесс до полу-
чения десяти копий вашего адреса в окне Edit. Используйте клавиши
управления курсором PgUp и PgDn для перемещения текста внутри ок-
на Edit.
    Теперь давайте отметим еще один блок. Используя строку состо-
яния в верхней части окна Edit для определения того,  в строке  с
каким номером вы находитесь, вставьте в файл новую строку 4 из 20
букв X. Затем замените строку 11 на новую строку из 20 букв Y.
    Ваш новый блoк будет:  строки 5 - 10.  Отметьте его клавишами
Ctrl-KB и Ctrl-KK,как и раньше. Для стирания блока нажмите клави-
ши Ctrl-KY  и  теперь  у  вас  строка из Y-ов должна следовать за
строкой из X-ов.
    Затем отметьте новый блок,  состоящий из этих двух рядов X-ов
и Y-ов. Переместите курсор в конец текста, затем переместите сюда
новый блок  нажатием  клавиши  Ctrl-KV  ( посредством PgUp и PgDn
проверьте, чтобы он переместился, а не скопировался.
    Операции с  блоками  можно  производить  путем  использования
функциональных клавиш. Их использование выводится в нижней строке
экрана.  Обратите внимание, что клавиши F7 и F8 отмечают соответ-
ственно  начало  и конец блока.

Поиск и замена
- - - - - - - -
Команда поиск/замена приходит на помощь,  если вы хотите изменить
что-нибудь в  вашей  программе  после  ее ввода.  Например, чтобы
продемонстрировать вам,  как  использовать  эту команду,  давайте
удалим всю текущую информацию из редактора  (используя Del,  опе-
рацию New или отметив блок) и введем хорошо известную фразу

To be or not to be
That is the question

    Теперь заменим каждое появление слов To be   на  TB.  Сначала
нажмите Ctrl-QA,  затем  введите To be на запрос о строке поиска.
Нажмите Enter и затем, после запроса о строке замены, введите TB.
Далее вы можете выбрать различные варианты для выполнения поиска.
Выберите вариант G для  глобального  поиска,  выберите  N,  чтобы
строка заменялась повсеместно без дополнительного подтверждения в
каждом конкретном случае,  и выберите U,  чтобы строчные буквы не
отличались от прописных. Нажмите Enter после того, как вы выбрали
все нужные варианты.  Происходит поиск и замена ,  и текст транс-
формируется в

TB or not TB
That is the question

    Если вам нужно просто найти строку в тексте,  вы  используете
команду поиска  (в  отличие от поиска и замены).  Нажмите клавиши
Ctrl-QF и вы получите запрос на задание искомой  строки.  Исполь-
зуйте функцию поиска для нахождения первого появления "TB" в пре-
дыдущем тексте. Затем используйте Ctrl-L для нахождения последую-
щих появлений.


Первая программа
-----------------------------------------------------------------
А теперь давайте с помощью редактора создадим короткую программу.
    ----------------------------------------------------------¬
    ¦ File  Edit  Run  Compile  Options  Setup  Window  Debug ¦
    +--------------------------------------------------T------+
    +------------------------ Edit -------------------¬¦Trace ¦
    ¦  C:NONAME.BAS  Line 1  Col 1  Insert Indent Tab ¦¦      ¦
    ¦                                                 ¦¦      ¦
    ¦                                                 ¦¦      ¦
    +--------------------------------------------------¦      ¦
    +----------- Message ---------¬-------- Run ------¬¦      ¦
    ¦                             ¦¦                  ¦¦      ¦
    ¦                             ¦¦                  ¦¦      ¦
    ¦                             ¦¦                  ¦¦      ¦
    +-----------------------------++------------------++------+
    ¦F1-Help  F5-Zoom  F7-Gate  SCBOOL-Size/weve    Alt-X-Edit¦
    L----------------------------------------------------------
                Рисунок  2-2    Пустой  экран редактора

Обратитесь к  основному  меню  и выберите File,  затем Load.  При
подсказке имени файла введите MYFIRST и нажмите Enter. Затем наж-
мите Е для ввода в редактор.  Вы узнаете, что окно Edit стало ак-
тивным, потому что его граница стала двойной.
   Теперь введите программу MYFIRST,  которая следует за этим аб-
зацем. Печатайте  как  можно аккуратнее,  потому что ТУРБО БЕЙСИК
скрупулезно выполняет вашу программу.  Кто-то из вас может  заме-
тить ошибку  в  этой программе - пусть она останется в программе;
мы все объясним позднее.

WHILE -1
FOR n = 1 TO 8
    READ a$
    PRINT a$ " ";
NEXT n
PRINT
RESTORE
WEND
DATA Presenting, Turbo Basic --, The, Fastest, BASIC, on, Earth

   Настоящая программа отличается от  знакомых  вам  программ  на
языке  БЕЙСИК  отсутствием номеров строк. При желании вы, однако,
можете  пронумеровать каждую строку. Или каждую третью строку. По
порядку  или  в  обратном порядке.  Вы можете также пронумеровать
только те  строки, которые будут использоваться в операторах GOTO
или GOSUB.  Более того, вы можете использовать именные метки.
    Введя MYFIRST, отдохните и немного насладитесь программой.
    Вы   только   что   создали   исходную   программу   на языке
ТУРБО БЕЙСИК.   В  данный   момент  в   памяти вашего  компьютера
находится более ста кодов ASCII, которые составляют  MYFIRST.BAS.
Пока с текстом работал только редактор.
    Однако, эта исходная программа является всего лишь этапом  на
пути  к  цели.  До  того, как  микропроцессорный  кристалл сможет
выполнить прграмму  MYFIRST, исходный текст должен быть переведен
(скомпилирован) в доступную для его понимания форму, а именно, на
машинный язык 8086.
    Редактор закончил свою часть работы, нажмите клавишу Esc  для
выхода из  редактора и  возвращения в  основное меню.
    Вы временно вышли  из редактора и  не можете с  ним работать,
однако,  текст  вашей  программы  находится  в  памяти, готовый к
добавлениям  или  изменениям  в  любой  момент  (это можно быстро
продемонстрировать нажатием клавиши Е; нажав Esc, вы вернетесь  в
основное меню).

Варианты
- - - - -
    Вы готовы оттранслировать вашу исходную  программу в выполня-
емую  форму.  Но  перед этим  вы должны  установить  режим работы
компилятора.  Нажмите  клавишу  O  для  выбора меню  Options (см.
рис.2-3).
   ----------------------------------------------------------¬
   ¦ File  Edit  Run  Compile  Options  Setup  Window  Debug ¦
   +--------------------------------------------------T------+
   +---------------------Еdit---------------T--------¬¦Trace ¦
   ¦  C:MYFIRST.BAS Line 1  C¦Compile to    ¦Memory  ¦¦      ¦
   ¦                         ¦8087 required ¦ ON     ¦¦      ¦
   ¦                         ¦Keyboard break¦OFF     ¦¦      ¦
   ¦                         ¦Bounds        ¦OFF     ¦¦      ¦
   ¦                         ¦Overflow      ¦OFF     ¦¦      ¦
   ¦                         ¦Stack test    ¦OFF     ¦¦      ¦
   ¦                         +--------------+--------+¦      ¦
   ¦                         ¦Parameter line         ¦¦      ¦
   ¦                         ¦Metastatments          ¦¦      ¦
   +-------------------------+------------------------¦      ¦
   +----------- Message ---------¬-------- Run ------¬¦      ¦
   ¦                             ¦¦                  ¦¦      ¦
   ¦                             ¦¦                  ¦¦      ¦
   ¦                             ¦¦                  ¦¦      ¦
   +-----------------------------++------------------++------+
   ¦F1-Help  F5-Zoom  F7-Gate  SCBOOL-Size/weve    Alt-X-Exit¦
   L----------------------------------------------------------
               Рисунок  2-3.  Меню Options

    Как это видно из названия, выбор в меню  Options обеспечивает
управление некоторыми  аспектами  предстоящей  компиляции.
    Сейчас  вас  интересует только команда "Прерывание по клавиа-
туре",  которая  в данный  момент  отключена.
    С включением ее  вы  сможете  прервать  большинство  программ
(остановив ввод/вывод), генерируемых компилятором. При выключении
команды  вы  не  сможете  прервать  (через  Ctrl/Break)  ни одной
программы, генерируемой компилятором. Таким образом,  чтобы  про-
грамма MYFIRST  не работала бесконечно долго,  нажмите  клавишу К
(переключатель с двумя состояниями)  для  включения команды "Пре-
рывания по клавиатуре", затем нажмите клавишу Esc для возврата на
основное меню.

Компиляция
- - - - - -
    Для компиляции  программы MYFIRST  нажмите клавишу  С  (как и
редактор, компилятор обрабатывает текущий  рабочий файл).  Компи-
лятор  изучает  текст  вашей  программы  и выстраивает эквивалент
на машинном  языке. Эта  фаза  может занять  целую  минуту работы
компилятора  даже для такой простой программы как MYFIRST.
    Если компилятор  находит в  вашей исходной  программе что-то,
не приемлемое  для грамматики ТУРБО БЕЙСИКА,  это будет  отмечено
в строке состояния редактора и вы автоматически  будете отброшены
в  редактор  в то  место,  где содержится ошибка.  Если это прои-
зойдет, нажмите  клавишу Esc  и  отредактируйте  вашу  программу.
Затем  выйдите из  редактора  и  вновь оттранслируйте её: нажмите
клавишу Esc, затем клавишу С.

После компиляции
- - - - - - - - -
  ----------------------------------------------------------¬
  ¦ File  Edit  Run  Compile  Options  Setup  Window  Debug ¦
  +--------------------------------------------------T------+
  +---------------------Еdit------------------------¬¦Trace ¦
  ¦  C:MYFIRST.BAS Line 1  Col 17 Insert Indent Tab ¦¦      ¦
  ¦  WHILE -1                                       ¦¦      ¦
  ¦      FOR N=1 TO 8                               ¦¦      ¦
  ¦          READ A$                                ¦¦      ¦
  ¦          PRINT A$ " ";                          ¦¦      ¦
  ¦      NEXT N                                     ¦¦      ¦
  ¦      PRINT                                      ¦¦      ¦
  ¦      RESTORE                                    ¦¦      ¦
  ¦  WEND                                           ¦¦      ¦
  +--------------------------------------------------¦      ¦
  +----------- Message ---------¬-------- Run ------¬¦      ¦
  ¦Compiling: MYFIRST           ¦¦                  ¦¦      ¦
  ¦Line:     9   stat    11     ¦¦                  ¦¦      ¦
  ¦Code:     3394               ¦¦                  ¦¦      ¦
  +-----------------------------++------------------++------+
  ¦F1-Help  F5-Zoom  F7-Gate  SCBOOL-Size/weve    Alt-X-Edit¦
  L----------------------------------------------------------
               Рисунок  2-4. Статистика компиляции.

    После  успешной  компиляции  в  памяти  находятся  две версии
программы   MYFIRST:  (1) исходная  программа, созданная  вами  с
помощью  редактора, и (2) выполняемая программа на машинном языке
8086, созданная компилятором.
    В окне Message (cообщение), ТУРБО БЕЙСИК сообщает о  скорости
работы  компилятора и дает некоторые статистические данные о ком-
пиляции (см. рис.2-4).
    Статистика указывает размер программного  сегмента кода, раз-
мер стека и размер  области  данных скомпилированной программы  в
байтах в шестнадцатеричном виде. Так же отмечается число откомпи-
лированных  операторов  и строк,  плюс объём свободного простран-
ства, оставшегося в памяти для компиляции.

Прогон программы
- - - - - - - - -
    После того, как Вы закончили трансляцию исходной программы на
машинный язык, Вы можете прогнать её  нажав клавишу  R. Проверьте
вывод  Вашей программы  в окне  Run (См. рисунок 2-5).
  ----------------------------------------------------------¬
  ¦ File  Edit  Run  Compile  Options  Setup  Window  Debug ¦
  +--------------------------------------------------T------+
  +---------------------Еdit------------------------¬¦Trace ¦
  ¦  C:MYFIRST.BAS Line 1  Col 17 Insert Indent Tab ¦¦      ¦
  ¦  WHILE -1                                       ¦¦      ¦
  ¦      FOR N=1 TO 8                               ¦¦      ¦
  ¦          READ A$                                ¦¦      ¦
  ¦          PRINT A$ " ";                          ¦¦      ¦
  ¦      NEXT N                                     ¦¦      ¦
  ¦      PRINT                                      ¦¦      ¦
  ¦      RESTORE                                    ¦¦      ¦
  ¦  WEND                                           ¦¦      ¦
  +--------------------------------------------------¦      ¦
  +----------- Message ---------¬-------- Run ------¬¦      ¦
  ¦Searching: MYFIRST           ¦¦Fastest BASIC     ¦¦      ¦
  ¦Line:     1   stat    1      ¦¦on Earth          ¦¦      ¦
  ¦                             ¦¦                  ¦¦      ¦
  +-----------------------------++------------------++------+
  ¦F1-Help  F5-Zoom  F7-Gate  SCBOOL-Size/weve    Alt-X-Edit¦
  L----------------------------------------------------------
               Рисунок 2-5. Прогон программы MYFIRST.

    М-м-м-м-да...  Программа  MYFIRST,  выполнялась  долю секунды
и взорвалась (аварийный останов).
    Это произошло потому,  что мы преднамеренно включили ошибку в
программу MYFIRST для наглядности примера. Анализ,  произведенный
компилятором  не обнаруживает все возможные ошибки, которые могут
проявиться при прогоне программы. Компилятор проверяет в основном
ошибки в синтаксисе, например,  неправильное  написание  команды,
лишние или недостающие запятые,  скобки. Существует  целый  класс
неприятностей, которые могут случиться во время прогона,  начиная
с выхода из строя диска и кончая попытками  произвести  абсурдные
математические  операции,  такие как вычисление квадратного корня
из  отрицательного числа.
    Помните, что часть  Ваших ошибок будет  обнаружена  во  время
компиляции; другие - только во время прогона программы.

Об ошибках.
- - - - - - 
    Кроме того, что ТУРБО БЕЙСИК сообщик Вам о том, что произошла
ошибка OUT OF DATA, он также укажет Вам где она произошла, помес-
тив  курсор  в позицию  ошибки в редакторе (см. рисунок 2-5). Так
как программа MYFIRST еще находится в памяти это произойдет очень
быстро.
  ----------------------------------------------------------¬
  ¦ File  Edit  Run  Compile  Options  Setup  Window  Debug ¦
  +--------------------------------------------------T------+
  +---------------------Еdit------------------------¬¦Trace ¦
  ¦  C:MYFIRST.BAS Line 1  Col 17 Insert Indent Tab ¦¦      ¦
  ¦  WHILE -1                                       ¦¦      ¦
  ¦      FOR N=1 TO 8                               ¦¦      ¦
  ¦          READ A$                                ¦¦      ¦
  ¦          PRINT A$ " ";                          ¦¦      ¦
  ¦      NEXT N                                     ¦¦      ¦
  ¦      PRINT                                      ¦¦      ¦
  ¦      RESTORE                                    ¦¦      ¦
  ¦  WEND                                           ¦¦      ¦
  +--------------------------------------------------¦      ¦
  +----------- Message ---------¬-------- Run ------¬¦      ¦
  ¦Searching: MYFIRST           ¦¦Turbo BASIC -     ¦¦      ¦
  ¦Line:     9   stat    11     ¦¦the               ¦¦      ¦
  ¦                             ¦¦                  ¦¦      ¦
  +-----------------------------++------------------++------+
  ¦F1-Help  F5-Zoom  F7-Gate  SCBOOL-Size/weve    Alt-X-Edit¦
  L----------------------------------------------------------
          Рисунок 2-5. Прогон программы MYFIRST с ошибкой.

   В нашей строке ошибка заключается в том, что в ней должно быть
не восемь,  а семь констант.  Поменяйте цикл FOR/NEXT,  остановив
его на 7, и ваша программа будет работать.
   Нажмите клавишу Esc , затем R, чтобы сначала скомпилировать, а
потом прогнать исправленную версию.  ТУРБО БЕЙСИК поймет,  что вы
изменили исходную программу с момента последней компиляции и  ав-
томатически скомпилирует  программу  MYFIRST  перед  ее прогоном.
   Теперь программа  MYFIRST прогоняется во всей своей красе. Еще
раз проверьте вывод программы в окне Run  и  нажмите  Alt-F5  для
увеличения масштаба  изображения  и возврата к прежнему состоянию
(см. Рис. 2-6).
  ----------------------------------------------------------¬
  ¦ File  Edit  Run  Compile  Options  Setup  Window  Debug ¦
  +--------------------------------------------------T------+
  +---------------------Еdit------------------------¬¦Trace ¦
  ¦  C:MYFIRST.BAS Line 1  Col 17 Insert Indent Tab ¦¦      ¦
  ¦  WHILE -1                                       ¦¦      ¦
  ¦      FOR N=1 TO 8                               ¦¦      ¦
  ¦          READ A$                                ¦¦      ¦
  ¦          PRINT A$ " ";                          ¦¦      ¦
  ¦      NEXT N                                     ¦¦      ¦
  ¦      PRINT                                      ¦¦      ¦
  ¦      RESTORE                                    ¦¦      ¦
  ¦  WEND                                           ¦¦      ¦
  +--------------------------------------------------¦      ¦
  +----------- Message ---------¬-------- Run ------¬¦      ¦
  ¦Searching: MYFIRST           ¦¦Turbo BASIC -     ¦¦      ¦
  ¦Line:     9   stat    11     ¦¦the               ¦¦      ¦
  ¦                             ¦¦                  ¦¦      ¦
  +-----------------------------++------------------++------+
  ¦  Alt-F5-Zoom  Alt-F6-Next             Ctrl-Break-Exit   ¦
  L----------------------------------------------------------
          Рисунок 2-6. Успешный прогон программы MYFIRST

   Когда вы будете удовлетворены программой, прервите ее нажатием
клавиши Ctrl-Break ,  затем нажмите Esc и вернитесь  на  основное
меню.

Запись на диск
- - - - - - - -
До сих пор все, что вы делали, находилось только в памяти машины.
Если бы на этом этапе работы отключилось  питание  или  программа
зависла, исходная и выполняемая программа MYFIRST были бы потеря-
ны. Поэтому сохраните исходную программу, записав ее на диске при
помощи команды  Save  меню File. Вы можете воспользоваться  также
режимом Auto Save редактора в Micellaneous в меню Setup для авто-
матического сохранеия текущего файла перед прогоном программ.
   Воспользуйтесь режимом  Directory в меню File для потверждения
существования орала с именем MYFIRST.ВАS в вашей квази-неизменной
системе файлов. Нажав клавишу D, вы получите быстрый ответ:

     Enter mask (Введите маску)

   ТУРБО БЕЙСИК запрашивает такое имя файла, которое можно задать
в команде DOS DIR,  например,  *.BAS или MYFIRST.BAS. При нажатии
Enter без указания имени файла появляются все файлы,  как если бы
вы напечатали *.*.

Запись реализуемой программы
- - - - - - - - - - - - - - -
ТУРБО БЕЙСИК  позволит  вам  генерировать изолированную программу
(файл с  расширением  EXE),  которая может выполняться непосредс-
твенно по подсказке DOS.  Вы  можете  сделать  это  с  программой
MYFIRST, переключив Compile в меню Options,  как показанои на ри-
сунке 2-7.
   ----------------------------------------------------------¬
   ¦ File  Edit  Run  Compile  Options  Setup  Window  Debug ¦
   +--------------------------------------------------T------+
   +---------------------Еdit---------------T--------¬¦Trace ¦
   ¦  C:MYFIRST.BAS Line 1  C¦Compile to    ¦EXE     ¦¦      ¦
   ¦                         ¦8087 required ¦ ON     ¦¦      ¦
   ¦                         ¦Keyboard break¦OFF     ¦¦      ¦
   ¦                         ¦Bounds        ¦OFF     ¦¦      ¦
   ¦                         ¦Overflow      ¦OFF     ¦¦      ¦
   ¦                         ¦Stack test    ¦OFF     ¦¦      ¦
   ¦                         +--------------+--------+¦      ¦
   ¦                         ¦Parameter line         ¦¦      ¦
   ¦                         ¦Metastatments          ¦¦      ¦
   +-------------------------+------------------------¦      ¦
   +----------- Message ---------¬-------- Run ------¬¦      ¦
   ¦                             ¦¦                  ¦¦      ¦
   ¦                             ¦¦                  ¦¦      ¦
   ¦                             ¦¦                  ¦¦      ¦
   +-----------------------------++------------------++------+
   ¦F1-Help  F5-Zoom  F7-Gate  SCBOOL-Size/weve    Alt-X-Exit¦
   L----------------------------------------------------------
                Рисунок  2-7.  Меню Options

   Сначала нажмите клавишу O, чтобы попасть в меню Options, затем
нажмите С для Compile. Выберете установку файла Executable, нажа-
тием клавиши Е. На диске еще ничего не изменилось - пока вы толь-
ко изменили действия компилятора в случае  последующего  его  ис-
пользования. По  умолчанию,  что  мы  до  сих пор и использовали,
результат компиляции хранится в памяти.
   Нажмите клавишу Esc для выхода из меню Options, затем С, чтобы
повторить компиляцию программы MYFIRST.  на этот  раз  компиляция
идет медленнее,  т. к. ТУРБО БЕЙСИКу приходится физически записы-
вать информацию на накопитель на диске.
   Полученный в результате файл можно увидеть, выйдя полностью из
ТУРБО БЕЙСИКа,  сначала обратившись к меню Files,  а затем  нажав
клавишу Q (Quit). Оказавшись опять на уровне DOS, введите

   C>DIR MYFIRST

   Вы увидите  соответственно  исходную  и  выполняемую программы
MYFIRST.BAS и MYFIRST.EXE.

Выполнение программы MYFIRST из DOS
- - - - - - - - - - - - - - - - - -
Если вы вводите имя файла по подсказке DOS

C>myfirst

начинается прогон MYFIRST,  выполняется знакомая уже вам програм-
ма. Если  вы  прервете  программу  на этот раз при помощи клавиши
Ctrl-Break, вы вернетесь в DOS.

Трассировка программы
- - - - - - - - - - -
Теперь вернитесь в среду ТУРБО БЕЙСИКа и в ваш файл MYFIRST,  на-
печатав TB MYFIRST на подсказку DOS. Чтобы дать вам почувствовать
вкус всего  основного меню,  давайте произведем трассировку прог-
раммы MYFIRST.
   Окно Trace может вместить любые номера строк, метки, процедуры
или названия функций вашей  программы,  поэтому  добавьте  номера
строк в программе MYFIRST для удобства трассировки.
   Для трассировки  или  пошагового выполнения вашей программы во
время прогона нажмите D для перехода в меню Debug (отладка).  Ис-
пользуйте клавиши  стрелок  или  нажмите клавишу T для перехода к
режиму Trace,  затем подключите его нажатием Enter.  Нажмите  Esc
для выхода  из меню Debug,  затем нажмите клавишу R для Run (про-
гон).(Вы уже модифицировали свою программу, поэтому она автомати-
чески компилируется вновь перед прогоном).  Трассировку программы
проверяйте в окне Trace.
   Обратите внимание, что вы можете производить трассировку прог-
раммы, заложив директиву трассировки компилятора в вашу программу
при ее написании.

Окна системы
-----------------------------------------------------------------
ТУРБО БЕЙСИК обеспечивает четыре окна для программной среды.

-Окно Edit дает возможность создать/редактировать любую программу
-Окно Trace (в положении вкл.) содержит все номера строк програм-
 мы, метки,процедуры и названия функций,  когда ваша программа их
 выполняет
-Окно Message выводит статистику компиляции и другие сообщения
-В окне Run воспроизводится вывод вашей программы.

   Эти окна могут быть  использованы  в  любой  конфигурации,  но
только окна  Edit  и  Run "распахиваются" (для этого можно нажать
клавишу F5).
   В любое время в системе меню вы можете изменить задачу и поме-
нять конфигурацию размера и положения окна.  Вы можете  постоянно
изменять окно таким образом,  что при каждой самозагрузке системы
будет использоваться рисунок окна, которому вы отдаете предпочте-
ние.
   Чтобы открыть окно, выберите Open из меню Window (окно), а за-
тем выберите окно,  которое будет у вас активным. Нажатием Scroll
Lock (наряду  с  Shift  и клавишами стрелки) вы можете перемещать
выбранное окно в любое положение на экране.  Режим Tile автомати-
чески сделает  все  выбранные окна видимыми и одинакового размера
(другими словами,  они занимают  равные  порции  экрана).  Версия
Stack позволит вам накопить, поместить в стек все открытые окна в
максимально возможном объеме.  Активное окно находится в  верхней
части; остальные открытые окна видны лищь частично. Чтобы сделать
активным другое окно,  воспользуйтесь вариантом Next.  Режим Zoom
дает вам  возможность  увеличить  изображение  окон Edit и Run на
полный экран.  Режим Close делает выбранное окно  невидимым.