📄 sam2t.l
字号:
733 01B6 21 REF RSMB_MemMapIO ; Select Memory Bank
734 01B7 81 7C LD EA,#01111100b ; Enable T/C0
735 01B9 CD 90 LD TMOD0,EA ; clear TCNT0 & Restart
736 01BB FE 8C BITR IRQT0 ; Clear Timer/Counter Request Flag
737 ;^*********************************^
738
739 01BD 20 REF RSMB_Variable ;
740 01BE 81 57 LD EA,#DischargeDelay
741
742 01C0 DischargePeriod8
743 01C0 CD 5E LD CntTCNT,EA ;
744 01C2 FE 8C BITR IRQT0 ; Clear Timer/Counter Request Flag
745 01C4 77 REF RIRET_SB ;
746
747 ;============================================================================
748
749 ;***********************************************************
750 ; F: Chk MaB key
751 ; I: KeyKGLB, KeyFlozML, KeyHold, KeyHeldNow
752 ;
753 01C5 ChkMaBkey
754 01C5 C2 21 BTSF KeyHeldNow ; if key held, exit
755 01C7 C5 RET ;
756 01C8 8C 75 LD A,MaB_Key ;
757 01CA 48 DECS A ;
758 01CB 11 JR ChkMaBkey1 ;
759 01CC C5 RET ;
760 01CD ChkMaBkey1
761 01CD F3 26 BTST IdleBatLowNow ; if battery low now, skip
762 01CF 14 JR ChkMaBkey2 ;
763 01D0 B0 LD A,#0 ;
764 01D1 89 75 LD MaB_Key,A ;
765 01D3 C5 RET
766 01D4 ChkMaBkey2
767 01D4 EA C2 CALLS Dly60 ; Key delay 600ms
768 01D6 C2 75 BTSF KeyKGLB ;
769 01D8 19 JR MaB_KGLB ;
770
771 01D9 E2 75 BTSF KeyHold ;
772 01DB 92 0E JPS MaB_Hold ;
773
774 01DD D2 75 BTSF KeyFlozML ;
775 01DF 91 FE JPS MaB_FlozML
776 01E1 C5 RET ;
777
778 ;***********************************************************
779 ; F: kg/lb button
780 ; O: KeyKGLB
781 ; N: MaB
782 ;
783 01E2 MaB_KGLB
784 01E2 E2 21 BTSF CntDspNow ; if CntDspNow = 1, exit
785 01E4 C5 RET ;
786 01E5 C0 75 BITR KeyKGLB ;
787
788 01E7 E2 24 BTSF HoldEn ; if hold enable, no funciton
789 01E9 C5 RET
790
791 01EA SetSolMeasure
792 01EA F3 20 BTST SolLiqMode ;
793 01EC 91 F1 JPS SetUnit ;
794 01EE F0 20 BITR SolLiqMode ; Set Solid mode
795 01F0 17 JR RstMode ;
796 01F1 SetUnit
797 01F1 E7 SCF ;
798 01F2 83 20 LD HL,#OperFlg1 ;
799 01F4 F7 20 BXOR C,@H+UnitMode ; switch % g/lb
800 01F6 FC 20 LDB @H+UnitMode,C ;
801
802 01F8 RstMode
803 01F8 EA 8C CALLS SetFactoryMode ;
804 01FA 63 REF RSetBnd ;
805
806 01FB EF C5 CALLS MainCalculate2 ;
807 01FD C5 RET
808 ;-----------------------------------
809 ; F: fl.oz/ml button
810 ; O: SolLiqMode, UnitMode
811 ; N: MaB
812 ;
813 01FE MaB_FlozML
814 01FE E2 21 BTSF CntDspNow ; if CntDspNow = 1, exit
815 0200 C5 RET ;
816 0201 D0 75 BITR KeyFlozML ;
817
818 0203 E2 24 BTSF HoldEn ; if hold enable, no funciton
819 0205 C5 RET
820
821 0206 SetLiqMeasure
822 0206 F2 20 BTSF SolLiqMode ;
823 0208 91 F1 JPS SetUnit ;
824 020A F1 20 BITS SolLiqMode ; Set Liquid mode
825 020C 91 F8 JPS RstMode ;
826
827 ;--------------------------------------------------------
828 ; F: Hold key operation
829 020E MaB_Hold
830 020E E0 75 BITR KeyHold
831
832 0210 E2 24 BTSF HoldEn
833 0212 1B JR IsHoldKey2
834 0213 IsHoldKey1
835 0213 E1 24 BITS HoldEn
836 0215 C1 88 BITS Icon_Hold ; Indicate Hold is enable now
837 0217 BC LD A,#HoldChkTime ; Reset Hold check interval timer
838 0218 89 3F LD HoldTimer,A ;
839 021A B0 LD A,#0
840 021B 89 7F LD HoldState,A
841 021D 16 JR IsHoldKey3 ;
842 021E IsHoldKey2
843 021E E0 24 BITR HoldEn
844 0220 C0 88 BITR Icon_Hold ; Indicate Hold is disable
845 0222 D0 7F BITR HoldRd ; Set this flag to allow update the display
846 0224 IsHoldKey3
847 0224 C5 RET
848 ;***********************************************************
849 ; O: KeyHeldNow
850 ; N: xxxx0000 - EA : Key scan input
851 ; |||'-- Off button
852 ; ||'--- kg/lb button
853 ; |'---- fl.oz/ml button
854 ; '----- hold button
855 ;
856 0225 ChkKeyPressed
857 0225 DC F6 LD YZ,EA ;
858 0227 ED 17 CALLS SetST_RL ; reset sleep timer
859
860 0229 47 REF RSkipSRC_YZ ;
861 022A 91 10 JPS Sleep ; Off button
862 022C 47 REF RSkipSRC_YZ ;
863 022D 92 38 JPS IsKeyKGLB ; kg/lb button
864 022F 47 REF RSkipSRC_YZ ;
865 0230 92 3F JPS IsKeyFLOZML ; fl.oz/ml button
866 0232 47 REF RSkipSRC_YZ ;
867 0233 92 46 JPS IsHoldKey ; Hold key button
868
869 0235 ChkKeyPress9
870 0235 C1 21 BITS KeyHeldNow ;
871 0237 ChkKeyPressE
872 0237 C5 RET
873
874 ;***********************************************************
875 ; F: kg/lb button
876 ; O: KeyKGLB
877 ; N: MaB
878 ;
879 0238 IsKeyKGLB
880 0238 C3 21 BTST KeyHeldNow ; if key held,
881 023A C1 75 BITS KeyKGLB ;
882 023C DB 02 35 JP ChkKeyPress9 ; exit
883
884 ;***********************************************************
885 ; F: kg/lb button
886 ; O: KeyFlozML
887 ; N: MaB
888 ;
889 023F IsKeyFLOZML
890 023F C3 21 BTST KeyHeldNow ; if key held,
891 0241 D1 75 BITS KeyFlozML ;
892 0243 DB 02 35 JP ChkKeyPress9 ; exit
893
894 ;-----------------------------------
895 ; F: Hold key button
896 ; O: KeyHold
897 ; N: MaB
898 ;
899 0246 IsHoldKey
900 0246 C3 21 BTST KeyHeldNow ; if key held,
901 0248 E1 75 BITS KeyHold ;
902 024A DB 02 35 JP ChkKeyPress9 ; exit
903
904 ;====== DISPLAY ROUTINE ============================================
905
906 ;***********************************************************
907 ; F: Set NewWeightBCD & spWeightBCD to display nothing
908 ; O: NewWeightBCD[]
909 ; D: EA
910 ;
911 024D InitWeightBCD
912 024D 27 REF RLD_EA0
913 024E CD 90 LD NewWeightBCD0,EA ;
914 0250 CD 92 LD NewWeightBCD2,EA ;
915 0252 89 94 LD NewWeightBCD4,A ;
916 0254 C5 RET
917
918 ;***********************************************************
919 ; F: Clear weighting Symbol, retain low bat & timer icon
920 ; O: Iconset0, Iconset1, Iconset2
921 ; D: A
922 ;
923 0255 ClearWgtSym
924 0255 B0 LD A,#0 ; Clear decpt1, colon, g, oz
925 0256 89 86 LD Iconset0,A ; Clear lb, kg, decpt2, low bat
926 0258 89 87 LD Iconset1,A ;
927 025A 8C 89 LD A,Iconset3 ; Clear one, decpt3
928 025C DD 12 AND A,#0010b ; retain tare icon
929 025E 89 89 LD Iconset3,A ;
930 0260 8C 88 LD A,Iconset2 ; Clear S2, fl., ml
931 0262 DD 11 AND A,#0001b ; retain Hold icon
932 0264 89 88 LD Iconset2,A ;
933 0266 C5 RET
934
935 ;***********************************************************
936 ; F: Display Version Number
937 ; O: NULL
938 ;
939 ;
940 0267 DspVerNo
941 ; CALL DspWeightTare ; Clear Display
942 ; LD EA,#LDsp_5 ; Display Samsung II
943 ; LD LDigit1xxx,EA ;
944 ; LD EA,#LDsp_2 ;
945 ; LD LDigitx1xx,EA ;
946 ;
947 ; LD EA,#VerD1 ; Display Version
948 ; REF RLD_LDIGxx1xEA ;
949 ; LD EA,#VerD2 ;
950 ; REF RLD_LDIGxxx1EA ;
951 ; REF RDsp4LDigit ; Display ???? Digits
952 0267 C5 RET
953
954
955 ;------------------------------------------
956 ; REMARK THESE BY HCY FOR TEST
957 ;***********************************************************
958 ; F: Display Overload - " EE"
959 ; O: SDigitx_8
960 ; LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
961 ;
962 0268 DspADInitErr
963 0268 DspEE ;LD EA,#LDsp_E ; Display "EE" when A/D init error
964 ;REF RLD_LDIGxxx1EA ;
965 ;JR DspHILO ;
966
967 ;***********************************************************
968 ; F: Display Overload - " LO "
969 ; O: SDigitx_8
970 ; LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
971 ;
972 0268 DspLO ;LD EA,#LDsp_O ;
973 ;REF RLD_LDIGxxx1EA ;
974 ;LD EA,#LDsp_L ;
975 ;JR DspHILO ;
976
977 ;***********************************************************
978 ; F: Display Overload - " HI "
979 ; O: SDigitx_8
980 ; LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -