ZX-Ревю 1992 №1-2 1991 г.

Beta Basic - Глава 1. Введение.


BETA BASIC

БЕТА-БЕЙСИК 3.0 - дальнейшее развитие серии, начатое программами БЕТА -БЕЙСИК 1.0 и 1.8. Как и последние, он полностью совместим со стандартным, зашитым в ПЗУ вашего компьютера БЕЙСИКОМ, но обладает значительно большими возможностями, определенной гибкостью и имеет значительное число новых операторов и функций.

БЕТА-БЕЙСИК откроет перед вами гигантские перспективы. Во-первых, с его помощью Вы можете писать большие программы. Если, Вы не пробовали на обычном БЕЙСИКе писать программы более 10 - 15 K, то знайте, что "проклятьем" обычного БЕЙСИКа является отсутствие структурного программирования, наступает момент, когда программа не укладывается, как цельное произведение в вашем мозгу и тогда любые изменения, производимые в одном месте программы, влекут за собой помехи, появляющиеся в другом месте, как бы ни был прост БЕЙСИК в освоении, но в отладке большие программы, написанные на БЕЙСИКе, могут выходить за все разумные рамки по трудоемкости.

Второе преимущество БЕТА-БЕЙСИКА - отличные средства редактирования. Этот момент, надо сказать, ахиллесова пята стандартного БЕЙСИКа "Спектрума". Конечно, строчный редактор со сложной системой вызова строки на обработку - это не дело. Только на этом программист теряет половину своего драгоценного времени. В то же время, полноэкранные редакторы, какие мы виден в БЕЙСИКе на хорошо продвинутых машинах типа MSX или, скажем, IBM (GW_BASIC) - это тоже не подарок. Перемешанные на одном экране редактируемые и нередактируемые строки приводят к многочисленным ошибкам, да и занимают такие редакторы много места.

Тот подход, который развит в БЕТА-БЕЙСИК 3.0 наверное наиболее практичный и эргономичный.

Третье преимущество БЕТА-БЕЙСИКА - в его экономном расходовании памяти. Да, конечно, сам он занимает до 20К. То есть почти половину того, что имеет Ваш компьютер. Но, если Вы, программируя, будете хорошо использовать его возможности, то затратите 4-5 K на основные процедуры, а далее, используя их, сможете в каждый килобайт укладывать то, что на обычном БЕЙСИКе стоило бы вам пяти-семи K. Таким образом, в доступных вам 20 килобайтах, Вы сможете разместить примерно 10K данных плюс 4-5K процедур, плюс программу, эквивалентную обычным 40К стандартного БЕЙСИКа. Конечно, это цифры условные, но условность их в том, что это далеко не предел. Поработав несколько недель, Вы сможете еще сильнее повысить емкость программ, это просто данные нашего собственного практического опыта в "Инфоркоме".

Данный документ является нашим авторизованным переводом фирменной инструкции. Авторизованность не означает, что мы что-то сократили. Мы чуть более подробно прокомментировали наиболее узкие места и заменили (там, где это можно) те примеры, которые были привязаны к микродрайву на более близкие для нашего читателя.

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

ГЛАВА 1. ВВЕДЕНИЕ

Загрузка языка с ленты выполняется обычным образом: LOAD "" или LOAD "Beta Basic"

По этой команде загружаются три первых БЕЙСИК-строки - строка 0, строка 1 и строка 2. Со строки 2 осуществляется автостарт программы, в результате которого загружается остальная (основная) часть БЕТА-БЕЙСИКа, представляющая из себя блок машинных кодов длиной 18K. Системная переменная RAMTOP понижается до значения

47070, предохраняя от повреждения машинный код, размещаемый в верхней части памяти.

После загрузки программы на экране должно появиться исходное системное сообщение. При этом строки 1 и 2 программы удаляются и остается только нулевая строка.

Внимание! Если Вы написали программу под управлением БЕТА-БЕЙСИКа и желаете передать ее своим знакомым для эксплуатации, то пожалуйста перед выгрузкой Вашей программы и машиннокодового блока внесите следующие изменения в машиннокодовую часть БЕТА-БЕЙСИКа:

POKE 64218,0: POKE 64219,0: POKE 64220,0: POKE 64861,201

Этим Вы обеспечите то, что Ваша программа будет запускаться, но не сможет быть изменена.

Особенности работы с языком БЕТА-БЕЙСИК 3.0

В строке 0 содержатся новые определения функций БЕТА-БЕЙСИКа 3.0. Эта строка всегда присутствует в программе, хотя и не всегда изображается на экране. Характерным свидетельством того, что БЕТА-БЕЙСИК загружен и готов к работе является изображение указателя текущей строки в инвертированном виде. Несколько увеличена и продолжительность звукового сигнала, подаваемого при нажатии клавиш. Если он вам не нужен, дайте команду POKE 23609,0 для отключения. Теперь можете загружать любую БЕЙСИК-программу (доступного размера) и она будет работать нормально, за исключением двух особенностей:

1. Загрузку программы надо выполнять не командой LOAD, а командой MERGE, иначе погибнет нулевая строка. Конечно, если программа была написана под стандартным БЕЙСИКОМ, ей это все равно, но если под БЕТА-БЕЙСИКОМ, строку 0 уничтожать не надо.

