ZX Spectrum
Game

BASIC at a Stretch

Your Spectrum (Великобритания),

Автор:

Жанр: Программирование: BASIC


Доступные версии

 Неофициальное издание
Играть!

Язык

  • Русский
  • English

Управление

  • Клавиатура(?)

Игроков

  • Один
  • Описание
  • Описание (авт.пер.)
  • Информация

(С Вашего Spectrum 7, Sep.1984)

ОСНОВНЫЕ подряд

Надоело используя те же старые команды? Ну, оседлать свой интерфейс 1

Блок и пусть Гэвин Смит продемонстрировать практику при добавлении до 26 новые команды в вашем Spectrum.

Синклер Basic, при всей своей медлительности, довольно исчерпывающим. Но, как со всеми вещами, тем более у вас есть, тем больше хочется и несколько дополнительных Команды могут, конечно, пригодится. Как о, например, абсолютная ничья. С Интерфейс 1 прилагается, можно добавить, как многие дополнительные команды, как вам нравится.

Во-первых, давайте посмотрим на расширенном переводчика и человека

Процедуры в деталях.

НОВЫЕ ИНТЕРПРЕТАЦИИ

Когда линия Basic вводится, оригинальный диск проверяет синтаксис; если он не в состоянии признать команду, он передает управление Интерфейс 1 ROM. Это сканирует проверки для новых слов, таких как линии “ФОРМАТ”. Если этот тест также не удается, то процессор переходит к ошибке процедура обработки (при ERR6) через векторной адресу 23735. Вы можете изменить этот адрес и дальнейшие тесты реализованы для обеспечения дополнительной команды.

Это то, что расширенная переводчик делает. Он проверяет на наличие

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

Для переводчика, чтобы нормально функционировать, должно быть по крайней мере один

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

АБСОЛЮТНЫЙ НИЧЬЯ

Первый новый команда:

* НИЧЬЯ х, у

Какой подходит к точке (х, у). Это гораздо проще, чем по отношению

координаты (особенно в графах). Таким образом:

УЧАСТОК 100100: рисовать 20,30

эквивалентно:

УЧАСТОК 100100: * рисовать 120130

Во-первых, процедура вызовы пробел, чтобы добраться до конца первого слова (в

этот случай, * Draw). Тогда он проверяет на наличие двух числовых Аргументы, разделенные запятой; если что-то не прыгает на обработчик ошибок. В момент синтаксиса – то есть, когда линия первый вошел в программу – процедура заканчивается; во время исполнения остальное выполнена. Эта часть просто вычисляет размер относительная координирует и запросы рисования подпрограмму по основным ROM.

Когда эта подпрограмма выполняется, Интерфейс 1 ПЗУ выгружаемого

в. Это позволяет подпрограмм в ПЗУ интерфейса единиц, таких как STEND, чтобы быть просто называется; Процедуры в главном диске, например, FNDINT1, должны назвать через RST 10h последующим начальным адресом (это верно для всех новых подпрограмм командных).

ПЕЧАТЬ ПИКСЕЛЕЙ

На следующий процедура позволяет определяемые пользователем графический символ, который будет помещен

в любом месте на экране. Причина для ограничения его UDGs является то, что он Маловероятно, что кто-то хочет печатать много текста, как это (Начиная с обычных ручек только один символ за раз) и, если требуется, UDGs может быть повторно определен как буквами.

Синтаксис команды:

* PRINT х, у, с

Где (х, у) являются пиксельные координаты левого верхнего угла

характер (х лежит между нулем и 255, у между нулем и 175) и с это количество в UDG (UDG A равно нулю, УДГ B является одним … УДГ U является 20). Например:

При х = 0 до 247: * PRINT х, 100,0: рядом х

Выше будет скользить первый UDG (первоначально капитал «А») по

экран. На этот раз расширенный проверки синтаксиса ищет трех чисел, разделенных запятыми.

В процедуре выполнения, данные для UDG найден и сдвинуты

по давать правильную информацию для памяти экрана; перечень содержит код и комментариев. Рутинные концы с атрибутов байт создаются для постоянных цветов.

PIXEL SCROLL

Команда прокрутки позволяет прокрутки пикселов всего экрана.

текущая команда:

* SCROLL н

Где н это числовое выражение управления направлением

прокрутки (п должна лежать в пределах от нуля до 255, но только мод четыре используется значение):

п = 0 (или 4,8, …) свитки право на один пиксель

п = 1 (или 5,9, …) прокручивается вверх N = 2 прокручивается влево N = 3 свитки вниз

Например, для прокрутки один весь характер вниз, вы могли бы использовать:

Для F = 1 до 8: * SCROLL 3: СЛЕДУЮЩИЙ ф

Это перемещает экран восемью пиксельными линиями. Проверка синтаксиса это

Время ищет только одного числового аргумента. Только нижние два бита равны б (давая диапазон от нуля до трех), и процесс переходит к каждому отдельный рутина прокрутка. Левые и правые свитки довольно просто – они просто сдвинуть каждую строку 32 байт на один бит. И вниз свитки осложняются макета экранной памяти, но все они делают это двигаться каждую строку в один выше или ниже, очистка окончательным.

Атрибуты цвета не влияет на всех, так как они имеют только

Характер блок, а не пикселей.

Простые звуки

Окончательный рутина просто генератор звуковых эффектов – полезно для

игры если ничто иное. Синтаксис команды:

* ZAP н

Где н, между нулем и двумя [так в оригинале], определяет тип звука:

