# HG changeset patch # User JeanDo # Date 1303352160 -7200 # Node ID 5f2fe81fde9fd7b9a80cfab24f46a957bfc51624 # Parent 5351d47ee28a8160ce378c6f7a390dcf582893c9 Don't force gas with depth>0 to be active. diff -r 5351d47ee28a -r 5f2fe81fde9f code_part1/OSTC_code_asm_part1/divemode.asm --- a/code_part1/OSTC_code_asm_part1/divemode.asm Wed Apr 20 07:51:11 2011 +0200 +++ b/code_part1/OSTC_code_asm_part1/divemode.asm Thu Apr 21 04:16:00 2011 +0200 @@ -410,83 +410,6 @@ clrf EEDATA ; No, clear! movff EEDATA,char_I_deco_gas_change+0 ; Yes! - -; read_int_eeprom d'97' ; Read He ratio -; movff EEDATA,char_I_deco_He_ratio+4 ; And copy into hold register -; read_int_eeprom d'96' ; Read O2 ratio -; movff char_I_deco_He_ratio+4, wait_temp ; copy into bank1 register -; bsf STATUS,C ; -; movlw d'100' ; 100% -; subfwb wait_temp,W ; minus He -; subfwb EEDATA,F ; minus O2 -; movff EEDATA, char_I_deco_N2_ratio+4; = N2! -; -; read_int_eeprom d'101' ; Read He ratio -; movff EEDATA,char_I_deco_He_ratio+3 ; And copy into hold register -; read_int_eeprom d'100' ; Read O2 ratio -; movff char_I_deco_He_ratio+3, wait_temp ; copy into bank1 register -; bsf STATUS,C ; -; movlw d'100' ; 100% -; subfwb wait_temp,W ; minus He -; subfwb EEDATA,F ; minus O2 -; movff EEDATA, char_I_deco_N2_ratio+3; = N2! -; -; read_int_eeprom d'105' ; Read He ratio -; movff EEDATA,char_I_deco_He_ratio+2 ; And copy into hold register -; read_int_eeprom d'104' ; Read O2 ratio -; movff char_I_deco_He_ratio+2, wait_temp ; copy into bank1 register -; bsf STATUS,C ; -; movlw d'100' ; 100% -; subfwb wait_temp,W ; minus He -; subfwb EEDATA,F ; minus O2 -; movff EEDATA, char_I_deco_N2_ratio+2; = N2! -; -; read_int_eeprom d'109' ; Read He ratio -; movff EEDATA,char_I_deco_He_ratio+1 ; And copy into hold register -; read_int_eeprom d'108' ; Read O2 ratio -; movff char_I_deco_He_ratio+1, wait_temp ; copy into bank1 register -; bsf STATUS,C ; -; movlw d'100' ; 100% -; subfwb wait_temp,W ; minus He -; subfwb EEDATA,F ; minus O2 -; movff EEDATA, char_I_deco_N2_ratio+1; = N2! -; -; read_int_eeprom d'113' ; Read He ratio -; movff EEDATA,char_I_deco_He_ratio+0; And copy into hold register -; read_int_eeprom d'112' ; Read O2 ratio -; movff char_I_deco_He_ratio+0, wait_temp ; copy into bank1 register -; bsf STATUS,C ; -; movlw d'100' ; 100% -; subfwb wait_temp,W ; minus He -; subfwb EEDATA,F ; minus O2 -; movff EEDATA, char_I_deco_N2_ratio+0; = N2! -; -; Now, set change depth. Inactive gases have depth=0! -; read_int_eeprom d'118' ; read gas_change_depth Gas1 -; btfss sorted_gaslist_active,0 ; Apply depth? -; clrf EEDATA ; No, clear! -; movff EEDATA,char_I_deco_gas_change+4 ; Yes! -; -; read_int_eeprom d'119' ; read gas_change_depth Gas2 -; btfss sorted_gaslist_active,1 ; Apply depth? -; clrf EEDATA ; No, clear! -; movff EEDATA,char_I_deco_gas_change+3 ; Yes! -; -; read_int_eeprom d'120' ; read gas_change_depth Gas3 -; btfss sorted_gaslist_active,2 ; Apply depth? -; clrf EEDATA ; No, clear! -; movff EEDATA,char_I_deco_gas_change+2 ; Yes! -; -; read_int_eeprom d'121' ; read gas_change_depth Gas4 -; btfss sorted_gaslist_active,3 ; Apply depth? -; clrf EEDATA ; No, clear! -; movff EEDATA,char_I_deco_gas_change+1 ; Yes! -; -; read_int_eeprom d'122' ; read gas_change_depth Gas5 -; btfss sorted_gaslist_active,4 ; Apply depth? -; clrf EEDATA ; No, clear! -; movff EEDATA,char_I_deco_gas_change+0 ; Yes! - ; Debugger ; call enable_rs232 ; movff char_I_deco_He_ratio+4,TXREG @@ -1022,9 +945,7 @@ call div16x16 ; compute depth in full m -> result in xC+0 check_gas_change1: ; check gas1 -; read_int_eeprom d'27' ; read flag register - movff sorted_gaslist_active,EEDATA ; Get flag register - btfss EEDATA,0 ; check active flag + btfss sorted_gaslist_active,0 ; check active flag bra check_gas_change2 ; skip inactive gases! movlw d'1' cpfseq active_gas ; is this gas currently selected? @@ -1044,9 +965,7 @@ bsf better_gas_available ;=1: A better gas is available and a gas change is advised in divemode check_gas_change2: ; check gas2 -; read_int_eeprom d'27' ; read flag register - movff sorted_gaslist_active,EEDATA ; Get flag register - btfss EEDATA,1 ; check active flag + btfss sorted_gaslist_active,1 ; check active flag bra check_gas_change3 ; skip inactive gases! movlw d'2' cpfseq active_gas ; is this gas currently selected? @@ -1066,9 +985,7 @@ bsf better_gas_available ;=1: A better gas is available and a gas change is advised in divemode check_gas_change3: ; check gas3 -; read_int_eeprom d'27' ; read flag register - movff sorted_gaslist_active,EEDATA ; Get flag register - btfss EEDATA,2 ; check active flag + btfss sorted_gaslist_active,2 ; check active flag bra check_gas_change4 ; skip inactive gases! movlw d'3' cpfseq active_gas ; is this gas currently selected? @@ -1088,9 +1005,7 @@ bsf better_gas_available ;=1: A better gas is available and a gas change is advised in divemode check_gas_change4: ; check gas4 -; read_int_eeprom d'27' ; read flag register - movff sorted_gaslist_active,EEDATA ; Get flag register - btfss EEDATA,3 ; check active flag + btfss sorted_gaslist_active,3 ; check active flag bra check_gas_change5 ; skip inactive gases! movlw d'4' cpfseq active_gas ; is this gas currently selected? @@ -1110,9 +1025,7 @@ bsf better_gas_available ;=1: A better gas is available and a gas change is advised in divemode check_gas_change5: ; check gas5 -; read_int_eeprom d'27' ; read flag register - movff sorted_gaslist_active,EEDATA ; Get flag register - btfss EEDATA,4 ; check active flag + btfss sorted_gaslist_active,4 ; check active flag bra check_gas_change6 ; skip inactive gases! movlw d'5' cpfseq active_gas ; is this gas currently selected? @@ -1859,28 +1772,3 @@ read_int_eeprom d'27' movff EEDATA, sorted_gaslist_active return - - -; -; clrf sorted_gaslist_active ; Clear all flags -; read_int_eeprom d'118' ; read gas_change_depth Gas1 -; tstfsz EEDATA ; =0m? -; bsf sorted_gaslist_active,0 ; No, Set Flag for Gas1 -; -; read_int_eeprom d'119' ; read gas_change_depth Gas2 -; tstfsz EEDATA ; =0m? -; bsf sorted_gaslist_active,1 ; No, Set Flag for Gas2 -; -; read_int_eeprom d'120' ; read gas_change_depth Gas3 -; tstfsz EEDATA ; =0m? -; bsf sorted_gaslist_active,2 ; No, Set Flag for Gas3 -; -; read_int_eeprom d'121' ; read gas_change_depth Gas4 -; tstfsz EEDATA ; =0m? -; bsf sorted_gaslist_active,3 ; No, Set Flag for Gas4 -; -; read_int_eeprom d'122' ; read gas_change_depth Gas5 -; tstfsz EEDATA ; =0m? -; bsf sorted_gaslist_active,4 ; No, Set Flag for Gas5 -; return -; \ No newline at end of file diff -r 5351d47ee28a -r 5f2fe81fde9f code_part1/OSTC_code_asm_part1/menu_gassetup.asm --- a/code_part1/OSTC_code_asm_part1/menu_gassetup.asm Wed Apr 20 07:51:11 2011 +0200 +++ b/code_part1/OSTC_code_asm_part1/menu_gassetup.asm Thu Apr 21 04:16:00 2011 +0200 @@ -659,13 +659,12 @@ WIN_LEFT .20 lfsr FSR2,letter OUTPUTTEXT .105 ; "Active Gas? " - read_int_eeprom d'27' ; read flag register - ; hi contains active gas flags in BIT0:4 .... - + ; Active gas flags in BIT0:4 .... movff decodata+0,lo ; Gas 0-4 incf lo,F ; Gas 1-5 + read_int_eeprom d'27' ; read flag register active_gas_display: rrcf EEDATA ; roll flags into carry decfsz lo,F ; max. 5 times... @@ -1012,43 +1011,38 @@ return ;============================================================================= -gassetup_sort_gaslist: ; Sorts Gaslist according to change depth - clrf sorted_gaslist_active ; Clear all flags +; Make sure first gas is marked active. +; Note: - Gas are not soted anymore. +; - Gas with a depth>0 should not be forced active, or it is impossible +; to de-activate them. +gassetup_sort_gaslist: - read_int_eeprom d'33' ; Get First gas (1-5) - movff EEDATA,lo - bsf STATUS,C -gassetup_sort_gaslist2: - rlcf sorted_gaslist_active,F ; Shift flag for first gas - decfsz lo,F - bra gassetup_sort_gaslist2 + clrf EEADRH ; Select EEPROM lower page. + read_int_eeprom d'33' ; Get First gas (1-5) + movff EEDATA,lo ; into register lo - read_int_eeprom d'28' ; Change Depth Gas1 - tstfsz EEDATA ; =0? - bsf sorted_gaslist_active,0 ; No, set active + read_int_eeprom d'27' ; Read selected gases - read_int_eeprom d'29' ; Change Depth Gas2 - tstfsz EEDATA ; =0? - bsf sorted_gaslist_active,1; No, set active - - read_int_eeprom d'30' ; Change Depth Gas3 - tstfsz EEDATA ; =0? - bsf sorted_gaslist_active,2 ; No, set active + dcfsnz lo,F ; If lo==1 + bsf EEDATA,0 ; Select Gas1 + dcfsnz lo,F ; If lo==2 + bsf EEDATA,1 ; Select Gas2 + dcfsnz lo,F + bsf EEDATA,2 + dcfsnz lo,F + bsf EEDATA,3 + dcfsnz lo,F + bsf EEDATA,4 + + ; Copy result to register: + movff EEDATA,sorted_gaslist_active + + ; And write to EEPROM too, to survive next reboot: + write_int_eeprom d'27' - read_int_eeprom d'31' ; Change Depth Gas4 - tstfsz EEDATA ; =0? - bsf sorted_gaslist_active,3 ; No, set active - - read_int_eeprom d'32' ; Change Depth Gas5 - tstfsz EEDATA ; =0? - bsf sorted_gaslist_active,4 ; No, set active - - movff sorted_gaslist_active,EEDATA - clrf EEADRH - write_int_eeprom d'27' ; Store results return - +;============================================================================= ; EEPROM Locations of Gaslist ; Gas1: ; O2 Default:4 diff -r 5351d47ee28a -r 5f2fe81fde9f code_part1/OSTC_code_asm_part1/pled_outputs.asm --- a/code_part1/OSTC_code_asm_part1/pled_outputs.asm Wed Apr 20 07:51:11 2011 +0200 +++ b/code_part1/OSTC_code_asm_part1/pled_outputs.asm Thu Apr 21 04:16:00 2011 +0200 @@ -1229,7 +1229,8 @@ cpfsgt EEDATA ; is depth > 0 ? bra PLED_grey_gas - read_int_eeprom d'27' ; read flag register + clrf EEADRH ; Lower page of EEPROM. + read_int_eeprom d'27' ; read flag register PLED_grey_inactive_gas1: rrcf EEDATA ; roll flags into carry decfsz lo,F ; max. 5 times... diff -r 5351d47ee28a -r 5f2fe81fde9f code_part1/OSTC_code_c_part2/p2_deco.o Binary file code_part1/OSTC_code_c_part2/p2_deco.o has changed