SwissMicros DM41X User manual

DM41X User Manual
v1.01, Jan 2020
Copyright © 2016-2020 SwissMicros GmbH

Table of Contents
1. About this User Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê1
2. General Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê1
2.1. CPU Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê1
2.2. IR Printing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê1
2.3. Internal FAT disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê1
3. Calculator Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê2
3.1. Big LCD Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê2
3.1.1. Calculator Mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê2
3.1.2. Program Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê3
3.2. CSTM menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê3
3.3. LCD Screenshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê3
3.4. OFF Images. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê3
3.5. RTC correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê4
3.6. Patched mainframe ROMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê4
3.6.1. Patch to routine [MASK] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê4
3.6.2. (Minor), Changed the ROM2 revision. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê5
3.6.3. Added [TURBO0] and [TURB50] routines in ROM2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê5
3.6.4. Extensions to the ED function (ASCII file editor) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê5
3.6.5. Additional Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê5
4. Modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê6
4.1. Quick Module Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê6
4.2. Plug-in Printer Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê7
4.3. Supported Module formats. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê7
4.4. Flash Module Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê7
4.4.1. Quick Restore . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê8
4.5. Activating Modules (plug-in) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê8
4.5.1. Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê9
4.6. Internals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê9
4.6.1. Module Loader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê9
4.6.2. RAM pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê11
5. Program Decoder/Encoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê11
6. DM41X Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê12
6.1. Main Setup menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê12
6.2. File menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê12
6.2.1. Load DM41 State File > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê12
6.2.2. Save DM41 State File >. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê13
6.2.3. Load RAW Program >. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê13
6.2.4. Save RAW Program > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê13

6.2.5. Activate USB Disk >. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê14
6.2.6. Show Disk Info > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê14
6.3. Module menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê14
6.3.1. Active Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê14
6.3.2. Manage Modules in Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê15
6.3.3. Restore Flash from LOADMOD.TXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê15
6.4. Settings menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê16
6.4.1. Set Time > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê16
6.4.2. Set Date >. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê16
6.4.3. Beep Mute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê16
6.4.4. Slow Auto-repeat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê16
6.5. System menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê16
6.5.1. Flash firmware from FAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê16
6.5.2. Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê16
6.5.3. Program Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê17
6.5.4. Reset to DMCP menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê17
6.5.5. Format FAT Disk > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê17
6.5.6. FAT Disk Media Test > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê17
6.5.7. Power OFF mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê17
6.5.8. Self Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê18
7. Firmware Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê18
7.1. Quick Update Guide (FAT disk update) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê19
7.2. Bootloader mode activation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê19
7.3. FW Update Using dm_tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê19
7.3.1. Prerequisites for Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê20
7.3.2. Prerequisites for Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê20
7.3.3. Launching dm_tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê20
7.4. FW Update Using dfu-util . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê21
7.5. DMCP System Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê23
7.5.1. Program Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê24
7.5.2. Run Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê24
7.5.3. Load Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê24
7.5.4. Load QSPI from FAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê24
7.5.5. Settings > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê24
7.5.6. Activate USB Disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê24
7.5.7. Enter System Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê25
7.5.8. About . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê25

1. About this User Manual
This user manual refers to special features of DM41X. PDF version of this manual is available at
https://www.swissmicros.com/dm41x/doc/dm41x_user_manual.pdf.
Search internet for documentation of original HP-41C calculator and related modules and utilities.
Especially useful is HP41.org site, where manuals could be viewed on-line and/or downloaded
complete DVD for off-line access.
Other sites with manuals:
•https://archived.hpcalc.org/greendyk/
•https://qrg41.fjk.ch/index.html
2. General Information
2.1. CPU Speed
CPU speed is 24MHz when running on battery (due to limited battery current) and increases to
80MHz when the USB cable is connected.
2.2. IR Printing
Calculator contains IR output and can print on HP 82240A/B infrared printer using emulation
through 'Thermal Printer' module (which is by default bundled in firmware).
Note that 'Thermal Printer' module has to be plugged-in first. See Module Plug-in for more
information.
2.3. Internal FAT disk
The calculator has 6MB of internal flash storage formatted as a FAT filesystem that is used for
loading/saving programs and for backing up calculator state. It is accessible as USB disk when
activated via the menu 'File > Activate USB Disk >'.
Internal flash has limited amount of write cycles. While the lifetime with ordinary
usage could be dozens of years, an excessive number of writes will wear the flash
memory much quicker.
Worst case scenario, you would have to replace the flash chip, which is worth less
than $1. If needed, SwissMicros will replace the chip at no cost, but shipping costs
must be covered by the customer.
The datasheet mentions a minimum of 100,000 write cycles, which sounds like a
lot, but any change in the filesystem means overwriting at least part of the file
allocation table, which is stored in a static location.
1

Calculator comes with pre-filled FAT disk contents. In case the contents of the FAT area is lost it
could be always downloaded from the SwissMicros DM41X FAT files page. There is the contents of
individual directories accessible separately or the whole contents of FAT disk can be downloaded as
single zip file DM41X.zip.
There are several directories with special names (and purpose) on the FAT disk:
HELP
Contains help file(s) for built-in DM41X help that can be activated from CSTM menu.
MODS
Default directory for module files.
OFFIMG
Bitmap files from this directory are displayed when the calculator is turned off. See OFF Images
chapter for more details.
PROG
Raw files with programs are loaded/saved from/to this directory.
SCREENS
Screenshots of calculator LCD are saved into this directory. See LCD Screenshots for more
details.
STATE
Calculator state files with extension .d41 are stored in this directory. See Load State or Save State
how the load or save calculator state.
3. Calculator Extensions
3.1. Big LCD Screen
3.1.1. Calculator Mode
Figure 1. Basic stack view mode
2

Figure 2. Extended stack view mode
3.1.2. Program Mode
Figure 3. Basic program mode
Figure 4. Multiline program mode
3.2. CSTM menu
To be implemented …
3.3. LCD Screenshots
Hold [ SHIFT ]and press [ DISP ]to get a screenshot.
You will find a .bmp file named according to the current time and date in the /SCREENS folder of the
FAT drive.
3.4. OFF Images
The LCD display used in DM41X calculator behaves in similar way as e-ink displays and contents of
the LCD is visible for a long time after the calculator is turned OFF.
3

This feature is used to display images when the calculator is turned OFF.
Single hard-coded OFF image is present in calculator firmware and this image is displayed
whenever the calculator is turned OFF and FAT disk doesn’t contain any valid custom image or the
FAT disk is in error state.
Custom OFF images should be stored in /OFFIMG/ directory. All valid images are then cyclically
displayed one after each calculator OFF in the order how they appear in /OFFIMG/ directory.
OFF images require specific image format. It has to be .bmp file with dimensions 400 x 240 and 1 bit
depth.
Examples of OFF images can be found on "A collection of off-screen images" page.
3.5. RTC correction
Note that to apply RTC correction you have to know (measure and calculate) ppm drift of calculator
clock first.
Use following steps to apply clock frequency correction.
1. Calculate correction factor C which best matches required ppm correction P
C = 2^20 P /(10^6 + P)
resulting value C has to be integer and -511 <= C <= 512.
2. Create file /rtccalib.cfg in root directory of calculator FAT disk and write value C there.
3. Once the RTC correction is active the ppm value is written in Setting menu at the end of "Set
Time >" line.
It is possible to use approximate expressions between correction factor C and ppm value P (with
reasonable precision):
C = 1.04858 P
P = 0.953674 C
3.6. Patched mainframe ROMs
Changes to the original NUT-CX.MOD - 30.08.2019, by Ángel M. Martin
Fitting all these into the ROMS wasn’t terribly difficult, although there were numerous restrictions
both in available space and FAT sizes. The ROMS are totally full now..
3.6.1. Patch to routine [MASK]
Needed for ALPHA display of lower-case characters. The Half-nut LCD display is capable of
displaying lowercase chars but the 41CX-OS code wasn’t modified to display them properly in
ALPHA. This patch corrects that.
4

