ZX Spectrum
Game

Laser Compiler

Ocean Software Ltd (Великобритания),

Авторы: ,

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


Язык

  • Русский
  • English

Управление

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

Игроков

  • Один

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

Оригинальное издание
Играть!

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

Оригинальное издание
Играть!
  •  Описание (авт.пер.)
  •  Информация
Описание Laser Compiler (автоматический перевод)

ЛАЗЕР BASIC COMPILER

Крис Меллинг

ВВЕДЕНИЕ

Лазерная BASIC компилятор направлена ​​на пользователя, который написал программу с Лазерная BASIC и желает произвести отдельная программа, которая будет работать независимо от расширенной переводчика. Программы составлены с этим компилятор может продаваться в любом случае избранного и нет никаких ограничений или роялти платить.

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

использовать любые команды Лазерная основным, но увеличение скорости, вероятно, будет только о в 2 раза или менее. Составлен код более компактным, чем Основным источником, но есть над головой из-за времени выполнения кода. Лазерная BASIC программы, которые будут запущены в расширенном переводчика никогда не будет слишком большой компилировать.

ЛЕНТА MAP

Имя файла Инструкции по заправке Сторона: “COMPCODE” LOAD “” CODE “ПОГРУЗЧИК” LOAD “” “RTCODE” LOAD “RTCODE” КОД Сторона Б: “DEMO” LOAD “”

Компиляция программы

Для компиляции программы, только компилятор и программа будет составлена ​​необходимость чтобы находиться в памяти. Кроме того, важно, чтобы гарантировать, что лазерный BASIC не житель в то время. Таким образом, если программа Лазерный BASIC было введено в, то он должен сначала быть сохранены, машины повторного набора, и программа повторно загружены.

N.B. Никакие изменения не могут быть внесены в строке программы, содержащей лазерный BASIC

Команды, без длительного жителя переводчика.

Перед загрузкой Compiler, в первую очередь необходимо, чтобы заставить вершину BASIC памяти ниже его положение загрузки с помощью команды: CLEAR, 59799

Компилятор может быть загружен, набрав:

LOAD “” CODE или LOAD “COMPCODE” КОД Если программа будет составлена ​​уже не в памяти, то она должна быть загружается в обычном режиме.

Компиляция может быть запущен с помощью команды:

RANDOMIZE USR 59800

В то время как компилятор выполняет, ошибочные линии и цвета появятся на

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

Виде скомпилированной программе

После запуска компилятора, это более-пишет свой основной программы с скомпилированного кода, и после успешного завершения компиляции появится в скомпилированный код ОСНОВНЫЕ так же, как любой другой основной программы. Таким образом, можно сохранить и загрузить точно так же, как и любой обычный BASIC программы.

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

удаление строки или редактирования строки; или MERGEing два скомпилированные программы – это могут быть затронуты MERGEing два базовых программ, и составление целого. Если Вы попробуйте перечислить скомпилированную программу, вы увидите только несколько строк BASIC прежде чем запись останавливается. Первые два из них вставляются Compiler, и появляются независимо от программы, в которой был составлен.

Первый должен появиться: 0 PRINT 0

Это заявление, которое никогда не выполняется, содержит какую-то скрытую информацию

который во время выполнения пакета необходимо для успешного выполнения вашей Программа. Вторая строка должна появиться: 1 RANDOMIZE USR 59800 и есть ли для облегчения автоматический запуск скомпилированного программы – более из которых позже.

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

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

Кроме того, если ваша программа содержала каких-либо заявлений DATA, то они бы

появляются на дальнейшее линии 0, после каких-либо функций, определяемых пользователем. Все элементы данных связываются вместе в виде одного большого заявлении данные, но обратите внимание, что это не влиять на работу любого ВОССТАНОВЛЕНИЕ заявления, которые будут работать как положено.

ЗАПУСК собранная программа

С составлена ​​программа еще находится в памяти (или он может быть загружен в настоящее время или позже), во время выполнения пакета теперь должны быть загружены. Предполагая, CLEAR, 59799 является еще действует (сделайте это сейчас, если у вас возникли сомнения), это осуществляется с: LOAD “RTCODE” КОД

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

они должны быть загружены в точности, как будет сделано для нормального лазерный BASIC Программа.

Если составляется программа еще не резидент, то теперь оно должно быть

