SwissMicros DM41X User manual

DM41X User Manual
v1.13, Jan 2021
Copyright © 2016-2021 SwissMicros GmbH

Table of Contents
1. About this User Manual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê1
2. General Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê2
2.1. Specifications. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê2
2.2. CPU Speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê3
2.3. IR Printing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê3
2.4. Internal FAT disk. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê3
2.5. Keyboard Overlays . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê4
2.6. Battery . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê4
3. Calculator Extensions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê6
3.1. Large LCD Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê6
3.1.1. Calculator Mode - Stack . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê6
3.1.2. Calculator Mode - SI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê6
3.1.3. Program Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê8
3.2. Special Keys . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê9
3.3. CST - Custom Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê10
3.3.1. CST Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê10
3.3.2. CONF Screen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê11
3.4. Persistent Configuration Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê11
3.4.1. List of Configuration Items. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê12
3.4.2. Export of Configuration Settings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê12
3.4.3. Restore of Configuration Settings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê12
3.5. Flags Screen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê13
3.6. LCD Screenshots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê13
3.7. OFF Images. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê13
3.8. RTC correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê13
3.9. Patched mainframe ROMs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê14
3.9.1. Patch to routine [MASK] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê14
3.9.2. (Minor), Changed the ROM2 revision. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê14
3.9.3. Added SLOW and FAST functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê14
3.9.4. Extensions to the ED function (ASCII file editor) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê15
3.9.5. Additional Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê15
4. Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê17
4.1. Quick Module Load . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê17
4.2. Plug-in Printer Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê17
4.3. Supported Module formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê18
4.4. Flash Module Area . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê18
4.4.1. Module identification in flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê18
4.5. Backup Module Lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê18

4.6. Activating Modules (plug-in) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê19
4.6.1. Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê20
4.7. Internals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê20
4.7.1. Module Loader. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê20
4.7.2. RAM pages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê20
5. Program Decoder/Encoder. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê23
6. DM41X Menus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê24
6.1. Main Setup menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê24
6.2. File menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê24
6.2.1. Load DM41 State File > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê25
6.2.2. Save DM41 State File >. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê25
6.2.3. Load RAW Program >. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê25
6.2.4. Save RAW Program > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê25
6.2.5. Activate USB Disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê26
6.2.6. Show Disk Info. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê26
6.3. Module menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê27
6.3.1. Active Modules (AM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê27
6.3.2. Manage Modules in Flash . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê27
6.3.3. Module ROM Map . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê28
6.3.4. Load Modules. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê29
6.3.5. Save Modules . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê30
6.3.6. Load RAM Pages >. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê30
6.3.7. Save RAM Pages > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê30
6.4. Settings menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê30
6.4.1. Set Time > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê30
6.4.2. Set Date >. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê30
6.4.3. Slow Auto-repeat. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê30
6.4.4. Printer Line Delay. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê31
6.4.5. Create Full Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê31
6.4.6. Restore from Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê31
6.4.7. Export Settings to 'param.cfg' . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê31
6.4.8. Reset settings to defaults. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê31
6.5. System menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê32
6.5.1. Flash firmware from FAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê32
6.5.2. Bootloader . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê32
6.5.3. Program Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê32
6.5.4. Reset to DMCP menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê32
6.5.5. Format FAT Disk > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê32
6.5.6. FAT Disk Media Test > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê32
6.5.7. Power OFF mode. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê33
6.5.8. Self Test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê33

7. Firmware Update . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê34
7.1. Quick Update Guide (FAT disk update) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê34
7.2. Bootloader mode activation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê35
7.3. FW Update Using dm_tool . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê35
7.3.1. Prerequisites for Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê35
7.3.2. Prerequisites for Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê35
7.3.3. Launching dm_tool. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê36
7.4. FW Update Using dfu-util . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê36
7.5. DMCP System Menu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê39
7.5.1. Program Info . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê39
7.5.2. Run Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê39
7.5.3. Load Program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê39
7.5.4. Load QSPI from FAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê39
7.5.5. Settings > . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê39
7.5.6. Activate USB Disk . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê39
7.5.7. Enter System Menu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê40
7.5.8. About . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Ê40

1. About this User Manual
This user manual refers to special features of DM41X. PDF version of this manual is available at
https://technical.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
Many thanks to Robert Prosperi and Ángel M Martin for contributions to DM41X project and this
manual.
1

2. General Information
The DM41X comes with
•41CX system ROMs (with several patches)
•Full "Extended Memory" configuration - i.e the basic 41CX extended memory + two additional
extended memory modules
•Possibility to load other 41C modules from .mod files
•IR printing support
•Internal FAT disk for modules, programs and configuration backups
•Possibility of keyboard overlays
2.1. Specifications
Specification Details
Construction Case made from stainless steel, matte black Physical
Vapour Deposition (PVD) coated and laser engraved
Software Based on the legendary HP-41CX, it runs on the
SwissMicros Operating System (DMCP). Logical
compatibility with existing HP expansion modules.
Processor Ultra low power ARM Cortex-M4F 80 MHz
Flash memory 32 MBit external flash
Display type Monochromatic ultra high contrast (14:1) transflective
memory LCD display
Display resolution 400 × 240 pixels
Display active area 58.8 mm × 35.28 mm
Display dot pitch 147 µm × 147 µm
Connectivity (PC) USB-Micro-B port, connects as USB mass storage device
Connectivity (IR) IR Transmitter compatible with the original HP-82240A/B
printer
Battery type 1 × CR2032 lithium coin cell, 3.0 volts[1]
Battery life Up to 3 years
Sound 4 kHz resonance frequency Piezo-electric buzzer
Size 77 mm × 144 mm × 12 mm
Weight 180 g
Warranty 5 years
2

[1] The battery isn’t rechargeable. See Battery chapter below for battery
replacement and further info.
2.2. 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.3. 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.
Although the DM41X prints to the HP IR printer, the functions and behavior are the same as
implemented in the earlier 82143A printer, so see that Owner’s Handbook for details about usage,
behavior, flags, etc.
2.4. 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.
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:
/BACKUP
Contains backup files written by complete calculator backup
3

/HELP
Contains help file(s) for built-in DM41X help that can be activated from CST menu.
/KEYS
Contains files with Custom Menu key mappings.
/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.
/RAM
Contains saved RAM pages see section RAM pages for more details.
/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.
2.5. Keyboard Overlays
Extruded rim of the DM41X allows the use of keyboard overlays.
Template for the keyboard overlay with dimensions can be found at
http://technical.swissmicros.com/graphics/key_overlay_DM42.PDF
2.6. Battery
The calculator uses a single CR-2032 Lithium 3V battery. It is not rechargeable, therefore it has to be
replaced when depleted.
Please remember it is always wise to make calculator data backup before battery
replacement. Use USB power during data backup if possible.
You can power calculator from USB during battery replacement.
To change the battery:
•remove the 2 screws on the upper rear of the case,
4

•remove the back,
•(optional) connect USB cable to prevent power loss
•extract the old battery by gently pushing it out of the holder from the bottom towards the top of
the case;
•then insert the new battery with plus (+) side facing up (away from the board),
•slide all the way down to the bottom of the holder,
•then replace the back and screw-in the 2 original screws.
5

3. Calculator Extensions
3.1. Large LCD Screen
3.1.1. Calculator Mode - Stack
Stack view displays all stack registers with X at the bottom:
T
Z
Y
X
Note that while the emulation is running (e.g. a program is executing) only the portion of the screen
corresponding to calculator LCD is updated. All other portions of the screen are updated when
emulations stops (e.g. if program stops or waits for user input).
Figure 1. Primary Stack View Mode
3.1.2. Calculator Mode - SI
System Info View comes in two variants:
SI_XA view
Displays X and Alpha registers along System Info.
SI_XY view
Displays X and Y registers along System Info.
Note that while the emulation is running (e.g. a program is executing) only the portion of the screen
corresponding to calculator LCD is updated. All other portions of the screen are updated when
emulations stops (e.g. if program stops or waits for user input).
The upper portion of the screen contains useful details about your 41X status and configuration.
The 1st line displays status of your Alarms.
There are 3 icons on the far left:
6

•A coffee cup indicates that no alarms are pending
•An alarm clock means you have at least one pending alarm
•A bell means you have a past-due alarm
Next, the alarm text of your next pending (or past-due) alarm is shown.
On the far right, the number of pending alarms is shown in parentheses.
The 2nd line displays your memory status.
On the far left, free (available for use) main Program Memory and free Extended Memory are
shown as xxx/yyy.
On the far right on line 2 is the current 41 SIZE status, indicating how many data storage registers
have been allocated.
The 3rd line displays information about your current Program and Printer status.
Starting from the left, the program’s name (topmost global Alpha label), current line number and
max number of lines is displayed.
On the far right of line-3, the current printer status is displayed following the PRN: label as follows:
MAN Manual Print Mode
TRA Trace Print Mode
NRM Normal Print Mode
OFF The Printer has been disabled (via CF 21 – note, this is reset to ON following each turn-
on)
N/A The Printer Module has not been plugged-in (see section 4.2)
See the HP-82160A HP-IL Module manual section ‘Flags and the Printer’ on pp. 9-10 for use and
meaning of the various Printer modes and controls described above, activated using Flags 15, 16
and 21. All modes described there are supported except for the ‘TRACE with stack’ option. Other
print modes (e.g. Double-wide and Lower-case) are controlled using the other flags described in this
section.
If you have the Thermal Printer module installed, and no thermal printer is being
used, program execution will not halt when encountering a VIEW or AVIEW
instruction. See the HP-82160A HP-IL Module manual section ‘Printing During
Program Execution’ on pp. 28-29 for details about how to control your desired
behavior. You may of course also simply Unplug the Thermal Printer module to
have default (expected) behavior when not using a printer.
7

Figure 2. System Info View XA mode
Figure 3. System Info View XY mode
3.1.3. Program Mode
Figure 4. Basic program mode
Figure 5. Multiline program mode
Note that while the emulation is running (e.g. catalog list is executing) only the portion of the
screen corresponding to calculator LCD is updated. All other portions of the screen are updated
8

when emulations stops and editing of current program line is finished.
3.2. Special Keys
DM41X has several additional keys not present on original 41C models. Following list summarizes
all the additions:
‣ [ CST ] - Custom Menu key
Activates Custom Menu
‣ [ SHIFT ] [ CST ] - CONF
Activates Custom Menu configuration screen
‣ [ DSP ] - Change display key
Cycles view modes:
Calculation mode
•Stack view
•SI view XA
•SI view XY
Programming mode
•SI PRGM view - single line basic PRGM view
•Multiline PRGM view - 4 lines
•Multiline PRGM view - 6 lines
•Multiline PRGM view - 8 lines
‣ [ SHIFT ] [ DSP ] - PRN
The same as pressing 'PRINT' button on original 82143A thermal printer. See IR Printing for
more details.
‣ [ SHIFT ] [ PRG ] - SIZE
Invokes SIZE function.
‣ [ SHIFT ] [ USR ] - SETUP
Activates Main Setup menu.
‣ [ ▲ ] - Up Key
•Same as [ BST ]in SI, Stack and PRGM views
•[ SHIFT ][ ▲ ]uses CST command (if defined) in SI and Stack views
•[ SHIFT ][ ▲ ]Goes to top line of current program in PRGM mode
‣ [ ▼ ] - Down Key
•Same as [ SST ]in SI, Stack and PRGM views
9

•[ SHIFT ][ ▼ ]uses CST command (if defined) in SI and Stack views
•[ SHIFT ][ ▼ ]Goes to last line of current program in PRGM mode
3.3. CST - Custom Menu
Note that command in this chapter means:
•Any function name (module or mainframe)
•Any global program label (user or module)
•Also any valid label name no matter whether the destination exists or not.
CST functionality allows to assign commands to keys in the similar way as the standard ASN
function works. Those assignments are then accessible in CST screen invoked by pressing [ CST ]
key.
Therefore, you need to use only two key strokes to invoke any CST assigned command, e.g. [ CST ]
[ A ].
CST menu gives also access to several DM41X special functions labeled by numbers”
CST keys could be defined in CST edit screen which is accessible using [ SHIFT ][ CST ]labeled as
CONF on DM41X keyboard.
It is possible to make 16 assignments to keys from 'A' to 'P' and assign commands to three special
keys: [ SHIFT ][ ▲ ], [ SHIFT ][ ▼ ]and [ SHIFT ][ α ].
3.3.1. CST Screen
Figure 6. Example CST screen
Additional CST functions
Pressing key [ 1 ]to [ 6 ]activates one of special functions:
1. Help - Activates help browser. Note that it requires "/HELP/41x.html" file on disk. Latest help file
is available at http://technical.swissmicros.com/dm41x/fat/HELP/41x.html.
2. ROM Map - Invokes Module ROM Map screen
3. Load RAW - Invokes Load RAW Program
10

4. Save RAW - Invokes Save RAW Program
5. USB Disk - Invokes Activate USB disk
6. Flags - Shows Flags Screen
3.3.2. CONF Screen
Figure 7. CST Edit screen (CONF)
The CONF screen allows to edit key assignments as well as load and save all the assignments from/to
disk.
Edit Commands
You can press [ A ]to [ P ]to start command editor for particular key or [ ▲ ], [ ▼ ]or [ α ]for
special key.
Edited command is displayed with black background.
Then you can write the command. Use [ SHIFT ]to enter special characters,
•[ ← ]Deletes last character and aborts edit if edit field is empty
•[ R/S ]Confirms the entered command
•[ ON ]Key aborts edit immediately
Load/Save of CST assignments
•[ 1 ]key activates the screen for loading of CST assignments from the file.
•[ 2 ]key activates the screen for saving of current CST assignments to file.
Default location for load and save is /KEYS directory.
3.4. Persistent Configuration Settings
Calculator’s User Configuration (UConf) settings are persistently stored in internal flash memory.
Therefore all the settings are preserved over calculator RESET, firmware update or even when the
battery is removed.
11

3.4.1. List of Configuration Items
Items marked with
•→ [UConf] are stored in persistent backup
•→ [.d41] are part of State files, therefore not stored in UConf
DMY setting
Note that date format format setting is stored in two places as YMD is extension of 41C
formats
YMD setting → [UConf]
DMY (Flag 31) → [.d41]
CLK24 setting
Bit 6 of scratch register B → [UConf]
Mute flag
Flag 26 → [.d41]
Display modes
Stack mode → [UConf]
Program mode → [UConf]
Module screens
Two column flag → [UConf]
Short name flag → [UConf]
System configuration
Slow auto repeat → [UConf]
Printer line delay → [UConf]
3.4.2. Export of Configuration Settings
Configuration Settings can be saved into the file from the menu Setup → Setings → "Export Settings
to 'param.cfg'"
USB Disk Mode is automatically entered after the parem.cfg file is written.
3.4.3. Restore of Configuration Settings
User can copy param.cfg file to root of the FAT disk.
The FAT disk is checked for presence of the /param.cfg file after each deactivation of USB Disk Mode
and configuration settings are restored from this file.
The /param.cfg file is removed afterwards.
12

3.5. Flags Screen
Shows values of all 56 flags in one screen.
Figure 8. Flags Screen
3.6. 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.7. 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.
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.8. 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
13

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.9. 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.9.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.
More on this here: Forum Article
3.9.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.9.3. Added SLOW and FAST functions
Intended to control the relative speed of DM41X’s operation. SLOW corresponds to original 41C
speed, FAST is roughly 50 times faster. Implemented by adding [TURBO0] and [TURBO50] routines
to mainframe ROM2.
Accessible as new FAST/SLOW functions in the -DM_41X section
Running in SLOW mode does not extend battery life, it is only provided for
possible compatibility issues with 3rd party modules. You should generally run in
FAST mode, and this is the assumed mode for normal operation. Note that running
in slow mode could also have adverse visual effects in custom ROM code where
heavy LCD access is used.
14

3.9.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.9.5. Additional Functions
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,
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.
15

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 (Key Assignments) off, i.e. those assigned to the two top rows
LKAON
Turns Local KA (Key Assignments) 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.
16
Other manuals for DM41X
1
Table of contents
Other SwissMicros Calculator manuals