Диалекты бейсика для 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 - Вывод спрайтов на экран; Вывод на экран части спрайта; Перенос атрибутов; Преобразование окна экрана; Наборы переменных; Перемещение спрайтов; Наложение спрайтов; Копирование изображения с экрана в спрайт; Преобразование спрайтов; Скроллинг пейзажа; Изменение размеров области спрайт-файла; Вспомогательные графические операторы и функции; Определение столкновений спрайтов; Сервисные операторы и функции; Процедуры; Загрузка и запись программ.


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

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



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

Похожие статьи:
Новости - Hippiman/Conscience выпустил новогоднюю игру Dizzy Rescues Santa, Польский культуролог Пётр Марецки прислал большой опросник для будущей книги, Сергей Смирнов (Gogin) возродил свой проект по портированию игры Super Mario для Спектрума.
IS-DOS - И вновь небольшая переделочка софта для Скорпионовских часов CMOS.
Inferno - О журнале.
Обьявления - Продается компьютер "БАЙТ" 128.
BBS NEWS - Новости с PROFI BBS.

В этот день...   3 июля