Mercurial > public > mk2
annotate code_part1/OSTC_code_asm_part1/divemode_menu.asm @ 258:abbf9a2c2c48
Small p2_deco optimizations:
Removed pres_tissue_limit[] and sim_pres_tissue_limit[] (Unused).
Separated read_buhlmann_times() and read_buhlmann_coefficients().
| author | JeanDo |
|---|---|
| date | Sun, 10 Apr 2011 14:17:53 +0200 |
| parents | 3dbeacf42e9e |
| children | a728b4a1b660 |
| 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: |
| 221 | 255 btg sorted_gaslist_active,0 ; Toggle flag |
|
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
256 movlw d'2' |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
257 movwf menupos ; reset cursor |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
258 call PLED_de_activelist ; show (de)active gaslist |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
259 return |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
260 |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
261 divemenu_de_activate2_g2: |
| 221 | 262 btg sorted_gaslist_active,1 ; Toggle flag |
|
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
263 movlw d'3' |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
264 movwf menupos ; reset cursor |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
265 call PLED_de_activelist ; show (de)active gaslist |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
266 return |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
267 |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
268 divemenu_de_activate2_g3: |
| 221 | 269 btg sorted_gaslist_active,2 ; Toggle flag |
|
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
270 movlw d'4' |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
271 movwf menupos ; reset cursor |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
272 call PLED_de_activelist ; show (de)active gaslist |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
273 return |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
274 |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
275 divemenu_de_activate2_g4: |
| 221 | 276 btg sorted_gaslist_active,3 ; Toggle flag |
|
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
277 movlw d'5' |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
278 movwf menupos ; reset cursor |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
279 call PLED_de_activelist ; show (de)active gaslist |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
280 return |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
281 |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
282 divemenu_de_activate2_g5: |
| 221 | 283 btg sorted_gaslist_active,4 ; Toggle flag |
|
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
284 movlw d'6' |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
285 movwf menupos ; reset cursor |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
286 call PLED_de_activelist ; show (de)active gaslist |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
287 return |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
288 |
| 0 | 289 divemode_set_xgas: ; Set the extra gas... |
| 290 bsf display_set_xgas ; Set Flag | |
|
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
291 bcf display_set_gas ; Clear Flag |
| 0 | 292 call PLED_clear_divemode_menu ; Clear Menu |
| 293 | |
| 294 movff char_I_O2_ratio, EEDATA ; Reset Gas6 to current gas | |
| 295 write_int_eeprom d'24' | |
| 296 movff char_I_He_ratio, EEDATA | |
| 297 write_int_eeprom d'25' | |
| 298 | |
| 299 call PLED_divemode_set_xgas ; Show mask | |
| 300 | |
| 301 movlw d'1' | |
| 302 movwf menupos ; reset cursor | |
| 303 call PLED_divemenu_cursor ; update cursor | |
| 304 return | |
| 305 | |
| 306 divemode_menu_simulator: | |
| 307 bsf menubit ; Enter Divemode-Menu! | |
| 308 bcf premenu ; clear premenu flag | |
| 309 bcf switch_right | |
| 310 bcf switch_left ; Left button pressed! | |
| 104 | 311 bsf display_set_simulator ; Set Flag |
| 312 bsf menu3_active ; So "+1" is accessible at all times | |
| 0 | 313 call PLED_clear_divemode_menu ; Clear Menu |
| 314 call PLED_divemode_simulator_mask; Show mask | |
| 315 movlw d'1' | |
| 316 movwf menupos ; reset cursor | |
| 317 call PLED_divemenu_cursor ; update cursor | |
| 318 return | |
| 319 | |
| 320 divemode_menu_simulator2: | |
| 321 dcfsnz menupos,F | |
| 119 | 322 bra timeout_divemenu2 ; close underwater menu! |
| 0 | 323 dcfsnz menupos,F |
| 324 bra divemode_menu_simulator_p1 ; Adjust +1m | |
| 325 dcfsnz menupos,F | |
| 326 bra divemode_menu_simulator_m1 ; Adjust -1m | |
| 327 dcfsnz menupos,F | |
| 328 bra divemode_menu_simulator_p10 ; Adjust +10m | |
| 329 dcfsnz menupos,F | |
| 330 bra divemode_menu_simulator_m10 ; Adjust -10m | |
| 331 bra timeout_divemenu2 ; quit underwater menu! | |
| 332 | |
| 333 divemode_menu_simulator_common: | |
| 334 call PLED_divemode_simulator_mask ; Redraw Simualtor mask | |
| 335 | |
| 119 | 336 ; Check limits (130m and 0m) |
| 236 | 337 movlw LOW d'14000' ; Compare to 14bar=14000mbar (130m). |
| 338 subwf sim_pressure+0,W | |
| 119 | 339 movlw HIGH d'14000' |
| 236 | 340 subwfb sim_pressure+1,W |
| 341 bnc divemode_menu_simulator_common2 ; No-carry = borrow = not deeper | |
| 342 | |
| 119 | 343 ; Too deep, limit to 130m |
| 344 movlw LOW d'14000' | |
| 0 | 345 movwf sim_pressure+0 |
| 119 | 346 movlw HIGH d'14000' |
| 0 | 347 movwf sim_pressure+1 |
| 348 return | |
| 349 | |
| 350 divemode_menu_simulator_common2: | |
| 236 | 351 movlw LOW d'1000' ; Compare to 1bar == 0m == 1000 mbar. |
| 352 subwf sim_pressure+0,W | |
| 0 | 353 movlw HIGH d'1000' |
| 236 | 354 subwfb sim_pressure+1,W |
| 355 btfsc STATUS,C ; No-carry = borrow = not deeper. | |
| 356 return ; Deeper than 0m == Ok. | |
| 357 | |
| 0 | 358 ; Too shallow, limit to 1m |
| 359 movlw LOW d'1000' | |
| 360 movwf sim_pressure+0 | |
| 361 movlw HIGH d'1000' | |
| 362 movwf sim_pressure+1 | |
| 363 return | |
| 364 | |
| 365 divemode_menu_simulator_m10: | |
| 366 movlw LOW d'1000' | |
| 367 subwf sim_pressure+0,F | |
| 368 movlw HIGH d'1000' | |
| 369 subwfb sim_pressure+1,F | |
| 370 movlw d'5' | |
| 371 movwf menupos ; reset cursor | |
| 372 bra divemode_menu_simulator_common | |
| 373 | |
| 374 divemode_menu_simulator_p10: | |
| 375 movlw LOW d'1000' | |
| 376 addwf sim_pressure+0,F | |
| 377 movlw HIGH d'1000' | |
| 378 addwfc sim_pressure+1,F | |
| 236 | 379 |
| 0 | 380 movlw d'4' |
| 381 movwf menupos ; reset cursor | |
| 382 bra divemode_menu_simulator_common | |
| 383 | |
| 384 divemode_menu_simulator_p1: | |
| 385 movlw d'100' | |
| 386 addwf sim_pressure+0,F | |
| 387 movlw d'0' | |
| 388 addwfc sim_pressure+1,F | |
| 389 movlw d'2' | |
| 390 movwf menupos ; reset cursor | |
| 391 bra divemode_menu_simulator_common | |
| 392 | |
| 393 divemode_menu_simulator_m1: | |
| 394 movlw d'100' | |
| 395 subwf sim_pressure+0,F | |
| 396 movlw d'0' | |
| 397 subwfb sim_pressure+1,F | |
| 398 movlw d'3' | |
| 399 movwf menupos ; reset cursor | |
| 400 bra divemode_menu_simulator_common | |
| 401 | |
| 402 divemenu_see_decoplan: | |
| 403 bsf display_see_deco ; set flag | |
| 64 | 404 call PLED_clear_divemode_menu ; Clear Menu |
| 0 | 405 |
| 64 | 406 bcf last_ceiling_gf_shown ; Clear flag |
| 124 | 407 clrf decoplan_page ; Starts on page 0 |
|
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
408 bra divemenu_see_decoplan2_1 |
| 0 | 409 |
| 410 divemenu_see_decoplan2: | |
| 124 | 411 incf decoplan_page,F |
| 64 | 412 btfsc last_ceiling_gf_shown ; last ceiling shown? |
| 413 bra divemenu_see_decoplan2_0 ; All done, clear and return | |
| 414 | |
|
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
415 divemenu_see_decoplan2_1: |
| 64 | 416 clrf timeout_counter3 ; Clear timeout Divemode menu |
|
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
417 call PLED_decoplan ; Display the new screen |
|
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
418 return |
|
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
419 |
|
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
420 divemenu_see_decoplan2_0: |
|
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
421 bcf display_see_deco ; clear flag |
|
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
422 bra timeout_divemenu2 ; quit menu! |
| 64 | 423 |
| 0 | 424 divemenu_set_xgas2: |
| 425 dcfsnz menupos,F | |
| 426 bra divemenu_set_xgas2_exit ; Use the gas6 configured and exit | |
| 427 dcfsnz menupos,F | |
| 428 bra divemenu_set_xgas2_o2plus ; Adjust O2+ | |
| 429 dcfsnz menupos,F | |
| 430 bra divemenu_set_xgas2_o2minus ; Adjust O2- | |
| 431 dcfsnz menupos,F | |
| 432 bra divemenu_set_xgas2_heplus ; Adjust He+ | |
| 433 dcfsnz menupos,F | |
| 434 bra divemenu_set_xgas2_heminus ; Adjust He- | |
|
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
435 dcfsnz menupos,F |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
436 bra divemenu_de_activate ; Goto (De)active gases underwater list |
|
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
437 return ; should never be here |
| 0 | 438 |
| 439 divemenu_set_xgas2_heminus: | |
| 440 read_int_eeprom d'25' ; He value | |
| 441 movff EEDATA,lo | |
| 442 decf lo,F ; decrease He | |
| 443 movlw d'255' | |
| 444 cpfseq lo | |
| 445 bra divemenu_set_xgas2_heminus2 | |
| 446 incf lo,F ; limit to min=0 | |
| 447 divemenu_set_xgas2_heminus2: | |
| 448 movff lo, EEDATA | |
| 449 write_int_eeprom d'25' ; He Value | |
| 450 | |
| 451 call PLED_divemode_set_xgas ; Redraw menu | |
| 452 movlw d'5' | |
| 453 movwf menupos ; reset cursor | |
| 454 return | |
| 455 | |
| 456 divemenu_set_xgas2_heplus: | |
| 457 read_int_eeprom d'25' ; He value | |
| 458 movff EEDATA,lo | |
| 459 incf lo,F ; increase He | |
| 460 movlw d'101' | |
| 461 cpfseq lo | |
| 462 bra divemenu_set_xgas2_heplus2 | |
| 463 movlw d'4' ; O2 Limit | |
| 464 movwf lo | |
| 465 divemenu_set_xgas2_heplus2: ; test if O2+He>100... | |
| 466 read_int_eeprom d'24' ; O2 value | |
| 467 movf EEDATA,W | |
| 468 addwf lo,W ; add He value | |
| 469 movwf hi ; store in temp | |
| 470 movlw d'101' | |
| 471 cpfseq hi ; O2 and He > 100? | |
| 472 bra divemenu_set_xgas2_heplus3 ; No! | |
| 473 decf lo,F ; reduce He again = unchanged after operation | |
| 474 divemenu_set_xgas2_heplus3: ; save current value | |
| 475 movff lo, EEDATA | |
| 476 write_int_eeprom d'25' ; He Value | |
| 477 | |
| 478 call PLED_divemode_set_xgas ; Redraw menu | |
| 479 movlw d'4' | |
| 480 movwf menupos ; reset cursor | |
| 481 return | |
| 482 | |
| 483 divemenu_set_xgas2_o2minus: | |
| 484 read_int_eeprom d'24' ; O2 value | |
| 485 movff EEDATA,lo | |
| 486 decf lo,F ; decrease O2 | |
| 487 movlw d'3' ; Limit-1 | |
| 488 cpfseq lo | |
| 489 bra divemenu_set_xgas2_o2minus2 | |
| 490 incf lo,F ; limit to min=9 | |
| 491 divemenu_set_xgas2_o2minus2: | |
| 492 movff lo, EEDATA | |
| 493 write_int_eeprom d'24' ; O2 Value | |
| 494 | |
| 495 call PLED_divemode_set_xgas ; Redraw menu | |
| 496 movlw d'3' | |
| 497 movwf menupos ; reset cursor | |
| 498 return | |
| 499 | |
| 500 divemenu_set_xgas2_o2plus: | |
| 501 read_int_eeprom d'24' ; O2 value | |
| 502 movff EEDATA,lo | |
| 503 incf lo,F ; increase O2 | |
| 504 movlw d'101' | |
| 505 cpfseq lo | |
| 506 bra divemenu_set_xgas2_o2plus2 | |
| 507 movlw d'5' ; O2 limit | |
| 508 movwf lo | |
| 509 divemenu_set_xgas2_o2plus2: ; test if O2+He>100... | |
| 510 read_int_eeprom d'25' ; He value | |
| 511 movf EEDATA,W | |
| 512 addwf lo,W ; add O2 value | |
| 513 movwf hi ; store in temp | |
| 514 movlw d'101' | |
| 515 cpfseq hi ; O2 and He > 100? | |
| 516 bra divemenu_set_xgas2_o2plus3 ; No! | |
| 517 decf lo,F ; reduce O2 again = unchanged after operation | |
| 518 divemenu_set_xgas2_o2plus3: ; save current value | |
| 519 movff lo, EEDATA | |
| 520 write_int_eeprom d'24' ; O2 Value | |
| 521 | |
| 522 call PLED_divemode_set_xgas ; Redraw menu | |
| 523 movlw d'2' | |
| 524 movwf menupos ; reset cursor | |
| 525 return | |
| 526 | |
| 527 divemenu_set_xgas2_exit: | |
| 528 read_int_eeprom d'25' ; Read He ratio | |
| 529 movff EEDATA,char_I_He_ratio ; And copy into hold register | |
| 530 | |
| 531 read_int_eeprom d'24' ; Read O2 ratio | |
| 532 movff EEDATA, char_I_O2_ratio ; O2 ratio | |
| 533 movff char_I_He_ratio, wait_temp ; copy into bank1 register | |
| 534 bsf STATUS,C ; | |
| 535 movlw d'100' ; 100% | |
| 536 subfwb wait_temp,W ; minus He | |
| 537 subfwb EEDATA,F ; minus O2 | |
| 538 movff EEDATA, char_I_N2_ratio ; = N2! | |
| 539 bsf manual_gas_changed ; set event flag | |
| 540 bsf event_occured ; set global event flag | |
| 99 | 541 bsf is_bailout ;=1: CC mode, but bailout active! |
|
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
542 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
|
543 movff lo,char_I_const_ppO2 |
| 0 | 544 bra timeout_divemenu2 ; quit underwater menu! |
| 545 | |
| 546 divemenu_set_gas: | |
| 547 btfsc FLAG_const_ppO2_mode ; in ppO2 mode? | |
| 17 | 548 bra divemenu_set_setpoint ; Yes, display SetPoint list |
| 0 | 549 |
|
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
550 divemenu_set_gas_2: |
| 0 | 551 bsf display_set_gas ; set flag |
| 552 call PLED_clear_divemode_menu ; Clear Menu | |
| 553 call PLED_gas_list ; Display all 5 gases | |
| 554 movlw d'1' | |
| 555 movwf menupos ; reset cursor | |
| 556 call PLED_divemenu_cursor ; update cursor | |
| 557 return | |
| 558 | |
| 559 divemenu_set_setpoint: | |
| 560 bsf display_set_setpoint ; set flag | |
| 561 bsf display_set_gas ; set flag | |
| 562 | |
| 563 call PLED_clear_divemode_menu ; Clear Menu | |
|
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
564 call PLED_splist_start ; Display SetPoints |
|
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
565 DISPLAYTEXT d'137' ; Bailout (as a sub-menu) |
| 0 | 566 movlw d'1' |
| 567 movwf menupos ; reset cursor | |
| 568 call PLED_divemenu_cursor ; update cursor | |
| 569 return | |
| 570 | |
| 571 | |
| 572 divemenu_set_gas2: | |
| 573 btfsc select_bailoutgas ; Are we in the Bailout list? | |
| 574 bra divemenu_set_gas2a ; Yes, choose gas | |
| 575 | |
| 576 btfss FLAG_const_ppO2_mode ; are we in ppO2 mode? | |
| 577 bra divemenu_set_gas2a ; no, choose gas | |
|
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
578 ; Yes, so select SP 1-3 |
| 3 | 579 bcf is_bailout ;=1: CC mode, but bailout active! |
|
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
580 call PLED_show_ppO2_clear ; Clear ppO2 value |
| 3 | 581 |
|
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
582 divemenu_set_gas1: |
|
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
583 movlw d'4' |
|
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
584 cpfseq menupos ; At the "Bailout" position? |
|
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
585 bra divemenu_set_gas1b ; No, select SetPoint 1-3 |
|
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
586 bsf select_bailoutgas ; Set Flag |
|
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
587 bcf display_set_setpoint ; Clear Flag |
|
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
588 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
|
589 |
|
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
590 divemenu_set_gas1b: |
| 0 | 591 movlw d'35' ; offset in memory |
| 592 addwf menupos,W ; add SP number 0-2 | |
| 593 movwf EEADR | |
| 594 call read_eeprom ; Read SetPoint | |
| 595 movff EEDATA, char_I_const_ppO2 ; Use SetPoint | |
| 4 | 596 movff EEDATA, ppO2_setpoint_store ; Store also in this byte... |
| 0 | 597 |
| 598 divemenu_set_gas1a: | |
| 599 bcf display_set_setpoint ; Clear Display Flag | |
| 600 bsf stored_gas_changed ; set event flag | |
| 601 bsf event_occured ; set global event flag | |
| 602 bra timeout_divemenu2 ; quit menu! | |
| 603 | |
| 604 divemenu_set_gas2a: | |
|
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
605 movlw d'6' |
|
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
606 cpfseq menupos ; At the "Gas 6.." position? |
|
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
607 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
|
608 bra divemode_set_xgas ; Configure the extra gas |
|
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
609 divemenu_set_gas2b: |
| 3 | 610 bsf is_bailout ;=1: CC mode, but bailout active! |
| 0 | 611 clrf lo ; clear Setpoint, PLED_const_ppO2_value now displayes "Bail" |
| 612 movff lo,char_I_const_ppO2 | |
| 613 | |
| 614 bcf display_set_gas ; clear flag | |
| 615 movff menupos,active_gas ; copy into active gas register | |
| 616 decf menupos,W ; # of selected gas (0-4) | |
| 617 mullw d'4' ; times 4... | |
| 618 movf PRODL,W ; | |
| 619 addlw d'7' ; +7 = address for He ratio | |
| 620 movwf EEADR | |
| 621 call read_eeprom ; Read He ratio | |
| 622 movff EEDATA,char_I_He_ratio ; And copy into hold register | |
| 623 | |
| 624 decf menupos,W ; # of selected gas (0-4) | |
| 625 mullw d'4' ; times 4... | |
| 626 movf PRODL,W ; | |
| 627 addlw d'6' ; +6 = address for O2 ratio | |
| 628 movwf EEADR | |
| 629 call read_eeprom ; Read O2 ratio | |
| 630 movff EEDATA, char_I_O2_ratio ; O2 ratio | |
| 631 movff char_I_He_ratio, wait_temp ; copy into bank1 register | |
| 632 bsf STATUS,C ; | |
| 633 movlw d'100' ; 100% | |
| 634 subfwb wait_temp,W ; minus He | |
| 635 subfwb EEDATA,F ; minus O2 | |
| 636 movff EEDATA, char_I_N2_ratio ; = N2! | |
| 637 bsf stored_gas_changed ; set event flag | |
| 638 bsf event_occured ; set global event flag | |
| 639 bra timeout_divemenu2 ; quit menu! | |
| 640 | |
| 641 timeout_divemenu: | |
| 642 btfss menubit ; is the Dive mode menu displayed? | |
| 643 return ; No | |
| 644 | |
| 645 btfsc display_set_simulator ; Is the Simulator Mask active? | |
| 646 bra timeout_divemenu6 ; Yes, update Simulator mask | |
| 647 | |
| 648 btfss display_see_deco ; Is the decoplan active? | |
| 649 bra timeout_divemenu1 ; No, skip updating the decoplan | |
|
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
650 bra timeout_divemenu3 ; Yes... |
| 0 | 651 |
| 652 timeout_divemenu1: | |
| 653 incf timeout_counter3,F ; increase timeout_counter3 | |
| 654 GETCUSTOM8 d'10' ; loads timeout_divemenu into WREG | |
| 655 cpfsgt timeout_counter3 ; ... longer then timeout_divemenu | |
| 656 return ; No! | |
|
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
657 |
| 0 | 658 timeout_divemenu2: ; quit divemode menu |
| 659 ; Restore some outputs | |
| 124 | 660 clrf decoplan_page ; Page 0-1 of deco list |
| 119 | 661 call PLED_clear_divemode_menu; Clear dive mode menu |
| 115 | 662 |
| 663 btfsc FLAG_apnoe_mode ; Ignore in Apnoe mode | |
| 664 bra timeout_divemenu2a ; skip! | |
| 665 btfsc gauge_mode ; Ignore in Gauge mode | |
| 666 bra timeout_divemenu2a ; skip! | |
| 667 | |
| 0 | 668 btfsc dekostop_active |
| 66 | 669 call PLED_display_deko_mask ; clear nostop time, display decodata |
| 0 | 670 btfss dekostop_active |
| 66 | 671 call PLED_display_ndl_mask ; Clear deco data, display nostop time |
| 0 | 672 |
| 673 timeout_divemenu2a: | |
| 674 bcf menubit | |
| 675 bcf premenu ; Yes, clear flags and menu, display dive time and mask again | |
| 66 | 676 call PLED_active_gas_divemode; Display gas, if required |
| 0 | 677 call PLED_divemode_mask ; Display mask |
| 678 call PLED_divemins ; Display (new) divetime! | |
|
98
6f8e3a08011e
1.73beta rc1 (Added new customview for divemode)
heinrichsweikamp
parents:
87
diff
changeset
|
679 call customview_mask ; Redraw current customview mask |
| 0 | 680 clrf timeout_counter3 ; Also clear timeout |
| 681 bcf display_see_deco ; clear all display flags | |
| 682 bcf display_set_gas | |
| 683 bcf display_set_xgas | |
| 684 bcf display_set_setpoint | |
| 685 bcf display_set_simulator | |
|
219
b6dd54b3567c
NEW: De/Activate gases underwater (Gaslist -> Gas6.. -> Actve?)
heinrichsweikamp
parents:
169
diff
changeset
|
686 bcf display_set_active |
| 0 | 687 bcf switch_left ; and debounce switches |
| 688 bcf switch_right | |
| 689 return | |
|
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
690 |
|
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
691 ; Re-Draw current page of decoplan (may have more stops) |
| 0 | 692 timeout_divemenu3: |
|
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
693 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
|
694 iorwf WREG ; Is it zero ? |
|
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
695 btfsc STATUS,Z |
|
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
696 call PLED_decoplan ; Yes: new data available. |
| 0 | 697 bra timeout_divemenu1 ; Check timeout |
|
169
e26f49674956
Merge decoplan display for both GF and Buhlmann models.
JeanDo
parents:
124
diff
changeset
|
698 |
| 0 | 699 timeout_divemenu6: |
| 700 ; Update Simulator Mask | |
| 701 call PLED_divemode_simulator_mask; Show mask | |
| 702 call PLED_divemenu_cursor ; update cursor | |
| 703 bra timeout_divemenu1 ; Check timeout |