загружен (так же, как обычный BASIC программы).

Программа в настоящее время готова к запуску. Это делается с помощью команды:

RANDOMIZE USR 59800 или GOTO 1 вспоминая строки 1 в программе, упомянутой выше.

Теперь программа будет выполняться, но обратите внимание, что это не может быть разбит на использовании

ключ ПЕРЕРЫВ (кроме течение лентой или Microdrive работы).

ПОЛУЧЕНИЯ самостоятельная программа

Если вы хотите, чтобы продать программу, которую вы внесли в лазерной BASIC то он должен быть составлен. Кроме того, вы, как правило, хотели его видеть стенд одна программа, так что конечный пользователь просто должен ввести LOAD “” или что-то, и целые вещи запускается автоматически.

Это достигается с помощью программы загрузчика (что авто-пробеги), который загружает в

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

Такая программа загрузчик, который вы можете использовать, чтобы построить на, находится на стороне

один из компилятор ленты. Похоже ниже:

10 CLEAR, 59799

20 LET SPST = 30 LOAD “RTCODE” КОД 40 LOAD “спрайтов” КОД SPST 50 Пусть T = INT (SPST / 256): POKE 62464, SPST-256 * т: POKE 62465, т 80 POKE 62466.255: POKE 62467.220 70 POKE 56575,0 80 LOAD “”

Строка 10: Выполняет необходимую CLEAR, чтобы освободить место для времени выполнения пакета.

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

Строка 30: загружает во время выполнения пакета.

Линия 40: загружает спрайтов.

Линия 50: тычет в начале спрайтов.

Линия 80: тычет в конце спрайтов. См Лазерная Основное руководство.

Линия 70: тычет в конце спрайтов характера.

Линия 80: грузы окончательный скомпилированную программу.

Примечание: Если нет спрайтов не используются, то линии 20,40,50, 60 и 70 могут быть опущены.

Это просто остается для вас заполнить в правильное значение однополюсного и сэкономьте

необходимый набор файлов на ленте, гарантируя, что загрузчик и составлен программы сохраняются в автозапуск. Для погрузчика это повлечет за собой: SAVE “погрузчик” LINE 10 и для скомпилированной программе: SAVE “<составлен-имя-программы>” ЛИНИЯ 1 – Вы помните, что линия 1 является компилятором линия, которая вызывает во время выполнения пакета, чтобы начать выполнение составленного программой.

Примером этого процесса появляется позже в руководстве, когда инструкции являются

дается для вас, чтобы получить скомпилированные версии игры Invader Cube.

Ограничения на основных для компиляции

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

) Компьютерная GOTO, GOSUB, RUN и ВОССТАНОВЛЕНИЕ заявления не должно быть

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

б) попытка разместить вычисленные заявления DIM,

и те, с размерами, которые оценивают нулю (невозможно Значение при Sinclair BASIC) не будут объявлены только во время выполнения.

Это значит. Однако, что такие утверждения, как DIM (п + 12) не будет заявил, как можно было предусмотрено. как выражение размерности будет оцениваться в 12 и, следовательно, массив будет объявлен как таковой.

в) Там нет ограничений на количество раз массив может быть

повторно объявлен, но вы должны понимать, что первый декларация сделано во время компиляции, и, следовательно, это утверждение не копируется в скомпилированной программе. Таким образом, если выполняется переход к началу Программа для до того места, где ваш первый DIM был, для частности массив, он не будет там, чтобы быть выполнены на секунду пройти. Это может быть обошли (если вы должны использовать массив переопределение) по имеющий дополнительную декларацию этом массиве в самом начале программа, перед любым “перезапустить” прыгает.

d) четкие заявления не допускаются вообще и к ошибке компилятора Сообщение – смотрите ниже.

д) выполнения операторов работать как в BASIC исключением того, что они делают не ясно

переменных.

е) MERGE, продолжится, LIST и LLIST команды не допускаются и

производить сообщение об ошибке компилятора – смотрите ниже.

г) Не пытайтесь продолжать разбился или остановился скомпилированную программу.

ч) ОТКРЫТОЕ # и ЗАКРЫТЬ #. Они будут работать только для потоков “S”, “К” и “Р”.

Microdrive обращение файл данных не поддерживается.

я) загружать, сохранять и проверять. Они все работают в нормальном режиме, за исключением случаев, BASIC

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

