Автокод БЕМШ

Автокод БЕМШ представляет собой автономную систему программирования для ЭВМ БЭСМ-6, состоящую из макропроцессора, ассемблера и связывающего загрузчика. Описание языка имеется в статье Автокод для БЭСМ-6 (1967).

Задание состоит из управляющих карт и текста программы. Каждая строка должна заканчиваться символом ^.

Пример небольшой законченной программы:

ввд$$$^
prog    старт   512^
        э64     инф64^
        пб      (13)^
инф64   мода    текст^
        мода    текст^
        конк    к'000010000'^
        конк    к'100000000'^
текст   текст   п'Приветик! Это автокод БЕМШ.'^
        конд    м40b'231'^
квч$$$^
трн$$$^
0-0^
кнц$$$^

Пример трансляции этой программы: bemsh-auto.b6.

Выдача на АЦПУ: bemsh-auto.txt.

Управляющие карты транслятора

Команда Описание
бпк$$$ Блокировка печати управляющих карт транслятора
ввд$$$ Ввод данных: задаёт начало текста программы.
квч$$$ Конец вводимой части: завершает текст программы.
трн$$$ Запрос на трансляцию программы. Следующая карта вида “число-число” задаёт строк программы, которые следует напечатать. По умолчанию текст программы не печатается. Карта “0-0” печатает весь текст.
кнц$$$ Конец задания для транслятора.
блмак Запрет макрогенератора (макросы в программе не раскрываются).
печмак Разрешение печати содержимого макрокоманд. По умолчанию содержимое раскрытых макросов не печатается.
бтмалф Отмена печати алфавитной таблицы меток.
зонмодNNNNNNLLLLLL Запись объектного модуля (перемещаемого) на диск в указанное место.

Пример трансляции записью объектного модуля на диск:

ввд$$$^
прог    старт   '70000'^
абр     внешн   абр.^
        пв      абр(1)^
        стоп^
        финиш^
квч$$$^
трн$$$^
0-0^
зонмод400000  0001^
кнц$$$^

Управляющие карты связывающего загрузчика

Команда Описание
мдл␣␣␣имя␣␣␣NNNNNN Добавление модуля с указанным именем и положением на диске в текущий набор для формирования готовой программы.
наз␣␣␣NNNNNN Начальный адрес загрузки программы в память.
зонгп␣NNNNNNLLLLLL Связывание модулей в готовую программу (неперемещаемую) и запись на диск в указанное место.
печмдл Печать списка модулей.
конец Конец задания для связывающего загрузчика.

Пример связывания трёх модулей “прог”, “абр” и “кадабр”, в единую программу:

мдл   прог  400000^
наз   070000^
зонгп 270034^
мдл   абр   400001^
мдл   кадабр400002^
печмдл^
конец^

Результат:

Р В С :01/78
  МДЛ ПРОГ    НАЗ  70000
  МДЛ АБР     НАЗ  70002
  МДЛ КАДАБР  НАЗ  70004
ЗОНГП=270034  СВ.ЗОНА=  270035  АМИН=70000 АМАКС=70004 АСВОБ=70005
 КОНЕЦ ЗАДАЧИ

Команды архива

Команда Описание
новмл Формирование пустого архива (“новая магнитная лента”).
вывогл Печать каталога архива.
архNN Задание диска с архивом, по умолчанию 42.
имя␣␣␣$$$$$$ Выбор (создание) файла с указанным именем.
зпб$$$ Запись текущего файла в архив, безусловная.
зпа$$$ Запись текущего файла в архив, условная (раз в день), с запасом в две зоны.
зпу$$$ Запись текущего файла упакованная, условная (раз в день).
лст$$$ Печать текущего файла. Следующая карта вида “число-число” задаёт строк программы, которые следует напечатать. Карта “0-0” печатает весь текст.