Elektronika B3-34

Elektronika B3-34 (Cyrillic: Электроника Б3-34) was a very popular Soviet programmable calculator. It was released in 1980 and was sold for 85 rubles.

B3-34 used Reverse Polish notation and had 98 bytes of instruction memory, 4 stack user registers and 14 addressable registers. Each register could store up to 8 mantissa digits and two exponent digits in the range from 1e-99 to 9.9999999e+99.

The first Soviet programmable stationary calculator ISKRA 123, powered by mains power, was released at the beginning of the 1970s. The first programmable battery-powered pocket calculator Elektronika "B3-21 (ru)" was developed by the end of 1977 and released at the beginning of 1978. Its successor, B3-34, wasn't backward compatible with B3-21. The instruction set, hardware architecture and the microcode of the B3-34 defined the standard of the later Soviet programmable hand-held and office-deck calculators: MK-61 (ru), MK-52 (ru), MK-54 (ru), MK-56 (ru).

Later, at the end of the 1980s, much more powerful calculators appeared on the Soviet market. For example, the calculator or hand-held computer MK-90, which had a graphic LCD display and an internal BASIC interpreter, was essentially a pocket-sized variety of the PDP-11. Due to their high price and the growing popularity of much more powerful personal computers, such as ZX Spectrum, these powerful calculators never gain popularity among the general Soviet population. Therefore, the B3-34-derived calculators are remembered by many as their "first computer".

Despite very limited capability, people managed to write all kinds of programs for B3-34 and its later successors, including adventure games and libraries of sophisticated calculus-related functions for engineers. Hundreds, perhaps thousands, of programs were written for these machines, from practical scientific and business software, which were used in real-life offices and labs, to fun games for children. During 1985-1986 a popular science magazine Tekhnika Molodezhi published a science fiction story Way to Earth accompanied by programs for B3-34 that could be used to simulate a particular segment of Moon-Earth journey from the story [1]. The Elektronika MK-52 calculator (using the extended B3-34 command set, and featuring internal EEPROM memory for storing programs and external interface for EEPROM cards and other periphery) was used in soviet spacecraft program (for Soyuz TM-7 flight) as a backup of the board computer.

This series of calculators was also noted for a large number of highly counter-intuitive mysterious undocumented features, not unlike the "synthetic programming" of the American HP-41, which were exploited by applying normal arithmetic operations to error messages, jumping to non-existent addresses and other techniques. A clever step away from the documented path would often cause some highly unusual things. For example, operations over the hexadecimal number 0xF, which looked like a decimal point on the dark screen, could cause a number of bizarre effects, from complete freeze to self-modification of the program, temporary appearance of otherwise invisible undocumented registers and sometimes totally non-deterministic behavior. A number of respected monthly publications, including the popular science magazine "Nauka i Zhizn" ("Science and Life"), featured special columns, dedicated to optimization techniques for calculator programmers and updates on undocumented features for hackers, which grew into a whole esoteric science with many branches, known as "yeggogology" ("еггогология"). The error messages on those calculators were intended to appear as the English word "Error", which to the Russians looked like a meaningless "ЕГГОГ" (YEGGOG). B3-34 and its derivatives helped many Soviet programmers to develop their skills, because programming and debugging required ability to read and write machine code and optimize literally every byte of the program. The microcode of those calculators remains only partially published and some of their "dark secrets" are still a mystery and are still being researched by some enthusiasts.

Like the HP-41 series in the Western countries, the B3-34 and its successors became a legend among some Soviet programmers and computer hobbyists. A numbers of websites provide the source of hundreds of programs for these calculators, technical documentation, lists of undocumented features and amazing stories about them. Some Soviet hackers managed to modify B3-34 into digital multimeters, control interfaces for model railroads, added tape storage devices and other peripherals. Modern Russian calculators MK-161 (ru) and MK-152 (ru), designed and manufactured in Novosibirsk since 2007, are partially backward compatible with B3-34 and are also based on Reverse Polish notation. However, they are only compatible on function level and don't reproduce the original undocumented features.