Mercurial > public > mk2
annotate code_part1/OSTC_code_asm_part1/menu_reset.asm @ 673:7e651625d4c0
no decoplan update when switching gf
author | heinrichsweikamp |
---|---|
date | Mon, 10 Dec 2012 16:12:22 +0100 |
parents | 92e1690ecc84 |
children | 0211d9b9f0ca |
rev | line source |
---|---|
0 | 1 |
2 ; OSTC - diving computer code | |
3 ; Copyright (C) 2008 HeinrichsWeikamp GbR | |
4 | |
5 ; This program is free software: you can redistribute it and/or modify | |
6 ; it under the terms of the GNU General Public License as published by | |
7 ; the Free Software Foundation, either version 3 of the License, or | |
8 ; (at your option) any later version. | |
9 | |
10 ; This program is distributed in the hope that it will be useful, | |
11 ; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
13 ; GNU General Public License for more details. | |
14 | |
15 ; You should have received a copy of the GNU General Public License | |
16 ; along with this program. If not, see <http://www.gnu.org/licenses/>. | |
17 | |
18 | |
19 ; Menu "Reset all" | |
20 ; written by: Matthias Heinrichs, info@heinrichsweikamp.com | |
21 ; written: 10/30/05 | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
22 ; last updated: 10/12/08 by JD Gascuel at free.fr |
0 | 23 ; known bugs: |
24 ; ToDo: | |
25 | |
26 ; routines to reset external EEPROM (currently inactvated!) | |
27 ; routines to reset custom function, gases and decompression values | |
28 ; does not reset clock | |
29 | |
79 | 30 ;============================================================================= |
31 ; CF default values | |
32 ; | |
33 | |
34 ; Macro to check values, and construct PROM CF default table. | |
35 ; If in types mode, set flags into hi. If not, clear it. | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
36 CF_DEFAULT macro type, default, min, max |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
37 noexpand |
99 | 38 CFn set 1+CFn |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
39 if (type) == CF_INT15 |
99 | 40 if HIGH (default) > .127 |
41 error CF#v(CFn) "15bit default too big: ", default | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
42 endif |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
43 if (min)>0 && (max>min) |
99 | 44 error CF#v(CFn) "15bit defaults cannot have both MIN & MAX flags" |
45 endif | |
46 if HIGH(min) > .127 | |
47 error CF#v(CFn) "15bit MIN value too big: ", min | |
48 endif | |
49 if HIGH(max) > .127 | |
50 error CF#v(CFn) "15bit MAX value too big: ", max | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
51 endif |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
52 |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
53 ifdef NO_CF_TYPES |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
54 DB LOW (default), HIGH(default) + 0x80 |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
55 else |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
56 DB LOW (default), HIGH(default) + 0x80 |
99 | 57 if (max) > (min) |
58 DB LOW(max), HIGH(max) + 0x80 | |
59 else | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
60 DB LOW(min), HIGH(min) |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
61 endif |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
62 endif |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
63 else |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
64 ; Basic sanity check for 8bit values: |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
65 if HIGH(default) > 0 |
99 | 66 error CF#v(CFn) "8bit default too big: ", default |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
67 endif |
355 | 68 if type & CF_NEG |
69 if HIGH(-min) != 0 | |
70 error CF#v(CFn) "8bit negativ min too big: ", min | |
71 endif | |
72 else | |
73 if HIGH(min) != 0 | |
74 error CF#v(CFn) "8bit min too big: ", min | |
75 endif | |
76 endif | |
77 if HIGH(max) != 0 | |
99 | 78 error CF#v(CFn) "8bit max too big: ", max |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
79 endif |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
80 if ((type)==CF_BOOL) && ( (default)>1 ) |
99 | 81 error CF#v(CFn) "BOOL default too big: ", default |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
82 endif |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
83 if ((type)==CF_BOOL) && ( (min)>0 || (max)>0 ) |
99 | 84 error CF#v(CFn) "BOOL cannot have min/max" |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
85 endif |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
86 |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
87 ifdef NO_CF_TYPES |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
88 DB LOW(default), 0 |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
89 else |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
90 local typeFlags |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
91 typeFlags set type |
355 | 92 if (min)!=0 |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
93 typeFlags set type + CF_MIN |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
94 endif |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
95 if (max)>(min) |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
96 typeFlags set typeFlags + CF_MAX |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
97 endif |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
98 DB LOW(default), (typeFlags), LOW(min), LOW(max) |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
99 endif |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
100 endif |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
101 expand |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
102 endm |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
103 |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
104 ; Starting at CF0 |
99 | 105 CFn set -1 |
79 | 106 |
107 ; resets all customfunctions to the following default values | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
108 cf_default_table0: |
79 | 109 ;---- BANK0 custom function defaults ------------------------------------- |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
110 ; DEFAULT MIN MAX |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
111 CF_DEFAULT CF_CENTI, d'100', d'50', d'250' ; CF00 dive_threshold 100cm |
621 | 112 CF_DEFAULT CF_CENTI, d'75', d'20', d'100' ; CF01 surf_threshold 75cm |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
113 CF_DEFAULT CF_INT15, d'240', d'0', d'600' ; CF02 diveloop_timeout 240s |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
114 CF_DEFAULT CF_SEC, d'120', d'30', d'240' ; CF03 surfloop_timeout 120s |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
115 CF_DEFAULT CF_SEC, d'5', d'1', d'30' ; CF04 premenu_timeout 5s |
79 | 116 |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
117 CF_DEFAULT CF_INT8, d'7', d'3', d'18' ; CF05 minimum_velocity 7min/min |
398
ab962c4b19d6
Fixing issue 50, correct "Bar" to "bar" in texts and comments
heinrichsweikamp
parents:
392
diff
changeset
|
118 CF_DEFAULT CF_INT15, d'1160',d'950', 0 ; pressure_offset_divemode 1160mbar |
ab962c4b19d6
Fixing issue 50, correct "Bar" to "bar" in texts and comments
heinrichsweikamp
parents:
392
diff
changeset
|
119 CF_DEFAULT CF_INT15, d'1080',d'1080', 0 ; max_surfpressure 1080mbar |
105 | 120 CF_DEFAULT CF_PERCENT, d'20', d'1', d'99' ; min_gradient_factor 20% |
173 | 121 CF_DEFAULT CF_PERCENT, d'20', d'1', d'22' ; oxygen_threshold 22% |
79 | 122 |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
123 CF_DEFAULT CF_SEC, d'45', d'5', d'60' ; CF10 dive_menu_timeout 45s |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
124 CF_DEFAULT CF_PERCENT, d'110', d'110', d'200' ; saturation_multiplier x1.10 |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
125 CF_DEFAULT CF_PERCENT, d'90', d'50', d'90' ; desaturation_multiplier x0.90 |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
126 CF_DEFAULT CF_PERCENT, d'60', d'60', d'100' ; nofly_time_ratio 60% |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
127 CF_DEFAULT CF_PERCENT, d'100', d'50', d'100' ; gradient_factor_alarm1 100% |
79 | 128 |
588 | 129 CF_DEFAULT CF_PERCENT, d'10', d'0', d'100' ; CF15 cns_display_surface 10% |
130 CF_DEFAULT CF_DECI, d'10', d'0', d'20' ; CF16 deco_distance_for_sim 1m | |
398
ab962c4b19d6
Fixing issue 50, correct "Bar" to "bar" in texts and comments
heinrichsweikamp
parents:
392
diff
changeset
|
131 CF_DEFAULT CF_CENTI, d'019', d'19', d'021' ; ppo2_warning_low 0.19 bar |
ab962c4b19d6
Fixing issue 50, correct "Bar" to "bar" in texts and comments
heinrichsweikamp
parents:
392
diff
changeset
|
132 CF_DEFAULT CF_CENTI, d'160', d'0', d'160' ; ppo2_warning_high 1.60 bar |
ab962c4b19d6
Fixing issue 50, correct "Bar" to "bar" in texts and comments
heinrichsweikamp
parents:
392
diff
changeset
|
133 CF_DEFAULT CF_CENTI, d'140', d'0', d'150' ; ppo2_display_high 1.40 bar |
79 | 134 |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
135 CF_DEFAULT CF_INT8, d'10', d'1', d'120' ; CF20 sampling_rate 10s |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
136 CF_DEFAULT CF_INT8, d'6', d'0', d'15' ; sampling_divisor_temp /6 |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
137 CF_DEFAULT CF_INT8, d'6', d'0', d'15' ; sampling_divisor_deco /6 |
374 | 138 CF_DEFAULT CF_INT8, d'6', d'0', d'15' ; sampling_divisor_gf /6 |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
139 CF_DEFAULT CF_INT8, d'0', d'0', d'15' ; sampling_divisor_ppo2 never |
79 | 140 |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
141 CF_DEFAULT CF_INT8, d'0', d'0', d'15' ; CF25 sampling_divisor_deco2 never |
374 | 142 CF_DEFAULT CF_INT8, d'12', d'0', d'15' ; sampling_divisor_cns /12 |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
143 CF_DEFAULT CF_PERCENT, d'20', d'5', d'75' ; cns_display_high 20% |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
144 CF_DEFAULT CF_INT15, d'0', d'0', 0 ; logbook_offset No Offset, but 15Bit value |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
145 CF_DEFAULT CF_INT8, d'3', d'2', d'6' ; last_deco_depth 3m |
79 | 146 |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
147 CF_DEFAULT CF_SEC, d'10', d'1', d'15' ; CF30 timeout_apnoe_mode 10min |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
148 CF_DEFAULT CF_BOOL, d'0', 0, 0 ; CF31 show_voltage_value =1 Show value instead of symbol, =0 Show Symbol |
79 | 149 |
150 ;---- BANK1 custom function defaults ------------------------------------- | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
151 cf_default_table1: |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
152 ; DEFAULT MIN MAX |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
153 CF_DEFAULT CF_PERCENT, d'30', d'5', d'90' ; CF32 GF_low_default 30% |
666 | 154 CF_DEFAULT CF_PERCENT, d'85', d'30', d'95' ; CF33 GF_high_default 85% |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
155 CF_DEFAULT CF_COLOR, d'199', 0, 0 ; CF34 color_battery_surface Color Battery sign: Deep blue |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
156 CF_DEFAULT CF_COLOR, d'255', 0, 0 ; CF35 color_standard1 Color Standard: White |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
157 CF_DEFAULT CF_COLOR, d'62', 0, 0 ; CF36 color_divemask Color Divemask: Light green |
99 | 158 |
492
19b9e19ea4da
+CHANGE: Velocity display updated every second
heinrichsweikamp
parents:
478
diff
changeset
|
159 CF_DEFAULT CF_COLOR, d'224', 0, 0 ; CF37 color_warnings Color Warnings: Red |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
160 CF_DEFAULT CF_BOOL, d'0', 0, 0 ; CF38 show_seconds_divemode =1 Show the seconds in Divemode |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
161 CF_DEFAULT CF_BOOL, 0, 0, 0 ; CF39 Adjust SetPoint if Diluent ppO2 > SetPoint |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
162 CF_DEFAULT CF_BOOL, d'1', 0, 0 ; CF40 warn_ceiling_divemode =1 Warn ceiling violation in divemode |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
163 CF_DEFAULT CF_BOOL, d'1', 0, 0 ; CF41 Show mix type is surfmode |
128 | 164 |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
165 CF_DEFAULT CF_BOOL, d'1', 0, 0 ; CF42 blink_gas_divemode =1 blink better gas |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
166 CF_DEFAULT CF_INT15, d'13000', 0, d'13000' ; CF43 color_warn_depth_mbar Warn depths |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
167 CF_DEFAULT CF_PERCENT, d'101', d'50', d'101' ; CF44 color_warn_cns_percent Warn-% |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
168 CF_DEFAULT CF_PERCENT, d'101', d'50', d'101' ; CF45 color_warn_gf_percent Warn-% |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
169 CF_DEFAULT CF_CENTI, d'161', d'100', d'161' ; CF46 color_warn_ppo2_cbar ppO2 warn |
128 | 170 |
492
19b9e19ea4da
+CHANGE: Velocity display updated every second
heinrichsweikamp
parents:
478
diff
changeset
|
171 CF_DEFAULT CF_INT8, d'15', d'7', d'20' ; CF47 color_warn_celocity_mmin warn at xx m/min |
19b9e19ea4da
+CHANGE: Velocity display updated every second
heinrichsweikamp
parents:
478
diff
changeset
|
172 CF_DEFAULT CF_SEC+CF_NEG,d'0', -d'120' ,d'120' ; CF48 time_correction_value_default Adds to Seconds on Midnight |
476 | 173 CF_DEFAULT CF_BOOL, d'0', 0, 0 ; CF49 Show Altimeter in surface mode |
129
06c4899ddb4b
Custom views in dive mode configrable (New CF50-CF53)
Heinrichsweikamp
parents:
125
diff
changeset
|
174 CF_DEFAULT CF_BOOL, d'0', 0, 0 ; CF50 Show Log-Marker |
06c4899ddb4b
Custom views in dive mode configrable (New CF50-CF53)
Heinrichsweikamp
parents:
125
diff
changeset
|
175 CF_DEFAULT CF_BOOL, d'1', 0, 0 ; CF51 Show Stopwatch |
79 | 176 |
324 | 177 CF_DEFAULT CF_BOOL, d'0', 0, 0 ; CF52 Show Tissue Graph in Divemode |
129
06c4899ddb4b
Custom views in dive mode configrable (New CF50-CF53)
Heinrichsweikamp
parents:
125
diff
changeset
|
178 CF_DEFAULT CF_BOOL, d'0', 0, 0 ; CF53 Show Laeding Tissue in Divemode |
197 | 179 CF_DEFAULT CF_BOOL, d'0', 0, 0 ; CF54 Display shallowest stop first |
574 | 180 CF_DEFAULT CF_INT8, d'0', d'0', d'10' ; CF55 Gas switch additional delay |
478
fd8266b511cc
New SAC (CF56/CF57) in 5..50 l/min range (no more decimal).
JeanDo
parents:
476
diff
changeset
|
181 CF_DEFAULT CF_INT8, d'20', d'5', d'50' ; CF56 Bottom gas usage (SAC l/min) |
224 | 182 |
478
fd8266b511cc
New SAC (CF56/CF57) in 5..50 l/min range (no more decimal).
JeanDo
parents:
476
diff
changeset
|
183 CF_DEFAULT CF_INT8, d'20', d'5', d'50' ; CF57 Ascent/deco gas usage (SAC l/min) |
312
b7e4e74c0e17
New @5 variant: compute TTS if staying some extra time (CF58) at current depth.
JeanDo
parents:
309
diff
changeset
|
184 CF_DEFAULT CF_INT8, d'0', d'0', d'10' ; CF58 TTS for extra time at current depth [min] |
476 | 185 CF_DEFAULT CF_INT15, d'0', d'0', d'7000' ; CF59 Cave conso warning [l] |
492
19b9e19ea4da
+CHANGE: Velocity display updated every second
heinrichsweikamp
parents:
478
diff
changeset
|
186 CF_DEFAULT CF_BOOL, 0, 0, 0 ; CF60 Show Graphical ascend speed indicator |
552 | 187 CF_DEFAULT CF_BOOL, 0, 0, 0 ; CF61 Show pSCR ppO2 |
79 | 188 |
552 | 189 CF_DEFAULT CF_PERCENT, .4, .0, .100 ; CF62 pSCR O2 Drop |
190 CF_DEFAULT CF_INT8, .10, .0, .100 ; CF63 pSCR counterlung ratio | |
609 | 191 |
192 ;---- BANK2 custom function defaults ------------------------------------- | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
193 cf_default_table2: |
587
1b021a280e15
NEW CF64: Configures color for inactive gases
heinrichsweikamp
parents:
576
diff
changeset
|
194 CF_DEFAULT CF_COLOR, d'74', 0, 0 ; CF64 color_inactive Color inactive: grey |
598
f3735da18809
NEW: CF65: Show a safety stop for no-deco dives
heinrichsweikamp
parents:
588
diff
changeset
|
195 CF_DEFAULT CF_BOOL, 0, 0, 0 ; CF65 Show safety stop |
619 | 196 CF_DEFAULT CF_BOOL, 0, 0, 0 ; CF66 Show GF in NDL (If GF > CF08) |
666 | 197 CF_DEFAULT CF_PERCENT, d'30', d'5', d'90' ; CF67 aGF_low_default 30% |
198 CF_DEFAULT CF_PERCENT, d'90', d'30', d'95' ; CF68 aGF_high_default 90% | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
199 |
666 | 200 CF_DEFAULT CF_BOOL, 0, 0, 0 ; CF69 Allow GF change (Between GF and aGF) |
574 | 201 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF70 unused |
202 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF71 unused | |
203 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF72 unused | |
204 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF73 unused | |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
205 |
574 | 206 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF74 unused |
207 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF75 unused | |
208 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF76 unused | |
209 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF77 unused | |
210 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF78 unused | |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
211 |
574 | 212 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF79 unused |
213 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF80 unused | |
214 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF81 unused | |
215 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF82 unused | |
216 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF83 unused | |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
217 |
574 | 218 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF84 unused |
219 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF85 unused | |
220 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF86 unused | |
221 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF87 unused | |
222 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF88 unused | |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
223 |
574 | 224 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF89 unused |
225 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF90 unused | |
226 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF91 unused | |
227 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF92 unused | |
228 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF93 unused | |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
229 |
574 | 230 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF94 unused |
231 CF_DEFAULT CF_INT8, d'0', d'0', d'0' ; CF95 unused | |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
232 cf_default_table3: |
79 | 233 ;============================================================================= |
234 | |
0 | 235 menu_reset: |
236 movlw d'1' | |
237 movwf menupos | |
238 | |
239 call PLED_ClearScreen | |
240 call PLED_reset_menu_mask | |
241 | |
242 menu_reset2: | |
576 | 243 call menu_pre_loop_common ; Clear some menu flags, timeout and switches |
0 | 244 call PLED_reset_menu_mask |
245 call PLED_menu_cursor | |
246 menu_reset_loop: | |
247 call check_switches_menu | |
248 btfsc menubit2 | |
249 bra do_menu_reset ; call submenu | |
250 btfss menubit | |
251 bra menu ; exit setup menu and return to main menu | |
252 btfsc onesecupdate | |
253 call timeout_surfmode | |
254 btfsc onesecupdate | |
255 call set_dive_modes | |
256 btfsc onesecupdate | |
257 call test_charger ; check if charger IC is active | |
258 btfsc onesecupdate | |
259 call get_battery_voltage ; get battery voltage | |
260 bcf onesecupdate ; End of one second tasks | |
261 btfsc sleepmode | |
262 goto menu | |
263 btfsc divemode | |
264 goto restart ; exit menu, restart and enter divemode | |
265 bra menu_reset_loop | |
266 do_menu_reset: ; calls submenu | |
267 dcfsnz menupos,F | |
268 bra do_menu_reset_exit ; Cancel, exit | |
269 dcfsnz menupos,F | |
270 bra do_menu_reset_all ; Reset all settings | |
271 dcfsnz menupos,F | |
272 bra do_menu_reset_logbook ; Reset Logbook Memory! | |
273 dcfsnz menupos,F | |
274 bra do_menu_reset_reboot ; Reboot OSTC | |
275 dcfsnz menupos,F | |
276 bra do_menu_reset_decodata ; Reset Decodata | |
277 do_menu_reset_exit: | |
278 movlw d'3' | |
279 movwf menupos | |
280 bra menu2 ; exit... | |
281 | |
282 | |
283 do_menu_reset_reboot: | |
284 call PLED_confirmbox ; Returns WREG=0 for Cancel (Or Timeout) and WREG=1 for OK! | |
285 movwf menupos ; Used as temp | |
286 tstfsz menupos | |
287 bra do_menu_reset_reboot2 ; Delete now! | |
288 bra do_menu_reset_exit ; Cancel! | |
289 | |
290 do_menu_reset_reboot2: | |
291 call PLED_DisplayOff ; Power-down OLED | |
292 movlw b'00000000' ; Bit6: PPL Disable | |
293 movwf OSCTUNE | |
294 movlw b'01111110' ; 8MHz | |
295 movwf OSCCON | |
296 reset | |
297 goto 0x00000 ; restart to 0x00000 | |
298 | |
299 do_menu_reset_logbook: | |
300 call PLED_confirmbox ; Returns WREG=0 for Cancel (Or Timeout) and WREG=1 for OK! | |
301 movwf menupos ; Used as temp | |
302 tstfsz menupos | |
303 bra do_menu_reset_logbook2 ; Delete Logbook now! | |
304 bra do_menu_reset_exit ; Cancel! | |
305 | |
306 do_menu_reset_logbook2: | |
307 call PLED_ClearScreen | |
123 | 308 setf win_color1 ; Make sure to display in white color. |
309 setf win_color2 | |
310 DISPLAYTEXT .25 ; "Reset..." | |
0 | 311 call reset_external_eeprom ; delete profile memory |
312 bra do_menu_reset_exit | |
313 | |
314 do_menu_reset_decodata: | |
315 call PLED_confirmbox ; Returns WREG=0 for Cancel (Or Timeout) and WREG=1 for OK! | |
316 movwf menupos ; Used as temp | |
317 tstfsz menupos | |
318 bra do_menu_reset_decodata2 ; Reset Deco Data now! | |
319 bra do_menu_reset_exit ; Cancel! | |
320 | |
321 do_menu_reset_decodata2: | |
322 ; reset deco data | |
323 call PLED_ClearScreen | |
425 | 324 DISPLAYTEXT .25 ; "Reset..." |
411
e6e1b89b7c3e
BUGFIX: CNS was not cleared with a "Reset Deco"
heinrichsweikamp
parents:
398
diff
changeset
|
325 |
341
2144f19fa1eb
BUGFIX protect against ISR changing pressure/temperature while reading it.
JeanDo
parents:
324
diff
changeset
|
326 SAFE_2BYTE_COPY amb_pressure,int_I_pres_respiration ; copy surface air pressure to deco routine |
411
e6e1b89b7c3e
BUGFIX: CNS was not cleared with a "Reset Deco"
heinrichsweikamp
parents:
398
diff
changeset
|
327 call deco_clear_tissue ; Reset Decodata |
e6e1b89b7c3e
BUGFIX: CNS was not cleared with a "Reset Deco"
heinrichsweikamp
parents:
398
diff
changeset
|
328 call deco_calc_desaturation_time ; calculate desaturation time |
e6e1b89b7c3e
BUGFIX: CNS was not cleared with a "Reset Deco"
heinrichsweikamp
parents:
398
diff
changeset
|
329 call deco_clear_CNS_fraction ; clear CNS |
e6e1b89b7c3e
BUGFIX: CNS was not cleared with a "Reset Deco"
heinrichsweikamp
parents:
398
diff
changeset
|
330 movlb b'00000001' ; select ram bank 1 |
412 | 331 clrf nofly_time+0 ; Reset NoFly |
332 clrf nofly_time+1 ; Reset NoFly | |
333 bcf nofly_active ; Clear flag | |
422 | 334 goto restart ; done. quit to surfmode |
0 | 335 |
336 do_menu_reset_all: | |
337 call PLED_confirmbox ; Returns WREG=0 for Cancel (Or Timeout) and WREG=1 for OK! | |
338 movwf menupos ; Used as temp | |
339 tstfsz menupos | |
340 bra do_menu_reset_all2 ; Reset all now! | |
341 bra do_menu_reset_exit ; Cancel! | |
342 | |
343 do_menu_reset_all2: | |
344 call PLED_ClearScreen | |
507 | 345 DISPLAYTEXT .25 ; "Reset..." |
0 | 346 |
347 reset_start: | |
348 ; reset deco data | |
341
2144f19fa1eb
BUGFIX protect against ISR changing pressure/temperature while reading it.
JeanDo
parents:
324
diff
changeset
|
349 SAFE_2BYTE_COPY amb_pressure,int_I_pres_respiration ; copy surface air pressure to deco routine |
411
e6e1b89b7c3e
BUGFIX: CNS was not cleared with a "Reset Deco"
heinrichsweikamp
parents:
398
diff
changeset
|
350 call deco_clear_tissue ; Reset Decodata |
e6e1b89b7c3e
BUGFIX: CNS was not cleared with a "Reset Deco"
heinrichsweikamp
parents:
398
diff
changeset
|
351 call deco_calc_desaturation_time ; calculate desaturation time |
e6e1b89b7c3e
BUGFIX: CNS was not cleared with a "Reset Deco"
heinrichsweikamp
parents:
398
diff
changeset
|
352 call deco_clear_CNS_fraction ; clear CNS |
422 | 353 movlb b'00000001' ; select ram bank 1 |
412 | 354 clrf nofly_time+0 ; Reset NoFly |
355 clrf nofly_time+1 ; Reset NoFly | |
356 bcf nofly_active ; Clear flag | |
0 | 357 |
358 ; reset gases | |
464 | 359 rcall reset_gases |
507 | 360 rcall reset_all_cf |
361 goto restart ; all reset, quit to surfmode | |
0 | 362 |
363 reset_all_cf: | |
364 movlw d'1' | |
365 movwf EEDATA | |
366 write_int_eeprom d'33' ; reset start gas | |
670 | 367 movlw d'4' ; Default is L16-GF OC |
368 movwf EEDATA | |
369 write_int_eeprom d'34' ; reset deco model | |
0 | 370 clrf EEDATA |
309 | 371 write_int_eeprom d'35' ; unused in Mk.2 |
0 | 372 |
373 clrf EEDATA | |
374 write_int_eeprom d'39' ; Disable Debugbode | |
375 clrf EEDATA | |
376 write_int_eeprom d'90' ; Disable Brightness offset? (Dim=1, Normal = 0) | |
140 | 377 |
378 movlw d'1' | |
157 | 379 movwf EEDATA |
140 | 380 write_int_eeprom d'91' ; Reset Date format to DD.MM.YY |
0 | 381 |
382 movlw d'100' | |
157 | 383 movwf EEDATA |
0 | 384 write_int_eeprom d'26' ; Salinity default: 1.00 kg/l |
385 | |
386 movlw b'00011111' | |
387 movwf EEDATA | |
388 write_int_eeprom d'27' ; reset active gas flags | |
389 | |
390 clrf EEDATA | |
391 write_int_eeprom d'28' ; reset change depth gas #1 | |
392 clrf EEDATA | |
393 write_int_eeprom d'29' ; reset change depth gas #2 | |
394 clrf EEDATA | |
395 write_int_eeprom d'30' ; reset change depth gas #3 | |
396 clrf EEDATA | |
397 write_int_eeprom d'31' ; reset change depth gas #4 | |
398 clrf EEDATA | |
399 write_int_eeprom d'32' ; reset change depth gas #5 | |
400 | |
255
1efd59d689f8
small change in the set time menu, default setpoints set to 0.8, 1.0 and 1.2Bar
heinrichsweikamp
parents:
229
diff
changeset
|
401 movlw d'80' |
1efd59d689f8
small change in the set time menu, default setpoints set to 0.8, 1.0 and 1.2Bar
heinrichsweikamp
parents:
229
diff
changeset
|
402 movwf EEDATA |
398
ab962c4b19d6
Fixing issue 50, correct "Bar" to "bar" in texts and comments
heinrichsweikamp
parents:
392
diff
changeset
|
403 write_int_eeprom d'36' ; reset mix1 to ppO2=0.80bar |
0 | 404 movlw d'100' |
405 movwf EEDATA | |
398
ab962c4b19d6
Fixing issue 50, correct "Bar" to "bar" in texts and comments
heinrichsweikamp
parents:
392
diff
changeset
|
406 write_int_eeprom d'37' ; reset mix2 to ppO2=1.00bar |
255
1efd59d689f8
small change in the set time menu, default setpoints set to 0.8, 1.0 and 1.2Bar
heinrichsweikamp
parents:
229
diff
changeset
|
407 movlw d'120' |
1efd59d689f8
small change in the set time menu, default setpoints set to 0.8, 1.0 and 1.2Bar
heinrichsweikamp
parents:
229
diff
changeset
|
408 movwf EEDATA |
398
ab962c4b19d6
Fixing issue 50, correct "Bar" to "bar" in texts and comments
heinrichsweikamp
parents:
392
diff
changeset
|
409 write_int_eeprom d'38' ; reset mix3 to ppO2=1.20bar |
0 | 410 |
229
85ea09d3b9d8
Nofly should not be reset after dive simulation (bug BB18).
JeanDo
parents:
224
diff
changeset
|
411 clrf nofly_time+0 ; Clear nofly time |
0 | 412 clrf nofly_time+1 ; Clear nofly time |
413 | |
605 | 414 reset_all_cf_bank0: |
415 clrf EEADRH ; EEPROM BANK 0 | |
0 | 416 movlw d'127' ; address of low byte of first custom function |
417 movwf EEADR | |
418 | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
419 movlw LOW cf_default_table0 ; Load PROM pointer. |
79 | 420 movwf TBLPTRL,A |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
421 movlw HIGH cf_default_table0 |
79 | 422 movwf TBLPTRH,A |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
423 movlw UPPER cf_default_table0 |
79 | 424 movwf TBLPTRU,A |
0 | 425 |
79 | 426 cf_bank0_loop: |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
427 ; Did we already read 32 (decimal) words or double-words (with types) ? |
79 | 428 movf TBLPTRL,W |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
429 sublw LOW (cf_default_table1) |
79 | 430 bz reset_all_cf_bank1 |
0 | 431 rcall reset_customfunction ; saves default and current value |
79 | 432 bra cf_bank0_loop |
83
3e351e25f5d1
adding anti-aliased fonts frame and merging some patches from Jeando
heinrichsweikamp
parents:
79
diff
changeset
|
433 |
0 | 434 reset_all_cf_bank1: |
435 movlw d'1' | |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
436 movwf EEADRH ; EEPROM BANK 1 |
0 | 437 movlw d'127' ; address of low byte of first custom function |
438 movwf EEADR | |
609 | 439 |
440 movlw LOW cf_default_table1 ; Load PROM pointer. | |
441 movwf TBLPTRL,A | |
442 movlw HIGH cf_default_table1 | |
443 movwf TBLPTRH,A | |
444 movlw UPPER cf_default_table1 | |
445 movwf TBLPTRU,A | |
446 | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
447 |
79 | 448 cf_bank1_loop: |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
449 ; Did we already read another 32 (decimal) words or double-words ? |
79 | 450 movf TBLPTRL,W |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
451 sublw LOW (cf_default_table2) |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
452 bz reset_all_cf_bank2 |
0 | 453 rcall reset_customfunction ; saves default and current value |
79 | 454 bra cf_bank1_loop |
0 | 455 |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
456 reset_all_cf_bank2: |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
457 movlw d'2' |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
458 movwf EEADRH ; EEPROM BANK 2 |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
459 movlw d'127' ; address of low byte of first custom function |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
460 movwf EEADR |
609 | 461 |
462 movlw LOW cf_default_table2 ; Load PROM pointer. | |
463 movwf TBLPTRL,A | |
464 movlw HIGH cf_default_table2 | |
465 movwf TBLPTRH,A | |
466 movlw UPPER cf_default_table2 | |
467 movwf TBLPTRU,A | |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
468 |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
469 cf_bank2_loop: |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
470 ; Did we already read another 32 (decimal) words or double-words ? |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
471 movf TBLPTRL,W |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
472 sublw LOW (cf_default_table3) |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
473 bz cf_bank2_end |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
474 rcall reset_customfunction ; saves default and current value |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
475 bra cf_bank2_loop |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
476 |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
477 cf_bank2_end: |
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
478 clrf EEADRH ; EEPROM BANK 0 |
507 | 479 return |
0 | 480 |
464 | 481 reset_gases: |
573
77c8ff191cd7
Preparations for third bank of Custom Functions
heinrichsweikamp
parents:
552
diff
changeset
|
482 clrf EEADRH ; EEPROM BANK 0 |
464 | 483 |
484 movlw d'3' ; address of first gas-1 | |
485 movwf EEADR | |
486 clrf hi ; He part (default for all gases: 0%) | |
487 movlw d'21' ; O2 part (21%) | |
488 rcall reset_gas ; saves current value for gas #1 | |
489 movlw d'21' ; O2 part (21%) | |
490 rcall reset_gas ; saves default value for gas #1 | |
491 movlw d'21' ; O2 part (21%) | |
492 rcall reset_gas ; saves current value for gas #2 | |
493 movlw d'21' ; O2 part (21%) | |
494 rcall reset_gas ; saves default value for gas #2 | |
495 movlw d'21' ; O2 part (21%) | |
496 rcall reset_gas ; saves current value for gas #3 | |
497 movlw d'21' ; O2 part (21%) | |
498 rcall reset_gas ; saves default value for gas #3 | |
499 movlw d'21' ; O2 part (21%) | |
500 rcall reset_gas ; saves current value for gas #4 | |
501 movlw d'21' ; O2 part (21%) | |
502 rcall reset_gas ; saves default value for gas #4 | |
503 movlw d'21' ; O2 part (21%) | |
504 rcall reset_gas ; saves current value for gas #5 | |
505 movlw d'21' ; O2 part (21%) | |
506 rcall reset_gas ; saves default value for gas #5 | |
507 movlw d'21' ; O2 part (21%) | |
508 rcall reset_gas ; saves current value for gas #6 | |
509 return | |
510 | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
511 ; Write WREG:lo twice, w/o any type clearing, pre-incrementing EEADR |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
512 reset_gas: |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
513 movwf lo |
459 | 514 incf EEADR,F |
464 | 515 movff lo, EEDATA ; O2 Default value |
459 | 516 call write_eeprom |
517 incf EEADR,F | |
464 | 518 movff hi, EEDATA ; He default value |
459 | 519 call write_eeprom |
520 return | |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
521 |
0 | 522 reset_customfunction: |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
523 tblrd*+ |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
524 movff TABLAT, lo ; Low byte in lo, |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
525 tblrd*+ |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
526 movff TABLAT, hi ; High byte in hi |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
527 |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
528 ifndef NO_CF_TYPES |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
529 tblrd*+ ; Skip advanced min/max values. |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
530 tblrd*+ |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
531 btfss hi,7 ; In EEPROM, just clear all types, |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
532 clrf hi ; to keep external program compat (jdivelog etc.) |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
533 bcf hi,7 |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
534 endif |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
535 |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
536 ; Manage the default/value tuple |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
537 rcall reset_eeprom_value ; First pair, untouched. |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
538 bcf hi,7 ; Just clear type bit. |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
539 bra reset_eeprom_value ; Second pair, cleared |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
540 |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
541 ; Write the two bytes lo:hi into EEPROM |
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
542 reset_eeprom_value: |
0 | 543 incf EEADR,F |
384
904863f96582
Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents:
374
diff
changeset
|
544 movff lo, EEDATA ; Lowbyte Default value |
904863f96582
Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents:
374
diff
changeset
|
545 |
904863f96582
Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents:
374
diff
changeset
|
546 movlw d'127' ; Work-around to prevent writing at EEPROM 0x00 to 0x04 |
904863f96582
Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents:
374
diff
changeset
|
547 cpfslt EEADR ; EEADR > 127? |
904863f96582
Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents:
374
diff
changeset
|
548 call write_eeprom ; Yes, write! |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
549 |
0 | 550 incf EEADR,F |
86
b40a0a6284da
adding custom functions with limits (jeando)
heinrichsweikamp
parents:
83
diff
changeset
|
551 movff hi, EEDATA ; Highbyte default value |
384
904863f96582
Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents:
374
diff
changeset
|
552 |
904863f96582
Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents:
374
diff
changeset
|
553 movlw d'127' ; Work-around to prevent writing at EEPROM 0x00 to 0x04 |
904863f96582
Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents:
374
diff
changeset
|
554 cpfslt EEADR ; EEADR > 127? |
904863f96582
Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents:
374
diff
changeset
|
555 call write_eeprom ; Yes, write! |
904863f96582
Work-Around for "Reset all" overwriting 0x00 to 0x04 in EEPROM Bank1
heinrichsweikamp
parents:
374
diff
changeset
|
556 return |
0 | 557 |
558 reset_external_eeprom: ; deletes complete external eeprom! | |
559 clrf eeprom_address+0 | |
560 clrf eeprom_address+1 | |
561 | |
350
7250ca7c8d24
64kByte logbook (Still incompatible to existing PC software)
heinrichsweikamp
parents:
341
diff
changeset
|
562 movlw d'4' |
0 | 563 movwf temp3 |
564 reset_eeprom02: | |
565 clrf temp4 | |
566 reset_eeprom01: | |
567 movlw d'64' | |
568 movwf temp2 | |
569 bcf eeprom_blockwrite ; Blockwrite start | |
570 reset_eeprom1: | |
571 setf ext_ee_temp1 ; byte for Blockwrite.... | |
572 movf ext_ee_temp1,W ; So, 1st. Byte of block is fine, too | |
573 call write_external_eeprom_block | |
574 decfsz temp2,F ; 64 Byte done | |
575 bra reset_eeprom1 | |
576 bsf SSPCON2,PEN ; Stop condition | |
577 call WaitMSSP | |
578 WAITMS d'7' | |
579 decfsz temp4,F | |
580 bra reset_eeprom01 ; do this 256 times | |
581 decfsz temp3,F | |
350
7250ca7c8d24
64kByte logbook (Still incompatible to existing PC software)
heinrichsweikamp
parents:
341
diff
changeset
|
582 bra reset_eeprom02 ; and this all 4 times -> 1024 *64Bytes = 64KB |
0 | 583 |
584 bcf eeprom_blockwrite ; clear blockwrite flag | |
585 | |
586 clrf eeprom_address+0 | |
587 clrf eeprom_address+1 | |
588 | |
589 movlw 0xFD ; With these three bytes the OSTC will find the free area in the EEPROM faster | |
590 call write_external_eeprom | |
591 movlw 0xFD | |
592 call write_external_eeprom | |
593 movlw 0xFE | |
594 call write_external_eeprom | |
595 | |
596 clrf eeprom_address+0 | |
597 clrf eeprom_address+1 | |
598 return | |
599 |