ZX-Spectrum 128. Инструкция по эксплуатации 1993 г.

Глава 4 - режимы работы. Использование языка "БЕЙСИК-128".


4.2 БЕЙСИК-128К И ПРОГРАММИРОВАНИЕ ЗВУКОВ

ИСПОЛЬЗОВАНИЕ ЯЗЫКА БЕЙСИК-128

В настоящей главе рассатриваются следующие вопросы:

■ - редактор;

■ - меню редактирования;

■ - перенумерация строк Бейсик-программы;

■ - перемещение кадров на экране;

■ - вывод на печатающее устройство;

■ - ввод программы;

■ - перемещение курсора;

■ - прогон программы;

■ - команды и инструкции.

В компьютере "Спектрум I28K" имеется развитый редактор для создания,
модификации и прогона программ на языке Бейсик-128. Для ввода редактора
выберите опцию "Бейсик-128" из начального меню, используя клавиши курсора и
клавишу [ENTER] (ввод).
На экране появится:

надпись "128 BASIC" (на фоне черной полосы) и мигающий синий курсор в
левом верхнем углу.

В дальнейшей работе вам будет полезно помнить три следующих обстоятельства.

Во-первых, если вы введете с клавиатуры какие-либо символы, то они
отобразятся на экране в позиции курсора.

Во-вторых, в нижней части экрана имеется черная полоса. Она называется
ПОЛОСОЙ ПОДСКАЗКИ и сообщает вам о том, какую часть встроенного
программного обеспечения компьютера "Спектрум 128К" вы используете.
В
данный момент полоса подсказки содержит сообщение "Бейсик-128",
поскольку именно так называется редактор.

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

пуста. Эта часть экрана содержит место только для двух строк текста и
наиболее часто используется компьютером "Спектрум 128К" в тех случаях,
когда он обнаруживает ошибку и должен вывести сообщение о ней. Однако
эта часть экрана имеет и другое назначение, которое будет рассмотрено ниже.

Теперь нажмите клавишу [EDIT] (редактирование). Вы увидите, что курсор исчез
и появилось новое меню. Это меню называется МЕНЮ РЕДАКТИРОВАНИЯ:

1 - Бейсик-128;

2 - перенумерация;

3 - экран;

4 - печать;

5 - выход.

(Опции меню редактирования выбираются таким же способом, как и опции
начального меню - с помощью клавишей курсора и клавиши [ENTER]).
Рассмотрим опции меню редактирования.

Бейсик-128. Эта опция просто стирает меню редактирования и восстанавливает
курсор. На первый взгляд эта опция не очень полезна, однако, если клавиша [EDIT]
нажата случайно, то эта опция позволяет Вам вернуться в программу без каких-либо
ее изменений.

Перенумерация. Программы на языке Бейсик используют номера строк для
определения порядка следования операторов, которые должны выполняться. Вы
вводите эти номера, которые могут принимать любые целые численные значения в
диапазоне от 1 до 9999, в начале каждой вводимой строки программы. В случае
выбора опции "Перенумерация" номера строк программы на языке Бейсик будут
всегда начинаться с номера 10 и далее возрастать с шагом 10. Операторы языка
Бейсик, которые содержат ссылки на намера строк (такие, как GO ТО, GO SUB,
LINE, RESTORE, RUN и LIST), также будут содержать автоматически
перенумерованные ссылки.

Если по какой-либо причине перенумерация невозможна, например, из-за того,
что в памяти компьютера "Спектрум 128К" программы вообще нет, или из-за того,
что опция "Перенумерация" будет генерировать номера строк, превосходящие 9999,
то компьютер "Спектрум 128К" издает короткий низкочастотный сигнал и меню
исчезает.

Новички в программировании на языке Бейсик должны теперь перейти к
нижеследующему разделу, начинающемуся со слова "Экран".

Можно с помощью "хитрых" методов заставить опцию "Перенумерация" работать
со значениями, отличными от "Начальное значение=10" и "Размер шага=10".

Если Вы хотите перенумеровать программу, содержащую более 1000 строк, то для
выполнения этой функции можно воспользоваться командой РОКЕ. (Правда, для
этого нужно знать, как работает эта команда). Например:

LET start-5: LET stepsize=2:
LET histartHNT (start/256);
LET histep=INT (stepsize/256)+
POKE 23444, start-256*histart
POKE 23445, histart;
POKE 23446, stepsize-256*histep;
POKE 23447, histep

Вследствие изменения значений переменных start и stepsize опция
"Перенумерация" будет выполнять перенумерацию, начиная с любого (допустимого)
номера строки и с любым шагом. Введите приведенные команды, а затем используйте
указанную опцию меню.

