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