Elektronika B3-34
Encyclopedia
Elektronika B3-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 1e+99.
The first Soviet programmable stationary calculator ISKRA 123, powered by the power grid, 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 the microcode of the B3-34 defined the standard of the later Soviet programmable hand-held and office-deck calculators: MK-61, MK-52, MK-54, MK-56.
Later, at the end of 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 computer
s, 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 game
s 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. 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 a 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 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. However, they are only compatible on function level and don't reproduce the original undocumented features.
Programmable calculator
Programmable calculators are calculators that can automatically carry out a sequence of operations under control of a stored program, much like a computer. The first programmable calculators such as the IBM CPC used punched cards or other media for program storage...
. It was released in 1980 and was sold for 85 rubles
Ruble
The ruble or rouble is a unit of currency. Currently, the currency units of Belarus, Russia, Abkhazia, South Ossetia and Transnistria, and, in the past, the currency units of several other countries, notably countries influenced by Russia and the Soviet Union, are named rubles, though they all are...
.
B3-34 used Reverse Polish notation
Reverse Polish notation
Reverse Polish notation is a mathematical notation wherein every operator follows all of its operands, in contrast to Polish notation, which puts the operator in the prefix position. It is also known as Postfix notation and is parenthesis-free as long as operator arities are fixed...
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 1e+99.
The first Soviet programmable stationary calculator ISKRA 123, powered by the power grid, was released at the beginning of the 1970s. The first programmable battery-powered pocket calculator Elektronika
Elektronika
Electronika is the brand name used for many different electronic products such as calculators, electronic watches, portable games and radios in the Soviet Union and, nowadays, in Russia...
"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 the microcode of the B3-34 defined the standard of the later Soviet programmable hand-held and office-deck calculators: MK-61, MK-52, MK-54, MK-56.
Later, at the end of 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
BASIC
BASIC is a family of general-purpose, high-level programming languages whose design philosophy emphasizes ease of use - the name is an acronym from Beginner's All-purpose Symbolic Instruction Code....
interpreter, was essentially a pocket-sized variety of the PDP-11
PDP-11
The PDP-11 was a series of 16-bit minicomputers sold by Digital Equipment Corporation from 1970 into the 1990s, one of a succession of products in the PDP series. The PDP-11 replaced the PDP-8 in many real-time applications, although both product lines lived in parallel for more than 10 years...
. Due to their high price and the growing popularity of much more powerful personal computer
Personal computer
A personal computer is any general-purpose computer whose size, capabilities, and original sales price make it useful for individuals, and which is intended to be operated directly by an end-user with no intervening computer operator...
s, such as ZX Spectrum
ZX Spectrum
The ZX Spectrum is an 8-bit personal home computer released in the United Kingdom in 1982 by Sinclair Research Ltd...
, 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 game
Adventure game
An adventure game is a video game in which the player assumes the role of protagonist in an interactive story driven by exploration and puzzle-solving instead of physical challenge. The genre's focus on story allows it to draw heavily from other narrative-based media such as literature and film,...
s 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. The Elektronika MK-52 calculator (using the extended B3-34 command set, and featuring internal EEPROM
EEPROM
EEPROM stands for Electrically Erasable Programmable Read-Only Memory and is a type of non-volatile memory used in computers and other electronic devices to store small amounts of data that must be saved when power is removed, e.g., calibration...
memory for storing programs and external interface for EEPROM cards and other periphery) was used in soviet spacecraft program (for Soyuz TM-7
Soyuz TM-7
-Mission parameters:*Mass: 7,000 kg 15,400 lb*Perigee: 194 km *Apogee: 235 km *Inclination: 51.6°*Period: 88.8 minutes-Mission highlights:...
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
HP-41
The HP-41C series are programmable, expandable, continuous memory handheld RPN calculators made by Hewlett-Packard from 1979 to 1990. The original model, HP-41C, was the first of its kind to offer alphanumeric display capabilities...
, 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
Nauka i Zhizn
Nauka i Zhizn is a science magazine first issued during the years 1890-1900 in Imperial Russia, and then since 1934 in the Soviet Union ....
" ("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 a 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
Microcode
Microcode is a layer of hardware-level instructions and/or data structures involved in the implementation of higher level machine code instructions in many computers and other processors; it resides in special high-speed memory and translates machine instructions into sequences of detailed...
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 and MK-152, designed and manufactured in Novosibirsk
Novosibirsk
Novosibirsk is the third-largest city in Russia, after Moscow and Saint Petersburg, and the largest city of Siberia, with a population of 1,473,737 . It is the administrative center of Novosibirsk Oblast as well as of the Siberian Federal District...
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.
External links
- http://arbinada.com/pmk/node/89 - A book in Russian that includes a partial description of the B3-34 microcode
- :ru:%D0%95%D0%B3%D0%B3%D0%BE%D0%B3%D0%BE%D0%BB%D0%BE%D0%B3%D0%B8%D1%8F - A Russian Wikipedia article about some basic undocumented features of the B3-34
- http://www.emulator3000.org/rus-c3.htm - A function-level simulator of many Soviet calculators, including B3-34. Does not reproduce the undocumented features
- http://web.archive.org/web/20091026223500/http://geocities.com/lautenaus/b334e.htm - Some practical examples of the undocumented features