Плановое хозяйство
My own, 2026, in the line of the early BASIC resource games
Ten years of grain. Every year you split what is in the barn between food and seed, twenty units feed one person, every unit sown comes back threefold. Feed the village short and the population drops to the number the ration actually covered, and it stays there. Twenty-six lines, two sectors, and no weather to blame it on.

Run this disk · The image, 256,256 bytes
The point of this one is where it runs. The largest body of software recovered from this machine is BAM, a database and reporting suite that came out of the Gosplan planning institute of the Latvian SSR in Riga and was developed further in Leningrad. Nineteen programs, roughly 4,650 lines: classifiers, indicators, a form designer, a query subsystem, import from magnetic tape. All of it built so that a plan could be filled in, checked and reported upward. Putting a ten-year planning game on the same machine family required no irony from me. It was already sitting in the catalog next door.
Population starts at 100, the barn at 2,800. Each year asks two numbers: grain for food, at twenty per person, and hectares to sow, one unit of grain to the hectare. Both come off the barn, the sown hectares return at three to one, and then the ration is checked. If it covers fewer people than are alive, the population falls to that number and ГОЛОД! prints. There is no plague, no land market, no bad year. What is left is the arithmetic of a fixed point: sow enough that the next harvest carries both the eaters and the next sowing, and hold it for a decade.
PLAN was among the first three programs I assembled rather than only read, and that direction is the harder one. A decoder can be wrong and still produce something plausible. An encoder cannot: emit the wrong bytes and an independently written parser stops at once. That test caught a mistake sitting directly under this game's yearly check. I had the relation tokens for greater than and less than as D7 and D6. The parser table in the corpus says D4 and CF. The exit condition of the whole ten-year loop is one such comparison, and until the round trip ran it was resting on two guessed bytes.
No Soviet games disk was recovered, here or anywhere in this project. This one was written in 2026, in a dialect I reconstructed from payroll and planning software, and assembled into an image the emulator loads like any original. The resource game as a form is common property and goes back to the BASIC teaching programs of the late sixties; none of that code is reprinted here, and the Russian in the strings is mine. What is genuinely old is the container: header in sector 0, one catalog entry, program body from sector 20, the way an application disk for the Iskra-226 looked.
PLAN: yearly cycle, harvest, population loss on famine. The single disk was loaded, started and played to an outcome.
What is tested is the emulator, not the hardware. The bytes follow the attested rules, but only a test on a surviving Iskra-226 could show whether real firmware accepts them. The game itself has no chance in it either: the harvest factor is flat at three and nothing is drawn at random, so a plan that works once works every time it is repeated.
PLAN.bas, 26 lines, assembled onto the image with iskra_asm.py
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
10 REM PLAN GAME 20 PRINT "*** ПЛАНОВОЕ ХОЗЯЙСТВО ***" 30 PRINT "ВЫ РУКОВОДИТЕ ХОЗЯЙСТВОМ 10 ЛЕТ" 40 V01 = 100 50 V02 = 2800 60 V04 = 1 80 PRINT "--- ГОД";V04 90 PRINT "НАСЕЛЕНИЕ";V01;" ЗЕРНО";V02 120 PRINT "ЗЕРНА НА ЕДУ (20 НА ЧЕЛОВЕКА)" 130 INPUT V05 140 PRINT "ГЕКТАРОВ ЗАСЕЯТЬ (1 ЗЕРНО = 1 ГА)" 150 INPUT V06 160 V02 = V02 - V05 170 V02 = V02 - V06 180 V07 = V06 * 3 190 V02 = V02 + V07 200 V08 = V05 / 20 210 IF V08 > V01 GOTO 240 220 V01 = V08 230 PRINT "ГОЛОД! ЛЮДЕЙ ОСТАЛОСЬ";V01 240 V04 = V04 + 1 250 IF V04 > 10 GOTO 270 260 GOTO 80 270 PRINT "*** КОНЕЦ ПЛАНА ***" 280 PRINT "НАСЕЛЕНИЕ";V01;" ЗЕРНО";V02 300 END