Диалекты бейсика для ZX Spectrum 1992 г.

Реклама и обьявления.


Выпуск технической, научно-популярной и специальной литературы,

изготовление рекламной полиграфической продукции

Издательский отдел фирмы

• принимает заказы на выполнение всех видов изда-тельско-полиграфических работ;

• производит подписку на книгу Н. Родионова

«Адаптация программ к системе TR-DOS. (Советы начинающему хакеру)» (7 частей)

Книга адресована тем, кто хочет проникнуть в тайны построения защищенных загрузчиков программ- Она может быть также полезна в качестве практического пособия для начинающих программировать на ассемблере. Объем - 48 стр. Тираж 10 ООО экз. Цена подписки — 50 руб. Срой выхода книги - IV кв. 1992 г.

• готовит к изданию книгу А. Ларченко

«Дисковые операционные системы для ZX Spectrum»

Книга содержит обзор дисковых операционных систем для ZX Spectrum (CP/Mf Микро ДОС, +3DOS, isDOS и др.) и подробное описание системы TR-DOS: от начальных сведений до профессиональных тонкостей.

Объем - 160 стр. Срок выхода книги - 1 кв. 1993 г.

• осуществляет оптовую и мелкооптовую продажу книги «Диалекты Бейсика для ZX Spectrum» и других изданий фирмы;

• размещает рекламу в изданиях фирмы;

• приобретает фирменные руководства, книги и журналы, посвященные ZX Spectrum;

• принимает для публикации оригинальные статьи о ZX Spectrum;

• приглашает на работу журналистов и редакционных работников, знакомых с ZX Spectrum.

Для оформления заказа на книги и программы

необходимо перевести по почте (для частных лиц) или через банк (для организаций) на расчетный счет фирмы «Питер» соответствующую сумму. Копия платежного документа с указанием перечня заказываемых товаров отправляется в адрес фирмы. Не забудьте сообщить Ваш обратный адрес.

Цены приведены без стоимости доставки. Почтовые расходы оплачиваются заказчиком при получении бандероли. В случае изменения цен доплата производится также при получении бандероли.

Фирма «ПИТЕР»

Расчетный счет для иногородних платежей:

к/с 41000161499 р/с 49100609294 в банке ЦРКУ ГУ ЦБ России МФО 161002

Расчетный счет для платежей из С.-Петербурга:

р/с 49100609294 в Парнасском отд. АО «Банк Санкт-Петербург» С.-Петербурга, МФО 171337

Адрес: 196244, С.-Петербург, а/я 21

Телефон/факс: (812)-235-3749 E-mail 2:5030/25 @ fidonet.org

По вопросам приобретения литературы можно также обращаться к нашим региональным диллерам:

г. Томск, 634045, ул. 19-й Гвардейской дивизии, 13, Фирма «Старт Ltd.», тел. 44-44-93, 44-80-78

г. Смоленск, 214018, Киевский пер. 16,

Коммерческий центр «Апекс», тел. 6-25-19

Украина, г. Херсон, 325000, ул. Суворова, 3,

Учебно-научное объединение «Дисплей», тел. 4-01-52

Украина, г. Луцк, 263026, а/я 94, Фирма «Скиф», тел. 5-99-12

Беларусь, г. Минск, 220005, а/я 95,

НПК «Протон-Запад», тел. 63-52-72, 33-13-11

ОТКРЫТАЯ МНОГОКАТАЛОГОВАЯ ДИСКОВАЯ ОПЕРАЦИОННАЯ СИСТЕМА

isDOSi.o

ISKRfl

SOFT

Sonfcl - Peters bUTQ

Операционная система isDOS устанавливается на все типы компьютеров, совместимых с ZX Spectrum и согласуется с внешними устройствами такими, как электронный диск, дисководы 5.25 и 3.5 дюйма, винчестер, модем и локальная сеть.

Оконный интерфейс, контекстно-зависимый встроенный HELP, работа с командными файлами, системная дата, маска, собственное меню в каждом каталоге и многое другое — понравятся самому требовательному пользователю.

Многооконный текстовый редактор, встроенный в ОС isDOS, работает с файлами в формате Multi-Edit и Lexicon, в нескольких режимах отображения с длиной строки в 252 символа. Размер обрабатываемого текста ограничен только емкостью дискет. Печать текстов возможна различными шрифтами, с разбивкой на страницы и колонки, с автоматической нумерацией. Возможна раздельная печать четных и нечетных страниц, печать графических полутоновых изображений в произвольном месте листа.

