📄 test.lst
字号:
717 012D CE 94 LD EA,TCNT0 ; Load LSB
718 012F 26 REF RLD_WXEA ; Store LSB to WX
719 0130 81 7C LD EA,#01111100b ; Enable T/C0
720 0132 CD 90 LD TMOD0,EA ; clear TCNT0 & Restart
721
722 0134 20 REF RSMB_Variable ;
723 0135 D0 21 BITR CntPeriodNow ;
724
725 0137 F9 8C BTST IRQT0 ;
726 0139 15 JR StoreSample ;
727 013A 86 INCS YZ ;
728 013B 13 JR StoreSample ;
729 013C 5A INCS L ;
730 013D FE 8C BITR IRQT0 ; Clear Timer/Counter Request Flag
731
732 013F StoreSample
733 013F 2B PUSH HL ;
734 0140 83 85 LD HL,#HaveData ;
735
736 0142 F4 35 LDB C,@H+PermitUpdate
737 0144 D7 BTST C ; Chk Permit to update sample or not?
738 0145 12 JR StorePermit ;
739 0146 91 64 JPS INT0_Int1 ;
740 0148 StorePermit
741 0148 F4 25 LDB C,@H+UpdateSample0
742 014A D6 CCF ;
743 014B FC 25 LDB @H+UpdateSample0,C
744 014D D7 BTST C ; Chk where Sample to store?
745 014E 1B JR StoreSample0 ;
746
747 014F StoreSample1
748 014F DC FC LD EA,WX ; LSB
749 0151 CD 5C LD SampleCount1+2,EA
750 0153 DC FE LD EA,YZ ; MSB
751 0155 CD 5A LD SampleCount1,EA ;
752 0157 D1 85 BITS HaveSample1 ; Set Flag for Sample 1 reach
753 0159 1A JR INT0_Int1 ;
754
755 015A StoreSample0 ;
756 015A DC FC LD EA,WX ; LSB
757 015C CD 58 LD SampleCount0+2,EA
758 015E DC FE LD EA,YZ ; MSB
759 0160 CD 56 LD SampleCount0,EA ;
760 0162 C1 85 BITS HaveSample0 ; Set Flag for Sample 0 reach
761
762 0164 INT0_Int1
763 0164 2A POP HL ;
764 0165 E1 26 BITS OvrAbMaxNow ; Exact absolute max
765 0167 D9 02 CPSE L,#0 ;
766 0169 1E JR INT0_Int3 ;
767
768 016A 81 C7 LD EA,#AbsMaxCnt/256-1
769 016C DC BE SBS EA,YZ ; Chk MSB
770 016E 17 JR INT0_Int2 ;
771 016F 25 REF RLD_HLEA
772 0170 82 INCS HL ; if MSB = AbsMaxCnt/256,
773 0171 16 JR INT0_Int3 ; chk LSB
774 0172 81 00 LD EA,#AbsMaxCnt%256
775
776 0174 DC BC SBS EA,WX ;
777 0176 INT0_Int2
778 0176 E0 26 BITR OvrAbMaxNow ; Not Exact absolute max
779 0178 INT0_Int3
780 0178 FE 8E BITR IRQ0 ; Clear INT0 Interrupt Request Flag
781 017A 77 REF RIRET_SB ;
782
783 ;----------------------------------------------------------------------------
784 ; F: INTT0 Interrupt for Timer/Counter 0 Compare Match
785 ; I: CntPeriodNow = 0: DischargePeriod
786 ; 1: CountingPeriod
787 ; N: When enter INTT0_Int, IS0, IS1 = 0, 1
788 017B INTT0_Int
789 017B 73 REF RPush_SB ;
790
791 017C DD 52 SRB RegisterCount ;
792 017E 20 REF RSMB_Variable ;
793 017F D3 21 BTST CntPeriodNow ;
794 0181 91 94 JPS DischargePeriod ;
795
796 ;v***** IMPORTANT - COUNTING PART *****v
797 0183 CountingPeriod ;
798 0183 86 INCS YZ ; MSB for Counting Value
799 0184 11 JR INTT0_IntE ;
800 0185 5A INCS L ; If overflow for 16-bit count number, INCS L
801 ;^*************************************^
802 0186 INTT0_IntE
803 0186 77 REF RIRET_SB ;
804
805 ; if L overflow, display "EE"
806 0187 C2 2B BTSF CntOvrflow ;
807 0189 77 REF RIRET_SB ;
808 018A C1 2B BITS CntOvrflow ;
809 018C E1 26 BITS OvrAbMaxNow ;
810 018E B2 LD A,#2 ; Set OvrWtNow & Clear Others Flags
811 018F 89 27 LD OperFlg8,A ;
812 0191 EC D8 CALLS RL_OWT ;
813 0193 77 REF RIRET_SB ;
814 ;---------------------------------------
815 0194 DischargePeriod
816 0194 CE 5E LD EA,CntTCNT ;
817 0196 DC D8 DECS EA ;
818 0198 91 B2 JPS DischargePeriod8
819
820 ;v***** IMPORTANT TO DO FIRST *****v
821 019A 21 REF RSMB_MemMapIO ; Select Memory Bank
822 019B F9 C1 BTST STOPCNT_PIN ; check interrupt pin is high?
823 019D 1A JR DischargePeriod4 ; when low, restart timer.
824
825 019E 22 REF RSMB_LCD ;
826 019F C1 FB BITS DISCHARGE_PIN ;
827 01A1 20 REF RSMB_Variable ;
828 01A2 D1 21 BITS CntPeriodNow ; Set to Counting Period
829 01A4 87 00 LD YZ,#0 ; Clear MSB
830 01A6 D9 0A LD L,#0 ;
831 01A8 DischargePeriod4
832 01A8 21 REF RSMB_MemMapIO ; Select Memory Bank
833 01A9 81 7C LD EA,#01111100b ; Enable T/C0
834 01AB CD 90 LD TMOD0,EA ; clear TCNT0 & Restart
835 01AD FE 8C BITR IRQT0 ; Clear Timer/Counter Request Flag
836 ;^*********************************^
837
838 01AF 20 REF RSMB_Variable ;
839 01B0 81 57 LD EA,#DischargeDelay
840
841 01B2 DischargePeriod8
842 01B2 CD 5E LD CntTCNT,EA ;
843 01B4 FE 8C BITR IRQT0 ; Clear Timer/Counter Request Flag
844 01B6 77 REF RIRET_SB ;
845
846 ;============================================================================
847
848 ;***********************************************************
849 ; F: Chk MaB key
850 ; I: KeyKGLB, KeyFlozML, KeyHold, KeyHeldNow
851 ;
852 01B7 ChkMaBkey
853 ; REMARK IT BY HCY 03-11-22 10:53
854 01B7 C2 21 BTSF KeyHeldNow ; if key held, exit
855 01B9 C5 RET ;
856
857 01BA 8C 75 LD A,MaB_Key ;
858 01BC 48 DECS A ;
859 01BD 11 JR ChkMaBkey1 ;
860 01BE C5 RET ;
861 01BF ChkMaBkey1
862 01BF F3 26 BTST IdleBatLowNow ; if battery low now, skip
863 01C1 14 JR ChkMaBkey2 ;
864 01C2 B0 LD A,#0 ;
865 01C3 89 75 LD MaB_Key,A ;
866 01C5 C5 RET
867 01C6 ChkMaBkey2
868 ; remark by hcy 03-11-22 12:07
869 ; CALLS Dly60 ; Key delay 600ms
870 01C6 C2 75 BTSF KeyKGLB ;
871 01C8 19 JR MaB_KGLB ;
872
873 01C9 E2 75 BTSF KeyHold ;
874 01CB 91 FE JPS MaB_Hold ;
875
876 01CD D2 75 BTSF KeyFlozML ;
877 01CF 91 EE JPS MaB_FlozML
878 01D1 C5 RET ;
879
880 ;***********************************************************
881 ; F: kg/lb button
882 ; O: KeyKGLB
883 ; N: MaB
884 ;
885 01D2 MaB_KGLB
886 01D2 E2 21 BTSF CntDspNow ; if CntDspNow = 1, exit
887 01D4 C5 RET ;
888 01D5 C0 75 BITR KeyKGLB ;
889
890 01D7 E2 24 BTSF HoldEn ; if hold enable, no funciton
891 01D9 C5 RET
892
893 01DA SetSolMeasure
894 01DA F3 20 BTST SolLiqMode ;
895 01DC 91 E1 JPS SetUnit ;
896 01DE F0 20 BITR SolLiqMode ; Set Solid mode
897 01E0 17 JR RstMode ;
898 01E1 SetUnit
899 01E1 E7 SCF ;
900 01E2 83 20 LD HL,#OperFlg1 ;
901 01E4 F7 20 BXOR C,@H+UnitMode ; switch % g/lb
902 01E6 FC 20 LDB @H+UnitMode,C ;
903
904 01E8 RstMode
905 01E8 EA BB CALLS SetFactoryMode ;
906 01EA 63 REF RSetBnd ;
907
908 01EB EF B7 CALLS MainCalculate2 ;
909 01ED C5 RET
910 ;-----------------------------------
911 ; F: fl.oz/ml button
912 ; O: SolLiqMode, UnitMode
913 ; N: MaB
914 ;
915 01EE MaB_FlozML
916 01EE E2 21 BTSF CntDspNow ; if CntDspNow = 1, exit
917 01F0 C5 RET ;
918 01F1 D0 75 BITR KeyFlozML ;
919
920 01F3 E2 24 BTSF HoldEn ; if hold enable, no funciton
921 01F5 C5 RET
922
923 01F6 SetLiqMeasure
924 01F6 F2 20 BTSF SolLiqMode ;
925 01F8 91 E1 JPS SetUnit ;
926 01FA F1 20 BITS SolLiqMode ; Set Liquid mode
927
928 01FC 91 E8 JPS RstMode ;
929
930
931 ;--------------------------------------------------------
932 ; F: Hold key operation
933 01FE MaB_Hold
934 01FE E0 75 BITR KeyHold
935
936 0200 E2 24 BTSF HoldEn
937 0202 1B JR IsHoldKey2
938 0203 IsHoldKey1
939 0203 E1 24 BITS HoldEn
940 0205 C1 88 BITS Icon_Hold ; Indicate Hold is enable now
941 0207 BC LD A,#HoldChkTime ; Reset Hold check interval timer
942 0208 89 3F LD HoldTimer,A ;
943 020A B0 LD A,#0
944 020B 89 7F LD HoldState,A
945 020D 16 JR IsHoldKey3 ;
946 020E IsHoldKey2
947 020E E0 24 BITR HoldEn
948 0210 C0 88 BITR Icon_Hold ; Indicate Hold is disable
949 0212 D0 7F BITR HoldRd ; Set this flag to allow update the display
950 0214 IsHoldKey3
951 0214 C5 RET
952 ;***********************************************************
953 ; O: KeyHeldNow
954 ; N: xxxx0000 - EA : Key scan input
955 ; |||'-- Off button
956 ; ||'--- kg/lb button
957 ; |'---- fl.oz/ml button
958 ; '----- hold button
959 ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -