Elara S. Novikova
Iskra-226

МОДЕЛЬ РЕГИОНА

Model of a region

Kazan State University, mid 1980s · Mamaeva L. A., Kotov Yu. S., Tarkaev A. N.

Five women on the granite edge of the flowerbed in front of the Kazan university main building in low golden light, four of them in white university polo shirts laughing among themselves, the one in the middle in black looking into the camera.

You run a region for twenty five years. Each turn you divide the profit between the economy, the environment, the standard of living and birth control, and the model answers. Above a pollution of 50 the term that cleans the environment changes sign and starts adding instead. The program warns you at 35. At 50 it says nothing at all.

The title screen, green on black: PROGRAMMA, and beneath it MODEL REGIONA in quotation marks.
Lines 3 and 4. The program names itself and gets on with it.

The disk image, 256,256 bytes · The listing, 420 lines · Everything else on GitHub

Where it was hiding

Side 012 1 of the archive has no catalog. My own disk toolkit looks for a Wang style directory in sector 0, finds nothing that parses, and reports the side as unknown. I believed that for weeks.

What is on it is the output of BASIC's own LIST DC statement: source text written straight to the surface, with no directory in front of it. The program says so itself in line 2, which line 1 jumps over so it never runs by accident:

1 GOTO 3
2 SCRATCH R/1C,"REGION":SAVE DC R/1C,T("REGION")"REGION":LIST DC R/1C,"R":END

Once you know the layout the side opens up. A header sector, then text sectors carrying a two byte prefix, lines separated by one byte, and no line ever split across a sector boundary. That last rule is what makes an exact rebuild possible: the reader and the writer in the repository round trip the program byte for byte against the original sectors.

What the machine shows you

Seven readings in three columns: this turn, last turn, and the value you started from. The right hand column is not computed at run time. It is stored in line 22, so the program can hold your own opening position against you for twenty five turns.

A table headed SOSTOYANIE SISTEMY with seven rows and three numeric columns, then the year counter and the first prompt asking how much goes to the national economy.
The opening position. Quality of life 9.000, density 4.123, environment minus 2.429, profit 6.870. Four of those five fall out of the formulas exactly.

Then it asks you four questions in order, showing what is left each time: how much to the national economy, how much to keeping the environment, how much to quality of life, and how much to birth control. Birth control is capped at one unit and is the only lever that takes a negative number. Try to shrink the economy and the program refuses: СОГЛАСИТЕСЬ, ЧТО СВЕРТЫВАТЬ РАЗВИТИЕ Н/Х НЕЦЕЛЕСООБРАЗНО, agree that winding down the national economy is not expedient.

It teaches while it plays

Through the first twelve turns it offers to explain how the system hangs together, and the explanations are plots. Drawn with PRINT, TAB and a FOR loop, on an eighty column text screen, in 1980s BASIC.

An ASCII plot with a vertical axis of I characters and two curves made of dollar signs and asterisks rising to the right.
What profit grows on. The asterisks are the economy and rise in a straight line. The dollar signs are population and bend, because the term is a cube root.
Two ASCII plots side by side, one showing pollution rising with production and one showing pollution falling with money spent on the environment.
Two curves of different shape, side by side. Pollution against production on the left, against money spent on the environment on the right.

The whole machine on one sheet

A flat diagram of the game's rules: the player divides the profit among economy, environment care, quality of life and birth control; the economy earns profit and makes pollution; pollution spoils prosperity and above 50 feeds itself; prosperity drives the population, which crowds prosperity and earns profit; thresholds at 12, 35 and 50.
The rules, drawn out. A modern diagram, not a program screen; every arrow is checked against the listing.

Two loops pull against each other, both delayed. Investment earns profit and makes dirt; the dirt spoils prosperity, which is what you are being marked on. At the same time prosperity raises the population, the population earns and crowds at once, and prosperity decays on its own if you stop feeding it. Birth control is the one lever that works in both directions, one unit a turn.

The threshold nobody is told about

Self cleaning is defined piecewise. Below a pollution of 30 nature removes dirt at a rate that rises with how much there is. From 30 upward the term is a straight line:

Z1 >= 30    C = -(50 - Z1)/5

At 30 that returns minus four per turn. At 45, minus one. At 50 it is exactly zero, and above 50 it is positive, which means it no longer cleans, it adds. Past that point the pollution is its own source and no amount of money brings it back.

A table of sixteen turns showing pollution climbing from 17 to 56 while the self cleaning column moves from minus three to plus one point two one.
Sixteen turns under a policy that survives long enough to get there. The degradation warning fires at turn 14. The sign changes at turn 16, and by then the population is gone.

Two things should be said against overreading this. The threshold is often out of reach in practice, because prosperity collapses first and ends the game earlier, which is what happens if you put everything into the economy. And the model has no floor under pollution at all: spend heavily enough on the environment and the number runs away downward without limit, which is as unphysical as it sounds. This is a teaching model of 1980s vintage, not a defensible simulation. What makes it worth reading is what it chose to represent.

The second level

After turn five it asks whether you think you could handle a more complicated system. Say yes and random events switch on. The randomness is not random: it is the fractional part of the last quality of life reading, sorted into thirteen buckets, a deterministic draw out of the model's own state.

The events are the period talking.

НАГНЕТАНИЕ МЕЖДУНАРОДНОЙ НАПРЯЖЕННОСТИ ИМПЕРИАЛИСТИЧЕСКИМИ ГОСУДАРСТВАМИ И НЕОБХОДИМОСТЬ ОТВЕТНЫХ МЕР ПРИВЕЛО К ТОМУ, ЧТО ЧАСТЬ БЮДЖЕТА ПЕРЕДАНА ВОЕННЫМ ВЕДОМСТВАМ.

The stoking of international tension by the imperialist states and the necessity of countermeasures has meant that part of the budget has gone to the military departments. You lose two units of profit in each of the last two turns. Beside it sit a hurricane that costs the economy five units, environmental education that raises prosperity by two, and environmental legislation that works, bringing closed production cycles and cutting effluent.

A student sits down at an office computer in a Soviet university and is taught, by the machine, that production has a cost that comes back at you, that the environment can pass a point it does not return from, and that the arms race is paid out of the same pocket as everything else. All three are in one program, and the student is allowed to lose.

Who made it

For a while I wrote that the program was unsigned. It is not. The credits are at line 1366, behind a door almost nobody opens: finish all twenty five turns, then decline to play again.

The credits screen naming the developers of the machine realisation as staff of OTSO and the biology faculty of KGU: Mamaeva L.A., Kotov Yu.S., Tarkaev A.N.
The developers of the machine realisation of the teaching simulation game МОДЕЛЬ РЕГИОНА are the following staff of ОТСО and the biology faculty of КГУ.

КГУ is Kazan State University. That does not come from the abbreviation, which fits nine universities. It comes from two of the three people being documented staff of that one institution, in the right faculties, in the right years. ОТСО the program never expands; the standard reading is отдел технических средств обучения, the department for technical teaching aids, and a unit of exactly that description existed at Kazan under the first name on my list of two. The sources call it a лаборатория rather than an отдел, so the letters fit the function and not a quoted name, and I am leaving that seam visible.

The white colonnaded main building of Kazan University in sunlight.
The main building of Kazan University. The building is the same one the 1980s saw. Photo A.Savin, Free Art License, via Wikimedia Commons.

Tarkaev, who did the machine

Portrait of Alexander Tarkaev in a suit, 2004.
Alexander Nikitich Tarkaev, 2004. Photo Arthur Z., from the collection of Dialog Consulting, CC BY-SA 3.0, via Wikimedia Commons.

Александр Никитич Таркаев, born 8 July 1947, died July 2009. His foundation's biography and his obituary say he was born in Kazan; the Russian Wikipedia says Chistopol; the two obituary datelines disagree by one day about his death. I note both seams rather than picking quietly.

The arc before this program: a telecommunications technikum finished with distinction at eighteen, work at the television centres in Yoshkar-Ola and Kazan, then radiophysics at the university on a Lenin stipend, again with distinction, in 1971. An aspirantura in technical cybernetics and information theory, and from 1977 the laboratory for technical teaching aids, which he ran for eleven years.

What he did with it reads like a man in a hurry. Computer teaching courses from 1978, among the first in the country. A laser data link strung between the university's high rise buildings in 1983, the same year the first display classrooms opened and about fifty computer courses were in use in teaching. An exhibit at the ВДНХ in 1982 that went on to the Leipzig trade fair. The Prize of the Council of Ministers of the USSR in 1984, for creating and introducing computer based automated teaching systems. By 1986 Kazan stood, in the memoirs of his colleagues, in the top three of Soviet computer aided learning together with the Belarusian State University and the Riga Polytechnic, and became a base participant of the state programme on automated teaching. In 1988 he folded the laboratory into a new interfaculty computing centre and directed it, by then the author of more than fifty works and inventions.

