# HG changeset patch # User heinrichsweikamp # Date 1543148512 -3600 # Node ID 5ce603c29750bfe1c2c213ea73011df6a3b76125 # Parent ca4556fb60b9c20c279509ea6f2ff42273a5a6ea gas color coding fixed diff -r ca4556fb60b9 -r 5ce603c29750 src/divemode.asm --- a/src/divemode.asm Thu Nov 22 19:47:26 2018 +0100 +++ b/src/divemode.asm Sun Nov 25 13:21:52 2018 +0100 @@ -174,7 +174,7 @@ diveloop_loop1_deco1: ENDIF - call calc_deko_divemode ; calculate decompression and set resulting display flags + call calc_deco_divemode ; calculate decompression and set resulting display flags btfss alternative_divelayout rcall TFT_output2_normal @@ -392,7 +392,7 @@ ; -------------------------------------------------------------------------------------- -calc_deko_divemode: +calc_deco_divemode: btfss FLAG_gauge_mode ; in gauge mode? rcall calc_deko_engine ; NO - do deco calculations @@ -552,6 +552,9 @@ call deco_calc_hauptroutine ; invoke the deco engine (p2_deco.c) banksel common + ; the displayed gas may need a different color-coding + bsf FLAG_TFT_active_gas_divemode; redraw gas/setpoint/diluent + ; check if display shall be updated due to deco engine restart btfsc FLAG_TFT_display_ndl_or_deko; shall update immediately? bra calc_deko_engine_update ; YES @@ -560,6 +563,7 @@ movff char_O_main_status,WREG ; get deco status of deco engine btfss WREG,DECO_COMPLETED_NORM ; new calculation results for normal plan available? return ; NO - done + calc_deko_engine_update: bcf FLAG_TFT_display_ndl_or_deko; YES - reset flag for immediate update movff char_O_deco_info,WREG ; - get deco info vector @@ -1444,8 +1448,14 @@ rcall setup_gas_registers ; with WREG = Gas 1-6 rcall deco_setup_oc_gases ; with WREG = Gas 1-6 gas_switched_common3: - bsf FLAG_TFT_active_gas_divemode ; redraw gas/setpoint/diluent - call restart_deco_engine_wo_ceiling ; abort any running deco calculations and restart the deco engine + banksel int_O_breathed_ppO2 + bcf int_O_breathed_ppO2+1,int_low_flag ; | clear all flags that control color-coding + bcf int_O_breathed_ppO2+1,int_high_flag ; | to have the new gas initially displayed in + bcf int_O_breathed_ppO2+1,int_attention_flag ; | memo color instead of a warning or attention + bcf int_O_breathed_ppO2+1,int_warning_flag ; | color that belonged to the previous gas + banksel common + bsf FLAG_TFT_active_gas_divemode ; redraw gas/setpoint/diluent + call restart_deco_engine_wo_ceiling ; abort any running deco calculations and restart the deco engine ; set flags for profile recording bsf event_occured ; set event flag btfsc FLAG_bailout_mode ; choose OC Bailouts (OC Gases) diff -r ca4556fb60b9 -r 5ce603c29750 src/tft_outputs.asm --- a/src/tft_outputs.asm Thu Nov 22 19:47:26 2018 +0100 +++ b/src/tft_outputs.asm Sun Nov 25 13:21:52 2018 +0100 @@ -81,11 +81,10 @@ global TFT_memo_color TFT_memo_color: ; information, values within normal range, things without a need to react upon - bra TFT_standard_color ; mH (Color schemes!) movlw color_white bra TFT_standard_color0 -;TFT_memo_color_dive: -; retlw color_white +TFT_memo_color_dive: + retlw color_white global TFT_advice_color TFT_advice_color: ; advices to do something, but without essential need to actually do it @@ -2052,7 +2051,7 @@ tstfsz menupos2 ; any option shown? bra TFT_active_gas_divemode_oc ; YES - do not overwrite with bailout text WIN_SMALL dm_active_dil_column, dm_active_dil_row - call TFT_attention_color ; print plaint in yellow + call TFT_attention_color ; print in yellow STRCPY_TEXT_PRINT tDiveBailout ; "Bailout" TFT_active_gas_divemode_oc: ; common part for OC and bailout movff int_O_breathed_ppO2+0,lo ; color-code the output of the gas by the ppO2 it yields @@ -4274,14 +4273,14 @@ global TFT_surface_lastdive TFT_surface_lastdive: - call TFT_divemask_color + call TFT_standard_color WIN_TINY surf_gaslist_column,surf_gaslist_row+.5 STRCAT_TEXT_PRINT tLastDive ; "Last Dive:" WIN_TINY surf_gaslist_column,surf_gaslist_row+(surf_gaslist_spacing*.1)+.5 STRCAT_TEXT_PRINT tDivetime ; "Divetime:" WIN_TINY surf_gaslist_column,surf_gaslist_row+(surf_gaslist_spacing*.2)+.5 STRCAT_TEXT_PRINT tMaxDepth ; "Max. Depth" - call TFT_standard_color + WIN_SMALL surf_gaslist_column+.48,surf_gaslist_row movff int_O_desaturation_time+0,lo ; bank-safe copies movff int_O_desaturation_time+1,WREG