ОС isDOS предоставляет возможность создания динамических рекламных текстовых заставок.

Под isDOS созданы различные АРМы со структурой данных в формате DBASE.

ОС isDOS значительно расширяет возможности использования компьютеров типа ZX Spectrum в научной деятельности, в сфере бизнеса и управления, для создания прикладных и коммерческих программных продуктов.

ОС isDOS ориентирована на пользователя, не обладающего навыками программирования, однако не оставит равнодушным и профессионального программиста.

Фирма «IskraSOFT» при разработке isDOS ориентировалась на стиль и идеологию операционной системы MS-DOS, устанавливаемой на компьютерах типа IBM PC. Такой подход имеет неоспоримое преимущество — пользователь, работающий с isDOS на ZX Spectrum при переходе на IBM PC попадает в знакомую, привычную ему среду.

ОС isDOS — новая жизнь ZX Spectrum!

IskraSOFT Publicity Division 1992 194100, Санкт-Петербург, а/я 34 (8121-245-18-97

разработка и производство ZX Spectrum-coMecTHMbix компьютеров и программного обеспечения

Фирма предлагает частным лицам и организациям сотрудничество по распространению и обслуживанию

учебных компьютерных комплексов на базе ZX Spectrum

Компьютерный комплекс включает:

• рабочее место преподавателя с двумя встроенными дисководами, цветным монитором, принтером, кассетным магнитофоном и джойстиком;

• места учеников (до 16) с цветными мониторами и джойстиками;

• дискеты с программами и техническую документацию.

Компьютеры объединены в многофункциональную локальную сеть (программная поддержка Н. Родионова).

Помимо системного и игрового программного обеспечения с комплексами поставляются оригинальные учебные программы по информатике, физике, математике, астрономии, ботанике и другим школьным предметам.

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

Фирма «Питер» доставит комплексы в любой регион СНГ, сдаст заказчику «под ключ», обучит персонал, обеспечит гарантийное и послегарантийное обслуживание.

• реализует ZX Spectrum-совместимые компьютеры:

русифицированная клавиатура (QWERTY, ЙЦУКЕН), цветной (монохромный) монитор, один или два дисковода, принтер, набор системных и игровых программ на дискетах.

• продает учебные программы для ZX Spectrum

Сборник I Для младших школьников (1-5 класс): арифметика (3 программы, в том числе «Таблица умножения»), геометрия (5 программ), русский язык (4 программы, в том числе «Азбука», «Приставки и суффиксы»), английский алфавит, ботаника («Строение цветка»), обучающие игры («Правила дорожного движения», «Клавиатура ZX Spectrum») и др.

Сборник 2. Для старших школьников (6-11 класс): «Знакомство с ZX Spectrum», работа с клавиатурой (5 программ), «Операторы Бейсика», астрономия (2 программы), физика (13 программ, в том числе «Кинематика», «Динамика», «Свободное падение тел», «Движение тел под углом к горизонту», «Тепловые явления», «Цепи переменного тока», «Транзистор») и др.

Цена кассеты с учебными программами — 690 руб., дискеты — 630 руб.

Программы выполнены на высоком профессиональном уровне с использованием всех возможностей ZX Spectrum: цветной графики, мультипликации, звуковых эффектов.

• предлагает системные программы, описанные в книге «Диалекты Бейсика для ZX Spectrum».

Цена кассеты с программами — 300 руб., дискеты — 200 руб.

• распространяет дискеты с программами, разработанными или адаптированными Н. Родионовым и А. Ларченко (DCU 2.31f Disk-Doctor, Pcopier Plus, MOA-Service, TLW2M и др.).

Цена дискеты с комплектом описаний — 350 руб.

• продает монохромные мониторы «Электроника МС6105».

КАКОЕ ВПЕЧАТЛЕНИЕ ОСТАВИЛА У ВАС КНИГА

«Диалекты Бейсика для ZX Spectrum»

f

Точность изложенных сведений

(1...5)

Новизна информации

(1...5)

Стиль изложения

(1...5)

Удобство в пользовании

(1...5)

Оформление

(1...5)

Общая оценка

V

(I...5)

Как бы Вы оценили каждую главу в

отдельности

Spectrum-Бейсик

(1-.5)

1 1 n

Компиляторы Spectrum-Бейсика

(1...5)

PRO-DOS

(1-5)

LJ

Laser Basic

(1...5I

1 1

MegaBasic

(1-5)

1 1

Beta Basic

(1-5)

1 1

Бейсик 128 V ........................-........

(1-5)

1 1

(отрежьте и приклейте на конверт

196244, Санкт-Петербург, _а/я 21_

Фирма «Питер»

Какими диалектами Бейсика Вы пользуетесь чаще всего

Описание каких программ и аппаратных средств для ZX Spectrum Вы посоветуете включить в наши следующие издания_

Хотите ли Вы стать нашим региональным распространителем литературы по ZX Spectrum_

Ваш возраст, профессия_

Сколько лет работаете с ZX Spectrum_

Ваше имя, адрес, телефон_

Если у Вас есть предложения и пожелания, можете изложить их_

Большое спасибо всем, кто прислал свои отзывы на книгу «ZX Spectrum для пользователей и программистов»

1  Цифры 0:1 означают первый в нулевой строке

2  Управление курсором, вызов на редактирование строки программы и т. д.

3 SQR, EXP, LNf SIN, COS, TAN, ASN, ACS, ATN

Функция в программировании — это специальная программа, преобразующая по заданному правилу некое исходное значение, называемое аргументом, в другое значение, называемое результатом. Принято говорить: «Функция возвращает результат».

Наиболее привычными и понятными функциями являются математические. Бейсик ZX Spectrum предоставляет в наше пользование набор самых необходимых из них:

SQR - квадратный корень,

ЕХР - экспонента,

LN — натуральный логарифм,

SIN - синус,

COS — косинус,

TAN — тангенс,

ASN - арксинус,

ACS - арккосинус,

ATN - арктангенс.

После каждого из перечисленных ключевых слов должен стоять аргумент функции — число либо выражение, которое может включать в себя в том числе и функции. Выражения необходимо заклю-

4  Это не совсем точно: строка может содержать символы, которые не выводятся на экран.

5 Операторам, занимающимся графическими построениями, недоступны две строки служебного экрана.

6  Если Вы решили отрабатывать все примеры на компьютере и хотите сохранить их

7 на магнитной ленте, то загляните в раздел «Работа с магнитофоном».

8  В примерах программ, приведенных в этой книге, используется текст на русском языке. Делается это для наглядности, хотя не на всех компьютерах есть возможность его набрать. При вводе программ русские слова можно заменить английскими, а комментарии просто опустить.

9  15 7Л2

Первый попавшийся по тексту оператор READ заносит в переменные порцию данных из первого встреченного в программе оператора DATA. Следующие операторы READ продолжают последовательное считывание. То есть, повторив предыдущую строку, мы получим уже другой результат:

READ Т, Н: PRINT Т;" Н 1.15 8.84

Следует особо следить за тем, чтобы количество считываний не превышало количество перечисленных за операторами DATA данных. Иначе на экране появится сообщение об ошибке: End of data.

10 SAVE...SCREEN$, LOAD...SCREEN$, VERIFY...SCREEN$

Сохранить на магнитной ленте можно и картинку, изображенную на экране, записав ее на ленту с помощью оператора

SAVE "PICTURE" SCREENS

11  Что такое адрес в памяти, см. на стр. 60.

12  Напомним, байтом называется восьмиразрядное двоичное число.

13 

Сравнив числа 3 и 6, компьютер сделал заключение, что выражение в скобках ложно и подставил вместо него ноль.

14  Функция USR используется также для вызова подпрограмм в машинных кодах

(см. «Справочник»)

15  С ним мы более подробно познакомимся позже.

16 Символы с кодами от 0 до 31 (см. табл. 2), вообще говоря, символами не являются: у них нет собственного, отображаемого на экране начертания. Это так называемые управляющие символы.

Управляют они, например, выводом на экран компьютера. Так, попытка вывести на экран управляющий символ с кодом 6 приведет к результату, аналогичному действию запятой, поставленной между данными после PRINT:

PRINT "KU"; CHR$ 6; "KU" KU KU

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

Символы CHR$ 22 и CHR$ 23 в операторе PRINT выполняют те же функции, что и AT и TAB. После этих управляющих символов указывается по два параметра (второй параметр для CHR$ 23 игнорируется). Оператор

PRINT CHR$ 22+CHR$ 1+CHR$ 10; 5; CHR$ 23+CHR$ 11+ CHR$ 0; 5 аналогичен оператору

PRINT AT 1, 10; 5; TAB 11; 5

Управляющий символ CHR$ 8 называется «забой» (backspace). Он переводит текущую позицию вывода на одно знакоместо назад. То есть символ, следующий за «забоем», оператор PRINT выводит на место последнего, напечатанного до него:

10 PRINT "ABA"; CHR$ 8; "С"

RUN

ABC

Символы с кодами 16...21 управляют атрибутами экрана и могут использоваться в операторе PRINT вместо соответствующих ключевых слов:

INK - CHR$ 16 PAPER - CHR$ 17 FLASH - CHR$ 18 BRIGHT - CHR$ 19 INVERSE - CHR$ 20 OVER - CHR$ 21

17 Системный счетчик — внутренние часы ZX Spectrum. Под него в памяти компьютера отведено три ячейки памяти с адресами

18  В таком виде мы будем приводить адреса системных переменных, занимающих

более одной ячейки. В данном случае это адреса 23672, 23673, 23674.

19  Это относится и к другим операторам, приостанавливающим выполнение программы (LOAD, SAVE, PAUSE).

20  Под каждый символ отводится 8 ячеек памяти.

21  Более подробно о подключении альтернативных шрифтов см. (1].

22  При этом, правда, затирается область символов, определяемых пользователем. 3 За к. № 192 65

23  Не используется в операторе BORDER.

24  Только в операторах INK и PAPER.

25 По сути, ATTR возвращает байт, в котором три младших разряда (0...2) определяют код цвета тона, следующие три (3...5) — цвета фона, два остальных (б и 7), соответственно, — BRIGHT и FLASH. Число (0...255), возвращаемое функцией, получается при переводе значения байта из двоичного представления в десятичное: 2°*<|NK> + 23* < PAPER > + 26 * < BRIGHT > + 2 * < FLASH > .

26  Фирма Thrclfall & Hodgson, 1982 г. Файлы: COMPILER (тип BASIC, длина 875 байт)

и COMPILER (тип CODE, длина 3600 байт, адрес загрузки 59990).

27  Так ведут себя после загрузки многие компиляторы Spectrum-Бейсика.

28  Это происходит потому, что старший бит двухбайтового числа трактуется не как значащий разряд, а хак знак: 0 — плюс, 1 — минус.

29  Фирма ThrelfaU & Hodgson, 1983 г. Файлы: MCODER2 (тип BASIC, длина 870 байт)

и MCODER2 (тип CODE, длина 5375 байт, адрес загрузки 59990).

30  Может использоваться только в качестве условия в операторе IF...THEN.

31  Автор Martin Lewis, фирма Softek, 1983 г. Файлы: SOFTEK IS (тип BASIC, длина 620 байт) и COMET (CODE, длина 6000 байт, адрес загрузки 59300).

32  Автор Martin Lewis, фирма Softek, 1983 г. Файлы версии 1.1: COMPILER (тип BASIC, длина 707 байт), MACHINE CODE (тип CODE, длина 6050 байт, адрес загрузки 59300). Файлы версии 1.7: FP48k v.1.7 (тип BASIC, длина 36 байт), < пустое имя > (тип CODE, длина 1000 байт, адрес загрузки 23500), m/CODE (тип CODE, длина 6100 байт, адрес загрузки 59300).

33 Авторы Jerzy Borkowski и Wojciech Skaba, 1986 г. Файлы первого варианта: TOBOS FP (тип BASIC, длина 258 байт), FLOATING POINT (тип CODE, длина 12268 байт, адрес загрузки 53100). Файлы второго варианта (заставка с бегущей строкой). TOBOS FP (тип BASIC, длина 2648 байт), файл без заголовка (тип CODE, длина 12268 байт, адрес загрузки 53100).

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

35  Автор Hans-Joachim Berndt, 1985 г. Файлы: PRODOSDEMO (тип BASIC, длина 7811 байт), PRO-DOS1.1 (тип CODE, длина 3787 байт, адрес загрузки 60000).

36  Обратите внимание, что демонстрационная программа производит

модификацию некоторых символов, определяемых пользователем (UDG).

37  Подробно о потоках и каналах смотрите в [1].

38 Наличие пробелов улучшает читаемость текстов программ, а отсутствие — экономит память.

39 FBOX х 1, у1, х2, у2

Формат этого оператора совпадает с форматом оператора *ВОХ. Фигуры могут быть залиты не только сплошным фоном, но и неким периодически повторяющимся рисунком — текстурой. При работе с *FBOX текстура задается оператором *GPAT, рассмотренным в предыдущем разделе. Для примера выполним программу:

30 +GPAT BIN 10000000: REM Шаблон линии 40 *FBOX 30, 30, 130, 100: REM Прямоугольник 50 PAUSE 0

Текстура для закраски прямоугольника формируется из вплотную прилегающих друг к другу горизонтальных линий. Линии составляются из отрезков длиной в 8 пикселей (период трансляции равен 8), структура которых задается оператором *GPAT. Если в пределах ширины прямоугольника помещается дробное число таких отрезков, то следующая линия будет начинаться с того места отрезка, где закончилась предыдущая. Это приводит к тому, что при неизменном параметре оператора *GPAT (то есть при одинаковом виде линий) будут получаться различные текстуры для прямоугольников с различными остатками от деления их ширины на

40  Автор этих строк ввел в PRO-DOS новый оператор ♦CHFNT, который позволяет переключать все шрифты (стандартный, узкий и графические) с латинского набора на русский и обратно.

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

42 PRO-DOS располагает еще одним оператором — *WPOKE. Он меняет содержимое внутренних системных переменных PRO-DOS, описывающих текущие параметры окон. Выполнение

♦WPOKE n, m

эквивалентно действию оператора

РОКЕ 60321 +ABS(n), ABS(m) — где пит — целые числа в диапазоне -255...255.

43  Автор Kevin Hambleton, фирма Oasis Software, версия 1.3, спецификация файлов приведена в Приложении 5.

44  Впрочем, этот недостаток легко устраняется изменением системной переменной UDG (23675/76), см. стр. 64.

45  Из этого правила выпадают только несколько операторов.

46  Микродрайв — накопитель на кольцевой магнитной ленте.

47  Подробнее см. в подразделе «Изменение размеров области спрайт-файла» и разделе «Создание спрайтов».

48  Во всех примерах данного описания предполагается, что загружен именно этот спрайт-файл.

49 После ознакомления с принципами наложения изображения можно рассмотреть и способы перемещения спрайтов с сохранением фона.

Например, можно предложить следующую последовательность действий:

1. поместить спрайт на экран оператором .PTXR. Фон при этом сохранится, но сам спрайт немного пострадает: в точках пересечения фона и спрайта образуются «прорехи» (во многих случаях это допустимо);

2. через требуемое время стереть спрайт, вторично выполнив оператор .PTXR с теми же значениями графических переменных. Фон полностью восстановится;

3. изменить переменные .ROW и .COL и поместить спрайт в новое место опять же оператором .PTXR. И так далее.

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

.MOVE работает следующим образом: накладывает по принципу XOR спрайт с номером, заданным графической переменной .SP2, на экран, соответственно, переменным .ROW и .COL. Потом, изменив значения переменных .ROW и .COL на величины смещения, заданные соответственно переменными .HGT и .LEN, накладывает по тому же принципу XOR на новое место спрайт с номе-

50 Операторы преобразования спрайтов по своему действию аналогичны инструкциям преобразования окна экрана (см. стр. 160), но производят изменения не на экране, а в памяти. Для того чтобы увидеть действие этих операторов, нужно после их выполнения поместить измененный спрайт на экран, например, оператором .PTBL.

Операторы этой группы можно распознать по букве М на конце ключевого слова (от англ. Memory— память).

Не извлекая спрайт из памяти, его можно инвертировать (.INVM), зеркально отображать относительно вертикальной оси симметрии (.MIRM), а также зеркально отображать атрибуты спрайта (.MARM). Предварительно необходимо задать номер преобразуемого спрайта — присвоить соответствующее значение переменной .SPN

Во всех знакоместах спрайта можно установить текущие атрибуты (.SETM). А можно и полностью очистить спрайт оператором .CLSM.

Операторы, производящие скроллинг спрайтов в памяти, аналогичны операторам скроллинга окон экрана. Например, .WR1M производит циклический скроллинг спрайта в памяти вправо на 1 пиксель Нужно только задать номер спрайта в переменной .SPN. ( жераторы скроллинга спрайтов можно найти в Приложении 1.

51  В данном случае изображение перемещается из спрайта .SP1 в спрайт .SP2. Но не для всех групп операторов это так. Чтобы предупредить возможную путаницу при использовании переменных .SP1 и .SP2, в Приложении 2 дана поясняющая таблица (табл. 13).

52  Есть одна особенность в работе оператора .PMXR, происходящая, видимо, из-за ошибки в Laser Basic. После его использования в программе оператор .PTOR первый раз интерпретируется как .PTXR. Обойти эту ошибку можно, например, дважды выполнив .PTOR.

53  Правда, пример дает лишь принципиальное представление о данном способе, поскольку у выбранного спрайта, как и у всех других в спрайт-файле SPRITE2B, отсутствует ободок.

54 Для того чтобы было понятно дальнейшее изложение, скажем несколько слов о структуре спрайт-файла и его расположении в памяти (см. также распределение памяти интерпретатора Laser Basic: табл. 10 на стр. 178). Интерпретатор Laser Basic определяет, в каком месте находится спрайт-файл, по содержимому специальных ячеек памяти. Ячейки 62464/65 содержат адрес нижней границы спрайт-файла (в дальнейшем мы будем называть его START), а 62466/67 — адрес верхней (END). Следовательно, адреса границ спрайт-файла цожно определить так:

LET START=PEEK 62464+256*РЕЕК 62465: PRINT START

LET END=PEEK 62466-4-256*PEEK 62467: PRINT END

Верхняя граница (END) обычно выбирается равной 56575 (и лучше всего ее не менять). В ячейке с адресом END всегда должен быть записан ноль — метка конца спрайт-файла. В противном случае могут возникнуть неприятные сюрпризы. Нижняя граница (START) — плавающая, она зависит от размера спрайт-файла.

Объем памяти (в байтах), занимаемый одним спрайтом, рассчитывается по формуле:

9X.HGTX.LEN+5

- где .HGT и .LEN — высота и ширина спрайта в знакоместах.

Формат хранения спрайта в спрайт-файле приведен в табл Ь (адреса увеличиваются снизу вверх!

55  Как видно, формат .РОКЕ не стандартен для Laser Basic — его параметры передаются не через графические переменные, а непосредственно вслед за ключевым словом.

56  Пошаговый режим означает, что после выполнения каждого оператора ожидается нажатие любой клавиши для продолжения трассировки.

57 Отметим, что выполнение процедур, как и функций, заданных пользователем, происходит тем быстрее, чем ближе к началу программы расположено их определение.

58 Программы, написанные в интерпретаторе Laser Basic, могут быть загружены и записаны как в непосредственном режиме, так и из программы. Причем, если запись производилась из программы, то и загрузка должна происходить из программы. И, наоборот, программы, записанные в непосредственном режиме, могут быть загружены только с клавиатуры.

Запись программ без автостарта осуществляется операторами:

SAVE "NAME" (для ленты),

RANDOMIZE USR 15619: REM: SAVE "NAME" (для диска).

Запись программы с автостартом со строки N осуществляется операторами:

SAVE "NAME" LINE N (для ленты),

RANDOMIZE USR 15619: REM: SAVE "NAME" LINE N (для диска).

59  Программа Spriter написана на языке Laser Basic, и сама по себе может служить примером использования некоторых его возможностей.

60  Текст программы припелен в Приложении Г

61 Оба рассмотренных выше генератора спрайтов накладывают ограничения на максимальный размер создаваемого спрайта. Для программы Spriter этот предел — 32x22 знакоместа, для SPTGEN и того меньше — 15x15. Однако спрайт любых размеров, в том числе и спрайт длиной в несколько экранов, можно легко добавить в готовый спрайт-файл, не пользуясь генератором спрайтов. Для этого необходимо всего лишь выполнить несколько операторов Laser Basic.

Сначала рассмотрим алгоритм включения в готовый спрайт-файл нового спрайта с размером, меньшим или равным экрану:

1. создать изображение спрайта в виде экранного файла (в графическом редакторе) и сохранить его на диске или ленте. Для удобства изображение лучше размещать в левом верхнем углу экрана (чтобы не запоминать его положения);

2. загрузить интерпретатор Laser Basic;

3. выполнить CLEAR 25000;

4. загрузить готовый спрайт-файл с адреса, равного его нижней границе (назовем ее STARTOLD);

5. записать в ячейки 62464 и 62465 адрес нижней границы STARTOLD;

62  Адрес RAMTOP лучше выбрать на 1 меньше нижней границы спрайт-файла (START).

После запуска откомпилированной программы ее невозможно остановить нажатием клавиш CS/Space (Break). Если же происходит сбой в работе программы, то она прерывается с выдачей одного из стандартных сообщений об ошибке, но, к сожалению, без указания места возникновения ошибки.

63  Внимание' Недопустимо изменять нумерацию строк

64  Предлагаем jtot p.i i u i л чиг;псмсй. ш;»кош с npoi р.тмиров.шием w.i .ic-семГ) чсрс

65 * * В П ОМ при ЧО/КСИММ <1ДрССИ ЯЧССК II Л МЯТ >1 при кед СИ 1.1 И III I 1ЫДЦ.1 г ерич ном ни до

66  I.с и» ис но 1» }устся it кутим и,loop, то его номер мо.кно ь smi1. и /чеики (>п2

67  Приводи I ся спецификация фирменно! о iukci а И ,ipyi и вере ия moi у i oi чичать-ся имена и л чины беи си к-файлов

68  О прерываниях читайте в [1].

69  Неработоспособными окажутся только те программы, внутри которых (скажем, под оператором REM) расположены подпрограммы в машинных кодах с абсолютной адресацией, так как начало бейсик-программ MegaBasic устанавливает на 11 байт выше, чем это делает стандартный интерпретатор. Кроме того, в бейсик-программе не должно быть обращений к подпрограммам в кодах, расположенным выше адреса 45000 (исключая область UDG).

70  Это связано с возможностью MegaBasic выводить символы размером 4x8 точек. 203

71  Система построения числовых значений атрибутов в MegaBasic не отличается от принятой в Spectrum-Бейсике (см. crpt 55 ).

72  Рекомендуем задавать значения атрибутов в двоичной форме — это более наглядно.

73  При необходимости нетрудно написать и специальную программу для формирования спрайтов, аналогичную программе Spriter, приведенной для Laser Basic.

74  В программе использован оператор MegaBasic DOKE — двухбайтовый аналог РОКЕ (см стр 2 26}

75  Как ни странно, но в операторе SOUND не задается начальная частота звука, что, впрочем, компенсируется очень быстрым развитием звукового эффекта.

76  @ — ASCII-символх кодом 64.

77  Попытка вызова процедурыв. виде прямой команды чревата неприятностями.

78  Монитором называется программа, предоставляющая возможность просмотреть содержание ячеек памяти и регистров процессора, записать в них новые значения, отладить программу в машинных кодах и пр.

Адреса

и содержимое ячеек

Более подробно разобраться с монитором-отладчиком поможет книга [1], где описан монитор MONS4.

79  Есть, правда» еще одна версия — 4.0 (1988 г.), предназначенная для ZX Spectrum 128.

80  Файлы: Beta 3.1 (тип BASIC, длина 945 байт) и cBeta 3.1 (тип CODE, длина 18577 байт, адрес загрузки 46960).

81  Соответствие клавиш ZX Spectrum операторам Beta Basic приведено в Приложении 1.

82  Если, находясь в Beta Basic, выполнить оператор LIST 0, то можно увидеть, что строка с номером 0 состоит из операторов DEF FN — в ней и определяются все новые функции Beta Basic.

83  Полный список встроенных функций Beta Basic приведен в Приложении 2.

84  Для экономии места мы все же будем приводить листинги программ в привычном

виде — разделяя операторы двоеточиями.

85  При этом в текст строки помещается управляющий символ CHR$ 15, который Beta Basic трактует как пробел (CHR$ 32) плюс возврат каретки (CHR$ 13).

86  Для большей наглядности мы будем указывать в формате операторов и функций Beta Basic «словесное» название параметров. Однако вполне естественно, что, например, параметром < начальный номер > может быть любое целочисленное значение (переменная, выражение), которое попадает в разрешенный диапазон (в данном случае — 0...9999); под <строкой символов> подразумевается символьное значение (символьная константа, переменная, выражение); под <числом > — числовое значение и т. д.

87  Напомним, что в Beta Basic двоеточия не высвечиваются.

88  Beta Basic позволяет при перенумерации присваивать строкам номера в интервале 1...16383. При этом все переходы на строки с номерами, превышающими 9999, осуществляются корректно. Вызов на редактирование таких строк возможен всеми доступными в Beta Basic способами.

89  При открытии очередного окна RAMTOP опускается на 15 байтов. В освободившемся пространстве создается область системных переменных, в которой хранятся параметры окна.

90  Нулевое окно отличается еще и тем» что не претендует на участок памяти над RAMTOP.

91  Фактически команда WINDOW 0 равносильна установке CSIZE 0, включающей стандартный драйвер быстрого вывода на экран, который игнорирует все оконные установки. Этот режим остался в наследство от предыдущих версий интерпретатора (3.0 и ниже): он устанавливался в них при старте Beta Basic.

92  Окна, в которых осуществляется скроллинг экранного изображения, не следует путать с текстовыми окнами, в которые направляется вывод символьной информации.

93  Стоящий следом за ON список операторов может содержать также обращения к процедурам, вызываемым по именам (их мы рассмотрим несколько позже) В этом случае он будет выступать уже в следующей «весовой категории» операторов управления программой после GO SUB ON.

94  В нашем примере это оператор NEXT К.

95  Конструкция READ LINE AS и функция 1ТЕМ() работают и с обычными DATA-списками. К сожалению, при этом 1ТЕМ() не в состоянии определить тип первого элемента очередного DATA-списка. Следовательно, и после выполнения оператора RESTORE она тоже вернет нулевое значение. Впрочем, этот недостаток в работе функции несложно обойти. Достаточно поместить в самое начало каждого DATA-списка элемент одного и того же типа.

96  См. таблицу символов на стр 100.

97  На уровне двоичного представления чисел это означает, что в любом коде с номером больше 127 сбрасывается старший бит.

98  Функция SHIFT$ в режиме 7 очень «не любит* управляющие символы с параметрами, выходящими за пределы допустимых значений — их наличие в строке может привести к сбросу компьютера.

99  Для направления печати в переменную Z$ при старте Beta Basic в дополнение к уже существующим каналам ("К", MS "R" и "Р") инициализируется еще один — "Z". К нему по умолчанию подключается поток #14 (см. [1]).

100  Надо отметить, что в LENGTH допустимо подставлять имя массива как в форме "G0", так и в виде имени любого из его элементов: "G(k)" или "G( < число >)" На работе функции эти различия в записи имени не отражаются

101  Тип процессора — AY-3-8912.

102  Musical Instrument Digital Interface — цифровой интерфейс для музыкальных инструментов.

103  Заметим, что самые низкие ноты в'О-й и 1-й октавах без MIDI-интерфейса воспроизводиться будут неправильно.

104  Подробнее см. в описании MIDI-интерфейсэ [8].

105  Символьный массив перед загрузкой с электронного диска должен быть определен оператором DIM Иначе он будет загружен как простая строка символов Эго замечание справедливо и для загрузки с магнитофона символьного массива в режиме 128 BASIC.

Это сообщение, очевидно, аналогично сообщению с кодом д, однако ссылки на него в ПЗУ наити не удалось.

В ZX Spectrum 128 расширена область системных переменных. Сделано это за счет использования части оперативной памяти, отведенной в ZX Spectrum 48 под буфер принтера. Ниже приводятся название, адрес и краткое описание некоторых системных переменных, значения которых могут быть использованы из Бейсика.

23389___(BANKM)

копия внутреннего системного регистра, определяющего текущую архитектуру компьютера (из Бейсика изменять не рекомендуется).

23391_(BAUD)

скорость обмена по последовательному интерфейсу. Хранится в «обратном» виде, то есть сначала записан старший байт, затем младший.

23395__(COL)

позиция (номер столбца) вывода на принтер.

23396__(WIDTH)

количество печатных позиций на принтере. При достижении этого числа программа печати автоматически переводит строку.

23429/38/31_(SFSPACE)

количество свободных байтов на электронном диске.




СОДЕРЖАНИЕ:
  1. Laser Basic - Вывод спрайтов на экран; Вывод на экран части спрайта; Перенос атрибутов; Преобразование окна экрана; Наборы переменных; Перемещение спрайтов; Наложение спрайтов; Копирование изображения с экрана в спрайт; Преобразование спрайтов; Скроллинг пейзажа; Изменение размеров области спрайт-файла; Вспомогательные графические операторы и функции; Определение столкновений спрайтов; Сервисные операторы и функции; Процедуры; Загрузка и запись программ.


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

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



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

Похожие статьи:
Gameland - Как написать игру. Том 3. Часть первая.
Обманем - Мысли вслух, или как обмануть дополнительные миссии к игре Черный Ворон.
Новости - riskej, ADSL, Вasil/i8, Т(с)S/i8, Slash, Dissоnatоr, Ldir.
Вести - новая 16-и битная музыкальная плата для Спектрума, которая подключается одним проводом.
От автора - Начинается новый учебный год...

В этот день...   29 марта