ZX Spectrum
Game

HiSoft COLT Compiler

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

Авторы: , ,

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


Язык

  • Русский
  • English

Управление

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

Игроков

  • Один

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

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

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

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

1 2 3 4 5 6 7 8

Hisoft Подарки

Colt

БЫСТРО BASIC COMPILER

Руководство COLT ZX BASIC Compiler

Copyright Трелфолл и Ходжсон 1985 Опубликовано Hisoft 180 High Street Данстейбл LU6 1AT

Первое издание августа 1985

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

СОДЕРЖАНИЕ

Страница 1 Введение

Страница 1 Процесс компиляции Страница 2 Начало работы с Кольт Страница 4 COLT подробно Страница 5 Загрузка компилятор Страница 5 Colt заявления Страница 9 строк и массивов Страница 9 Сообщения об ошибках во время компиляции Страница 10 Ошибки времени Page 10 Сохранение скомпилированного кода Page 11 Повторная загрузка составлен код Страница 11 трассировки объектов Page 12 Компиляция до 32K Page 12 Возвращаясь к Basic Page 13 Извлечение переменных из Basic Page 13 Принимая Colt переменные обратно Basic Page 14 с плавающей запятой?

Страница 15 команд НАГРУЗКИ Page 15 Скорость Страница 16 Странные ошибки Страница 16 COLT в деталях Page 18 Изменение этих космических ассигнований – некоторые полезные адреса Страница 18 Звонки между Basic и Кольт Page 19 Компиляция подпрограмм Страница повторного ввода 19 код Page 21 Исполнительный Page 22 Использование исполнительной власти Page 22 Быстрые команды доступа Страница 23 клавиш определяемые пользователем “мягкие” (функциональные) Page 24 Расширенные основные команды Команды Page 24 Окно Страница 26 команды Sprite Page 27 Чтение клавиатуры Страница 28 Другие команды Страница 31 определяемые пользователем Basic Страница 32 Исполнительные сообщения об ошибках Page 33 Другие дисковые / вафельные интерфейсы

= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =

Введение

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

чтобы вы и ваш ZX Spectrum с COLT Basic компилятор Hisoft в.

Кольт является полностью новым продуктом, который превращает ваш Spectrum Основные программы в чистом z80 машинный код, что делает их запуска между 2 и 800 раз быстрее!

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

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

Процесс компиляции

Когда вы пишете основной программы на вашем Spectrum, вы принимаете Преимущество в построенных “интерактивных” особенностей машины. Это означает, что вы можете написать часть программы, запустить его и правильно любые ошибки. Это может быть сделано, потому что основной системы, используемой Спектр известен как “переводчика”. Он принимает каждую линию Основные который вы вводите в, и если линия имеет смысл его добавляют Основному программы в памяти. “Синтаксис проверки”, которые печатает мигание ‘?’ всякий раз, когда вы попытаетесь ввести неверный линии, может обнаружить только то, что известно как “синтаксической ошибки”. Синтаксис ошибка программирования ошибки, которые не могут образовывать часть Basic Программа, потому что это не соответствует «правилам синтаксиса» от язык. Например, так же, как мы не можем разумно говорить

“Время четыре половина является”

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

Спектр Basic:

10 LET = “Это приведет к синтаксической ошибке”

Проверка синтаксиса не может обнаружить “алгоритмические” ошибки, которые

программирования ошибки, которые, хотя и прекрасно действительного Basic, не действительно, что вы ожидаете или требуете. Вы можете иметь линию, которая добавляет 10 к переменной, например, когда на самом деле вы предполагается, добавив 5. Это всегда самые тяжелые ошибки в найти!

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

может выполнить программу, набрав ‘RUN’ и нажатием ENTER Ключ. Ошибки все еще может произойти, если, конечно, вы пропустите линии или выполнять неправильные расчеты. Затем программа остановится с “Сообщение об ошибке”, говорю вам, на какую линию произошла ошибка.

Именно поэтому система известна как “интерактивная”, так как она позволяет Вы исправлять ошибки по мере их возникновения, вместо того, чтобы бежать Программа, найти все ошибки, и исправить их все, прежде чем снова запустить программу.

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

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