Позже, когда вы научитесь писать программы на языке Бейсик, и запоминать их
с помощью магнитофона или дисковода, вы сможете включить приведенный
фрагменте короткую программу для будущего использования, например, в программу:

10 INPUT 'start line*, start
20 INPUT 'step size', stepsize
30 LET histart - INT(start/256)
40 LET histep - INT(stepsize/256)
50 POKE 23444, start-256*hi$tart
60 POKE 23445, histart
70 POKE 23446, stepsize-256*histep
80 POKE 23447, histep

90 PRINT 'PRESS [EDIT] THEN SELECT RENUMBER OPTION'

■ Экран.

Эта опция перемещает курсор в малую (нижнюю) часть экрана и обеспечивает
ввод и редактирование команд языка Бейсик в этой части экрана. Эта возможность
наиболее полезна при работе с графическими средствами, поскольку любые операции
редактирования в нижней части экрана не портят верхнюю часть экрана. Для
возврата к работе с верхней частью экрана, что вы можете сделать в любой момент
в процессе редактирования, снова выберите опцию "Экраы" меню редактирования.

■ Печать.

Если печатающее устройство подключено к компьютеру Спектрум I28K, то при
выборе этой опции будет распечатываться листинг текущей программы. После
завершения печати листинга меню исчезнет с экрана, а курсор возвратится в
прежнюю позицию. Если по какой-либо причине компьютер НЕ МОЖЕТ выполнить
печать (например, печатающее устройство не подключено или находится в состоянии
OFF-LINE), то при двукратном нажатии клавиши [BREAK] (прерывание) будет
осуществлен возврат в режим редактирования.

■ Выход.

Эта опция осуществляет возврат в начальное меню: компьютер Спектрум 128К
сохраняет в памяти любую программу, с которой в данный момент осуществляется
работа. Если вы хотите снова вернуться к программе, то выберите в начальном меню
опцию "Бейсик-128".

Если вы выберете в начальном меню опцию "Бейсик-48" или выключите
компьютер, либо нажмете клавишу [RESET] (сброс и повторная установка), то
всякая программа, находящаяся в памяти, будет стерта. Однако, вы можете использовать
опцию "Калькулятор" начального меню без стирания программы в памяти.

Теперь выполните повторную установку компьютера Спектрум 128К и выберите
опцию "Бейсик-128". Введите приведенную ниже строку:

10 FOR f=l ТО 255 STEP 10

По мере набора этой строки на клавиатуре символы будут появляться на экране
(символом является буква, число, пробел и т.п.). Если Вы не знаете, каким образом
вводить знак равенства "=", то нажмите и удерживайте клавишу [SYMB SHIFT]
(сдвиг символа), а затем один раз нажмите клавишу [L].

После набора строки нажмите клавишу [ENTER] (ввод). В том случае, если Вы
не сделали синтаксических ошибок, компьютер Спектрум 128К выведет на экран
введенную строку, изображая слова FOR и STEP заглавными буквами (ВЕРХНИЙ
РЕГИСТР) следующим образом:

10 FOR f- 1 ТО 255 STEP 10

Кроме того, компьютер Спектрум 128К издаст короткий сигнал и переместит
курсор в начало следующей строки.

Если строка окажется выведенной на экран строчными буквами (нижний
регистр) и вы услышите низкочастотный сигнал, то это будет означать, что Вы ввели
что-то неправильно. Заметим также, что цвет курсора меняется на красный в случае
обнаружения ошибки. Ясно, что вы должны исправить строку перед тем, как она
будет принята компьютером Спектрум 128К. Для того, чтобы выполнить эти
действия, воспользуйтесь клавишами перемещения для подвода курсора к той части
строки, которую Вы хотите исправить. Затем вводите любые символы, которые Вы
хотите вставить, или воспользуйтесь клавишей [DELETE] (удаление) для удаления
любых символов, от которых Вы хотите избавиться. После того, как Вы закончите
корректировку строки, нажмитет клавишу [ENTER].

Наберите теперь строку, приведенную ниже (здесь ввод двоеточия осуществляется
с помощью нажатия клавиши [SYMB SHIFT] и [Z], а ввод знака минус (-)
выполняется с помощью нажатия клавиш [SYMB SHIFT] и [J]):

20 PLOT 0,0: DRAW f,175:PLOT 255,0:DRAW f,175

и нажмите [ENTER].

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

Наберите теперь последнюю строку программы:

30 NEXT f

и нажмите [ENTER].

