HP 41C emulator and MyRPL language



I wrote my first HP 41 emulator for DOS operating system at years 1994-1995.
The emulator was published on Internet at 1995 .

I created "The hp41 emulator page" on www.geocities.com at year 1995.
Since 2009, geocities.com is off line, so , I translated the html pages here.

At year 2004 I began to write an HP41 emulator for Windows, updating the old DOS code.
Later I decided to write more emulators for the HP family of calculators,
beginning with the HP67.

I began to write the MyRPL programming language at year 2016.

You will find all these programs here.

Comments and questions welcome . Please, excuse errors in English usage.

You may help to the evolution of these emulators and MyRPL. If you find an error on
them, e-mail me. Thanks.

Alvaro Gerardo Suárez
Former member of the directive staff at Mensa Society



All the software present in these pages could be tested with Oracle Virtualbox and
a free image of windows 7 32 bit for virtualbox provided by Microsoft at http://www.modern.ie
You need a computer with windows 10 and at least 4 Gigas of RAM.
1) Download and Install VirtualBox.
https://www.virtualbox.org/
2) Download the windows 7 image.
Go to: https://developer.microsoft.com/en-us/microsoft-edge/tools/
Select: Virtual machines. Choose the machine and download it.
Unzip the file and rename the .ova file to .ovf file
For example, if you downloaded IE8.Win7.VirtualBox.zip, unzip and rename: IE8 - Win7.ova to IE8-Win7.ovf
3) Import the image to virtualbox.
Go to the virtual box menu and select: import appliance
4) Enter to the windows 7 image (also known as virtual machine), start it and navigate to this site
For example: navigate using IE8 provided in the virtual machine.
5) Download and install the runtime to the virtual machine, from this site
http://sim41.webcindario.com/runtime.htm
6) Download and Install the calculators or MyRPL on the win7 image.

SIM41 for DOS Download a free copy (202.835 bytes) Version 3.8 build 2 updated 2000/11/10

Dosbox 0.74 Site allows to run sim41 for DOS in Windows 8 (sim41 for DOS is a 16 bit application)

Implementation details

Keyboard map and allowed commands - (2332 bytes .zip file) updated 1998/02/10

Commands that can be executed with XEQ

Commands accepted in programming

Some basic programs -(2899 bytes .zip file) updated 1997/12/02

Algebraic behavior in SIM41

Test your ear

The eight queens problem

Moon landing simulator tested OK in SIM41

The game of NIM adapted from original code for the HP25 calculator.

Printing all allocated memory registers using the PRX command.

External file edition using xBase Languages

Batch procedures to save and recall memory, flags, stack and assigned keys in SIM41

Other HP41 and Emulator links

General information about HP calculators and more HP Emulators

Play with RPN logic using Java Script

Simple RPN calculator with standard buttons

RPN calculator in Java Script with memory management

Scientific RPN calculator with three memory registers

Scientific RPN calculator a variation of previous calculator

My personal interests

Spanish page

Currently I am updating often all these emulators. At september of 2010, I began to write an emulator for the Texas Instruments TI59.

SIM41W version 0.01 running in Windows 2000 Server. (800 by 600 pixels) View a Screenshot

SIM41W version 0.06, skin 3, running in a Laptop with a Wide Screen (1280 by 800 pixels) and XP Home View a Screenshot

Metaprogramming with sim41w A program could modify itself (2014/08/15)

(My RPL) means My Reverse Polish LISP



Tip: When assigning variables to buttons allways check out
if the foreground color (fore_color) is different to the background color (back_color).
Obviously, if the colors are equal, nothing is seen in the button.

Red green and blue intensity of colors in MyRPL.(2019/08/10). Creation of a variable used to convert RGB to a single numeric value.

To assign an internal command as SIN to an empty assignable button: First
create a unnamed program variable with the command.
Example: << SIN >>. Enter
Later store the program variable to the variable name SIN.
Write SIN and press the button
STO
Note that in this case, SIN is an internal command linked to a variable name
with the same name.
Go to view buttons. Assign the program variable SIN to a button number.
Press Ctrl and W of your PC keyboard at same time to save the assignment.
Optional: Change the button background color with mouse right click

