comparison code_part1/OSTC_code_asm_part1/menu_ppO2.asm @ 817:e49a35ab7394

auto-SP work, auto-SP data stored in EEADR 116-119
author heinrichsweikamp
date Sat, 06 Jun 2015 14:46:27 +0200
parents df8cd5ffd993
children 69bc5feca5da
comparison
equal deleted inserted replaced
816:df8cd5ffd993 817:e49a35ab7394
123 123
124 show_sp_mode: 124 show_sp_mode:
125 read_int_eeprom .116 ; SP Mode 125 read_int_eeprom .116 ; SP Mode
126 tstfsz EEDATA ; =0? 126 tstfsz EEDATA ; =0?
127 bra show_sp_mode2 ; No 127 bra show_sp_mode2 ; No
128 DISPLAYTEXTH .312 ; =0: Manual 128 DISPLAYTEXTH .363 ; =0: Manual
129 return 129 return
130 show_sp_mode2: 130 show_sp_mode2:
131 DISPLAYTEXTH .313 ; =1: Auto 131 DISPLAYTEXTH .364 ; =1: Auto
132 return 132 return
133 133
134 134
135 menu_diluentsetup: 135 menu_diluentsetup:
136 movlw d'1' 136 movlw d'1'
865 call read_eeprom ; ppO2 value 865 call read_eeprom ; ppO2 value
866 movff EEDATA,lo 866 movff EEDATA,lo
867 clrf hi 867 clrf hi
868 bsf leftbind 868 bsf leftbind
869 output_16dp d'3' 869 output_16dp d'3'
870 STRCAT TXT_BAR4
871 movf decodata+0,W
872 addlw d'117' ; offset in eeprom
873 movwf EEADR
874 call read_eeprom ; Change depth
875 movff EEDATA,lo
876 output_8
870 bcf leftbind 877 bcf leftbind
871 STRCAT_PRINT TXT_BAR4 878 STRCAT_PRINT "m "
872 879
873 WIN_LEFT .20 880 WIN_LEFT .20
874 WIN_TOP .95 881 WIN_TOP .95
875
876 lfsr FSR2,letter 882 lfsr FSR2,letter
877 OUTPUTTEXT d'190' ; ppO2 + 883 OUTPUTTEXT d'190' ; ppO2 +
878 call word_processor 884 call word_processor
879 885
880 WIN_LEFT .20 886 WIN_LEFT .20
881 WIN_TOP .125 887 WIN_TOP .125
882 888 lfsr FSR2,letter
883 lfsr FSR2,letter 889 OUTPUTTEXT d'250' ; +1 m
884 OUTPUTTEXT d'191' ; ppO2 -
885 call word_processor 890 call word_processor
886 891
887 WIN_LEFT .20 892 WIN_LEFT .20
888 WIN_TOP .155 893 WIN_TOP .155
889 894 lfsr FSR2,letter
895 OUTPUTTEXT .251 ; -1 m
896 call word_processor
897
898 WIN_LEFT .20
899 WIN_TOP .185
890 lfsr FSR2,letter 900 lfsr FSR2,letter
891 OUTPUTTEXT .89 ; "Default: " 901 OUTPUTTEXT .89 ; "Default: "
892 STRCAT_PRINT "1.00" 902 STRCAT_PRINT "1.00 / 0m"
893 903
894 DISPLAYTEXT .11 ; Exit 904 WIN_LEFT .20
905 WIN_TOP .215
906 lfsr FSR2,letter
907 OUTPUTTEXT .11 ; Exit
908 call word_processor
909
895 call wait_switches ; Waits until switches are released, resets flag if button stays pressed! 910 call wait_switches ; Waits until switches are released, resets flag if button stays pressed!
896 call menu_pre_loop_common ; Clear some menu flags, timeout and switches 911 call menu_pre_loop_common ; Clear some menu flags, timeout and switches
897 call DISP_menu_cursor 912 call DISP_menu_cursor
898 913
899 menu_const_ppO2_loop: 914 menu_const_ppO2_loop:
922 cpfseq menupos ; =2? 937 cpfseq menupos ; =2?
923 bra menu_const_ppO22a ; No 938 bra menu_const_ppO22a ; No
924 incf menupos,F ; Skip pos. 2 939 incf menupos,F ; Skip pos. 2
925 940
926 menu_const_ppO22a: 941 menu_const_ppO22a:
927 movlw d'7' 942 movlw d'8'
928 cpfseq menupos ; =7? 943 cpfseq menupos ; =8?
929 bra menu_const_ppO23 ; No 944 bra menu_const_ppO23 ; No
930 movlw d'1' 945 movlw d'1'
931 movwf menupos 946 movwf menupos
932 947
933 menu_const_ppO23: 948 menu_const_ppO23:
941 dcfsnz menupos,F 956 dcfsnz menupos,F
942 bra change_ppo2_plus 957 bra change_ppo2_plus
943 dcfsnz menupos,F 958 dcfsnz menupos,F
944 bra change_ppo2_plus 959 bra change_ppo2_plus
945 dcfsnz menupos,F 960 dcfsnz menupos,F
946 bra change_ppo2_minus 961 bra change_ppo2_depth_plus
962 dcfsnz menupos,F
963 bra change_ppo2_depth_minus
947 dcfsnz menupos,F 964 dcfsnz menupos,F
948 bra change_ppo2_reset 965 bra change_ppo2_reset
949 movlw d'2' 966 movlw d'2'
950 movwf menupos 967 movwf menupos
951 goto menu_const_ppO2_return 968 goto menu_const_ppO2_return
969
970 change_ppo2_depth_plus:
971 movf decodata+0,W
972 addlw d'117' ; offset in eeprom
973 movwf EEADR
974 call read_eeprom ; Change depth
975 movff EEDATA,lo
976 incf lo,F
977 movlw d'99'
978 cpfsgt lo
979 bra change_ppo2_depth_plus2
980 clrf lo
981 change_ppo2_depth_plus2:
982 movff lo,EEDATA ; write result
983 call write_eeprom ; save result in EEPROM
984 movlw d'4'
985 movwf menupos
986 bra menu_const_ppO21
987
988 change_ppo2_depth_minus:
989 movf decodata+0,W
990 addlw d'117' ; offset in eeprom
991 movwf EEADR
992 call read_eeprom ; Change depth
993 movff EEDATA,lo
994 decf lo,F
995 movlw d'100'
996 cpfsgt lo
997 bra change_ppo2_depth_minus2
998 clrf lo
999 change_ppo2_depth_minus2:
1000 movff lo,EEDATA ; write result
1001 call write_eeprom ; save result in EEPROM
1002 movlw d'5'
1003 movwf menupos
1004 bra menu_const_ppO21
952 1005
953 change_ppo2_plus: 1006 change_ppo2_plus:
954 movf decodata+0,W ; read current value 1007 movf decodata+0,W ; read current value
955 addlw d'36' ; offset in memory 1008 addlw d'36' ; offset in memory
956 movwf EEADR 1009 movwf EEADR
957 call read_eeprom ; Low-value 1010 call read_eeprom ; Low-value
958 movff EEDATA,lo 1011 movff EEDATA,lo
959 1012
960 incf lo,F ; increase depth 1013 movlw .10
961 movlw d'201' 1014 addwf lo,F ; increase ppO2
962 cpfseq lo 1015 movlw d'200'
1016 cpfsgt lo
963 bra change_ppo2_plus2 1017 bra change_ppo2_plus2
964 movlw d'200' 1018 movlw d'30'
965 movwf lo 1019 movwf lo
966 change_ppo2_plus2: 1020 change_ppo2_plus2:
967 movff lo,EEDATA ; write result 1021 movff lo,EEDATA ; write result
968 call write_eeprom ; save result in EEPROM 1022 call write_eeprom ; save result in EEPROM
969 movlw d'3' 1023 movlw d'3'
970 movwf menupos 1024 movwf menupos
971 bra menu_const_ppO21 1025 bra menu_const_ppO21
972 1026
973 change_ppo2_minus: 1027 change_ppo2_reset: ; reset to 1.00bar and 0m depth
974 movf decodata+0,W ; read current value
975 addlw d'36' ; offset in memory
976 movwf EEADR
977 call read_eeprom ; Low-value
978 movff EEDATA,lo
979
980 decf lo,F ; decrease depth
981 movlw d'29'
982 cpfseq lo
983 bra change_ppo2_minus2
984 movlw d'30'
985 movwf lo
986
987 change_ppo2_minus2:
988 movff lo,EEDATA ; write result
989 call write_eeprom ; save result in EEPROM
990
991 movlw d'4'
992 movwf menupos
993 bra menu_const_ppO21
994
995 change_ppo2_reset: ; reset to 1.00Bar
996 movf decodata+0,W ; read current value 1028 movf decodata+0,W ; read current value
997 addlw d'36' ; offset in memory 1029 addlw d'36' ; offset in memory
998 movwf EEADR 1030 movwf EEADR
999 movlw d'100' 1031 movlw d'100'
1000 movwf EEDATA 1032 movwf EEDATA
1001 call write_eeprom ; save result in EEPROM 1033 call write_eeprom ; save result in EEPROM
1002 movlw d'5' 1034
1035 movf decodata+0,W
1036 addlw d'117' ; offset in eeprom
1037 movwf EEADR
1038 clrf EEDATA ; 0m default
1039 call write_eeprom ; save result in EEPROM
1040
1041 movlw d'6'
1003 movwf menupos 1042 movwf menupos
1004 bra menu_const_ppO21 1043 bra menu_const_ppO21
1005 1044
1006 next_ppO2: 1045 next_ppO2:
1007 incf decodata+0,F 1046 incf decodata+0,F