2. Если вам надо, чтобы вместо ключевых слов БЕТА-БЕЙСИКа на экране изображались символы блочной графики, надо дать команду KEYWORDS 0 (см. соответствующую команду).

Еще одной особенностью является то, что несколько изменилось изображение программных строк, получаемое на экране по команде LIST, если длина строки больше ширины экрана. В этом случае в первых четырех позициях печатаются только номера строк.

Несколько уменьшено разрушительное действие команды NEW. Она удаляет из памяти имеющуюся там БЕЙСИК-программу, но оставляет строку 0. Если же Вы хотите удалить из памяти и сам БЕТА-БЕЙСИК, то остается только сделать RESET, если у Вас есть такая кнопка, или выключить питание или переинициализировать машину командой RANDOMIZE USR 0.

Несколько увеличена скорость выполнения программ по сравнению со стандартным БЕЙСИКОМ, особенно длинных.

Циклы FOR-NEXT работают с одной и той же скоростью, независимо от местоположения в программе, что является отличием от стандартного БЕЙСИКа. Наивысшая скорость достигается, когда начало цикла, его длина и конец выражены целыми числами (в том числе и отрицательными) размером до 65535. Такие циклы работают в 5 раз быстрее, по сравнению с циклами, размещенными до 100-й строки в стандартном БЕЙСИКе и в 17 раз быстрее, по сравнению с размещенными до 500-ой строки в стандартном БЕЙСИКе.

Быстрее работают и GO TO и GO SUB, особенно когда строка назначения отстоит достаточно далеко. Быстрее работает и RETURN. Возврат к последней строке выполняется столь же быстро, как и к первой, в отличие от стандартного БЕЙСИКа.

В какой-то степени скорость удалось повысить за счет того, что интерпретатор запоминает адреса, а не номера строк. С другой стороны, это накладывает определенные ограничения на редактирование. Так, если Вы, например, остановите программу во время исполнения цикла, введете внутрь этого цикла дополнительную строку, а потом запустите программу дальше - CONTINUE, то CONTINUE может не сработать, поскольку адрес возврата изменится, хотя номер строки возврата не изменялся.

Работа с более ранними версиями БЕТА - БЕЙСИКа

Если Вы загрузите программу, написанную в более ранней версии БЕТА-БЕЙСИК 1.0 или БЕТА-БЕЙСИК 1.8, то вместе с ней загрузится и нулевая строка, содержащая определения функций языка. Если теперь Вы хотите работать с этой программой под управлением версии 3.0, то Вам надо заменить старую версию нулевой строки на новую.

1. Загрузить БЕТА-БЕЙСИК 3.0.

2. Загрузить программу, выполненную в версии 1.0 или 1.8.

3. Выполнить "MERGE" для БЕТА-БЕЙСИКа 3.0, чтобы ввести копию строки 0.

4. Удалить строки 1 и 2.

5. Выгрузить полученную программу.

Есть два момента несовместимости версии 3.0 с ранними версиями. Во-первых, переменная под именем "line", создававшаяся операторами ON ERROR и TRACE, теперь называется "lino", чтобы исключить путаницу с ключевым словом стандартного БЕЙСИКА LINE.

Во-вторых, в новой версии имена процедур не могут иметь внутренних пробелов.

Преобразовать Вашу программу из версии, написанной на более ранней версии языка, Вы можете воспользовавшись командой ALTER.

Для тех, кто знает версии 1.0 и 1.8, желательно перечитать работу с командами ON, RETURN, ROLL, SCROLL, CLOCK, ON ERROR и TRACE, поскольку они изменены. Несколько изменена и команда GET (число). Значительно расширены возможности процедур.

Загрузка и выгрузка программ, написанных в БЕТА-БЕЙСИКе 3.0.

После того, как Вы написали программу, в которую входят некоторые новые ключевые слова, Вы можете выгрузить ее на ленту обычным порядком. Если теперь вам когда-либо понадобится вновь загрузить ее, сначала загрузите БЕТА-БЕЙСИК 3.0, если он еще не загружен. Теперь загрузите (LOAD) свою программу. Поскольку строка 0 была выгружена вместе с программой, то теперь нет необходимости использовать MERGE.

С другой стороны, Вы можете воспользоваться строками 1 и 2 загрузчика для того, чтобы сохранить на ленте свою программу вместе с машинно-кодовой частью БЕТА -БЕЙСИКа. В этом случае Ваша программа и БЕТА-БЕЙСИК будут загружаться автоматически.

Если Вы загрузите программу, написанную на БЕТА-БЕЙСИКе, в компьютер в то время, как в нем не присутствует машинный код БЕТА-БЕЙСИКа, новые команды появятся в виде одиночных символов, а после команды RUN Вы получите сообщение об ошибке "Nonsense in Basic". В этом случае Вам следует использовать: MERGE "Beta Basic": GO TO 2, чтобы загрузить загрузчик БЕТА БЕЙСИКА, а из него по автостарту посредством GO TO 2 загрузится и машинно-кодовая часть.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Вокруг света - APPLE представила прозрачный проект ПК.
Двигатель торговли - Пpиобpету pазличную инфоpмацию по "железу" Spectruma (особенно Scorpiona): схемы, чеpтежи, ПО.
WANTED - Реклама.
Пикник - Впечатление от Omega Party.
Железо - Схема пассивной мыши , на базе манипулятора графической информации EC1842.

В этот день...   29 марта