DM41 programming tool

Raw file

Paste Dump from your calc or contents of .d41 file:      

Special characters: Σ ≠ ↑ → μ ∡

Special commands

Same as SIZE command
; SIZE = 32
Same as ΣREG command
; SREG = 16
Stack contents X, Y, Z, T, LASTX and ALPHA
; STACK = "ROCK" 7.416198487 5.744562647 4.69041576 0.4472135955
; ALPHA = "BIG PI DAY"
Key assignments: function name followed by key code
; KEY = COS 12
; KEY = SWPT 14
; KEY = SIZE? 81
; KEY = SIN 13
Key assignments to global labels in code using '; Key: key code' comment:
LBL "CDOWN"  ; Key: -64
Alarms: Date/time in following format only; followed by optional repeat; followed by optional label.
; ALARM = 2018-01-26 14:37:00
; ALARM = 2018-02-13 23:51:00.2
; ALARM = 2018-03-14 23:52:00 "BIG PI DAY IS HERE"
; ALARM = 2018-06-08 13:45:21.3 12:34:56
; ALARM = 2018-10-07 13:45:21.3 12:34:56.7 "ONE TWO THREE"
X-Mem area could be preserved in lines like
; MEM = 40  000030030000bf  00000000000000  00000000000000  00000000000000
; MEM = 98  00000000000000  ffffffffffffff  00000000000000  00000000000000
; MEM = 9c  00000000000000  4b532e2e2eff00  0b495420574f52  309f000b000005
; MEM = a0  54585446494c45  01000000000002  08100000000001  06400000000001
; MEM = a4  04900000000001  03600000000001  02500000000001  01600000000001
; MEM = a8  09000000000000  04000000000000  01000000000000  00000000000000
; MEM = ac  20ac000000b00b  53515541524553  df000000000000  0000007ec80e2d
; MEM = b0  77000000000000  5345430075a66d  453d9b73f57f20  10429c02f45053
; MEM = b4  89a693a6991510  89898989898989  89898989898989  a6948989898989
; MEM = b8  75000000000000  0000000010a698  4c454e7ea66000  2050534520f47f
; MEM = bc  5354f954455354  c000f600505354  10000000069010  50535453542020

Assignment key codes

Negate the number to indicate SHIFT.
[11] [12] [13] [14] [15] [43] [51] [52] [53] [54]

[21] [22] [23] [24] [25] [44] [61] [62] [63] [64]

[  ] [  ] [32] [35] [45] [  ] [71] [72] [73] [74]
                         [41]
[  ] [  ] [  ] [33] [34] [  ] [81] [82] [83] [84]

Function names

-Main Functions
  %   %CH
  *
  +
  -
  /
  1/X   10↑X
  ABS   ACOS   ADV   AOFF   AON   ARCL   ASHF   ASIN   ASN   ASTO   ATAN   AVIEW
  BEEP   BST
  CAT   CF   CHS   CLA   CLD   CLP   CLRG   CLST   CLX   CLΣ   COPY   COS
  D-R   DEC   DEG   DEL   DSE
  ENG   ENTER↑   E↑X   E↑X-1
  FACT   FC?   FC?C   FIX   FRC   FS?   FS?C
  GRAD   GTO
  HMS   HMS+   HMS-   HR
  INT   ISG
  LASTX   LBL   LN   LN1+X   LOG
  MEAN   MOD
  OCT   OFF   ON
  P-R   PACK   PI   PROMPT   PSE
  R-D   R-P   RAD   RCL   RDN   RND   RTN   R↑
  SCI   SDEV   SF   SIGN   SIN   SIZE   SQRT   SST   ST*   ST+   ST-   ST/   STO   STOP
  TAN   TONE
  VIEW
  X<0?   X<=0?   X<=Y?   X<>   X<>Y   X<Y?   X=0?   X=Y?   X>0?   X>Y?   XEQ   X↑2   X≠0?   X≠Y?
  Y↑X
  Σ+   Σ-   ΣREG

-EXT FCN 2D
  ALENG   ANUM   APPCHR   APPREC   ARCLREC   AROT   ATOX
  CLFL   CLKEYS   CRFLAS   CRFLD
  DELCHR   DELREC
  EMDIR
  FLSIZE
  GETAS   GETKEY   GETP   GETR   GETREC   GETRX   GETSUB   GETX
  INSCHR   INSREC
  PASN   PCLPS   POSA   POSFL   PSIZE   PURFL
  RCLFLAG   RCLPT   RCLPTA   REGMOVE   REGSWAP
  SAVEAS   SAVEP   SAVER   SAVERX   SAVEX   SEEKPT   SEEKPTA   SIZE?   STOFLAG
  X<>F   XTOA

-CX EXT FCN
  ASROOM
  CLRGX
  ED   EMDIRX   EMROOM
  GETKEYX
  RESZFL
  ΣREG?
  X=NN?   X≠NN?   X<NN?   X<=NN?   X>NN?   X>=NN?

-TIME 2C
  ADATE   ALMCAT   ALMNOW   ATIME   ATIME24
  CLK12   CLK24   CLKT   CLKTD   CLOCK   CORRECT
  DATE   DATE+   DDAYS   DMY   DOW
  MDY
  RCLAF   RCLSW   RUNSW
  SETAF   SETDATE   SETIME   SETSW   STOPSW   SW
  T+X   TIME
  XYZALM

-CX TIME
  CLALMA   CLALMX   CLRALMS
  RCLALM
  SWPT
We recommend to check firmware page and update to latest firmware available.

Formats and hp41uc utility:

En/Decoder page accepts just RAW format files for program import.
It uses modified hp41uc utility for that.
Other input formats could be converted to RAW using original hp41uc utility.

Serial console:

Serial console is activated using key compination [ON]+[C] while the calculator is OFF.
We suggest using PuTTY as serial console. It is available for most platforms.
Configure the serial port to 38400,8N1. Here is a picture of a PuTTY configuration.
This is a sample console output of a memory dump using 's' command:

DM41 >>
DM41 >> h
Firmware DM41_V23

?          Help
p          Key press
s          Dump memory
l          Load memory
ct         Console timeout
t          Get time
ts         Set time
td         Update time
d          Toggle display output to console
b          Read battery voltage

Type ' ?' for params
Uptime 116s
DM41 >> s
DM41
08  4b000000000000  00000000000000  00000000000000  00000000000000
0c  0000000000019c  1a70016919c175  0000002c048000  00000000000000
174  00000000000000  00000000c8262d  93021036ba0000  402143668e2142
178  225140668e5222  8e042126421242  0010362266ba00  452e2e2e2163b4
17c  45502053504143  06ba0003fd4445  12437120424092  40ce0220512442
180  aa001330244222  00431371457502  40542467b200a9  a80066b2005222
184  42124222517141  42134321413426  2345759303207a  2e2e7e897f3061
188  77f75a45524f2e  4e452e2e2e7e89  2e2e2e7e89f64f  2e7e89f654574f
18c  54485245452e2e  7e892367b300f8  3d9b06f37f2046  537e894585f241
190  9b71f57f20462f  45f27f46f27f3d  226e261a15f156  454c3d9b037e89
194  899c000af54655  9c02a91d9b017e  10322533f2473d  101010361c1510
198  10104035cf6615  61181010421112  56495459a81b31  c000f800475241
A: c000f800475241  B: 0000002c0480fd  C: 0000002c0480fd
S: 00001100000000
M: 00011cd5ff73cb  N: 000000000000c0  G: 00
DM41 >>

Usage: