ZX Format #05
11 декабря 1996
  Бейсик  

Программистам - Basic для чайников - часть 5.

Basic для чайников - 5.

music by DNK            
(C) Д.Рудовский
________________________________

  Этой  статьей я открываю новый
большой  раздел  в этом курсе. в
этом разделе речь пойдет о прог-
раммах  называемых  расширениями
языка  Basic.  Но  на  деле  это
практически самостоятельные язы-
ки программирования. Каждое рас-
ширение   (в  дальнейшем  язык.)
имеет  свои особенности, которые
специализируют  его в определен-
ной сфере применения. При описа-
нии  языка я буду указывать наи-
более  удобное приложение языка.
Внимание!!! Все языки не работа-
ют в 128 режиме, перед загрузкой
не  забудьте перейти в 48 режим.
Ввиду большого объема информации
сегодняшнюю статью я посвящю Be-
ta-Basic'у.
          BETA-BASIC.
Внимание!!! Во время своей рабо-
ты  ВВ использует альтернативный
режим прерываний, из-за чего не-
возможен  прямой выход в TR-DOS.
Перед  работой прочитайте раздел
РАБОТА С TR-DOS.
           Введение.
  Beta-Basic  (в  дальнейшем ВВ)
является  наверно  самым  мощным
среди  расширений. Он предлагает
широчайшие  возможности в редак-
тировании  и программировании на
бейсике. Он является практически
полным   аналогом   GW-BASIC  на
IBM-совместимых  машинах. Учиты-
вая, что программа написанная на
бейсике   не   должна   занимать
больше 20К (иначе либо переходи-
те  на  IBM,  или на ассемблер),
поэтому я буду описывать ВВ 3.0,
который сам занимает 20К.
  Итак,  сначала некоторые пояс-
нения по поводу набора программы
в  ВВ: В зависимости от установ-
ленного режима, который устанав-
ливается  командой KEYWORDS опе-
раторы вводятся либо как в обыч-
ном бейсике (токенами), где опе-
раторы  ВВ  вводятся  из  режима
курсора G, либо вводятся по сим-
волам, как в Basic128. Кроме то-
го  есть возможность варьировать
вывод  программы  на экран. Под-
робнее об этом в описании опера-
тора KEYWORDS.
  Изменена  процедура  оператора
FOR  -  NEXT, в результате чего,
она работает существенно быстрее
с  целыми  числами до 65535 и не
тормозит   при  больших  номерах
строк.  Дополнен  также оператор
PRINT, о чем вы можете прочитать
в разделе ВВОД-ВЫВОД.
         Начало работы.
  После того как вы загрузили ВВ
загрузчик  самоликвидируется, из
него   остается  только  нулевая
строка.  Пытаться  удалить ее не
стоит, в ней хранится информация
необходимая  для работы ВВ, поэ-
тому же, перенося свою программу
в  среду ВВ загружать ее надо не
по  LOAD,  а  по  MERGE. Так как
программа записанная из среды ВВ
уже имеет в себе нулевую строку,
то  нет  необходимости использо-
вать MERGE.
           Редактор.
  Теперь  пора подробно рассмот-
реть  изменения  и  дополнения к
встроенному    редактору    бей-
сик-программ.
#  Команда NEW стирает программу,
но оставляет нулевую строку, по-
этому,  если  вам  надо сбросить
ВВ,  либо  нажмите  RESET,  либо
дайте  команду  RANDOMIZE USR 0.
Изменилось    действие   команды
LIST,  появились  новые команды:
EDIT, RENUM и KEYWORDS.
  Ну, а теперь все по порядку:
  LIST  [n,TO  m] - Вывод текста
бейсик-программы  (далее  - лис-
тинг)  со  строки  n до строки m
включительно. Пример:
LIST  100 - листинг с 100 строки
до   конца;
LIST 100 TO ---""---""---""--- ;

LIST  TO  100 - листинг до 100'й
строки;

LIST  10  TO 100 - вывод строк с
10 по 100 включительно.

LIST FORMAT n - Установка форма-
та  вывода  листинга.  n - номер
режима.
0  - Стандартный вывод листинга.
1  -  Строки выводятся по одному
оператору  в  экранной  строке и
отступом  в  операторах  FOR, GO
SUB, DEF FN и DEF PROC на 1 сим-
вол.  При  этом  режиме во время
ввода  при  нажатии  ":" следует
автоматический  сдвиг  и  символ
":" не печатается.
2  -  Аналогичен  формату  1, но
отступ берется 2 символа.
3  - Стандартный вывод листинга,
но номера строк не выводятся.
4 - Аналогичен формату 1, но без
вывода номеров строк.
5 - Аналогичен формату 2,
----""----""----""----""----
LIST  DATA  |  Вывод  переменных
LIST VAL    |  программы   и  их
LIST VAL$   |  значений  в алфа-
витном  порядке. DATA - всех пе-
ременных;  VAL  - числовых пере-
менных,  массивов  и  переменных
цикла;  VAL$  -  вывод строковых
переменных и массивов. Для пере-
менных   цикла  дается  дополни-
тельно  STEP n - шаг изменения и
LN  n  - номер строки из которой
происходит возврат в голову цик-
ла.  LIST DEF KEY - вывод списка
клавиш  определенных пользовате-
лем.
LIST  PROC name - Вывод листинга
процедуры с именем name.

