-
It's Alive!
02/07/2021 at 09:37 • 0 comments-- Fully implemented all file functions, including program load and save.
-- Run/pause is working
All functions of the original MK-52 are defined:
[#] - Comment (equivalent of NOP)
[DEG] - Degree mode
[RAD] - Radian mode
[GRD] - Degree mode
[/-/] - Negate
[Enter] - Push stack
[X<->Y] - Swap X and Y
[+] [-] [*] [/]
[Cx] - Clear X
[SIN] [ArcSIN]
[COS] [ArcCOS]
[TG] [ArcTG]
[EXP]
[10^x]
[LG]
[LN]
[X^Y]
[LOG]
[Rotate] - Rotate stack
[X^2]
[1/X]
[SQRT]
[pi] [e]
[Bx]
[RAND] [SEED]
[[X]] - Whole part
[{X}] - Fractional par
[MAX] Max of X and Y
[|X|] - Absolute value
[SIGN] - Sign
[AND] [OR] [XOR] [NOT]
[DEG->DM] [DEG->DMS] [DM->DEG] [DMS->DEG]
[DEG->RAD] [RAD->DEG]
[mm->in] [in->mm]
[M->X ] [X->M ] [K M->X ] [K X->M ] [A M->X ] [A X->M ]
[GOTO ]
[GOSUB ]
[RETURN]
[MEMSET ] [MEMSWP ]
[ExToX ] [XToEx ] [ExToR ] [RToEx ] [MexCx]
[STOP]
[MKDIR ] [SAVE AS ] [LOAD ] [CHAIN ] [SAVE DATA AS ] [LOADDATA ]
[GOMEM ][IFNOT X<0 GOTO ]
[IFNOT X=0 GOTO ]
[IFNOT X>=0 GOTO ]
[IFNOT X!=0 GOTO ]
[IFNOT X<Y GOTO ]
[IFNOT X=Y GOTO ]
[IFNOT X>=Y GOTO ]
[IFNOT X!=Y GOTO ]
[WHILE L0>0 GOTO ]
[WHILE L1>0 GOTO ]
[WHILE L2>0 GOTO ]
[WHILE L3>0 GOTO ]The remaining item is to finalize the program editor.
-
All RPN Fuctions Implemented
01/31/2021 at 06:51 • 0 commentsThe AUTO mode (RPN Calculator) is fully implemented, with all math functions verified and operational. The calculator switches between AUTO, PROG, FILE and DATA modes. It stores data into and recalls data from the registers and the extended memory.
The full list is here:
https://github.com/myak555/MK-52_Resurrect/wiki/Appendix-1.-LIST-OF-FUNCTIONS
DATA Mode is also complete. The user can edit all entries and post the data into the RPN stack:
FILE Mode is working partially: the user can traverse the directory structure, create and delete directories. File loading and saving are not yet implemented - after this is done, the MK-52 will become an "operating system"!
The PROG Mode is still a stub, but can execute a step-by-step operations with STEP (ПП) button.
The next item is to store and load files and save the calculator state for "instant on".
-
RPN Running on ESP32
01/22/2021 at 12:51 • 0 commentsThe keyboard and ESP32 have been assembled, apart from the power transistors (still missing one BS250)
The wiring diagrams in KiCAD are posted here: https://github.com/myak555/MK-52_Resurrect/tree/main/MK52_Electronics
The C++ software on ESP32 currently can does 4 arithmetic operations, Swap, Enter, negation and SIN (the rest of engineering functions is coming tomorrow): https://github.com/myak555/MK-52_ResurrectThe calculator supports Python-style typing logic: if the number is entered as integer, the logic tries to keep it as integer in the range from -9,000,000,000,000,000,000 to +9,000,000,000,000,000,000. Outside of this range, the number changes to a double-precision float between approximately -1e+300 and +1e+300. Plus and minus infinity are also supported. In the range from -1 to 1, 12 decimal points are guaranteed, with the exponent down to -300. For each computation, the calculator attempts to convert the result back to an integer. For example division 2/3 gives 0.666666666666. Multiplication by 6 gives back 4 (as an integer). A SIN(90) in Degree mode is 1 (an integer), ArcTAN(-Infinity) = -90 (an integer), and so on.
The next major step is to finalize the extended memory and registers simulation. The original MK-52 had only 15 memory slots (each holding one floating point number). HP35S has 26 memory slots, but each can contain a vector. The Resurrect will have 4,000 64-bit numbers.
-
Emulator Running
01/16/2021 at 22:59 • 0 commentsThe initial code for the emulator has been completed. The 320x240 TFT screen is emulated, identical to the hardware. Full AUTO mode is working, as well as a step-by-step program execution (with ПП). The Start/Pause (С/П) button is disconnected for now.
In AUTO mode, the program performs all RPN functions, all functions marked with yellow letters (activated with F), and all functions marked with blue letters (activated with K). The calculator emulates "switching off" with A-Cx and "switching on" with Cx. Programs can be loaded with Program menu (the file manager on TFT screen is not yet done). Trigonometric modes can be changed with ↑↓ key between Degrees, Radian, and Grads.
Note that buttons A↑ and ↑↓ have been swapped for aesthetic / logical reasons - this also will be done in hardware.
Now the plan is to port the AUTO mode into ESP32.