DM41X Quick Reference
Contents
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
Use to jump to Contents
Use to open help file from disk
Navigation keys
Press
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
to follow link
to go back to place where was used.
The arrow keys navigate to the next/previous page if there is no link to
navigate to.
Numpad-like navigation keys
/ - page down/up
/ - prev/next link (same as arrows)
- follow the link (same as )
- jump to the Contents(same as )
II. DM41X Unique Features
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 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 - Status of Alarms
-
SI second line - Memory status
-
SI third line - Program and printer status
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 configuration could be activated by the
key sequence, it is possible to make 16 assignments to
keys from 'A' to 'P' and assign commands to three special keys:
, and
. 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
.
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
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:
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
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
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
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. On is the standard mode, selected when you first enter the editor. Switch 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.#
+
L. Modules
Supported format
DM41X is able to load and use usual .mod files only.
How to add and use modules
-
Load .mod file to DM41X - using USB disk functionality
-
Import .mod file to internal Flash Module area - see how to Import modules to Flash
-
Add module to the 'Active Modules' list - see how to Activate 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 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 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.
M. Menu summary
Main Setup Menu
-
5. About - Displays About screen
+
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 -
-
6. Show Disk Info
Displays disk status and disk block info+
Module menu
-
-
-
3. Module ROM Map
ROM map shows ROM placement in pages and banks -
-
+
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
HHHH.MMSSt -
Y - Alarm Date
MM.DDYYYY or DD.MMYYYY -
X - Alarm Time
HH.MMSSt -
ALPHA - Message or Function
Blank, Message, Label or Function+
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
-
+ +