ОТЛАДКА И РЕДАКТИРОВАНИЕ
ПРОГРАММ
• КОМАНДЫ BRANCH, TRON, TROFF,
SPEED
Команда
"BRANCH " может оказаться весьма полезной при отладке
программ. Например, вас интересует значение отдельной переменной. Для вывода
ее значения на экран используется команда "BRANCH ".
Другой метод контроля выполнения
программы — команды "TRON" и "TROFF" Они разрешают и
запрещают трассировку (вводится номер выполняемой строки в левый нижний угол экрана).
Команда
"SPEED N" устанавливает скорость исполнения программы: N=0 — максимальная скорость; N =255 — минимальная (останов
после выполнения каждой команды). Нажатие любой клавиши в этом режиме приводит
к повышению быстродействия до максимума.
• КОМАНДЫ AUTO И DELETE
При наборе больших программ очень
удобно входить в режим "AUTO", в котором
номер строки печатается автоматически после каждого нажатия клавиши <ENTER>.
Команда
"AUTO начальное значение, приращение" автоматически нумерует
строки при набивке программы. Выход из этого режима:
"SYMBOL SHIFT + L" в режиме
"EXTENDED".
Часто бывает необходимо удалить
большие блоки программы. Команда "DELETE N1,N2"
стирает все строки программы с N1 до N2.
• КОМАНДЫ BROFF И BRON
Специально для желающих защитить
свою программу от посторонних глаз существует команда "BROFF ",
которая запрещает прерывание выполнения программы нажатием на клавишу BREAK. Разрешение прерывания осуществляется командой "BRON ".
• КОМАНДЫ RESTART И RESTART OFF
Многие версии Бейсика имеют
команды "ON ERROR GO ТО", которые позволяют
изменить работу системы при обнаружении ошибки. Эквивалент этой команды в М-В
— "RESTART ", которая имеет один числовой аргумент,
определяющий адрес перехода в случае ошибки. Для возобновления нормального режима
работы программы необходимо выполнить команду "RESTART
OFF".
"RESTART
" не срабатывает при обнаружении ошибки в INTERFACE-1
или в самом М-В. Для вывода сообщения об ошибке полезно знать, что
Адрес 59873/4 — содержит номер
строки с ошибкой;
Адрес 59875 — номер утверждения с
ошибкой;
Адрес 59862 — код ошибки.
ЗВУК
М-В предоставляет вам два новых
способа вывода звука для ZX-SPECTRUM — команду "PLAY " и генератор звука по прерыванию (ГЗП).
формат:
PLAY N.
длина шага, начальная частота, количество шагов, приращение частоты
Эта команда позволяет создавать
новые интересные эффекты. N — выбор звука. Если N=0, то
чистый тон; если N=1, то белый шум. Однако "PLAY
" лишь расширение "BEEP', a М-В открывает
совершенно новые возможности, создавая генератор звука по прерыванию (ГЗП),
который позволяет выводить звук независимо в процессе выполнения программы.
50 раз в секунду работа процессора
прерывается и происходит переход на короткую подпрограмму в машинных кодах,
которая сканирует клавиатуру. В М-В эта программа модифицирована для генерации
звуков. М-В имеет ряд команд, обеспечивающих управление ГЗП и буфером звука:
SOFF —
запрет ГЗП (любой звук прекращается);
SON —
разрешение ГЗП (звук возобновляется);
SREP N —
количество повторений; если N=0, задает бесконечное
количество повторений;
SOUND N,A,B,S,D
—простая, но эффективная коман-да управления ГЗП;
N — устанавливает заполнение
буфера, если N=0 — содержимое буфера ГЗП возобновляется, если N=1 — данные
добавляются в конец буфера звука;
А — выбор звука (аналогично "PLAY N");
В — приращение частоты на каждом
шаге;
С — число шагов при однократном
запуске;
D — число
запусков.
Заметим, что
"PLAY " запрещает работу ГЗП, поэтому после "PLAY
" надо добавить команду "SON". Отметим
кстати, что ГЗП не функционирует при работе строкового редактора.
Скорость выполнения программы
зависит от сложности звука, который вы задали.
Пример использования ГЗП:
10 SOUND 0,0,1,20,255
20 SREP 1
30 SON
40 MODE 4:
STIPPLE 6: FONT 2
50 VDU (128+RND*15)
60 PAPER RND*7: INK 9
70 GO TO 50
машинные
КОДЫ И YS MEGA BASIC
М-В сохраняет возможность запуска
подпрограмм в машинных кодах из BASIC-программ. Однако существуют две особенности:
1. Область выше 45000 занимать
нельзя, так как она занята самим М-В.
2. М-В использует второй режим
прерывания Z80. Поэтому все программы с использованием
системы прерываний потребуют особого внимания.
• КОМАНДЫ DOKE И CALL
При работе с микропроцессором Z80
часто бывает необходимо заносить в ОЗУ двубайтные константы. Для этого
существует команда "DOKE адрес, данные". Данные размещаются в соответствии
со стандартом Z80: младший байт — первый, старший — второй.
Команда
"CALL " вызывает подпрограмму в машинных кодах с заданного
адреса. В случае необходимости за адресом может следовать любое количество
числовых выражений.
• ПЕРЕДНЯЯ ПАНЕЛЬ
М-В дает возможность набивать в
прямом режиме программы • машинных кодах, используя переднюю панель. Она вызывается
либо командой "MON", либо нажатием
пробела и "F" при выполнении программы. Для
передней панели используется окно 3, Которое должно иметь размер не менее 40
столбцов на 20 строк для правильного функционирования. Слева на голубом фоне
па-мель отображает состояние внутренних регистров Z80. Регистр флагов выведен в
двоичной форме. Звездочка обозначает текущий регистр. Справа выводится
значение области ОЗУ с произвольного адреса, текущий байт выделен инверсной
строкой. Внизу на зеленом фоне — строка ввода. Управление осуществляется
несколькими односимвольными командами, за которыми может следовать до 3-х
шестнадцатеричных чисел. Все такие числа должны вводиться полностью. При вводе
двухбайтных чисел необходимо записывать четыре знака.
SPACE —
возврат в BASIC;
R N N —
загрузка текущего регистра;
Р — сдвиг указателя текущего
регистра;
М NN —устанавливает адрес текущей
области памяти, выводимой на панель;
S —
устанавливает точку прерывания;
К — возобновляет выполнение
программы после прерывания;
U — восстанавливает
точку прерывания;
J NN
—вызывает подпрограмму в кодах по адресу NN;
ENTER —
инкремент адреса текущей области;
"-" —декремент адреса
текущей области;
L NN1 NN2
NN3 —перемещение массива объемом NN3 с адреса NN1 в адрес NN2;
1 NN1 NN2 NN3 — заполнение массива
объемом NN2 константой NN3 с адреса NN1.
ПРИМЕЧАНИЕ:
N — байт;
NN — двухбайтное слово.
Если в начале строки ввода записываются два числа, представляющие
байт, то он записывается в ОЗУ по текущему адресу и этот адрес инкрементируется.
РЕДАКТОР СПРАЙТОВ
• СПРАЙТЫ В МЕГА-БЕЙСИКЕ
Спрайты — это графические объекты, которые можно передвигать
по экрану. Их форма, цвет, направление и скорость движения определяются
пользователем, причем каждый спрайт может иметь не один облик, связанный с ним.
В движении можно изменять форму спрайта, меняя его облик, т.е. сделать
его.жи-вым. В М-В вы можете использовать до 8-и спрайтов с номерами от 0 до 7.
Команда
"SPRON ", имеющая два аргумента, позволяет выводить спрайты
на экран. Первый аргумент определяет номер спрайта, второй — способ вывода
(если 1, то логическое сложение по модулю 2). Команда
"SPROFF;HOMep спрайта" удаляет спрайт с указанным номером.
Размер спрайта — 16*16 точек, причем каждая из 4-х групп размером 8*8
точек может иметь свои собственные атрибуты. Под спрайты отводятся две области
в памяти, первая — с адресами 56750-56893 содержит всю информацию о спрайте, за
исключением облика. Для каждого спрайта отводится по 18 байт, для вычисления
начального адреса с номером N ис-пользуется выражение: A=56750+18*'N.
Вид спрайта определяется байтом с
адресом А (если 0, то спрайт не выводится, если 1, то логически складывается по
модулю два). Конец информации о спрайтах обозначается байтом 255, поэтому
наилучшим способом стереть все спрайты будет команда: POKE
56570, 255
Спрайты используют ту же систему
координат, что и команды "SPUT " и "SPRINT ".
А+1 — Х-координата спрайта
(0-255);
А+2 —Y-координата спрайта (0-175);
А+3 — инкремент X;
А+4 — инкремент
Y;
А+5 — время, необходимое для
движения спрайта;
А+7 — число обликов;
А+9 — период смены обликов;
А+11/12 — адрес, с которого
начинаются облики;
А+15 — атрибуты, используемые для
стирания спрайта.
Вторая область памяти используется
для хранения обликов всех спрайтов, она располагается между
RAMTOP и адресом
44999 и имеет переменную длину.
Под каждый спрайт отводится 36 байт, причем 32 — для изображения, 4 —
для атрибутов.
Как уже ранее упоминалось, байты
А+11 и А+12 указывают на информацию о первом облике, причем несколько
спрайтов могут указывать на один адрес. Если спрайт имеет не один облик, то
информация о них должна следовать сразу за информацией о первом облика
• ПРОГРАММА SPRITE DESIGNER
SPRITE DESIGNER
(S-D) располагается на ленте сразу за М-В и загружается командой LOAD "S-D".
S-D автоматически запускается и
позволяет без особого напряжения создавать спрайты и размещать их на ленте и
магнитных картах готовыми для использования.
Голубое поле слева используется
для создания изображений, поле справа — для отображения информации."
Нижняя часть экрана — для ввода пользователя.
CREATE A SPRITE —
позволяет определить координаты, скорость и направление движения.
VIEW A SERIES OF
IMAGES — позволяет увидеть спрайты стандартных размеров (конечно,
если есть хотя бы один облик в памяти).
CREATE AN IMAGE
— очищает 36 байт над RAMTOP для создания нового
облика.
EDIT AN IMAGE
—позволяет редактировать облик с экрана.
SAVE IMAGES AND
SPRITES — записывает текущий спрайт и его облик на ленту или магнитную
карту.
LOAD IMAGES AND
SPRITES — загружает в память спрайты с их обликами.
COPY TO
MICRODRIVE — копирует S-D на магнитную ленту.
RETURN TO BASIC —
возврат в MEGA BASIC. Для перезапуска S-D набрать GOTO 5 и нажать <ENTER>.
Помните, что облики нумеруются с
0, а облик с номером О располагается выше всех в памяти.
При записи спрайта необходимо
указать имя файла (длиной до 8-и символов), причем записано будет 3 файла.
Например, если имя — "SPRITE" то будет
сохранено три файла с именами:
"SPRITE
.N", "SPRITE .1" и "SPRITE
.S". "SPRITE .N" — это однобайтный файл, определяющий
количество обликов спрайта,
"SPRITE
.S" — файл с информацией о самом спрайте. Для загрузки спрайта и
его обликов из вашей программы необходимо набрать:
9000 LOAD F$ + ".N" CODE 23296 9010 CLEAR 44999 + 36 * PEEK 23296
9020 LOAD F$ + " . I"
CODE 9030 LOAD F$ + ".S" CODE