Числа в начале каждой строки называются НОМЕРАМИ СТРОК и используются
для идентификации каждой строки. Строка, которую Вы только что ввели, является
строкой номер 30, и курсор должен теперь располагаться непосредственно ниже и
слева от строки 30. Нажмите один раз клавишу перемещения курсора вверх (стрелка,
направленная вверх). Курсор переместится к строке 30, он не переместится сразу
вверх, как Вы могли бы предполагать, поскольку отсутствуют средства для перемещения
его непосредственно выше. Вместо этого компьютер пытается определить, что Вы
хотите сделать, и устанавливает курсор соответствующим образом. Курсор всегда и
в первую очередь пытается удалить незначащие пробелы (хотя он не пытается удалить
значащие пробелы между словами в строке), а также всегда будет пытаться найти и
непременно отыщет текст, к которому он должен был переместиться.

Снова нажмите один раз клавишу перемещения курсора вверх. Теперь переместите
курсор вправо с помощью соответствующей клавиши (стрелка, направленная вправо),
пока он не окажется в позиции "1" в слове DRAW f, 175. Если воспользоваться
клавишей перемещения курсора вниз, тот перейдет к ближайшему доступному
тексту, которым в данном случае является конец строки 30. При повторном нажатии
клавиши перемещения курсора вверх, он (курсор) вернется в предыдущую позицию.

Такой способ перемещения курсора называется СЛЕЖЕНИЕМ и поначалу
может несколько озадачить пользователя. Однако он позволяет гораздо легче
редактировать программы после ознакомления с ним.

Теперь нажмите клавишу [ENTER). Компьютер откроет новую строку для
подготовки к какому-либо новому тексту.

