Программа ЛАЗЕР - БЕЙСИК
Разработка фирмы OASIS SOFTWARE, автор - Кевин Хэмбитом
Лазер-бенсик разработан для обеспечения легкости и и простоты построения
сложных движущихся графических обьектов.
Загрузить лазер-бенснк можно по команде:
LOAD * "М";I;"LAZER"
Если происходит ошибка, то нажмите "N" и "ENTER", или RANDOMIZE USR 58830 и
ENTER или RANDOMIZE USR 58820
Терминология:
1. Спрайты-управляемый графический обьект.
2. Окна-часть спрайта, заданная 4-мя переменными: .COL, .ROW, .HGT, .LEN.
3. Окна спрайтов- часть спрайта, заданная переменными: .SCL,.SFN,.LEN,.SPN.
4. Область спрайтов - область памяти,где хранятся все заданные спрайты. Ее
верхняя граница-56575, а нижняя: PRINT РЕЕК (62464)+ 256*РЕЕК(62465). или
LET Х=РЕЕК (62464):PRINT X
Граница RAMTOP: PRINT PEEK (23730)+256*РЕЕК (23731) или LET Х=РЕЕК (23730):
PRINT X. При каждом задании спрайта расходуется 9*HGT*LEN+5 байт.
5. Пиксель -элементарный блок в один символ 8x8 точек.
6. Атрибуты -цвета INK и PAPER, параметры BRIGHT и FLASH.
7. Операции с экраном - все команды имеют в конце букву "V". Например:
.SRI V,. INVV,.RV и пр.
8. Операции между экраном и спрайтом: команды этой группы начинаются с "РТ"
или "GT" - .GTBL..PTHR.
9. Операции со спрайтами-имеют окончание "М".
10. Операции спрайт - спрайт: только 2 команды: .SFNM и . DSFM.
12. Пустой спрайт: не содержит данных для экрана.
13. Сервисные команды:
Перенумерация строк: .RNUM X.Y.Z .где
X - начальный адрес строки (по умолчанию =0)
Y - новый адрес (=старому)
Z - шаг (10)
.REMK - удаление всех REM-ct^ok.
.TR0N - начало трейсинга (пошаговое выполнение)
.TR0F - конец трейсинга.
14. Графические переменные:
-ROW - вертикальная координата ( от 0 до 23 ). Верхний ряд имеет R0W=0.
-COL - горизонтальная координата ( от о до 31 ).Левый столбец имеет C0L=0.
-HGT - высота текущего окна ( 1...24 ).
-LEN - длина текущего окна ( 1...32 ).
-SRW - вертикальная координата внутри спрайта (от 0 до HGT-1).
-SCL - горизонтальная координата внутри спрайта (от 0 до LEN-I).
-NPX - выражает величину и направление вертикального скроллинга. Положитель-
ное значение-вверх, отрицательное-вниз. Единица измерения-пиксели (Н-
символы). Диапязон-(+127...-1^8 ).
-SPN - номер спрайта ( от 1 до 255 ).Применяется для тех команд, которые ра-
ботают с однйм спрайтом.
-SP1 - операции между спрайтом и окном другого спрайта. Здесь содержится но-
мер первого спрайта, имеющего окно.
Пример:
10 .SET=0: .SPN=4: .R0W=0: .C0L=-4
20 BORDER 1: BRIGHT I: IN KG: PAPER 1: CLS: .ATOF
30 FOR I=-4 то 32
40 .PTXR: .COL-1+1: .PTXR
50 PAUSE 4
60 NEXT I
70 STOP
Строка 10 - выбирается графический набор 0. Спрайт номер 4: ROW устанавливается
в 0, a C0L в - 4.
Строка 20 - устанавливает атрибуты экрана, экран очищается. Флаг атрибутов
отключается.
Строка 30 - организует цикл для движения спрайта 4( утка ) по горизонтали от
координаты (-4) до (+32).
Строка 40 - удаляет старый спрайт, затем помещает новый.
Строка 50 - пауза для обеспечения необходимой плавности перемещения.
15. Изменение значений переменных.
Для изменения значений переменных существуют 11 функций:
?C0L ?R0W ?LEN ?HGT ?SP1 ?SP
?SPN ?NPX ?SCL ?SRW ?SET
Например:
LET X»?C0L*3+R0W/8 - нельзя.
Вместо этого:
LET C0L»?C0L" LET Y»?R0W: LBT X*C0L*3+4/8
Подробное описа ни e команд
ЛАЗЕР-БЕЙСИКА.
1. Процедуры обработки спрайтов.
. SPIjtT - для создания новых спрайтов. Начало - области остается неизменным, а
верхняя граница поднимается на величину: 9* HGT*LEN+5 байтов
.1SPR все то же самое, что и .SPRT, но здесь области спрайтов развиваются
вниз.
. .WSPR служит для стирания соответствующего спрайта, верхняя граница области
понижается.
.DSPN аналогична предыдущей. При стирании гпрайтов нижняя граница области
повышается.
Параметры : SPN.LEN.HGT
2. ГорНЗОНТаЛЬИЫЙ "СКрОЛЛЦН!
Горизонтальный скроллинг выполняется на 1. 4 или 8 пикселей влево или вправо,
с возвратом или без него.
WL1V.WL4V,WL8V - влево на 1.4.8 пикселей с возвратом
WR1V, WR4V.WR8V - вправо на 1.4,8 пиксель с возвратом
SL1V,SL4V,SL8V - влево ............ Без возврата
SR1V, SR4V, SR8V - вправо............ Без возврата
Параметры команд: COL,ROW,LEN,HGT
3. Вертикальный "скроллинг" экрана
Как и горизонтальный скроллинг, к параметрам окна COL, ROW, HGT, LEN добавля-
ется переменная NPX, которая задает размер и направление скроллинга в пикселях
.NPX=-1 - на одни пиксель вниз
.NPX»1 - на один пиксель вверх
Команды " действия
.WCRV вертикальный скроллинг с возвратом
.SCRY вертикальный скроллинг без возврата
Проверка достаточности емкости буфера:
LET X*?NPX: LET Y=?LEN: IF ABS (X) *Y <256 THEN WCRV
4. Скроллинг аттрибутов экрана.
Скроллинг атрибутов экрана похож на скроллинг пикселей, но выполняется на ши-
рину символа и всегда с возвратом.
Команда действие
.ATLV скроллинг аттрибутов влево
.ATRV скроллинг аттрибутов вправо
.ATUV скроллинг аттрибутов вверх
.ATDV скроллинг аттрибутов вниз
Параметры: C0L,HGT,ROW,LEN
5. Горизонтальный скроллинг спрайтов.
Выполняется как и скроллинг экрана. Все команды отличаются последней буквой
(вместо "V"-"M": .WL1M..WR1M)
Параметры SPN - намер спрайта.
6. Вертикальный скроллинг спрайтов.
Работа аналогична вертикальному скроллингу экрана.
. WCRM ' вертикальный скроллинг с4возвратом
.SCRM вертикальный скроллинг без возврата
Параметры: SPN.NPX
7. Скроллинг аттрибутов спрайта.
.ATLM влево
. ATRM вправо
.ATUM вверх
.ATDM вниз
Параметр SPN - номер спрайта (1-255)
8. Операторы GET и PUT,группа 1.
Операторы PUT помещают спрайт на экран или в другой спрайт. GET - выполняет
противоположное действие - берут данные с экрана или из спрайта и помещают их
в спрайт.
Команда действие
.GTEL поместить блок из экрана в спрайт
.GTOR наложить по OR (или) блок экрана на спрайт
. GTXR наложить по XOR ( искл.нлн) блок экрана в спрайт
.GIND наложить по AND (и) блок экрана в спрайт
.PTBL поместить спрайт в окно экрана
. PTOR наложить по OR спрайт на окно экрана
.PTXR то же по принцепу XOR
.PTND то же по принцепу AND
параметры: COL.ROW.SPN
Например: .SPN=39: .R0W=1: .C0L=1 .PTBL - помещает спрайт номер 3U на экран в
позицию (1.1).
9. Операторы GET и PUT группа 2.
Эти операторы выполняют операции между окнами экрана к окнами спрайтов.
.GWEL - перенос блока с экрана в окно спрайта
.GWOR - наложение по OR
. GWXR - наложение по X0R
.GWND - наложение по AND
. PWEL - перенос блока из окна спрайта на экран
.PWOR - наложение по OR
.PWXR - наложение по X0R
.PWND - наложение по AND
.GWAT - перенос атрибутов блока с экрана в окно спрайта
.PWAT - перенос атрибутов блока из окна спрайта на экран
Параметры: COL,ROW,SCL,SRW,HGT,LEN,SPN
10. Операторы GET и PUT .группа 3.
Эта группа, по-видимогму. наиболее широко применяемая. Содержит команды для
операций между спрайтом н окном в другом спрайте. Эти команды начинаются с
ИРММ и "GM".
.GMEL - перенос спрайта в окно другого спрайта
. GM0R - наложение по принцепу OR
. GMXR - то же по принцепу X0R
.PMND - то же по принцепу AND
.PMBL - перенос окна спрайта в другой спрайт
.PM0R - наложение по принцепу OR
.PMXR - то же по X0R
.PMND - то же по AND
. SMAT - перенос атрибутики спрайта в окно другого спрайта
.Рмат - перенос атрибутики окна спрайта в другой спрайт.
Параметры: SCL.SRW.
SPl-номер первого спрайта (1...255)
SP2-HOMep второго спрайта (I...255)
И. Оператор .MOVE
Используется для эффекта мультиплицированного перемещения спрайтов.
Параметры: COL,ROW,HGT,LEN.SP1.SP2
По команде MOVE берется через PUT спрайт SPI с позиции экрана, заданной ROW
н C0L и помещается спрайт SP2 в позицию C0L+HGT+R0W .
12. Операторы .AT0N и .AT0F .
Эти две команды определяют, надо ли переносить атрибуты спрайтов при выпол-
нении команд PUT и GET .
.AT0N - включение переноса аттрибутов
.AT0F - выключение
Изменне изображения.
.1NVV - инвертирование окна экрана. Параметры для окна: COL.ROW.HGT.LEN .
.INVM - аналогичная над спрайтом с номером SPN
.M1RV - содержимое окна зеркально отображается относительно вертикальной оси,
проходящей через его центр. Параметры: COL, ROW,HGT.LEN
.MIRM -аналогично для спрайта с номером SPN
.MARV - то же для спрайта SPN
.SFNM - поворот спрайта SP2 на 90 градусов по часовой стрелке. После поворота
присваивается номер SP1. Параметры : SP1.SP2 .
.DSPM - увеличение размеров спрайта SP2 в 2 раза.
Прочие команды:
. SF.TV - установка атрибутов INK и PAPER в окне. Параметры : COL. ROW. HGT. LEN.
.SETM - то же,но для спрайта.заданного в SPN. Параметр : SPN .
.CLSV - очистка заданного окна экрана.
.CLSM - то же,но для спрайта. Параметр : SPN .
ADJM - для настройки переменных COL, ROW, HGT, SCL, SRW.SPN т.о.. чтобы от-
дельный спрайт мог быть взят командами PUT или GET 2-ой группы.
Параметры : SPN. COL, ROW, SPN, SRW.
.ADJV - то же,что и в предыдущей команде для окна. Параметры: COL. ROW, HGT.
LEN.
Присваивание.
Эти команды присваивают графическим переменным значения бейсиковских выраже-
.C0L- .ROW® .HGT= .LEN» . SP1« .SP2*
.SPN» .SRW» .SCL= . NPX- .SET-
Дополнительные функии.
?C0L PROW ?HGT ?LEN ?SPN . ?SPI ?SP2 ?SET
?SCL ?SRW ?NPX ?KEF ?SCV ?SCM ?TST ?PEK
Их форма:
LET VAR»?FUN . где:
- YAR - обычная бейсиковская переменная;
- ?FUN - одна из 16-тн функций.
Эти функции не должны быть частью бейсиковских выражений.
- ?C0L - выдает значение переменной C0L .
Аналогично: PROW. ?HGT. ?LEN. ?SPN.
?SP1. ?SP2. ?SCL. ?SRW.
?SET. ?NPX.
?KEF - для определения нажатия клавиш. Переменные ROW н COL для задания по-
луряда и столбца на клавиатуре.
Я д |
|
к л а |
в н |
ш и |
1 |
от |
CAPS SHIFT |
До |
2 |
от |
А до |
G |
|
3 |
от |
Q до |
Т |
|
4 |
от |
1 до |
5 |
|
5 |
от |
0 до |
6 |
|
6 |
от |
Р ДО |
V |
|
7 |
от |
ENTER |
До |
Н |
8 |
от |
SPACE |
До |
В |
PSCV - элементарный блок экрана (8x8), заданный C0L и ROW проверяется на
предмет включения пикселей.
?SCM - проверяются пиксели спрайта,номер которого содержится в SPN.
?TST - отыскивается спрайт.номер которого хранится в SPN.
Примечание: спрайты хранятся в памяти в следующем формате:
Байт1 - номер спрайта.
Байт2 - младший байт адреса следующего спрайта.
БайтЗ - старший байт адреса следующего спрайта.
Байт4 - длина спрайта.
Байт5 - высота спрайта.
8*HGT*LEN * данные о состоянии пикселей.
HGT*LEN « аттрибуты.
Итого: 9*HGT*LEN+5 байтов.
?РЕК (адр.) - Это 16-битная версия оператора РЕЕК.
Например: LET Х«?РЕК (64264) эквивалентно :
LET X«PEEK (64264)+256*PE£K (64265).
Дополнительные команды
POKE X.V - это 16-битная версия обычного бейсиковского РОКЕ. Она помещает
младший байт числа V в X, а старший байт V в Х+1.
Диапазон V - (0...65535). Диапазон X - (0...65534)
Процедуры:
При задании процедуры ее описание содержит список параметров, например:
10 DEF FN А*(X, Y, Z, А&.В&)
здесь параметры X, Y, Z. А&. В& - локальные переменные.
Вызов процедур.
Для выполнения приведенной выше процедуры используется оператор.
.PROC FN А#(3,2,К,"HELLO".Е&)
тогда локальные переменные примут значения :
Х=3 Y=2 Z»K
A&="HELL0" В&-Е&
Процедура должна всегда заканчиваться командой .RETN.
Разрешается применять до 52 процедур ( 26 букв латинскогр, алфавита +26 букв
со знаком & ). ,
Движение спрайтов.
Выполним скроллинг окна на один пиксель, используя функцию ?KBF.
10 INK 6; PARER 0; BRIGHT 1; BORDER 0; CLS
20 .C0L=14; .R0W=10; .SPN-2; .PTEL
30 .SET*5; .C0L*5; .R0W«4
40 .SET*6; .C0L=3; .R0W«5
50 .SEJ-7; .COL^O; .R0W-5
60 .SET-5; LET KB*?KBF; IF KB <>0 THEN ,SET=7; .WL1V
70 .SET-6; LET KB=?KBF; IF KB <>0 THEN .SET-7; .WLIV
80 GO TO 60
Использование PUT
Возьмем спрайт 30 размером 3x3. Сначала очистим данные в спрайте.
.SPN-30; .CLSM
Теперь поместим в егр.центр спрайт 51 (размер 1x1 ): .SP1-5 I; .$Р2=30;
.SCL*1; .SPW=1; .GMBL
Программа для его перемещения с помощью курсорных клавиш ( нажатие их прове-
ряется PKBF ) будет в*г,лядеть так:
10 .AT0F; I NX 5;BRIGHT 1;PAPER 0;BORDER 0;CLS
20 .SET»1;R0W=4; .COL«5
30 . SET=*2; R0W»5; .COL-5
40 .SET«3;ROW=5; .C0L=4
50 .SEF-4;ROW-5; .C0L«3
60 . SET-7; ROW-10; . COL-10; SPN-30
70 .LET x*13; LET V-IO
80 .SET»1;LET KB»?KBF; IF KB О 0 THEN LET X=X-1
90 .SET«2;LET KB*?KBF; IF KB О 0 THEN LET Y-Y+I
100 .SET=3;LET KB=?KBF; IF KB О 0 THEN LET Y=Y-1
110 .SETe4;LET KB»?KBF; IF KB О 0 THEN LET X-X+l
120 IF X>30 THEN LET X=30
130 IF X>-1 THEN LET X=-l
140 IF Y>22 THEN LET Y=22
150 IF Y>-1 THEN LET Y—1
160 .SET-7; .C0L»X; .R0W«V;PTBL
170 GO TO 80
Использование команды .MOVE
После того, как заданы значения C0L и ROW и задано их приращение на каждом
шаге HGT и LEN. Каждое испол ненне команды .MOVE приводит к увеличению C0L
и ROW .
10 INK 0;PAPER 6;BRIGHT 1;BORDER 7;CLS; ATOF
20 FOR N»1 TO 100
30 LET X»INT(FND*32);LET V»I NT(FND22)'
40 PRINT AT X.V;"*"
50 NEXT N
60 LET OR«1;HGT-OR;LET DC=1; .LEN=DC
70 .SP1«50;SP2«50;LET R»10; .ROW»R;LET Ol3;COL-C;.SPN=50; .PTXR
80 .MOVE
90 LET C»?COL;LET R»?ROW
100 IF R«19 OR R»0 THEN LET DR-DR-1; .HGT-DR
110 BEEP 0.01.5
120 GO TO 80
Поме иГе нне спрайта на экран
с повышенной точностью.
Если вам надо переместить спрайт слева направо с шагом по 2 пикселя, а скрол-
линг экрана при этом делать нельзя, то нужно сначала с помощью программы "гене-
ратор спрайтов" создать 4 спрайта; каждый' из которых сдвинут относительно пре-
дыдущего вправо на 2 пикселя. .
Если их пронумеровать от 1 до 4* тЬ» программа.будет выглядеть так:
10 FOR С»0 ТО 31 ! ' ■
20 .COL»C; .-SPN-1; . PTBL; .SPN*2;t .PTBL
30 .SPN-3; .PTBL; .SPN-4; . PTBL м .'• - '
40 NEXT С
Определение столкновений епрайтов.
Для этого служат команды: ?SCV*h' ?SCM - •
?SCV - служит для проверки позиции символа на экране.
?SCM - команда проверяет спрайт</е номером SPN на наличие включенных пикселей.
Н а б о р ы'-п е р е ме н н ы х .
Если вы хотите перемещать '4 окна на эКрЗнё. вы можете задать параметры для
каждого окна в .виде набора переменных/н&йример:-'
.SET-1; .HGT-5; .LEN-5; .ROW-O; C0L»0 '
.SET»2; .HGT=4; .LEN-6; .R0W-0; .COL=5
.SET-3; ":'HGT»e^ .LEN-4; .ROW^O; .C0L=12
.SET-4; .HGT-?$: .LEN-3; .R0W«8;n .COL-18
Теперь ;для toi*o, чтобы выполнить скроллинг для каждого окна достаточно за-
дать: • t 1 J Ч) : . . ' t. f 4 ' '
. SET» l; .,WR}V;;;SET*2; .WL2V;> ;SET*3; . WL8V; .SET-4; .WRIV
З а г p узка и " з а я с ь -про грамм
в ЛАЗЕРА Б Е Й iC J К Е .
Загрузка и запись прямой командой.
Чтобы записать неавтостартугацую программу' напрямую используйте:
- для ленты: SAVE "FILENAME"
- для микродрайва: SAVE * "M";N; '"F IL'ENAME"
Запись автостартующей программы прямой командой
- SAVE "FILENAME" LINE N
- SAVE * "M"; N; "FILENAME" LINE N
Программ^ "LASER BASIC COMPILER"
(компилятор Лазер-бейсика)
Разработка фирмы OASIS SOFTWARE, автор - Крис Меллинг
Введение
Компилятор .язидо Лазер-бейсик предназначен для создания автономной программы
независимо от иятертр-етатора Лазер-бейсика.
Любая программа/.«созданная в расширенном интерпретаторе Лазер-бейсика помес-
тится в компиляторе.'
Расположение файлов на ленте.
A.C0MPC0DE LOAD ""CODE
LOADER LOAD ""
RT CODE LOAD "RT CODE" CODE
B.DEMO LOAD ""
Компиляция
Программу следует записать на ленту, сбросить компьютер н загрузить в компи-
лятор только свою программу без интерпретатора.
Перед загрузкой выполнить: CLEAR 5Й799, загружается компилятор: LOAD ""CODE
или LOAD "COMPCODE" CODE
Начало компиляции - RANDOMIZE USR 59800
При компиляции экран изображает случайную информацию. Это не сбой, все в по-
рядке. После окончании компиляции экран очищается. Появляется сообщение "O.K.".
а также номер последней откомпилированной строки.
Скомпилированный код вытирает исходный текст. Тем не менее компьютер воспри-
нимает его как обычную бейсик-программу.
Выполнение откомпилированной программы
Для выполнения откомпилированной программы необходимо снабдить ее дополни-
тельно пакетом рабочих процедур. RAMTOP следует установить 59799 ( не забывайте
об этом при загрузке откомпилированных модулей ). Пакет рабочих процедур загру-
жается командой:
LOAD "RT CODE" CODE
Если программа имеет файл SPRITES, его следует загрузить точно также, как и
в программе, выполненной на языке Лазер-бейсик.
Инициализация выполнения программы:
RANDOMIZE USR 59800 или GO ТО 1
Компоновка автономной программы.
Программу, написанную на Лазер-бейсике, необходимо соответственно настроить,
чтобы для работы было достаточно нажать "LOAD".
Для этого программу необходимо скомпоновать и снабдить загрузчиком. Он вхо-
дит в набор, имеющийся на исходной ленте. Вот его текст :
10 CLEAR 59799
20 LET SPST-0
30 LOAD "RTCODE" CODE
40 LOAD "SPRITES" CODE SPST
50 LET'T»INT(SPST/256):POKE 62464.SPST-256*T:POKE 62456.T
60 POKE 62466.255: POKE 62467.200
70 POKE 56575.0
80 LOAD " "
Здесь:
строка 10-выделение пространства для пакета рабочих процедур.
Строка 20-установка начала области.размещения файла SPRITES ( смотри описа-
ние генератора спрайтов )
строка 30-загрузка пакета рабочих процедур
строка 40-загрузка файла спрайтов
строка 50-внесение в программу адреса начала области размещения спрайтов.
Строка 60-внесение в программу адреса конца размещения области спрайтов.
Строка 70-внесения конца области размещения знакогенератора спрайтов
строка 80-загрузка текста скомпилированной программы.
Примечание: спрайты в программе не используются, строки 20-70 можно исключить.
Вам остается внести требуемое значение SPST и подготовить набор файлов на
чистой ленте. Помните, что делая SAVE для загрузчика и для*откомпилированной
программы необходимо указывать строку автостарта.
SAVE "LOADER" LINE 10
SAVE "COHPPROG NAME" LINE 1
Ограничение для стандартного бейсика. Нижеперечисленные ограничения были за-
ложены в компилятор на этапе его проектирования.
1. Нельзя использовать вычисляемые выражения в операторах GO ТО. GO SUB, RUN.
RESTORE
2. В операторе DIM допустимы вычисляемые границы, но только такие, которые в
прбцессе компиляции будут установлены в 0.
3. Использование оператора CLEAR не допускается.
4. Команда RUN выполняется также, как и в бейсике. но сброса переменных не
производится.
5. Недопустимы операторы: MERGE.CONTINUE.LIST.LLIST.
6. Командой CONTINUE нельзя запускать сбившуюся программу или программу с
оператором STOP.
7. Команды OPENt и CLOSE* работают только с потоками S.К и Р.
8. Команды LOAD, SAVE и VERIFY являются допустимыми если загружается бейсик-
программа.
Сообщения об о'шибках:
ILLIGAL STATEMENT FOUND - встретился один из недопустимых операторов: CLEAR.
MERGE.LI ST,LLIST.CONTINUE.
PROCEDURE DEFINITION NESTING ERROR - найдено два описания процедуры без проме-
жуточного оператора .RETN. В описаниях процедур вло-
женность не дапускается.
RETN WITHOUT DEF FN# ERROR - найден оператор .RETN без соответствующего описа-
ния процедуры.
PROCEDURE NOT FOUND - обращение к неописанной процедуре. Описание проце-
дуры не обязательно должно предшествовать ее испол-
нению.
PROGRAM NOT COPILED - это сообщение пакета рабочих процедур. При старте
программы ее начало не было идентифицировано как на-
чало откомпилированной программы.
Карта памяти.
Компилятор н пакет управляющих процедур загружается начиная с адреса 59800.
Пакет рабочих процедур занимает всю верхнюю часть памяти. Конец компилятора по
адресу 62586, т.е. его длина 3057 байтов. Следовательно перед загрузкой этих мо-
дулей необходимо выполнить:
, CLEAR 59799
Откомпилированная программа размещается в памяти следующим образом:
программа: переменные: спрайты:
PROG VARS EL 1NE
стек микропроцессора RT CODE
65675 59300 65535
Программа SPRITE GENERATOR
( генератор спрайтов )
Разработка фирмы OASIS SOFTWARE. автор - Пол Ныохем
Вступление
Генератор спрайтов предназначен для создания и редактирования спрайтов.
.Загрузка
Программа загружается LOAD "SPTGEN" или LOAD " Если вы. хотите записать ее
иа ленту, сделайте BREAK, затем GO ТО 999. Обе части -программы будут выгружены
иа леиту. Правда теперь чтобы запустить программу, ее надо перезагрузить.
Чтобы записать программу на микродрайвер:
вместо LOAD " " CODE поставьте
LOAD "М"; 1; "G** CODE,
теперь дайте GO ТО 9998
Начало работы:
После загрузки программы вы получите запрос: Какой запуск? Холодный (COLD) или
теплый (WARM). В 1-ый раз всегда выбирается "С"(COLD), затем дается Y(YES). по-
является рабочий экран.
Терминология :
" Холодный запуск "
Все спрайты имеющиеся в программе вычищаются, системные переменные устанавли-
ваются в исходное положение.
" Теплый запуск "
При таком входе в программу все спрайты сохраняются и системные переменные не
изменяются.
CHR& SQR
Эта аббревиатура используется для обозначения элементарного квадрата н отно-
сится к сетке 8x8, расположенной в левой части экрана. Здесь создаются и редак-
тируются спрайты.
Экран спрайта.
Это область экрана размером 15x15 символов.
Курсор CHR& SQR
Это мигающий курсор, который используется для конструирования и редактирова-
ния изображения находящегося в CHR& SQR.
Курсоры экрана спрайта.
Это два мигающих курсора. Они расположены ниже и правее экрана спрайтов. При-
меняются для задания позиции левого верхнего угла окна с которым идет работа.
Окно экрана спрайтов.
Часть экрана, с которым непосредственно ндет работа - это окно. Его координа-
ты задаются XP0S и YP0S.
Спрайты.
Для записи спрайтов на ленту вы имеете две различных операции:
Операция 1: этот режим предпологает дальнейшее редактирование спрайтов.
Операция 2: этот режим выгружает спрайты готовые к использованию в лазер-бей-
сике.
Для тех. кто не чувствует в себе художественных способностей, мы изготовили
два набора спрайтов на прилагаемой кассете.
SPRITE 1А - набор из 50 спрайтов различных аркодных персонажей.
SPRITE 2А - это файл спрайтов входящих в демонстрационную программу.
В информационном прямоугольнике изображается следующая информация:
MEMORY LEFT 7488 XPOS 1 YPOS 1
SPRITE 60218 SPRITE HEIGHT-2
SPST 60218 SPRITE LENGHT-2
SPND 65279 SPRITE NUMEER-l
< текстовая строка > '
MEMORY LEFT ~ обьем памяти оставшийся для размещения спрайтов
XPOS YP0S - текущее положение курсоров экрана X и Y.
SPRITE - адрес памяти, где заданный в^мн спрайт. > ч .
SPST - начало области спрайтов в памяти компьютера.
SPND - указывает на конец области спрайтов.
SPRITE HEIGHT - обозначает высоту заданного спрайта.
SPRITE LENGHT х обозначает длину заданного спрайта' ^». . < <
SPRITE NUMBER - номер текущего спрайта
Стекстовая строка> - выполняемая в данный момент команда.
А - переключение атрибутов ( аналог .ATOF и .AT0N) 1-вклг tJ-выкл.•
В - задает переменную BRIGHT. 1-Вкл. 0-Выкл. •"
С - задает переменную PAPER. Клавиши от 0 до 7 - цвет.
SIMBOL SHIFT+C - создание больших спрайтов.
D - прямой ввод данных. Принимает 8 байтов данных по одному байту за один раз
с последующим ENTER. - •
Е ~ задействует функции экрана, имеет 3 операции:
1. Инверсия ( аналогична INVV ). По этой операции все выключенные пиксели
включаются, а включенные выключаются. Действует на все окно, размеры которого
заданы "SPRITE HEIGHT" и "SPRITE LENGHT". ... «.
2. Зеркальное отображение ( аналогична.МIRV ).1 Эта операция "переворачивает"
относительно вертикальной оси окно, заданное теми же переменными, что и в опера-
ции 1.
3. Зеркальное отображение атрибутов ( аналогична .MARY ). Эта операция "пере-
ворачивает" относительно вертикальной оси атрибуты в окне, заданном теми же пе-
ременными. что и в операции 1.
F - задействует режим FLASH ( мигание ) окна. Обеспечивает мигание окна экрана,
заданного переменными ( SPRITE HEIGHT ) и ( SPRITE LENGHT ).
SYMBOL SHIFT+l - отформатировать картридж мнкродрайвера. Картридж подготавли-
вается к записи спрайтов. Устанавливается 5 пустых спрайтов от 1 до 5.
G - занесение спрайта с экрана в память. По этой команде берется спрайт, разме-
ры которого хранятся в "SPRITE NUMVER". снимается с окна, заданного позициями
курсоров экрана спрайтов и отправляется в память компьютера.
Н - ввод высоты спрайта "SPRITE HEIGHT" ( аналогична .HGT ) допускается высота
от 1 до 15 символов.
SYMBOL SHIFT+T - скроллинг окна влево на 1 пиксель.
U - берет параметры атрибутов символа из экрана спрайтов с позиции, отмеченной
курсорами и помещает их в 4 переменных атрибутов.
SYMVOL SHIFT+U -скроллинг окна вверх.
V - включение переменной FLASH 1-вкл. 0-выкл.
W - включение функции-стирания спрайтов "WIPE SPRITE" ( аналогично .DSPR ).
X - задает переменную INK. Клавиши 0-7 цвет.
Y - дает положительный ответ "да" при запросе "Y/N".
SYMBOL SHIFT+Y - скроллинг окна вниз на 1 пиксель.
SPACE - дает возможность поместить спрайт небольших размеров внутрь второго,
большего спрайта в позицию, заданную переменными ROW и C0L второго спрайта.
Здесь существует четыре операции:
1. GETBLS - меньший спрайт помещается в большой.
2. GETORS - накладывается no "OR" меньший спрайт на больший.
3. GETXRS - то же, но по XOR.
4. GETND - то же. но по AND.
5,6,7,8 - перемещение курсора с CHR& SQR в соответств>ющих направлениях.
9. - включает CHR& SQR в выбранной позиции.
0. - выключает CHR& SQR в выбранной позиции.
SYMVOL SHIFT+5,6,7.8 - управление перемещениями курсоров на экране спрайтов.
Резюме :
Итак,порядок создания спрайтов в генераторе спрайтов такой:
1. Загрузить генератор спрайтов н выполнить холодный запуск.
2. Установить клавишей "А" флаг атрибутов в 1.
3. Установить цвета INK и PAPER. '
4. Создать спрайт, используя CHR& SQR или прямой ввод данных.
5. Увеличить размеры окна до размеров своего спрайта.
6. Установить курсоры экрана спрайтов в левый верхний «угол вашего слрата.
7. Высветить окно клавишей "F".
8. Загрузите спрайт в память клавишей "G".
9. Проверте. правильно ли прошла операция следующим образом: переведите курсор
в свободную часть экрана спрайтов н поместите туда спрайт клавишей "Р".
10. Выполните другие необходимые операции или создайте другие спрайты.
11. Выгрузите спрайты из ленту в формате операции 1 с тем, чтобы они могли быть
загружены впоследствии в генератор спрайтов для доработки или редактирования.
12. Выгрузите спрайты на ленту в форме операции 2 для дальнейшего их использо-
вания в Программе Лазер-бейсик.
13. Очистите память компьютера через RANDOMIZE USR 0.
14. Загрузите Лазер-бейсик.
' 15. Загрузите спрайты, используя операцию 2 главного меню. Загрузчик запросит
от вас "SPRITE START ADRESS" ( адрес начала области спрайтов ). который вы за-
помнили, когда выполняли пункт 12.