Интерпретированные программы автоматически гораздо медленнее, чем компьютер действительно способен, потому что каждый человек линия должна быть рассмотрены программы переводчика каждый раз, когда он встречался. FOR … NEXT цикл не автоматически преобразуются в машине Код цикл, который заканчивается после определенного числа итераций, но является рассмотрел каждый раз строка, содержащая следующей когда встречается, и проверка, чтобы убедиться, что конец цикла был достигли. Спектр Основные переводчик живет в ПЗУ (постоянном постоянное запоминающее устройство) внутри машины и не может быть легко удалена. COLT вытесняет этот интерпретатор с программой, известной как “компилятором”.

Компилятор это программа, которая преобразует другой программы, написанной на

конкретный язык в машинный код (в данном случае), так что компьютер может запустить эту программу непосредственно вместо того, чтобы идти через переводчика. В случае компилятор COLT, язык, который он превращает из это Спектр Basic. Конечный результат является сравнительно короткая программа машинного кода, который будет делать именно то, что Основная программа делает, но значительно быстрее. Как сейчас в машинный код, мы не можем запустить нашу программу, введя ‘RUN’, как это интерпретатор команд. Вместо этого, мы должны «Вызов» его, используя адрес, данное нам компилятором. Мы можем программы машинного кода вызова с RANDOMIZE USR<адрес>Заявление, где<адрес>является адрес, который мы хотим вызвать.

Есть очень мало Основные черты, которые компилятор COLT

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

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Начало работы с Кольт

Составитель COLT поставляется на кассеты, которые

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

Тип:

