ВВЕДЕНИЕ
ТУРБО БЕЙСИК - это автономная программная среда для персональных
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 делает выбранное окно невидимым.