С помощью компилятора С Microdrives Compiler и во время выполнения пакета оба совместимы с микродрайвы, кроме того, что Microdrive файлов данных не поддерживаются в скомпилированных программ. Все примеры, приведенные в данном руководстве, могут быть преобразованы в Microdrive просто добавив позорную “*” м “;;” между командой и именем файла.

Сообщения об ошибках

Незаконное заявление найден

Это производится с помощью компилятора, если одно из заявлений облачность, слияние, СПИСОК, LLIST или ПРОДОЛЖИТЬ найден.

Определение Порядок вложенности ошибке

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

.RETN Без DEF FN #error Это производится с помощью компилятора, если .RETN обращение было найдено без Соответствующее определение процедура.

Порядок не определен

Это производится с помощью компилятора, если вызов находится в процедуре, которая имеет не был определен. Обратите внимание, что вам не придется объявить процедуру перед ним используется.

Программа не составлен

Это производится во время выполнения пакета, если, когда он впервые назвал, начало программы не распознается как скомпилированной программы.

Выполнение скомпилированный программы является, как восприимчивы к нормальному время выполнения

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

После получения любого сообщения об ошибке, программа будет частично или

полностью составлен, и поэтому необходимо повторно загрузите оригинал BASIC программу для внести необходимые изменения перед повторным компиляции.

Карта памяти

Compiler и во время выполнения пакета и нагрузка в на 59800. времени выполнения Пакет занимает память от этой точки до самой верхней части памяти, и После загрузки, вы можете сохранить его с: SAVE “RTCODE” КОД 59800,65536-59800

Compiler заканчивается в 62 856, заняв некоторые 3057 байт, и вы можете повторно SAVE это с: SAVE “COMPCODE” КОД 59800,3057 Следовательно, при использовании любой пакет, необходимость ясного 59799.

Составлен программа Laser BASIC появится в памяти следующим образом:

+ + + – – – – – + + – + +

| Программа | Переменные | | спрайты | м / с стек | RTCODE | + + + – – – – – + + – + +  PROG VARS ELINE SPST spnd-56575 59800 65535

Примечание для машинного кода программистов

Простая арифметика расскажет вам о том, что разрыв между верхней спрайтов и во время выполнения кода некоторые 3k или более. Теперь при нормальных обстоятельствах Стек будет нужно меньше, чем 256 байт, и так как остальная часть этого пространства может быть используется для подпрограмм машинного кода, либо работать вверх от верхней спрайты, или, очистив ближе спрайтов и с использованием области после того, указать до времени выполнения кода. Очевидно, что нет ничего, чтобы остановить вас от Клиринг под спрайтов и используя весь зазор: и так далее.

ИНСТРУКЦИЯ ПО ПРОИЗВОДСТВУ автономного скомпилированной программе

Для куба ИГРЫ Invader На ленте двумя боковыми два вашего пакета Laser BASIC это игра под названием Invader Cube. Здесь следует инструкциям для вас, чтобы произвести составлен автономная версия.

Лента отображение стандартной игры состоит в следующем:

Погрузчик (в автозапуск) Экран загрузки Три программы, включающие Laser BASIC Спрайты для игры Программа сама игра (для автоматического запуска)

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

Погрузчик (в автозапуск) Экран загрузки Во время выполнения пакета Спрайты Составлен игровая программа (для автозапуска)

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

Во-первых программа загрузчик должен быть разработан. Мы будем использовать загрузчик условии

как часть пакета компилятора в качестве отправной точки. В настоящее время она появляется:

10 CLEAR, 59799

20 LET SPST = 30 LOAD “RTCODE” КОД 40 LOAD “спрайтов” КОД SPST 50 Пусть T = INT (SPST / 256): POKE 62464, SPST-256 * т: POKE 62465, т 80 POKE 62466.255: POKE 62467.220 70 POKE 56575,0 80 LOAD “”

Теперь, значение потребности SPST установки в том, что требуется для игровых спрайтов

который является 53780. Кроме того, дополнительная линия должна быть вставлена ​​для загрузки загрузку Экран: 25 LOAD “SCRN” КОД

Кроме того, для предотвращения разрушения экране в то время нагрузка в