Magic creator has 100 empty assignable buttons. Only variables could be linked
to buttons. Shift0 shows the first 25 buttons, shift1 shows buttons 26 to 50,
shift2 shows buttons 51 to 75, shift3 shows buttons 76 to 100.

Magic Creator fully configurable calculator.(2019/07/11). Version 1.01 with new external windows forms

Magic creator image. View a screenshot

Try to run MyRPL with the calculator minimized ! . To do this: load first the calculator, from
the menu: open the windows: Numeric, Basic operations, display2 and stack. Panel[1] has
some assignments so open it too.
When you end to load these windows, minimize the calculator !

Use the window DISPLAY2 to enter data into the stack.

If you use the Window NUMERIC the data appears on the window DISPLAY2

Do you want to use external forms?. Load the forms before minimize the calculator.

Do you want that the window DISPLAY2 maintain (keep) data after Enter is used? On the calculator
go to status and check out "copy first level to display". Later minimize the calculator !

MyRPL minimized . Only some windows shown. View a Screenshot

Sim502 for windows 10.(2019/06/29). Version 1.1

Stack operations, lists, math, logarithms and powers.(2019/06/17). five new forms for myrpl

Download MyRPL 1.22.(2019/07/17).Read arrows.txt in directory documents

Version 1.21b allows to choose background pictures.
Fixed and issue with Trigonometry windows forms.

Stack movement 1 and 2 Open Source Windows Forms.(2019/06/07). version 1.1 for MyRPL

Stack movement(3) Open Source Windows Form.(2019/06/07). with help text at right of buttons

Trigonometry Windows Forms for MyRPL 1.21b .(2019/06/07). available to choose from 3 sizes

Version 1.21: To enter commands (or variables) without quotes into the stack, write the command
on the display and press the little down arrow, located at right of display.
For example, try to enter the sign + without quotes into the stack.

Also, try to enter ++ without quotes, into the stack.

An internal command without quotes, located on the stack, could be evaluated using the EVAL key.
Same is valid for variables without quotes present in the stack.

Version 1.21: To change the background color of an assignable button use mouse right click.
This is related to buttons located on panels and the main assignable buttons available
on the calculator.
Valid in windows 10 with MyRPL running on top of the runtime version 9.

Version 1.21: Enter data direct on top of stack with up arrow.
Enter data without evaluation to bottom of stack using down arrow

Version 1.21: New checkbox: Copy first level to display. If this checkbox
is checked out, after each operation, stack level 1 is copied to display.
This allows us to simulate old calculators where the display allways shows data.

When shrink is used, the checkbox is turned on. When expand is used, the checkbox
is turned off. This behavior could be overriden using the checkbox.

Sim59 version 1.1 for windows 10 (2019/05/30)

Sim67 for windows 10.(2019/05/04).Version 1.10

Save and load variables from menu.(2019/04/24).Download MyRPL 1.20

MyRPL Version 1.19d: Buttons for rcl+, rcl-, rcl*, rcl/, time, seconds and mod.
Msize changed to SetSize (2019/04/21)

Sim65 for windows 10 (2019/04/21).

Sim25 for win10. (2019/04/19)Version 1.2.0

Sim41e (extended) for win10. (2019/03/21)To install read whatisnew.txt

Extended storage program example***2019/03/06***

Nigthly binary 2019/02/28. Experimental: Load Stack, Load Memory. Fixed a problem in Msize.

Version 1.18b: Testing new panels intented for assignable buttons.
View a screenshot using a High contrast Theme on Win10. (1600x900)

Panels and a grid for editing panel6 (2019/01/06) in version 1.1.8 View a screenshot

Version 1.1.8 Shortcut: If an assigned button is pressed while data is written to display,
the data will be put on first level of stack before to execute the assignment
This is valid for all panels buttons (128) and for the 18 assignable buttons located on
the calculator.

