diff src/tft_outputs.asm @ 334:d07f7d07e568

Merged new_screen_layout into default
author Janos Kovacs <kovjanos@gmail.com>
date Sun, 28 Jun 2015 03:55:08 +0200
parents 14b466f66a7f
children 508d7fb98b34
line wrap: on
line diff
--- a/src/tft_outputs.asm	Fri Jun 26 15:03:47 2015 +0200
+++ b/src/tft_outputs.asm	Sun Jun 28 03:55:08 2015 +0200
@@ -532,6 +532,8 @@
         WIN_TINY            dm_mask_depth_column,dm_mask_depth_row
         STRCAT_TEXT_PRINT   tDepth
         WIN_TINY            dm_mask_maxdepth_column,dm_mask_maxdepth_row
+        TSTOSS  opt_vsigraph			; 0=skip, 1=draw
+        WIN_TINY            dm_mask_maxdepth_column_nvsi,dm_mask_maxdepth_row
         STRCAT_TEXT_PRINT   tMaxDepth
         WIN_TINY            dm_mask_divetime_column,dm_mask_divetime_row
         STRCAT_TEXT_PRINT   tDivetime
@@ -540,10 +542,15 @@
     if dm_offset == 0
         movlw       color_dark_red
         call        TFT_set_color
+        TSTOSS  opt_vsigraph			; 0=skip, 1=draw
+        bra     $+4
         WIN_FRAME_COLOR16 dm_velobar_top, dm_velobar_bot, dm_velobar_lft, dm_velobar_rgt ;top, bottom, left, right
         WIN_FRAME_COLOR16 dm_sep_1_2_row, dm_sep_1_2_row, .0, .159 ;top, bottom, left, right
         WIN_FRAME_COLOR16 dm_sep_2_3_row, dm_sep_2_3_row, .0, .159 ;top, bottom, left, right
         WIN_FRAME_COLOR16 dm_warning_row-.1, dm_warning_row-.1, dm_warning_column, .159 ;top, bottom, left, right
+        TSTOSS  opt_vsigraph			; 0=skip, 1=draw
+        bra     $+4
+        WIN_FRAME_COLOR16 dm_warning_row-.1, dm_warning_row-.1, dm_max_depth_column_nvsi, .159 ;top, bottom, left, right
         call    TFT_draw_gassep_line
     endif
 
@@ -997,14 +1004,14 @@
     return
 
 TFT_velocity_VSIbar:
+    TSTOSS  opt_vsigraph			; 0=skip, 1=draw
+    return
+
     ; use another logic when descending
     btfss   neg_flag_velocity
     bra     TFT_velocity_VSIbar_desc
     call    TFT_velocity_VSIbar_desc_clr
 
-    TSTOSS  opt_vsigraph			; 0=skip, 1=draw
-    return
-
     btfsc   velocity_warn
     bra     TFT_velocity_VSIbar_warn
     ; if all ok or attention, use attn's values
@@ -1222,6 +1229,8 @@
     return
 
 TFT_velocity_VSIbar_clr: ; clears the ascend part of the bar
+    TSTOSS  opt_vsigraph		    	; 0=skip, 1=draw
+    return
     WIN_BOX_BLACK   dm_velobar_top+.1,dm_velobar_top+.63,dm_velobar_lft+.1,dm_velobar_rgt-.1
     if dm_offset == 0
         movlw       color_dark_red
@@ -1230,6 +1239,8 @@
     return
 
 TFT_velocity_VSIbar_desc_clr: ; clears the descend part of the bar
+    TSTOSS  opt_vsigraph		    	; 0=skip, 1=draw
+    return
     WIN_BOX_BLACK   dm_velobar_top+.61,dm_velobar_bot-.1,dm_velobar_lft+.1,dm_velobar_rgt-.1
     if dm_offset == 0
         movlw       color_dark_red
@@ -3062,13 +3073,17 @@
 ;TFT_max_pressure2_imperial
 	call	convert_mbar_to_feet              	; convert value in lo:hi from mbar to feet
 	WIN_MEDIUM	dm_max_depth_column, dm_max_depth_row
+	TSTOSS  opt_vsigraph			; 0=skip, 1=draw
+	WIN_MEDIUM	dm_max_depth_column_nvsi, dm_max_depth_row
 	call	TFT_standard_color
 	output_16_3
 	STRCAT_PRINT ""
 	return
 
 TFT_max_pressure2_metric:
