This latest update to both the DMCP and DM42/Free42 parts of the DM42's firmware brings the following improvements:
- DMCP-3.13
- File listing enhancements
- Clear history buffer when help file changed
- Fixed hangs on some boards
- DM42-3.13
- Update Free42 core to 2.0.24
- Help file renamed to dm42help.htm
- Year updated in copyright notices
- Flag 64 reflects Shift status
File load and save dialogs now support navigating the FAT disk's directory structure.
With a directory listing open, F6 switches between single column and two column display, allowing more items to be shown on screen at the same time. If you're in two-column mode then [X<>Y] allows you to switch between the left and right columns. F5 changes the way the file size is displayed, toggling between bytes and, where applicable, #.#K (e.g. 1.4K).
The DM42 can now handle up to 2000 items in a directory.
Clear history buffer when help file changed
Going back to the previously viewed part of the help file would give unpredictable results if the help file had been changed since it was last viewed. Pointers in the history buffer would point to now invalid locations within the file. This has been resolved by clearing the history buffer whenever the DM42 detects that the help file has been changed.
Fixed hangs on some boards
There was a timing issue affecting a small number of boards that could lead to a hang during operations such as "Firmware update from FAT" or even simply plugging into or disconnecting from the DM42's USB port. This has been fixed.
Please note that if your DM42 is affected by this problem then you will still have to update to this version 3.13 using the "old" dm_tool method. However, once 3.13 is installed on your DM42, you will be able to update from FAT like the rest of us.
Free42-2.0.24
Recent updates to Free42 have been rolled into the DM42. For details see Free42's history page
Help file renamed to dm42help.htm
The HTML file used as a help file by the DM42 has been renamed to "dm42help.htm". If no such file is found then the DM42 looks for the old style index.htm, renames it to dm42help.htm and uses that. Moving forward, the file to download from the SwissMicros site is dm42help.htm.
Flag 64 reflects Shift status
There are a number of so-called "reserved" system flags in the HP-42S that are unused and were reserved for future enhancements of the HP-42S that never actually happened. Free42 takes advantage of Flag 31 to remember whether dates are to be processed as dd.mmyyyy or mm.ddyyyy (as does the HP-41C Time Module from which the time and date functions were borrowed in Free42) and the DM42 has extended Free42 (it's a one-line patch!) to have Flag 64 store the Shift state of the machine just before the last key was pressed.
This works both with KEYG/KEYX instructions to build a custom menu used within a program and with programs called by a CUSTOM menu populated with ASSIGN.
If you test the status of Flag 64 when you enter the program invoked by pressing the menu key or straight after the label jumped to by a KEYG/KEYX instruction, you can tell if the user pressed Shift before pressing the button. This allows you to have your program behave differently depending on whether it was invoked with or without pressing Shift first.
This short program illustrates the principle:
Code: Select all
00 { 33-Byte Prgm }
01▸LBL "FTST"
02 "SHIFT "
03 FC? 64
04 ├"NOT "
05 ├"PRESSED"
06 AVIEW
Code: Select all
ASSIGN "FTST" TO 01
If you press [Shift] before pressing [FTST], you get "SHIFT PRESSED"
It also works with XEQ:
[XEQ] [FTST] => "SHIFT NOT PRESSED"
[XEQ] [Shift] [FTST] => "SHIFT PRESSED"
Note that Flag 64 is trashed as soon as you press another key, so you have to examine it as soon as possible.
It works in a similar way with KEYG/KEYX instructions. Take a look at this simple program:
Code: Select all
00 { 40-Byte Prgm }
01▸LBL "KTST"
02 "F1"
03 KEY 1 GTO 01
04 MENU
05 STOP
06 GTO "KTST"
07▸LBL 01
08 CLA
09 FS? 64
10 "Shift-"
11 ├"F1"
12 AVIEW
The method for updating your DM42 is covered in the manual.
The latest firmware binaries are available here.
SHA1 checksums:
- a77f3d16c0c24b71e4642ed67a7e46171e3e85aa DM42-3.13.pgm
- bd07c2f96557fb26599a0f936fa7824c50686236 DMCP_flash_3.13.bin
- 50f0a204c840888748ff84c3cfea93ef28f09bcb DMCP_flash_3.13_DM42-3.13.bin