Mercurial > public > hwos_code
view src/customview.asm @ 634:4050675965ea
3.10 stable release
author | heinrichsweikamp |
---|---|
date | Tue, 28 Apr 2020 17:34:31 +0200 |
parents | 185ba2f91f59 |
children | 75e90cd0c2c3 |
line wrap: on
line source
;============================================================================= ; ; File customview.asm * combined next generation V3.09.5 ; ; Custom Views in Surface and Dive Mode ; ; Copyright (c) 2011, JD Gascuel, HeinrichsWeikamp, all right reserved. ;============================================================================= ; HISTORY ; 2011-08-10 : [mH] moving from OSTC code ;============================================================================= #include "hwos.inc" ; mandatory header #include "tft_outputs.inc" #include "strings.inc" #include "tft.inc" #include "wait.inc" #include "surfmode.inc" #include "convert.inc" #include "divemode.inc" #include "i2c.inc" #include "start.inc" #include "colorschemes.inc" extern gaslist_strcat_gas_PRODL extern char_I_model IFDEF _compass extern TFT_surface_compass_mask extern TFT_dive_compass_mask ENDIF #DEFINE num_premenu_items .12 ; overall number of pre-menu items #DEFINE num_surface_cv .10 ; overall number of surface custom views ;============================================================================= custview1 CODE ;============================================================================= ;----------------------------------------------------------------------------- ; Jump Table for the every-second Tasks for the Custom View Area (Dive Mode) ; ; Attention: the ordering must be in line with the init jump table and the ; index numbers defined in hwos.inc! ; global dive_customview_second dive_customview_second: movf active_customview,W ; get current view dcfsnz WREG,F ; goto TFT_avr_stopwatch ; 1: average depth and stopwatch dcfsnz WREG,F ; IFDEF _compass return ; 2: compass - will be updated separately (faster) in dive mode ELSE return ; 2: not available without compass ENDIF dcfsnz WREG,F ; IFDEF _external_sensor goto TFT_ppo2_sensors ; 3: ppO2 sensors ELSE return ; 3: not available without external sensors ENDIF dcfsnz WREG,F ; IFDEF _ccr_pscr goto TFT_sensor_check ; 4: sensor check ELSE return ; 4: not available without CCR / pSCR mode ENDIF dcfsnz WREG,F ; IFDEF _ccr_pscr goto TFT_pscr_info ; 5: pSCR data ELSE return ; 5: not available without CCR / pSCR mode ENDIF dcfsnz WREG,F ; IFDEF _rx_functions goto TFT_pressures_SAC ; 6: tank pressure and SAC rate ELSE return ; 6: not available without RX functions ENDIF dcfsnz WREG,F ; goto TFT_gas_needs ; 7: gas needs for ascent / cave return dcfsnz WREG,F ; IFDEF _cave_mode goto TFT_cave_tts ; 8: cave mode TTS ELSE return ; 8: not available without cave mode functions ENDIF dcfsnz WREG,F ; goto TFT_decoplan ; 9: deco plan dcfsnz WREG,F ; goto TFT_ceiling_GF_tissue ; 10: ceiling, current GF and tissues dcfsnz WREG,F ; goto TFT_CNS ; 11: CNS values dcfsnz WREG,F ; goto TFT_ppo2_ead_end_cns ; 12: ppO2, END/EAD and CNS / gas density dcfsnz WREG,F ; goto TFT_clock_batt_surfpress ; 13: clock, battery and surface pressure dcfsnz WREG,F ; return ; 14: GF factors - static only dcfsnz WREG,F ; IFDEF _cave_mode goto TFT_cave_waypoints ; 15: cave waypoints ELSE return ; 15: not available without cave mode functions ENDIF return ; 0: do nothing ;============================================================================= custview2 CODE ;============================================================================= ;----------------------------------------------------------------------------- ; Show next Surface Custom View ; global surf_customview_toggle surf_customview_toggle: bcf switch_right ; clear button event incf active_customview,F ; set number of the next custom view to show IFDEF _compass movlw .6 ; load index of surface custom view compass cpfseq active_customview ; will the compass be shown in custom view? call I2C_sleep_compass ; NO - can stop the compass to save on energy ENDIF movlw num_surface_cv ; load number of custom views available cpfsgt active_customview ; beyond last view? bra surf_customview_mask ; NO - show view movlw .1 ; YES - wrap around to 1st view movwf active_customview ; - ... ;bra surf_customview_mask ; - show view ;----------------------------------------------------------------------------- ; Show Surface Custom View ; global surf_customview_mask surf_customview_mask: ; prepare output of custom view title WIN_BOX_BLACK .50,surf_warning1_row-1, .0, surf_decotype_column-.1 ; top, bottom, left, right WIN_TINY surf_customview_title_column,surf_customview_title_row ; set title position FONT_COLOR color_greenish ; set title color ; jump table movf active_customview,W ; get custom view to show movff WREG,customview_surfmode ; save number for later recall dcfsnz WREG,F ; 1: bra surf_customview_init_view1 ; OC gas list dcfsnz WREG,F ; 2: bra surf_customview_init_view2 ; CC dil list dcfsnz WREG,F ; 3: bra surf_customview_init_view3 ; CC SP list dcfsnz WREG,F ; 4: bra surf_customview_init_view4 ; custom text dcfsnz WREG,F ; 5: bra surf_customview_init_view5 ; tissue diagram dcfsnz WREG,F ; 6: bra surf_customview_init_view6 ; compass dcfsnz WREG,F ; 7: bra surf_customview_init_view7 ; deco settings dcfsnz WREG,F ; 8: bra surf_customview_init_view8 ; last dive info dcfsnz WREG,F ; 9: bra surf_customview_init_view9 ; sensor mV readings dcfsnz WREG,F ; 10: bra surf_customview_init_view10 ; tank data bra surf_customview_init_view4 ; 0: default view after restart and loading of new firmware surf_cv_toggle_exit: bcf request_next_custview ; clear request flag return ; done ; ---- view 1: OC Gas list ---- ; surf_customview_init_view1: btfsc FLAG_gauge_mode ; in gauge mode? bra surf_customview_toggle ; YES - not available in gauge mode, goto next view btfsc FLAG_apnoe_mode ; in apnoe mode? bra surf_customview_toggle ; YES - not available in apnoe mode, goto next view IFDEF _ccr_pscr btfss FLAG_oc_mode ; in OC mode? bra surf_customview_init_view1a ; NO - (1) ENDIF STRCPY_TEXT_PRINT tGaslist ; YES - title of custom view / OC mode IFDEF _ccr_pscr bra surf_customview_init_view1b ; - continue with common part surf_customview_init_view1a: STRCPY_TEXT_PRINT tDiveBailout ; (1) - title of custom view / CCR & pSCR mode ENDIF surf_customview_init_view1b: call TFT_surf_cv_list_gas ; show gas list bra surf_cv_toggle_exit ; done ; ---- view 2: CCR / pSCR diluent list ---- ; surf_customview_init_view2: IFDEF _ccr_pscr btfsc FLAG_ccr_mode ; in CCR mode? bra surf_customview_init_view2a ; YES - (1) btfsc FLAG_pscr_mode ; in pSCR mode? bra surf_customview_init_view2a ; YES - (1) bra surf_customview_toggle ; NO - not available if not in CCR or pSCR mode, goto next view surf_customview_init_view2a: STRCPY_TEXT_PRINT tGaslistCC ; (1) - title of custom view call TFT_surf_cv_list_dil ; - show diluent list bra surf_cv_toggle_exit ; - done ELSE bra surf_customview_toggle ; not available without CCR/pSCR mode compiled in, goto next view ENDIF ; ---- view 3: CC SP list ---- ; surf_customview_init_view3: IFDEF _ccr_pscr btfss FLAG_ccr_mode ; in CCR mode? bra surf_customview_toggle ; NO - not available if not in CCR mode, goto next view STRCPY_TEXT_PRINT tFixedSetpoints ; YES - title of custom view call TFT_surf_cv_list_sp ; - show setpoint list bra surf_cv_toggle_exit ; - done ELSE bra surf_customview_toggle ; not available without CCR/pSCR mode compiled in, goto next view ENDIF ; ---- view 4: custom text ; surf_customview_init_view4: call TFT_surf_cv_text ; show the custom text bra surf_cv_toggle_exit ; done ; ---- view 5: tissue diagram ; surf_customview_init_view5: btfsc FLAG_gauge_mode ; in gauge mode? bra surf_customview_toggle ; YES - not available in gauge mode, goto next view btfsc FLAG_apnoe_mode ; in apnoe mode? bra surf_customview_toggle ; YES - not available in apnoe mode, goto next view call TFT_surf_cv_tissues ; show tissue diagram bra surf_cv_toggle_exit ; done ; ---- view 6: compass ; surf_customview_init_view6: IFDEF _compass call I2C_init_compass ; start compass call TFT_surface_compass_mask ; show compass mask bra surf_cv_toggle_exit ; done ELSE bra surf_customview_toggle ; not available without compass compiled in, goto next view ENDIF ; ---- view 7: deco settings ---- ; surf_customview_init_view7: btfsc FLAG_gauge_mode ; in gauge mode? bra surf_customview_toggle ; YES - not available in gauge mode, goto next view btfsc FLAG_apnoe_mode ; in apnoe mode? bra surf_customview_toggle ; YES - not available in apnoe mode, goto next view call TFT_surf_cv_settings ; show all deco settings bra surf_cv_toggle_exit ; done ; ---- view 8: last dive info ---- ; surf_customview_init_view8: call TFT_surf_cv_lastdive ; show last dive info bra surf_cv_toggle_exit ; done ; ---- view 9: sensor mV at the surface ---- ; surf_customview_init_view9: IFDEF _external_sensor btfsc FLAG_ccr_mode ; in CCR mode? bra surf_customview_init_view9a ; YES - show view btfsc FLAG_pscr_mode ; NO - in pSCR mode? bra surf_customview_init_view9a ; YES - show view bra surf_customview_toggle ; NO - not available if not in CCR or pSCR mode, goto next view surf_customview_init_view9a: movff opt_ccr_mode,WREG ; get SP mode (0: fixed SP, 1: Sensor, 2: auto SP) decfsz WREG,W ; opt_ccr_mode = 1 (sensor)? bra surf_customview_toggle ; NO - goto next view STRCPY_TEXT_PRINT tSensorMilliVolt ; YES - title of custom view call TFT_imprint_surf_mV ; - write sensor mV readings to screen bra surf_cv_toggle_exit ; - done ELSE bra surf_customview_toggle ; not available without CCR/pSCR mode compiled in, goto next view ENDIF ; ---- view 10: transmitter data / debug ---- ; surf_customview_init_view10: IFDEF _rx_functions btfss tr_functions_activated ; TR functions activated? bra surf_customview_toggle ; NO - show next view in list STRCAT_PRINT "ID bar Volt" ; YES - title of custom view (none language-dependent) call TFT_surf_cv_tankdata ; - show received data bra surf_cv_toggle_exit ; - done ELSE bra surf_customview_toggle ; not available without RX functions compiled in, goto next view ENDIF ;============================================================================= custview3 CODE ;============================================================================= ;----------------------------------------------------------------------------- ; Show next Pre-Menu Item / Clear the Pre-Menu ; global menuview_toggle menuview_toggle: bcf switch_left ; clear button event movlw divemode_timeout_premenu ; get timeout for dive mode pre-menu call restart_timeout_time ; restart the timeout bsf dive_pre_menu ; flag that the pre-menu is shown menuview_next_item: incf active_premenu,F ; increment pre-menu item number movlw num_premenu_items ; get number of pre-menu items cpfsgt active_premenu ; beyond last item? bra menuview_mask ; NO - show item ;bra menuview_toggle_reset ; YES - reset to first item global menuview_toggle_reset menuview_toggle_reset: clrf active_premenu ; reset pre-menu item number bcf dive_pre_menu ; flag that the pre-menu is not shown anymore ;bra menuview_mask ; clear last item from display menuview_mask: WIN_BOX_BLACK dm_premenu_row, dm_premenu_bot, dm_premenu_col, dm_premenu_rgt ; top, bottom, left, right btfsc dive_pre_menu ; shall show pre-menu? bra menuview_show_item ; YES - show menu item ;bra menuview_exit ; NO - done with pre-menu menuview_exit: bcf win_invert ; clear inverse printing btfss dive_pre_menu ; showing pre-menu? goto TFT_show_temp_divemode ; NO - restore temperature display and return return ; YES - done menuview_show_item: WIN_SMALL dm_premenu_col,dm_premenu_row FONT_COLOR_ATTENTION ; set color bsf win_invert ; set inverse printing movf active_premenu,W ; get active pre-menu item dcfsnz WREG,F bra menuview_view_gaschange ; 1: gas change (skipped if no better gas/dil cued) dcfsnz WREG,F bra menuview_view_ackn ; 2: "Ackn?" (skipped if no active advice/attention/warning sign) dcfsnz WREG,F bra menuview_view_divemenu ; 3: "Menu?" (skipped in gauge and apnoe modes) dcfsnz WREG,F IFDEF _cave_mode bra menuview_view_cavemenu ; 4: "Cave?" (skipped if not in cave mode) ELSE bra menuview_next_item ; 4: cave mode not implemented, goto next item ENDIF dcfsnz WREG,F bra menuview_view_sim_quit ; 5: "Quit?" (in simulation mode only) dcfsnz WREG,F bra menuview_view_sim_down ; 6: "Sim down" (in simulation mode only) dcfsnz WREG,F bra menuview_view_sim_up ; 7: "Sim up" (in simulation mode only) dcfsnz WREG,F bra menuview_view_sim_time ; 8: "Sim+5'" (in simulation mode only) dcfsnz WREG,F bra menuview_view_apnoe_quit ; 9: "Quit?" (in apnoe mode only) dcfsnz WREG,F bra menuview_view_gauge_reset ; 10: "Reset Avr" (in gauge mode only) dcfsnz WREG,F IFDEF _compass bra menuview_view_course ; 11: "Course" (only when compass is shown) ELSE bra menuview_next_item ; 11: compass not implemented, goto next item ENDIF dcfsnz WREG,F bra menuview_view_layout ; 12: "Layout" (offer alternative layout, aka blind mode) bra menuview_exit ; catch illegal item number ; when adding or removing items, adjust the value num_premenu_items in the #DEFINE ! ; --- item 1: gas change advice --- ; menuview_view_gaschange: btfsc request_gas_change ; last gas change request already executed? bra menuview_next_item ; YES - goto next option IFDEF _ccr_pscr btfsc FLAG_oc_mode ; in OC mode? bra menuview_view_gaschange_OC ; YES btfsc bailout_mode ; in bailout? bra menuview_view_gaschange_OC ; YES menuview_view_gaschange_DIL: btfss better_dil_available ; is the better diluent still available? bra menuview_next_item ; NO - goto next item movff best_dil_number,PRODL ; number (1-5) of the "best diluent" bsf is_diluent_menu ; setting up diluents bra menuview_view_gaschange_com ; continue with common part ENDIF ; _ccr_pscr menuview_view_gaschange_OC: btfss better_gas_available ; is the better gas still available? bra menuview_next_item ; NO - goto next item movff best_gas_number,PRODL ; YES - number (1-5) of the "best gas" bcf is_diluent_menu ; - setting up OC gases menuview_view_gaschange_com: decf PRODL,F ; (1-5) -> (0-4) bsf short_gas_descriptions ; use short version of gaslist_strcat_gas_PRODL and gaslist_strcat_setpoint bsf better_gas_hint ; color-code as best gas/diluent call gaslist_strcat_gas_PRODL ; append gas description of gas #PRODL (0-4) to current string movlw .5 ; point to 6th character (5 chars are used for the gas/dil description) movwf FSR2L ; ... PUTC_PRINT "?" ; append question and dump buffer to screen bra menuview_exit ; done ; ---- item 2: acknowledge ---- ; menuview_view_ackn: btfss sign_shown ; advice, attention or warning sign shown? bra menuview_next_item ; NO - goto next item STRCAT_TEXT_PRINT tDiveAckn ; YES - print "Ackn?" bra menuview_exit ; - done ; ---- item 3: dive menu ---- ; menuview_view_divemenu: btfsc FLAG_apnoe_mode ; in apnoe mode? bra menuview_next_item ; YES - goto next item btfsc FLAG_gauge_mode ; NO - in gauge mode? bra menuview_next_item ; YES - goto next item PUTC "\xb7" ; NO - print '->' symbol STRCAT_TEXT_PRINT tDivePreMenu ; - print "Menu?" bra menuview_exit ; - done ; ---- item 4: cave menu ---- ; IFDEF _cave_mode menuview_view_cavemenu: TSTOSS opt_cave_mode ; cave mode switched on? bra menuview_next_item ; NO - goto next item PUTC "\xb7" ; YES - print '->' symbol STRCAT_TEXT_PRINT tDivePreCave ; - print "Cave?" bra menuview_exit ; - done ENDIF ; _cave_mode ; ---- item 5: quit simulator --- ; menuview_view_sim_quit: btfss simulatormode ; in simulator mode? bra menuview_next_item ; NO - goto next item STRCPY_TEXT_PRINT tQuitSim ; YES - print "Quit Simulation?" bra menuview_exit ; - done ; ---- item 6: simulator - go down ---- ; menuview_view_sim_down: btfss simulatormode ; in simulator mode? bra menuview_next_item ; NO - goto next item STRCPY_PRINT "Sim\xb8" ; print down arrow for going down bra menuview_exit ; done ; ---- item 7: simulator - go up ---- ; menuview_view_sim_up: btfss simulatormode ; in simulator mode? bra menuview_next_item ; NO - goto next item STRCPY_PRINT "Sim\xb9" ; YES - print up arrow for going up bra menuview_exit ; - done ; ---- item 8: simulator - advance time ---- ; menuview_view_sim_time: btfss simulatormode ; in simulator mode? bra menuview_next_item ; NO - goto next item btfsc FLAG_gauge_mode ; YES - in gauge mode? bra menuview_next_item ; YES - goto next item btfsc FLAG_apnoe_mode ; NO - in apnoe mode? bra menuview_next_item ; YES - goto next item STRCPY_PRINT "Sim+5'" ; NO - print "Sim+5'" bra menuview_exit ; - done ; ---- item 9: apnoe mode - quit ---- ; menuview_view_apnoe_quit: btfss FLAG_apnoe_mode ; in apnoe mode? bra menuview_next_item ; NO - goto next option btfss apnoe_at_surface ; YES - at the surface? bra menuview_next_item ; NO - goto next item STRCPY_TEXT_PRINT tQuitSim ; YES - print "Quit Apnea mode?" bra menuview_exit ; - done ; ---- item 10: gauge mode - reset average ---- ; menuview_view_gauge_reset: btfss FLAG_gauge_mode ; in gauge mode? bra menuview_next_item ; NO - goto next item STRCPY_TEXT_PRINT tResetAvg ; YES - print "Reset Avg." bra menuview_exit ; - done ; ---- item 11: set bearing ---- IFDEF _compass menuview_view_course: movlw index_compass_dm ; index of compass view cpfseq active_customview ; in compass view? bra menuview_next_item ; NO - goto next item STRCPY_TEXT_PRINT tSetHeading ; YES - print "Heading" bra menuview_exit ; - done ENDIF ; ---- item 12: switch layout ---- ; menuview_view_layout: btfsc FLAG_apnoe_mode ; in apnoe mode? bra menuview_next_item ; YES - goto next item STRCPY_TEXT_PRINT tDiveLayout ; NO - print "Layout" bra menuview_exit ; - done ;============================================================================= custview4 CODE ;============================================================================= ;----------------------------------------------------------------------------- ; Show a specific Dive Mode Custom View ; global dive_customview_show dive_customview_show: btfss custom_view_locked ; custom view locked? bra dive_customview_show_1 ; NO - call-up the view movwf backup_customview ; YES - store requested custom view for later recall return ; - done dive_customview_show_1: movwf active_customview ; set the requested custom view bra dive_customview_callup ; call-up the custom view ;----------------------------------------------------------------------------- ; Show again last Dive Mode Custom View ; global dive_customview_recall dive_customview_recall: movff backup_customview,active_customview ; recall the saved custom view bra dive_customview_callup ; call-up the custom view ;----------------------------------------------------------------------------- ; Show next Dive Mode Custom View ; global dive_customview_toggle dive_customview_toggle: incf active_customview,F ; increment number of custom view to show movlw index_cv_dm_max ; get highest index in use in dive mode custom view cpfsgt active_customview ; beyond last view? bra dive_customview_callup ; NO - call-up the custom view clrf active_customview ; YES - reset to zero (zero = blank custom view) ;bra dive_customview_callup ; call-up the custom view ;----------------------------------------------------------------------------- ; Show current Dive Mode Custom View ; global dive_customview_callup dive_customview_callup: movlw index_compass_dm ; get index of compass custom view cpfseq active_customview ; will compass be shown? call I2C_sleep_compass ; NO - stop compass to save on energy ; clear custom view area in dive mode WIN_BOX_BLACK dm_customview_row, dm_customview_bot-.2, dm_customview_column, dm_customview_rgt ; top, bottom, left, right ; jump table movf active_customview,W ; get custom view to show dcfsnz WREG,F ; bra init_avr_stopwatch ; 1: average depth and stopwatch dcfsnz WREG,F ; bra init_TFT_dive_compass ; 2: compass dcfsnz WREG,F ; bra init_ppo2_sensors ; 3: ppO2 sensors dcfsnz WREG,F ; bra init_sensor_check ; 4: sensor check dcfsnz WREG,F ; bra init_pscr_info ; 5: pSCR data dcfsnz WREG,F ; bra init_pressures_SAC ; 6: tank pressure and SAC rate dcfsnz WREG,F ; bra init_gas_needs_ascent ; 7: gas needs for ascent / cave return dcfsnz WREG,F ; bra init_cave_tts ; 8: cave mode TTS dcfsnz WREG,F ; bra init_decoplan ; 9: deco plan (next stops) dcfsnz WREG,F ; bra init_ceiling_GF_tissue ; 10: ceiling, current GF and tissues dcfsnz WREG,F ; bra init_CNS ; 11: CNS values dcfsnz WREG,F ; bra init_ppo2_ead_end_cns ; 12: ppO2, END/EAD and CNS/gas density dcfsnz WREG,F ; bra init_clock_batt_surfpress ; 13: clock, battery and surface pressure dcfsnz WREG,F ; bra init_gf_factors ; 14: GF factors dcfsnz WREG,F ; bra init_cave_waypoints ; 15: cave waypoints ;bra dive_cv_toggle_exit ; 0: no view (blank screen in custom view area) dive_cv_toggle_exit: bcf request_next_custview ; clear request flag return ; done ; ---- view 1: average depth and stopwatch ---- ; init_avr_stopwatch: btfsc FLAG_apnoe_mode ; in apnoe mode? bra dive_customview_toggle ; YES - goto next view call TFT_avr_stopwatch_mask ; NO - mask for average depth and stopwatch call TFT_avr_stopwatch ; - data for average depth and stopwatch bra dive_cv_toggle_exit ; - done ; ---- view 2: compass ---- ; init_TFT_dive_compass: IFDEF _compass call I2C_init_compass ; start compass call TFT_dive_compass_mask ; mask for compass bra dive_cv_toggle_exit ; done ELSE bra dive_customview_toggle ; not available without compass compiled in, goto next view ENDIF ; ---- view 3: ppO2 sensors --- ; init_ppo2_sensors: IFDEF _external_sensor bsf trigger_temp_changed ; fake a change of the temperature to have the resettable dive time overwritten which was shown with the compass view btfsc FLAG_ccr_mode ; in CC mode? bra init_ppo2_sensors_1 ; YES btfsc FLAG_pscr_mode ; in pSCR mode? bra init_ppo2_sensors_1 ; YES bra dive_customview_toggle ; NO to both, goto next view init_ppo2_sensors_1: btfsc ext_input_s8_ana ; do we have an S8/analog input? bra init_ppo2_sensors_2 ; YES - show this view btfsc ext_input_optical ; NO - do we have an optical input? bra init_ppo2_sensors_2 ; YES - show this view bra dive_customview_toggle ; NO - goto next view init_ppo2_sensors_2: call TFT_ppo2_sensors_mask ; mask for ppO2 sensors call TFT_ppo2_sensors ; data for ppO2 sensors bra dive_cv_toggle_exit ; done ELSE bra dive_customview_toggle ; not available without external sensors, got next view ENDIF ; ---- view 4: sensor check ---- ; init_sensor_check: IFDEF _ccr_pscr btfss FLAG_ccr_mode ; in CCR mode? bra dive_customview_toggle ; NO - goto next view call TFT_sensor_check_mask ; YES - mask for sensor check call TFT_sensor_check ; - data for sensor check bra dive_cv_toggle_exit ; - done ELSE bra dive_customview_toggle ; not available without CCR mode compiled in, goto next view ENDIF ; ---- view 5: pSCR data ---- ; init_pscr_info: IFDEF _ccr_pscr btfss FLAG_pscr_mode ; in pSCR mode? bra dive_customview_toggle ; NO - goto next view call TFT_pscr_info_mask ; YES - mask for pSCR info call TFT_pscr_info ; - data for pSCR info bra dive_cv_toggle_exit ; - done ELSE bra dive_customview_toggle ; not available without CCR / pSCR mode, goto next view ENDIF ; view 6: tank pressure and SAC rate ---- ; init_pressures_SAC: IFDEF _rx_functions btfss tr_functions_activated ; TR functions activated? bra dive_customview_toggle ; NO - goto next view call TFT_pressures_SAC_mask ; YES - mask for pressures and SAC call TFT_pressures_SAC ; - data for pressures and SAC bra dive_cv_toggle_exit ; - done ELSE bra dive_customview_toggle ; not available without RX functions, got next view ENDIF ; ---- view 7: gas needs ---- ; init_gas_needs_ascent: btfsc FLAG_apnoe_mode ; in apnoe mode? bra dive_customview_toggle ; YES - goto next view btfsc FLAG_gauge_mode ; NO - in gauge mode? bra dive_customview_toggle ; YES - goto next view TSTOSS opt_calc_gasvolume ; NO - check if gas volume calculation is switched on bra dive_customview_toggle ; NO - goto next view call TFT_gas_needs_mask ; YES - mask for gas needs ascent call TFT_gas_needs ; - data for gas needs ascent bra dive_cv_toggle_exit ; - done ; ---- view 8: cave mode TTS ---- init_cave_tts: IFDEF _cave_mode btfss cave_mode ; in cave mode? bra dive_customview_toggle ; NO - goto next view call TFT_cave_tts_mask ; YES - show mask call TFT_cave_tts ; - show data bra dive_cv_toggle_exit ; - done ELSE bra dive_customview_toggle ; not available without cave mode, goto next view ENDIF ; ---- view 9: deco plan ---- ; init_decoplan: btfsc FLAG_apnoe_mode ; in apnoe mode? bra dive_customview_toggle ; YES - goto next view btfsc FLAG_gauge_mode ; NO - in gauge mode? bra dive_customview_toggle ; YES - goto next view call TFT_decoplan_mask ; NO - mask for deco plan call TFT_decoplan ; - data for deco plan bra dive_cv_toggle_exit ; - done ; ---- view 10: ceiling, tissues and current GF ; init_ceiling_GF_tissue: btfsc FLAG_apnoe_mode ; in apnoe mode? bra dive_customview_toggle ; YES - goto next view btfsc FLAG_gauge_mode ; NO - in gauge mode? bra dive_customview_toggle ; YES - call next view call TFT_ceiling_GF_tissue_mask ; NO - mask for ceiling, current GF and tissues call TFT_ceiling_GF_tissue ; - data for ceiling, current GF and tissues bra dive_cv_toggle_exit ; - done ; ---- view 11: CNS values ---- ; init_CNS: ; CNS at end of dive btfsc FLAG_gauge_mode ; in gauge mode? bra dive_customview_toggle ; YES - call next view btfsc FLAG_apnoe_mode ; NO - in apnoe mode? bra dive_customview_toggle ; YES - call next view call TFT_CNS_mask ; NO - mask for CNS values call TFT_CNS ; - data for CNS values bra dive_cv_toggle_exit ; - done ; ---- view 12: ppO2, END/EAD and CNS/gas density ---- ; init_ppo2_ead_end_cns: ; btfsc FLAG_apnoe_mode ; in apnoe mode? bra dive_customview_toggle ; YES - goto next view btfsc FLAG_gauge_mode ; NO - in gauge mode? bra dive_customview_toggle ; YES - goto next view call TFT_ppo2_ead_end_cns_mask ; NO - mask for ppO2, END/EAD and CNS call TFT_ppo2_ead_end_cns ; - data for ppO2, END/EAD and CNS bra dive_cv_toggle_exit ; - done ; ---- view 13: clock, battery and surface pressure ; init_clock_batt_surfpress: call TFT_clock_batt_surfpress_mask ; mask for clock, battery and surface pressure call TFT_clock_batt_surfpress ; data for clock, battery and surface pressure bra dive_cv_toggle_exit ; done ; ---- view 14: GF factors ; init_gf_factors: call TFT_gf_factors_mask ; show GF factors bra dive_cv_toggle_exit ; done ; ---- view 15: cave waypoints ---- ; init_cave_waypoints: IFDEF _cave_mode call TFT_cave_waypoints ; show waypoint graphics bra dive_cv_toggle_exit ; done ELSE bra dive_customview_toggle ; not available without cave mode, goto next view ENDIF ;----------------------------------------------------------------------------- END