ZX Spectrum
Game

BASCOMP 2

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

Автор:

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


Язык

  • Русский
  • English

Управление

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

Игроков

  • Один

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

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

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

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

BASCOMP V2 Документация

                   

Ян Cull Bsc. 24/3/90.

Введение.

     BASCOMP является Базовый компилятор, написанный в Basic! Это может показаться бессмысленно, пока вы не поймете, что BASCOMP способен компиляции Сама.      Код, который BASCOMP производит это исходный текст сборка, вместо прямой машинный код. Причина этого заключается в том, что ему предлагает истинное понимание того, как компиляция будет достигнуто, без технические трудности, связанные в производстве фактический код (Например, вперед ссылок, и т.д.). Он также позволяет Полученный код, чтобы быть отредактирован, прежде чем сборки, которые могут привести к даже больше, скорость увеличивается по сравнению с первоначальной базовой программы.      Полученный исходный текст в сборе может быть преобразован в Фактическая машинный код с помощью BASASM, быстро Basic ассемблера также написано в Basic.

     Основные программы, которые могут быть собранные BASCOMP являются

ограниченное подмножество, что можно записать на компьютер Spectrum. Это, опять же, является преднамеренным, так что процесс компиляции может быть понимать легче. Самое главное, BASCOMP является число только компилятор.

     Однако, поскольку BASCOMP сама написана на Basic, это вполне реально для дополнительных объектов, которые будут написаны. BASCOMP может быть повторно, чтобы дать новый компилятор в состоянии справиться каковы бы ни были новые заявления не требуется. Будущее быстрее, чем Basic статьи в формате даст некоторые примеры расширения BASCOMP.

     BASCOMP было написано так, что, в то время как uncompilable Basic Сообщается, никакой ошибки проверки кода не включены в в результате программы по сборке. Это означает, что скомпилированные программы работать быстрее и проще для понимания. Тем не менее, это также означает, что программы должны быть сначала тщательно проверены с помощью нормально Спектр Basic, прежде чем доверять версию машинного кода.

Файлы поставляются.

bascomp2 Basic исходный код Basic Compiler basasm2 Basic исходный код Basic Assembler asmcompC Код версия bascomp2 (выполняет в 50000) и                basasm2 (выполняет в 43000) primes1 Программа испытаний (см ФОРМАТ Oct.’89) primes2 Программа испытаний (см ФОРМАТ Oct.’89) Тестовая программа участок для СЮЖЕТ & POINT графических процедур basasm2Cl Код версия basasm2 (выполняет в 25000) basasm2Ch Код версия basasm2 (выполняет в 58000)

Возможности BASCOMP.

     BASCOMP будет собирать целые только базовые программы, производство сборка источник вывода текста в поток 4.      Только номера -32767 до +32767 должны быть использованы, хотя номера 32768 до 65535 может быть использован, и будут преобразованы в их негативное эквивалент (32768 == – 32767, 65535 == – 1). Числовой Переменные ‘А’ до ‘Я’ не доступны – но имена не мульти-письмо. Отдельные подобранные числовые массивы “() ‘до’ Я () ‘доступны. Строки «A $ ‘и т.д., и струнные массивы’ $ () ‘и т.д., не доступны. Несколько подобранные числовые массивы не доступны.

               Действительно Неверный

              ПУСТЬ = 1 Аа = 1               ПУСТЬ (1) = 2 LET (1,2) = 3                                    ПУСТЬ $ = “1”

     Так числовых переменных ‘А’ до ‘Я’ только дать двадцать шесть

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

     I.E. Пусть A = 1, и пусть (1) = 2 будет эффективно закодированы.

          ПУСТЬ (б) = 1 будет менее эффективно закодированы.

     Поддерживаются следующие Основные положения: –
ГРАНИЦА, яркий, CLS, DATA, DIM, FLASH, ДЛЯ / NEXT / STEP, GOSUB /

