Mercurial > public > mk2
annotate code_part1/OSTC_code_asm_part1/divemode_menu.asm @ 219:b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
author | heinrichsweikamp |
---|---|
date | Tue, 01 Mar 2011 10:01:17 +0100 |
parents | e26f49674956 |
children | 448478ceccea |
rev | line source |
---|---|
0 | 1 ; OSTC - diving computer code |
2 ; Copyright (C) 2008 HeinrichsWeikamp GbR | |
3 | |
4 ; This program is free software: you can redistribute it and/or modify | |
5 ; it under the terms of the GNU General Public License as published by | |
6 ; the Free Software Foundation, either version 3 of the License, or | |
7 ; (at your option) any later version. | |
8 | |
9 ; This program is distributed in the hope that it will be useful, | |
10 ; but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 ; GNU General Public License for more details. | |
13 | |
14 ; You should have received a copy of the GNU General Public License | |
15 ; along with this program. If not, see <http://www.gnu.org/licenses/>. | |
16 | |
17 | |
18 ; Underwater Menu (Set Gas, Decoplan, etc.) | |
19 ; written by: Matthias Heinrichs, info@heinrichsweikamp.com | |
20 ; written: 11/11/05 | |
21 ; last updated: 090305 | |
22 ; known bugs: | |
23 ; ToDo: | |
24 | |
25 | |
112 | 26 test_switches_divemode: ; checks switches in divemode |
0 | 27 btfsc switch_left |
28 bra test_switches_divemode2 | |
29 | |
30 btfss switch_right | |
31 return | |
32 | |
33 bcf switch_left ; Left button pressed! | |
34 bcf switch_right | |
35 | |
36 bcf select_bailoutgas ; Clear Flag for Bailout list | |
37 bsf premenu ; Set Flag for premenu | |
38 bcf menubit | |
39 clrf timeout_counter3 ; timeout_divemenu | |
40 | |
41 btfsc FLAG_apnoe_mode ; In Apnoe mode? | |
42 bra test_switches_divemode1 ; Yes! | |
43 | |
44 test_switches_divemode0: | |
45 WIN_INVERT .1 | |
46 DISPLAYTEXT .4 ;Menu? | |
47 WIN_INVERT .0 | |
48 return | |
49 | |
50 test_switches_divemode1: | |
51 DISPLAYTEXT .141 ;Quit? | |
52 return | |
53 | |
54 test_switches_divemode2: | |
55 bcf switch_left ; Also reactivate left button if there was a right press without prior left press | |
56 bcf switch_right ; enable right button again | |
57 | |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
58 btfsc premenu |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
59 bra test_switches_divemode2_2 |
109
6e635bf5b7a7
fixed double-effect of ENTER button in divemode
heinrichsweikamp
parents:
107
diff
changeset
|
60 btfsc menubit |
6e635bf5b7a7
fixed double-effect of ENTER button in divemode
heinrichsweikamp
parents:
107
diff
changeset
|
61 bra test_switches_divemode2_2 ; Not in Premenu or Menu... |
0 | 62 |
112 | 63 bsf toggle_customview ; Toggle customview (Cleared in customview.asm) |
64 | |
65 btfsc standalone_simulator ; Standalone Simualtor active? | |
66 bra divemode_menu_simulator ; Yes, Show simulator menu! | |
67 return | |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
68 |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
69 test_switches_divemode2_2: |
0 | 70 btfss FLAG_apnoe_mode ; In Apnoe mode? |
71 bra test_switches_divemode2a; No! | |
72 | |
73 ; Yes, so quit Apnoe mode at once... | |
74 bcf divemode ; Clear Divemode flag... | |
75 bcf premenu ; clear premenu flag | |
76 return | |
77 | |
78 test_switches_divemode2a: | |
79 bsf menubit ; Enter Divemode-Menu! | |
80 bcf premenu ; clear premenu flag | |
81 call PLED_clear_divemode_menu ; Clear dive mode menu area | |
82 call PLED_divemode_menu_mask_first ; Write Divemode menu1 mask | |
83 bcf display_set_simulator ; Clear Simulator-Menu flag | |
84 movlw d'1' | |
85 movwf menupos ; reset cursor in divemode menu | |
86 call PLED_divemenu_cursor ; show cursor | |
87 bcf switch_right | |
88 bcf switch_left ; Left button pressed! | |
89 return | |
90 | |
91 test_switches_divemode_menu: | |
92 btfsc switch_left | |
93 bra test_switches_divemode_menu3 | |
94 btfss switch_right | |
95 return | |
96 | |
97 btfsc display_see_deco ; Is the Decoplan displayed? | |
98 bra divemenu_see_decoplan2 ; Yes, exit menu on left button press | |
99 | |
100 bcf switch_right ; Left button pressed | |
101 clrf timeout_counter3 ; timout_divemenu! | |
102 incf menupos,F | |
103 | |
104 ; Following routine configures the number of menu entries for the different modes | |
105 movlw d'6' ; number of available gases+1, ; number of menu options+1 | |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
106 btfsc display_set_gas ; Are we in the "Gaslist" menu? |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
107 movlw d'7' ; Yes, Number of entries for this menu+1 = 7 |
0 | 108 btfsc display_set_setpoint ; In SetPoint Menu? |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
109 movlw d'5' ; Number of entries for this menu+1 = 5 |
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
110 btfsc display_set_active ; De/Activate gases underwater menu is visible? |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
111 movlw d'7' ; Number of entries for this menu+1 = 7 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
112 btfsc display_set_xgas ; Are we in the Gas6 menu? |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
113 movlw d'7' ; Number of entries for this menu+1 = 7 |
0 | 114 cpfseq menupos ; =limit? |
115 bra test_switches_divemode_menu1; No! | |
116 movlw d'1' ; Yes, reset to position 1! | |
117 movwf menupos | |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
118 |
0 | 119 test_switches_divemode_menu1: |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
120 ; Finally, check if menuposition 3 should be skipped (No customview with function displayed) |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
121 |
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
122 btfsc display_set_gas ; Are we in the "Gaslist", "SetPoint" or De/Activate gases menu? |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
123 bra test_switches_divemode_menu1a ; Skip test for sub menus |
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
124 btfsc display_set_xgas ; Are we in the "Gaslist", "SetPoint" or De/Activate gases menu? |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
125 bra test_switches_divemode_menu1a ; Skip test for sub menus |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
126 btfsc display_set_active ; Are we in the "Gaslist", "SetPoint" or De/Activate gases menu? |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
127 bra test_switches_divemode_menu1a ; Skip test for sub menus |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
128 |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
129 movlw d'3' |
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
130 cpfseq menupos ; At position 3? |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
131 bra test_switches_divemode_menu1a ; No |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
132 btfss menu3_active ; Menu position 3 has functionality? |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
133 incf menupos,F ; No, +1, skip to menuos=4 |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
134 |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
135 test_switches_divemode_menu1a: |
0 | 136 call PLED_divemenu_cursor ; update cursor |
137 return | |
138 | |
139 test_switches_divemode_menu3: | |
140 bcf switch_left | |
141 bcf switch_right | |
142 bsf menubit ; Enter Divemode-Menu! | |
143 bcf premenu ; clear premenu flag | |
144 clrf timeout_counter3 | |
145 | |
146 btfsc display_set_gas ; Are we in the "Gaslist" or "SetPoint" menu? | |
147 bra divemenu_set_gas2 ; Yes, so set gas and exit menu | |
148 | |
149 btfsc display_see_deco ; Is the Decoplan displayed? | |
150 bra divemenu_see_decoplan2 ; Yes, exit menu on right button press | |
151 | |
152 btfsc display_set_xgas ; Are we in the "Set Gas" menu? | |
153 bra divemenu_set_xgas2 ; Yes, so configure gas or set menu and exit menu | |
154 | |
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
155 btfsc display_set_active ; Are we in the "De/Activate gases menu?" menu? |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
156 bra divemenu_de_activate2 ; Yes, so toggle active flag |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
157 |
0 | 158 btfsc display_set_simulator ; Are we in the Divemode Simulator menu? |
159 goto divemode_menu_simulator2 ; Yes, so adjust depth or set and exit | |
160 | |
161 ; Options for Menu 1 | |
162 dcfsnz menupos,F | |
73
2227459e8ef2
Exchanged Decoplan and Gaslist in dive mode menu
heinrichsweikamp
parents:
71
diff
changeset
|
163 bra divemenu_set_gas ; Set gas sub-menu |
2227459e8ef2
Exchanged Decoplan and Gaslist in dive mode menu
heinrichsweikamp
parents:
71
diff
changeset
|
164 dcfsnz menupos,F |
0 | 165 bra divemenu_see_decoplan ; display the full decoplan |
166 dcfsnz menupos,F | |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
167 bra divemode_menu3 ; Customview-function |
0 | 168 dcfsnz menupos,F |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
169 bra divemode_toggle_brightness ; Toggle OLED-Brightness |
0 | 170 dcfsnz menupos,F |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
171 bra timeout_divemenu2 ; Quit divemode menu |
119 | 172 bra timeout_divemenu2 ; Quit divemode menu |
0 | 173 |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
174 divemode_menu3: |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
175 movff menupos3,temp1 ; copy |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
176 dcfsnz temp1,F |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
177 bra toggle_stopwatch ; Toggle Stopwatch/Average register |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
178 dcfsnz temp1,F |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
179 bra set_marker ; Set Marker |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
180 dcfsnz temp1,F |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
181 bra divemode_menu3_nothing ; clock... |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
182 dcfsnz temp1,F |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
183 bra divemode_menu3_nothing ; leading tissue... |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
184 |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
185 divemode_menu3_nothing: |
0 | 186 bra timeout_divemenu2 ; Quit divemode menu |
187 | |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
188 set_marker: |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
189 movlw d'6' ; Type of Alarm (Manual Marker) |
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
190 movwf AlarmType ; Copy to Alarm Register |
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
191 bsf event_occured ; Set Event Flag |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
192 bra timeout_divemenu2 ; quit menu! |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
193 |
0 | 194 toggle_stopwatch: |
111 | 195 bsf reset_average_depth ; Average Depth will be resetted in divemode.asm |
0 | 196 bra timeout_divemenu2 ; quit menu! |
197 | |
198 divemode_toggle_brightness: | |
199 read_int_eeprom d'90' ; Brightness offset? (Dim>0, Normal = 0) | |
200 tstfsz EEDATA ; Was dimmed? | |
201 bra divemode_toggle_brightness1 ; Yes... | |
202 | |
203 call PLED_brightness_low | |
204 movlw d'1' | |
205 movwf EEDATA ; Copy to EEDATA | |
206 write_int_eeprom d'90' ; Brightness offset? (Dim=1, Normal = 0) | |
207 bra divemode_toggle_brightness3 | |
208 | |
209 divemode_toggle_brightness1: | |
210 call PLED_brightness_full | |
211 movlw d'0' | |
212 movwf EEDATA ; Copy to EEDATA | |
213 write_int_eeprom d'90' ; Brightness offset? (Dim=1, Normal = 0) | |
214 | |
215 divemode_toggle_brightness3: | |
216 ; Now, redraw all outputs (All modes) | |
217 call PLED_active_gas_divemode ; Display gas, if required | |
218 call PLED_temp_divemode ; Displays temperature | |
219 call PLED_depth ; Displays new depth... | |
220 call PLED_max_pressure ; ...and max. depth | |
221 | |
222 bra timeout_divemenu2 ; quit menu! | |
223 | |
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
224 divemenu_de_activate: |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
225 bsf display_set_active ; Set display flag |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
226 bcf display_set_xgas ; Clear Flag |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
227 call PLED_clear_divemode_menu ; Clear Menu |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
228 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
229 call PLED_de_activelist ; show (de)active gaslist |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
230 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
231 movlw d'1' |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
232 movwf menupos ; reset cursor |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
233 call PLED_divemenu_cursor ; update cursor |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
234 return |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
235 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
236 divemenu_de_activate2: ; Toggle active flag |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
237 dcfsnz menupos,F |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
238 bra divemenu_de_activate2_exit ; Exit, Quit, Abort |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
239 dcfsnz menupos,F |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
240 bra divemenu_de_activate2_g1 ; Toggle Gas1 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
241 dcfsnz menupos,F |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
242 bra divemenu_de_activate2_g2 ; Toggle Gas2 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
243 dcfsnz menupos,F |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
244 bra divemenu_de_activate2_g3 ; Toggle Gas3 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
245 dcfsnz menupos,F |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
246 bra divemenu_de_activate2_g4 ; Toggle Gas4 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
247 dcfsnz menupos,F |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
248 bra divemenu_de_activate2_g5 ; Toggle Gas5 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
249 return ; should never be here |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
250 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
251 divemenu_de_activate2_exit: |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
252 bra timeout_divemenu2 ; quit underwater menu! |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
253 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
254 divemenu_de_activate2_g1: |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
255 read_int_eeprom d'27' ; read flag register |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
256 btg EEDATA,.0 ; Toggle flag |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
257 write_int_eeprom d'27' ; write flag register |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
258 movlw d'2' |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
259 movwf menupos ; reset cursor |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
260 call PLED_de_activelist ; show (de)active gaslist |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
261 return |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
262 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
263 divemenu_de_activate2_g2: |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
264 read_int_eeprom d'27' ; read flag register |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
265 btg EEDATA,.1 ; Toggle flag |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
266 write_int_eeprom d'27' ; write flag register |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
267 movlw d'3' |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
268 movwf menupos ; reset cursor |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
269 call PLED_de_activelist ; show (de)active gaslist |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
270 return |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
271 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
272 divemenu_de_activate2_g3: |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
273 read_int_eeprom d'27' ; read flag register |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
274 btg EEDATA,.2 ; Toggle flag |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
275 write_int_eeprom d'27' ; write flag register |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
276 movlw d'4' |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
277 movwf menupos ; reset cursor |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
278 call PLED_de_activelist ; show (de)active gaslist |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
279 return |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
280 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
281 divemenu_de_activate2_g4: |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
282 read_int_eeprom d'27' ; read flag register |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
283 btg EEDATA,.3 ; Toggle flag |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
284 write_int_eeprom d'27' ; write flag register |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
285 movlw d'5' |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
286 movwf menupos ; reset cursor |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
287 call PLED_de_activelist ; show (de)active gaslist |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
288 return |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
289 |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
290 divemenu_de_activate2_g5: |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
291 read_int_eeprom d'27' ; read flag register |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
292 btg EEDATA,.4 ; Toggle flag |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
293 write_int_eeprom d'27' ; write flag register |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
294 movlw d'6' |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
295 movwf menupos ; reset cursor |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
296 call PLED_de_activelist ; show (de)active gaslist |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
297 return |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
298 |
0 | 299 divemode_set_xgas: ; Set the extra gas... |
300 bsf display_set_xgas ; Set Flag | |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
301 bcf display_set_gas ; Clear Flag |
0 | 302 call PLED_clear_divemode_menu ; Clear Menu |
303 | |
304 movff char_I_O2_ratio, EEDATA ; Reset Gas6 to current gas | |
305 write_int_eeprom d'24' | |
306 movff char_I_He_ratio, EEDATA | |
307 write_int_eeprom d'25' | |
308 | |
309 call PLED_divemode_set_xgas ; Show mask | |
310 | |
311 movlw d'1' | |
312 movwf menupos ; reset cursor | |
313 call PLED_divemenu_cursor ; update cursor | |
314 return | |
315 | |
316 divemode_menu_simulator: | |
317 bsf menubit ; Enter Divemode-Menu! | |
318 bcf premenu ; clear premenu flag | |
319 bcf switch_right | |
320 bcf switch_left ; Left button pressed! | |
104 | 321 bsf display_set_simulator ; Set Flag |
322 bsf menu3_active ; So "+1" is accessible at all times | |
0 | 323 call PLED_clear_divemode_menu ; Clear Menu |
324 call PLED_divemode_simulator_mask; Show mask | |
325 movlw d'1' | |
326 movwf menupos ; reset cursor | |
327 call PLED_divemenu_cursor ; update cursor | |
328 return | |
329 | |
330 divemode_menu_simulator2: | |
331 dcfsnz menupos,F | |
119 | 332 bra timeout_divemenu2 ; close underwater menu! |
0 | 333 dcfsnz menupos,F |
334 bra divemode_menu_simulator_p1 ; Adjust +1m | |
335 dcfsnz menupos,F | |
336 bra divemode_menu_simulator_m1 ; Adjust -1m | |
337 dcfsnz menupos,F | |
338 bra divemode_menu_simulator_p10 ; Adjust +10m | |
339 dcfsnz menupos,F | |
340 bra divemode_menu_simulator_m10 ; Adjust -10m | |
341 bra timeout_divemenu2 ; quit underwater menu! | |
342 | |
343 divemode_menu_simulator_common: | |
344 call PLED_divemode_simulator_mask ; Redraw Simualtor mask | |
345 | |
119 | 346 ; Check limits (130m and 0m) |
347 movlw LOW d'14000' | |
0 | 348 movwf sub_a+0 |
119 | 349 movlw HIGH d'14000' |
0 | 350 movwf sub_a+1 |
351 movff sim_pressure+0,sub_b+0 | |
352 movff sim_pressure+1,sub_b+1 | |
353 call sub16 ; sub_c = sub_a - sub_b | |
354 btfss neg_flag | |
355 bra divemode_menu_simulator_common2 | |
119 | 356 ; Too deep, limit to 130m |
357 movlw LOW d'14000' | |
0 | 358 movwf sim_pressure+0 |
119 | 359 movlw HIGH d'14000' |
0 | 360 movwf sim_pressure+1 |
361 return | |
362 | |
363 divemode_menu_simulator_common2: | |
364 movlw LOW d'1000' | |
365 movwf sub_a+0 | |
366 movlw HIGH d'1000' | |
367 movwf sub_a+1 | |
368 movff sim_pressure+0,sub_b+0 | |
369 movff sim_pressure+1,sub_b+1 | |
370 call sub16 ; sub_c = sub_a - sub_b | |
371 btfsc neg_flag | |
372 return | |
373 ; Too shallow, limit to 1m | |
374 movlw LOW d'1000' | |
375 movwf sim_pressure+0 | |
376 movlw HIGH d'1000' | |
377 movwf sim_pressure+1 | |
378 return | |
379 | |
380 divemode_menu_simulator_m10: | |
381 movlw LOW d'1000' | |
382 subwf sim_pressure+0,F | |
383 movlw HIGH d'1000' | |
384 subwfb sim_pressure+1,F | |
385 movlw d'5' | |
386 movwf menupos ; reset cursor | |
387 bra divemode_menu_simulator_common | |
388 | |
389 divemode_menu_simulator_p10: | |
390 movlw LOW d'1000' | |
391 addwf sim_pressure+0,F | |
392 movlw HIGH d'1000' | |
393 addwfc sim_pressure+1,F | |
394 movlw d'4' | |
395 movwf menupos ; reset cursor | |
396 bra divemode_menu_simulator_common | |
397 | |
398 divemode_menu_simulator_p1: | |
399 movlw d'100' | |
400 addwf sim_pressure+0,F | |
401 movlw d'0' | |
402 addwfc sim_pressure+1,F | |
403 movlw d'2' | |
404 movwf menupos ; reset cursor | |
405 bra divemode_menu_simulator_common | |
406 | |
407 divemode_menu_simulator_m1: | |
408 movlw d'100' | |
409 subwf sim_pressure+0,F | |
410 movlw d'0' | |
411 subwfb sim_pressure+1,F | |
412 movlw d'3' | |
413 movwf menupos ; reset cursor | |
414 bra divemode_menu_simulator_common | |
415 | |
416 divemenu_see_decoplan: | |
417 bsf display_see_deco ; set flag | |
64 | 418 call PLED_clear_divemode_menu ; Clear Menu |
0 | 419 |
64 | 420 bcf last_ceiling_gf_shown ; Clear flag |
124 | 421 clrf decoplan_page ; Starts on page 0 |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
422 bra divemenu_see_decoplan2_1 |
0 | 423 |
424 divemenu_see_decoplan2: | |
124 | 425 incf decoplan_page,F |
64 | 426 btfsc last_ceiling_gf_shown ; last ceiling shown? |
427 bra divemenu_see_decoplan2_0 ; All done, clear and return | |
428 | |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
429 divemenu_see_decoplan2_1: |
64 | 430 clrf timeout_counter3 ; Clear timeout Divemode menu |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
431 call PLED_decoplan ; Display the new screen |
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
432 return |
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
433 |
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
434 divemenu_see_decoplan2_0: |
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
435 bcf display_see_deco ; clear flag |
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
436 bra timeout_divemenu2 ; quit menu! |
64 | 437 |
0 | 438 divemenu_set_xgas2: |
439 dcfsnz menupos,F | |
440 bra divemenu_set_xgas2_exit ; Use the gas6 configured and exit | |
441 dcfsnz menupos,F | |
442 bra divemenu_set_xgas2_o2plus ; Adjust O2+ | |
443 dcfsnz menupos,F | |
444 bra divemenu_set_xgas2_o2minus ; Adjust O2- | |
445 dcfsnz menupos,F | |
446 bra divemenu_set_xgas2_heplus ; Adjust He+ | |
447 dcfsnz menupos,F | |
448 bra divemenu_set_xgas2_heminus ; Adjust He- | |
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
449 dcfsnz menupos,F |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
450 bra divemenu_de_activate ; Goto (De)active gases underwater list |
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
451 return ; should never be here |
0 | 452 |
453 divemenu_set_xgas2_heminus: | |
454 read_int_eeprom d'25' ; He value | |
455 movff EEDATA,lo | |
456 decf lo,F ; decrease He | |
457 movlw d'255' | |
458 cpfseq lo | |
459 bra divemenu_set_xgas2_heminus2 | |
460 incf lo,F ; limit to min=0 | |
461 divemenu_set_xgas2_heminus2: | |
462 movff lo, EEDATA | |
463 write_int_eeprom d'25' ; He Value | |
464 | |
465 call PLED_divemode_set_xgas ; Redraw menu | |
466 movlw d'5' | |
467 movwf menupos ; reset cursor | |
468 return | |
469 | |
470 divemenu_set_xgas2_heplus: | |
471 read_int_eeprom d'25' ; He value | |
472 movff EEDATA,lo | |
473 incf lo,F ; increase He | |
474 movlw d'101' | |
475 cpfseq lo | |
476 bra divemenu_set_xgas2_heplus2 | |
477 movlw d'4' ; O2 Limit | |
478 movwf lo | |
479 divemenu_set_xgas2_heplus2: ; test if O2+He>100... | |
480 read_int_eeprom d'24' ; O2 value | |
481 movf EEDATA,W | |
482 addwf lo,W ; add He value | |
483 movwf hi ; store in temp | |
484 movlw d'101' | |
485 cpfseq hi ; O2 and He > 100? | |
486 bra divemenu_set_xgas2_heplus3 ; No! | |
487 decf lo,F ; reduce He again = unchanged after operation | |
488 divemenu_set_xgas2_heplus3: ; save current value | |
489 movff lo, EEDATA | |
490 write_int_eeprom d'25' ; He Value | |
491 | |
492 call PLED_divemode_set_xgas ; Redraw menu | |
493 movlw d'4' | |
494 movwf menupos ; reset cursor | |
495 return | |
496 | |
497 divemenu_set_xgas2_o2minus: | |
498 read_int_eeprom d'24' ; O2 value | |
499 movff EEDATA,lo | |
500 decf lo,F ; decrease O2 | |
501 movlw d'3' ; Limit-1 | |
502 cpfseq lo | |
503 bra divemenu_set_xgas2_o2minus2 | |
504 incf lo,F ; limit to min=9 | |
505 divemenu_set_xgas2_o2minus2: | |
506 movff lo, EEDATA | |
507 write_int_eeprom d'24' ; O2 Value | |
508 | |
509 call PLED_divemode_set_xgas ; Redraw menu | |
510 movlw d'3' | |
511 movwf menupos ; reset cursor | |
512 return | |
513 | |
514 divemenu_set_xgas2_o2plus: | |
515 read_int_eeprom d'24' ; O2 value | |
516 movff EEDATA,lo | |
517 incf lo,F ; increase O2 | |
518 movlw d'101' | |
519 cpfseq lo | |
520 bra divemenu_set_xgas2_o2plus2 | |
521 movlw d'5' ; O2 limit | |
522 movwf lo | |
523 divemenu_set_xgas2_o2plus2: ; test if O2+He>100... | |
524 read_int_eeprom d'25' ; He value | |
525 movf EEDATA,W | |
526 addwf lo,W ; add O2 value | |
527 movwf hi ; store in temp | |
528 movlw d'101' | |
529 cpfseq hi ; O2 and He > 100? | |
530 bra divemenu_set_xgas2_o2plus3 ; No! | |
531 decf lo,F ; reduce O2 again = unchanged after operation | |
532 divemenu_set_xgas2_o2plus3: ; save current value | |
533 movff lo, EEDATA | |
534 write_int_eeprom d'24' ; O2 Value | |
535 | |
536 call PLED_divemode_set_xgas ; Redraw menu | |
537 movlw d'2' | |
538 movwf menupos ; reset cursor | |
539 return | |
540 | |
541 divemenu_set_xgas2_exit: | |
542 read_int_eeprom d'25' ; Read He ratio | |
543 movff EEDATA,char_I_He_ratio ; And copy into hold register | |
544 | |
545 read_int_eeprom d'24' ; Read O2 ratio | |
546 movff EEDATA, char_I_O2_ratio ; O2 ratio | |
547 movff char_I_He_ratio, wait_temp ; copy into bank1 register | |
548 bsf STATUS,C ; | |
549 movlw d'100' ; 100% | |
550 subfwb wait_temp,W ; minus He | |
551 subfwb EEDATA,F ; minus O2 | |
552 movff EEDATA, char_I_N2_ratio ; = N2! | |
553 bsf manual_gas_changed ; set event flag | |
554 bsf event_occured ; set global event flag | |
99 | 555 bsf is_bailout ;=1: CC mode, but bailout active! |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
556 clrf lo ; clear Setpoint, PLED_const_ppO2_value now displayes "Bail" |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
557 movff lo,char_I_const_ppO2 |
0 | 558 bra timeout_divemenu2 ; quit underwater menu! |
559 | |
560 divemenu_set_gas: | |
561 btfsc FLAG_const_ppO2_mode ; in ppO2 mode? | |
17 | 562 bra divemenu_set_setpoint ; Yes, display SetPoint list |
0 | 563 |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
564 divemenu_set_gas_2: |
0 | 565 bsf display_set_gas ; set flag |
566 call PLED_clear_divemode_menu ; Clear Menu | |
567 call PLED_gas_list ; Display all 5 gases | |
568 movlw d'1' | |
569 movwf menupos ; reset cursor | |
570 call PLED_divemenu_cursor ; update cursor | |
571 return | |
572 | |
573 divemenu_set_setpoint: | |
574 bsf display_set_setpoint ; set flag | |
575 bsf display_set_gas ; set flag | |
576 | |
577 call PLED_clear_divemode_menu ; Clear Menu | |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
578 call PLED_splist_start ; Display SetPoints |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
579 DISPLAYTEXT d'137' ; Bailout (as a sub-menu) |
0 | 580 movlw d'1' |
581 movwf menupos ; reset cursor | |
582 call PLED_divemenu_cursor ; update cursor | |
583 return | |
584 | |
585 | |
586 divemenu_set_gas2: | |
587 btfsc select_bailoutgas ; Are we in the Bailout list? | |
588 bra divemenu_set_gas2a ; Yes, choose gas | |
589 | |
590 btfss FLAG_const_ppO2_mode ; are we in ppO2 mode? | |
591 bra divemenu_set_gas2a ; no, choose gas | |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
592 ; Yes, so select SP 1-3 |
3 | 593 bcf is_bailout ;=1: CC mode, but bailout active! |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
594 call PLED_show_ppO2_clear ; Clear ppO2 value |
3 | 595 |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
596 divemenu_set_gas1: |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
597 movlw d'4' |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
598 cpfseq menupos ; At the "Bailout" position? |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
599 bra divemenu_set_gas1b ; No, select SetPoint 1-3 |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
600 bsf select_bailoutgas ; Set Flag |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
601 bcf display_set_setpoint ; Clear Flag |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
602 bra divemenu_set_gas_2 ; Configure the extra gas / Select Bailout |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
603 |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
604 divemenu_set_gas1b: |
0 | 605 movlw d'35' ; offset in memory |
606 addwf menupos,W ; add SP number 0-2 | |
607 movwf EEADR | |
608 call read_eeprom ; Read SetPoint | |
609 movff EEDATA, char_I_const_ppO2 ; Use SetPoint | |
4 | 610 movff EEDATA, ppO2_setpoint_store ; Store also in this byte... |
0 | 611 |
612 divemenu_set_gas1a: | |
613 bcf display_set_setpoint ; Clear Display Flag | |
614 bsf stored_gas_changed ; set event flag | |
615 bsf event_occured ; set global event flag | |
616 bra timeout_divemenu2 ; quit menu! | |
617 | |
618 divemenu_set_gas2a: | |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
619 movlw d'6' |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
620 cpfseq menupos ; At the "Gas 6.." position? |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
621 bra divemenu_set_gas2b ; No, select Gas1-5 (Stored in Menupos) |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
622 bra divemode_set_xgas ; Configure the extra gas |
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
623 divemenu_set_gas2b: |
3 | 624 bsf is_bailout ;=1: CC mode, but bailout active! |
0 | 625 clrf lo ; clear Setpoint, PLED_const_ppO2_value now displayes "Bail" |
626 movff lo,char_I_const_ppO2 | |
627 | |
628 bcf display_set_gas ; clear flag | |
629 movff menupos,active_gas ; copy into active gas register | |
630 decf menupos,W ; # of selected gas (0-4) | |
631 mullw d'4' ; times 4... | |
632 movf PRODL,W ; | |
633 addlw d'7' ; +7 = address for He ratio | |
634 movwf EEADR | |
635 call read_eeprom ; Read He ratio | |
636 movff EEDATA,char_I_He_ratio ; And copy into hold register | |
637 | |
638 decf menupos,W ; # of selected gas (0-4) | |
639 mullw d'4' ; times 4... | |
640 movf PRODL,W ; | |
641 addlw d'6' ; +6 = address for O2 ratio | |
642 movwf EEADR | |
643 call read_eeprom ; Read O2 ratio | |
644 movff EEDATA, char_I_O2_ratio ; O2 ratio | |
645 movff char_I_He_ratio, wait_temp ; copy into bank1 register | |
646 bsf STATUS,C ; | |
647 movlw d'100' ; 100% | |
648 subfwb wait_temp,W ; minus He | |
649 subfwb EEDATA,F ; minus O2 | |
650 movff EEDATA, char_I_N2_ratio ; = N2! | |
651 bsf stored_gas_changed ; set event flag | |
652 bsf event_occured ; set global event flag | |
653 bra timeout_divemenu2 ; quit menu! | |
654 | |
655 timeout_divemenu: | |
656 btfss menubit ; is the Dive mode menu displayed? | |
657 return ; No | |
658 | |
659 btfsc display_set_simulator ; Is the Simulator Mask active? | |
660 bra timeout_divemenu6 ; Yes, update Simulator mask | |
661 | |
662 btfss display_see_deco ; Is the decoplan active? | |
663 bra timeout_divemenu1 ; No, skip updating the decoplan | |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
664 bra timeout_divemenu3 ; Yes... |
0 | 665 |
666 timeout_divemenu1: | |
667 incf timeout_counter3,F ; increase timeout_counter3 | |
668 GETCUSTOM8 d'10' ; loads timeout_divemenu into WREG | |
669 cpfsgt timeout_counter3 ; ... longer then timeout_divemenu | |
670 return ; No! | |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
671 |
0 | 672 timeout_divemenu2: ; quit divemode menu |
673 ; Restore some outputs | |
124 | 674 clrf decoplan_page ; Page 0-1 of deco list |
119 | 675 call PLED_clear_divemode_menu; Clear dive mode menu |
115 | 676 |
677 btfsc FLAG_apnoe_mode ; Ignore in Apnoe mode | |
678 bra timeout_divemenu2a ; skip! | |
679 btfsc gauge_mode ; Ignore in Gauge mode | |
680 bra timeout_divemenu2a ; skip! | |
681 | |
0 | 682 btfsc dekostop_active |
66 | 683 call PLED_display_deko_mask ; clear nostop time, display decodata |
0 | 684 btfss dekostop_active |
66 | 685 call PLED_display_ndl_mask ; Clear deco data, display nostop time |
0 | 686 |
687 timeout_divemenu2a: | |
688 bcf menubit | |
689 bcf premenu ; Yes, clear flags and menu, display dive time and mask again | |
66 | 690 call PLED_active_gas_divemode; Display gas, if required |
0 | 691 call PLED_divemode_mask ; Display mask |
692 call PLED_divemins ; Display (new) divetime! | |
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
693 call customview_mask ; Redraw current customview mask |
0 | 694 clrf timeout_counter3 ; Also clear timeout |
695 bcf display_see_deco ; clear all display flags | |
696 bcf display_set_gas | |
697 bcf display_set_xgas | |
698 bcf display_set_setpoint | |
699 bcf display_set_simulator | |
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
700 bcf display_set_active |
0 | 701 bcf switch_left ; and debounce switches |
702 bcf switch_right | |
703 return | |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
704 |
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
705 ; Re-Draw current page of decoplan (may have more stops) |
0 | 706 timeout_divemenu3: |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
707 movff char_O_deco_status,WREG ; Get last computation state (BANK safe) |
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
708 iorwf WREG ; Is it zero ? |
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
709 btfsc STATUS,Z |
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
710 call PLED_decoplan ; Yes: new data available. |
0 | 711 bra timeout_divemenu1 ; Check timeout |
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
712 |
0 | 713 timeout_divemenu6: |
714 ; Update Simulator Mask | |
715 call PLED_divemode_simulator_mask; Show mask | |
716 call PLED_divemenu_cursor ; update cursor | |
717 bra timeout_divemenu1 ; Check timeout |