Elara S. Novikova
880

BASIC 02, four builds, 1983 to 1986

БЕЙСИК 02

Four slots, four builds of BASIC 02: 16.12.83, 22.04.84, 10.10.84 and 10.09.86, and not in that order on the disk. Somebody kept three years of interpreter revisions on one side. The newest of them is the build the database suite on disk2side1 declares it needs, which I found out after building the whole project on the second oldest.

sectors in use
966 of 1001
catalog entries
0
file header sectors
0
slots
4 x 63,744 bytes, at 0, 63744, 127488, 191232
slot order
22.04.84, 10.10.84, 10.09.86, 16.12.83
entry vector
9006 9009 9007 in all four
spread between slots
492 to 3,634 bytes

No picture. Four builds of BASIC 02 between 1983 and 1986, and again no catalog. This is the dialect everything else here is written in, but the side holds the interpreter itself, which is processor code and not something this project executes.

Run this disk · The image, 256,256 bytes

Not a disk with programs on it

Across all 1001 sectors this side has no catalog entries and no file header sectors. Sector 0 does not open an index, it opens an interpreter: the six bytes 06 90 09 90 07 90, then eighteen characters of signature, then the body. Four images of 63,744 bytes sit at fixed offsets and take up 254,976 of the 256,256 bytes on the side, leaving five sectors of zeros at the end and nothing else. 966 sectors come back non-zero, which is the fullness you get when the whole side is firmware and the firmware itself has a few empty stretches inside it.

A version library

The four slots differ from one another in between 492 and 3,634 bytes, and I spent weeks reading that as damage: rot, a weak drive, a bad read. It is neither. Each slot carries its own eighteen-character signature with its own date, and the spread is the distance between successive revisions of one interpreter, which is exactly what four dated builds of the same program should differ by.

The order on the disk is not chronological. Slot 0 is 22.04.84, slot 1 is 10.10.84, slot 2 is 10.09.86, slot 3 is 16.12.83. Whoever loaded this side was not keeping a backup, they were keeping a shelf: the current interpreter and the three they might have to go back to. Across the three boot sides in the archive there are eight distinct builds spanning 1981 to 1986, and each one is byte-identical wherever it turns up.

The build BAM asks for

The BAM suite on disk2side1 names its target firmware in its own program headers: БЕЙСИК 02 10.09.86. That is a newer revision than the 22.04.84 I had taken as the project reference, and for a long time I assumed it was simply gone. It is in slot 2 of this side and has been the whole time. The mismatch is visible in the way BAM runs: a positioning statement of the 1986 dialect that my interpreter does not know, and its operands come through as stray numbers ahead of the menu lines.

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

The CPU-level tool loads the 22.04.84 build into the four control store pages and starts at word 0x10, the first word after header, signature and keyboard test pattern. The first instruction is 87C0, a transfer with return address saved, that is a call. Under that reading it lands on 62DD, a word whose class is documented and whose semantics are not, and execution halts there with a precise trap, one instruction deep.

What this does not show

About 12 percent of the 22.04.84 build executes today, about 30 percent is class-known with open semantics, and about 58 percent is unknown, because the encoding table for the 49 arithmetic and logic instructions is missing. Nothing here boots, and I am not going to imply otherwise. The Balasanyan manual also prints a screenshot of a BASIC 02 dated 05.10.84, which is not in these four slots and not among the eight builds in the archive, so there was at least a ninth.

Where to read more

Back to the six sides