LOAD “” (ENTER>

(Нажмите клавишу “J” с последующим двух прессов символа-SHIFT

‘P’ комбинация) и нажмите кнопку воспроизведения на вашем магнитофон. После Через несколько секунд знакомые заправки ленты полосы должны появиться на экран и название программы будет напечатано:

Программа: COLT

Если этого не произойдет, перемотать магнитофон и попробовать

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

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

работает. Первое, что она делает, это автоматически загружать компилятор машинного кода в компьютер. Когда весь процесс имеет закончил, вам будет предложено, если вы хотите сделать резервную копию (Работает) копия компилятора. Если это первый раз, когда Вы использовали компилятор, мы настоятельно рекомендуем вам ответить ‘Y’ на этот вопрос. Hisoft лицензии вы сделать одну работу копия компилятора по обе кассеты или Microdrive Картридж. Если вы ответить “Y”, вы затем будет предложено, если вас Чтобы сохранить копию кассеты или Microdrive. Если у вас есть Микродиск очевидно целесообразно сохранить вашу рабочую копию на картридже, как это будет впоследствии загрузить гораздо быстрее.

Далее Вас спросят, хотите ли вы, чтобы изменить начальный адрес

скомпилированной программы из 40000. Ответ ‘N’ на этот вопрос на Момент, как вам не нужно будет делать это, пока вы не компилируете большие программы. Вы увидите экран ясно и часы появляются в в правом верхнем углу экрана, тикают счастливо. Эти часы часть «Исполнительный» программы, которые мы будем рассматривать в подробнее ниже. Теперь наберите в этой программе в обычном порядке:

 10 Пусть H $ = “0123456789ABCDEF”

 20 ДЛЯ = 0 до 255  30 лет d $ = “”: REM два пространства внутри строки  40 GO SUB 100  50 POKE 23692.255  60 PRINT; “=”; d $  70 Вперед  80 СТОП 100 Пусть X = INT (/ 16): Пусть у = а-16 * х 110 Пусть D $ (1) = H $ (х + 1) 120 Пусть D $ (2) = ч $ (у + 1) 130 ВОЗВРАТ

Когда вы запустите эту программу, вы увидите цифры от 0 до 255

распечатать вместе с их шестнадцатеричной (основание 16) эквиваленты. “POKE 23692.255” заявление на линии 50 просто останавливается Компьютер с просьбой “Scroll?” каждый раз, когда экран заполнен до. Если Вы раз эту программу, вы увидите, что она занимает чуть более 30 секунд, чтобы закончить.

Для компиляции тип программы

RANDOMIZE USR 60000

и нажмите ENTER. После очень короткого времени, вы должны увидеть это

Информация выводится на экран:

                      00: 00: 00: 0

Hisoft COLT Integer Compiler 1.0 (С) 1985 Threlfall и HODGSON

Компиляция Line 140

Составитель OK

Начните Конец Вар Lines 40000 40384 51517 51999

Имена Nmtop Ctop Nvars 52059 52191 52460 80

Для запуска RANDOMIZE USR 40000

(Некоторые из номеров и сообщений может быть различной, но не волнуйтесь)

Все эти цифры будут полезны для продвинутых программистов, но

Остальные из нас может их игнорировать. Все, что нужно знать, это то, что “Составитель OK” появилось сообщение. Если линия не может быть скомпилирован (Либо потому, что не имеет смысла или потому, что это один из Вещи, которые COLT не могут справиться с), то сомнительно линия воспроизводятся на экране с мигающим “? Знак рядом с оскорбления часть линии. Эта программа, если набрано правильно, не вызовет каких-либо ошибок.

Когда над появится экран, запустить скомпилированную программу

выполнив:

RANDOMIZE USR 40000 (и нажмите клавишу ВВОД)

Вы можете сразу увидеть разницу! Хотя нашем примере

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

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Кольт в деталях

Кольт является полностью Microdrive и интерфейс 1 совместим целое Основные компилятор для ZX Spectrum и Spectrum +. Это будет компилировать почти все ZX Basic код числе строк, все Микродиск Команды, команды ленты, команды RS232, сетевых команд и наконец команды связаны с исполнительной властью.

Кольт “Integer” Основное, что означает, что она может иметь дело только с целыми числами между -32768 и 32767. Это было сделано так что максимальная скорость может быть достигнута, делая COLT идеал для писать высококачественные аркадный стиль игры. Кольт был написан в Не используйте арифметику с плавающей точкой, как увеличение скорости над собственный интерпретатор спектра была бы незначительной.

COLT включает много особенностей, чтобы сохранить совместимость

с Spectrum Basic. Там нет специальных команд, которые не могут быть испытаны в нормальном интерактивной среде.

Вот список некоторых из особенностей Кольт:

Полный обработка строк

До 26 одномерные массивы и 26 одномерный

струнные массивы.

Полностью Microdrive / Интерфейс 1 совместимы

Все Microdrive команды, за исключением данных может быть составлен

Полные имена переменных

Доступ к основным переменным

Базовый доступ к Colt переменных

ВХОД с полной редактирования линии

Расчетные GOTOS

VAL и VAL $ можно использовать

Перерыв ключ может быть постоянно включен

Составляет до 32К Basic, производя очень быстрый код

Очень быстро компиляции (максимум 2 секунды на 1К Basic) с точной отчетности об ошибке

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Загрузка компилятор

Вы должны загрузить компилятор, набрав команду LOAD “”. Это

загрузит основной программы, которая дает некоторую информацию о компилятор. Вам будет предоставлена ​​возможность сделать работу скопировать на магнитную ленту или Microdrive. Это позволит вам для лечения копии, вы только что получили в качестве MASTER BACKUP. Кроме того, вы будет предоставлена ​​возможность изменить точку, в которой компилятор помещает скомпилированный код. Это RAMTOP, и для одна компилятор может быть между 26000 и 59000. Если вы используете Исполнительный а затем верхний предел 52000.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

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

персонажей ‘до’ Z ‘,’ А ‘до’ Я ‘и’ 0 ‘до’ 9 ‘(но цифры не может быть первым символом имени переменной). Как и в Basic, верхний и нижний регистр рассматриваются как то же самое. Там должны не быть любые цветовые коды, внедренные в имени или компилятор Объект. В приведенном ниже списке:

«Е» представляет собой произвольное выражение

“N” представляет собой положительное целое число, ‘$’ Представляет любую строку переменной или нарезанный строку Выражение (как в “х $ (от 1 до 4)”) ” Представляет собой любую простую или петли переменную ‘(Е) “представляет любую одномерный массив или элемент массива

Цветные значки и другие управляющие коды не должны появляться в

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

Когда «х», «у» и «г» приведены в качестве аргументов функции, то

плавающей оценку точку можно. Выражение «н / м» может заменить ‘X’, ‘Y’ или ‘Z’ и ‘Н / м’ рассчитывается дать плавающей результат точка. Н “и” м “может быть целые переменные или целые квадратные скобки выражения, например “СИГНАЛ 1 / 3,5” звучит бипер для 1/3 секунды. “СИГНАЛ (1 + 2) / (3 + 4), 5” звучит его для 3 / 7ths секунды. Знак деления является единственным оператором, который является разрешается вне скобок, и может быть один только за Аргумент (х, у или г).

Строковые выражения не должны содержать скобки (например, $ = (б $ + C $))

как они не нужны и, как правило, путают компилятор. В Сравнения PRINT заявления строка должна быть в скобках (скобки); например использовать “PRINT (” X “<" Y ")", а не "PRINT" х "<" у "".

Если не указано иное ниже работы, функции так же, как в

Базовая (напомним, что все арифметические операции выполняются в виде целого числа). Эта таблица должна быть рассмотрена в сочетании с Spectrum Руководство.

И Логическое “И”. Не может быть использован для смешивания строк

и цифры: например “Б $ = $ и 2” не будет собирать.

ABS е Ar е, е ATTR (е, е) СИГНАЛ х, у Смотрите комментарии о плавающей точкой выше.

ОГРН е ГРАНИЦА е BRIGHT е КРУГ х, у, г CHR $ е CLS и это и особый интерфейс 1 форма CLS # обрабатываются.

CAT Все формы поддерживаются.

Переменная облачность составлен только кодовые переменные.

Интерфейс 1 форма “CLEAR #” для сброса Каналы поддерживается. Форма “CLEAR 12345” НЕ поддерживается.

Закройте все формы поддерживаются.

КОД $ ПРОДОЛЖИТЬ Это не полезно в программе и может быть составлен. Это должно быть первым суб-заявление в многократном линии заявление.

КОПИЯ Список DATA ‘список’ должен быть список целых чисел или строк в кавычки и не может содержать выражения. Это должен быть первым и единственным оператором в строке.

DEF FN Пользовательские функции не поддерживаются!

DIM (v) только одномерные массивы доступны в Кольт.

DIM в $ (V) хранения обоих массивов и строк является обсуждаться позже.

Во время выполнения массив связан проверка минимальна для сделать скорость исполнения выше, возможно. Все массивы, строки и переменные стираются, когда вы повторно ввести программу COLT.

НИЧЬЯ х, у НИЧЬЯ х, у, г УДАЛЕНИЕ FLASH е FN Пользовательские функции не поддерживаются!

Отформатировать все формы поддерживаемых.

Для = U к У STEP ш “ШАГ” является обязательным. Обратите внимание, что разница между ‘U’ и ‘против’, не может превышать 32 767 и Цикл всегда проходится по крайней мере, один раз.

GOSUB н-н-целое положительное число. Быстрый форма GO SUB.

GOSUB е выражение должно начинаться с нечисловое (То есть не цифра), и это затем оценивается во время выполнения. Эта опция является относительно медленным и должны использоваться только в случае крайней необходимости.

GOTO н а GOSUB GOTO е как GOSUB ЕСЛИ е ТО В е INK е INKEY $ INKEY $ #e для интерфейса 1 ВХОД Редактирование точно так, как в Basic. Цвет операции и все три формы ввода может ВХОД (v) быть перемешаны. Суффикс #e разрешено ВХОД $ разрешает чтение из RS232 или от Microdrive файлы.

INT электронной Помогает тестирование в рамках интерактивной среде. INVERSE е LEN $ $ не может быть нарезаны.

Пусть а = е Пусть $ = $ ЛИНИЯ Загрузить все формы, включая Microdrive производные могут быть использованы, за исключением “LOAD … DATA”. Смотрите “команды Load” ниже.

LPRINT С или без добавления #E.

MERGE Переместить все формы поддерживаются.

NEW СЛЕДУЮЩИЙ См “ЗА”. Обратите внимание, что COLT ожидает, что «Вперед» будет следить “за”, когда код читать сверху вниз.

Открыть все формы поддерживается.

ИЛИ OUT е, е По электронной ДОКУМЕНТ е Пауза е PEEK е УЧАСТОК е, е POKE е, е ТОЧКА (е, е) Печать с или без #E.

RANDOMIZE RANDOMIZE е ЧИТАЙТЕ Читает список целых чисел из данных Заявления. Только минимальный проверен не выполнены, чтобы гарантировать, что типы являются правильными.

Читать $ Как для “ЧИТАТЬ”, за исключением того, что данные читать являются строками.

REM См особый тип ниже. Используется для тестирования Ключ ПЕРЕРЫВ.

ВОССТАНОВЛЕНИЕ е Восстанавливает указатель данных на линии е. Линия е должен существовать и быть заявление DATA.

ВОССТАНОВЛЕНИЕ инициализирует указатель DATA начала программа.

ВОЗВРАТ РНД Возвращает случайное число от 0 до 32767 (Это не совсем то же самое, как Basic). К получить тот же эффект в основных использование USR 59997.

Сохранить все формы, включая Microdrive версий (За исключением “Загрузить … данные”) не допускается.

ЭКРАН $ (е, е) SGN е СТОП STR $ е См комментарии к строк и секции называется “плавающей точкой?” ниже.

TAB е На все формы $ (м К п), $ (К п) и $ (м К) разрешается.

USR адрес USR “строка” VAL $ Если $ содержит ссылку на переменную, то Основные переменная с таким именем используется. Видеть “Извлечение из Basic” ниже.

VAL $ $ увидеть VAL Убедитесь, что все формы, кроме «Проверка … ДАННЫХ” позволило.

Все исполнительные команды этой формы составлен. Заметим, однако, что “* FX Гото е” всегда возвращается к базовой линии ‘е’, не составлен линия «е».

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Строки и массивы

Строки и массивы хранятся в базовой переменной пространстве

(То есть в пространстве, на который указывает системной переменной ‘VARS ” (Расположение 23627)) и в передней части этого пространства. Пространство необходимы для строк и массивов выделяется динамически, как возникает необходимость во время выполнения, так же, как в Sinclair BASIC. Существует один незначительное различие: если строка или массив становится все меньше, пространство возложенные на него не уменьшается. Это приводит к коду, который примерно в 5 раз быстрее, чем то, что бы привести строки были сделал точно правильный размер. В общем, обработка строка примерно от 20 до 25 раз быстрее, чем основной. Тот факт, что пространство не вернул является невидимым для пользователя, как запрос как “LEN $” даст ожидаемого результата. Одним из побочных эффектов является то, что Вы можете не осталось свободного места немного раньше, чем обычно. Тем не менее, этот процесс приводит к более быстрому коду для обработки строк, чем любой другой компилятор Спектр Basic.

Массивы работать в точно аналогичным образом и получить больше, но

не короче, если они будут перераспределены. Старый пространство массив повторно.

Единственное место, используемое между “STKEND ‘и’ RAMTOP” (Basic системы переменные) на время выполнения будет временное пространство используется при формировании строки выражения и строится из 256 байт выше STKEND (конец нормальной фундаментальной космической). Обратите внимание, что, как этот разрыв составляет всего 256 байт долго, строка не должна изменяться в длину более чем на 255 байт (символов) в один прием.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Сообщения об ошибках во время компиляции

Любая ошибка может привести к нарушившей линии становятся ток

(Редактирование) линия. Просто нажмите EDIT (CAPS-SHIFT и 1 одновременно), чтобы довести линию вниз к нижней части экран готов к редактированию.

Отчеты об ошибках:

1 Далее без For Утверждение а ‘Next’ использует переменную, которая не была видели до сих пор в “за” заявление.

2 Переменная не найдена

Был превышен Максимальное количество переменных (255).

Там нет никакого лечения, кроме как для использования меньшего числа переменных.

4 Из памяти

Длина стола для имен переменных не достаточно долго (Места изменения 59991 и 2 – в разделе “Технические данные” ниже).

8 Конец файла

Код не компилировать.

С Ерунда в Basic Это означает, что компилятор не может скомпилировать этот конкретный Заявление.

не G Нет места для линии

Пространство, выделенное для кода слишком мал; попробуйте уменьшить RAMTOP с “CLEAR п” с русской менее 40000.

не М RAMTOP ничего хорошего

Нет места для столов. Там должно быть достаточно места для имен, линии и переменные выше RAMTOP для компиляции, чтобы начать, даже при компиляции 32К кода.

N себе не найден

Использование GOTO или GOSUB пойти в номер строки больше 32767. Это может произойти во время выполнения с вычисленных GOTOS и GOSUBs.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Ошибки времени

3 Нижний индекс неправильно

Только очень зачаточном массив связан проверка выполняется в ускорить код.

6 Количество слишком большой

Обычно из-за деления на ноль.

В Integer вне диапазона Число больше 32767 или меньше -32768 был использован.

D и L ворваться в программе

Была нажата клавиша BREAK.

E Из данных

ПРОЧТИТЕ была предпринята после того как все заявления данные исчерпаны.

H STOP на входе

Ключевое слово “СТОП” был введен в ответ на ввод Заявление.

P FN без DEF

ИСПОЛНИТЕЛЬНЫЙ рутина была названа, но исполнитель является нет.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Сохранение скомпилированного кода

Если вы хотите сохранить ваш скомпилированный код необходимо сохранить как

скомпилированный код и компилятор. Это самый простой, чтобы спасти от RAMTOP (Обычно 40000) 65535 (физическая топ оперативной памяти), как это будет Также сохранить все пользовательские графики. “E! K” в исполнительной будут делать это автоматически, в противном случае команда:

ПУСТЬ RT = USR 59200: SAVE “имя” КОД RT, 65535-RT: ПУСТЬ RT = USR 59200

Не ворваться в этом SAVE или компилятор будет поврежден.

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

CLEAR (PEEK 23730 + 256 * PEEK 23731) + (Вар-End-5)

где “Вар” и “End” будут читать с экрана в конце компиляция. Код должен затем быть повторно и новая запись Точка отметил.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Re-погрузочной составлен кода
Это чрезвычайно важно, что перед повторной погрузкой составлен кода

в “чистом” компьютере вы должны “CLEAR п”, где-н-это адрес, по которому ваш код был скомпилирован (обычно 40000). Отказ сделать это, как правило, привести к краху системы. Если скомпилированный код которые вы повторно нагрузка содержит исполнительные команды, то Executive должны быть вновь начал с RANDOMIZE USR 55020. Это не необходимо для спрайтов или оконных функций.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Трассировки объектов

Очень полезно особенностью Кольт является то, что вы можете использовать его с или

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

Это достигается за счет трех различных отчетности “REM”, каждый из

образуют “REM #n”:

REM # 0

ПЕРЕРЫВ отключена за исключением “Scroll?”, ВХОД и во ленту и Microdrive команды. Это приводит к самым быстрым, маленький и самый безопасный код. Все программы можно разделить на до с Исполнительный.

REM # 1

Включен ПЕРЕРЫВ. Это производит длинный код, чем REM # 0, но ПЕРЕРЫВ работает как обычно.

REM # 2

При использовании совместно с исполнительной “* FX линия” Команда, номер текущей строки отображается каждый пятидесятый из Второй. Это, безусловно, является очень мощным инструментом при отладке. Это приведет к тому, номер строки (но не количество заявление) к быть напечатаны, если есть ошибка.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Компиляция до до 32K

Как правило, это возможно только для компиляции о 16К или так Basic в машине 48К (немного меньше, если вы используете исполнительной власти). Это потому, что машина должна провести как исходный код (т.е.

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

При работе в и из кассеты это явно хорошая

Метод, как вы до сих пор Basic подарок, чтобы попытаться еще раз, если ваш код не работает должным образом.

С появлением микродрайвы положение изменилось.

При условии, что вы сохранили Basic код, вы вряд ли против, если компилятор удаляет его из памяти во время сборник процесс. Этот факт используется в Кольт, чтобы позволить вам составить от 30 до 34K с Basic, следующим образом:

1) Сохраните ваши Basic код 2) с “чистым н” набор RAMTOP так что есть место для Площадь от «Вар» до «Ctop” (см “Технические данные”). Для Программа 32K это должны быть о 5K, так что используйте CLEAR, 55000.

