Implementation details

Programming
The programs are external to the calculator.
Each program is a DOS file.
Use any ascii text editor for make or change programs.
( Examples: DOS EDIT , Norton Editor, the very old Wordstar for DOS in no document mode, Windows notepad and others. )
The file extension for programs must be either .PRO or .PRG.
When you use the XEQ command for load and execute a program, you must write the DOS program file name.
A program does not need a global label in his first instruction. It's optional.

Memory
Max number of data storage registers: 1000
From 000 to 999. Use the SIZE command for change the memory size.
SIZE? returns to X register the actual size.
If you want use STO or RCL for access a register greater than 99 you must use indirect addressing.

Program size
Unlimited

Flags
55

Subroutines
Six depth levels

Trace
The following commands are implemented for me for trace errors in programs:
TRACEON: Usage XEQ TRACEON. Activates writing to trace file
TRACEOFF: Usage XEQ TRACEOFF. Deactivates writing to trace file.
CTRACE: Usage XEQ CLTRACE. Clears the trace file
VTRACE: Usage XEQ VTRACE. View the trace file
PTRACE: Usage XEQ PTRACE. Prints the trace file

If a program aborts the calculator:
1. Execute again SIM41.EXE.
2. Clear the trace file with CLTRACE
3. Put trace on with TRACEON
4. Execute again the .PRG or .PRO program
5. When the calculator is aborted enter again with HP41C.EXE
6. Execute VTRACE
7. Go to the last instruction in the trace file.
8. This instruction caused the problem.

If a program stops in a unknown instruction.

1. Use the button PROG for see the current program step.
or
1. Use CLTRACE for clear the trace file
2. Execute TRACEON
3. XEQ again the program
4. When the program stops at one not desired instruction use VTRACE and go to the last instruction in the trace file for try understand the trouble.

Command syntax in programs

Spaces are not allowed between reserved command names. Example:
       You must write  x<>y and not x  <  >  y
Always begin a instruction at the first row character. When one
command has spaces use ONLY one space. Example:
       RCL 00  and not RCL   00
       STO IND Y and not STO    IND     Y 

Commands not implemented yet

I had problems with the exponent implementation under Clipper. That programming language was developed for database management and not for implement strong mathemathical applications.
Now, I have a much better calculator version (4.0 version) at the beta state, with exponents fully implemented. In two or three months I shall release this version
Not implemented in the 3.7 version: SCI ENG EEX
I'm sorry: the internal help is written in Spanish. Soon I shall write the help in English

DSP command

I implemented my own command for change the caption keys in USER mode
The command name is DSP
Example: DSP 12 CHS changes the caption of the key 1/X to CHS when user mode is active.
DSP 12 NULL cancels the change.
DSP -53 GAME changes SF replacing it for GAME
DSP -53 NULL cancels the new text.
This command only is implemented within programs
You should use this command when you use PASN

Programmable USER

Use the following commands within a program for set user and clear user mode
USERON
USEROFF

Local Alpha Labels

In the HP41 local alpha labels are A through J and a through e
I implemented local alpha labels for ALL keys
Look at the program CODEKEYS.PRG for the local label names

Return to main page
This page is under construction