Menu

Tree [r342] /
 History

HTTPS access


File Date Author Commit
 besmtool 2014-12-30 leobru [r340] Updated to the latest SIMH sources; added SDL2 ...
 disbesm6 2015-02-14 leobru [r341] Improved disassembly.
 disks 2009-11-14 vak [r332] В крабе включен контроллер.
 dispak 2016-12-06 leobru [r342] Added punching/reading Braille, fixed elementar...
 dispak-svs 2009-10-17 vak [r206] Добавлены исходные тексты ДИСПАК для Эльбрус-1К...
 examples 2009-11-16 vak [r334] Сделаны скрипты для засылки файлов через telnet...
 krab 2009-11-14 vak [r332] В крабе включен контроллер.
 m4 2008-02-21 vak [r66] Using gettext() for localization. Convert all t...
 po 2014-12-30 leobru [r340] Updated to the latest SIMH sources; added SDL2 ...
 sbor 2014-12-30 leobru [r340] Updated to the latest SIMH sources; added SDL2 ...
 simh 2014-12-30 leobru [r340] Updated to the latest SIMH sources; added SDL2 ...
 ABOUT-NLS 2008-02-21 vak [r66] Using gettext() for localization. Convert all t...
 AUTHORS 2008-02-14 vak [r36] Implemented disk search path: BESM6_PATH.
 COPYING 2008-02-11 vak [r20] Options parsed using getopt_long(). Added files...
 ChangeLog 2014-12-30 leobru [r340] Updated to the latest SIMH sources; added SDL2 ...
 INSTALL 2008-02-13 vak [r27] Using configure script for target configuration.
 Makefile.am 2009-11-10 leobru [r310] Started a disassembler
 Makefile.in 2014-12-30 leobru [r340] Updated to the latest SIMH sources; added SDL2 ...
 NEWS 2008-02-13 vak [r29] Fixed bug in e64, now Bemsh runs (almost) fine.
 README 2008-02-14 vak [r36] Implemented disk search path: BESM6_PATH.
 aclocal.m4 2014-12-30 leobru [r340] Updated to the latest SIMH sources; added SDL2 ...
 config.guess 2008-02-21 vak [r66] Using gettext() for localization. Convert all t...
 config.h.in 2014-12-30 leobru [r340] Updated to the latest SIMH sources; added SDL2 ...
 config.rpath 2008-02-21 vak [r66] Using gettext() for localization. Convert all t...
 config.sub 2008-02-21 vak [r66] Using gettext() for localization. Convert all t...
 configure 2014-12-30 leobru [r340] Updated to the latest SIMH sources; added SDL2 ...
 configure.ac 2014-12-30 leobru [r340] Updated to the latest SIMH sources; added SDL2 ...
 depcomp 2008-02-13 vak [r27] Using configure script for target configuration.
 install-sh 2008-02-13 vak [r27] Using configure script for target configuration.
 missing 2008-02-13 vak [r27] Using configure script for target configuration.
 ylwrap 2008-02-18 vak [r49] Global transition to Unicode. All sources recod...

Read Me

BESM-6 was a mainframe with an operating system designed at the time when
the batch execution model was predominant. There were just a few process
slots (say, 15), and it was not unusual for a task to wait in the "input queue"
for a long time before it would be assigned a process slot and would start
executing. The task, whether entered into the system from punch cards
by an operator, or spawned by a process, consisted of the following parts:
1. The passport, containing identifying information and resource requests.
2. One or more data sets.
3. The terminator.

(Wherever Russian words or abbreviations were used, the corresponding English
ones will be used below.)

1. The passport must start with the identifying line:

USER NNNNXX^
or
USER NNNNXXYYYYYY^

(The overbar character, represented here by caret, was used as the newline
character, so that multiple passport lines could be combined on one punch card.
Where N, X, Y were decimal digits. NNNN was the account number proper, and
the rest were used according to the local budgeting rules, if any,
or at the user's discretion. The suggested meaning of the 12 digits
was DGPECUTASKVA, where
D - department
G - group
PE - person
CU - customer
TASK - task
VA - variant
implying that a programmer could work on several tasks for several customers
at once.

There was a way to set a password per user id. If a password (up to 6 digits)
was set, it had to be specified as USER NNNNXX/PASSWD^ Some organizations,
e.g. the Computing center of the Academy of sciences, did not use passwords,
relying on the honor system and the logging capabilities of the OS.

Next, the following resource request lines in any order must be present:
TIME HHMMSS^   (leading zeros could be omitted)

There is no default for the CPU time allotment, as its amount was used to assign
the process to a particular queue and a group of process slots.

START octal^   (the execution entry point)

PAGE list of octal ranges^ or RAM decimal^ (up to 32 pages)

If PAGE was specified, the entry point had to be within one of the listed
pages.

The following requests were optional:

PRINT decimal^ (meters of paper for printing, default 7, max 64)

There were 240 lines per meter.

TRACT decimal^ (space on magnetic drums for temporary storage, 1 tract = 1 page)

TAPE NN(XXXX[-RW])^ (NN was octal 30-67; -RW requested the read-write access)

There was no filesystem - the disk packs and the tape reels had numerical
identifiers. The request was used to indicate to the operator which disk packs
or tapes had to be installed before a task occupies a process slot. The task
then used the specified NN numbers as file handles. Handles numbered 0 to 27
octal were used for the temporary (drum) storage.

TELE^ (the task will be interactive, awaiting connection from a terminal)

The passport ends with a character E.

2. A data set consists of a sequence of data elements. In all element types
but L and A the spacing characters and punchcard boundaries are ignored.

S octal

Specifies the load address of the subsequent elements. Must be the first
in a set.

C 9 or 18 octals

One or two machine instructions in an easy to read format
(there could be two instructions per word)

W up to 16 octals

Arbitrary data (not an executable word)

N floating point number

L 6 characters

Text literal in GOST encoding

A N

N = 0, 1, or 2 - introduces continuous text in various encodings, ending
with a _$ character pair

N = 3 - introduces binary data (raw punchcard images), ending with a card
with all punches in cols 1 and 41.

A data set ends with a character E

3. Terminator

The character sequence FINISH

The program 'besm6' reads the file which name is given in the command line
and, if successful, forms an input queue entry, loads and runs the task
from the input queue. Run 'besm6' without arguments to get a list of all
available options.