3) записать переменную COLT на 59987 (два байта целое) с Окончательный RAMTOP адрес, по которому вы хотите код, чтобы быть составлен. Например, чтобы сделать его 32767 (= 127 * 256 + 255), тебе следует:

POKE 59987.255: POKE 59988.127

  • 4) Составьте. Если компиляция прошла успешно, то Basic площадь будет пустым. Если возникает какой-либо ошибки компиляции, Основные должна еще быть там. Сообщения об ошибках производятся как обычно. 5) Во время компиляции, стек машина была перемещена из Ваш оригинальный выбор места 65535 (так по-писать Последние несколько UDGs), а затем на новый выбранного значения.
  • 6) Перед повторной загрузкой любых файлов вы должны повторно выполнить шаг 2 выше или там не будет места для Basic.
  • 7) Следует отметить, что если у вас есть Исполнительного подарок, то о 25К только Basic может быть скомпилирован, и первое четкое (Шаг 2) должна быть примерно 48000. Для отключения исполнительной власти чтобы сделать больше пространства, тип:

RANDOMIZE USR 59190

и нажмите ENTER.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Возвращаясь к Basic

Раздел скомпилированный код автоматически вернется Basic когда он закончится. СТОП вызовет нормальный отчет об ошибке 9. Если Составленный Код называли командой немедленного режиме (печатается в нижняя), то никаких заявлений после “не RANDOMIZE USR н” будет быть выполнены. Если код называется линией в другой программе Затем он вернется в следующем заявлении. Это осуществляется путем скомпилированный код выполнения ПРОДОЛЖИТЬ, так что если вы хотите, чтобы вернуться в какой-то другой точке Basic, вы должны POKE “OLDPPC ‘(местоположение 23662) с номером строки и ‘OSPPC »(место нахождения 23664) с Заявление число. Это будет более-ездить значения положить туда компилятор и должно быть в скомпилированный код.

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

