Mercurial > public > hwos_code
view src/customview.asm @ 632:0347acdf6d8e
changelog updates
author | heinrichsweikamp |
---|---|
date | Sat, 29 Feb 2020 16:57:45 +0100 |
parents | 185ba2f91f59 |
children | 4050675965ea |
line wrap: on
line source
;============================================================================= ; ; File customview.asm combined next generation V3.08.8 ; ; 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" extern gaslist_strcat_gas_cd extern char_I_model IFDEF _compass extern TFT_surface_compass_mask extern TFT_dive_compass_mask ENDIF #DEFINE num_premenu_items .11 ; overall number of pre-menu items custview 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 ;----------------------------------------------------------------------------- global surf_customview_toggle surf_customview_toggle: bcf switch_right ; clear button event incf active_customview,F ; number of custom view to show IFDEF _compass movlw .6 ; index of surface custom view compass cpfseq active_customview ; will compass be shown in custom view? call I2C_sleep_compass ; NO - stop compass ENDIF movlw d'10' ; max number of custom views in surface mode cpfsgt active_customview ; max reached? bra surf_customview_mask ; NO - show movlw .1 ; YES - wrap around to 1st view movwf active_customview ; - ... ;bra surf_customview_mask ; - show global surf_customview_mask surf_customview_mask: 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 WIN_COLOR color_greenish ; set title color 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 ; default view after restart and loading of new firmware surf_customview_init_view1: ; view 1: OC Gas list 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_standard_color ; set color call TFT_gaslist_surfmode ; show gas list bra customview_toggle_exit ; done surf_customview_init_view2: ; view 2: CCR / pSCR diluent list 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_standard_color ; - set color call TFT_dillist_surfmode ; - show diluent list bra customview_toggle_exit ; - done ELSE bra surf_customview_toggle ; not available without CCR/pSCR mode compiled in, goto next view ENDIF surf_customview_init_view3: ; view 3: CC SP list 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_standard_color ; - set color call TFT_splist_surfmode ; - show setpoint list bra customview_toggle_exit ; - done ELSE bra surf_customview_toggle ; not available without CCR/pSCR mode compiled in, goto next view ENDIF surf_customview_init_view9: ; view 9: sensor mV at the surface IFDEF _external_sensor btfsc FLAG_ccr_mode ; in CCR mode? bra surf_customview_init_view9a ; YES - (1) btfsc FLAG_pscr_mode ; in pSCR mode? bra surf_customview_init_view9a ; YES - (1) 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 ; (1) - get SP mode (0: fixed SP, 1: Sensor, 2: auto SP) sublw .1 ; - opt_ccr_mode = 1 (sensor)? bnz surf_customview_toggle ; NO - goto next view STRCPY_TEXT_PRINT tSensorMilliVolt ; YES - title of custom view call TFT_standard_color ; - set color call TFT_sensor_mV ; - write sensor mV readings to screen bra customview_toggle_exit ; - done ELSE bra surf_customview_toggle ; not available without CCR/pSCR mode compiled in, goto next view ENDIF surf_customview_init_view4: ; view 4: custom text call TFT_standard_color ; set color call TFT_custom_text ; show the custom text bra customview_toggle_exit ; done surf_customview_init_view5: ; view 5: tissue diagram 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_standard_color ; set color call TFT_surface_tissues ; show tissue diagram bra customview_toggle_exit ; done surf_customview_init_view6: ; view 6: compass IFDEF _compass call I2C_init_compass ; start compass call TFT_surface_compass_mask ; show compass mask bra customview_toggle_exit ; done ELSE bra surf_customview_toggle ; not available without compass compiled in, goto next view ENDIF surf_customview_init_view7: ; view 7: deco settings 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_surface_decosettings ; show all deco settings bra customview_toggle_exit ; done surf_customview_init_view8: ; view 8: last dive info call TFT_standard_color ; set color call TFT_surface_lastdive ; show last dive info bra customview_toggle_exit ; done surf_customview_init_view10: ; view 10: transmitter data / debug 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_surface_tankdata ; - show received data bra customview_toggle_exit ; - done ELSE bra surf_customview_toggle ; not available without RX functions compiled in, goto next view ENDIF ;----------------------------------------------------------------------------- global menuview_toggle global menuview_toggle_reset menuview_toggle: ; show main menu or the pre-menu bcf switch_left ; clear button event movlw divemode_timeout_premenu ; get timeout for dive mode pre-menu call reset_timeout_time ; reset timeout bsf dive_options_menu ; flag that the dive options menu is shown incf active_premenu,F ; increment pre-menu item number movlw num_premenu_items ; get count of pre-menu items cpfsgt active_premenu ; max reached? bra menuview_mask ; NO - show item ;bra menuview_toggle_reset ; YES - reset selector menuview_toggle_reset: ; timeout occurred, beyond max number of options, or item executed clrf active_premenu ; reset pre-menu selector bcf dive_options_menu ; the dive options menu is not shown anymore menuview_mask: WIN_BOX_BLACK dm_premenu_row, dm_premenu_bot, dm_premenu_col, dm_premenu_rgt ; top, bottom, left, right tstfsz active_premenu ; any pre-menu selected? bra menuview_items ; YES - display menu item bcf win_invert ; NO - end inverse printing btfss FLAG_apnoe_mode ; - in apnoe mode? goto TFT_show_temp_divemode ; YES - restore temperature and done goto TFT_standard_color ; NO - done menuview_items: call TFT_attention_color ; set color bsf win_invert ; set inverse printing WIN_SMALL dm_premenu_col,dm_premenu_row 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_divemenu ; 2: "Menu?" (skipped in gauge and apnoe modes) dcfsnz WREG,F IFDEF _cave_mode bra menuview_view_cavemenu ; 3: "Cave?" (skipped if not in cave mode) ELSE bra menuview_toggle ; 3: cave mode not implemented, go to next menu item ENDIF dcfsnz WREG,F bra menuview_view_sim_quit ; 4: "Quit?" (in simulation mode only) dcfsnz WREG,F bra menuview_view_sim_down ; 5: "Sim down" (in simulation mode only) dcfsnz WREG,F bra menuview_view_sim_up ; 6: "Sim up" (in simulation mode only) dcfsnz WREG,F bra menuview_view_sim_time ; 7: "Sim+5'" (in simulation mode only) dcfsnz WREG,F bra menuview_view_apnoe_quit ; 8: "Quit?" (in apnoe mode only) dcfsnz WREG,F bra menuview_view_gauge_reset ; 9: "Reset Avr" (in gauge mode only) dcfsnz WREG,F bra menuview_view_course ; 10: "Course" (only when compass is shown) dcfsnz WREG,F bra menuview_view_layout ; 11: "Layout" (offer alternative layout, aka blind mode) ; when adding or removing pre-menu items, adjust the value num_premenu_items in the #DEFINE ! menuview_exit: call TFT_standard_color bcf win_invert ; reset invert flag return ; active pre-menu = 0, i.e. show nothing menuview_view_gaschange: btfsc request_gas_change ; last gas change request executed yet? bra menuview_toggle ; YES - call 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_toggle ; NO - call next option movff best_dil_number,PRODL ; number (1-5) of the "best diluent" bsf is_diluent_menu ; setting up diluents bra menuview_view_gaschange_com ENDIF menuview_view_gaschange_OC: btfss better_gas_available ; is the better gas still available? bra menuview_toggle ; NO - call next option movff best_gas_number,PRODL ; 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_cd and gaslist_strcat_setpoint bsf better_gas_hint ; color-code as best gas/diluent call gaslist_strcat_gas_cd ; 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 ; ... STRCAT_PRINT "?" ; print question mark bra menuview_exit ; done menuview_view_divemenu: btfsc FLAG_apnoe_mode ; in apnoe mode? bra menuview_toggle ; YES - goto next option btfsc FLAG_gauge_mode ; NO - in gauge mode? bra menuview_toggle ; YES - goto next option PUTC "\xb7" ; NO - print '->' symbol STRCAT_TEXT_PRINT tDivePreMenu ; - print "Menu?" bra menuview_exit ; - done IFDEF _cave_mode menuview_view_cavemenu: TSTOSS opt_cave_mode ; cave mode switched on? bra menuview_toggle ; NO - goto next option PUTC "\xb7" ; YES - print '->' symbol STRCAT_TEXT_PRINT tDivePreCave ; - print "Cave?" bra menuview_exit ; - done ENDIF menuview_view_sim_quit: btfss simulatormode ; in simulator mode? bra menuview_toggle ; NO - goto next option STRCPY_TEXT_PRINT tQuitSim ; YES - print "Quit Simulation?" bra menuview_exit ; - done menuview_view_sim_down: btfss simulatormode ; in simulator mode? bra menuview_toggle ; NO - goto next option STRCPY_PRINT "Sim\xb8" ; print down arrow for going down bra menuview_exit ; done menuview_view_sim_up: btfss simulatormode ; in simulator mode? bra menuview_toggle ; NO - goto next option STRCPY_PRINT "Sim\xb9" ; YES - print up arrow for going up bra menuview_exit ; - done menuview_view_sim_time: btfss simulatormode ; in simulator mode? bra menuview_toggle ; NO - goto next option btfsc FLAG_gauge_mode ; YES - in gauge mode? bra menuview_toggle ; YES - goto next option btfsc FLAG_apnoe_mode ; NO - in apnoe mode? bra menuview_toggle ; YES - goto next option STRCPY_PRINT "Sim+5'" ; NO - print "Sim+5'" bra menuview_exit ; - done menuview_view_apnoe_quit: btfss FLAG_apnoe_mode ; in apnoe mode? bra menuview_toggle ; NO - goto next option btfss apnoe_at_surface ; YES - at the surface? bra menuview_toggle ; NO - goto next option STRCPY_TEXT_PRINT tQuitSim ; YES - print "Quit Apnea mode?" bra menuview_exit ; - done menuview_view_gauge_reset: btfss FLAG_gauge_mode ; in gauge mode? bra menuview_toggle ; NO - goto next option STRCPY_TEXT_PRINT tResetAvg ; YES - print "Reset Avg." bra menuview_exit ; - done menuview_view_course: IFDEF _compass movlw index_compass_dm ; index of compass view cpfseq active_customview ; in compass view? bra menuview_toggle ; NO - goto next option STRCPY_TEXT_PRINT tSetHeading ; YES - print "Heading" bra menuview_exit ; - done ELSE bra menuview_toggle ; not available without compass compiled in, goto next option ENDIF menuview_view_layout: btfsc FLAG_apnoe_mode ; in apnoe mode? bra menuview_toggle ; YES - goto next option STRCPY_TEXT_PRINT tDiveLayout ; NO - print "Layout" bra menuview_exit ; - done ;----------------------------------------------------------------------------- ; Initialize 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 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 global dive_customview_toggle dive_customview_toggle: incf active_customview,F ; increment number of custom view to show movlw index_cv_dm_max ; highest index in use in dive mode custom view cpfsgt active_customview ; max reached? 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 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 ;bra dive_customview_init ; continue with initializing selected custom view ;---------------------------------------------------------------------------------- ; Jump table for initialization of the every-second tasks in custom view area (dive mode) ; ; Attention: the ordering must be in line with the every-second update jump table ; and the index numbers defined in hwos.inc! ; dive_customview_init: ; 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 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 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 customview_toggle_exit ; 0: no view (blank screen in custom view area) 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 customview_init_view1a ; YES - (1) btfsc FLAG_pscr_mode ; in pSCR mode? bra customview_init_view1a ; YES - (1) bra dive_customview_toggle ; NO to both, goto next view customview_init_view1a: btfsc analog_o2_input ; (1) - do we have an analog input? bra customview_init_view1b ; YES - (2) btfsc s8_digital_avail ; NO - do we have a digital S8 interface? bra customview_init_view1b ; YES - (2) btfss optical_input ; NO - do we have an optical input? bra dive_customview_toggle ; NO - goto next view ; YES - (2) customview_init_view1b: call TFT_ppo2_sensors_mask ; (2) - mask for ppO2 sensors call TFT_ppo2_sensors ; - data for ppO2 sensors bra customview_toggle_exit ; - done ELSE bra dive_customview_toggle ; not available without external sensors, got next view ENDIF 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 customview_toggle_exit ; - done 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 customview_toggle_exit ; - done 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 customview_toggle_exit ; done init_TFT_dive_compass: ; compass IFDEF _compass call I2C_init_compass ; start compass call TFT_dive_compass_mask ; show compass mask bra customview_toggle_exit ; done ELSE bra dive_customview_toggle ; not available without compass compiled in, goto next view ENDIF init_pressures_SAC: ; tank pressure and SAC rate 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 customview_toggle_exit ; - done ELSE bra dive_customview_toggle ; not available without RX functions, got next view ENDIF 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 customview_toggle_exit ; - done init_ceiling_GF_tissue: ; ceiling, tissues and current GF 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 customview_toggle_exit ; - done init_sensor_check: ; 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 customview_toggle_exit ; - done ELSE bra dive_customview_toggle ; not available without CCR mode compiled in, goto next view ENDIF init_ppo2_ead_end_cns: ; ppO2, END/EAD and 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 customview_toggle_exit ; - done init_pscr_info: ; pSCR information 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 customview_toggle_exit ; - done ELSE bra dive_customview_toggle ; not available without CCR / pSCR mode, goto next view ENDIF init_gas_needs_ascent: ; gas needs for 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 customview_toggle_exit ; - done init_cave_tts: ; cave mode data 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 customview_toggle_exit ; - done ELSE bra dive_customview_toggle ; not available without cave mode, goto next view ENDIF init_gf_factors: call TFT_gf_factors_mask ; mask for GF factors (static only) bra customview_toggle_exit ; done init_cave_waypoints: IFDEF _cave_mode call TFT_cave_waypoints ; show waypoint graphics bra customview_toggle_exit ; done ELSE bra dive_customview_toggle ; not available without cave mode, goto next view ENDIF customview_toggle_exit: bcf request_next_custview ; clear request flag return ; done ;----------------------------------------------------------------------------- END