Mercurial > public > mk2
changeset 685:aebb6d039249
Use 4byte in EEPROM for diluents (Same as OC gases)
Show active gas indicator below first gas in surfacemode
line wrap: on
line diff
--- a/code_part1/OSTC_code_asm_part1/changelog.txt Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/changelog.txt Sat Jan 26 14:11:07 2013 +0100 @@ -2,6 +2,9 @@ BETA Version - Do NOT use for diving! CHANGE: Removed "Mix type" Icons and CF43 CHANGE: Hardware4 support +CHANGE: Use 4Bytes in EEPROM for diluents (Same as OC gases) +NEW: Show active gas indicator below first gas in surfacemode +UPDATE: OSTC interface description file New in 2.59: BETA Version - Do NOT use for diving!
--- a/code_part1/OSTC_code_asm_part1/divemode.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/divemode.asm Sat Jan 26 14:11:07 2013 +0100 @@ -1459,7 +1459,7 @@ movlw .33 ; Start gas btfsc FLAG_const_ppO2_mode ; In CCR mode? - movlw .106 ; Yes, use start Diluent instead + movlw .116 ; Yes, use start Diluent instead movwf EEADR call read_eeprom movf EEDATA,W @@ -2110,6 +2110,6 @@ bsf STATUS,C ; Borrow bit subfwb lo,W ; minus O2 movff WREG, char_I_N2_ratio ; = N2! - read_int_eeprom d'106' ; Read First Diluent (1-5) + read_int_eeprom d'116' ; Read First Diluent (1-5) movff EEDATA,active_diluent return \ No newline at end of file
--- a/code_part1/OSTC_code_asm_part1/divemode_menu.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/divemode_menu.asm Sat Jan 26 14:11:07 2013 +0100 @@ -707,16 +707,16 @@ divemenu_set_gas1d: ; (Re-)Set Diluent decf active_diluent,W ; 0-4 -> WREG mH - mullw .2 + mullw .4 movf PRODL,W - addlw d'97' + addlw d'98' movwf EEADR call read_eeprom ; Read He movff EEDATA,char_I_He_ratio ; And copy into hold register decf active_diluent,W ; 0-4 -> WREG - mullw .2 + mullw .4 movf PRODL,W - addlw d'96' + addlw d'97' movwf EEADR call read_eeprom ; Read O2 movff EEDATA, char_I_O2_ratio ; O2 ratio
--- a/code_part1/OSTC_code_asm_part1/english_text.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/english_text.asm Sat Jan 26 14:11:07 2013 +0100 @@ -404,7 +404,7 @@ TCODE .1, .1, "OSTC " ;262 OSTC TCODE .65, .168, "Bail " ;263 Bail TCODE .7, .48, "Air " ;264 Air - TCODE .120, .135, "Air " ;265 Air + TCODE .115, .135, "Air " ;265 Air TCODE .0, .0, "pSCR Info" ;266 pSCR Info (Must be 9Chars!) TCODE .0, .184, "Max." ;267 Max.
--- a/code_part1/OSTC_code_asm_part1/french_text.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/french_text.asm Sat Jan 26 14:11:07 2013 +0100 @@ -406,7 +406,7 @@ TCODE .1, .1, "OSTC " ;262 OSTC TCODE .65, .168, "Bail " ;263 Bail TCODE .7, .48, "Air " ;264 Air - TCODE .120, .135, "Air " ;265 Air + TCODE .115, .135, "Air " ;265 Air TCODE .0, .0, "pSCR Info" ;266 pSCR Info (Must be 9Chars!) TCODE .0, .184, "Max." ;267 Max.
--- a/code_part1/OSTC_code_asm_part1/german_text.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/german_text.asm Sat Jan 26 14:11:07 2013 +0100 @@ -405,7 +405,7 @@ TCODE .1, .1, "OSTC " ;262 OSTC TCODE .65, .168, "Bail " ;263 Bail TCODE .7, .48, "Luft " ;264 Air - TCODE .120, .135, "Luft " ;265 Air + TCODE .115, .135, "Luft " ;265 Air TCODE .0, .0, "pSCR Info" ;266 pSCR Info (Must be 9Chars!) TCODE .0, .184, "Max." ;267 Max.
--- a/code_part1/OSTC_code_asm_part1/italian_text.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/italian_text.asm Sat Jan 26 14:11:07 2013 +0100 @@ -404,7 +404,7 @@ TCODE .1, .1, "OSTC " ;262 OSTC TCODE .65, .168, "Bail " ;263 Bail TCODE .7, .48, "Aria " ;264 Air - TCODE .120, .135, "Aria " ;265 Air + TCODE .115, .135, "Aria " ;265 Air TCODE .0, .0, "Info pSCR" ;266 pSCR Info (Must be 9Chars!) TCODE .1, .216, "Max." ;267 Max.
--- a/code_part1/OSTC_code_asm_part1/menu_gassetup.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/menu_gassetup.asm Sat Jan 26 14:11:07 2013 +0100 @@ -464,7 +464,7 @@ bra menu_gassetup1 ; return next_gas: - movlw d'1' + movlw d'6' movwf menupos bra menu_gassetup0 ; incl. clear screen
--- a/code_part1/OSTC_code_asm_part1/menu_ppO2.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/menu_ppO2.asm Sat Jan 26 14:11:07 2013 +0100 @@ -24,6 +24,29 @@ ; ToDo: ; ; New in 2.52 Diluents stored seperately in EEPROM Bank0 +;Byte96-97: +;Diluent 1 Default (%O2,%He) +;Byte98-99: +;Diluent 1 Current (%O2,%He) +;Byte100-101: +;Diluent 2 Default (%O2,%He) +;Byte102-103: +;Diluent 2 Current (%O2,%He) +;Byte104-105: +;Diluent 3 Default (%O2,%He) +;Byte106-107: +;Diluent 3 Current (%O2,%He) +;Byte108-109: +;Diluent 4 Default (%O2,%He) +;Byte110-111: +;Diluent 4 Current (%O2,%He) +;Byte112-113: +;Diluent 5 Default (%O2,%He) +;Byte114-115: +;Diluent 5 Current (%O2,%He) +;Byte116: +;First Diluent (1-5) + ; EEPROM BANK0 Byte96-97: ; Diluent 1 (%O2,%He) ; EEPROM BANK0 Byte98-99: @@ -99,13 +122,13 @@ clrf divemins+0 ; Here: # of Gas * 4 movlw d'5' movwf waitms_temp ; here: stores row for gas list - movlw d'94' + movlw d'93' movwf wait_temp ; here: stores eeprom address for gas list menu_diluentsetup_list: WIN_LEFT .20 - movlw d'2' - addwf wait_temp,F ; Increase eeprom address for gas list + movlw d'4' + addwf wait_temp,F ; Increase eeprom address for diluent list movlw d'30' addwf waitms_temp,F ; Increase row movf waitms_temp,W ; Load row into WREG @@ -124,7 +147,7 @@ movff WREG,win_top lfsr FSR2,letter - movlw d'106' + movlw d'116' movwf EEADR call read_eeprom ; Get current startgas 1-5 # into EEDATA decf EEDATA,W ; 0-4 @@ -139,8 +162,8 @@ movff WREG,win_top lfsr FSR2,letter - incf wait_temp, W ; Gas %O2 - movwf EEADR ; Gas %He - Set address in internal EEPROM + movff wait_temp, EEADR ; Gas %He - Set address in internal EEPROM + incf EEADR,F ; Gas %He - Set address in internal EEPROM call read_eeprom ; Read He value from EEPROM movff EEDATA,lo ; Move EEDATA -> lo movf lo,f ; Move lo -> f @@ -261,31 +284,31 @@ diluent_list_edit_gas1: movlw d'0' ; Diluent Number 0-4 movwf decodata+0 - movlw d'96' ; EEPROM address of %O2 + movlw d'91' ; EEPROM address of %O2 movwf divemins+0 bra menu_diluentgas diluent_list_edit_gas2: movlw d'1' ; Diluent Number 0-4 movwf decodata+0 - movlw d'98' ; EEPROM address of %O2 + movlw d'95' ; EEPROM address of %O2 movwf divemins+0 bra menu_diluentgas diluent_list_edit_gas3: movlw d'2' ; Diluent Number 0-4 movwf decodata+0 - movlw d'100' ; EEPROM address of %O2 + movlw d'99' ; EEPROM address of %O2 movwf divemins+0 bra menu_diluentgas diluent_list_edit_gas4: movlw d'3' ; Diluent Number 0-4 movwf decodata+0 - movlw d'102' ; EEPROM address of %O2 + movlw d'103' ; EEPROM address of %O2 movwf divemins+0 bra menu_diluentgas diluent_list_edit_gas5: movlw d'4' ; Diluent Number 0-4 movwf decodata+0 - movlw d'104' ; EEPROM address of %O2 + movlw d'107' ; EEPROM address of %O2 movwf divemins+0 ; bra menu_diluentgas menu_diluentgas: @@ -312,7 +335,7 @@ OUTPUTTEXT .88 ; First Gas? PUTC ' ' - movlw d'106' + movlw d'116' movwf EEADR call read_eeprom ; Get current startgas 1-5 # into EEDATA decf EEDATA,W ; 0-4 @@ -334,7 +357,10 @@ WIN_LEFT .20 WIN_TOP .65 STRCPY TXT_O2_4 - movff divemins+0,EEADR + + movf divemins+0,W + addlw 0x06 + movwf EEADR call read_eeprom ; O2 value movff EEDATA,lo output_8 @@ -349,7 +375,9 @@ mullw d'10' movff PRODL,xA+0 movff PRODH,xA+1 ; ppO2 in [0.01bar] * 10 - movff divemins+0,EEADR + movf divemins+0,W + addlw 0x06 + movwf EEADR call read_eeprom ; O2 value movff EEDATA,xB+0 clrf xB+1 @@ -367,8 +395,9 @@ WIN_LEFT .20 WIN_TOP .95 STRCPY TXT_HE4 - incf divemins+0,W - movwf EEADR + movf divemins+0,W + addlw 0x07 + movwf EEADR call read_eeprom ; He value movff EEDATA,lo output_8 @@ -382,7 +411,9 @@ mullw d'10' movff PRODL,xA+0 movff PRODH,xA+1 ; ppO2 in [0.01bar] * 10 - movff divemins+0,EEADR + movf divemins+0,W + addlw 0x06 + movwf EEADR call read_eeprom ; O2 value movff EEDATA,xB+0 clrf xB+1 @@ -398,8 +429,9 @@ movlw d'0' addwfc hi,F ; lo:hi holding MOD+10m - incf divemins+0,W - movwf EEADR + movf divemins+0,W + addlw 0x07 + movwf EEADR call read_eeprom ; He value in % -> EEDATA movlw d'100' movwf xA+0 @@ -437,11 +469,18 @@ WIN_TOP .155 lfsr FSR2,letter OUTPUTTEXT .89 ; Default: - movlw .21 - movwf lo ; Default always Air + movf divemins+0,W + addlw 0x04 + movwf EEADR + call read_eeprom ; Default O2 value + movff EEDATA,lo output_8 PUTC '/' - clrf lo ; Default He value + movf divemins+0,W + addlw 0x05 + movwf EEADR + call read_eeprom ; Default He value + movff EEDATA,lo output_8 STRCAT_PRINT " " @@ -503,7 +542,7 @@ make_first_diluent: movff decodata+0,EEDATA ; current gas (0-4) into EEDATA incf EEDATA,F ; current gas (1-5) into EEDATA - movlw d'106' + movlw d'116' movwf EEADR call write_eeprom ; store in internal EEPROM movlw d'1' @@ -517,7 +556,9 @@ bra menu_diluentgas1 ; return adjust_o2_diluent: - movff divemins+0,EEADR ; read current value + movf divemins+0,W ; read current value + addlw 0x06 + movwf EEADR call read_eeprom ; Low-value movff EEDATA,lo @@ -538,7 +579,8 @@ cpfseq lo bra adjust_o2_2_diluent - incf divemins+0,W + movf divemins+0,W + addlw 0x07 movwf EEADR call read_eeprom ; read He value @@ -548,7 +590,7 @@ subwf lo,F ; lo=100% - He% adjust_o2_2_diluent: ; test if O2+He>100... - incf divemins+0,W + addlw 0x07 movwf EEADR call read_eeprom ; read He value movf EEDATA,W ; He value @@ -562,7 +604,9 @@ movwf lo adjust_o2_3_diluent: - movff divemins+0,EEADR ; save current value + movf divemins+0,W ; save current value + addlw 0x06 + movwf EEADR movff lo,EEDATA call write_eeprom ; Low-value @@ -571,7 +615,8 @@ bra menu_diluentgas1 ; return adjust_he_diluent: - incf divemins+0,W + movf divemins+0,W ; read current value + addlw 0x07 movwf EEADR ; read current value (He) call read_eeprom ; Low-value movff EEDATA,lo @@ -594,7 +639,9 @@ clrf lo ; limit to zero adjust_he_2_diluent: ; test if O2+He>100... - movff divemins+0,EEADR; read current O2 value + movf divemins+0,W + addlw 0x06 + movwf EEADR call read_eeprom ; Low-value movf EEDATA,W addwf lo,W ; add He value @@ -606,7 +653,8 @@ decf lo,F ; reduce He again = unchanged after operation adjust_he_3_diluent: - incf divemins+0,W ; save current value + movf divemins+0,W ; save current value + addlw 0x07 movwf EEADR movff lo,EEDATA call write_eeprom ; Low-value @@ -616,13 +664,28 @@ bra menu_diluentgas1; restore_gas_diluent: - movff divemins+0,EEADR ; save Default value (O2) - movlw .21 ; Always Air - movwf EEDATA - call write_eeprom - incf EEADR,F ; Point to He - clrf EEDATA - call write_eeprom + movf divemins+0,W ; read Default value + addlw 0x04 + movwf EEADR + call read_eeprom ; Low-value + movff EEDATA,lo + movf divemins+0,W + addlw 0x05 + movwf EEADR + call read_eeprom ; High-value + movff EEDATA,hi + + movf divemins+0,W ; save Default value + addlw 0x06 + movwf EEADR + movff lo,EEDATA + call write_eeprom ; Low-value + movf divemins+0,W + addlw 0x07 + movwf EEADR + movff hi,EEDATA + call write_eeprom ; High-value + movlw d'5' movwf menupos bra menu_diluentgas1 @@ -646,7 +709,8 @@ lfsr FSR2,letter ;He check - incf divemins+0,W + movf divemins+0,W + addlw 0x07 movwf EEADR call read_eeprom ; He value movff EEDATA,lo ; Move EEData -> lo @@ -657,12 +721,15 @@ ; YES Write TX 15/55 STRCAT TXT_TX3 - movff divemins+0,EEADR + movf divemins+0,W + addlw 0x06 + movwf EEADR call read_eeprom ; O2 value movff EEDATA,lo output_8 ; Write O2 PUTC '/' - incf divemins+0,W + movf divemins+0,W + addlw 0x07 movwf EEADR call read_eeprom ; He value movff EEDATA,lo @@ -671,7 +738,9 @@ ; New v1.44se diluent_title_bar3: ; O2 Check - movff divemins+0,EEADR + movf divemins+0,W + addlw 0x06 + movwf EEADR call read_eeprom ; O2 value movff EEDATA,lo movf lo,f ; Move lo -> f @@ -857,7 +926,7 @@ bra change_ppo2_reset movlw d'2' movwf menupos - bra menu_const_ppO2_return + goto menu_const_ppO2_return change_ppo2_plus: movf decodata+0,W ; read current value @@ -924,10 +993,10 @@ bra menu_const_ppO21 get_first_diluent: ; Read first diluent into lo(O2) and hi(He) - read_int_eeprom d'106' ; Read First Diluent (1-5) - decf EEDATA,W ; WREG: 0-4 - mullw .2 ; PRODL: 0-8 - movlw .96 ; Base address for O2 + read_int_eeprom d'116' ; Read First Diluent (1-5) + movf EEDATA,W ; WREG: 0-4 + mullw .4 ; PRODL: 0-16 + movlw .93 ; Base address for O2 addwf PRODL,W movwf EEADR call read_eeprom ; Read O2
--- a/code_part1/OSTC_code_asm_part1/menu_reset.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/menu_reset.asm Sat Jan 26 14:11:07 2013 +0100 @@ -498,18 +498,23 @@ rcall reset_gas ; saves default value for gas #5 rcall reset_gas ; saves current value for gas #6 - movlw d'95' ; address of first diluent-1 + movlw d'94' ; address of first diluent-1 movwf EEADR rcall reset_gas ; saves current value for diluent #1 + rcall reset_gas ; saves default value for diluent #1 rcall reset_gas ; saves current value for diluent #2 + rcall reset_gas ; saves default value for diluent #2 rcall reset_gas ; saves current value for diluent #3 + rcall reset_gas ; saves default value for diluent #3 rcall reset_gas ; saves current value for diluent #4 + rcall reset_gas ; saves default value for diluent #4 rcall reset_gas ; saves current value for diluent #5 + rcall reset_gas ; saves default value for diluent #5 movlw .1 movwf EEDATA write_int_eeprom .33 ; First Gas (1-5) - write_int_eeprom .106 ; First Diluent (1-5) + write_int_eeprom .116 ; First Diluent (1-5) return ; Write WREG:lo twice, w/o any type clearing, pre-incrementing EEADR
--- a/code_part1/OSTC_code_asm_part1/outputs.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/outputs.asm Sat Jan 26 14:11:07 2013 +0100 @@ -1387,7 +1387,6 @@ rrcf EEDATA ; roll flags into carry decfsz lo,F ; max. 5 times... bra DISP_grey_inactive_gas1 - bnc DISP_grey_gas ; test carry DISP_white_gas: @@ -1546,10 +1545,33 @@ return ; Done. DISP_active_gas_surfmode2: + WIN_TOP .175 + WIN_FONT FT_SMALL + WIN_INVERT .0 ; Init new Wordprocessor + movlw .0 + call DISP_grey_inactive_gas ; Sets Greyvalue for inactive gases + WIN_LEFT .90 + STRCPY_PRINT "1" + movlw .1 + call DISP_grey_inactive_gas ; Sets Greyvalue for inactive gases + WIN_LEFT .103 + STRCPY_PRINT "2" + movlw .2 + call DISP_grey_inactive_gas ; Sets Greyvalue for inactive gases + WIN_LEFT .117 + STRCPY_PRINT "3" + movlw .3 + call DISP_grey_inactive_gas ; Sets Greyvalue for inactive gases + WIN_LEFT .130 + STRCPY_PRINT "4" + movlw .4 + call DISP_grey_inactive_gas ; Sets Greyvalue for inactive gases + WIN_LEFT .143 + STRCPY_PRINT "5" + WIN_TOP .130 WIN_LEFT .100 WIN_FONT FT_MEDIUM - WIN_INVERT .0 ; Init new Wordprocessor call DISP_standard_color read_int_eeprom d'33' ; Read byte (stored in EEDATA) @@ -2943,7 +2965,7 @@ WIN_LEFT .100 WIN_FONT FT_SMALL bsf leftbind - movlw d'94' + movlw d'93' movwf wait_temp ; here: stores eeprom address for diluent list (96-2) movlw d'231' movwf waitms_temp ; here: stores row for gas list @@ -2951,7 +2973,7 @@ DISP_diluent_list_loop: incf hi,F ; Increase Diluent - movlw .2 + movlw d'4' addwf wait_temp,F ; Increase eeprom address for gas list movlw d'25' addwf waitms_temp,F ; Increase row
--- a/code_part1/OSTC_code_asm_part1/russian_text.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/russian_text.asm Sat Jan 26 14:11:07 2013 +0100 @@ -405,7 +405,7 @@ TCODE .1, .1, "OSTC " ;262 OSTC TCODE .65, .168, "Запас" ;263 Bail TCODE .7, .48, "Возд." ;264 Air - TCODE .120, .135, "Возд." ;265 Air + TCODE .115, .135, "Возд." ;265 Air TCODE .0, .0, "pSCR Инфо" ;266 pSCR Info (Must be 9Chars!) TCODE .0, .184, "Макс." ;267 Max.
--- a/code_part1/OSTC_code_asm_part1/spanish_text.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/spanish_text.asm Sat Jan 26 14:11:07 2013 +0100 @@ -401,7 +401,7 @@ TCODE .1, .1, "OSTC " ;262 OSTC TCODE .65, .168, "Bail " ;263 Bail TCODE .7, .48, "Aire " ;264 Air - TCODE .120, .135, "Aire " ;265 Air + TCODE .115, .135, "Aire " ;265 Air TCODE .0, .0, "pSCR Info" ;266 pSCR Info (Must be 9Chars!) TCODE .0, .184, "Max." ;267 Max.
--- a/code_part1/OSTC_code_asm_part1/start.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/start.asm Sat Jan 26 14:11:07 2013 +0100 @@ -161,32 +161,6 @@ call write_eeprom ; write byte clrf EEADRH ; Reset EEADRH -; New in 2.52 Diluents stored seperately in EEPROM Bank0 -; EEPROM BANK0 Byte96-97: -; Diluent 1 (%O2,%He) -; EEPROM BANK0 Byte98-99: -; Diluent 2 (%O2,%He) -; EEPROM BANK0 Byte100-101: -; Diluent 3 (%O2,%He) -; EEPROM BANK0 Byte102-103: -; Diluent 4 (%O2,%He) -; EEPROM BANK0 Byte104-105: -; Diluent 5 (%O2,%He) - clrf EEADRH - movlw .21 - movwf EEDATA - write_int_eeprom d'96' - write_int_eeprom d'98' - write_int_eeprom d'100' - write_int_eeprom d'102' - write_int_eeprom d'104' - clrf EEDATA - write_int_eeprom d'97' - write_int_eeprom d'99' - write_int_eeprom d'101' - write_int_eeprom d'103' - write_int_eeprom d'105' - restart: movlw b'00000011' movwf T3CON ; Timer3 with 32768Hz clock running
--- a/code_part1/OSTC_code_asm_part1/turkish_text.asm Sat Jan 26 10:41:35 2013 +0100 +++ b/code_part1/OSTC_code_asm_part1/turkish_text.asm Sat Jan 26 14:11:07 2013 +0100 @@ -403,7 +403,7 @@ TCODE .1, .1, "OSTC " ;262 OSTC TCODE .65, .168, "Bail " ;263 Bail TCODE .7, .48, "Hava " ;264 Air - TCODE .120, .135, "Hava " ;265 Air + TCODE .115, .135, "Hava " ;265 Air TCODE .0, .0, "pSCR Info" ;266 pSCR Info (Must be 9Chars!) TCODE .0, .184, "Max" ;267 Max.