прогресс, следующая строка должна быть добавлена ​​в начале: 5 INK 0: PAPER 0: ГРАНИЦА 0: CLS и PRINT AT 0,0 ;: вставляется перед каждым из утверждений нагрузки. Как вы изменяя последнюю строку – что для загрузки игры – вы можете вставить имя которой он будет сохранен как, скажем, “cgame”: 80 PRINT AT 0,0 ;: НАГРУЗКИ “cgame”

Таким образом, окончательный погрузчик появится:

5 INK 0: PAPER 0: ГРАНИЦА 0: CLS

10 CLEAR, 59799 20 LET SPST = 53780 25 PRINT AT 0,0 ;: НАГРУЗКИ “SCRN” КОД 30 PRINT AT 0,0 ;: НАГРУЗКИ “RTCODE” КОД 40 PRINT AT 0,0 ;: НАГРУЗКИ “спрайтов” CODE SPST 50 Пусть T = INT (SPST / 256): POKE 62464, SPST-256 * т: POKE 62465, т 80 POKE 62466.255: POKE 62467.220 70 POKE 56575,0 80 PRINT AT 0,0 ;: НАГРУЗКИ “cgame”

Это должно теперь быть сохранены на вашем новом ленты так, чтобы он автоматически трасса:

SAVE “погрузчик” ЛИНИЯ 5

Глядя на ленте карте выше, и грузчиком, который вы только что

Сохранены, то ясно, что следующая вещь, которая нуждается сохранение на носители после загрузчика является экран загрузки. Это должно быть получено из исходного игровой ленты. Чтобы сделать это вы должны загрузить второй файл, под названием “ЭКРАН”: INK 0: PAPER 0: CLS LOAD “ЭКРАН” КОД

Когда он находится в, и появляется сообщение с ОК, типа:

SAVE “SCRN” КОД 16384,6872 Чтобы сохранить экран после нового погрузчика на вашем новой ленте. СТОП ленту когда операция завершена, и сбросить машину.

Обратимся снова к ленте карте, мы видим, что во время выполнения кода теперь должно быть

Сохранены. Таким образом, это должно быть загружено из компилятора ленты – не забывая CLEAR: CLEAR, 59799 LOAD “RTCODE” КОД

Теперь это может быть сохранен в новой ленте после экрана с:

SAVE “RTCODE” КОД 59800,65536-59800

Остановить ленту, когда это полная.

Вернуться к ленте карте, и мы видим, что спрайты для игры должна быть рядом

Сохранены. Опять они должны быть получил от оригинальной игры ленты, и вы увидите, из этой карты, что они расположены после трех кодовых файлов, которые включают в себя лазерный BASIC. Команда: НАГРУЗКИ “спрайтов” КОД 53780 будет пропускать через них и загружать спрайты. Тогда сохранять их на новый лента после времени выполнения кода с: SAVE “спрайтов” КОД 53780,56576-53780

Наконец, сама игра должна быть составлена, и сохраняется после спрайтов.

Обеспечение Лазерная BASIC не является резидентом, загрузить игру с: LOAD “INVADER”

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

Лазерная BASIC команда, которая, конечно, он не может понять, не Extended BASIC жителя. Когда это происходит, загрузите компилятор в нормальное способ: CLEAR, 59799 LOAD “COMPCODE” КОД

Составьте программу с:

RANDOMIZE USR 59800 и сохранить результат на новую ленту с: SAVE “cgame” ЛИНИЯ 1 вспоминая автозапуска центр.

Теперь вы можете перемотать ленту, сбросить машину и тип:

LOAD “” и составлен версия Invader Cube будет загрузить и запустить.

Microdrive пользователи должны отметить, что эта процедура будет работать одинаково хорошо на что средства массовой информации, просто изменив все SAVE команды SAVE * «м»; 1; и

Грузы по программе на загрузку * “м”; 1; ,

Краткая информация о Laser Compiler

Для игры в Laser Compiler не нужны эмуляторы. Программа для разработки на BASIC, опубликованная в Великобритании в 1986 году командой Ocean Software Ltd, которую разработали Oasis Software и Chris Melling.

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

Subscribe
Уведомлять об
guest
0 комментариев
Inline Feedbacks
View all comments

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

  

Справка[X]

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

  • x1
  • x2
  • x3

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

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

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

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

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

Поделиться
Close
0
Would love your thoughts, please comment.x