ВОЗВРАТ, GOTO, IF / THEN, INK, INVERSE, ПУСТЬ, LPRINT, пауза, БУМАГИ, УЧАСТОК, PRINT, POKE, RANDOMIZE USR, читать, REM, ВОССТАНОВЛЕНИЕ, СТОП.

ПРИМЕЧАНИЯ:

     BRIGHT, FLASH, INK, обратный и бумагу можно использовать только в качестве заявления в их собственном праве – они не могут быть объединены в рамках PRINT или СЮЖЕТ заявления.

     Автоматическая CLS делается, когда программа выполняется.
     Данные могут быть только цифры.
     ДЛЯ способен обрабатывать положительные и отрицательные значения STEP,

хотя только номер (а не переменная) может быть использован. Левая & Правая части ТО может быть только цифры, переменные или приемлемые массивы (не выражения).

     До десяти вложенные ДЛЯ / следующий уровень поддерживаются, но это не проверяется.

     Там должен быть только один СЛЕДУЮЩИЙ для каждого ПО.

     GOSUB / GOTO может обрабатывать только цифры; высказывания типа GOTO

* 10 не поддерживаются. Обратите внимание, что GOTO / GOSUB / ВОЗВРАТ непосредственно переведены на сборку кода инструкции JP / звонок / RET.

Возможности BASCOMP продолжал

     LPRINT / PRINT более ограничены, чем основная форма. TAB и запятая и кавычки функции (и ‘) реализуются, но AT является нет. Перенаправление потока налицо (печать по умолчанию поток 2, LPRINT поток 3). Функция CHR $ можно использовать вот только преобразовать переменную к персонажу (PRINT CHR $ а). Строка в кавычках (PRINT “…”) также могут быть использованы. Переменные или номера можно использовать (PRINT), но выражения не могут (ПЕЧАТЬ * 3).      ПРИМЕЧАНИЕ: Предыдущий переменную или номер со знаком “+” будет позволяют негативы для печати, как их положительного эквиваленте.

     POKE может быть весьма ограничен, так как только места до 32767

можно использовать. Можно решить эту проблему с помощью Негативы (например, -1 == 65535 и т.д.), или путем добавления двух меньших чисел (32767 + 1 == 32768).

     СТОП кодируется для печати OK строку. Если программа работает ‘

от конца ‘, то же самое сообщение дается.

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

     Следующие функции поддерживаются для использования при

расчета целые результаты: –

     +, -, *, /, (…),<,<=, =,>=,>,<>, ABS, И, КОД, НЕ,

ИЛИ, PEEK, ТОЧКА

ПРИМЕЧАНИЯ:

     / Является целым числом только (3/2 == 1). INT может использоваться, чтобы убедиться в это при тестировании – INT игнорируется BASCOMP.

     Скобки гнездования (… (…) …) может быть до восемнадцати уровнях,

но не погрешность проверяется.

     Там нет переполнения проверки расчетов (20000 + 20000 = –

25536). Это может быть полезно в PRINT + функция используется.

     И, НЕ и ИЛИ всегда дают 0 или 1 Результаты (Спектр основной

не всегда придерживаются этого правила).

     Код может быть использован только в кодовой форме “единого-ХР”, который является

преобразуется во время компиляции на номер представительства один-CHR (КОД “” == 65).

     ПРИМЕЧАНИЕ: КОД “” “” == 34 является исключением в этом.      ПРИМЕЧАНИЕ: КОД INKEY $ можно использовать для проверки любых нажатий. Если не будет нажата ни одна из кнопок, то возвращается 0, в противном случае ключ код вернулся. КОД INKEY $ #x также может быть использован, чтобы получить следующий характер из открытого канала.

     PEEK нуждается дело с как для тыкать.

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

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

