Today’s supply chain issues can make it hard to buy microcontrollers, or really any kind of semiconductor. But for those keeping retrocomputers alive, this problem has always existed: ancient components might have been out of production for decades, with a dwindling supply of second-hand parts or “new old stock” as the only option. If a rare CPU breaks, you might have no option but to replace the entire computer.
[Piotr Patek] ran into this issue when he obtained an Elektronika MK-85 programmable calculator with a broken CPU. Unable to find a replacement, he decided instead to build a pin-compatible CPU unit based on an STM32 microcontroller. Of course no modern CPU is pin-compatible with a Soviet design from the 1980s, so [Piotr] had to design a small interposer PCB to match the original pinout. This also gave him enough space to add an efficient DC/DC converter chip that generates the 2.5 V supply for the STM32.
As for the software, [Piotr] managed to port the original BASIC interpreter, which was written in PDP-11 assembly, to a modern equivalent written in C. While he was at it, he fixed a few bugs that had been sitting there for about 35 years. The updated CPU also allows the MK-85 to run circles around its contemporary siblings: [Piotr] timed it to be about thirty times faster than the original chip, while using a comparable amount of power.
If you also happen to have an MK-85 with a dodgy CPU, you’ll be pleased to find that the schematics and source code to [Piotr]’s modification are all available on his blog. This is probably the first calculator CPU update we’ve seen, although we’ve featured other ancient calculators updated with new firmware, and some completely new calculator designs based on classic hardware.
Thanks for the tip, [cmholm]!
I would have been interested to see pictures of the whole calculator, not just parts of the circuit board.
jsut click “index” in top-left corner, there are more articles about this calculator
Thank you; some of those Casio calculators unexpectedly took me back!
Hey, don’t forget about this calculator! https://hackaday.com/2019/08/25/vintage-console-becomes-the-calculator-it-appears-to-be/
Latin keys with Cyrilic only as a shift option printed way less prominently on the side.
BASIC, a program language made up of English words.
Even shortcuts to those BASIC commands printed far more prominently than the Cyrilic writing.
Man, it must suck to grow up in non-English speaking parts of the world and then develop an interest in computers. I can see if it was some tiny language spoken in only a few villages but Russian? Why don’t more people create programming languages based on their own natural language or if they do why don’t they take off?
Speaking from experience, it’s not a problem at all coding with English words when it is not your primary language. Once you learn what the keyword are, it’s just like typing the same words in your own language.
Especially so today when people all over the world are adopting English words in conversations in their own local language.
Built-in ASCII was a big obstacle. If you want non-English keywords/letters, on early machines you had to play with character generator, etc. Not something for a regular user, you will admit. Only computer designer could do that …
It’s easier today, but nobody uses only BASIC interpreters any more.
It’s easy to change keywords. One could even write a BASIC where the keywords are in a table, so easily changed.
But the program won’t run on the same interpreter if the keywords are different.
I don’t know if it’s rumour or truth, but I’ve seen talk that Quebec at some point wanted html keywords to be in French. If there was any truth, I assume a political thing, disconnected from reality.
My first thought was “yes, that will work”, until I realized it wouldn’t. Maybe it would work if Quebec completely isolated itselfso every website used this bpnew version and nobody outside could view the pages, and nobody inside could view pages from outside.
It just needs a preprocessor.
#define begin {
#define end }
if (a==b) begin
…
end
Not the really an issue. Many basics tokenize the program. Most traditional .bas files are not text but the program in tokenized form. A table for the tokens and keywords could be modified. In fact it was often. There was a program called the wedge for commodores back in the day that would change some keywords and even their function so you lost let but gained something more useful.
There were tons of such languages in the past, and some are still in use. Even all MS Excel commands have a cyrillic equivalent!
It doesn’t seem like a big stretch to add a transistor or a physical switch, to get the standby currant back down to or below the original.
If you comapre the Elektronika MK-85 and the Casio PB-100 they look nearly identical. I wonder if this is a copied design or if Elektronika had a custom machine made for them by Casio?
Only the design has been mimicked. The CPU in Elektronika MK-85 is 16-bit, PDP-11 compatible.
Using a PDP-11 clone for a calculator seems like a case of massive overkill. Too bad they are not available anymore. They could make for cool mini PDP-11s
So it would seem to me that the next step would be wright a PDP-11 emulator that runs on this and you would have a full replacement for that cpu for other projects. Of course it would also make that calculator compatible with it’s own software base.
That PCB is Nice, I’d been thinking about doing something like that for a drum machine I’ve been working on, nice to see that it’s possible just with castellated holes on a PCB.
It has been only a year and the links to the Polish site are already dead!