New menu options and Panels (2018/12/29) in version 1.1.7b language
View a screenshot

Version 1.17b. New "panels" technology.
Read the file "panels.txt" provided with the calculator (version 1.17b!). Also, new menu options
linked to "Change" on the external windows: a)Main memory. b)Variables

VERSION 1.17a FIX. THE ASSIGNED KEY "--" DO NOTHING AND SHOWS AN ERROR.
Fix: Open the variables window. Search for a variable name "-a". Change to "--"

Version 1.16e. New: Multiple assignments to several keys. Fast method to assign keys.
Use View in the Buttons sheet. Assign several variables to some keys at the grid shown.
Save pressing CTRL and W at same time on the PC keyboard.

Version 1.16d. Shrink and Expand the calculator. Show/No Show assignments.

Version 1.16c: rcl+ rcl- rcl* rcl/ and date could be written directly into the data
entry box. Use either the keys Enter or Eval at the end of each command.

Version 1.16b: New menu options. New window to show variables. Some fixes.
View a screenshot using a High contrast Theme on Win10.

From version 1.16: Redesign of Alpha sheet. Included some tooltips. New method to load on windows10.
(and load on windows 8 64 bits)
Read the file: install_on_win10_method2.txt (included in the distribution)
The compatibility with vrunfox6 is only from version 1.16. I changed internal code to do this.

Version 1.15d: The commands SECONDS and TIME could be written manually on the entry box.
Use ENTER to execute them.
SECONDS puts on the first level of the stack the seconds from midnight. TIME puts the current time.
The commands are programmable.

From version 1.15c: A command could be written manually in the data entry box.
Use either the Enter key or Eval key to execute the command.
The PC enter key also could be used.

From version 1.15a: If an object in the stack is greater than 254 characters, the
object is saved to a memo field. To show the big object use right mouse click
over the stack level where the object is saved.

From version 1.15a: Included memo fields in Main Memory and Variables Memory.
A memo field could be used to save objects with hundreds of Kilobytes.

MyRPL Notes about the MyRPL Version 1.0 Language (2017/10/28)

More notes: Comparing MyRPL and RPL (2017/11/02)



My TinyCalc components Calculator objects

My rpl sets***UPDATED***

My rpl add operator

My rpl free format***2018/08/14***

My rpl What is ... ?***2018/08/27***

My rpl variable levels***2018/09/09***

Reverse the stack in MyRPL program example***2018/09/16***

MyRPL is open source distributed under GNU Public License version 3 View sources available since 2017/12/12

HP41 Emulator for Windows Extended Version 1.1 Updated (2017/10/18)

SIM59 TI59 Emulator for Windows, version 0.17 (2015/01/27)

Factors for sim41 Factors are numbers you can multiply together to get another number (2014/06/25)

SIM67 for Windows version 0.41HP67 Emulator Updated (2014/02/03)

SIM65 HP65 Emulator for Windows, version 0.20c updated (2013/08/09)

Anasec67 sent by Paul KopffProgram for HP67 Updated (2013/07/16)

SIM25 HP25 Emulator for Windows, version 0.19b (2013/07/16)

Tones for sim41 Provided by Martin Andres Verens (2013/05/16)

Skin manager for sim59 developed by Pierre Houbert_available at his site ti58c.ift.cx , Emulator, Other products.

SIM502 Casio FX-502P Emulator for Windows, version 0.26 (2012/11/01)

HP 25, HP 41, HP 65 and HP67 Emulators at my Desktop, view a screenshot

Easy41 HP 41 Compiler, version 1.0 Alpha (2005/06/07)

FOCALFREE utility for HP41 free grammar translation. Version 1.2

Translating programs to FOCALfrom your favorite language

Free FOCAL to V41 translation

Turing machine simulator version 0.3 alpha

Sphinx Big Calculator version 0.15 alpha (2006/09/17)





FAQS Frequently Asked Questions. UPDATED (2018/05/04)