Возможности BASASM.

     BASASM преобразует сборки исходный текст, полученный с помощью BASCOMP, прочитанная из потока 4, в машинный код.      Все символы должны быть в верхнем регистре.      Не все инструкции машинного кода поддерживаются – только те, используется BASCOMP были проверены.      Этикетки В.А. … VZ может быть использован для идентификации переменных, и должны быть определены до их использования. Однако положительный или отрицательный Смещения могут быть применены (VA + 6).      Этикетки Xnnnn и Lnnnn могут быть использованы для определения мест, и не должен быть определен перед использованием. Когда расположение Lnnnn определен, он будет отображаться во время сборки, чтобы указать сборка продолжается.      Комментарии (предшествует запятой) будут игнорироваться. Поля разделены одним пробелом, вкладок или запятая. Линия заканчивается возвратом каретки. Все остальные управляющие коды игнорируются.      END должен быть использован для завершения сборки.

     BASASM может собрать код в любой области памяти уже не в

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

     BASASM можно определить переменные во второй и третьей половинки памяти экрана, при условии, что не более 4096 байт не являются необходимо, выпуская больше памяти для кода – BASCOMP & BASASM Сами собраны таким образом.

     BASASM является однопроходный ассемблер, который упрощает поток обработки на Spectrum. Это является причиной, почему В.А. … VZ должны быть определены перед использованием, и поэтому смещение не может быть применен в Xnnnn и Lnnnn этикеток.

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

     BASASM не должны найти никаких ошибок в исходном тексте, произведенные BASCOMP. Поэтому ошибки просто генерировать номер ошибки сопровождаемый текстом источник сборка линии, в которой ошибка была нашли.      Также возможно для Xnnnn или Lnnnn этикетки, чтобы быть не определено (в конце сборки).

Использование BASCOMP.

     BASCOMP и BASASM поставляются как основных программ, а также готовые к использованию в качестве кода в файле “asmcompC”. Предполагается, что этот файл можно использовать, так как повторно производству кода из Basic Программы ОЧЕНЬ медленно (хотя вполне возможно).

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

“AsmcompC”, чтобы получить машинный код. Если вам нужно больше места, вы может затем снимите 49999 освободить занимаемое кодом BASASM, оставив только код BASCOMP, который начинается в 50 000.

     Заметим, что при BASCOMP запускается, экран будет использоваться для хранение.

     Для использования BASCOMP, поток 4 должен первым открыл для

Microdrive / файл на диске, к которому исходный текст сборка будет отправлено.

     Для запуска компилятора BASCOMP машинный код, использовать RANDOMIZE USR 50000. После двух (или трех, если данные присутствуют) проходит через Основная программа, отчет покажет, сколько байт будет необходимо для переменных (V = количество) и сколько данных было составлено ( D = число).

     После компиляции закончил (или, если произошла ошибка) поток 4 должен быть закрыт.

Компиляция выход BASCOMPs.

     Когда вы успешно получить BASCOMP бежать, вы будете в конечном итоге с довольно большой файл, содержащий исходный текст сборки. Для изготовления Программа машинный код, это должны быть собраны.

     Для использования BASASM, поток 4 должны сначала быть (пере) открыт для

и тот же файл, к которому исходный текст сборки был отправлен.      Для запуска кода ассемблера BASASM машины, использовать RANDOMIZE USR 43000 (или 25000/58000 если другая версия находится в использовании). BASASM запросит начальный адрес для окончательного кода, а также для того, переменные должны быть сохранены в экране (который избегает величины, принимающие до космической программы, но может быть только использовать до 4096 байт переменных). В конце детали будут дать от размера кода и другие (возможно) полезно Информация.

     Если какие-либо Xnnnn или Lnnnn этикетки не определены, они теперь будут сообщили – нажатием любой клавиши продолжит BASASM работает. Xnnnn этикетки никогда не должно быть определено, но Lnnnn этикетки может быть определено, если составлен Базовая программа имеет GOTO / GOSUBs к не- существует линии (который в порядке в Spectrum Basic, но плохо практика) или к линиям, формирующие в без кода (например, REM или Линии данных).

     После того, как сборка завершена (или, если произошла ошибка) поток 4 должен быть закрыт.

