annotate code_part1/OSTC_code_c_part2/p2_definitions.h @ 842:454ef5c2e6aa default tip

Bugfix: Auto-SP did not show >9m for some 2C hardware versions in German language firmware Make year settings until 2040 possible (This is likely the final release for this model)
author heinrichsweikamp
date Sat, 29 Nov 2025 14:11:07 +0100
parents 4fd718965e8f
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
1 // *********************************************************
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
2 // ** Common definitions for the OSTC decompression code **
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
3 // *********************************************************
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
4
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
5 //////////////////////////////////////////////////////////////////////////////
815
2a0e5d884fc3 BUGFIX: Fix licence in German
heinrichsweikamp
parents: 807
diff changeset
6 // OSTC Mk.2, 2N and 2C - diving computer code
807
c50296c3059e BUGFIX: Divetime had unwanted "." behind the minutes
heinrichsweikamp
parents: 743
diff changeset
7 // Copyright (C) 2015 HeinrichsWeikamp GbR
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
8 //
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
9 // This program is free software: you can redistribute it and/or modify
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
10 // it under the terms of the GNU General Public License as published by
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
11 // the Free Software Foundation, either version 3 of the License, or
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
12 // (at your option) any later version.
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
13 //
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
14 // This program is distributed in the hope that it will be useful,
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
17 // GNU General Public License for more details.
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
18 //
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
19 // You should have received a copy of the GNU General Public License
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
20 // along with this program. If not, see <http://www.gnu.org/licenses/>.
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
21 //
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
22 //////////////////////////////////////////////////////////////////////////////
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
23 // history:
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
24 // 12/25/10 v110: [jDG] split in three files (deco.c, main.c, definitions.h)
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
25
532
f5a06b9e2fef cleanup debug stuff
heinrichsweikamp
parents: 488
diff changeset
26 /*
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
27 #define DBG_c_gas 0x0001
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
28 #define DBG_c_ppO2 0x0002
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
29 #define DBG_RUN 0x0004
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
30 #define DBG_RESTART 0x0008
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
31
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
32 #define DBG_CdeSAT 0x0010
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
33 #define DBG_C_MODE 0x0020
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
34 #define DBG_C_SURF 0x0040
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
35 #define DBG_HEwoHE 0x0080
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
36
321
a99073445c18 Cleanup auto setpoint switch
JeanDo
parents: 235
diff changeset
37 // #define DBG_UNUSED 0x0100
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
38 #define DBG_C_DGAS 0x0200
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
39 #define DBG_C_DIST 0x0400
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
40 #define DBG_C_LAST 0x0800
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
41
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
42 #define DBG_C_GF 0x1000
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
43 #define DBG_ZH16ERR 0x2000
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
44 #define DBG_PHIGH 0x4000
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
45 #define DBG_PLOW 0x8000
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
46
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
47 #define DBS_mode 0x0001
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
48 #define DBS_ppO2 0x0002
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
49 #define DBS_HE_sat 0x0004
321
a99073445c18 Cleanup auto setpoint switch
JeanDo
parents: 235
diff changeset
50 // #define DBS_UNUSED 0x0008
711
f555590f1419 minor cleanups for CNS/NOAA bugfix.
JeanDo <jd.gascuel@free.fr>
parents: 601
diff changeset
51
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
52 #define DBS_SAT2l 0x0010
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
53 #define DBS_SAT2h 0x0020
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
54 #define DBS_GFLOW2l 0x0040
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
55 #define DBS_GFLOW2h 0x0080
711
f555590f1419 minor cleanups for CNS/NOAA bugfix.
JeanDo <jd.gascuel@free.fr>
parents: 601
diff changeset
56
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
57 #define DBS_GFHGH2l 0x0100
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
58 #define DBS_GFHGH2h 0x0200
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
59 #define DBS_GASO22l 0x0400
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
60 #define DBS_GASO22h 0x0800
711
f555590f1419 minor cleanups for CNS/NOAA bugfix.
JeanDo <jd.gascuel@free.fr>
parents: 601
diff changeset
61
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
62 #define DBS_DIST2h 0x1000
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
63 #define DBS_LAST2h 0x2000
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
64 #define DBS_DECOO2l 0x4000
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
65 #define DBS_DECOO2h 0x8000
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
66
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
67 #define DBS2_PRES2h 0x0001
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
68 #define DBS2_PRES2l 0x0002
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
69 #define DBS2_SURF2l 0x0004
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
70 #define DBS2_SURF2h 0x0008
711
f555590f1419 minor cleanups for CNS/NOAA bugfix.
JeanDo <jd.gascuel@free.fr>
parents: 601
diff changeset
71
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
72 #define DBS2_DESAT2l 0x0010
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
73 #define DBS2_DESAT2h 0x0020
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
74 #define DBS2_GFDneg 0x0040
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
75
532
f5a06b9e2fef cleanup debug stuff
heinrichsweikamp
parents: 488
diff changeset
76 */
f5a06b9e2fef cleanup debug stuff
heinrichsweikamp
parents: 488
diff changeset
77
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
78 #define MBAR_REACH_GASCHANGE_AUTO_CHANGE_OFF 150
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
79
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
80 // *************************
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
81 // ** P R O T O T Y P E S **
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
82 // *************************
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
83
167
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
84 extern void calc_percentage(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
85 extern void deco_calc_hauptroutine(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
86 extern void deco_clear_tissue(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
87 extern void deco_calc_percentage(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
88 extern void deco_calc_wo_deco_step_1_min(void);
368
de3b267e1fd9 Adding calc_dive_interval()
JeanDo
parents: 321
diff changeset
89 extern void deco_calc_dive_interval(void);
167
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
90 extern void deco_gradient_array(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
91 extern void deco_hash(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
92 extern void deco_calc_desaturation_time(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
93 extern void deco_calc_CNS_fraction(void);
820
4fd718965e8f FIX missing extern .C definition.
jdg@air
parents: 815
diff changeset
94 extern void deco_calc_CNS_decrease_15min(void);
167
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
95 extern void deco_clear_CNS_fraction(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
96 extern void deco_push_tissues_to_vault(void);
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
97 extern void deco_pull_tissues_from_vault(void);
488
7c48692dd17c BUGFIX Missed surface pressure for CNS in decoplan.
JeanDo
parents: 368
diff changeset
98 extern void deco_calc_CNS_planning(void);
222
638f8e17bd51 Prototyping deco_gas_volumes() to compute gas consumption per tank with decoplanning.
JeanDo
parents: 200
diff changeset
99 extern void deco_gas_volumes(void);
116
14a074e1a375 Split C code, and use direct linking.
JeanDo
parents:
diff changeset
100
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
101 // ***********************************************
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
102 // ** Allow compile on VisualC **
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
103 // ***********************************************
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
104
711
f555590f1419 minor cleanups for CNS/NOAA bugfix.
JeanDo <jd.gascuel@free.fr>
parents: 601
diff changeset
105 #if defined(WIN32) || defined(UNIX)
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
106 // Some keywords just dont exists on Visual C++:
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
107 # define CROSS_COMPILE
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
108 # define __18CXX
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
109 # define ram
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
110 # define rom
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
111 # define overlay
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
112 # define PARAMETER
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
113
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
114 // Avoid warnings about float/double mismatches:
548
c35473dc6831 Make shared headers UNIX compatibles.
JeanDo
parents: 532
diff changeset
115 # ifdef WIN32
c35473dc6831 Make shared headers UNIX compatibles.
JeanDo
parents: 532
diff changeset
116 # pragma warning(disable: 4244 4068 4305)
c35473dc6831 Make shared headers UNIX compatibles.
JeanDo
parents: 532
diff changeset
117 # endif
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
118 #else
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
119 # define PARAMETER static
235
ade0848c8b8b New runtime asserts when compiled in DEBUG more.
JeanDo
parents: 222
diff changeset
120 # ifdef __DEBUG
ade0848c8b8b New runtime asserts when compiled in DEBUG more.
JeanDo
parents: 222
diff changeset
121 # define assert(predicate) if( !(predicate) ) assert_failed(__LINE__)
ade0848c8b8b New runtime asserts when compiled in DEBUG more.
JeanDo
parents: 222
diff changeset
122 # else
ade0848c8b8b New runtime asserts when compiled in DEBUG more.
JeanDo
parents: 222
diff changeset
123 # define assert(predicate)
ade0848c8b8b New runtime asserts when compiled in DEBUG more.
JeanDo
parents: 222
diff changeset
124 # endif
184
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
125 #endif
016c45a0caaf Enable to compile p2_deco.c on other platforms.
JeanDo
parents: 167
diff changeset
126
167
cb055a7d75f3 + Use overlay local vars.
JeanDo
parents: 163
diff changeset
127 //////////////////////////////////////////////////////////////////////////////