Mercurial > public > mk2
changeset 397:6f7965ec5f49
BUGFIX Color coding ppO2 > 4.9 (bug #50)
author | JeanDo |
---|---|
date | Sat, 25 Jun 2011 23:48:40 +0200 |
parents | 0386c7e1374a |
children | 1677453fbbe3 |
files | code_part1/OSTC_code_asm_part1/definitions.asm code_part1/OSTC_code_asm_part1/pled_outputs.asm code_part1/OSTC_code_asm_part1/surfmode.asm |
diffstat | 3 files changed, 31 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/code_part1/OSTC_code_asm_part1/definitions.asm Thu Jun 23 01:41:39 2011 +0200 +++ b/code_part1/OSTC_code_asm_part1/definitions.asm Sat Jun 25 23:48:40 2011 +0200 @@ -58,7 +58,7 @@ #DEFINE warn_depth d'1' #DEFINE warn_cns d'2' #DEFINE warn_gf d'3' -#DEFINE warn_ppo2 d'4' +;#DEFINE warn_ppo2 d'4' #DEFINE warn_velocity d'5' #DEFINE warn_ceiling d'6' #DEFINE warn_gas_in_gaslist d'7'
--- a/code_part1/OSTC_code_asm_part1/pled_outputs.asm Thu Jun 23 01:41:39 2011 +0200 +++ b/code_part1/OSTC_code_asm_part1/pled_outputs.asm Sat Jun 25 23:48:40 2011 +0200 @@ -116,8 +116,10 @@ clrf xB+1 call mult16x16 ; EEDATA * p_amb/10 - tstfsz xC+2 ; char_I_O2_ratio * p_amb/10 > 65536, ppO2>6,55Bar? - bra PLED_color_code_gaslist1 ; Yes, warn in warning color + tstfsz xC+2 ; char_I_O2_ratio * p_amb/10 > 65536, ppO2>6,55Bar? + bra PLED_color_code_gaslist1; Yes, warn in warning color + btfsc xC+1,7 ; > 32767, ppO2>3,276Bar? + bra PLED_color_code_gaslist1; Yes, warn in warning color movff xC+0,sub_a+0 movff xC+1,sub_a+1 @@ -199,7 +201,7 @@ return PLED_color_code_gf: - movff char_O_gradient_factor,lo ; gradient factor +f movff char_O_gradient_factor,lo ; gradient factor GETCUSTOM8 d'45' ; GF Warn [%] subwf lo,W btfsc STATUS,C @@ -210,26 +212,33 @@ call PLED_warnings_color return -PLED_color_code_ppo2: -; Check very high ppO2 manually - tstfsz xC+2 ; char_I_O2_ratio * p_amb/10 > 65536, ppO2>6,55Bar? - bra PLED_color_code_ppo22 ; Yes, warn in warning color - +;----------------------------------------------------------------------------- +; Set color to red if ppO2 to high (and white if not). +; Inputs: xC:3 = ppO2 (computed from divemode and O2_ratio). +; +PLED_color_code_ppo2: ; ppO2 in xC:3 (in 160*100 = 1.6000, ie. in 0.1 mbar) +; Check very high ppO2 manually: + tstfsz xC+2 ; xC > 65535 ? + bra PLED_color_code_ppo22 ; Yes, warn in warning color + btfsc xC+1,7 ; xC > 32767, ie. ppO2>3,276Bar? + bra PLED_color_code_ppo22 ; Yes, warn in warning color + +; Normal checks: CF46 movff xC+0,sub_a+0 movff xC+1,sub_a+1 - GETCUSTOM8 d'46' ; color-code ppO2 warning [cBar] + GETCUSTOM8 d'46' ; color-code ppO2 warning, eg. 160 cBar = 1.60 bar. mullw d'100' movff PRODL,sub_b+0 movff PRODH,sub_b+1 - call sub16 ; sub_c = sub_a - sub_b + call sub16 ; sub_c = sub_a - sub_b btfss neg_flag - bra PLED_color_code_ppo22; Set to warning color - call PLED_standard_color - return + bra PLED_color_code_ppo22 ; Set to warning color + goto PLED_standard_color + PLED_color_code_ppo22: - call PLED_warnings_color - return - + goto PLED_warnings_color + +;----------------------------------------------------------------------------- PLED_color_code_velocity: btfss neg_flag ; Ignore for ascend! bra PLED_color_code_velocity1 ; Skip check! @@ -1018,7 +1027,7 @@ WIN_TOP .119 WIN_LEFT .0 WIN_FONT FT_SMALL - PLED_color_code warn_ppo2 ; Color-code output (ppO2 stored in xC) + call PLED_color_code_ppo2 ; Color-code output (ppO2 stored in xC:3) STRCPY "ppO2:" @@ -3124,9 +3133,10 @@ movff lo,WREG ; copy to WREG mullw .100 + clrf xC+2 movff PRODH,xC+1 movff PRODL,xC+0 ; For color code - PLED_color_code warn_ppo2 ; Color-code output (ppO2 stored in xC) + call PLED_color_code_ppo2 ; Color-code output (ppO2 stored in xC:3) tstfsz hi ; >2,55bar? rcall PLED_const_ppO2_too_hi ; Yes @@ -3193,9 +3203,10 @@ movff char_O_flush_ppO2,WREG ; copy to WREG mullw .100 + clrf xC+2 movff PRODH,xC+1 movff PRODL,xC+0 ; For color code - PLED_color_code warn_ppo2 ; Color-code output (ppO2 stored in xC) + call PLED_color_code_ppo2 ; Color-code output (ppO2 stored in xC:3) WIN_LEFT .130 WIN_TOP .168