7

In a BESM-6 disk image I can see bits and pieces of something that looks like a strange interactive scripting language:

[start of disk block]
<LET=P11=%X01
<IEQ=P11=%377
<LET=P11=1
<END
<LET=P12=0
<REP=META=P12=%P11
<ADD=P12=1
<<MO2
<<K31
<<MO5
<<K35
... [a dozen more <<MOn and <<Knn lines]
<MES=    ROUND %P12 ENDED [originally in Russian]
<LAB=META
[end of file marker, zeros to the end of the block]

Here one can guess that <LET is an assignment operator, <IEQ is a conditional, <REP is a loop up to a label, <MES means "message", the % sign in a message text is an interpolation operator, etc. The << lines are unclear.

Another example I've found is (with texts translated)

<МЕS=
<МЕS=*** IBM TAPE VERIFIER *** ( 03.02.89 )
<МЕS=
<GЕТ=11=VOLUME-
<GЕТ=13=RECORD DENSITY (8, 32, 63)-
<GЕТ=14=TAPE DESIGNATOR (MAX. 21 CHARS.)-
...

As all the keywords are in English, a Western prototype is likely.

In pieces of the documentation in Russian I was able to find, this functionality is called "interactive macrogenerator" (just like that, without a proper name). Searching for that in English finds a few documents about TRAC, which is a different language.

Searching in Russian finds a page which mentions MES, LET, GET, IEQ, etc. The page title suggests that the name of the language was likely PAGEN, and the links below, mentioning Soviet DEC clones - that it could have stemmed from DEC.

Searching for 'pagen', or even "!pagen +DEC" leads nowhere.

What was the language called PAGEN which used less-than signs to start keywords and equal signs as separators?

  • Looks more like a virtual machine assembly language than a scripting language to me, i.e. I'm going to guess that this was an intermediate form that something compiled to, and was then reduced to a directly executable bytecode. – Jules Sep 18 '17 at 20:35
  • << lines could be parameters to some programm - aka inpul lines on a different programm level. I've seen several systems on systems with combined command and parameter input (read one punch card stack holding the job and its data) using such a level indicator to enable skiping data in case the programm execuion get aborted before all data is read. – Raffzahn Sep 18 '17 at 20:37
  • @Jules Hmm, AFAIK the BESM-6 'assembler' was something called 'Autocode' and looked quite different - I remember a whooping lot of comata. – Raffzahn Sep 18 '17 at 20:45
  • Leo, to me this looks much like an aplication specific configuration/parameter script. On mainframes it was common to read configurations as a series of commands. Say, are these M/K lines always pairs (first M then K). Just a weired idea: Maybe it's a konfiguration for an AS-6 (AC?) setup, as this was a multiprocessor configuration based on BESM-6 CPUs, utilizing a connection system chanels organized as multiplexers (Mxx) and chanels (Kxx) on each multiplexer. The whole system was something like a Frankenstein CDC 6600 on steroids. – Raffzahn Sep 18 '17 at 20:56
  • @Raffzahn That's right, the instruction format in that assembler was "label:index,OP,offset" (with "label:" optional, of course). There was another one, with syntax copied from the IBM macroassembler: "label OP offset(index)", much more pleasing to the eyes, and with similar macro-operators (SETA, AIF, etc.) The one I'm asking about is something else entirely, and appears to be interactive (I've found <GET with a prompt). This is likely a small part of the script, so it's hard to tell what it was doing, but the language itself doesn't look original. I've heard of AC-6 but have never seen it. – Leo B. Sep 18 '17 at 21:02
3

PAGEN is a 'language' (well, more of a configuration file) used in RT11 on PDP-11 for system generation.

  • The Russian wikipedia page (but not the English one) even mentions that PAGEN was apparently only used in RT11 v4.x. I browsed quickly through the 4.0 Installation and System Generation Guide manual on bitsavers, but couldn't find it, though that's probably my fault. So if someone finds the right manual or the right section ... – dirkt Sep 19 '17 at 16:56
  • I couldn't find any relevant documentation. I hope that someone remembers it and provides pointers. – Leo B. Sep 19 '17 at 18:15

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.