Mercurial > public > hwos_code
comparison src/customview.asm @ 560:b7eb98dbd800
bump to 2.96beta (REFACTORED VERSION)
author | heinrichsweikamp |
---|---|
date | Wed, 31 Jan 2018 19:39:37 +0100 |
parents | d36f9fca10ae |
children | 690bfb76911c |
comparison
equal
deleted
inserted
replaced
559:9cb967d844f0 | 560:b7eb98dbd800 |
---|---|
1 ;============================================================================= | 1 ;============================================================================= |
2 ; | 2 ; |
3 ; File customview.asm | 3 ; File customview.asm REFACTORED VERSION V2.95 |
4 ; | 4 ; |
5 ; Customview in Surfacemode and Divemode | 5 ; Customview in Surfacemode and Divemode |
6 ; | 6 ; |
7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. | 7 ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. |
8 ;============================================================================= | 8 ;============================================================================= |
19 #include "wait.inc" | 19 #include "wait.inc" |
20 #include "surfmode.inc" | 20 #include "surfmode.inc" |
21 #include "convert.inc" | 21 #include "convert.inc" |
22 #include "divemode.inc" | 22 #include "divemode.inc" |
23 #include "i2c.inc" | 23 #include "i2c.inc" |
24 #include "start.inc" | |
24 | 25 |
25 gui CODE | 26 gui CODE |
26 | 27 |
27 ;============================================================================= | 28 ;============================================================================= |
28 ; Do every-second tasks for the custom view area (Dive mode) | 29 ; Do every-second tasks for the custom view area (Dive mode) |
29 | 30 |
30 global customview_second | 31 global customview_second |
31 customview_second: | 32 customview_second: |
32 movff menupos3,WREG ; copy current view (1-...) | 33 movff menupos3,WREG ; copy current view (1-...) |
33 dcfsnz WREG,F | 34 dcfsnz WREG,F |
34 goto TFT_update_ppo2_sensors ; Update Sensor data ; and return | 35 goto TFT_update_ppo2_sensors ; Update Sensor data ; and return |
35 dcfsnz WREG,F | 36 dcfsnz WREG,F |
36 goto TFT_update_avr_stopwatch ; Update average depth and stopwatch; and return | 37 goto TFT_update_avr_stopwatch ; Update average depth and stopwatch; and return |
37 dcfsnz WREG,F | 38 dcfsnz WREG,F |
38 goto TFT_decoplan ; Show decoplan ; and return | 39 goto TFT_decoplan ; Show decoplan ; and return |
39 dcfsnz WREG,F | 40 dcfsnz WREG,F |
40 goto TFT_battinfo_tissues_clock ; Update Battery, Tissues and clock ; and return | 41 goto TFT_battinfo_tissues_clock ; Update Battery, Tissues and clock ; and return |
41 dcfsnz WREG,F | 42 dcfsnz WREG,F |
42 goto TFT_gf_info ; Update GF informations ; and return | 43 goto TFT_gf_info ; Update GF informations ; and return |
43 dcfsnz WREG,F | 44 dcfsnz WREG,F |
44 return ; Compass updated seperately (Faster) in divemode; | 45 return ; Compass updated separately (faster) in divemode; |
45 dcfsnz WREG,F | 46 dcfsnz WREG,F |
46 goto TFT_dyn_gaslist ; Update the gaslist ; and return | 47 nop ; ex goto TFT_dyn_gaslist |
47 dcfsnz WREG,F | 48 dcfsnz WREG,F |
48 goto TFT_hud_voltages ; Show HUD details ; and return | 49 goto TFT_CNS ; Show CNS values for end-of-dive, ex goto TFT_hud_voltages |
49 dcfsnz WREG,F | 50 dcfsnz WREG,F |
50 bra customview_1sec_view9 ; Make sure to change value in "check_ppo2_display:" when moving around custom views | 51 bra customview_1sec_view9 ; Make sure to change value in "check_ppo2_display:" when moving around custom views |
51 dcfsnz WREG,F | 52 dcfsnz WREG,F |
52 goto TFT_sensor_check ; Show ppO2 of O2 and Diluent ; and return | 53 goto TFT_sensor_check ; Show ppO2 of O2 and Diluent ; and return |
53 dcfsnz WREG,F | 54 dcfsnz WREG,F |
54 goto TFT_ppo2_ead_end_cns ; Show ppO2, END/EAD and CNS; and return | 55 goto TFT_ppo2_ead_end_cns ; Show ppO2, END/EAD and CNS; and return |
55 dcfsnz WREG,F | 56 dcfsnz WREG,F |
56 goto TFT_pscr_info ; Show ppO2, drop and lung ratio; and return | 57 goto TFT_pscr_info ; Show ppO2, drop and lung ratio; and return |
58 dcfsnz WREG,F | |
59 goto TFT_gas_needs ; Show gas needs | |
57 | 60 |
58 ; Menupos3=0, do nothing | 61 ; Menupos3=0, do nothing |
59 return | 62 return |
60 | 63 |
61 customview_1sec_view9: ; Ceiling | 64 customview_1sec_view9: ; Ceiling |
62 call TFT_ceiling ; Show Ceiling | 65 call TFT_ceiling ; Show Ceiling |
63 ; ppO2 value | 66 call TFT_display_pure_ppo2 ; ppO2 value |
64 call TFT_display_ppo2_val | 67 extern char_I_deco_model ; current GF value |
65 ; current GF value | 68 TSTOSS char_I_deco_model ; 0 = ZH-L16, 1 = ZH-L16-GF |
66 extern char_I_deco_model | 69 return ; No GF info for non-GF modes |
67 TSTOSS char_I_deco_model ; 0 = ZH-L16, 1 = ZH-L16-GF | 70 goto TFT_gf_info ; Update GF informations ; and return |
68 return ; No GF info for non-GF modes | 71 |
69 goto TFT_gf_info ; Update GF informations ; and return | 72 global customview_alternative_second |
70 | 73 customview_alternative_second: |
71 | 74 movff menupos3,WREG ; copy current view (1-...) |
75 dcfsnz WREG,F | |
76 bra customview_alt_second_view1 ; View 1 | |
77 dcfsnz WREG,F | |
78 nop ; View 2 | |
79 | |
80 ; Menupos3=0, do nothing | |
81 return | |
82 | |
83 customview_alt_second_view1: | |
84 bsf FLAG_TFT_max_depth_alt | |
85 bsf FLAG_TFT_big_deco_alt | |
86 return | |
72 | 87 |
73 ;============================================================================= | 88 ;============================================================================= |
74 ; Do every-minute tasks for the custom view area | 89 ; Do every-minute tasks for the custom view area |
75 | 90 |
76 global customview_minute | 91 global customview_minute |
77 customview_minute: | 92 customview_minute: |
78 return | 93 return |
79 ; movff menupos3,WREG ; copy | 94 ; movff menupos3,WREG ; copy |
80 ; dcfsnz WREG,F | 95 ; dcfsnz WREG,F |
81 ; bra customview_1min_view1 | 96 ; bra customview_1min_view1 |
82 ; dcfsnz WREG,F | 97 ; dcfsnz WREG,F |
83 ; bra customview_1min_view2 | 98 ; bra customview_1min_view2 |
84 ; dcfsnz WREG,F | 99 ; dcfsnz WREG,F |
117 | 132 |
118 global surf_customview_toggle | 133 global surf_customview_toggle |
119 surf_customview_toggle: | 134 surf_customview_toggle: |
120 bcf switch_right | 135 bcf switch_right |
121 incf menupos3,F ; Number of customview to show | 136 incf menupos3,F ; Number of customview to show |
122 movlw d'9' ; Max number of customsviews in surface mode | 137 movlw d'9' ; Max number of customsviews in surface mode |
123 cpfsgt menupos3 ; Max reached? | 138 cpfsgt menupos3 ; Max reached? |
124 bra surf_customview_mask ; No, show | 139 bra surf_customview_mask ; No, show |
125 movlw .1 | 140 movlw .1 |
126 movwf menupos3 ; Reset to one (Always one custom view visible) | 141 movwf menupos3 ; Reset to one (Always one custom view visible) |
127 | 142 |
202 STRCPY_TEXT_PRINT tFixedSetpoints ; Title of customview | 217 STRCPY_TEXT_PRINT tFixedSetpoints ; Title of customview |
203 call TFT_standard_color | 218 call TFT_standard_color |
204 call TFT_splist_surfmode ; Show Setpoint list | 219 call TFT_splist_surfmode ; Show Setpoint list |
205 bra customview_toggle_exit ; Done. | 220 bra customview_toggle_exit ; Done. |
206 | 221 |
207 surf_customview_init_view9: ; View 9: Sensor mV on the surface | 222 surf_customview_init_view9: ; View 9: Sensor mV on the surface |
208 btfsc FLAG_ccr_mode | 223 btfsc FLAG_ccr_mode |
209 bra surf_customview_init_view9a ; we are in CCR mode | 224 bra surf_customview_init_view9a ; we are in CCR mode |
210 btfsc FLAG_pscr_mode | 225 btfsc FLAG_pscr_mode |
211 bra surf_customview_init_view9a ; we are in PSCR mode | 226 bra surf_customview_init_view9a ; we are in PSCR mode |
212 bra surf_customview_toggle ; we are not in any rebreather mode, so skip | 227 bra surf_customview_toggle ; we are not in any rebreather mode, so skip |
213 surf_customview_init_view9a: | 228 surf_customview_init_view9a: |
214 movff opt_ccr_mode,WREG ; =0: Fixed SP, =1: Sensor, =2: Auto SP | 229 movff opt_ccr_mode,WREG ; =0: Fixed SP, =1: Sensor, =2: Auto SP |
215 sublw .1 ; opt_ccr_mode = 1 (Sensor)? | 230 sublw .1 ; opt_ccr_mode = 1 (Sensor)? |
216 bnz surf_customview_toggle ; sorry, no sensors, skip again | 231 bnz surf_customview_toggle ; sorry, no sensors, skip again |
217 STRCPY_TEXT_PRINT tSensorMilliVolt ; Title of customview | 232 STRCPY_TEXT_PRINT tSensorMilliVolt ; Title of customview |
218 call TFT_standard_color | 233 call TFT_standard_color |
219 extern TFT_sensor_mV | 234 extern TFT_sensor_mV |
220 call TFT_sensor_mV ; write sensor mV readings to screen | 235 call TFT_sensor_mV ; write sensor mV readings to screen |
221 bra customview_toggle_exit ; Done. | 236 bra customview_toggle_exit ; Done. |
222 | 237 |
223 surf_customview_init_view4: ; View4: Custom text | 238 surf_customview_init_view4: ; View4: Custom text |
224 call TFT_standard_color | 239 call TFT_standard_color |
225 call TFT_custom_text ; Show the custom text | 240 call TFT_custom_text ; Show the custom text |
226 bra customview_toggle_exit ; Done. | 241 bra customview_toggle_exit ; Done. |
240 extern TFT_surface_compass_mask | 255 extern TFT_surface_compass_mask |
241 call TFT_surface_compass_mask ; Show compass | 256 call TFT_surface_compass_mask ; Show compass |
242 bra customview_toggle_exit ; Done. | 257 bra customview_toggle_exit ; Done. |
243 | 258 |
244 surf_customview_init_view7: | 259 surf_customview_init_view7: |
245 btfsc FLAG_gauge_mode ; View7: Deco settings | 260 btfsc FLAG_gauge_mode ; View7: Deco settings |
246 bra surf_customview_toggle | 261 bra surf_customview_toggle |
247 btfsc FLAG_apnoe_mode | 262 btfsc FLAG_apnoe_mode |
248 bra surf_customview_toggle | 263 bra surf_customview_toggle |
249 extern deco_setup_dive | 264 |
250 call deco_setup_dive | |
251 call TFT_surface_decosettings ; Show all deco settings | 265 call TFT_surface_decosettings ; Show all deco settings |
252 bra customview_toggle_exit ; Done. | 266 bra customview_toggle_exit ; Done. |
253 | 267 |
254 surf_customview_init_view8: ; View8: Last dive info | 268 surf_customview_init_view8: ; View8: Last dive info |
255 call TFT_surface_lastdive ; Show last dive interval | 269 call TFT_surface_lastdive ; Show last dive interval |
256 bra customview_toggle_exit ; Done. | 270 bra customview_toggle_exit ; Done. |
257 | 271 |
258 | 272 |
259 global menuview_toggle | 273 global menuview_toggle |
260 menuview_toggle: ; Show Menu or the simulator tasks | 274 menuview_toggle: ; Show Menu or the simulator tasks |
275 btfss alternative_divelayout ; In alternative layout mode? | |
276 bra menuview_toggle2 ; No | |
277 ; Switch back to normal mode for any menu tasks | |
278 bcf alternative_divelayout ; clear flag | |
279 bsf FLAG_TFT_divemode_mask ; Set flag for mask | |
280 bsf FLAG_TFT_max_depth ; set flag | |
281 btfss decostop_active ; deco? | |
282 bsf FLAG_TFT_display_ndl_mask ; NDL | |
283 btfsc decostop_active ; deco? | |
284 bsf FLAG_TFT_display_deko_mask ; Deco | |
285 call TFT_ClearScreen ; Clear screen | |
286 rcall customview_mask ; Re-Draw customview | |
287 | |
288 menuview_toggle2: | |
261 movlw divemode_menuview_timeout | 289 movlw divemode_menuview_timeout |
262 movwf timeout_counter3 | 290 movwf timeout_counter3 |
263 bsf menuview | 291 bsf menuview |
264 bcf switch_left | 292 bcf switch_left |
265 incf menupos2,F ; Number of options to show | 293 incf menupos2,F ; Number of options to show |
266 movlw d'9' ; Max number of options in divemode | 294 movlw d'10' ; Max number of options in divemode |
267 cpfsgt menupos2 ; Max reached? | 295 cpfsgt menupos2 ; Max reached? |
268 bra menuview_mask ; No, show | 296 bra menuview_mask ; No, show |
269 global menuview_toggle_reset | 297 global menuview_toggle_reset |
270 menuview_toggle_reset: ; Timeout occured | 298 menuview_toggle_reset: ; Timeout occurred |
271 clrf menupos2 | 299 clrf menupos2 |
272 bcf menuview | 300 bcf menuview |
273 menuview_mask: | 301 menuview_mask: |
274 WIN_BOX_BLACK dm_simtext_row, dm_simtext_row+.23, dm_simtext_column, dm_simtext_column+.49 ; top, bottom, left, right | 302 WIN_BOX_BLACK dm_simtext_row, dm_simtext_row+.23, dm_simtext_column, dm_simtext_column+.45 ; top, bottom, left, right - old value was .49 |
275 btfss FLAG_gauge_mode | 303 btfss FLAG_gauge_mode |
276 bra menuview_mask2 | 304 bra menuview_mask2 |
277 ; Clear some more in gauge mode -- "Reset Avg." text is longer than normal simtext | 305 ; Clear some more in gauge mode -- "Reset Avg." text is longer than normal simtext |
278 WIN_BOX_BLACK dm_simtext_row, dm_simtext_row+.23, dm_simtext_column+.50, dm_simtext_column+.70 ; top, bottom, left, right | 306 WIN_BOX_BLACK dm_simtext_row, dm_simtext_row+.23, dm_simtext_column+.50, dm_simtext_column+.70 ; top, bottom, left, right |
279 menuview_mask2: | 307 menuview_mask2: |
280 call TFT_draw_gassep_line | 308 call TFT_draw_gassep_line |
281 movlw color_yellow | 309 movlw color_yellow |
282 call TFT_set_color | 310 call TFT_set_color |
283 bsf win_invert ; Set invert flag | 311 bsf win_invert ; Set invert flag |
284 WIN_SMALL dm_simtext_column,dm_simtext_row | 312 WIN_SMALL dm_simtext_column,dm_simtext_row |
285 movff menupos2,WREG ; Menupos2 holds number of menu option to show | 313 movff menupos2,WREG ; Menupos2 holds number of menu option to show |
286 dcfsnz WREG,F | 314 dcfsnz WREG,F |
287 bra menuview_view_gaschange ; If a better gas is indicated | 315 bra menuview_view_gaschange ; If a better gas is indicated |
288 dcfsnz WREG,F | 316 dcfsnz WREG,F |
299 bra menuview_view6 ; "Reset Avr." (Gauge only) | 327 bra menuview_view6 ; "Reset Avr." (Gauge only) |
300 dcfsnz WREG,F | 328 dcfsnz WREG,F |
301 bra menuview_view7 ; "Sim:+5mins" (Sim only) | 329 bra menuview_view7 ; "Sim:+5mins" (Sim only) |
302 dcfsnz WREG,F | 330 dcfsnz WREG,F |
303 bra menuview_view8 ; "Heading" (When compass is shown) | 331 bra menuview_view8 ; "Heading" (When compass is shown) |
332 dcfsnz WREG,F | |
333 bra menuview_view9 ; "Layout" (Alternative Layout, aka Blind mode) | |
334 | |
304 menuview_exit: | 335 menuview_exit: |
305 call TFT_standard_color | 336 call TFT_standard_color |
306 bcf win_invert ; Reset invert flag | 337 bcf win_invert ; Reset invert flag |
307 return ; Menupos2 = 0, Show nothing | 338 return ; Menupos2 = 0, Show nothing |
308 | 339 |
309 | 340 |
310 menuview_view_gaschange: | 341 menuview_view_gaschange: |
311 extern gaslist_strcat_gas_mod | 342 extern gaslist_strcat_gas_mod |
334 STRCPY_TEXT_PRINT tQuitSim ; "Quit Simulation?" | 365 STRCPY_TEXT_PRINT tQuitSim ; "Quit Simulation?" |
335 bra menuview_exit ; Done. | 366 bra menuview_exit ; Done. |
336 menuview_view3: | 367 menuview_view3: |
337 btfss simulatormode_active ; View only for simulator mode | 368 btfss simulatormode_active ; View only for simulator mode |
338 bra menuview_toggle ; Call next option | 369 bra menuview_toggle ; Call next option |
339 STRCPY_PRINT "Sim:-1m" | 370 STRCPY_PRINT "Sim-1m" ; CHANGED, now "-" for going down |
340 bra menuview_exit ; Done. | 371 bra menuview_exit ; Done. |
341 menuview_view4: | 372 menuview_view4: |
342 btfss simulatormode_active ; View only for simulator mode | 373 btfss simulatormode_active ; View only for simulator mode |
343 bra menuview_toggle ; Call next option | 374 bra menuview_toggle ; Call next option |
344 STRCPY_PRINT "Sim:+1m" | 375 STRCPY_PRINT "Sim+1m" ; CHANGED, now "+" for going up |
345 bra menuview_exit ; Done. | 376 bra menuview_exit ; Done. |
346 menuview_view5: | 377 menuview_view5: |
347 btfss FLAG_apnoe_mode ; In Apnoe mode? | 378 btfss FLAG_apnoe_mode ; In Apnoe mode? |
348 bra menuview_toggle ; No, call next option | 379 bra menuview_toggle ; No, call next option |
349 btfss FLAG_active_descent ; Are we descending? | 380 btfss FLAG_active_descent ; Are we descending? |
361 bra menuview_toggle ; Call next option | 392 bra menuview_toggle ; Call next option |
362 btfsc FLAG_gauge_mode ; In Gauge mode? | 393 btfsc FLAG_gauge_mode ; In Gauge mode? |
363 bra menuview_toggle ; Yes, call next option | 394 bra menuview_toggle ; Yes, call next option |
364 btfsc FLAG_apnoe_mode ; In Apnoe mode? | 395 btfsc FLAG_apnoe_mode ; In Apnoe mode? |
365 bra menuview_toggle ; Yes, call next option | 396 bra menuview_toggle ; Yes, call next option |
366 STRCPY_PRINT "Sim:+5'" | 397 STRCPY_PRINT "Sim+5'" |
367 bra menuview_exit ; Done. | 398 bra menuview_exit ; Done. |
368 menuview_view8: | 399 menuview_view8: |
369 movlw .6 | 400 movlw .6 |
370 cpfseq menupos3 ; in compass view? | 401 cpfseq menupos3 ; in compass view? |
371 bra menuview_toggle ; No, call next option | 402 bra menuview_toggle ; No, call next option |
372 STRCPY_TEXT_PRINT tSetHeading ; "Heading" | 403 STRCPY_TEXT_PRINT tSetHeading ; "Heading" |
373 bra menuview_exit ; Done. | 404 bra menuview_exit ; Done. |
374 | 405 menuview_view9: |
375 | 406 STRCPY_PRINT "Layout" |
407 bra menuview_exit ; Done. | |
408 | |
409 | |
410 | |
411 | |
376 ;============================================================================= | 412 ;============================================================================= |
413 | |
414 customview_toggle_alternative: | |
415 movlw d'1' ; Max number of customviews in divemode, alternative layout | |
416 cpfsgt menupos3 ; Max reached? | |
417 bra customview_mask_alternative ; No, show | |
418 movlw .1 | |
419 movwf menupos3 ; Reset to one, always one customview visible in alternative layout | |
420 customview_mask_alternative: | |
421 ; Clear custom view area in divemode | |
422 WIN_BOX_BLACK dm_customview_row, .239, .0, .159 ; top, bottom, left, right | |
423 call TFT_standard_color | |
424 movff menupos3,WREG ; Menupos3 holds number of customview function | |
425 dcfsnz WREG,F | |
426 bra customview_alt_init_view1 ; View 1: Big deco/ndl and max. depth | |
427 dcfsnz WREG,F | |
428 bra customview_alt_init_view2 ; View 2: | |
429 | |
430 ;bra customview_alternative_toggle_exit ; No view (menupos3=0) | |
431 | |
432 customview_alt_toggle_exit: | |
433 call TFT_standard_color | |
434 bcf toggle_customview ; Clear flag | |
435 return | |
436 | |
437 customview_alt_init_view1: ; View 1: Big deco/ndl and max. depth | |
438 call TFT_max_depth_alternative | |
439 call TFT_big_deco_alt | |
440 bra customview_alt_toggle_exit | |
441 | |
442 customview_alt_init_view2: | |
443 ; /* Just for test... | |
444 call TFT_mask_avr_stopwatch ; Show mask for average depth and stopwatch | |
445 call TFT_update_avr_stopwatch ; Update average depth and stopwatch | |
446 ; ...Just for test */ | |
447 | |
448 bra customview_alt_toggle_exit | |
449 | |
450 | |
377 ; Show next customview (and delete this flag) | 451 ; Show next customview (and delete this flag) |
378 customview_toggle_reset: ; Timeout occured | 452 global customview_toggle |
379 clrf menupos3 ; Reset to zero (Zero=no custom view) | 453 customview_toggle: |
454 bcf switch_right | |
455 incf menupos3,F ; Number of customview to show | |
456 | |
457 btfsc alternative_divelayout ; In alternative layout mode? | |
458 bra customview_toggle_alternative ; Yes, use the big ones instead | |
459 | |
460 movlw d'13' ; Max number of customviews in divemode | |
461 cpfsgt menupos3 ; Max reached? | |
462 bra customview_mask ; No, show | |
463 clrf menupos3 ; Reset to zero (Zero=no custom view) | |
464 | |
380 global customview_mask | 465 global customview_mask |
381 customview_mask: | 466 customview_mask: |
382 ; Clear custom view area in divemode | 467 ; Clear custom view area in divemode |
383 WIN_BOX_BLACK dm_customview_row, dm_customview_bot, dm_customview_column, dm_customview_rgt ; top, bottom, left, right | 468 WIN_BOX_BLACK dm_customview_row, dm_customview_bot-.2, dm_customview_column, dm_customview_rgt ; top, bottom, left, right |
384 WIN_SMALL dm_customview_column,dm_customview_row | 469 WIN_SMALL dm_customview_column,dm_customview_row |
385 call TFT_standard_color | 470 call TFT_standard_color |
386 movff menupos3,WREG ; Menupos3 holds number of customview function | 471 movff menupos3,WREG ; Menupos3 holds number of customview function |
387 dcfsnz WREG,F | 472 dcfsnz WREG,F |
388 bra customview_init_view1 ; Update Sensor data | 473 bra customview_init_view1 ; Update Sensor data |
389 dcfsnz WREG,F | 474 dcfsnz WREG,F |
390 bra customview_init_view2 ; average depth and stopwatch | 475 bra customview_init_view2 ; average depth and stopwatch |
391 dcfsnz WREG,F | 476 dcfsnz WREG,F |
392 bra customview_init_view3 ; Decoplan | 477 bra customview_init_view3 ; Decoplan |
393 dcfsnz WREG,F | 478 dcfsnz WREG,F |
394 bra customview_init_view4 ; Battery info, Tissues and clock | 479 bra customview_init_view4 ; Battery info, Tissues and clock |
395 dcfsnz WREG,F | 480 dcfsnz WREG,F |
396 bra customview_init_view5 ; GF informations | 481 bra customview_init_view5 ; GF informations |
397 dcfsnz WREG,F | 482 dcfsnz WREG,F |
398 bra customview_init_view6 ; Compass | 483 bra customview_init_view6 ; Compass |
399 dcfsnz WREG,F | 484 dcfsnz WREG,F |
400 bra customview_init_view7 ; Dynamic gaslist | 485 bra customview_init_view7 ; Dynamic gaslist |
401 dcfsnz WREG,F | 486 dcfsnz WREG,F |
402 bra customview_init_view8 ; HUD voltages | 487 bra customview_init_view8 ; HIJACKED for CNS (ex HUD voltages) |
403 dcfsnz WREG,F | 488 dcfsnz WREG,F |
404 bra customview_init_view9 ; ppO2, Ceiling and current GF | 489 bra customview_init_view9 ; ppO2, Ceiling and current GF |
405 dcfsnz WREG,F | 490 dcfsnz WREG,F |
406 bra customview_init_view10 ; Sensor check | 491 bra customview_init_view10 ; Sensor check |
407 dcfsnz WREG,F | 492 dcfsnz WREG,F |
408 bra customview_init_view11 ; ppO2, END/EAD and CNS | 493 bra customview_init_view11 ; ppO2, END/EAD and CNS |
409 dcfsnz WREG,F | 494 dcfsnz WREG,F |
410 bra customview_init_view12 ; PSCR Info | 495 bra customview_init_view12 ; PSCR Info |
411 | 496 ; NEW ## bailout gas needs |
497 dcfsnz WREG,F | |
498 bra customview_init_view13 ; Gas needs | |
499 | |
412 customview_init_nocustomview: | 500 customview_init_nocustomview: |
413 call I2C_sleep_accelerometer ; Stop accelerometer | 501 call I2C_sleep_accelerometer ; Stop accelerometer |
414 call I2C_sleep_compass ; Stop compass | 502 call I2C_sleep_compass ; Stop compass |
415 bra customview_toggle_exit | 503 bra customview_toggle_exit |
416 | 504 |
417 customview_init_view1: | 505 customview_init_view1: |
418 btfsc FLAG_apnoe_mode ; In Apnoe mode? | 506 btfsc FLAG_apnoe_mode ; In Apnoe mode? |
419 bra customview_toggle ; yes, Call next view... | 507 bra customview_toggle ; yes, Call next view... |
420 btfsc FLAG_pscr_mode ; In PSCR mode? | 508 btfsc FLAG_pscr_mode ; In PSCR mode? |
421 bra customview_init_view1a ; Yes | 509 bra customview_init_view1a ; Yes |
422 btfss FLAG_ccr_mode ; In CC mode? | 510 btfss FLAG_ccr_mode ; In CC mode? |
423 bra customview_toggle ; no, Call next view... | 511 bra customview_toggle ; no, Call next view... |
424 | 512 |
425 customview_init_view1a: | 513 customview_init_view1a: |
426 movf hardware_flag,W | 514 movf hardware_flag,W |
430 movf hardware_flag,W | 518 movf hardware_flag,W |
431 sublw 0x13 ; + | 519 sublw 0x13 ; + |
432 btfsc STATUS,Z | 520 btfsc STATUS,Z |
433 bra customview_toggle ; no, Call next view... | 521 bra customview_toggle ; no, Call next view... |
434 | 522 |
435 bsf dive_hud1_displayed ; Set display flag | 523 call TFT_hud_mask ; Setup HUD mask |
436 bsf dive_hud2_displayed ; Set display flag | 524 call TFT_update_ppo2_sensors ; Update Sensor data |
437 bsf dive_hud3_displayed ; Set display flag | |
438 call TFT_hud_mask ; Setup HUD mask | |
439 call TFT_update_ppo2_sensors ; Update Sensor data | |
440 bra customview_toggle_exit | 525 bra customview_toggle_exit |
441 | 526 |
442 customview_init_view2: | 527 customview_init_view2: |
443 btfsc FLAG_apnoe_mode ; In Apnoe mode? | 528 btfsc FLAG_apnoe_mode ; In Apnoe mode? |
444 bra customview_toggle ; Yes, Call next view... | 529 bra customview_toggle ; Yes, Call next view... |
445 call TFT_mask_avr_stopwatch ; Show mask for average depth and stopwatch | 530 call TFT_mask_avr_stopwatch ; Show mask for average depth and stopwatch |
446 call TFT_update_avr_stopwatch ; Update average depth and stopwatch | 531 call TFT_update_avr_stopwatch ; Update average depth and stopwatch |
447 bra customview_toggle_exit | 532 bra customview_toggle_exit |
448 | 533 |
449 customview_init_view3: | 534 customview_init_view3: |
450 btfsc FLAG_apnoe_mode ; In Apnoe mode? | 535 btfsc FLAG_apnoe_mode ; In Apnoe mode? |
451 bra customview_toggle ; Yes, Call next view... | 536 bra customview_toggle ; Yes, Call next view... |
453 bra customview_toggle ; Yes, Call next view... | 538 bra customview_toggle ; Yes, Call next view... |
454 call TFT_decoplan ; Show decoplan | 539 call TFT_decoplan ; Show decoplan |
455 bra customview_toggle_exit | 540 bra customview_toggle_exit |
456 | 541 |
457 customview_init_view4: | 542 customview_init_view4: |
458 call TFT_battinfo_tissues_clock_mask ; Setup Mask | 543 call TFT_battinfo_tissues_clock_mask ; Setup Mask |
459 call TFT_battinfo_tissues_clock ; Show Battery info, Tissues and clock | 544 call TFT_battinfo_tissues_clock ; Show Battery info, Tissues and clock |
460 bra customview_toggle_exit | 545 bra customview_toggle_exit |
461 | 546 |
462 customview_init_view5: | 547 customview_init_view5: |
463 btfsc FLAG_apnoe_mode ; In Apnoe mode? | 548 btfsc FLAG_apnoe_mode ; In Apnoe mode? |
464 bra customview_toggle ; Yes, Call next view... | 549 bra customview_toggle ; Yes, Call next view... |
478 call I2C_init_compass ; Start compass | 563 call I2C_init_compass ; Start compass |
479 extern TFT_dive_compass_mask | 564 extern TFT_dive_compass_mask |
480 call TFT_dive_compass_mask ; Show compass | 565 call TFT_dive_compass_mask ; Show compass |
481 bra customview_toggle_exit | 566 bra customview_toggle_exit |
482 | 567 |
568 ; MODIFIED - view disabled ## memory | |
483 customview_init_view7: ; Dynamic gaslist (View 7) | 569 customview_init_view7: ; Dynamic gaslist (View 7) |
484 btfsc FLAG_apnoe_mode ; In Apnoe mode? | 570 ; btfsc FLAG_apnoe_mode ; In Apnoe mode? |
485 bra customview_toggle ; Yes, Call next view... | 571 bra customview_toggle ; Yes, Call next view... |
486 btfsc FLAG_ccr_mode ; In CC mode? | 572 ; btfsc FLAG_ccr_mode ; In CC mode? |
487 bra customview_toggle ; Yes, Call next view... | 573 ; bra customview_toggle ; Yes, Call next view... |
488 call TFT_dyn_gaslist ; Show the dyn gaslist | 574 ; call TFT_dyn_gaslist ; Show the dyn gaslist |
489 bra customview_toggle_exit | 575 ; bra customview_toggle_exit |
490 | 576 |
491 customview_init_view8: ; Sensor millivolts | 577 customview_init_view8: ; HIJACKED for CNS outputs (ex Sensor millivolts) |
492 btfsc FLAG_gauge_mode ; In Gauge mode? | 578 btfsc FLAG_gauge_mode ; In Gauge mode? |
493 bra customview_toggle ; Yes, Call next view... | 579 bra customview_toggle ; Yes, Call next view... |
494 btfsc FLAG_apnoe_mode ; In Apnoe mode? | 580 btfsc FLAG_apnoe_mode ; In Apnoe mode? |
495 bra customview_toggle ; yes, Call next view... | 581 bra customview_toggle ; yes, Call next view... |
496 btfsc FLAG_pscr_mode ; In PSCR mode? | 582 ; REPLACE ## CNS at end-of-dive |
497 bra customview_init_view8a ; Yes | 583 ; btfsc FLAG_pscr_mode ; In PSCR mode? |
498 btfss FLAG_ccr_mode ; In CC mode? | 584 ; bra customview_init_view8a ; Yes |
499 bra customview_toggle ; no, Call next view... | 585 ; btfss FLAG_ccr_mode ; In CC mode? |
500 customview_init_view8a: | 586 ; bra customview_toggle ; no, Call next view... |
501 movf hardware_flag,W | 587 ; customview_init_view8a: |
502 sublw 0x13 ; + | 588 ; movf hardware_flag,W |
503 btfsc STATUS,Z | 589 ; sublw 0x13 ; + |
504 bra customview_toggle ; no, Call next view... | 590 ; btfsc STATUS,Z |
505 | 591 ; bra customview_toggle ; no, Call next view... |
506 movff opt_ccr_mode,WREG ; =0: Fixed SP, =1: Sensor, =2: Auto SP | 592 ; movff opt_ccr_mode,WREG ; =0: Fixed SP, =1: Sensor, =2: Auto SP |
507 sublw .1 ; opt_ccr_mode = 1 (Sensor)? | 593 ; sublw .1 ; opt_ccr_mode = 1 (Sensor)? |
508 bnz customview_toggle ; no, Call next view... | 594 ; bnz customview_toggle ; no, Call next view... |
509 call TFT_hud_mask ; Setup HUD mask | 595 ; call TFT_hud_mask ; Setup HUD mask |
510 call TFT_hud_voltages ; Show HUD details | 596 ; call TFT_hud_voltages ; Show HUD details |
511 goto customview_toggle_exit | 597 ; BY |
598 call TFT_CNS_mask | |
599 call TFT_CNS | |
600 | |
601 goto customview_toggle_exit | |
512 | 602 |
513 customview_init_view9: ; ppO2, Ceiling and current GF | 603 customview_init_view9: ; ppO2, Ceiling and current GF |
514 btfsc FLAG_apnoe_mode ; In Apnoe mode? | 604 btfsc FLAG_apnoe_mode ; In Apnoe mode? |
515 bra customview_toggle ; yes, Call next view... | 605 bra customview_toggle ; yes, Call next view... |
516 btfsc FLAG_gauge_mode ; In Gauge mode? | 606 btfsc FLAG_gauge_mode ; In Gauge mode? |
517 bra customview_toggle ; Yes, Call next view... | 607 bra customview_toggle ; Yes, Call next view... |
518 call TFT_ceiling_mask ; Setup mask | 608 call TFT_ceiling_mask ; Setup mask |
519 call TFT_ceiling ; Show Ceiling | 609 call TFT_ceiling ; Show Ceiling |
520 | 610 |
521 ; ppO2 value | 611 ; ppO2 value |
522 call TFT_mask_ppo2 | 612 call TFT_mask_ppo2 |
523 call TFT_display_ppo2_val | 613 call TFT_display_pure_ppo2 |
524 | 614 |
525 ; current GF value | 615 ; current GF value |
526 extern char_I_deco_model | 616 extern char_I_deco_model |
527 TSTOSS char_I_deco_model ; 0 = ZH-L16, 1 = ZH-L16-GF | 617 TSTOSS char_I_deco_model ; 0 = ZH-L16, 1 = ZH-L16-GF |
528 bra customview_toggle_exit ; No GF info for non-GF modes | 618 bra customview_toggle_exit ; No GF info for non-GF modes |
529 ; current GF value | 619 ; current GF value |
530 call TFT_gf_mask_cGF ; Setup Mask - current GF only | 620 call TFT_gf_mask_cGF ; Setup Mask - current GF only |
531 call TFT_gf_info ; Show GF informations | 621 call TFT_gf_info ; Show GF informations |
532 bra customview_toggle_exit | 622 bra customview_toggle_exit |
533 | 623 |
534 | |
535 ;============================================================================= | |
536 ; Show next customview (and delete this flag) | |
537 global customview_toggle | |
538 customview_toggle: | |
539 bcf switch_right | |
540 incf menupos3,F ; Number of customview to show | |
541 movlw d'12' ; Max number of customsviews in divemode | |
542 cpfsgt menupos3 ; Max reached? | |
543 goto customview_mask ; No, show | |
544 goto customview_toggle_reset | |
545 | |
546 | |
547 customview_init_view10: ; Sensor check | 624 customview_init_view10: ; Sensor check |
548 btfsc FLAG_apnoe_mode ; In Apnoe mode? | 625 btfsc FLAG_apnoe_mode ; In Apnoe mode? |
549 bra customview_toggle ; yes, Call next view... | 626 bra customview_toggle ; yes, Call next view... |
550 btfsc FLAG_gauge_mode ; In Gauge mode? | 627 btfsc FLAG_gauge_mode ; In Gauge mode? |
551 bra customview_toggle ; Yes, Call next view... | 628 bra customview_toggle ; Yes, Call next view... |
552 btfss FLAG_ccr_mode ; In CC mode? | 629 btfss FLAG_ccr_mode ; In CC mode? |
553 bra customview_toggle ; no, Call next view... | 630 bra customview_toggle ; no, Call next view... |
554 | 631 |
555 call TFT_sensor_check_mask ; Show ppO2 of O2 and Diluent mask | 632 call TFT_sensor_check_mask ; Show ppO2 of O2 and Diluent mask |
556 call TFT_sensor_check ; Show ppO2 of O2 and Diluent | 633 call TFT_sensor_check ; Show ppO2 of O2 and Diluent |
557 bra customview_toggle_exit | 634 bra customview_toggle_exit |
558 | 635 |
559 customview_init_view11: ; ppO2, END/EAD and CNS | 636 customview_init_view11: ; ppO2, END/EAD and CNS |
560 btfsc FLAG_apnoe_mode ; In Apnoe mode? | 637 btfsc FLAG_apnoe_mode ; In Apnoe mode? |
561 bra customview_toggle ; yes, Call next view... | 638 bra customview_toggle ; yes, Call next view... |
562 btfsc FLAG_gauge_mode ; In Gauge mode? | 639 btfsc FLAG_gauge_mode ; In Gauge mode? |
563 bra customview_toggle ; Yes, Call next view... | 640 bra customview_toggle ; Yes, Call next view... |
564 | 641 |
565 call TFT_ppo2_ead_end_cns_mask ; Show ppO2, END/EAD and CNS mask | 642 call TFT_ppo2_ead_end_cns_mask ; Show ppO2, END/EAD and CNS mask |
566 call TFT_ppo2_ead_end_cns ; Show ppO2, END/EAD and CNS | 643 call TFT_ppo2_ead_end_cns ; Show ppO2, END/EAD and CNS |
567 goto customview_toggle_exit | 644 goto customview_toggle_exit |
568 | 645 |
569 customview_init_view12: ; PSCR Info | 646 customview_init_view12: ; PSCR Info |
570 btfss FLAG_pscr_mode ; In PSCR mode? | 647 btfss FLAG_pscr_mode ; In PSCR mode? |
571 bra customview_toggle ; No, Call next view... | 648 bra customview_toggle ; No, Call next view... |
572 | 649 |
573 call TFT_pscr_info_mask ; Show ppO2, drop and lung ratio | 650 call TFT_pscr_info_mask ; Show ppO2, drop and lung ratio |
574 call TFT_pscr_info ; Show ppO2, drop and lung ratio | 651 call TFT_pscr_info ; Show ppO2, drop and lung ratio |
575 bra customview_toggle_exit | 652 bra customview_toggle_exit |
576 | 653 |
654 ; NEW ## bailout gas needs | |
655 customview_init_view13: ; Gas Needs | |
656 TSTOSS opt_calc_asc_gasvolume ; check if gas volume calculations is switched on | |
657 bra customview_toggle ; NO - Call next view... | |
658 call TFT_gas_needs_mask ; YES - Show the mask for gas needs | |
659 call TFT_gas_needs ; Show the gas needs | |
660 bra customview_toggle_exit | |
661 | |
577 customview_toggle_exit: | 662 customview_toggle_exit: |
578 btfsc divemode ; In Dive Mode? | 663 btfsc divemode ; In Dive Mode? |
579 call TFT_temp_divemode ; Yes, redraw temperature | 664 bsf FLAG_TFT_temp_divemode ; Set flag to redraw temp |
580 call TFT_standard_color | 665 call TFT_standard_color |
581 bcf toggle_customview ; Clear flag | 666 bcf toggle_customview ; Clear flag |
582 return | 667 return |
583 | 668 |
584 global customview_show_change_depth | 669 global customview_show_change_depth |
585 customview_show_change_depth: ; Put " lom" or " loft" into Postinc2 | 670 customview_show_change_depth: ; Put " lom" or " loft" into Postinc2 |
586 PUTC " " | 671 PUTC " " |
587 TSTOSS opt_units ; 0=m, 1=ft | 672 TSTOSS opt_units ; 0=m, 1=ft |
588 bra customview_show_mix_metric | 673 bra customview_show_mix_metric |
589 movf lo,W | 674 movf lo,W |
590 mullw .100 ; convert meters to mbar | 675 mullw .100 ; convert meters to mbar |
591 movff PRODL,lo | 676 movff PRODL,lo |
592 movff PRODH,hi | 677 movff PRODH,hi |
593 call convert_mbar_to_feet ; convert value in lo:hi from mbar to feet | 678 call convert_mbar_to_feet ; convert value in lo:hi from mbar to feet |
594 bsf leftbind | 679 bsf leftbind |
595 output_16 ; Change depth in lo:hi | 680 output_16 ; Change depth in lo:hi |
596 bcf leftbind | 681 bcf leftbind |
597 STRCAT_TEXT tFeets | 682 STRCAT_TEXT tFeets |
598 return | 683 return |
599 customview_show_mix_metric: | 684 customview_show_mix_metric: |
600 output_99 ; Change depth in lo | 685 output_99 ; Change depth in lo |
601 STRCAT_TEXT tMeters | 686 STRCAT_TEXT tMeters |
602 return | 687 return |
603 | 688 |
604 | 689 |
605 global customview_show_mix | 690 global customview_show_mix |
606 customview_show_mix: ; Put "Nxlo", "Txlo/hi", "Air" or "O2" into Postinc2 | 691 customview_show_mix: ; Put "Nxlo", "Txlo/hi", "Air" or "O2" into Postinc2 |
607 tstfsz hi ; He=0? | 692 tstfsz hi ; He=0? |
608 bra customview_show_mix5 ; No, Show a TX | 693 bra customview_show_mix5 ; No, Show a TX |
609 movlw .21 | 694 movlw .21 |
610 cpfseq lo ; Air? | 695 cpfseq lo ; Air? |
611 bra customview_show_mix2 ; No | 696 bra customview_show_mix2 ; No |
612 STRCAT_TEXT tSelectAir ; Yes, show "Air" | 697 STRCAT_TEXT tSelectAir ; Yes, show "Air" |
613 bra customview_show_mix4b | 698 bra customview_show_mix4b |
614 customview_show_mix2: | 699 customview_show_mix2: |
615 movlw .100 | 700 movlw .100 |
616 cpfseq lo ; O2? | 701 cpfseq lo ; O2? |
617 bra customview_show_mix3 ; No | 702 bra customview_show_mix3 ; No |
618 STRCAT_TEXT tSelectO2 ; Yes, show "O2" | 703 STRCAT_TEXT tSelectO2 ; Yes, show "O2" |
619 bra customview_show_mix4b | 704 bra customview_show_mix4b |
620 | 705 |
621 customview_show_mix3: | 706 customview_show_mix3: |
622 movlw .21 | 707 movlw .21 |
623 cpfslt lo ; < Nx21? | 708 cpfslt lo ; < Nx21? |
624 bra customview_show_mix4 ; No | 709 bra customview_show_mix4 ; No |
625 STRCAT_TEXT tGasErr ; Yes, show "Err" | 710 STRCAT_TEXT tGasErr ; Yes, show "Err" |
626 output_99 ; O2 ratio is still in "lo" | 711 output_99 ; O2 ratio is still in "lo" |
627 bra customview_show_mix4c | 712 bra customview_show_mix4c |
628 | 713 |
629 customview_show_mix4: | 714 customview_show_mix4: |
630 STRCAT_TEXT tSelectNx ; Show "Nx" | 715 STRCAT_TEXT tSelectNx ; Show "Nx" |
631 output_99 ; O2 ratio is still in "lo" | 716 output_99 ; O2 ratio is still in "lo" |
632 customview_show_mix4b: | 717 customview_show_mix4b: |
633 STRCAT " " | 718 STRCAT " " |
634 customview_show_mix4c: | 719 customview_show_mix4c: |
635 btfsc divemode ; In divemode | 720 btfsc divemode ; In divemode |
636 return ; Yes | 721 return ; Yes |
637 STRCAT " " | 722 STRCAT " " |
638 return | 723 return |
639 | 724 |
640 customview_show_mix5: | 725 customview_show_mix5: |
641 btfsc divemode | 726 btfsc divemode |
642 bra customview_show_mix6 | 727 bra customview_show_mix6 |
643 STRCAT_TEXT tSelectTx ; Show "Tx" | 728 STRCAT_TEXT tSelectTx ; Show "Tx" |
644 customview_show_mix6: | 729 customview_show_mix6: |
645 output_99 ; O2 ratio is still in "lo" | 730 output_99 ; O2 ratio is still in "lo" |
646 PUTC "/" | 731 PUTC "/" |
647 movff hi,lo | 732 movff hi,lo |
648 output_99 ; He ratio | 733 output_99 ; He ratio |
649 return | 734 return |
650 | 735 |
651 END | 736 END |