Elara S. Novikova
880

BAM, the database suite from Riga and Leningrad

СИСТЕМА ВЕДЕНИЯ АРХИВА ИНФОРМАЦИОННЫХ МАССИВОВ

Nineteen programs, about 4,650 lines, sectors 6 to 886, and a scratched twentieth entry whose name still reads СПИСОК. This is the largest body of work in the archive, and unlike everything else on these disks it says where it came from: two institutes, two departments and two people, written into the program by whoever was maintaining it.

catalog entries
20, of which 19 are programs
extent
sectors 6 to 886, 887 of 1001 cataloged
source lines
about 4,650
largest module
BAM9, 627 lines
internal version
3.9, correction dates 1985 to 1987
target firmware
БЕЙСИК 02 10.09.86
scratched entry
СПИСОК, sectors 778 to 781
smoke test
19 of 19 run
BAM, the archive suite, naming who made it: version 1.2 written in Riga at the planning institute of the Latvian SSR, reworked in Leningrad. The three lines above are broken because this program moves the cursor in a form the interpreter does not follow yet, and prints the coordinates where it should have jumped.
BAM, the archive suite, naming who made it: version 1.2 written in Riga at the planning institute of the Latvian SSR, reworked in Leningrad. The three lines above are broken because this program moves the cursor in a form the interpreter does not follow yet, and prints the coordinates where it should have jumped.

Run this disk · The image, 256,256 bytes

A provenance note inside the program

BAM0 prints its own descent on screen, in two columns, and the lines have been sitting in the code where anyone could read them for forty years. On the left: ВЕРСИЯ 1.2 РАЗРАБОТАНА В РИГЕ, НИИП ГОСПЛАНА ЛАТВИЙСКОЙ ССР, ОТДЕЛ „ПОМ" /ЯУГИЕТИС А.В./. On the right, fifty-three columns over: ДОРАБОТАНА В ЛЕНИНГРАДЕ, НТПО „ЛЕНСИСТЕМОТЕХНИКА", ОТДЕЛ 215 /ЛЕВИТАН Л.И./. Underneath, the version line, 3.9, 10.06.87.

Written at the planning research institute of the Latvian SSR Gosplan in Riga, department ПОМ, under Jaugietis A. V. Taken further in Leningrad at НТПО Ленсистемотехника, department 215, under Levitan L. I. Soviet software genealogy with real names attached to it is not common, and this one is not a credit line in a manual that happened to get archived. It is a display statement in a maintenance module, carried through revisions from 1985 to 1987 by people who could have dropped it at any point and did not.

What the suite does

It is a general database and reporting system, internal version 3.9. BAM is the dispatcher, and its menu offers the formation of indicator descriptions, classifiers, forms and queries. BAM2 creates and maintains a classifier, BAM3 is a form designer, BAM5 and BAM6 are two separate implementations of a block loader, BAM9 handles data import and brings up a device menu that includes magnetic tape, and the five S/BAM segments are the query subsystem, dated between 04.08.86 and 15.01.87. The files run from sector 6 to sector 886 in one contiguous stretch, longest module first, and the deleted СПИСОК sits between S/BAM03 and S/BAM01 with its name intact.

The firmware it asks for

The headers of BAM and BAM0 name the interpreter they were written against: БЕЙСИК 02 10.09.86. That is newer than the 22.04.84 build I had been treating as the reference for this whole project, and I assumed for months that the 1986 revision had not survived. It had. It is on disk1side1, slot 2, in the same six-file archive. The consequence is visible whenever BAM draws a menu: a positioning statement of the newer dialect that my interpreter does not implement, its operands falling through as bare numbers, and the occasional string that comes out mangled.

Where the bytes come from

The archive is 880.rar, published on oldpc.su by the forum user vazman, who owned the physical disks. dk_spb read them and made the images. The thread is on phantom.sannata.org and dates from 2016. The download link is dead; the copy I work from came out of a Wayback snapshot from that year, and as far as I can establish it is the only one left anywhere. Neither of them owes me anything, and both of them are the reason any of this exists.

What I checked

Every program was loaded and executed with minimal input. 19 of 19 run without a crash; menus, dialogues and segment chains all work. BAM00 chains correctly to BAM0, BAM9 opens its device menu, LBAM navigates into its demonstration branch, and against an empty virtual disk BAM5 and BAM10 report В ФАЙЛЕ СВЯЗИ НЕТ ЗАПИСЕЙ, no records in the link file. The originals' own data checks fire.

What this does not show

The smoke test proves that these programs load, chain and hold a dialogue. It does not prove that they compute, and it cannot, because the working data files the suite expects on separate disks are not in the archive. Depth of function is therefore untested. At least one positioning statement and one string encoding variant of the 1986 dialect are not implemented in my interpreter, which is where the stray numbers and the mangled strings come from. And the two names in the origin note could not be confirmed in any source outside the disk itself.

Where to read more

I wrote about this at the time

Back to the six sides