Справочник по системным программам 1969 г.

Описание программ - оптимизирующий компилятор языка бейсик - BLAST.


Оптимизирующий компилятор языка бейсик - BLAST

Начало работы

Бласт загружается так:
LOAD "BLAST"

Бласт самостар1*ует и на экране появляется надпись:
BLAST OCSS 1985 ххххх BYTES FREE,
(здесь ххххх - об'ем свободной памяти)
В этом месте Бласт делает проверку на то. имеете ли вы право пользоваться
этой программой.

ENTER THE COLOR IN SQUARE x-x* (W.Y.G.R)?
Для тек. кто пользуется оригинальной версией программы, с неудаленной защи-
той. имеется таблица:

Таблица кодов для входа в Бласт

ABC

DEF

GHI

JK

LMN

OPQ

RST

UVW

XYZ

ABC

DEF

GHI

JK

LMN

OPQ

RST

UVW

XYZ

40

RYG

RYG

GRY

GW

GGY

RRY

GYG

YGW

YGG

20

RGY

YGY

RYG

RY

RYW

YRR

GYG

RYG

WYR

39

YGR

YWG

YGG

RG

YRG

YGG

RGR

GYG

RGR

19

YGR

GGW

YGY

GR

GWG

WGG

WGW

GGY

RRG

38

GYG

GYR

RGY

GY

RGY

WYR

YRG

RGR

GYG

18

RYG

RGY

RGR

RY

WYG

YRG

RYG

YGR

GRY

37

RGY

GRY

GGR

YW

YRG

YGW

GYG

YGY

GGR

17

YWG

YRG

RGY

GG

YGW

GYR

YGY

GYG

GYR

36

YRG

GYG

RYG

GG

RGY

GRG

RGW

GYG

GGY

16

GGG

RGR

YRG

RG

RGY

GGG

GGG

RGR

YRG

35

GGY

YGW

YEY

GR

YRG

RGY

GYR

YGW

YRY

15

YRG

YRY

WYG

RR

YRR

YRG

RYR

YRG

WYG

34

RYG

RRY

GYR

YG

YYG

YYG

YRG

GRY

GYG

1 4

GYR

RGG

YGG

RG

WGG

RGY

GWG

YGY

GGY

33

YRG

YGR

YGG

RG

GGR

GRY

GYG

YGW

YRG

13

GGY

GYG

YWY

GY

GWY

GRG

YGY

GYG

YRG

32

RGY

GYG

RYR

YW

GGY

RGW

YGY

RGY

RYG

12

RYR

GGR

GGR

YR

GWG

WYG

RGG

YRG

WGY

31

GYW

GRY

GRG

GR

YGR

YRG

YGR

YRG

GRG

1 1

YRY

WGY

GRY

WY

GGY

GRY

GYG

RYR

YGR

30

YRG

YGR

YRY

RG

GRY

GYR

YRY

WYG

YGW

10

RGG

TTG

RGR

YG

RYW

YGR

GGW

GWG

RGY

29

RYR

GWG

GGY

RY

WYG

RGG

RYR

GGW

GRY

9

GYG

RGR

YGG

GY

RGY

GGY

RYG

WYG

YYG

28

GRG

YGG

YRG

YG

YGY

GRR

YGt

RRY

RGG

8

RGW

YRY

GRY

RR

GRG

RYG

YGG

YGR

GRW

27

RYG

RYR

RYR

GG

GWG

RYG

RWR

GYR

GRY

7

YRG

GYW

GYG

GY

GYR

YYW

GYR

GRY

RYG

26

YRG

GYG

YRG

YR

YGR

YRG

RGG

YWY

GYR

6

GYR

YRG

GGR

GG

RRG

RGG

YRY

WYG

YRG

25

GYR

YRW

GYR

GG

RYR

GYR

GYR

GYG

RGY

5

YWG

GGY

YWG

YW

GGR

GYR

GYG

YGY

GYR

24

RGG

RGY

GRY

WG

RGG

RGW

YGG

RGY

GYR

4

GGY

RGR

GGY

RR

YRG

YWY

GRY

RGW

YRG

23

GGG

YRG

RYG

GY

YRY

GRG

GWY

GRR

YGY

3

RYR

GYG

RYR

YG

RGY

GGR

RGR

GYG

RGY

22

YWY

RYG

YGG

YG

RYR

GYR

YGR

RGY

WYG

2

YGG

GRG

YGG

RY

GRG

RYR

YRY

RGY

RYG

21

GGR

GRY

GYW

GR

YGY

GGY

RRY

GRR

GRY

1

WYR

YGY

WYG

YG

RYR

GWY

GYG

GRY

GGW

W - белый, Y - желтый, G - зеленый. R - красный. Введите соответствующую бук-
ву и нажмите ENTER. Чтобы выполнить проверку, надо 4 раза правильно ответить на
запрос. Команды Бласта начинаются со звездочки (*), чтобы отличать их от команд
бейсика.

Теперь загрузите бейсик-программу, не превышающую Зк и наберите «С. чтобы вы-
полнить компиляцию.

Чтобы запустить откомпилированную программу, наберите: *R.

Запись откомпилированных программ: *S.

Компилирование больших программ.

Компилирование RAM-RAM возможно только для коротких программ. Чтобы обойти
это неудобство, Бласт имеет возможность читать исходный файол с ленты или мик-
родрайва и записывать об'ектный код на любое из этих устройств.

Выбор входного и выходного устройств.

Нажмите *1 и ответьте на появившийся вопрос клавишей:

R - память RAM.

Е - магнитофон (лента).

М - микродрайв.

Чтобы задать выходное устойство. нажмите *0.

Работа с лентой.

Вследствие ограниченной возможности ввода/вывода при работе с лентой, програм-

ма, подлежащая комкнляцьм, должна бить сначала переписана на ленту в специальном
формате.Средства дл! этого находятся в прилагаемой к бласту программе TOOLKIT.

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

Ком(илнрп>вакие с ленты на ленту.

8 этом режиме используется две ленты. Одна с исходным файлом в специальном
формате (см.Выше)

Когда вы нажмете *С для компиляции. Бласт попросит вставить кассету с исход-
ным файлом и включи'ь магнитофон. Через некоторое, время прозвучит сигнал, и вам
будет предложено шменять ленту. Необходимо остановить ленту с исходным файлом
в течение 5-ти с,кунд после звукового сигнала. Если вы этого не сделаете, то
есть вероятность, ч'о какие-либо данные будут потеряны.

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

Тип кода, который должен быть сформирован, задается с помощью директив:

REM! P-CODE - гегерирует пи-коды (а также по умолчанию).

REM! MASHINE-COO: - генерирует машинные коды.

Обработка машинного кода.

1. 0ткомпилиров1нная программа может резервировать пространство для блока в
машинных кодах путе< понижения RAMTOP обычным путем.

2. Переменные бйснка храниться в Бласте таким же образом, что и в бейсике,
поэтому блок в М1ШИННЫХ кодах, имеющий к ним обращение, будет работать и в
Бласте.

3. Процедуры в машинных кодах, расширяющие бейсик перехватом процедур обра-
ботки ошибок (или какими—либо другими методами) по- прежнему будут работать.

Выполняется это с:едующим образом. Если во время компиляции "Бласт" встречает
выражение, которое выглядит синтаксически неверным, компилятор компилирует его
в об'ектный файл и фиписывает ему выходной код. Когда во время работы програм-
мы процедуры RTS вс речают этот выходной код. они вызывают бейсик-интерпритатор
для его обработки Если выражение содержит ошибку, интерпритатор сообщает об
этом и выходит и: нее обычным путем. Если же это не ошибка, а предусмот-
реннное расширение «ейсика, интерпритатор ведет себя так, будто текст и не ком-
пилирован.

Расширение бейсик*. предусмотренное Бластом. также как и директивы компилято-
ра. вводятся в фо|ме специальных инструкций REM, которые распознаются Бластом
во время компиляции

Если Бласт встречает выражение REM, начинающееся с символа "%". он вырабаты-
вает код, который вызывает передачу выражений REM с опущенным знаком "%" в ин-
терпритатор во врем! рабочего запуска. Бласт сообщает об этом :

COMMENT TRANSFERID AT LINE хххх

1спользование целых переменных

Об'явление типа временной выполняется следующей директивой, например:
REM ! INT I J, К, A(10,5)

здесь переменные .J.К, и весь массив А. т.е. DIM А(10.5) уже давать не надо.
Об'явление типа долхно быть до употребления переменной.

Запита откомпилированных программ

1. Автозапуск.

Если в начале бе»сик-программы включить строку

REM ! AUT0RUN, Бласт вызовет автоматическое выполнение файла после загрузки.

2. Защищенный пи-код.

Пи-код, который (енерируется Бластом. это недокументированный язык и поэтому
предоставляет более высокий уровень его защищенности, чем машинный код. Поэтому
рекомендуем защищаюиие процедуры писать на бейсике. и компилировать их в пи-код.

Копирование программ, прошедших Бласт

Откомпилированные программы не могут б*1ть выгружены напрямую через SAVE. Ко-
манда S доступна Д1Я программ, которые были откомпилированны из RAM в RAM,но S
не выгрузит откомпилированную программу, если она загружалась с ленты или с

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

Запись на ленту:

1.Загрузите откомпилированную программу.
2... ставьте следующие строки:
15 LOAD "<PROG>"

20 RANDOMISE USR PEEK 23635+ 256*PEEK 23636 + 150
3.Наберите:

SAVE "<PR0G>" LINE 15

Запись на микродрайв

Процедура записи на микродрайв точно такая же. за исключением того, что дол-
жны присутствовать обычные параметры микродрайва. Например:
15 LOAD* "М";1;"<PR0G>"

20 RTANDOMIZE USR PEEK 23635+256*PEEK 23636 + 150
и наберите:

SAVE*"M";1;"<PR0G>"LINE1 5

Директивы компиллятора.

Бласт предоставляет определенные возможности выбора при компиляции. Они
реализуются посредством директив компиллятора. Выполняется это специальными вы-
ражениями REM в форме:

REM! <Директнва>
Существуют также две дополнительные формы инструкций REM.

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

REM& применяется для открывания дополнительных инструкций бейсика. пред-
усмотренных Бластом.

1. REM! PC0DE - по этой директиве бласт компиллирует программу в пи-коды.

2. REM! MACHINE CODE - генерация в машинные коды.

3. REM! INT I.J.К - об'являет переменные I.J.K как целые.

4. REM! AUT0RUN - обеспечивает автоматический запуск откошнллированной прог-
раммы после загрузки.

Список дополненеий к бейсику:

1. Включение и выключение клавиши BREAK:
REM& BREAK ON

REM& BREAK OFF ( по умолчанию кл. выключена)

2. WHILE...WEND:

форма: REM& WHILE <условне>
REM& WEND

По этим командам блок операторов, замыкаемый REM& WEND выполняется многократ-
но. до тех пор, пока <условие> истинно (не нуль). Если <услсзие> ложно, опера-
торы пропускаются.

3. REPEAT...UNTIL
форма: REM& REPEAT

REM& UNTIL <условие>
Блок операторов между REM& REPEAT и REM& UNTIL выполнняется много кратно. пока
<условие> имеет ненулевое значение.

4. D0KE

форма: REM& DOKE <NE>.<NE>

Здесь '^Е^-числовое выражение. Все это 16-битная инструктя РОКЕ Результат
второго выражения помещается в адрес, на который указывает повое выражение.

5. DEEK - 16-битная инструкция РЕЕК. Форма записи анаюгична предыдущей.

6. CALL

Форма: REM& CALL <NE><cnucok параметров>

Эта команда вызывает процедуру в машинных кодах, содержащуося по адресу, за-
даваемому выражением "NE". Параметры разделяются запятыми; oih могут быть либо
числовыми переменными в диапазоне от 0 до 65535 или адресами числовых перемен-
ных, тогда они записываются так:

& <имя переменной)

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

7. ELSE форма: rem5, else (список инструкций>.

Это дополнительное разрешение расширение к конструкции IF. ..ELSE.

Программа TOOLKIT

К Бласту прилагается довольно обширный набор средств для облегчения разработ-
ки программ (TOOLKIT).

TOOLKIT автостартует после загрузки и выдает на экран сообщение:
BLAST TOOLKIT OCSS 1985

Как и компилятор Бласт, TOOLKIT загружается в верхнюю часть RAM и устанавли-
вает RAMTOP ниже себя. При этом об'ем доступной памяти снижается примерно на
2к.

TOOLKIT не может находиться в памяти компьютера одновременно с Бластом.

Ниже приведен список команд TOOLKITA. Они начинаются со знака (*), обозна-
чаются одной буквой, за ней идут параметры.

N1 - N2 - обозначает: от строки N1 до строки N2.

N1 - - обозначает: от строки N1 до конца программы.

- N2 - обозначает: от начала программы до строки N2.

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

Команды обработки строк

1. Редактировать строку N1. - *EN1.

2. Копировать строку N1 в N2 - «С N1.N2.

3. Убрать строку N1: - *d N1.

4. Перенос строки N1 в N2 (строка N1- уничтожается)-*М N1,N2.

Команды обработки блоков

1.Копирование:*С<днапазон>,N. По этой команде копируются все строки из задан-
ного диапазона в строки, начиная с n.

2.Стирание:*0<диапазои>

3.Перенос строк:*М<диапазон>.N.

4.Перенумерация:*R<Anana30H>,N1,N2 строки из заданного интервала перенумеро-
вываются, им присваиваются номера от N1 с шагом через N2 . По умолчанию N2 рав-
но 10.

Команды обработки стрингов

1. Поиск:*F<диапазон), N$ по этой команде в заданном диапазоне строк разыски-
вается заданный стрннг. По умолчанию программа будет искать последний введенный
стринг.

2. Поиск с заменой: *S <диапазон> N1$, N2$ отыскивается первый стринг и заме-
няется на второй.

Прочие команды

1. TRACE: *TN по этой команде на экране печатается номер выполняемой в данный
момент инструкции, начиная со строки N. Замедлить вычисления можно клавишей
пробел, а остановить клавишей ENTER.

2. Устранение всех строк REM, кроме тех. которые начинаются с "!", "%".

3. Запись на магнитофон блока программы.

*W <диапазон>,<имя файла>

4. Запись на ленту программы в формате, удобном для компиляции Бластом с лен-
ты. Программа будет выгружена блоками, совместно с информацией, необходимой для
компиляции.

*В <имя файла)

5. Конец работы : *Q

Карта памяти во время рабочего прогона
Карта памяти Бласта программы

PRAMT -------------------------------' PRAMT -----т--------------------------

графика пользователя графика пользователя

бласт RAMTOP --------------------------------

RAMTOP--------------------------------------------------------------стекн GO SUB, машинный стек

стеки GO SUB. машинный стек свободная область RAM

свободная область RAM STKEND-------------------------------—

STKEND ----------------------------------------------------------------STKB0T ---------------г----------------

стек калькулятора рабочее пространство

STKB0T --------------------------------------------------------------WORKSP --------------------------------

рабочее пространство область редактирования

WORKSP --------------------------------------------------------------ELINE --------------------------------

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

ELINE --------------------------------VARS --------------------------------

переменные бейсика откомпилированная программа

программа на бейснке информация о каналах

PROG -------------------------------CHANS ---------------------------------

информация о каналах карты микродрайва

CHANS ----------------------------------------------------------------рабочие процедуры

карты микродрайва системные переменные интерфенса-1

системные переменные интерфейса-1 системные переменные

системные переменные буфер принтера

буфер принтера атрибуты

атрибуты экранная память

экранная память ROM

ROM




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Юмор - анекдоты.
Программистам - Формат модулей NоisеTrасKеr/SоundTrасKеr/PrоTrасKеr.
Кто там кодит? - Chanky flame: описание алгоритма чанкового огня.
Есть такое мнение! - Сделай книгу сам или болезнь сиквела.
Белый_попугай - Анекдоты.

В этот день...   7 мая