Одно обстоятельство, которое вы можете заметить в процессе ввода символов,
заключается в том, что совместное использование клавиш [CAPS SHIFT] (сдвиг
регистра) и числовых клавиш приводит к странным эффектам: совместное нажатие
клавиши [CAPS SHIFT] с одной из клавиш [5], [6], [7] или [8] перемещает курсор по
кругу, совместное нажатие клавиш [CAPS SHIFTJ и [ 1 ] вызывает меню редактирования,
совместное нажатие клавиш [CAPS SHIFT] и [0] удаляет символ, совместное нажатие
клавиш [CAPS SHIFT] и [2] эквивалентно нажатию клавиши [CAPS LOCK] (запрет
регистра) и, наконец, совместное нажатие клавиш [CAPS SHIFT] и [9] выбирает
графический режим. Все эти функции доступны при использовании специально
предназначенных клавиш компьютера "Спектрум I28K", поэтому нет причин для
совместного использования клавиши [CAPS SHIFT] с одной из цифровых клавиш
одновременно.

Если вы удовлетворены тем, как работает редактор, переходите к чтению
следующего раздела.

■ Программирование звуков

При записи нот имеет значение размер буквы. Так "ga" не одно и тоже что "GA".

Наиболее простой способ получения звука - команда ВЕЕР. Ее формат:

ВЕЕР <лродолжительность>,<высота>,

где, как обычно, длительность и высота представляют численные выражения.
Длительность задается в секундах, а высота - в полутонах выше средней С (при
использовании положительных чисел) или ниже среднего С (при использовании
отрицательных чисел).

Ниже приводится схема, показывающая высоту всех нот одной октавы пианино
для ВЕЕР:

Итак, чтобы сыграть А выше среднего С полсекунды, Вы должны использовать:
ВЕЕР 0.5,9

а чтобы сыграть гамму (например, си мажор), потребуется целая программа (хотя
и короткая):

10 FOR f-1 to 8
20 READ note
30 BEEP 0.5, note
40 NEXT F

50 DATA 0,2,4,5,7,9,11,12

Чтобы получить более высокие или более низкие ноты, вы должны добавить или
вычесть 12 для каждой октавы, на которую вы повышаете или понижаете.

Команда ВЕЕР применяется, в основном, для совместимости с ранними моделями
Spectrum, так что она может быть полезной только для очень коротких или быстрых
звуковых эффектов. Для любых новых программ, которые вы разрабатываете,
предпочтительнее другой способ производства звуков, который реализуется с помощью
оператора PLAY.

Оператор PLAY гораздо ги^че, чем ВЕЕР - он может заставлять играть гармонично
на.три голоса со всеми видами эффектов и давать более высокое качество звука. Он
также проще в применении.

Например:

PLAY "а"

а чтобы сыграть основную гамму (для чего ранее требовалась программа),
используйте следующую запись:

PLAY "cdefgabC"

Заметим, что последнее С в примере набрано заглавными буквами. Этим команде
PLAY сообщается, что нужно играть октавой выше, чем первое. Последний пример
заставляет звучать основную октаву
С (мажор), поскольку это набор нот между двумя
С.

Для примера, гамма си минор задается так:

PLAY "cd$efg$a$bC" , где $ - знак доллара.

Если перед нотой стоит такой знак, то происходит снижение ноты на полтона
(сглаживание), а если стоит знак "#", происходит подъем на полтона. Оператор
PLAY охватывает 9 октав и можно выбрать любую из них, задав букву О (заглавную),
за которой следует номер в списке заданных нот. Приведем схему нот и номеров
октав, которые соответствуют стандартной равнотемперированной музыкальной
гамме:

PLAY также может обработать много различных длин нот. Длина ноты может
быть изменена в любом месте строки при включении числа между 1 и 9 , и это
эффективно для всех последующих нот, пока не встретится новое число. Каждая из
этих девяти длин нот имеет музыкальное название и выглядит по-разному, когда
записывается в музыкальной нотации. На следующем рисунке показано соответствие
между ними:

Номер

Название ноты

Музыкальный символ

1

semi quaver

J>

2

doffed semi quaver

J>.

3

quaver

J>

4

doffed quaver

J>.

5

crotchet

J

6

doffed crotchet

J.

7

minim

J

8

doffed minim

J.

9

seme - breve

1 - пол восьмой; 6 - четвертная с точкой;

2 - полвосьмой с точкой; 7 - половинная;

3 - восьмая; 8 - половинная с точкой;

4 - восьмая с точкой; 9 - полукратная.

5 - четвертая;

PLAY вполне может "замолчать"! Период времени, в течение которого не звучат
ноты, называется отдыхом и для его обозначения используется знак "&''. Длительность
отдыха равна длительности текущей ноты.

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

Номер

Название ноты

Музыкальный символ

10

triplet semi quaver

.73

11

triplet quaver

m

12

triplet crotchet

ПJ

1 - триплет пол восьмой: 3 - триплет четвертая.

2 - триплет восьмая;

Компьютер 'Спектрум 12SK" может изменять уровень звучания ноты при игре
так, что она может звучать громче или тише, как пианино, или поднимать или
снижать тон, как рычащая собака. Чтобы включить эти эффекты, используйте "W"
(для формы волны), вслед за которой идет число от 0 до 7, вместе с "U" для каждого
канала, который Вы хотите использовать. Любой канал, на котором установлен
уровень звучания "U", не будет отзываться на "U". Далее приведена диаграмма,
графически показывающая, как изменяется уровень для каждой установки:

Приведенная далее программа играет одну ноту с каждым из приведенных
эффектов, так что Вы можете сравнить их с диаграммой:

10 LET a$="UH 1000WC&W2C&W3C&W4C&W5C&W6C&W7C,/
20 PLAYa$

Команда PLAY не ограничивается чисто музыкальными эффектами. Имеется
также три генератора "белого шума" (бглый шум похож на звук ненастроенного
радиоприемника или телевизора с частотой модуляцией) и любой из трех каналов
может играть поты, белый шум или их смесь. Для выбора смеси шума и ноты вы
можете использовать "М", вслед за которым проставляется число or I до 63. Вы
можете определить, какое число использовать, из следующей таблицы

Тоновые каналы

Шумовые каналы

V

а

в

с

а

в

с

номер

1

2

4

8

16

32

Диаграмма, демонстрирующая изменение уровня для каждой установки

Номера каналов в соответствии с желаемыми эффектами складываются. Так, если
вы хотите чтобы "а" - издавал шум, "в" - тон, "с" - шум, то сложите 8,2,4 и 32, что
дает 46.

В музыкальные стрбки можно включить комментарии, используя символ "!",
Который ограничивает комментарии с двух сторон.

В конце приведем краткий список параметров, которые могут использоваться в
строке команды PLAY вместе со значениями, которые они могут принимать:

Строка Функция

a-G..........высота звука в пределах выбранной октавы

$..............понижение следующей ноты

#..............повышение следующей ноты

О..............указывает номер октавы (0-9)

1-12.........длительность нот

&..............длительность пауз - слитное звучание ноты

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

 V..............устанавливает громкость звучания (0-15)

W.............амплитудный эффект звука (0-7)

X..............длительность амплитудного эффекта

Т..............темп мелодии

(...)...........Фраза в скобках повторяется

! ... !......... Комментарий, ограниченный символами.

Н.............остановка команды PLAY

 Y..............указывает канал MIDI (1-16)

Z..............указывает код MIDI ( номер кода после символа )




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

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



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

Похожие статьи:
Приветы - наши (а может и Ваши ) знакомые.
Рекламная страничка - много нового п/о для Спектрума.
Marsms - Компиляции: Космополит, Земляне, Онанизм, О, Vel, любимый, Чистота.
Экспертиза - рассмотрена игра "Battle Command" (128К). Вы в роли командира современного танка.
Ассемблер - ВГ-93: процедуры для прямой работы с контроллером дисковода.

В этот день...   24 ноября