DM41X Quick Reference
Contents
About this manual
This manual is an excerpt of the more detailed DM41X User Manual available at
https://swissmicros.com/dm41x/doc/dm41x_user_manual/
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)
II. DM41X Unique Features
A. LCD Views and DISP 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 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 ALPHA.
L. Modules
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
- 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
- 6. Show Disk Info
Displays disk status and disk block info
- 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
- 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
- 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.
- 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
III. Key 41C Reference Topics
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.
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.
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.
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