п = 0 дает шум взрыва

п = 1 дает падающий тон п = 2 дает повышение тона

Например:

Для F = 1 до 100: * ZAP INT (RND * 3): СЛЕДУЮЩИЙ ф

Выше даст несколько секунд “захватывающих” звуков (хорошо, более

захватывающим, чем BEEP!). Компьютер снова ищет одного аргумента и проверяет его значение; если он находится вне диапазона, он дает ошибку, в противном случае это переходит к конкретной программе. Роста и падения тона производятся коротких звуковых сигналов изменяющихся частот, в то время как Взрыв производится путем посылки “случайных” данных из ПЗУ в порт спикер.

Безусловное лидерство

Вы можете проверить с ассемблера листинг несколько важных моментов

о добавлении новых команд:

1. Во-первых, синтаксис проверяется – с помощью EXPT1NM для числовое

выражения и СР “,” для проверки разделения запятые. В этом разделе заканчивается CALL-STEND.

2. Далее идет процедура выполнения и, поскольку значения

аргументы в стек калькулятора, они могут быть стянул в зарегистрироваться FNDINT1.

3. Код выполнения заканчивается переходом к END1.

4. Любая подпрограмма в Основном ROM должен быть вызван с помощью RST 10h. Заметка что все регистры сохраняются в то время как ПЗУ выгружаемого.

5. Перед код будет работать, вектор на 23735 должен указывать на

начиная, со скачком назад ERR6 в конце к ловушки подлинной синтаксиса Ошибки.

Код может быть введен с использованием либо ассемблер или основной программы

при условии, которое будет переселить 559 байт машинного кода в любом месте память; он должен работать на 16K Spectrum, при условии, что интерфейс является 1 подключен.

Чтобы использовать его, установить линии 10 и от 20 до желаемого исходного адреса (для

пример, 31000 в машине 16К и 64 700 в модели 48К). Следующая SAVE программа в случае, если есть ошибка (которая, как правило, смертельным исходом в машинный код). Теперь запустите программу и через несколько минут сообщение появится на экране; код был расположен в памяти, но не будет иметь никакого эффекта, так как вектор на 23735 не было изменено. К использовать дополнительные команды введите строку в сообщении – как один линии, а не два отдельных тычет, в противном случае машина может рухнуть.

Если NEW вводится вектор сброса; Однако, код все еще находится в

памяти, так повторить два тычет, чтобы команды, которые будут использоваться. Мы видели простой переводчик, который позволит до 26 новых команд, но только с четырьмя примерами; Есть более 22 возможных слов, так что получить рабочая!

Ассемблер ПРИМЕЧАНИЯ

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

EQU заменяется знаком ‘=’.

Все числа в шестнадцатеричной если не предшествует “+” или “-“, в которой

случае они находятся в десятичной.

DEFB, DEFW, и так далее, не существует; число или этикетку просто

размещены в исходном тексте, где будет происходить DEFB, и EX AF, AF ‘является вошли как EX AF.

Это машинный код разборки из серии расширенной Basic Процедуры, которые расширяются Sinclair BASIC вплоть до 26 новых команд, из сформировать ‘* имя’; то есть. начиная со звездочкой, следует буква (Верхний или нижний регистр) или слово, и все необходимые параметры. (Учтите, что эта программа работает только с Интерфейс 1 прилагается, и системы Переменная вектор на 23735 и 23736 должны быть установлены, чтобы указать на СТАРТ.)

Таблица векторов в специальных программ.

Эта процедура обеспечивает команду на проведение абсолютного рисунок. Здесь

используется в виде * Рисование х, у (или * дх, у), где х и у Координаты точки, который можно сделать, чтобы.

Вы можете распечатать UDG в любом месте на экране, используя процедуру ниже.

Вы получаете доступ к этой способности с помощью командной * PRINT х, у, С (или * ПВ, у, с), где (х, у) является пиксель координата левой верхней части персонажа и с есть номер UDG (‘0’, В ‘1’, и так далее).

Эта часть программы обеспечивает пикселей прокрутку в любом из четырех

направления; команда используется в виде * СПИРАЛЬНЫМИ п (или * зп), где н задает направление.

Эта последняя процедура обеспечивает более звуковых эффектов. Команда используется

в виде * ZAP н (или * Zn), где п определяет, требуется ли вам

Взрыв, нисходящий тон или повышение тона.

Игра BASIC at a Stretch запускается прямо на сайте. Программа для разработки на BASIC, которую подарил миру Gavin Smyth, была опубликована командой Your Spectrum в 1984 году в Великобритании.

Не запускается или глючит игра, или не можете пройти? Спросите в комментариях.

Отправить ответ

Уведомлять об
avatar
wpDiscuz
 

Сохранённые игры[X]

  

Справка[X]

Помощь уже в пути!

Не забывайте периодически сохранять игровой прогресс на сервере (клавишей F8), чтобы уверенно продвигаться вперёд!

Если вы гость на сайте, то прогресс будет сохранён только в памяти браузера и потеряется при закрытии. Чтобы этого не произошло - просто войдите в свой профиль.

Для загрузки сохранённой игры жмите F3 или откройте меню "Диск" кнопкой на правой панели.

Если игра не запускается, или у вас есть вопросы по игре - задайте их ниже.

Помощь

Размер

  • x1 [256x192]
  • x2 [512x384]
  • x3 [768x576]
  • Полный

Диск

Кликни в окно эмулятора, чтобы управлять!
<<<<
Close