# Elektronika B3-34

Elektronika B3-34 (Cyrillic: Электроника Б3-34) was a 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, four stack user registers and 14 addressable registers. Each register could store up to 8 mantissa or significand digits and two exponent digits in the range 1×10$^{−99}$ to 9.9999999×10$^{+99}$.
The first Soviet programmable stationary calculator the ISKRA 123, using mains power, was released at the beginning of the 1970s. The first programmable battery-powered pocket calculator Elektronika B3-21 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 microcode of the B3-34 defined the standard of the later Soviet programmable hand-held and office-desk calculators: MK-61, MK-52, MK-54, MK-56. Model numbers do not follow any special order: MK-54 is a slightly upgraded version of B3-34 and MK-56 is its desktop copy, while MK-61 and MK-52 are somewhat more advanced calculators with more operations and even EEPROM (MK-52 only).
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 smaller version 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 gained 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 the 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. 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 the Soviet spacecraft program (for Soyuz TM-7 flight) as a backup for the on-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 "errorology" (Russian "еггогология", transliterated "yeggogologiya"). 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 number of websites provide the source of hundreds of programs for these calculators, technical documentation, lists of undocumented features and 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 and MK-152, designed and manufactured in Novosibirsk since 2007, are partially backward compatible with B3-34 and are also based on reverse Polish notation, but they are only compatible on function level and don't reproduce the original undocumented features.