6 | {%- if page.title -%}
7 |
{{ page.title }}
8 | {%- endif -%}
9 |
10 | {{ content }}
11 |
12 |
13 | {% if site.paginate %}
14 | {% assign posts = paginator.posts %}
15 | {% else %}
16 | {% assign posts = site.posts %}
17 | {% endif %}
18 |
19 |
20 | {%- if posts.size > 0 -%}
21 | {%- if page.list_title -%}
22 |
{{ page.list_title }}
23 | {%- endif -%}
24 |
25 | {%- assign date_format = site.minima.date_format | default: "%b %-d, %Y" -%}
26 | {%- for post in posts -%}
27 | -
28 | {{ post.date | date: date_format }}
29 |
34 | {%- if site.show_excerpts -%}
35 | {{ post.excerpt }}
36 | {%- endif -%}
37 |
38 | {%- endfor -%}
39 |
40 |
41 | {% if site.paginate %}
42 |
57 | {%- endif %}
58 |
59 | {%- endif -%}
60 |
61 |
62 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | BSD 3-Clause License
4 |
5 | Copyright (c) 2015-2025, SwissMicros
6 | All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without
9 | modification, are permitted provided that the following conditions are met:
10 |
11 | * Redistributions of source code must retain the above copyright notice, this
12 | list of conditions and the following disclaimer.
13 |
14 | * Redistributions in binary form must reproduce the above copyright notice,
15 | this list of conditions and the following disclaimer in the documentation
16 | and/or other materials provided with the distribution.
17 |
18 | * Neither the name of the copyright holder nor the names of its
19 | contributors may be used to endorse or promote products derived from
20 | this software without specific prior written permission.
21 |
22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 |
33 |
34 | The software and related material is released as “NOMAS” (NOt MAnufacturer Supported).
35 |
36 | 1. Info is released to assist customers using, exploring and extending the product
37 | 2. Do NOT contact the manufacturer with questions, seeking support, etc. regarding
38 | NOMAS material as no support is implied or committed-to by the Manufacturer
39 | 3. The Manufacturer may reply and/or update materials if and when needed solely
40 | at their discretion
41 |
42 | */
43 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # DM42PGM - Free42 frontend implementation for DM42
2 |
3 | [http://tech.swissmicros.com/DM42PGM](http://tech.swissmicros.com/DM42PGM)
4 |
5 | - There is DMCP interface doc in progress see [DMCP IFC doc](http://technical.swissmicros.com/dmcp/doc/DMCP-ifc-html/) (or
6 | you can download HTML zip file from [doc directory](http://technical.swissmicros.com/dm42/doc/)).
7 |
8 | # Architecture Overview
9 | ## Structure
10 | The DM Calculator Platform (DMCP) is the OS for the DM42 calculator and comes as a binary file DMCP_flash_X.Y.bin.
11 | The OS runs executable modules like Free42 which have a .pgm extension.
12 | Both binaries are found here [link to binaries](http:/technical.swissmicros.com/dm42/firmware)
13 |
14 | ## DM42 Menus
15 | The DM42 has two menus, the DMCP Menu and the System Menu.
16 | The System Menu is the regular menu as known from previous versions, see
17 | [DM42 User Manual](https://technical.swissmicros.com/dm42/doc/dm42_user_manual/)
18 | for details.
19 |
20 |
21 | ### The DMCP Menu features these options:
22 |
23 | 
24 | 1. "Program Info" display information of the program loaded in the CPU
25 | 1. "Run Program" runs the program loaded in the CPU
26 | 1. "Load Program" copies an executable module from the FAT partition to the flash memory of the CPU
27 | 1. "Load QSPI from FAT" should not be needed
28 | 1. "Settings" for Time and Date
29 | 1. "Active USB Disk" puts the DM42 in USB mode for file copy
30 | 1. "Enter System Menu" jumps to the main System Menu
31 | 1. "About" displays general information
32 |
33 | ## Update procedure
34 |
35 | 1. Active USB disk in the setup menu
36 | 1. Copy both [DMCP_flash_X.Y.bin and the .pgm](http://technical.swissmicros.com/dm42/firmware) file from the PC/MAC to the FAT partition of the DM42
37 | 1. Eject DM42 from PC/MAC
38 | 1. On the DM42, SETUP > System > Flash firmware from FAT.
39 | 1. Once finished the calculator resets and displays the DMCP Menu.
40 | 1. Choose "Load Program" and select DM-X.Y.Z.pgm
41 | 1. Once loaded, select "Run Program" and Free42 starts.
42 |
43 | # Building Instructions
44 | Read the [README_build](README_build.md) .
45 |
--------------------------------------------------------------------------------
/index.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: docu
3 | ---
4 | # DM42PGM - Free42 frontend implementation for DM42
5 |
6 | [https://github.com/swissmicros/DM42PGM](https://github.com/swissmicros/DM42PGM)
7 |
8 | - There is DMCP interface doc in progress see [DMCP IFC doc](http://technical.swissmicros.com/dmcp/doc/DMCP-ifc-html/) (or
9 | you can download HTML zip file from [doc directory](http://technical.swissmicros.com/dm42/doc/)).
10 |
11 | # Architecture Overview
12 | ## Structure
13 | The DM Calculator Platform (DMCP) is the OS for the DM42 calculator and comes as a binary file DMCP_flash_X.Y.bin.
14 | The OS runs executable modules like Free42 which have a .pgm extension.
15 | Both binaries are found here [link to binaries](http:/technical.swissmicros.com/dm42/firmware)
16 |
17 | ## DM42 Menus
18 | The DM42 has two menus, the DMCP Menu and the System Menu.
19 | The System Menu is the regular menu as known from previous versions, see
20 | [DM42 User Manual](https://technical.swissmicros.com/dm42/doc/dm42_user_manual/)
21 | for details.
22 |
23 |
24 | ### The DMCP Menu features these options:
25 |
26 | 
27 | 1. "Program Info" display information of the program loaded in the CPU
28 | 1. "Run Program" runs the program loaded in the CPU
29 | 1. "Load Program" copies an executable module from the FAT partition to the flash memory of the CPU
30 | 1. "Load QSPI from FAT" should not be needed
31 | 1. "Settings" for Time and Date
32 | 1. "Active USB Disk" puts the DM42 in USB mode for file copy
33 | 1. "Enter System Menu" jumps to the main System Menu
34 | 1. "About" displays general information
35 |
36 | ## Update procedure
37 |
38 | 1. Active USB disk in the setup menu
39 | 1. Copy both [DMCP_flash_X.Y.bin and the .pgm](http://technical.swissmicros.com/dm42/firmware) file from the PC/MAC to the FAT partition of the DM42
40 | 1. Eject DM42 from PC/MAC
41 | 1. On the DM42, SETUP > System > Flash firmware from FAT.
42 | 1. Once finished the calculator resets and displays the DMCP Menu.
43 | 1. Choose "Load Program" and select DM-X.Y.Z.pgm
44 | 1. Once loaded, select "Run Program" and Free42 starts.
45 |
46 | # Building Instructions
47 | Read the [README_build](README_build.html) .
48 |
--------------------------------------------------------------------------------
/dm/qspi_crc.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | BSD 3-Clause License
4 |
5 | Copyright (c) 2015-2025, SwissMicros
6 | All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without
9 | modification, are permitted provided that the following conditions are met:
10 |
11 | * Redistributions of source code must retain the above copyright notice, this
12 | list of conditions and the following disclaimer.
13 |
14 | * Redistributions in binary form must reproduce the above copyright notice,
15 | this list of conditions and the following disclaimer in the documentation
16 | and/or other materials provided with the distribution.
17 |
18 | * Neither the name of the copyright holder nor the names of its
19 | contributors may be used to endorse or promote products derived from
20 | this software without specific prior written permission.
21 |
22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 |
33 |
34 | The software and related material is released as “NOMAS” (NOt MAnufacturer Supported).
35 |
36 | 1. Info is released to assist customers using, exploring and extending the product
37 | 2. Do NOT contact the manufacturer with questions, seeking support, etc. regarding
38 | NOMAS material as no support is implied or committed-to by the Manufacturer
39 | 3. The Manufacturer may reply and/or update materials if and when needed solely
40 | at their discretion
41 |
42 | */
43 |
44 | #define QSPI_DATA_SIZE 1370864
45 | #define QSPI_DATA_CRC 0x000cfed6
46 |
47 |
--------------------------------------------------------------------------------
/dm/main.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | BSD 3-Clause License
4 |
5 | Copyright (c) 2015-2025, SwissMicros
6 | All rights reserved.
7 |
8 | Redistribution and use in source and binary forms, with or without
9 | modification, are permitted provided that the following conditions are met:
10 |
11 | * Redistributions of source code must retain the above copyright notice, this
12 | list of conditions and the following disclaimer.
13 |
14 | * Redistributions in binary form must reproduce the above copyright notice,
15 | this list of conditions and the following disclaimer in the documentation
16 | and/or other materials provided with the distribution.
17 |
18 | * Neither the name of the copyright holder nor the names of its
19 | contributors may be used to endorse or promote products derived from
20 | this software without specific prior written permission.
21 |
22 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
25 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
26 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
28 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
29 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
30 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 |
33 |
34 | The software and related material is released as “NOMAS” (NOt MAnufacturer Supported).
35 |
36 | 1. Info is released to assist customers using, exploring and extending the product
37 | 2. Do NOT contact the manufacturer with questions, seeking support, etc. regarding
38 | NOMAS material as no support is implied or committed-to by the Manufacturer
39 | 3. The Manufacturer may reply and/or update materials if and when needed solely
40 | at their discretion
41 |
42 | */
43 | #ifndef __PGM_MAIN_H__
44 | #define __PGM_MAIN_H__
45 |
46 | #define PROGRAM_NAME "DM42PGM"
47 | #define DM42_VERSION "3.26"
48 | #define F42_VERSION "3.3.10"
49 | #define PROGRAM_VERSION DM42_VERSION "/" F42_VERSION
50 |
51 | // Disable printf traces for release build
52 | //#define DBG_PRINT
53 | //#define DEBUG_THELL
54 | //#define DEBUG_SHELL
55 |
56 | #ifdef DBG_PRINT
57 | #else
58 | #define printf(...)
59 | #define puts(...)
60 | #endif
61 |
62 | #endif
63 |
--------------------------------------------------------------------------------
/free42/core_aux.h:
--------------------------------------------------------------------------------
1 | #ifndef __CORE_AUX_H__
2 | #define __CORE_AUX_H__
3 |
4 |
5 | #ifdef __cplusplus
6 | extern "C" {
7 | #endif
8 |
9 | #include