Elektronika B3-21
In 1980, the difficult-to-use and highly unreliable model was replaced by the B3-34 calculator.
A version with english labels was marketed in Hungary as PTK-1060 model assembled by Híradástechnika Szövetkezet (Telecommunication Co-operative).
Manufacturer: | Калькулятор (Kalkulátor) (USSR) |
Mfg. date: | 1977-82 |
Size: | 9,9×18,4×4,5 cm |
Weight (ready for operate): | n.a. |
Type: | programmable scientific |
Capacity: | 8/8+2 digits (input/display) 8+2 digits (internal precision) |
Operating logic: | RPN |
CPU: | Kvazar K145IK502P |
Registers: | 2 standard 7 memory (without arithmetic) |
Features: | +/-change sign (direct entry of negative numbers) RVexchange registers (X-Y) Ffloating-point notation Sciscientific (exponential) notation Sqrsquare root x2square pivalue of pi (3.1415..) can be recalled 1/xreciprocal trigtrigonometrical functions (sin, cos, tan and inverses: arcsin, arccos, arctan) logexponential and logarithmical functions (10- and e-base) yxraising to power |
Display: | 15 digit LED (HP) |
Power: | 4×D0,55S rechargeable battery |
Programming method: | merged keystroke-programmable |
Program capacity: | 60 steps |
Test results: | trigonometry:result of sin-1(cos-1(tan-1(tan(cos(sin(60°)))))), reference value: 60. - exponential:result of 0.999160000, reference value (first 14 digits): 3.0068804206375×10-70 2.731791E-70 |
The chipset in the calculator has an interesting structure: the main circuit is the K145IK502P, which is connected to the keyboard and display, and the K145IK501P and K145IK502P are similar circuits that only function as ROMs here: the 501P is for basic operations and for functions that can be called with the F prefix key; the 502P stores microcode for other, typically scientific functions. The individual chips communicate with each other in a serial manner - due to this and the clock frequency, the machine is quite slow.
If the decimal point appears on each digit, the machine's batteries are exhausted.
The original charger type BP2-3 works with two voltage levels: when the switch on the bottom is in the Z (charge) position, the device receives a higher voltage: this mode is used to charge the batteries. It can be charged in this way for up to 15 hours without damaging the calculator or the batteries. Otherwise, always switch back to position R (work) for normal operation (without charging).
Using the B3-21
The B3-21 works with 8+2 digit numbers without any guard digit. Because the decimal point is placed within the number, the decimal point occupies an entire digit. As with other Kalkulator-manufactured machines (e.g. Elektronika B3-14M), the display shows 8 digits, so if the decimal point is not in the last position, only 7 digits are displayed.The functions were separated based on which chip performs the given operation. Buttons that can be pressed together with a function key are indicated by colored frames.
The stack
The machine operates with reverse polish notaion (RPN) system, so all operations must be written (keyed) after the operands. The stack has only two levels with registers X and Y. The input and moving registers up (X to Y) can be achieved by pressing ENTER, here appeared as ↑. Certain operations (e.g. reading from memory) do not automatically shift the stack, but simply overwrite the X register. After performing most of the operations, the contents of the Y register retains its contents, so it can be used as a constant, e.g. 6 × 8 × 8 × 8 can be entered as follows: 8 ↑ 6 × × ×.To exchange the X and Y register contents, press x↔y. The ROLL↑ (secondary function of /-/ with P) and ROLL↓ (secondary function of , with P) rotates another stack, the ring-like program counter stack consisting of 6 registers (labeled S1-S6) clockwise or counterclockwise including the X register.
Memory registers
In addition to stack registers described above, the B3-21 has 9 addressable memory registers, which can be addressed by the appropriate number key. The memory register 0 is identical to the X register, the memory register 1 is identical to the Y register. After pressing P and the address key, the contents of X register stores in the given memory register. Similar to that, the F key can be used to recall a value stored previously in a given memory register. Interestingly, pressing P 0 stores X to X, P 1 stores X to Y, so this is similar to ↑. Memory registers 2 to 8 can be used to store numbers.After recalling a value from memory, we can use the recalled number for two-variable functions with pressing ↑, because recall does not lift the stack.
Carrying out functions
The two trigonometric function work with radians, so first, angles in degrees must be converted to radians. To obtain sine, press P sin, to obtain cosine, press P cos.The natural logarithm (ln) and exponential function (ex) works as usual with the P prefix key.
Most of two-variable functions can be carried out as usual on RPN machines, so the first operand must be entered into the stack by pressing ↑. After performing basic functions, newly keyed number automatically lifts the stack. Important to know, after obtaining results, Y register always retains its previous content, so can be used as repetitive multiplications and divisions.
Raising to powers is different to usual method: first, the power must be stored in the stack, then the base. E.g. to compute 23, press 3 ↑ 2 xy.
If overflow occurs, the machine shows that displaying a 0 in the place of sign of mantissa, next to that can be seen the last keyed number. The calculation can be continued or corrected.
Programming the B3-21
To switch to program write mode, press P РП. The two-digit number on the right is the program counter (PC). The program area is divided to 10 pages, and a page stores 6 steps. The program counter shows its value according to that: the first digit means the number of the page (0-9), the second is the number of the step in the according page. The stored instruction code can never be seen. The code numbers at the left side means the stored keycodes in the steps PC-1, PC-2 and PC-3. So reading the program is carried from right to left. The key combinations with F or P key occupies only one step. The program editing keys are the following:ШГ→ – moves forward one step.
←ШГ – moves backward one step.
P НОП – stores a NOP (No Operation) command at the current address.
Removing steps from the program can be only achieved by overwriting these steps with the NOP command.
A С/П instruction must be programmed at the end of program.
Code | As address | Key(s) |
01 | 00 | P 0 |
02 | 01 | F 0 |
03 | 02 | P eix |
04 | 03 | 0 |
05 | 04 | F ↑ |
06 | 05 | ↑ |
11 | 10 | P 1 |
12 | 11 | F 1 |
13 | 12 | P ln |
14 | 13 | 1 |
15 | 14 | F x↔y |
16 | 15 | x↔y |
21 | 20 | P 2 |
22 | 21 | F 2 |
23 | 22 | P π |
24 | 23 | 2 |
25 | 24 | F × |
26 | 25 | × |
31 | 30 | P 3 |
32 | 31 | F 3 |
33 | 32 | P ex |
34 | 33 | 3 |
35 | 34 | F ÷ |
36 | 35 | ÷ |
37 | N/A | F xy* |
38 | N/A | xy |
39 | N/A | P С/П |
41 | 40 | P 4 |
42 | 41 | F 4 |
43 | 42 | P , (ROLL ↓) |
44 | 43 | 4 |
45 | 44 | F 1/x |
46 | 45 | , |
47 | N/A | F В/О* |
48 | N/A | В/О |
49 | N/A | P x≥0 |
51 | 50 | P 5 |
52 | 51 | F 5 |
53 | 52 | P /-/ (ROLL↑) |
54 | 53 | 5 |
55 | 54 | F x2 |
56 | 55 | /-/ |
57 | N/A | F БП* |
58 | N/A | БП |
59 | N/A | P x=0 |
61 | 60 | P 6 |
62 | 61 | F 6 |
63 | 62 | P ВП* |
64 | 63 | 6 |
65 | 64 | F √x |
66 | 65 | ВП |
67 | N/A | F ПП* |
68 | N/A | ПП |
69 | N/A | P x<0 |
71 | 70 | P 7 |
72 | 71 | F 7 |
73 | 72 | P Cx* |
74 | 73 | 7 |
75 | 74 | F Cx |
76 | 75 | Cx |
77 | N/A | F С/П* |
78 | N/A | С/П |
79 | N/A | P x≠0 |
81 | 80 | P 8 |
82 | 81 | F 8 |
83 | 82 | P cos |
84 | 83 | 8 |
85 | 84 | F -* |
86 | 85 | - |
91 | 90 | P 9 |
92 | 91 | F 9 |
93 | 92 | P sin |
94 | 93 | 9 |
95 | 94 | F +* |
96 | 95 | + |
Jump instruction can be programmed by keying БП, and can be used in RUN mode to start program other than address 00. Programming the destination address is a bit weird: a key must be pressed according to the destination address plus one. E.g. to jump to the address 12, we must press the key belongs to code 13, that is the ln: БП P x↔Y. These were displayed as 13 58.
Conditional jumps can be programmed with the four condition functions, which tests relations with X and 0. E.g. F X<0 gives true result for negative X values. It is interesting, that these conditional jumps operates reversed in comparing to other calculators: if the condition is met, program continues on the step after the jumping command, but the condition is not met (false), a jump was made to the specified address, which can be programmed as described above.
If the jumping instructions are used to calling subroutines, the return instruction can be programmed with В/О. Up to 5 levels of subroutines can be nested.
Running the program
To exit from learn mode, press F АВТ.To start the program from the current program counter, press С/П. To jump to a specified address (and then start the program from that address), the БП key can be used the same way as within programs. To jump to address 00, simply press В/О.
Interesting features
The machine can be used to calculating exponential function of imaginary numbers, which can be used to obtain cotangent and tangent values.By pressing P eix cosine of X will be stored into Y, sine of that will be stored into X.
If we are pressing the ÷ button after that, the machine displays the tangents (result of division of cosine and sine).
Mantissa can be modified anytime by pressing the ВП and entering a number, which will be added to the exponent.