Код содержит строку “LOAD” Фред “”, и составлен код вызывается из линии 10, первого оператора, то компилятор будет вернуться к второй заявлении в строке 10 (если она существует) или Следующая строка в “Fred”. Следовательно, вы можете цепочка Basic и составлен Код. Заметим, однако, что команда НАГРУЗКИ уничтожит составлен массивы Кодекса и строки.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

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

из базовой переменной для использования в программе COLT. По этой причине, если аргумент функции VAL содержит ссылку на переменная, она использует основной переменной, а не COLT Переменная. Это позволяет писать такие заявления

ПУСТЬ Фред = VAL “Фред”

который возьмет на себя основной переменной ‘Фред’ и передать его значение

в переменную COLT “Фред”. То же самое относится и к членам массива:

Пусть B (10) = VAL “б (10)”

Функция “VAL $ ‘может быть использован для получения базовых строк в Кольт,

как это:

Пусть $ = VAL $ “на $”

который получает основной переменной строка ‘в $’ в COLT строки

Переменная ‘$’.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Принимая Colt переменные обратно Basic
Это не так просто, как в обратную сторону, так это специальная функция

была оказана помощь:

ПУСТЬ Фред = USR 59227: PRINT “Джон”

будет установлен основной переменной ‘Фред’ равным переменной COLT

