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миг.


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

Похожие статьи:
Обзор прессы - обзор новинок прессы за 2003-2004 год.
Новости - Hippiman/Conscience выпустил новогоднюю игру Dizzy Rescues Santa, Польский культуролог Пётр Марецки прислал большой опросник для будущей книги, Сергей Смирнов (Gogin) возродил свой проект по портированию игры Super Mario для Спектрума.
Железо - АТМ TURBO 2+ как стандарт.

В этот день...   9 апреля