-    WIN_MEDIUM	dm_max_depth_column, dm_max_depth_row
+	WIN_MEDIUM	dm_max_depth_column, dm_max_depth_row
+	TSTOSS  opt_vsigraph			; 0=skip, 1=draw
+	WIN_MEDIUM	dm_max_depth_column_nvsi, dm_max_depth_row
     call    TFT_standard_color
 
 	movlw	.039
@@ -3113,6 +3128,8 @@
 
 tft_max_depth2:
 	WIN_MEDIUM	dm_max_depth_column, dm_max_depth_row
+	TSTOSS  opt_vsigraph			; 0=skip, 1=draw
+	WIN_MEDIUM	dm_max_depth_column_nvsi, dm_max_depth_row
 	STRCAT	"0"
 
 tft_max_depth3:
@@ -3122,6 +3139,8 @@
 
 	; .1m in SMALL font
 	WIN_SMALL	dm_max_depth_dm_column, dm_max_depth_dm_row
+	TSTOSS  opt_vsigraph			; 0=skip, 1=draw
+	WIN_SMALL	dm_max_depth_dm_column_nvsi, dm_max_depth_dm_row
 
     SAFE_2BYTE_COPY max_pressure, lo
 	call	adjust_depth_with_salinity			; computes salinity setting into lo:hi [mbar]
@@ -3786,8 +3805,18 @@
     bcf     leftbind
     return
 
+    global  TFT_gf_mask_cGF                     ; Setup Mask
+TFT_gf_mask_cGF:
+    ; The mask
+    call    TFT_divemask_color
+    WIN_TINY          dm_custom_gf_title_col3, dm_custom_gf_title_row
+    STRCPY_TEXT_PRINT tGFInfo
+    call	TFT_standard_color
+    return
+
     global  TFT_gf_info                         ; Show GF informations
 TFT_gf_info:
+    call	TFT_standard_color
     ; Show current GF
 	movff	char_O_gradient_factor,lo			; gradient factor absolute (Non-GF model)
 	movff	char_I_deco_model,hi
@@ -4069,6 +4098,34 @@
     call    TFT_warning_set_window_end
 	return
 
+    global  TFT_mask_ppo2
+TFT_mask_ppo2:
+    call    TFT_divemask_color
+    WIN_TINY  dm_custom_ceiling_ppo2_column, dm_custom_ceiling_text_row
+    STRCPY_TEXT_PRINT tppO2
+    call	TFT_standard_color
+    return
+
+	global	TFT_display_ppo2_val
+TFT_display_ppo2_val:
+    SAFE_2BYTE_COPY amb_pressure, xA
+	movlw	d'10'
+	movwf	xB+0
+	clrf	xB+1
+	call	div16x16				; xC=p_amb/10
+	movff	xC+0,xA+0
+	movff	xC+1,xA+1
+    movff   char_I_O2_ratio,xB+0    ; =O2 ratio
+	clrf	xB+1
+	call	mult16x16               ; char_I_O2_ratio * p_amb/10
+
+    call    TFT_standard_color
+	TFT_color_code		warn_ppo2		; Color-code output (ppO2 stored in xC)
+    WIN_STD  dm_custom_ceiling_ppo2_val_col, dm_custom_ceiling_value_row
+    ; hijacking neg_flag_velocity to know where the value is displayed
+    bsf     neg_flag_velocity
+    bra     TFT_display_ppo2_com
+
 	global	TFT_display_ppo2
 TFT_display_ppo2:                       ; Show ppO2 (ppO2 stored in xC, in mbar!)
 	rcall	TFT_warning_set_window		; Sets the row and column for the current warning
@@ -4077,6 +4134,9 @@
     call    TFT_warning_set_window_com
 	TFT_color_code		warn_ppo2		; Color-code output (ppO2 stored in xC)
     STRCPY_TEXT tppO2                   ; ppO2:
+    ; hijacking neg_flag_velocity to know where the value is displayed
+    bcf     neg_flag_velocity
+TFT_display_ppo2_com:
 ; Check very high ppO2 manually
 	tstfsz	xC+2                        ; char_I_O2_ratio * p_amb/10 > 65536, ppO2>6,55bar?
 	bra		TFT_show_ppO2_3             ; Yes, display fixed Value!
@@ -4086,6 +4146,9 @@
 	output_16dp	d'1'
 TFT_show_ppO2_2:
     movlw   dm_warning_length              ; Divemode string length
+    ; neg_flag_velocity is hijacked, used to toggle the fillup lenght.
+    btfsc   neg_flag_velocity
+    movlw   .4
     rcall   TFT_fillup_with_spaces      ; Fillup FSR2 with spaces (Total string length in #WREG)
     STRCAT_PRINT ""
 	call	TFT_standard_color