Mercurial > public > hwos_code
annotate src/divemenu_tree.asm @ 541:ad7dc231c180
2.23beta release
| author | heinrichsweikamp |
|---|---|
| date | Fri, 01 Sep 2017 13:18:38 +0200 |
| parents | f6a3e820a798 |
| children | b7eb98dbd800 |
| rev | line source |
|---|---|
| 0 | 1 ;============================================================================= |
| 2 ; | |
| 3 ; File divemenu_tree.asm | |
| 4 ; | |
| 275 | 5 ; OSTC dive mode menu |
| 0 | 6 ; |
| 7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. | |
| 8 ;============================================================================= | |
| 9 ; HISTORY | |
| 10 ; 2013-02-02 : [mH] Made out of menu_tree.asm | |
| 11 | |
| 275 | 12 #include "hwos.inc" ; Mandatory header |
| 0 | 13 #include "menu_processor.inc" |
| 14 #include "shared_definitions.h" ; Mailbox from/to p2_deco.c | |
| 15 #include "tft_outputs.inc" | |
| 16 #include "customview.inc" | |
| 17 #include "strings.inc" | |
| 195 | 18 #include "calibrate.inc" |
| 0 | 19 |
| 20 divegui CODE | |
| 21 ;============================================================================= | |
| 22 ; Main Menu | |
| 23 global do_main_divemenu | |
| 24 do_main_divemenu: | |
| 25 call menu_processor_reset ; restart from first icon. | |
| 26 | |
| 27 do_continue_main_divemenu: | |
| 28 call menu_processor_pop ; drop exit line. | |
| 29 call menu_processor_pop ; drop exit line. | |
| 30 | |
| 31 btfsc FLAG_ccr_mode | |
| 32 bra main_divemenu_ccr ; CCR Menu | |
| 485 | 33 |
| 34 btfsc FLAG_pscr_mode | |
| 35 bra main_divemenu_ccr ; Proceeds to PSCR menu then... | |
| 36 | |
| 37 bcf ccr_diluent_setup ; For OC gases | |
| 0 | 38 bcf is_bailout_menu |
| 39 movlw .1 | |
| 40 movwf menupos ; Set to first option in divemode menu | |
|
401
7be43d886bb1
Logbook marker can be set in dive mode menu (OC only)
heinrichsweikamp
parents:
377
diff
changeset
|
41 MENU_BEGIN tMainMenu, .5 |
| 0 | 42 MENU_CALL tDivemenu_Gaslist, do_divemode_gaslist |
| 437 | 43 MENU_CALL tDivemenu_ResetAvg, do_divemode_resetavg |
| 0 | 44 MENU_CALL tDivemenu_ToggleGF, do_divemode_togglegf |
|
401
7be43d886bb1
Logbook marker can be set in dive mode menu (OC only)
heinrichsweikamp
parents:
377
diff
changeset
|
45 MENU_CALL tDivemenu_Marker, do_set_marker |
| 0 | 46 MENU_CALL tExit, do_exit_divemode_menu |
| 47 MENU_END | |
| 48 | |
|
401
7be43d886bb1
Logbook marker can be set in dive mode menu (OC only)
heinrichsweikamp
parents:
377
diff
changeset
|
49 do_set_marker: |
|
7be43d886bb1
Logbook marker can be set in dive mode menu (OC only)
heinrichsweikamp
parents:
377
diff
changeset
|
50 movlw d'6' ; Type of Alarm (Manual Marker) |
|
7be43d886bb1
Logbook marker can be set in dive mode menu (OC only)
heinrichsweikamp
parents:
377
diff
changeset
|
51 movwf AlarmType ; Copy to Alarm Register |
|
7be43d886bb1
Logbook marker can be set in dive mode menu (OC only)
heinrichsweikamp
parents:
377
diff
changeset
|
52 bsf event_occured ; Set Event Flag |
|
7be43d886bb1
Logbook marker can be set in dive mode menu (OC only)
heinrichsweikamp
parents:
377
diff
changeset
|
53 bra do_exit_divemode_menu ; And exit |
|
7be43d886bb1
Logbook marker can be set in dive mode menu (OC only)
heinrichsweikamp
parents:
377
diff
changeset
|
54 |
| 0 | 55 main_divemenu_ccr: |
| 56 bsf ccr_diluent_setup ; For diluents | |
| 57 movlw .1 | |
| 58 movwf menupos ; Set to first option in divemode menu | |
| 485 | 59 |
| 60 btfsc FLAG_pscr_mode | |
| 61 bra main_divemenu_pscr ; PSCR Menu | |
| 62 | |
| 0 | 63 MENU_BEGIN tMainMenu, .6 |
| 64 MENU_CALL tDiveBailout, do_divemode_gaslist_bail | |
| 65 MENU_CALL tDivemenu_Setpoint, do_divemode_splist | |
| 66 MENU_CALL tDivemenu_Gaslist, do_divemode_gaslist | |
| 437 | 67 MENU_CALL tDivemenu_ResetAvg, do_divemode_resetavg |
| 0 | 68 MENU_CALL tDivemenu_ToggleGF, do_divemode_togglegf |
| 69 MENU_CALL tExit, do_exit_divemode_menu | |
| 70 MENU_END | |
| 485 | 71 |
| 72 main_divemenu_pscr: | |
| 73 MENU_BEGIN tMainMenu, .6 | |
| 74 MENU_CALL tDiveBailout, do_divemode_gaslist_bail | |
| 75 MENU_CALL tDivemenu_Gaslist, do_divemode_gaslist_pscr ; quit bailout and always use diluents here | |
| 76 MENU_CALL tDivemenu_ResetAvg, do_divemode_resetavg | |
| 77 MENU_CALL tDivemenu_ToggleGF, do_divemode_togglegf | |
| 78 MENU_CALL tDivemenu_Marker, do_set_marker | |
| 79 MENU_CALL tExit, do_exit_divemode_menu | |
| 80 MENU_END | |
| 81 | |
| 0 | 82 do_togglegf: |
| 83 TSTOSS opt_enable_aGF ; =1: aGF can be selected underwater | |
| 84 bra do_exit_divemode_menu ; exit | |
| 85 bsf toggle_gf ; Set flag... | |
| 86 bra do_exit_divemode_menu ; ...and exit | |
| 87 | |
| 88 do_switch_to_sensor: | |
| 89 movlw .1 ; Switch to Sensor | |
| 426 | 90 movff WREG,opt_ccr_mode ; =0: Fixed SP, =1: Sensor, =2: Auto SP |
| 192 | 91 bsf voting_logic_sensor1 |
| 92 bsf voting_logic_sensor2 | |
| 93 bsf voting_logic_sensor3 | |
| 193 | 94 extern divemode_setup_sensor_values |
| 95 call divemode_setup_sensor_values ; Setup sensor values | |
| 195 | 96 call check_sensors ; Check O2 sensor thresholds for fallback |
| 0 | 97 bra do_switch_sp2 |
| 98 | |
| 437 | 99 do_divemode_resetavg: |
| 0 | 100 bsf reset_average_depth ; Set Flag |
| 101 bra do_exit_divemode_menu ; And exit | |
| 102 | |
|
53
2825f1d2262f
NEW: Dynamic Gaslist in OC mode (Divemode, Customview 7)
heinrichsweikamp
parents:
0
diff
changeset
|
103 |
|
2825f1d2262f
NEW: Dynamic Gaslist in OC mode (Divemode, Customview 7)
heinrichsweikamp
parents:
0
diff
changeset
|
104 do_switch_gas6: |
|
2825f1d2262f
NEW: Dynamic Gaslist in OC mode (Divemode, Customview 7)
heinrichsweikamp
parents:
0
diff
changeset
|
105 movlw .6 |
|
2825f1d2262f
NEW: Dynamic Gaslist in OC mode (Divemode, Customview 7)
heinrichsweikamp
parents:
0
diff
changeset
|
106 movwf active_gas ; Gas6 selected |
| 377 | 107 movff WREG,char_I_current_gas ; for p2_deco.c |
|
53
2825f1d2262f
NEW: Dynamic Gaslist in OC mode (Divemode, Customview 7)
heinrichsweikamp
parents:
0
diff
changeset
|
108 bra do_switch_gasX |
| 0 | 109 extern diveloop_loop4 |
| 110 extern timeout_divemode_menu2 | |
| 111 do_switch_gas: | |
| 112 bsf divemode_gaschange ; Set flag | |
| 113 do_switch_gasX: | |
| 114 btfsc is_bailout_menu ; Bailout confirmed? | |
| 115 bsf is_bailout ; =1: Bailout | |
|
536
f6a3e820a798
update customview mask to (eventually) rewrite ppO2(Dil): to ppO2:
heinrichsweikamp
parents:
528
diff
changeset
|
116 call customview_mask ; update customview mask to (eventually) rewrite ppO2(Dil): to ppO2: |
| 0 | 117 do_exit_divemode_menu: |
| 118 call timeout_divemode_menu2 | |
| 119 clrf STKPTR | |
| 120 goto diveloop_loop4 | |
| 121 | |
| 122 do_switch_sp: | |
| 123 decf menupos,W ; 1-5 -> 0-4 | |
| 124 lfsr FSR1,char_I_setpoint_cbar | |
| 125 movff PLUSW1,char_I_const_ppO2; Setup fixed Setpoint | |
|
352
5c6da9fa5cb0
add setpoint change to first sample in CCR mode
heinrichsweikamp
parents:
275
diff
changeset
|
126 movff char_I_const_ppO2,WREG |
|
5c6da9fa5cb0
add setpoint change to first sample in CCR mode
heinrichsweikamp
parents:
275
diff
changeset
|
127 call transmit_setpoint ; Transmit current setpoint from WREG (in cbar) to external electronics |
| 0 | 128 bsf setpoint_changed ; Set flag (For profile) |
|
99
87cc1adfe4da
show event "bailout" in the internal logbook
heinrichsweikamp
parents:
97
diff
changeset
|
129 bsf event_occured ; Set global event byte |
| 0 | 130 |
|
97
53a99a2dc6a1
CHANGE: Always compute bailout plan based on all active gases
heinrichsweikamp
parents:
53
diff
changeset
|
131 ; Reconfigure last diluent |
|
53a99a2dc6a1
CHANGE: Always compute bailout plan based on all active gases
heinrichsweikamp
parents:
53
diff
changeset
|
132 extern setup_dil_registers |
|
53a99a2dc6a1
CHANGE: Always compute bailout plan based on all active gases
heinrichsweikamp
parents:
53
diff
changeset
|
133 bcf is_bailout ; =1: Bailout |
|
53a99a2dc6a1
CHANGE: Always compute bailout plan based on all active gases
heinrichsweikamp
parents:
53
diff
changeset
|
134 movff active_diluent,WREG ; As a backup when switching back from Bailout to CCR |
|
53a99a2dc6a1
CHANGE: Always compute bailout plan based on all active gases
heinrichsweikamp
parents:
53
diff
changeset
|
135 decf WREG ; 0-4 |
|
53a99a2dc6a1
CHANGE: Always compute bailout plan based on all active gases
heinrichsweikamp
parents:
53
diff
changeset
|
136 call setup_dil_registers ; With WREG=Gas 0-4 |
|
53a99a2dc6a1
CHANGE: Always compute bailout plan based on all active gases
heinrichsweikamp
parents:
53
diff
changeset
|
137 |
| 0 | 138 clrf WREG ; Switch to fixed SP |
| 426 | 139 movff WREG,opt_ccr_mode ; =0: Fixed SP, =1: Sensor, =2: Auto SP |
| 0 | 140 clrf WREG |
| 141 movff WREG,char_O_deco_status ; Restart decoplan computation | |
| 142 | |
| 143 do_switch_sp2: | |
| 144 ; Clear some flags in case we were in bailout before... | |
| 145 bcf is_bailout ; =1: Bailout | |
| 146 bcf is_bailout_menu ; | |
| 485 | 147 bcf better_gas_available ;=1: A better gas is available and a gas change is advised in divemode |
| 0 | 148 bcf blinking_better_gas ; Clear blinking flag |
|
536
f6a3e820a798
update customview mask to (eventually) rewrite ppO2(Dil): to ppO2:
heinrichsweikamp
parents:
528
diff
changeset
|
149 call customview_mask ; update customview mask to (eventually) rewrite ppO2(Dil): to ppO2: |
| 0 | 150 bra do_exit_divemode_menu ; And exit |
| 151 | |
| 485 | 152 do_divemode_gaslist_pscr: |
|
502
0910c227018f
BUGFIX: PSCR mode showed bailout gaslist instead of diluent gaslist
heinrichsweikamp
parents:
485
diff
changeset
|
153 bsf ccr_diluent_setup ; For Diluents |
| 485 | 154 bcf is_bailout ; =1: Bailout |
| 155 bcf is_bailout_menu ; | |
| 156 bra do_divemode_gaslist_pscr2 | |
| 157 | |
| 0 | 158 do_divemode_gaslist_bail: |
| 159 bcf ccr_diluent_setup ; For OC gases | |
| 160 bsf is_bailout_menu ; =1: Bailout | |
| 161 do_divemode_gaslist: | |
| 162 btfsc is_bailout ; In Bailout case? | |
| 163 bcf ccr_diluent_setup ; Yes, use OC gases | |
| 485 | 164 do_divemode_gaslist_pscr2: |
| 0 | 165 bsf short_gas_decriptions |
| 166 movlw .1 | |
| 167 movwf menupos ; Set to first option in divemode menu | |
| 168 MENU_BEGIN tGaslist, .6 | |
| 169 MENU_DYNAMIC gaslist_strcat_gas_mod, do_switch_gas | |
| 170 MENU_DYNAMIC gaslist_strcat_gas_mod, do_switch_gas | |
| 171 MENU_DYNAMIC gaslist_strcat_gas_mod, do_switch_gas | |
| 172 MENU_DYNAMIC gaslist_strcat_gas_mod, do_switch_gas | |
| 173 MENU_DYNAMIC gaslist_strcat_gas_mod, do_switch_gas | |
| 174 MENU_CALL tMore, do_divemode_gaslist_more0 | |
| 175 MENU_END | |
| 176 | |
| 177 do_divemode_gaslist_more0: | |
| 178 movlw .1 | |
| 179 movwf menupos ; Set to first option in divemode menu | |
| 180 do_divemode_gaslist_more: | |
| 181 MENU_BEGIN tGaslist, .6 | |
| 182 MENU_CALL tO2Plus, do_dive_pO2 | |
| 183 MENU_CALL tO2Minus, do_dive_mO2 | |
| 184 MENU_CALL tHePlus, do_dive_pHe | |
| 185 MENU_CALL tHeMinus, do_dive_mHe | |
|
403
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
186 MENU_DYNAMIC gaslist_strcat_gasx, do_switch_gas6 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
187 MENU_CALL tDivemenu_LostGas, do_lost_gas |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
188 MENU_END |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
189 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
190 do_lost_gas: |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
191 movlw .1 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
192 movwf menupos ; Set to first option in divemode menu |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
193 do_lost_gas0: |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
194 bsf short_gas_decriptions |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
195 MENU_BEGIN tDivemenu_LostGas, .6 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
196 MENU_DYNAMIC gaslist_strcat_gas_mod, do_toggle_active ; Toggle the gas (in)active |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
197 MENU_DYNAMIC gaslist_strcat_gas_mod, do_toggle_active ; Toggle the gas (in)active |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
198 MENU_DYNAMIC gaslist_strcat_gas_mod, do_toggle_active ; Toggle the gas (in)active |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
199 MENU_DYNAMIC gaslist_strcat_gas_mod, do_toggle_active ; Toggle the gas (in)active |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
200 MENU_DYNAMIC gaslist_strcat_gas_mod, do_toggle_active ; Toggle the gas (in)active |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
201 MENU_CALL tExit, do_exit_divemode_menu |
| 0 | 202 MENU_END |
| 203 | |
|
403
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
204 do_toggle_active: |
|
511
7db10ebae205
BUGFIX: Lost Diluent now possible in CCR and PSCR mode
heinrichsweikamp
parents:
502
diff
changeset
|
205 movlw .5 |
|
7db10ebae205
BUGFIX: Lost Diluent now possible in CCR and PSCR mode
heinrichsweikamp
parents:
502
diff
changeset
|
206 btfsc ccr_diluent_setup ; use OC gases |
|
7db10ebae205
BUGFIX: Lost Diluent now possible in CCR and PSCR mode
heinrichsweikamp
parents:
502
diff
changeset
|
207 addwf menupos,F ; -> 6-10 for Diluents |
|
7db10ebae205
BUGFIX: Lost Diluent now possible in CCR and PSCR mode
heinrichsweikamp
parents:
502
diff
changeset
|
208 |
|
403
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
209 decf menupos,W ; 1-5 -> 0-4 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
210 lfsr FSR1,opt_gas_type+0 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
211 movff PLUSW1,lo |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
212 tstfsz lo ; Already disabled? |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
213 bra do_toggle_active2 ; No, disable now! |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
214 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
215 ; Copy opt_gas_type_backup+W back to opt_gas_type+W |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
216 decf menupos,W ; 1-5 -> 0-4 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
217 lfsr FSR1,opt_gas_type_backup+0 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
218 movff PLUSW1,lo |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
219 decf menupos,W ; 1-5 -> 0-4 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
220 lfsr FSR1,opt_gas_type+0 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
221 movff lo,PLUSW1 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
222 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
223 ; Copy opt_OC_bail_gas_change_backup+W back to opt_OC_bail_gas_change+W |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
224 decf menupos,W ; 1-5 -> 0-4 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
225 lfsr FSR1,opt_OC_bail_gas_change_backup+0 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
226 movff PLUSW1,lo |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
227 decf menupos,W ; 1-5 -> 0-4 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
228 lfsr FSR1,opt_OC_bail_gas_change+0 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
229 movff lo,PLUSW1 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
230 |
|
511
7db10ebae205
BUGFIX: Lost Diluent now possible in CCR and PSCR mode
heinrichsweikamp
parents:
502
diff
changeset
|
231 movlw .5 |
|
7db10ebae205
BUGFIX: Lost Diluent now possible in CCR and PSCR mode
heinrichsweikamp
parents:
502
diff
changeset
|
232 btfsc ccr_diluent_setup ; use OC gases? |
|
7db10ebae205
BUGFIX: Lost Diluent now possible in CCR and PSCR mode
heinrichsweikamp
parents:
502
diff
changeset
|
233 subwf menupos,F ; Back to 1-5 |
|
7db10ebae205
BUGFIX: Lost Diluent now possible in CCR and PSCR mode
heinrichsweikamp
parents:
502
diff
changeset
|
234 |
|
403
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
235 bra do_lost_gas0 ; Return to list and show updated result |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
236 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
237 do_toggle_active2: |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
238 clrf PLUSW1 ; 0=Disabled, 1=First, 2=Travel, 3=Deco |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
239 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
240 ; Also delete change depth here to have the menu updated immediately |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
241 lfsr FSR1,opt_OC_bail_gas_change+0 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
242 clrf PLUSW1 |
|
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
243 |
|
511
7db10ebae205
BUGFIX: Lost Diluent now possible in CCR and PSCR mode
heinrichsweikamp
parents:
502
diff
changeset
|
244 movlw .5 |
|
7db10ebae205
BUGFIX: Lost Diluent now possible in CCR and PSCR mode
heinrichsweikamp
parents:
502
diff
changeset
|
245 btfsc ccr_diluent_setup ; use OC gases? |
|
7db10ebae205
BUGFIX: Lost Diluent now possible in CCR and PSCR mode
heinrichsweikamp
parents:
502
diff
changeset
|
246 subwf menupos,F ; Back to 1-5 |
|
7db10ebae205
BUGFIX: Lost Diluent now possible in CCR and PSCR mode
heinrichsweikamp
parents:
502
diff
changeset
|
247 |
|
403
6e60012bb3fc
NEW: "Lost Gas" feature allows disabling gases during the dive
heinrichsweikamp
parents:
401
diff
changeset
|
248 bra do_lost_gas0 ; Return to list and show updated result |
| 0 | 249 |
| 250 do_dive_pO2: | |
| 251 banksel char_I_O2_ratio | |
| 252 incf char_I_O2_ratio,F ; O2++ | |
| 253 movf char_I_He_ratio,W | |
| 254 addwf char_I_O2_ratio,W | |
| 255 movwf temp_bankx400 | |
| 256 movlw .101 | |
| 257 cpfslt temp_bankx400 ; O2+He<101? | |
| 258 decf char_I_O2_ratio,F ; O2-- (Unchanged) | |
| 259 ; bra do_divemode_gaslist_more_common | |
| 260 do_divemode_gaslist_more_common: | |
|
181
32c17df38423
BUGFIX: END/EAD updated when adjusting current gas during the dive
heinrichsweikamp
parents:
99
diff
changeset
|
261 movf char_I_O2_ratio,W ; Add O2... |
|
32c17df38423
BUGFIX: END/EAD updated when adjusting current gas during the dive
heinrichsweikamp
parents:
99
diff
changeset
|
262 addwf char_I_He_ratio,W ; ...and He... |
|
32c17df38423
BUGFIX: END/EAD updated when adjusting current gas during the dive
heinrichsweikamp
parents:
99
diff
changeset
|
263 sublw .100 ; ...subtract both from 100 |
|
32c17df38423
BUGFIX: END/EAD updated when adjusting current gas during the dive
heinrichsweikamp
parents:
99
diff
changeset
|
264 movwf char_I_N2_ratio ; -> N2! |
| 0 | 265 banksel common |
| 266 bsf gas6_changed ; Set flag | |
| 267 bra do_divemode_gaslist_more | |
| 268 | |
| 269 do_dive_mO2: | |
| 270 banksel char_I_O2_ratio | |
| 271 decf char_I_O2_ratio,F ; O2-- | |
| 272 movlw gaslist_min_o2 | |
| 273 cpfslt char_I_O2_ratio | |
| 274 bra do_divemode_gaslist_more_common | |
| 275 movlw gaslist_min_o2 | |
| 276 movwf char_I_O2_ratio | |
| 277 bra do_divemode_gaslist_more_common | |
| 278 | |
| 279 | |
| 280 do_dive_pHe: | |
| 281 banksel char_I_O2_ratio | |
| 282 incf char_I_He_ratio,F ; He++ | |
| 283 movf char_I_He_ratio,W | |
| 284 addwf char_I_O2_ratio,W | |
| 285 movwf lo | |
| 286 movlw .101 | |
| 287 cpfslt lo ; O2+He<101? | |
| 288 decf char_I_He_ratio,F ; Yes, He-- (Unchanged) | |
| 289 bra do_divemode_gaslist_more_common | |
| 290 | |
| 291 do_dive_mHe: | |
| 292 banksel char_I_O2_ratio | |
| 293 decf char_I_He_ratio,F ; He-- | |
| 294 bnn do_divemode_gaslist_more_common | |
| 295 clrf char_I_He_ratio | |
| 296 bra do_divemode_gaslist_more_common | |
| 297 | |
| 298 do_divemode_splist: | |
| 299 bsf short_gas_decriptions | |
| 300 movlw .1 | |
| 301 movwf menupos ; Set to first option in divemode menu | |
| 249 | 302 movf hardware_flag,W |
| 303 sublw 0x11 ; 2 with BLE | |
| 304 btfsc STATUS,Z | |
| 305 bra do_divemode_splist2 | |
| 0 | 306 MENU_BEGIN tGaslist, .6 |
| 307 MENU_DYNAMIC gaslist_strcat_setpoint, do_switch_sp | |
| 308 MENU_DYNAMIC gaslist_strcat_setpoint, do_switch_sp | |
| 309 MENU_DYNAMIC gaslist_strcat_setpoint, do_switch_sp | |
| 310 MENU_DYNAMIC gaslist_strcat_setpoint, do_switch_sp | |
| 311 MENU_DYNAMIC gaslist_strcat_setpoint, do_switch_sp | |
| 312 MENU_CALL tCCRSensor, do_divemode_sensor | |
| 313 MENU_END | |
| 314 | |
| 249 | 315 do_divemode_splist2: |
| 316 MENU_BEGIN tGaslist, .5 | |
| 317 MENU_DYNAMIC gaslist_strcat_setpoint, do_switch_sp | |
| 318 MENU_DYNAMIC gaslist_strcat_setpoint, do_switch_sp | |
| 319 MENU_DYNAMIC gaslist_strcat_setpoint, do_switch_sp | |
| 320 MENU_DYNAMIC gaslist_strcat_setpoint, do_switch_sp | |
| 321 MENU_DYNAMIC gaslist_strcat_setpoint, do_switch_sp | |
| 322 MENU_END | |
| 323 | |
| 324 | |
| 0 | 325 do_divemode_sensor: |
| 326 ; Set customview to 1 (HUD Data) | |
| 327 clrf menupos3 ; customview to come-1 | |
| 328 bsf toggle_customview ; Set flag, the customview will be toggled very soon now... | |
| 329 movlw .1 | |
| 330 movwf menupos ; Set to first option in divemode menu | |
| 331 MENU_BEGIN tGaslist, .2 | |
| 332 MENU_CALL tDivemenu_UseSensor, do_switch_to_sensor | |
| 333 MENU_CALL tExit, do_continue_main_divemenu | |
| 334 MENU_END | |
| 335 | |
| 336 do_divemode_togglegf: | |
|
528
4921aa796691
BUGFIX: Ignore "Toggle GF" Menu entry (in divemode) when using the non-GF deco mode
heinrichsweikamp
parents:
511
diff
changeset
|
337 movff char_I_deco_model,WREG ; 0 = ZH-L16, 1 = ZH-L16-GF |
|
4921aa796691
BUGFIX: Ignore "Toggle GF" Menu entry (in divemode) when using the non-GF deco mode
heinrichsweikamp
parents:
511
diff
changeset
|
338 decfsz WREG,W ; Was 1? |
|
4921aa796691
BUGFIX: Ignore "Toggle GF" Menu entry (in divemode) when using the non-GF deco mode
heinrichsweikamp
parents:
511
diff
changeset
|
339 bra do_continue_main_divemenu ; No, do nothing and return |
|
4921aa796691
BUGFIX: Ignore "Toggle GF" Menu entry (in divemode) when using the non-GF deco mode
heinrichsweikamp
parents:
511
diff
changeset
|
340 |
|
4921aa796691
BUGFIX: Ignore "Toggle GF" Menu entry (in divemode) when using the non-GF deco mode
heinrichsweikamp
parents:
511
diff
changeset
|
341 ; Toggle GF only in GF modes |
| 0 | 342 ; Set customview to 5 (GF informations) |
| 343 movlw .4 | |
| 344 movwf menupos3 ; Customview to come-1 | |
| 345 bsf toggle_customview ; Set flag, the customview will be toggled very soon now... | |
| 346 movlw .1 | |
| 347 movwf menupos ; Set to first option in divemode menu | |
| 348 MENU_BEGIN tDivemenu_ToggleGF, .2 | |
| 349 MENU_CALL tDivemenu_ToggleGF, do_togglegf | |
| 350 MENU_CALL tExit, do_continue_main_divemenu | |
| 351 MENU_END | |
| 352 | |
| 353 END |