LIST  REF - Выдача номеров поме-
ченных строк.
Пример:
   10 FOR N=0 TO 10: PRINT N
   20 NEXT N
    Команда LIST REF N даст:
         10
         10
         20
EDIT n - Вызов на редактирование
строки  n.  Аналогично  LIST n и
<CS+1>.
RENUM[#]  [n TO m LINE k STEP l]
-  Эта  команда  выполняет  мно-
жество фукций:
переименовывает, копирует, пере-
мещает.  При этом изменяются все
ссылки   на   перенумеровываемые
строки. Назначение параметров:
#  -  указывает  на то, что блок
должен быть скопирован, а не пе-
ремещен;
n - номер строки с которой начи-
нает  работать команда, по умол-
чанию - 1;
m  - номер строки на которой за-
канчивает  работать  команда, по
умолчанию - 9999;
k  -  новый  номер который будет
присвоен  строке n, по умолчанию
- 10;
l  -  шаг,  с которым будет идти
перенумеровка  строк, по умолча-
нию - 10.
     Примеры:
'&RENUM   -  Перенумеровывает  всю
программу    присваивая   первой
строке номер 10 с шагом 10;

RENUM 100 - перенумеровывает 100
строку присваивая ей номер 10;

RENUM  100 TO - перенумеровывает
программу  начиная с 100 строки,
которой присваивается номер 10 с
шагом 10;
RENUM TO 100 - перенумеровывает-
ся  программа до 100 строки, при
этом первой строке присваивается
номер  10 и перенумеровка идет с
шагом 10;
RENUM  LINE 1000 - перенумеровы-
вается вся программа с шагом 10,
при  этом первой строке присваи-
вается номер 1000;
RENUM STEP 1 - вся программа пе-
ренумеровывается  с шагом 1, при
этом перовй строке присваивается
номер 10.
NB.  Команда  использует  в  ка-
честве  буфера экран, поэтому во
время  ее работы на экране появ-
ляется  грязь. В случае если ко-
манде попадается инструкция типа
GO  TO ln*100 команда не исправ-
ляет ее, а выдает сообщение: Fa-
iled at n:m, где n - номер стро-
ки,  а  m  -  номер  оператора в
строке.
KEYWORDS  n  -  Установка режима
ввода  программы с клавиатуры, n
- режим.
0  - В режиме курсора G вводится
UDG. 1 - В режиме курсора G вво-
дятся  команды  ВВ. Режимы 0 и 1
не влияют на установку остальных
режимов.
2  - Все ключевые слова вводятся
одним  нажатием  клавиши, причем
команды  ВВ вводятся через режим
G.
3 - Аналогичен режиму 2, но поз-
воляет вводить команды и по бук-
вам  NB. Для перехода от курсора
К, к курсору L нажать пробел.
4 - Все команды вводятся по сим-
волам.
NB.  Команда не токенизируется в
случае,  если  перед  ней  стоит
буква или "_".
        Работа с TR-DOS.
  Встроенные в ВВ часы использу-
ют  2 режим прерываний, что при-
водит  к  конфликту  ВВ с TR-DOS
при обращении к ней, поэтому пе-
ред  тем как выйти в TR-DOS вве-
дите команду RANDOMIZE USR 63237
для  всстановления 1 режима пре-
рываний,  а  по окончании работы
установите 2 второй режим преры-
ваний   командой  RANDOMIZE  USR
61369.
  Так   как  работать  с  диском
обычно  приходится довольно час-
то,  то  рекомендую  вставить  в
программу следующий фрагмент:
9998 RANDOMIZE USR 63237: RANDO-
MIZE USR 15616
9999 RANDOMIZE USR 61369
  Для  работы с диском дайте ко-
манду GO TO 9998. При возврате в
бейсик  все будет восстановлено.
Если  же  вы не планируете рабо-
тать  с часами ВВ, то рекомендую
сразу отключить их RANDOMIZE USR
63237  и  вы будете избавлены от
вышеописанных неприятностей.
        Вывод на экран.
  В   ВВ  существенно  расширены
возможности стандартного бейсика
по выводу на экран. Кроме расши-
рения  возможностей команд PRINT
и PLOT введена команда WINDOW, а
также  целый спектр команд рабо-
тающих  с  графическим  экраном.
Рссмотрим все по порядку:
PRINT:  USING "формат" - так на-
зываемый  форматированный вывод,
где  "формат" - символьная стро-
ка,  в  соответствии  с  которой
идет вывод чисел на экран.
CSIZE  n,m  -  установка расмера
символа  (  в пикселях) по гори-
зонтали и вертикали. Примеры:
PRINT USING "####.##%";989.275 -
Результатом будет: 989.28%
PRINT  USING "0000.000";989.2751
- Результат: 0989.275
PRINT  CSIZE 16,16;"HELLO" - вы-
ведет  на  экран  слово  "HELLO"
размером 2*2 знакоместа.
Команду CSIZE можно использовать
и  отдельно от PRINT и тогда она
задаст общий режим вывода на эк-
ран.
PLOT x,y;a$ - Вывод строки a$ на
экран  с точностью до пикселя. x
и  y  расчитываются  как обычной
команде PLOT.
'&WINDOW n,x,y,len,hgt - Определе-
ние   окна.   n   -  номер  окна
1-127;x,y  -  координаты  левого
верхнего  угла  окна как в PLOT;
len,hgt  - длина и высота окна в
пикселях. После определения окна
его  можно  сделать текущим, дав
команду:
WINDOW  n  -  где n - номер окна
(окно должно быть определено пе-
ред  этим.). Основной экран счи-
тается 0 окном.
Каждому  окну соответствуют свои
параметры,  такие  как:  позиция
печати,  размер символов, INVER-
SE,   BRIGHT,  INK,  PAPER.  Для
очистки окна нужно дать команду:
CLS  n - где n - номер окна. Для
уничтожения окна необходимо дать
команду: ERASE WINDOW n.
GET a$,x,y,len,hgt,type - Данная
функция  сохраняет  экранную об-
ласть  с координатами x,y и раз-
мерами   len,hgt   в  переменной
a$.(все  задается  в  пикселях.)
Параметр   type  указывает,  как
сохранять изображение:
0 - без атрибутов;
1 - с атрибутами.
OVER n - эта команда бейсика до-
полнена   режимом  2:  наложение
изображения  на экран без инвер-
сии.
      Продолжение следует.



Другие статьи номера:

Авторы журнала - ZX-Format No.5

От авторов - о пятом номере журнала.

Игрушки - 48 утюгов (част 4).

Игрушки - по пополочкам: Castle Master #1

Игрушки - новелла по игре Robin Of Sherlock.

Программистам - Basic для чайников - часть 5.

Программистам - искусственный интеллект в компьютерных играх.

Программистам - TR-DOS для программистов.

Программистам - описание и история создания MEM.

Программистам - обмен опытом: Об эффектах на бордюре и кое о чём ещё.

Программистам - обмен опытом: "Подсчет мозгов" - AUTOconfig v5.03.

Программистам - adventure: разумный подход к прохождению.

IS-DOS - пользователям: справочник по основным командам и утилитам базового комплекта IS-DOS.

IS-DOS - программистам: краткий курс программирования в среде IS-DOS.

IS-DOS - IS-NEWS - "Новости в мире IS-DOS".

IS-DOS - програмно-аппаратный комплекс поддержки IDE HDD для ZX Spectrum.

Железо - KAY: ZX Spectrum Ttransformer.

Железо - Технология это война.

Железо - General Sound.

Железо - XTR Modem.

Железо - Схемa KEMPSTON MOUSE.

Железо - Что делать, если мыша не правильного типа.

Железо - LPT COVOX и не только...

Премьера - описание программы Catalogue Master.

Премьера - описание программы Micro-editor. (MED)

Премьера - Text designer.

Интервью - интервью с разработчиком клона HOBBIT (2-я часть).

Отдохнём - словарь рекламы (С юмором, но не без здравого смысла!).

Отдохнём - Воспоминания о будущем.

Почта - Письма читателей.

Почта - реклама и обьявления.

Почта - уголок ламера (Детям до 16 лет читать категорически воспрещается).

Разное - перспективы: новая игра от Медноногова "Чёрный Ворон".

Разное - перспективы: Pink Floyd - новая операционная система для Спектрума.

Разное - перспективы: игра Экспансия.

Разное - Здесь был ТЫ.

Разное - Рецензия на игру Kings bounty II.

Разное - Конкурс на лучший уровень к игру Laser Squad продолжается. Новый конкурс на микро-демо.

Разное - анкета для читателей журнала.

Amiga - Крик души: Windows 95 и еще кое о чем.

Amiga - Amiga-клуб, вопросы и ответы.

Amiga - Проект PowerUp - следующее поколение Aмиг.


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

Похожие статьи:
Раскрутка - Стратегическа игра: Sword OF Bane.
Комментарий к приложению
Футбол - словарь футбольного жаргона.

В этот день...   17 февраля