«Джон». Это может быть продлен до массивы и строки:

Пусть точка = USR 59227: PRINT “В (п)”

будет установлен “точку”, чтобы быть целым указатель на первый член

Colt массива «В». -Н может принимать любое значение, но указатель всегда к первому элементу. Чтобы получить доступ к первому элементу массива ‘б’, основной линии, как

Пусть B (1) = PEEK точку + 256 * PEEK (точка + 1)

было бы достаточно. Чтобы добраться до «го» пользователя, использовать:

Пусть B (N) = PEEK (точка + 2 * (п-1)) + 256 * PEEK (точка + 2 * (п-1) +1)

коэффициент два учитывает тот факт, что существуют два байта на

член массива.

Для доступа к строке, мы должны ввести:

ПУСТЬ точка = USR 59227: PRINT “на $”

где “точка” указывает на первого члена COLT строки ‘$’,

(Т.е. $ (1)), «точка + 1″ указывает на второй элемент ($ (2)), и так далее.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

С плавающей запятой?

Мы уже говорили в начале, что COLT используется только целочисленную арифметику,

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

VAL и STR $ функции дают доступ к полной плавающей запятой

арифметика. Попробуйте:

PRINT STR $ VAL “SQR 3”

Вы увидите, что число с плавающей точкой печатается. VAL