More on this here: Forum Article
3.6.2. (Minor), Changed the ROM2 revision
From "N" to "X", and the Section Header names in CAT 2 for CX-FNS and CX-TIME
3.6.3. Added [TURBO0] and [TURB50] routines in ROM2
To be accessed by the new FAST/SLOW functions in the -DM_41X section
3.6.4. Extensions to the ED function (ASCII file editor)
Done to support lower case and special characters. The function has been renamed ED$ to signal
the additional capabilities. Same XROM code of course.
More on this here: Forum Article
3.6.5. Additional Functions
(as per the final version, not all are in build 1.8t02 yet.)
The header function -EXT_FCN_2X is stealth for CRT?, a curtain finder tool. To execute it use XROM
25,00 or assign to any key.
One additional function at the end of the -CXX_XT_FCN section, after the X#NN functions:
X<I>Y
Exchanges the contents of IND X and IND Y
One additional function in the -CXX TIME group, plus a new Section after the TIME functions are
listed, labeled "-DM 41X-" containing 17 functions. Both shown below:
TRNG
Time-Based (True) Random Number Generator
-DM 41X-
New Section header. .
ABSP
ALPHA Back Space. Deletes the rightmost char in ALPHA
AINT
Appends integer value from Reg X to ALPHA (includes sign)
ASWAP
Swaps ALPHA strings around the comma characters, i.e. A,B changes to B,A
CLAC
Clears ALPHA after the comma character, i.e. A,B changes to A,
5

CLEM
Clears all Extended Memory
FAST
Restores FAST mode
FILL
Fills the stack with the value in X
FLCOPY
Copies the content of a file into another. Both files must exist and be of the same type. The
destination file should be of equal size or larger than the source file.
FLHD
Returns to X the address (in decimal) of the File Header. Stack lifts if CPU F11 is set
FLTYPE
Returns to X the type of the file, ie. 1 for program, 2 for Data, etc… Stack lifts if CPU F11 is set
LKAOFF
Turns Local KA off, i.e. those assigned to the two top rows
LKAON
Turns Local KA back on
RENMFL
Renames an X-Mem file. Alpha contains OLDNAME,NEWNAME
RETPFL
Re-types an X-Mem file. X has the new type value (1 to 15)
SLOW
Sets SLOW mode for compatibility with legacyModules
WORKFL
Appends the name of the current ("Working") X-Mem file to ALPHA.
4. Modules
Integral part of original HP-41 are plug-able modules. This chapter explains how to load and
manage modules in DM41X.
4.1. Quick Module Load
This is quick step by step reference how to load module.
You can use [ ▲ ], [ ▼ ]keys to navigate items.
6

Plug, Imprt, etc. corresponds to soft menu items and are activated by respective first-row key.
Steps
Load .mod file to DM41X
1. First you need to prepare module as .mod file
2. Copy .mod file to calculator’s FAT disk (preferably to /MODS directory)
See Activate USB disk how to copy files to calculator’s FAT disk.
Load .mod file to internal Flash Module area
3. Navigate to SETUP →Module →Active Modules →Plug →Imprt
4. Select .mod file from file list, press [ ENTER ]to load.
Now you should see list of modules present in Flash Module area
Add module to the 'Active Modules' list
5. Select your module and press Add key from soft menu. You should see Active Modules screen
6. Press [ ENTER ]to accept Active Modules list.
Now the module should be active.
4.2. Plug-in Printer Module
This is quick step by step reference how to activate printer module.
Steps
1. Navigate to SETUP →Module →Active Modules.
2. Press Plug.
3. Select Thermal Printer and press Add or [ ENTER ]
Thermal Printer module should be in Active Modules list now.
4. Press [ ENTER ]to accept new Active Modules list.
4.3. Supported Module formats
DM41X is able to load and use usual .mod files only.
However you can always pack ROM file(s) into .mod on PC and use resulting .mod file at DM41X.
4.4. Flash Module Area
'Flash Module Area' is special region of flash memory dedicated for module use. It is only place
from where the emulator can access module ROMs and run module code.
That implies all modules before activation have to be loaded to 'Flash Module Area'.
7

Tools for module management in 'Flash Module Area' are accessible from screen SETUP →Module →
Manage Modules in Flash.
4.4.1. Quick Restore
Note that this functionality could be available only in beta version.
Each firmware update clears 'Flash Module Area'. You can use Restore FLASH from LOADMOD.TXT for
quick population of Flash Module area after firmware update.
Steps
•Create text file loadmod.txt in root of FAT disk.
•Edit this file and add full filenames of required module files per line.
•Navigate to menu SETUP →Module →Restore FLASH from LOADMOD.TXT to load listed modules in
one step.
Example contents of loadmod.txt file
/MODS/41Z_BS_2X2.mod
/MODS/Advantage.mod
/MODS/LIBRARY4.mod
/MODS/SM_OSX_BS4X_P6.mod
/MODS/WARP_BS3.mod
/MODS/HEPAX_4H.mod
4.5. Activating Modules (plug-in)
Here 'Activating module' means to do an action which corresponds to module plug-in on real
calculator.
Note that it is possible to plug-in only modules present in Flash Module Area.
Steps
1. Activate Plug from 'Active Modules' screen:
SETUP →Module →Active Modules →Plug
2. List of modules from Flash Module Area is displayed
8

