DM41X Quick Reference

About this manual

This manual is an excerpt of the more detailed DM41X User Manual available at
https://technical.swissmicros.com/dm41x/doc

I. Help Navigation

Global navigation

Use A or ON to exit
Use B to jump to Contents
Use C to open help file from disk

Navigation keys

Press + to move one line forward
Press - to move one line backward
Press × to move one page forward
Press ÷ to move one page backward
Use arrow keys to navigate to next/previous link
ENTER to follow link
to go back to place where was ENTER used.
The arrow keys navigate to the next/previous page if there is no link to navigate to.

Numpad-like navigation keys

2/8 - single line down/up
3/9 - page down/up
4/6 - prev/next link (same as arrows)
5 - follow the link (same as ENTER)
7 - jump to the Contents(same as B)

A. LCD Views and DSP Control

The large screen allows the display of full calculator stack at once. Which is the default view.
There are other possible views both in calculation mode and programing mode.
View modes are cycled using DSP key.
Calculation mode:

Programming mode:

  • SI pgm view - single line basic view

  • Multiline pgm view - 4 lines

  • Multiline pgm view - 6 lines

  • Multiline pgm view - 8 lines

    +

SI View

Enhanced "System Info" view:

SI first line

Displays status of your Alarms, there are 3 icons on the far left:

  • A coffee cup indicates that no alarms are pending

  • An alarm clock indicates at least one pending alarm

  • A bell indicates 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.

SI second line

Displays the 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.

SI third 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

  • N/A - The Printer Module has not been plugged-in

    +

B. CST Menu use and Setup

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.
CST configuration could be activated by the SHIFT CST key sequence, it is possible to make 16 assignments to keys from 'A' to 'P' and assign commands to three special keys: SHIFT , SHIFT and SHIFT ALPHA. The key assignments could be also save/loaded to/from the .cst files in CST configuration screen.
The default directory for the .cst files is /KEYS/.

C. Help Access

DM41X contains internal help browser.
This functionality is accessible by pressing CST 1.
The default directory for the .html help files is /HELP/.
Calculator comes with basic set of help files, but it allows to add other user files.
Note that the html browser implementation is extremely minimalistic and help files have to be designed to comply with all the limitations.
Basic information for creation of user help files.

D. ROM Map

ROM Map shows ROM placement in pages and banks.
This functionality is accessible by pressing CST 2
Each row corresponds to page denoted at the beginning of the line, columns represent banks.
RAM pages are shown in first bank if other only as RAM banking isn’t supported now.
Soft menu items allow to:

  • Pg 8-F/Pg 0-7 - Toggle page range

  • ROM-id/ROM-nr - Toggle ROM labels

  • ⇒ AM - Invokes Active Modules screen.

  • ModLst - Switches right side between 'Modules list' and 'Modules by page'

    +

E. Load/Save State

It is possible to load and save calculator state - i.e. contents of memory and CPU registers from/to .d41 file from/to FAT disk (respectively).
Note that this loads only calculator memory and doesn’t affect state of currently loaded modules.
The default directory for the .d41 files is /STATE/.
This functionality is accessible in File menu.

F. Load/Save RAW files

It is possible to load and save programs from/to standard .raw files from/to FAT disk (respectively).
Using the functional equivalent of GETP/SAVEP extended memory command. Only that the .raw file is read/written from/to FAT disk instead of extended memory.
Note that the program name for save has to be prepared in ALPHA register.
Default directory for .raw files is /PROG/.
This functionality is accessible through CST menu or in File menu.

G. USB Disk mode access

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.
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 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

  • /PROG - Raw files with programs are loaded/saved from/to this directory

  • /RAM - Contains saved RAM pages

  • /SCREENS - Screenshots of calculator LCD are saved into this directory

  • /STATE - Calculator state files with extension .d41 are stored in this directory

    +

H. Flags

