Elektronika MK-90
Datasheet legend
Ab/c:
Fractions calculation
AC: Alternating current BaseN: Number base calculations Card: Magnetic card storage Cmem: Continuous memory Cond: Conditional execution Const: Scientific constants Cplx: Complex number arithmetic DC: Direct current Eqlib: Equation library Exp: Exponential/logarithmic functions Fin: Financial functions Grph: Graphing capability Hyp: Hyperbolic functions Ind: Indirect addressing Intg: Numerical integration Jump: Unconditional jump (GOTO) Lbl: Program labels LCD: Liquid Crystal Display LED: Light-Emitting Diode Li-ion: Lithium-ion rechargeable battery Lreg: Linear regression (2-variable statistics) mA: Milliamperes of current Mtrx: Matrix support NiCd: Nickel-Cadmium rechargeable battery NiMH: Nickel-metal-hydrite rechargeable battery Prnt: Printer RTC: Real-time clock Sdev: Standard deviation (1-variable statistics) Solv: Equation solver Subr: Subroutine call capability Symb: Symbolic computing Tape: Magnetic tape storage Trig: Trigonometric functions Units: Unit conversions VAC: Volts AC VDC: Volts DC |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Elektronika MK-90
What a curious machine! The Elektronika MK-90 is probably the most complex (not to mention most expensive) Soviet calculator ever made.
It is probably the most advanced as well; some of its four internal printed circuit boards are multi-layer boards, with chips and discrete components attached using surface-mount technology. The construction is clean, and overall the MK-90 gives the appearance of a well designed, albeit over-engineered, machine. (That said, the unit I recently received did have a bad contact that caused it to operate at a much lower speed than normal.)
This machine has been reported to have a CPU that is DEC compatible, although I have not yet been able to verify this. The built-in BASIC interpreter does have features resembling those of a BASIC interpreter that I worked with on a PDP/11 a few eons ago. It is an idiosyncratic BASIC, by the way; many of the usual shorthands do not work, for instance you need to explicitly use LET for assignments, nor can you substitute a question mark for a PRINT instruction.
Another curious feature of the MK-90 is that it does not have continuous memory! Memory contents are wiped out when the machine is reset or turned off. You need storage modules to which you must save your programs if you don't want them wiped out.
The large graphical screen is capable of displaying graphics (the MK-90 BASIC has several graphics commands) as well as cyrillic characters. The huge pixel size is probably a result of the limitations of Soviet-era manufacturing technology, not a desire to make a screen that's legible without reading glasses!
My biggest complaint is the keyboard. The key arrangement is awkward, and it appears that the keyboard scanning routine is not interrupt-driven: if you don't press and hold a key for an appreciable fraction of a second, the keystroke will not register. My second biggest gripe? Well, I haven't yet found a key combination that stops a running BASIC program without resetting the whole machine (wiping out BASIC memory in the process of course.) (Update on March 16, 2005: I've been informed by Mahmoud Yassine that pressing the [Cy], [P] and [BK] keys in order does the trick. Haven't tried it myself yet.)
On the other hand, the machine does have a built-in beeper and its manual comes complete with an example that whistles a recognizable rendition of "Moscow Nights"...
But my programming example has nothing to do with music. The following implementation of the Gamma function demonstrates programming on the MK-90:
10 INPUT X 20 LET G=1 30 IF X>5 THEN GOTO 70 40 LET G=G*X 50 LET X=X+1 60 GOTO 30 70 LET G=LOG(X)*X-LOG(G)-X+LOG(SQR(2*PI/X)) 80 LET G=G+((((1/1188/X/X-1/1680)/X/X+1/1260)/X/X-1/360)/X/X+1/12)/X 90 PRINT G,EXP(G)
(2007/3/18): Piotr Piatek from Poland has written a very nice emulator of the MK-90 that also permits machine language debugging.