Then the line that dates and places this program without needing the program at all:

1987. За работы по экологическому моделированию коллектив А. Н. Таркаева вновь награжден серебряной и пятью бронзовыми медалями ВДНХ СССР.

In 1987 his collective was decorated at the all union exhibition, one silver and five bronze medals, for work on ecological modelling. Six medals means at least six people, and their names are not in any list I can reach.

In 1989 he went to Dartmouth College as a research intern in the computer modelling of ecological systems. Dartmouth is where Dennis Meadows had run his resource policy centre, though Meadows had left for New Hampshire the year before, so the tempting handshake between this program and the man behind the world models is exactly that, tempting, and not documented. The same year Tarkaev stood at the origin of one of the first Soviet joint venture computer firms, with the KamAZ systems chief Vladimir Nitenko; it became «Форт Диалог» and he was its first director. From 1992 he built and chaired the chamber of commerce and industry of Tatarstan, for seventeen years until his death, sat in the republic's parliament, and led the Tatarstan branch of a liberal party. The small room of the computing centre director, one physicist remembered, was where the future democratic politicians of the republic used to gather at the end of the eighties.

He died of a heart attack in July 2009. A foundation in Kazan keeps his name, his photographs and his texts.

Kotov, who did the ecology

Юрий Степанович Котов, candidate of biological sciences, docent. His chair had a history before him: the кафедра охраны природы was founded at Kazan on 1 August 1969 by the zoologist Viktor Alekseevich Popov, as the first nature conservation chair in the Soviet Union. Popov led it until 1980, Valeryan Garanin until 1986, Kotov from 1986.

Under Kotov the chair went to court: expert opinions on the pollution of a protected lake, on the effluent of a chemical combine. The scientific core was the rescue of the Kazan city lakes, the озёра Кабан, monitored from 1984 with Natalia Mingazova, whose group later became a standing laboratory for the optimisation of water ecosystems. The published face of that work is the monograph «Казанские озёра», Mingazova and Kotov, Kazan University Press 1989, 175 pages.

In June 1989 the chair became the first ecological faculty in the USSR, and Kotov was its founding dean until 1994. It started with three chairs: applied ecology under Kotov, landscape ecology under Torsuev, and, worth reading twice on this page, a chair for the modelling of ecological processes under Golunkov. In 1994 Kotov moved to Ulyanovsk and built that university's ecological faculty, its first dean until 1998, and Golunkov went with him. One Kazan source calls him the creator of three ecological faculties on the middle Volga, counting a later one in Tolyatti; I could not confirm the third and I am leaving it as their claim, not mine.

What ties him to this disk is a 2015 paper by Popova, Taranets and Pikulenko of Moscow State University:

В середине и в конце 1980-х годов лидером по разработке имитационных экологических игр становятся сотрудники Казанского университета, так под руководством Ю. С. Котова была создана целая серия учебных компьютерных игр ... В основу были положены эколого-токсикологические и гидроэкологические исследования по спасению городских озёр г. Казани.

A whole series of teaching computer games, built under his direction, on the research done to save the Kazan lakes. So the model in this program is not a thought experiment about a generic region. It came out of a group that was giving evidence about a chemical combine's effluent and trying to keep two real lakes alive.

And here the record thins out in a way I want on the page rather than under it: for the man who founded the first ecological faculty of an entire country, no birth year, no dissertation, no obituary could be found. The one dissertation on the Kazan lakes from those years belongs to Mingazova, not to him, and more than one modern text misfiles it. Whether he is alive I do not know. Tarkaev has a foundation, a photo gallery and a Wikipedia article. For Kotov I cannot find so much as a photograph.

Mamaeva, who is still missing

Мамаева Л. А. could not be identified. No first name, no patronymic, no publication, no personnel record that reaches ОТСО or the biology faculty. The Mamaevas that searches do return are other people in other fields, dentistry, economics, philology, and none of them fits. Given how the other two divide, the specialist and the head of the computing unit, the reasonable guess is that she wrote the BASIC, and it is possible she stood among the six medal holders of 1987. Both of those are guesses and I am marking them as guesses. Of the three names on this program she is the one who did the thing this page is about, and she is the one nobody can name.