Calculator flags could be quickly examined at once on Flag Status screen accessible by CST 6.
DM41X extends use of some flags:

  • Flags 15/16 Control the Printer mode (MAN/TRACE/NORM) as follows:

    15

    16

    0 -

    0

    MAN (manual)

    0 -

    1

    NORM (normal)

    1 -

    0

    TRACE

  • Flag 21 - controls if the printer is enabled or disabled (exactly like a 41C) and initially follows the state of flag 55 at power-on

  • Flag 55 - Indicates printer module presence

    +

I. Screen shots

Hold SHIFT and press DSP 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 disk.

J. OFF Screen Images

The LCD display used in DM41X calculator behaves in the 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.
Custom OFF images could be stored in /OFFIMG/ directory.
OFF images require specific image format. It has to be .bmp file with dimensions 400 x 240 and 1 bit depth.

K. New Built-in Functions

System Control and Misc

  • SLOW - Sets SLOW mode for compatibility with legacy Modules

  • FAST - Restores FAST mode

  • FILL - Fills the stack with the value in X

  • X<I>Y - Exchanges the contents of IND X and IND Y

  • TRNG - Time-Based (True) Random Number Generator

  • LKAOFF - Turns Local KA (Key Assignments) off, i.e. those assigned to the two top rows

  • LKAON - Turns Local KA (Key Assignments) back on

    +

Alpha Functions

  • 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,

    +

Extended Memory Functions:

  • CLEM - Clears all Extended Memory

  • ED$ - Enhanced ASCII File Editor with support for lower-case and special characters. The operation is controlled by the status of the [.button]#ALPHA annunciator. ALPHA On is the standard mode, selected when you first enter the editor. Switch ALPHA OFF to access non-keyable characters in the standard mode. Use the shifted keys to access the lower-case characters and the un-shifted keys to access the special characters.#

  • 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

  • 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)

  • WORKFL - Appends the name of the current ("Working") X-Mem file to [.button]#ALPHA.#

    +

Supported format

DM41X is able to load and use usual .mod files only.

How to add and use modules

Import modules to Flash

Flash Module Area is special region of flash memory dedicated for module use. It is the only place from where the emulator can access module ROMs and run module code.
Thus, all modules before activation have to be loaded to Flash Module Area.
Use Imprt in Manage Modules in flash for that.

Activating modules from Flash

'Activating module' corresponds to module plug-in on real calculator.
Module has to be first loaded in Flash Module Area.
Use Plug in Active Modules for module plug-in.

Printer module

There is preloaded 'PRINTER' module to simplify printer use.
Activate PRINTER module to enable printer functionality.

Module load order

Module order in Active modules list is relevant. Pages assigned to modules are based on this order and information in original .mod files.
This list describes procedure for page assignment:

  • 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.

    +

Module RAM

The DM41X can provide up to 8 Pages of RAM.
Thus, 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.
Contents of RAM pages could be saved and restored to/from disk.

Main Setup Menu

File menu

  • 1. Load DM41 State File >
    Loads the .d41 state files

  • 2. Save DM41 State File >
    Saves calculator’s state to a .d41 state file

  • 3. Load RAW Program >
    Loads the .raw program file

  • 4. Save RAW Program >
    Saves program to .raw file

  • 5. Activate USB Disk
    Used to copy files from/to a host computer

  • 6. Show Disk Info
    Displays disk status and disk block info

    +

Module menu

  • 1. Active Modules (AM)
    Screen for management of active modules

  • 2. Manage Modules in Flash
    Allows to add/remove modules to/from this area and display information about modules

  • 3. Module ROM Map
    ROM map shows ROM placement in pages and banks

  • 4. Load Modules

  • 5. Save Modules

  • 6. Load RAM Pages >
    Fills RAM Area from the file

  • 7. Save RAM Pages >
    Saves RAM Area into the file.

    +

Load Modules

  • 1. Load AM List
    Loads Active Modules from the .m41 file

  • 2. Load Flash and AM Lists
    Loads both AM list and .mod files into the Flash according to the .m41 file list

  • 3. Load Flash, clear AM List
    Loads only .mod files into the Flash according to the .m41 file list

    +

Save Modules

  • 1. Save AM List only
    Saves Active Modules list into the .m41 file

  • 2. Save Flash and AM Lists
    Saves both Active Modules list and list of .mod files loaded into Flash to the .m41 file

    +

Settings menu

  • 1. Set Time >
    Sets time and time format

  • 2. Set Date >
    Sets date and date format

  • 3. Slow Auto-repeat
    Allows to lower key repeat rate

  • 4. Printer Line Delay
    Sets IR printer line delay

  • 5. Create Full Backup
    Complete calculator’s backup

  • 6. Restore from Backup
    Restore from complete backup

  • 7. Export Settings to 'param.cfg'
    Writes Persistent Configuration Settings to the /param.cfg file

  • 8. Reset settings to defaults
    Resets Persistent Configuration Settings to defaults.

    +

System menu

  • 1. Flash firmware from FAT
    Starts flashing the firmware file from root directory of FAT disk

  • 2. Bootloader
    Activates bootloader mode for firmware flashing

  • 3. Program Info
    Displays information about currently loaded DM41X

  • 4. Reset to DMCP menu
    Reboots calculator to DMCP system menu

  • 5. Format FAT Disk >
    Format the internal FAT disk storage

  • 6. FAT Disk Media Test >
    Checks whole flash disk FAT area for bad blocks (disk is erased)

  • 7. Power OFF mode
    Don’t touch this, only for OFF current diagnosing

  • 8. Self Test
    Opens self test menu

    +

[[41c_ref]] === III. Key 41C Reference Topics

[[41c_isg_dse]] === A. ISG/DSE Format

The functions ISG (increment and skip if greater) and DSE (decrement and skip if equal) are used to effectively control the loops using the number
iiiii.fffcc where:

  • iiiii is the current counter value

  • fff is the counter test value

  • cc is the increment value, if the cc value isn’t specified, it is taken as cc=01

Each time ISG is executed, it first increments iiiii by cc, then it tests to see if iiiii is greater than fff. If it is then the next program line is skipped.
Each time DSE is executed, it first decrements iiiii by cc, then it tests to see if iiiii is equal to or less than fff. If it is then the next program line is skipped.

[[41c_date]] === B. Date Formats

For date inputs:

  • Use the (MM.DDYYYY) format by default or after MDY function

  • Use the (DD.MMYYYY) format after DMY function

DATE function places date into the X-register in currently selected DMY/MDY format.

[[41c_time]] === C. Time Formats

Use the (HH.MMSShh) format for time inputs.
Time inputs for hours later than 12:00 p.m. (noon) can be input either as negative numbers or in the 24-hours time format.
TIME function places time into the X-register (always) in 24-hours time format.

[[41c_alarm]] === D. Alarm formats

All clock alarms are set by XYZALM (XYZ alarm) function using the data in the X, Y, Z, and ALPHA registers:

Z - Alarm Repeat Interval

This parameter (r) causes the alarm to repeat itself after the specified interval.
Format of r: HHHH.MMSSt
Range of r: 10 Seconds ≤ r < 10,000 Hours
No Repeat: Use r = 0

Y - Alarm Date

This parameter (d) is the date on which you want the alarm to activate.
Format of d: MM.DDYYYY or DD.MMYYYY
Range of d: January 1, 1900 through December 31, 2199
Current date: Use d = 0

X - Alarm Time

This parameter (T) is the time of day at which you want the alarm to be activated.
Format of T: HH.MMSSt
Range of T: –23.59599 ≤ T ≤ 23.59599

ALPHA - Message or Function

Contents of ALPHA register determines the alarm type:

  • Tone Alarm - [Empty]
    Alarm produces a series of tones and a flashing time/date display.

  • Message Alarm - [Alpha string Message] Up to 24 Characters
    Alarm produces a flashing ALPHA string message and a series of tones.

  • Interrupting Control Alarm - [↑↑program label] or [↑↑function name]
    Executes a program or a plug-in-device function that you specify.

  • Noninterrupting Control Alarm - [↑program label] or [↑function name]
    Executes a program or a plug-in-device function only while the calculator is turned off or is displaying the clock.

    +

IV. External References