Открытие файла для вывода.

     Microdrives: ОТКРЫТОЕ # 4; “м”; 1; “выходные” (или аналогичные)      Wafadrives: ОТКРЫТОЕ # * 4; “: выход” (или аналогичный)      Плюс D диск: ОТКРЫТОЕ # 4; D1 “выход” OUT (или аналогичный)      Плюс 3 диска: RANDOMIZE USR 23734      Swiftdisk: ОТКРЫТОЕ #% # 4; 0; “Выход”, “W”, “Т”

Открытие файла для ввода.

     Microdrives: ОТКРЫТОЕ # 4; “м”; 1; “выходные” (или аналогичные)      Wafadrives: ОТКРЫТОЕ # * 4; “: выход” (или аналогичный)      Плюс D диск: ОТКРЫТОЕ # 4; d1 “выход” IN (или аналогичный)      Плюс 3 диска: RANDOMIZE USR 23740      Swiftdisk: ОТКРЫТОЕ #% # 4; 0; “Выход”, “R”, “T”

Закрытие файла.

     Microdrives: CLOSE # 4      Wafadrives: CLOSE # * 4      Плюс D диск: CLOSE # * 4      Плюс 3 диска: RANDOMIZE USR 23737 (сделано OK автоматически)      Swiftdisk: CLOSE #% # 4

Примечания.

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

     Плюс 3 пользователи могут использовать дополнительные поставки машинный код

(Устанавливается по RANDOMIZE USR 65024), чтобы открыть файл “OUTPUT.LST” к Поток 4. Он входит в конец файла “asmcompC”.

     После этого, RANDOMIZE USR 23734 открывает файл для вывода, RANDOMIZE USR 23740 открывает файл для ввода, и RANDOMIZE USR 23737 закрывает файл.

     Обратите внимание, что закрытие файла автоматически всякий раз, когда сообщение с ОК (Или какая-либо ошибка) происходит, так RANDOMIZE USR 23737 требуется редко.

     Плюс D пользователи должны бороться с ошибкой в ​​плюс D диске,

вызывает файлы, открытые для вывода быть ошибочно написано, если задержки происходят во время выхода (и диск перестал вращаться). Дополнительный поставляемый машинный код называется по BASCOMP проверяет и решает эта проблема – использовать POKE 64970,42 после загрузки “asmcompC” подать включить код.

     Поскольку файлы открывается / закрывается от Basic и никаких специальных Необходимы средства, она должна быть возможность использовать BASCOMP и BASASM с? Любой? Привод Спектр система (даже RAMdisk на злополучный + 2А).

Образец сессия.

     Попробуем составлении следующей программы, используя BASCOMP и BASASM. Microdrive синтаксис будет использоваться, хотя то же самое относится все подачи система используется: –

          10 ДЛЯ х = 1 TO 10

          20 Пусть у = х * х           30 PRINT х, у           40 Вперед х

ВНИМАНИЕ: BASCOMP не любит пробелы в ваших основных программ – делать

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

     Во-первых, мы CLEAR, 42999, а затем загрузить * “м”; 1; “asmcompC” КОД к получить компилятор в память. После ввода в вышеуказанной программе, мы набираем: –      ОТКРЫТОЕ # 4; “м”; 1; “тест”: RANDOMIZE USR 50000: CLOSE # 4      Числа 10, 20, 30, 40, как вспыхивают программа составлен, первая предшествует 1, то на 3, то сообщение * END * (V = 4, D = 0), указывающая, что компиляция закончится.