функция может быть использована, чтобы сделать доступной всю плавающей точкой функции, такие как SIN, COS и TAN. С помощью функции VAL по Сам всегда возвращает результат операции с плавающей точкой в виде целого числа. Например:

ПУСТЬ = VAL “100 * SQR 20”

будет установлен “” быть 447.

Тем не менее, “STR $ VAL” был установлен, чтобы вернуть с плавающей точкой

привести в строку:

Пусть $ = STR $ VAL “100/3”

установит $, чтобы быть строка “33.333333”. Эта строка может быть

манипулировать дополнительно путем многократного использования этих функций:

Пусть B $ = $ + “* 2”

Пусть C $ = STR $ VAL б $

Наборы C $, чтобы быть в два раза значение числа состоявшемся в $:

“66.666666”. Этот процесс можно продолжать до бесконечности.

Отметим также, что любые переменные, используемые в кавычки, например, “A * B”, относятся к

Основные переменных »” и “б”, не кольт те. Эта форма арифметическое полезно, но будет работать при гораздо такую ​​же скорость, как базовое.

Вот несколько примеров:

10 LET = VAL “SIN (0,523598775) * 100 + 100 * 0,01”

20 PRINT

дает 51 как в фундаментальных и скомпилированный код. Следует отметить, что

Выражение не содержит каких-либо переменных. Это может быть осуществляется следующим образом:

10 LET B = 100

20 LET = VAL (“SIN (0,523598775) * 100 + 0,01 *” + STR $ б) 30 PRINT б

который использует скомпилированные переменную ‘B’. Однако, если линия 20 было

заменено:

20 LET = VAL (“SIN (0,523598775) * 100 + 0,01 * б”)

Основные переменная ‘б’ будет использоваться.