3. If required module isn’t present in the list you can import module from disk using Imprt now.
4. Select required module from list and press Add or [ ENTER ]to add module to 'Active Modules'
list.
You should see Active Modules screen now.
5. Press [ ENTER ]to accept Active Modules list.
Now the module should be active.
4.5.1. Troubleshooting
Note that this functionality could be available only in beta version.
Result of current address assignment to module ROMs is stored in root of FAT disk in rominit.log
file.
See Module Loader section for details.
4.6. Internals
4.6.1. Module Loader
This section describes procedure for ROM address assignment.
Each time module is plugged or unplugged Module Loader assigns locations of ROMs to active
modules.
For each step number below are all active modules processed in order specified in Active Modules
screen:
Pass 0
ROMs assigned in .mod files to fixed pages go exactly there.
Pass 1
Others ROMs are assigned to pages 8-F in order of appearance - first those with prescribed
mutual relative positions (in single .mod file).
Pass 2
Finally ROMs using single pages with no other requirements are placed at free pages.
Result of this process is available in rominit.log file located in root of FAT disk.
9

Example of rominit.log
0-0: SM_NUT-CXX.mod pg:0
ÊR[0] 0 0 1 0 NUT0-N
ÊR[1] 1 0 1 0 NUT1-F
ÊR[2] 2 0 1 0 NUT2-L_X
ÊR[3] 3 0 1 1 -EXT FNC 2X
ÊR[4] 5 0 1 1 -TIME 2X
ÊR[5] 5 0 2 1 -X/F_BKN2
0-1: LIBRARY4.mod pg:ff
ÊR[0] 4 0 1 0 -LIBRARY#4
0-2: SM_OSX_BS4X_P6.mod pg:ff
ÊR[0] 6 0 1 3 -AMC"OS/X
ÊR[1] 6 0 2 3 -OSX BANK2
ÊR[2] 6 0 3 3 -AEC PROG
ÊR[3] 6 0 4 3 -HEPAX DISM
0-3: WARP_BS3.mod pg:8
0-4: HEPAX_4H.mod pg:a
1-0: SM_NUT-CXX.mod pg:0
1-1: LIBRARY4.mod pg:ff
1-2: SM_OSX_BS4X_P6.mod pg:ff
1-3: WARP_BS3.mod pg:8
ÊF-PG[R0]: 8
ÊR[0] 8 1 1 4 -WARP CORE+
ÊR[1] 8 1 2 4 -D2C BANK2
ÊR[2] 8 1 3 4 -D2C BANK3
1-4: HEPAX_4H.mod pg:a
ÊF-PG[R0]: a
ÊR[0] a 1 1 5 -HEPAX`4H
ÊR[1] a 1 2 5 -HEPAX_BK2
ÊR[2] a 1 3 5 -HEPAX 4H
ÊR[3] a 1 4 5 -HEPAX_BK4
ÊRAM[4] a WP=0
ÊRAM[5] b WP=0
2-0: SM_NUT-CXX.mod pg:0
2-1: LIBRARY4.mod pg:ff
2-2: SM_OSX_BS4X_P6.mod pg:ff
2-3: WARP_BS3.mod pg:8
2-4: HEPAX_4H.mod pg:a
10

rominit.log Fields Explanation
Ê Pass number
Ê/ Module number (as appears in Active Modules list)
/ / just technical hint - ignore :)
| | /
0-0: SM_NUT-CXX.mod pg:0
ÊR[5] 5 0 2 1 -X/F_BKN2
/ / | | | \
| | | | \ bank group (effective)
| | | \ bank
| | \ page group
| | page
| ROM position in .mod file
Rom in module
ÊRAM[4] a WP=0
Ê| | | \
Ê| | | Initial Write protection state
Ê| | page
Ê| position in .mod file
ÊRAM in module
4.6.2. RAM pages
Any module can define its own RAM (in .mod file) and subsequently access it using WROM(WMLDL)
and CXISA(FETCH S&X). HEPAX instructions WPTOG and BLKMOV are implemented too.
The only restriction in current implementation is that RAM doesn’t support banks (which is fine for
HEPAX support).
RAM pages are available for all pages 8-F, avoiding allocation in runtime and possible problems
during load.
RAM pages are erased only after calculator RESET. Otherwise the contents is preserved during all
plug/unplug(s) of modules and always remains at the same page.
5. Program Decoder/Encoder
There is state file decoder/encoder available at http://dm41.swissmicros.com/.
Besides loading of contents of state files (which has to be copied into "Dump from calc:" window). It
also allows to load .raw program files.
For more details follow the encoder link and look into "Quick Ref" tab.
(To be implemented…) Note that this utility is originally designed for DM41 and
needs update to fully support all features of DM41X.
11

6. DM41X Menus
Menu navigation:
•Select menu items using [ ▲ ], [ ▼ ]keys.
•Activate current menu item by pressing [ ENTER ]key or by pressing the number key
corresponding to particular menu line.
•Return to previous menu level by [ EXIT ]or [ ← ]key.
Soft menus:
•Sometimes soft menu like this is displayed at the bottom of the LCD:
Each item in soft menu corresponds to respective key in first-row and pressing corresponding
key activates particular item.
6.1. Main Setup menu
Main 'Setup menu' could be entered by pressing [ SHIFT ]+[ SETUP ].
From there other sub-menus could be entered or about screen displayed
1. File menu
2. Module menu
3. Settings menu
4. System menu
5. About > Displays About screen.
6.2. File menu
6.2.1. Load DM41 State File >
Used for loading the .d41 state files. By default from the /STATE/ directory of the FAT disk.
Note that this loads only calculator memory and doesn’t affect state of currently loaded modules.
To load calculator state
•Select the program to load using the [ ▲ ]and [ ▼ ]keys
•[ ENTER ]to load the selected state file
•Warning is displayed that current calculator state will be lost. Proceed with [ ENTER ].
12

Then calculator state is updated from the selected file.
6.2.2. Save DM41 State File >
Used for saving calculator’s state to a .d41 state file. By default to the /STATE/ directory of the FAT
disk.
•Select file from list (for overwrite) or <New File> if you want to enter new filename.
Confirm with [ ENTER ]
•[On <New File>] Enter new filename. [ SHIFT ]toggles input mode between lower/upper case
and numbers.
Confirm with [ R/S ]or [ Alpha ].
Then calculator state is saved to selected file.
6.2.3. Load RAW Program >
Used for loading the .raw program file from FAT disk. By default from the /PROG/ directory of the
FAT disk.
This is functional equivalent of GETP extended memory command. Only this reads from FAT disk
instead of extended memory.
To load program file:
•Select the program to load using the [ ▲ ]and [ ▼ ]keys
•[ ENTER ]to load the selected state file
The program is loaded into calculator memory.
6.2.4. Save RAW Program >
Used for saving program to a .raw file to FAT disk. By default to the /PROG/ directory of the FAT disk.
This is functional equivalent of SAVEP extended memory command. Only this writes to FAT disk
instead of extended memory.
Note that the program name to save has to be prepared in ALPHA register.
•Select file from list (for overwrite) or <New File> if you want to enter new filename.
Confirm with [ ENTER ]
•[On <New File>] Enter new filename. [ SHIFT ]toggles input mode between lower/upper case
and numbers.
Confirm with [ R/S ]or [ Alpha ].
The program is saved from calculator memory to FAT disk.
13

6.2.5. Activate USB Disk >
Used to copy files from/to a host computer - e.g. backup/restore the calculator state files from
/STATE/ directory or read/write programs in RAW format into /PROG/ directory.
•Connect the calculator to a computer using a USB cable
•The DM41X’s flash disk should be visible on the computer
•Read/write files
•'Eject device' on the host machine.
•Calculator should end USB disk mode automatically if correctly ejected by OS. You can end USB
disk mode by pressing [ EXIT ]key on the calculator but be sure all data are flushed to disk first.
The last two points 'Eject device' and 'Press [ EXIT ]key on calculator' (if it doesn’t
end automatically) are important to avoid unsaved data and possible FAT disk
corruption!
6.2.6. Show Disk Info >
Displays disk status and disk block info.
6.3. Module menu
6.3.1. Active Modules
Figure 5. Active Modules Screen
Soft menu items:
Plug - Plug-in module
Add module to active modules list. See Activating Modules section.
Mod - Module Info
Displays information about selected module.
Move↑- Move up
Move selected module in list up.
Move↓- Move down
14

Move selected module in list down.
Unplg - Unplug module
Deactivates module by removing from active modules list.
Exit
Exits this screen
6.3.2. Manage Modules in Flash
Note that 'Flash' refers here to 'Flash Module Area'.
'Manage Modules in Flash Screen' allows to add/remove modules to/from this area as well as
display various information about modules and flash module area state.
Figure 6. Manage Modules in Flash Screen
Soft menu items:
Imprt - Import Module
Opens file selection dialog in /MODS directory (which is default directory for .mod files).
Select module file and press [ ENTER ]to import it into 'Flash Module Area'.
Mod - Module Info
Displays information about selected module.
ROMs- Module Page Info
Technical information about page assignment of currently loaded modules.
Flash - Module Memory (Flash Area) Info
Information about whole 'Module Flash Area'.
Del - Delete Module
Removes module from flash.
Exit
Exits this screen
6.3.3. Restore Flash from LOADMOD.TXT
Helps to restore Flash Module area after firmware update. See Quick Module Restore for details.
15

6.4. Settings menu
6.4.1. Set Time >
Used for setting the time.
•Use the function keys to adjust the time.
•Press Set to write the new time to the calculator clock or [ EXIT ]to cancel your changes.
6.4.2. Set Date >
Used for setting the date.
•Use the function keys to adjust the date.
•Press Set to write the new date to the calculator clock or [ EXIT ]to cancel your changes.
•Σ+could be used to change between DMY/MDY formats.
6.4.3. Beep Mute
Selecting this menu item toggles the 'Beep Mute' flag.
When the 'Beep Mute' flag is active, no sounds are produced by the calculator.
Note that this value is stored in the calculator state file.
6.4.4. Slow Auto-repeat
Selecting this menu item toggles the 'Slow Auto-repeat' flag.
When the 'Slow Auto-repeat' flag is active auto-repeat delays are prolonged.
Note that this value is stored in the calculator state file.
6.5. System menu
6.5.1. Flash firmware from FAT
Starts flashing of new firmware if the firmware file is stored in root directory of FAT disk. This is
usually not necessary because calculator automatically detects presence of new firmware file and
asks for update after end of USB disk mode.
See Firmware update chapter for more information about firmware update.
6.5.2. Bootloader
Activates bootloader mode for firmware flashing.
You can flash DM41X firmware once is the bootloader mode entered. See Firmware update chapter
16

for more information about firmware update.
Press the RESET button on the back of the calculator if you activate Bootloader mode accidentally.
6.5.3. Program Info
Displays information about currently loaded DM41X. This is mainly for diagnostics.
6.5.4. Reset to DMCP menu
Reboots calculator back to DMCP system menu.
All unsaved data is lost.
6.5.5. Format FAT Disk >
Format the internal FAT disk storage.
All data is erased from disk.
6.5.6. FAT Disk Media Test >
Checks whole flash disk FAT area for bad blocks. Disk is formatted starting from first good block
after the check.
All data is erased from disk.
6.5.7. Power OFF mode
This item is purely for power OFF testing purposes to avoid time consuming switching between
firmwares. It is in no way mentioned to be changed by users.
•Mode 0 means no deep sleep for QSPI giving approx. 12uA sleep current.
•Mode 1 corresponds to pre 3.9 DMCP behavior.
•Mode 2 corresponds to DMCP 3.9 and newer versions.
•Mode 3 is latest update to mode 2 which should fix possible deficiencies of mode 2 by adding
further pull-ups.
Defaults:
hwid=0 : Mode 1
hwid=1 : Mode 3
Note that the "Power OFF mode" value is preserved during calculator RESET, but is lost when
battery is removed.
17
Other manuals for DM41X
1
Table of contents
Other SwissMicros Calculator manuals
Popular Calculator manuals by other brands

Texas Instruments
Texas Instruments TI-73 Explorer Software guide

Texas Instruments
Texas Instruments TI-73 Explorer Appendix

Sharp
Sharp ELSI MATE EL-250S Operation manual

Casio
Casio fx-7400G PLUS Using

Texas Instruments
Texas Instruments BA Real Estate user guide

Sharp
Sharp COMPET QS-2122H Operation manual