vak: (Default)
[personal profile] vak posting in [community profile] besm6
В мониторной системе "Дубна" была возможность создавать статические бинарные образы программ. Правда, обычные юзеры этим не пользовались: им хватало динамического загрузчика. Назывались такие бинарники оверлеями.

Покажу, как создавать и выполнять статические бинарники. Создаём скрипт hello.dub с простейшей программой на Алголе. На 60-е направление открываем файл "hello" на запись, то есть создаём его. В конце вызываем утилиту OVERLAY, которая на 60-м направлении создаст бинарный образ программы.
*name hello
*disc:1/local
*file:hello,60,w
*algol
'begin'
print(''Hello, Algol!'');
'end'
'eop'
*call overlay:60
program
*end record
*end file
Выполняем:
$ dubna hello.dub 
13 HOЯ 24 23.26
ЙOKCEЛ БЭCM-6/5 ШИФP-12
MOHИTOPHAЯ CИCTEMA ′Д Y Б H A′ - 20/10/88
...
*NAME HELLO
*DISC:1/*****
*FILE:HELLO,60,W
*ALGOL
13 HOЯ 24 23.26
A L G O L - Г Д P
(7.01.82)
1. ′BEGIN′
2. PRINT(′′HELLO, ALGOL!′′);
3. ′END′
4. ′EOP′
CTPOKИ OTHOCИTEЛЬHЫE AДPECA
1 - 00001 00001 00004
PROGRAM ДЛИHA: 16 00020B BPEMЯ: 0.00 CEK. KAPT: 4
*CALL OVERLAY:60
PROGRAM
*END RECORD

PROGRAM 01000 A/BPRI E 01220 A/R*ISO E 01370 PRINT8 01547
A/STOP 01020 A/SPRI E 01227 STOP* 01423 SYSBACK* 01730
A/START E 01024 A/LPRI E 01244 EXIT E 01424 CBOБOДHO 01740
A/DRUCK 01100 A/NLINE E 01310 A/ARRD/K 01452
A/IPRI E 01132 A/NPAGE E 01312 A/ARRD/V E 01455
A/RPRI E 01164 A/I*ISO E 01365 STOPFLG* C 01546

ДЛИHA БИБЛИOTEKИ 001 17
*END FILE
Получили файл hello.bin длиной 12 килобайт, то есть две зоны:
$ ls -l hello.bin 
-rw-r--r-- 1 vak wheel 12288 Nov 13 23:26 hello.bin
Чтобы выполнить этот бинарник, создадим другой скрипт execute.dub. Здесь мы открываем существующий файл hello.bin на чтение:
*name execute
*disc:1/local
*file:hello,60
*call execute:60
*end file
Выполняем:
$ dubna execute.dub
13 HOЯ 24 23.31
ЙOKCEЛ БЭCM-6/5 ШИФP-12
MOHИTOPHAЯ CИCTEMA ′Д Y Б H A′ - 20/10/88
...
*NAME EXECUTE
*DISC:1/*****
*FILE:HELLO,60
*CALL EXECUTE:60
OVERLAY OT 13/11/24
PROGRAM -01000
HELLO, ALGOL!
Программа запустилась и напечатала нужный текст.

Бэсмовские оверлеи фактически представляют собой аналог юниксного формата a.out. В первой зоне находится таблица символов, а со второй зоны и дальше - собственно код программы.
This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

Profile

Сообщество любителей БЭСМ-6

January 2026

S M T W T F S
    123
45678910
11121314151617
18192021222324
2526272829 3031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Mar. 14th, 2026 05:43 am
Powered by Dreamwidth Studios