I have started to write some programs for my Elektronika MK-52 calculators (I have 2 of them). Actually, I don’t need them so much but I have decided to use this calculator for my common tasks. I have a few HP calculators (the HP 48 line) but the Soviet thing is simpler and thus easier to use. And it is powerfull enough for my needs (15 easily accessible memories is much more than I actually need). So I also decided to write of some simple programs for the most repeating problems.
There are some articles around the Internet, also the Wikipedia has some informations (surprisingly the English page is more usefull than the Russian one) but I stil have had problems to understand what I have to do in some situations. There is even a “compiler” which is a nice tool for translating of a RPN programs to a sequence of calculator commands. An emulator is available, too.
The MK-52 also has a non-volatile memory and I now trying to use it. The non-volatile memory use requires the knowledge of program address (something like “1000007” in my case). Also the clean/read/write operations require the same sequence of commands (just to press the “read address” key and then the “I/O” key) but the type of operation is determined by hardware switch. I often have forgotten about this switch (to change from “write” to “read”, for example) so I have had to retype my program several times…
There is one tricky thing with use of the memory addresses (in tge form 1AAAASS): the initial address (AAAA) must be given in actual memory units but number of steps (SS) must be given in steps (1 step = 2 memory units). Also the number of steps must be a multiplication of 7. And there must be some space between memory blocks (at least 2 units). So if the first program is located at the beginning of the memory and it has 7 steps then its address is 1000007. If the second program has 21 steps then the best address should be 2001621 (16=2*7+2). The first number of the address (2 in this case) can be arbitrary.
There are some other strange things: the display can show only numbers. The operations are shown only their two-number codes and one must remeber them in order to be able to debug programs. The display blinks during computations – like things in old sci-fi movies.