Справочник по системным программам для компьютера ZX Spectrum 1991 г.

Описание TOBOS FP - быстрый компилятор бейсика TOBOS FP.


Н TOBOS FP - Полный быстрый компилятор BASIC-a

1. Загрузка и запуск.

Компилятор загружается инструкцией LOAD "". После загрузки
он занимает область памяти от 53100 до 65367. Графика пользователя
остается без изменений. Программа-загрузчик выполняет команду
CLEAR 39999, резервируя память выше этого адреса для нужд ком-
пилятора. Пользователь может изменить значение RAMTOP. Ком-
пиляция производится с помощью инструкции.

RANDOMIZE USR 53100.

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

RANDOMIZE USR 40000,
либо записать в команде

SAVE "имя" CODE ХХХХХ, YYYY
где ХХХХХ - стартовый адрес, a YYYY - длина полученного кода.

1.1. Ограничения компилятора TOBOS.

Компилятор не воспринимает инструкций, связанных с обслу-
живанием магнитофона и MICRODRIVE, CONTINUE и CLEAR с
аргументом. Остальные инструкции принимаются с учетом их фор-
матов. Однако, невозможно продолжить исполнение прерванной
программы. Также не существует простых способов перемещения
переменных между областями памяти BASIC-A и компилятора. Из-
за используемого формата записи данных все числовые результаты
печатаются с точностью до 7 значащих цифр.

1.2. Ошибки во время компиляции и исполнения программы.

Информация об ошибках выводится в соответствии с практикой
ZX SPECTRUM, т.е. с соответствующими номерами строки и инст-
рукции. Ниже описаны сообщения об ошибках, которые имеют осо-
бое значение:

- NONSENSE IN BASIC - использована недопустимая инструк-
ция (см. пункт 2);

- OUT OF MEMORY - (см. пункт 4);

- VARIABLE NOT FOUND - отсутствие описания переменной,
т.е. отсутствие инструкции FOR, LET, INPUT, READ для простой
переменной. Такое сообщение может появиться при исполнении про-
граммы, однако оно не относится при этом к простым числовым
переменным, поскольку они инициализируются нулевыми значени-
ями;

- RAMTOP NO GOOD - переполнение машинного стека. Как
правило, в таком случае достаточно увеличить RAMTOP на 100, или,
если ранее исполнено CLEAR 23999, то выполнить CLEAR 24099.

1.3. Большие программы.

Сообщение OUT OF MEMORY может появиться во время за-
грузки программы, во время компиляции или при исполнении ском-
пилированной программы. В этом случае следует применить один из
описанных ниже методов:

- использовать инструкцию CLEAR ADDR для перемещения
RAMTOP вверх или вниз с целью освобождения большей области
памяти для программы на BASIC-E или для машинного кода;

- использовать режим, при котором в процессе компиляции со-
здается более короткий код. Скомпилированная таким образом про-
грамма выполняется даже быстрее, однако возможные сообщения об
ошибках не содержат соответствующих номеров строки и инструк-
ции. Этот режим обеспечивается с помощью команды РОКЕ 53252,0
и выключается с помощью команды РОКЕ 53252, 55;

- переместить скомпилированную программу на место уже не-
нужной программы на BASIC-E и запустить ее инструкцией

RANDOMIZE USR <АДРЕС_НАЧАЛА_ПЕРЕМЕЩЕННО-
ГО_КОДА>

- код не должен занимать пространство ниже RAMTOP и об-
ласть, занимаемую компилятором;

- использовать режим, при котором уничтожается программа на
BASIC-E в процессе компиляции. Режим включается инструкцией
РОКЕ 53240, 0 и выключается инструкцией РОКЕ 53240, 55.

Лучше всего выполнять CLTAR 53099 максимальное простран-
ство для BASIC-A, загрузить программу на BASIC-E и затем выпол-
нить компиляцию с помощью

RANDOMIZE USR 53100.

По окончании компиляции исполняется инструкция CLTAR
23999, а программа исполняется по инструкции

RANDOMIZE USR 24000.

- Ячейки с адресами 58112 и 58113 служат для определения
адреса, с которого размещается код программы в режиме компиляции
без уничтожения исходного текста (см. пункт 4). Если в обеих ячей-
ках будут нули, то код размещается с адреса RAMTOP+1, в против-
ном случае с адреса

РЕЕК 58112 + 256*РЕЕК 58113;

- Если первая строка программы записана в виде

1 IF 1/2-0.5 THEN RANDOMIZE USR 53100:

RANDOMIZE USR 40000: STOP

то инструкция RUN автоматически вызовет компиляцию и пе-
реход к исполнению программы. Это позволяет исключить ошибки
при записи RANDOMIZE USR... ~

- Во время исполнения скомпилированной программы компиля-
тор должен находиться в памяти ЭВМ;

- Ячейки памяти с адресами 53631 и 53632 содержат информа-
цию об адресе, с которого размещается код программы в случае ком-
пиляции с уничтожением исходного текста (см. пункт 4).

По умолчанию АДРЕС РЕЕК 55631 + 256*РЕЕК 55632 содержит
значение 24000 для магнитофонной версии и 24100 для дисковой
версии TOBOS FP.




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Юбилеада - Пивной бунт на тихом озере: шуточный отчет FOX'a о поинтовке.
От авторов - Virt group и газета ZX-News.
Editorial - alff: Changes... is air...
Каракули мозга - Один день в школе (продолжение).
Разборочка с геймочкой - разбор игры "Земля заклинателей" (Magicians Land).

В этот день...   29 апреля