V = показывает, сколько байт использовались для переменных, то D = шоу сколько использовались ДАННЫХ. Несколько странные графики на Экран являются переменные, используемые BASCOMP.

     Тестовый файл производится: –

               JP X1 (пропустить мимо переменные & DATA)

          VX DEFS 2 (здесь это область переменные)           В.Ю. DEFS 2                                    (DATA бы здесь)           X1 ПРИЗЫВ 3503; CLS (очистить экран)                ВЫЗОВ X2 (инициализировать переменные)           L10 LD HL, 1 (х = 1 изначально)                LD (VX), HL           X4 LD HL, 10 (х>10 еще?)                LD DE, (VX)                ВЫЗОВ X10010; TEST (библиотека рутина)                JP C, X5 (мимо СЛЕДУЮЩИЙ х, когда сделано)           L20 LD HL, (VX) (получить текущее значение х)                PUSH HL                LD HL, (VX) (получить его еще раз, чтобы сделать X * X)                POP DE                ВЫЗОВ X10008; MULT (библиотека рутина)                LD (VY), HL (у = х * х)           L30 LD, 2 (выберите поток 2)                ПРИЗЫВ 5633                LD HL, (VX) (печать х)                ВЫЗОВ X10006; PRTINT (библиотека рутина)                LD, 6 (сделать язычок запятой)                RST 16                LD HL, (VY) (печать у)                ЗВОНИТЕ X10006; PRTINT                LD, 13 (перевод строки в конце PRINT)                RST 16

Образец сессия продолжила

          L40 LD HL, (VX) (х = х + 1, так как ни один шаг не дано)                LD DE, 1                ДОБАВИТЬ HL, DE                LD (VX), HL                JP X4 (обратно ДЛЯ / следующий тест)           X5 (до сюда, когда его более)           L0 RST 8 (конец программы == СТОП)                DEFB 255 (дать OK сообщение)           X2 LD BC, 4 (инициализация код. Там                LD HL, VX 2 переменные для настройки           X3 LD (HL), 0, который означает, 4 байта, чтобы быть                INC HL устанавливается равным нулю)                Декабрь до н.э.                LD A, C                ИЛИ B                JR NZ, X3                RET           X10004 DEFB 213,17,0,0 (подпрограмм Библиотека)                  ,                  ,                  ,                  DEFB 201                END (Конец сборки)

     Если вы когда-либо смотрели на Z80 кода сборки и раньше, его

должно быть довольно легко понять выше программы – даже если я не добавили комментарии. Кроме того, он легко связать Код обратно к Основному программы (л этикетки в точности соответствуют с Основных номеров строк).

     Обратите внимание, что код может быть более эффективным, даже при такая короткая программа. Х * х рутина содержит избыточную LD HL, (VX), например. Это потому, что BASCOMP делает его сборник в довольно простым способом – таким образом, что он может быть недо- стоял.

Библиотека подпрограмм.

     Подпрограммы X1nnnn являются библиотечный код, написанный в конец источник сборка текст по BASCOMP. Необходимы только те процедуры написаны, но все записаны в виде чисел DEFB, а не как Источник сборка, что делает их трудно понять (но легче BASCOMP и BASASM справиться).

Данные.

     Любые заявления данные будут преобразованы в DEFW цифры во второй проход. Линии будут помечены L1nnnn (более 10000 чем обычный номер строки, чтобы отличить их). Если есть нет Ознакомиться с ними, второй проход не произойдет!

Образец сессия продолжила

     Теперь для компиляции выше исходный текст сборки, чтобы дать нам наша программа машинного кода. Набираем: –      ОТКРЫТОЕ # 4; “м”; 1; “тест”: RANDOMIZE USR 43000: CLOSE # 4      Теперь BASASM запросит начальный адрес (попробуйте 50000) и нужно ли сохранять переменные в экране (попробуйте N). Этикетки L10, L20, L30, L40, L0 будет мигать, затем следующий будет отображается (опять же, игнорировать странные графики): –           Код от 50000 до 50213           (Len = 213)           Всего L-метки: 5           Всего X-этикетки: 13           Вар: XY           1 байт оптимизирована      Большинство из указанных очевидно. Максимальное количество L-меток и X-метки, которые BASASM может обрабатывать это 500 (но не проверяется). Используется только переменные перечислены.      Сообщение ‘байт оптимизированы “указывает на то, какой-либо код был сокращается. Как прокомментировал ранее, BASCOMP производит довольно неэффективно код и BASASM запрограммирован распознавать и повторно кодировать некоторые из случаев. Байт 1 сохраняется здесь был, переписав Код для линии 20: –           L20 LD HL, (VX)                EX DE, HL (Быстрее и короче)                LD HL, (VX)                ЗВОНИТЕ X10008; Несколько                LD (VY), HL