Все вышеперечисленные возврата целые значения, но с помощью строк мы можем

получить с плавающей точкой из них:

10 LET $ = “100 / LN 12+ EXP 2”

20 LET б $ = “SIN 1 + COS 2 + TAN 3 + 0.01” 30 лет с $ = VAL ($ + “2,34973 +” + б $) 40 PRINT C $

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

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Команды загрузки

Если вы хотите, чтобы составить эти слова предупреждения необходимо:

“Загрузка кода” будет работать правильно, но загрузка Basic опасно.

Она будет работать успешно, но при этом будут стерты все Colt массивы и строки из области ‘Вар’ от основной. Если вы не используя любой, то это не будет иметь значения, но в противном случае странно Результаты наступит.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Скорость

Скорость является главной причиной, что большинство людей покупают компилятор, и

Кольт производит очень быстрый код. Хотя некоторые функции, такие как Ничья, КРУГ и команды ленты не быстрее, чем Basic, другие очень быстро, действительно. FOR … NEXT петли на дне 16K Программа занимает в Basic почти 800 раз больше, чем при компиляции под Кольт. В целом, однако, улучшение примерно в 50 раз будет ожидать, соотношение улучшается с более крупных программ.

Исполнительные команды значительно различаются по объему они

ускорен. Простая команда будет намного быстрее, в то время как типичный Команда Sprite шаг может быть только от 2 до 4 раз быстрее, так как Исполнительные команды уже очень эффективным.

На стандартных “KILOBAUD” испытаний, используемых в большинстве журналов,

Средняя улучшение по сравнению Spectrum Basic составляет около 75 раз.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Странные ошибки

В большинстве случаев, когда COLT кажется, дает странные результаты в

Проблема может быть связано, как правило, к проблемам с целыми числами. Помните, что в расчет которого, как правило, дают дробный результат округляется до целого числа с Кольт, и что максимальная диапазон номеров, которые могут работать на это -32768 До 32767.

– – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –

Кольт в деталях

В этом разделе содержится подробная информация о более продвинутых операций

Кольт, вместе с внутренней работы системы и способов для повышения его.

Составитель вызывается с помощью команды:

RANDOMIZE USR 60000

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

до этого момента с последующим мигающим курсором будет показан.

Возвращение в базовый будет с нарушителя линия делается “Текущая строка” (она будет иметь ‘>’ предложение маркер после его Номер строки).

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

показать, второй проход сразу же становится. В обоих проходов Сообщение:

Компиляция линии хххх

появится. Это сразу за таблицей полезно

Информация о расположении вашего скомпилированного кода в машина. В таблице отображается, как показано на странице:

Начните Конец Вар Lines ххххх ххххх ххххх ххххх

Имена Nmtop Ctop Nvars ххххх ххххх ххххх хх

Для запуска типа RANDOMIZE USR ххххх

Чтобы объяснить эти цифры, мы будем использовать схему:

Основные | Запасные | Составитель Код | Не используется | Вар | Линии | Имена | | COLT | | — | | – |                                        | | | | |   STKEND RAMTOP Конечные Вар Lines Имена | |          = Начало | Ctop                                                             Nmtop

“STKEND ‘Basic переменная система (адрес 23653 и 4), которые знаменует конец пространства, занимаемого Basic.

“RAMTOP” Основные системная переменная, которая знаменует самый высокий

Первые два

По

Это воля

Самый простой

Это очищает

линия.

Это происходит потому,

Это необходимо

Процедуры.

машинный код.

Процедура состоит в следующем:

требуется.

переменные.

Для

Точка.

       

выполнена.

Исполнительный

Некоторые из

  

Каждый

  

  

В таблице

Также

Преимущество.

Если

Примеры:

больше.

из них.

Команды окна

На

Это

Когда

Экран.

В противном случае его

если это необходимо.

Положение.

лучшего.

нажата.

число.

число.

Адрес

Ошибка

Это означает, что

Теперь вы можете

Новый

Ваш

Например,

и возврат

контекст.

Экран.

Это должно

Клавиатура подключается

обвинить.

программы.

Пожалуйста, дайте нам знать,

1 2 3 4 5 6 7 8

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

Запустите HiSoft COLT Compiler и играйте. Эта приложения для разработки программ на бейсике, изданное в Великобритании в 1985 году компанией HiSoft, которое написали Threlfall & Hodgson, David Threlfall и John Hodgson.

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

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

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

  

Справка[X]

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

  • x1
  • x2
  • x3

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

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

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

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

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

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