This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)(Learn how and when to remove this template message)
The Elektronika MK-52 (Russian: Электро́ника МК-52) was an RPN-programmable calculator manufactured in the Soviet Union during the years 1983 to 1992. Its original selling price was 115 rubles and it belongs to the third generation of Soviet programmable calculators.
The functionality of the MK-52 was identical to that of the Elektronika MK-61, except that the MK-52 had an internal non-volatile EEPROM memory module for permanent data storage, a diagnostic slot, and a slot for ROM modules. The programming language and functionality of the MK-52 and MK-61 calculators were extensions of the earlier MK-54, the B3-34, and B3-21 Elektronika calculators. The MK-52 is the only calculator known to have internal storage in the form of an EEPROM module. As with many Soviet calculators, the MK-52 had a number of undocumented functions. MK-52 flew into space on the Soyuz TM-7 spacecraft, in November 1988. It should have been used to calculate the trajectory of landing in the event of an onboard computer failure.
The MK-52 is the first Soviet micro calculator with non-volatile electrically erasable memory (PROM, type KR1601RP1 with a capacity of 4 kilobits, the number of rewriting cycles is 10,000), ensuring security for programs when the power is turned off and the functions of the clipboard are performed. The block of this memory is capable of storing up to 512 program 8-bit words (or contents of 72 data registers) and exchanging them for RAM.
In addition, you can connect an external ROM which is a memory expansion unit with games and mathematical programs, which stored several dozens of programs that make up the user library (these programs are recorded by the manufacturer). In general, manufacturers have produced 4 types of ROM cartridges:
BRP-2 «Astro» (Russian: БРП-2 «Астро»), with a set of programs for navigational tasks, information about which was published in the Marine Digest (Морском сборнике, in Russian) No. 12, 1988;
BRP-3 (Russian: БРП-3), containing 60 programs for solving mathematical problems. In 1988, 15,200 units of this type were manufactured, which are sold at a price of 16 rubles;
BRP-4 (Russian: БРП-4) was produced in 1989; Content: programs of game, professional sports and domestic character;
GRP "Geo" (three of them contained various mathematical functions, BRP-4 - game programs).
Additionally, there is another expansion connector in the MK-52 which is installed for technological purposes and serves to diagnose the MC during its production. Unofficially, you could connect external devices with their controllers, such as a special printer.
The calculator has an extended set of commands; these include the allocation of integer and fractional parts of numbers, the search for absolute and maximum values of numbers, and the performance of certain logical operations. At the same time, the calculator is fully compatible with the second generation models (B3-34 and MK-54) using the command system and codes. On average, the program that takes all 105 steps of program memory and 15 registers on the MC-52 will be equivalent in its capabilities to approximately 140-150 steps and 18 registers written in the command system B3-34.
In the standby mode (when the screen is illuminated zero) - about 89 mA,
In the "memory" mode (execution of the program
Cx↑↑↑:ВП К, resulting in the indicator showing only the luminous decimal point) - about 84 mA,
In the counting mode in accordance with the program - 73 mA.
The MK-52 has two main modes of operations: automatic mode and programming mode. General calculations and operations are performed in automatic mode while programs are fed as input in the programming mode. The key [F] [CHS] (looks like [/-/]) switches the MK-52 to automatic mode, while [F] [EE] (looks like [Bn]) switches it to programming mode.
Basic operations in automatic mode were conducted in accordance with Reverse Polish Notation logic. For example, to evaluate 2+3, the following keystrokes are required:  [enter] (looks like [B^])  [+].
The MK-52 had 105 steps of volatile program memory, an internal EEPROM module (with 512 bytes of memory) and 15 memory registers. It used four AA-size battery cells or could be plugged into a power adapter. It had a relatively dim, ten-digit (8 digit mantissa, 2 digit exponent) green vacuum fluorescent display. The MK-52 had an expansion port to which various ROM (Read-only memory) modules could be attached. Its system clock speed was approximately 75 kHz (derived from a phases generator chip), and it weighed approximately 400 grammes.
It has simple programming, commands are typed into the MK-52 in programming mode and are then executed in order. The MK-52 is fully capable of memory management and both conditional and unconditional branching, but these and more advanced capabilities are beyond the scope of this article (for the moment).
In programming mode, the screen displays information about the program in memory. For example, if '10 01 0E 03' is displayed, then this means that '0E' is stored at program step '00', '01' is stored at program step '01', '10' is stored at program step '02' and the machine is currently prompting for data to be input for program step '03'. Individual program operations are represented by two-digit operation codes in programming mode.
Saving to EEPROM
Note that before entering a program to volatile memory with the intention of saving this program to EEPROM memory, the EEPROM program space to be saved to must be cleared first, as performing the clearing operation clears the volatile memory as well as the selected area of the EEPROM memory.
Each program step requires 1 byte of memory and each register requires 7 bytes of memory.
When clearing, reading or writing to the EEPROM memory, the 'address' and 'range' are specified in the form of a six-digit number, preceded by a non-zero number (which is ignored) in automatic mode, i.e. '1aaaadd' means 'dd' bytes, starting at memory address 'aaaa'. A two-position data/program switch controls whether data (from the registers) or program memory is transferred; a three-position switch is used to select read, write and clear operations.
First, the numbers are made into groups of four digits, adding leading zeros if necessary, i.e. making '111000' into groups of four gives '0011' and '1000'.
The equivalent decimal values of each of these four-digit binary numbers are '3' and '8', which gives a hexadecimal number of '38', equivalent to the binary number '111000'. Similarly, '100001' is equivalent to '21' in hexadecimal.
Binary numbers are input into the machine as hexadecimal numbers prepended by an '8.'.
So, the numbers '8.38' and '8.21' are entered into the MK-52 and the OR operation is performed on them. The OR operation is achieved by pressing [K], then [CHS] (which looks like [/-/]).
The result displayed should be '8.39'. This translates to the two binary number groups '0011' and 1001 and, hence, the binary number '111001', which is the result of the OR operation performed on the two binary numbers '111000' and '100001'.
The following list details the MK-52's graphical representation of hexadecimal numbers: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -, L, C, Г, E, (blank). Normal hexadecimal representation is 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E.
There is a host of games available for the MK-52. The MK-52's undocumented functions tend to be heavily used in the games due to their use in producing unusual calculations and specialised displays. A simple example of the modification of the display may be observed by the repeated squaring of, say, 1 x 10^50 (ignoring error messages).
The MK-52 was available in a variety of colours, including black/grey, turquoise/blue, white/grey and orange.
In what would be considered an unusual practice today (but was common for Soviet electronics), technical schematics were provided for the MK-52 when it was purchased, prompting user modification and repair of the machine.
When an error was encountered on the machine, the display produced a message similar to the English word "error". The word, written in this fashion, cuts down on the number of display segments used to display the error message. In Russian, this spelling is not pronounced "error", but "eggog".
There is currently only 1 known bug in the MK-52. That bug is that the MAX function gives a result of zero if one of the two arguments of the function is zero.
- Frolov, Sergei. "Undocumented functions of Soviet Calculators". www.leningrad.su. Retrieved 2017-02-06.
- Russian to English translation of the MK-52's keyboard
- Museum of Soviet Calculators on the Web (MOSCOW)
- Sergei Frolov's "Soviet Calculators Collection"
- Website detailing programmable calculators
- More advanced programming techniques
- Command reference
- Alfred Klomp's page on "Hacking the MK-61"
- More 'EGGOG's
- Games etc for the MK-52 and compatibles
- 250 games for MK-52, MK-61
- MK-Compiler easy programming on the MK-61 and MK-52.
- Here you can download an emulator of all Soviet Programmable Calculators
- the page with a description of the emulator