Выполнение кода.

     RUN даст десять чисел и их квадратов довольно быстро, в Basic. Тем не менее, RANDOMIZE USR 45000 должны дать номера “мгновенно”. Разница здесь мало для этого Например, поскольку большую часть времени тратится отображения результатов.

     Если вы печатаете PEEK 50002 * 256 + PEEK 50001, это дает истинный

запуск кода (после переменных и данных). Это 50007 для этого примера.

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

     Вызов этого адреса плюс 6 (50013 для примера) будет Также пропустить инициализации переменных. Это может быть полезно если код должен быть использован в качестве подпрограммы (другая линия 50 ВОЗВРАТ могут быть добавлены для получения подпрограмму).

Перекомпиляции BASCOMP и BASASM.

     Если вы хотите добавить к BASCOMP или BASASM, вы должны повторно скомпилировать их, чтобы получить новый файл “asmcompC”.      Если вы используете какие-либо новые основные команды, вы не сможете использовать старый файл “asmcompC” скомпилировать Basic. Точно так же, если Вы используете какие-то новые команды исходные сборки. В любом случае, вы придется запустить основной источник, который будет работать, но будет ОЧЕНЬ медленно.

     При сборке, не забудьте указать тот же старт

адреса (50000 и 43000) и ответить Y в “магазин Вар на Экран ‘вопрос.

     Обратите внимание, что BASCOMP Basic не может поместиться в память вместе с полным файл “asmcompC”, при отсутствии четкого 49999 делается.

     Отметим также, что BASASM перепишет себя, если 43000 является указано, если вы не используете другую версию (тот в 25000, предпочтительно).

     Наконец, следует помнить, что файл “asmcompC” также содержит Код от 64970 … 65535, необходимы для Plus D или Plus 3 пользователей, которые не должно быть перезаписаны.

Скорости.

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

     Я использовал 128К Spectrum в режиме 48К, с 3,5-дюймовый Plus D Система.

     Во-первых, я использовал скомпилированную версию BASCOMP компилировать BASASM, производя исходный узел текстовую версию BASASM на диск.

     Запуск BASASM взял 125 минут, чтобы собрать себя (это называется «самонастройки»).

     Выполнение результате машинный код понадобилось всего 63 секунд, чтобы собрать себя – это более ста раз быстрее, без принимать какие-либо счета накладных расходов доступа к дискам, которые Значительная часть второй сроков 63.

     Другие испытания тайминги включены: –

     “Primes1” (без отображения каждого результата) по сравнению с 32,4 секунд до 1,6 – увеличение около двадцати раз.

     “Primes2” (без отображения каждого результата) по сравнению с 41,3 секунд до 0,4 – увеличение более чем в сто раз.

     “Сюжет” (графический тест) по сравнению с более чем десяти минут до 15 секунд – увеличение сорок три раза.

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

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

ОШИБКА *

     Эта ошибка не должна возникать, если у вас нет неправильно      измененное BASCOMP (см линию 1550).

ОШИБКА.

     Эта ошибка означает, что конец заявлении не было      где ожидалось. Это может быть вызвано, если uncompilable      Основные используется      Пример: GOTO 10 *               ПЕЧАТЬ НА 10,10;

ОШИБКА @

     Эта ошибка дается, когда в массивы используются неправильно      Пример: ПУСТЬ (1 + 2) = 3

КОД ОШИБКИ

     Эта ошибка означает, недопустимое использование функции CODE      Пример: Пусть A = код А $               Пусть A = КОД “ABC”

ОШИБКА DEF FN

          Эта ошибка не должна возникать, но связана с ОШИБКА FN           (См линию 1250).

ОШИБКА DIM

     Эта ошибка означает, недопустимое DIM о      Пример: DIM в $ (10)               DIM (10 + 20)

ОШИБКА FN

     Это дается, если используется uncompilable функция      Пример: Пусть A = PI               Пусть A = SQR 10

ОШИБКА НА

     Эта ошибка означает, инвалидом заявления

ОШИБКА INT

     Это дается, если целое число, как ожидается, и не нашли      Пример: GOTO * 10               Пусть а = 1,2

ОШИБКА LET

     Это дается, если LET заявление непризнанных      Пример: ПУСТЬ ABC = 1

Сообщения об ошибках BASCOMP продолжал

ОШИБКА ЛИНИИ      Это дается, если используется uncompilable заявление      Пример: 10 рисовать 10,10

ОШИБКА СЛЕДУЮЩИЙ

     Эта ошибка означает, недопустимое следующий оператор

ОШИБКА POKE

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

ОШИБКА ТО

     Эта ошибка означает, что тогда не следовать, если где его      Ожидалось. Это может быть вызвано, если uncompilable Basic является      используемый

ОШИБКА НА

     Эта ошибка означает, что на часть заявления о      Не было найдено, где ожидалось      Например: х = + 1 до 10

ОШИБКА ПРОВЕРКИ

     Эта ошибка означает, что проверка BASCOMP не удалось. Это      может произойти, если массив имеет размеры в два раза, или если DIM      утверждение не происходит перед использованием массива.

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

     Как уже было сказано, BASASM не должны найти ошибки в текстовом файле исходного сборки. Если, однако, найдена ошибка, это идентифицируется номером ошибки. Это число является линия Количество в программе BASASM Basic, в котором была найдена ошибка.      Текст линия источник сборка обрабатывается на время Также отображается.      Поэтому, чтобы определить ошибку найденную BASASM вы будете должны ссылаться на программу BASASM Basic, и выяснить, что BASASM пытался собрать в то время. Это не сделано просто потому, что BASASM написано полностью с помощью заявления данные для определить исходный текст в сборе (потому что строки не поддерживается по BASCOMP).      Есть ограниченные заявления REM в BASASM, которые должны помочь!

     ВНИМАНИЕ: BASASM является один проход ассемблера, и дело с

опережающие ссылки на строительство “цепочки” из неразрешенных ссылок в коде производится. Это является эффективным, но означает, что это не возможно, чтобы собрать по площади ROM – просто найти , какой размер результирующий код будет.

Данные файла.

bascomp2 Базовая программа, которая способна «самонастройки»           Сам производить монтаж исходного текста версию           та же программа. Выход на поток 4 (если только           Значение переменной а изменяется). Все необходимые “библиотека”           код включен (как заявления DATA – см код на           линии 8200 года).

basasm2 Базовая программа, которая может конвертировать исходный текст сборки           производится bascomp2 в программу машинного кода.

          вход из потока 4. Некоторые оптимизация являются           пытался во время сборки.

asmcompC машинный код версии bascomp2 и basasm2, грузы в           43000 (длина 22536). На 43000 является basasm2 код; на           50000 bascomp2 код.

          Плюс D версия имеет код в 64970, чтобы остановить диск пишет           диск, который не остановится.

          Плюс 3 версия имеет код в 65024, который устанавливает           Процедуры для реализации потока 4 обработку файла           OUTPUT.LST.

primes1 Примеры Основные программы, которые могут быть составлены, чтобы увидеть то, что primes2 улучшение BASCOMP может дать – попробуйте удалить PRINT           Операторы внутри петель, чтобы увидеть увеличение скорости от           до 150 раз!

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

basasm2Cl Альтернативная машинный код версия basasm2, работает на           25000. Для использования при производстве код, который накладывает           35000 … 65535.

          Примечания: 20% медленнее, так как это в утверждала, ОЗУ.

basasm2Ch Альтернативная машинный код версия basasm2, работает на           58000. Для использования при производстве код, который накладывает

          25000 … 57999.

Краткая информация о BASCOMP 2

Для игры в BASCOMP 2 не нужны эмуляторы. Это приложения для разработки программ на бейсике, которое создал Ian Cull, было издано компанией Format в 1990 году в Великобритании.

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

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

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

  

Справка[X]

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

  • x1
  • x2
  • x3

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

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

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

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

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

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