It is one of three

The game is not a one off. Student instructions survive for a set of three programs: «Малая река», small river, «Озеро», lake, and «Модель региона». «Озеро» was later ported to the IBM PC and ran under MS-DOS as a program called LAKE, which is how the set survived at all: the instructions that exist describe the later PC versions, name no developers, and so do not confirm the credits screen. A fourth game, «Остров», is sometimes attributed to this group but belongs to D. N. Kavtaradze in Moscow, whose laboratory was the other centre of early Soviet ecological game building. This diskette carries the only version of «Модель региона» I know of that is older than the PC, and the only one with the developers' names in it.

What this does to the dating

The credits and the award between them place the program at Kazan in the middle 1980s, in a laboratory whose ecological modelling work was decorated in 1987, on a diskette that cannot have been assembled before October 1985. Those three fit each other. None of them is a date in the program, which still has none.

The sources, so nobody has to take my word: the Tarkaev foundation's biography · the Kazan institute's own history · the Ulyanovsk faculty · Popova, Taranets, Pikulenko 2015 · Fort Dialog on its own origins

The disk it sits on

The side is not all one thing. Sectors 0 to 202 hold tokenised BASIC with no header record at all, and its title line reads:

++++++  В.С.ЮЩЕНКО В.В.ПАРХАЕВ Ю.В.КАЗАКЕВИЧ  ++++++
        ВЕРСИЯ 1.4  18.10.85    BASIC 02 30.09.84

A function and graphics package by three named people from the Institute of Physical Chemistry of the Academy of Sciences in Moscow. After that come the three listings: REGION at sector 203, SNAKE at 323, and MANAGEM at 343, the last of which carries the only attribution on the whole side that sits in plain sight:

10 REM MANAGEM.01/28.04.83/ГОРПЕНКО/ДЕЛОВАЯ ИГРА

A business game, version 01, 28 April 1983, by Gorpenko, a market simulation for up to twenty players. So the side is a teaching set of business games with somebody else's chemistry software in front of it. Whoever assembled this diskette was not sorting by subject. The dated material means the side cannot have been put together before October 1985.

What is not established

Who Mamaeva L. A. was. What ОТСО stood for at Kazan in those years, since the unit under Tarkaev is called a laboratory in the sources rather than a department. Whether a guide was ever printed for this version rather than for the later PC ones. Whether an Iskra-226 stood in that laboratory, which is the obvious machine for the job but is nowhere written down. Who Gorpenko was. And one value in the program's own reference column, the growth intensity of 2.759, which does not come out of any reading of the formulas around it.

The biography of Tarkaev comes from the foundation that carries his name, which is a source with an interest in its subject; its dates agree with the Russian Wikipedia entry and his obituary except on his birthplace and the day he died, where those two disagree with each other. Kotov's positions come from Kazan Federal University's own institute history and from the Ulyanovsk faculty page. I have not held any of the Russian primary works in my hands.

Running it

You can play it. Pick REGION on the project page and press ПУСК: the machine asks its questions in Russian and waits for numbers, the same way it did in Kazan. Type the amounts, remember that the environment and the standard of living refuse a zero, and see how far you get before the five bad years in a row catch you.

I wrote about this at the time

Getting it to run took the second decoding pass this project had been circling for a while. The program is plain source on the diskette, so it first had to be assembled into the machine's tokenised form, and its mathematics needed the tokens the payroll software never used: the functions, the power operator, fractional constants, the screen controls. Those were read out of the statistics packages on the same archive, where the formulas are textbook and give every byte away; the decoding is written up in the repository.

The run is verified, not assumed: the interpreter plays all twenty six years in lockstep with an independent re-implementation of the model, both steering by the same rule, and the state agrees to nine decimals through to the final mark of 5.490. Twenty six, not twenty five: the program tests its counter before the allocation and starts it at zero, so it plays one more year than its own rules announce. Nobody can have counted in Kazan either.

Year 1 as the interpreter prints it: the state table with quality of life 9.000, density 4.123, the reference column, and the first allocation question.
Year 1 from the running interpreter, PRINTUSING masks and all. The 7.426 percent against the stored 2.759 is the open reference-column question, now visible in a live run.

Back to Iskra-226