📄 sam2_m.l
字号:
961 0243 DB 02 35 JP ChkKeyPress9 ; exit
962
963 ;-----------------------------------
964 ; F: Hold key button
965 ; O: KeyHold
966 ; N: MaB
967 ;
968 0246 IsHoldKey
969 0246 C3 21 BTST KeyHeldNow ; if key held,
970 0248 E1 75 BITS KeyHold ;
971 024A DB 02 35 JP ChkKeyPress9 ; exit
972
973 ;====== DISPLAY ROUTINE ============================================
974
975 ;***********************************************************
976 ; F: Set NewWeightBCD & spWeightBCD to display nothing
977 ; O: NewWeightBCD[]
978 ; D: EA
979 ;
980 024D InitWeightBCD
981 024D 27 REF RLD_EA0
982 024E CD 90 LD NewWeightBCD0,EA ;
983 0250 CD 92 LD NewWeightBCD2,EA ;
984 0252 89 94 LD NewWeightBCD4,A ;
985 0254 C5 RET
986
987 ;***********************************************************
988 ; F: Clear weighting Symbol, retain low bat & timer icon
989 ; O: Iconset0, Iconset1, Iconset2
990 ; D: A
991 ;
992 0255 ClearWgtSym
993 0255 B0 LD A,#0 ; Clear decpt1, colon, g, oz
994 0256 89 86 LD Iconset0,A ; Clear lb, kg, decpt2, low bat
995 0258 89 87 LD Iconset1,A ;
996 025A 8C 89 LD A,Iconset3 ; Clear one, decpt3
997 025C DD 12 AND A,#0010b ; retain tare icon
998 025E 89 89 LD Iconset3,A ;
999 0260 8C 88 LD A,Iconset2 ; Clear S2, fl., ml
1000 0262 DD 11 AND A,#0001b ; retain Hold icon
1001 0264 89 88 LD Iconset2,A ;
1002 0266 C5 RET
1003
1004 ;***********************************************************
1005 ; F: Display Version Number
1006 ; O: NULL
1007 ;
1008 ;
1009 ;
1010 0267 DspVerNo
1011 0267 DB 42 9F CALL DspWeightTare ; Clear Display
1012 026A 81 05 LD EA,#LDsp_5 ; Display Samsung II
1013 026C CD 54 LD LDigit1xxx,EA ;
1014 026E 81 02 LD EA,#LDsp_2 ;
1015 0270 CD 52 LD LDigitx1xx,EA ;
1016
1017 0272 81 01 LD EA,#VerD1 ; Display Version
1018 0274 35 REF RLD_LDIGxx1xEA ;
1019 0275 81 08 LD EA,#VerD2 ;
1020 0277 34 REF RLD_LDIGxxx1EA ;
1021 0278 55 REF RDsp4LDigit ; Display ???? Digits
1022 0279 C5 RET
1023
1024 ;***********************************************************
1025 ; F: Display Overload - " EE"
1026 ; O: SDigitx_8
1027 ; LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
1028 ;
1029 027A DspADInitErr
1030 027A 81 0E DspEE LD EA,#LDsp_E ; Display "EE" when A/D init error
1031 027C 34 REF RLD_LDIGxxx1EA ;
1032 027D 1B JR DspHILO ;
1033
1034 ;***********************************************************
1035 ; F: Display Overload - " LO "
1036 ; O: SDigitx_8
1037 ; LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
1038 ;
1039 027E 81 00 DspLO LD EA,#LDsp_O ;
1040 0280 34 REF RLD_LDIGxxx1EA ;
1041 0281 81 11 LD EA,#LDsp_L ;
1042 0283 15 JR DspHILO ;
1043
1044 ;***********************************************************
1045 ; F: Display Overload - " HI "
1046 ; O: SDigitx_8
1047 ; LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
1048 ;
1049 0284 81 01 DspHI LD EA,#LDsp_I ;
1050 0286 34 REF RLD_LDIGxxx1EA ;
1051 0287 81 10 LD EA,#LDsp_H ;
1052 0289 35 DspHILO REF RLD_LDIGxx1xEA ;
1053 028A 81 17 LD EA,#LDspNul ;
1054 028C EA A8 CALLS LdLDigit1 ;
1055 028E 17 JR ClrDspBuf1 ;
1056
1057 ;***********************************************************
1058 ; F: Clear display buffer
1059 ; D: EA
1060 ;
1061 028F ClrDspBuf
1062 028F 81 17 LD EA,#LDspNul ;
1063 0291 EA A6 CALLS LdLDigit ;
1064 0293 DB 4D C1 CALL ClearSymbol ;
1065 0296 ClrDspBuf1
1066 0296 EA 55 CALLS ClearWgtSym ;
1067 0298 B9 LD A,#SDsp_Nul ;
1068 0299 54 REF RDspSDigit ; Display ?/? Digits
1069 029A 55 REF RDsp4LDigit ; Display ???? Digits
1070 029B 56 REF RDspSymbol ;
1071 029C C5 RET
1072
1073 ;***********************************************************
1074 ; F: Display Underweight - "----"
1075 ; O: SDigitx_8
1076 ; LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
1077 ;
1078 029D DspUnderWeight
1079 029D 81 16 LD EA,#LDsp__ ;
1080
1081 ;***********************************************************
1082 ; F: Weight Taring Display - "0000"
1083 ; O: SDigitx_8
1084 ; LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
1085 ;
1086 029F DspWeightTare
1087 029F 81 00 LD EA,#LDsp_0 ;
1088 02A1 EA A6 CALLS LdLDigit ;
1089 02A3 02 JR ClrDspBuf1 ;
1090
1091 ;***********************************************************
1092 ; F: Display "8888"
1093 ; O: LDigit1xxx, LDigitx1xx, LDigitxx1x, LDigitxxx1
1094
1095 02A4 LdLDig8888
1096 02A4 81 08 LD EA,#LDsp_8 ;
1097
1098 ;***********************************************************
1099 ; F: Load EA into 4 Large digit buffer
1100 ; I: EA
1101 ; O: LDigitxxx1 = LDigitxx1x = LDigitx1xx = LDigit1xxx = EA
1102 ;
1103 02A6 LdLDigit
1104 02A6 34 REF RLD_LDIGxxx1EA ;
1105 02A7 35 REF RLD_LDIGxx1xEA ;
1106 02A8 LdLDigit1
1107 02A8 CD 52 LD LDigitx1xx,EA ;
1108 02AA CD 54 LD LDigit1xxx,EA ;
1109 02AC E2 27 BTSF UdrWtNow ; if underweight now,
1110 02AE 81 17 LD EA,#LDspNul ; dsp decimal digit to nothing.
1111 02B0 CD 4C LD LDigit___1,EA ;
1112 02B2 C5 RET
1113
1114 ;***********************************************************
1115 ; F: Initialize Mode Setting
1116 ; I: FactoryMode = 0..15 Mode
1117 ; UnitMode = 0(kg), 1(lb)
1118 ; OperFlag5.3,2 = 0: g(Default); 1 = oz; 2 = ml; 3 = fl.oz
1119 ; O: Step1, Step2, Bound1, Bound2
1120 ; gRatio, oz1_8Ratio, ozRatio, lbRatio
1121 ;
1122 02B3 SetFactoryMode
1123 02B3 8C 45 LD A,FactoryMode
1124 02B5 E2 20 BTSF UnitMode
1125 02B7 92 C1 JPS Set_oz_Mode
1126
1127 02B9 Set_g_Mode
1128 02B9 D9 3F LD Y,#3 ;
1129 02BB 83 AA LD HL,#Mode_g_1_8 ;
1130 02BD EA D0 CALLS SetFactory1 ;
1131 02BF 92 CF JPS SetFactoryModeE ;
1132
1133 02C1 Set_oz_Mode
1134 02C1 D9 6F LD Y,#6 ;
1135 02C3 83 C2 LD HL,#Mode_lb_1_8 ;
1136 02C5 EA D0 CALLS SetFactory1 ;
1137 02C7 EA DC CALLS SetFactory2 ;
1138 02C9 F3 20 BTST SolLiqMode ;
1139 02CB 92 CF JPS SetFactoryModeE ;
1140
1141 02CD Set_floz_code
1142 02CD EA DF CALLS SetFactory3 ;
1143
1144 02CF SetFactoryModeE
1145 02CF C5 RET
1146
1147 ;------------------------------------------------------------------
1148 02D0 SetFactory1
1149 02D0 30 REF RLD_E0 ; Only have 0..15 mode
1150 02D1 EC 19 CALLS HexMul ;
1151 02D3 E6 RCF ;
1152 02D4 33 REF RADC_EAHL ; EA = Start addr of mode data
1153 02D5 26 REF RLD_WXEA ;
1154 02D6 83 96 LD HL,#Step1 ;
1155 02D8 52 REF RStoreWordCode ; Store Step1
1156 02D9 52 REF RStoreWordCode ; Store Boundary1
1157 02DA 53 REF RStoreByteCode ; Store Unit count
1158 02DB C5 RET
1159
1160 02DC SetFactory2
1161 02DC 52 REF RStoreWordCode ; Store Unit count (1 oz)
1162 02DD 52 REF RStoreWordCode ; Store Unit count (1 lb)
1163 02DE C5 RET
1164
1165 02DF SetFactory3
1166 02DF 83 9A LD HL,#Bound1 ;
1167 02E1 52 REF RStoreWordCode ; Store fl.oz boundaries
1168 02E2 C5 RET
1169
1170 ;***********************************************************
1171 ; F: Delay routine
1172 ; I: EA = ? x 10 ms
1173 ;
1174 02E3 81 01 Dly1 LD EA,#1 ;
1175 02E5 81 02 Dly2 LD EA,#2 ;
1176 02E7 81 14 Dly20 LD EA,#20 ;
1177 02E9 81 3C Dly60 LD EA,#60 ;
1178 02EB 81 C8 Dly200 LD EA,#200 ;
1179 02ED 81 FA Dly250 LD EA,#250 ;
1180 02EF DB 4A A5 CALL Delay10ms ;
1181 02F2 C5 RET
1182
1183 ;***********************************************************
1184 ; F: Calculate Step value
1185 ; I: UnitCnt, Step1, Step2
1186 ; O: EA = Step value
1187 ; HexCalFlg = 1
1188 ; N: Step value = Step count / Unit count / 10
1189 ; Step value = 1byte
1190 ; For mode 6 & 15, Step value = Step / Unit count
1191 ;
1192 02F3 CalStepVal
1193 02F3 2B PUSH HL
1194
1195 02F4 85 64 LD WX,#YS_F_REG_4 ;
1196 02F6 62 REF RCurStep2Ary ;
1197 02F7 CE 9E LD EA,UnitCnt ; Step VaLue = Step count / Unit count
1198 02F9 83 74 LD HL,#YS_L_REG_4 ;
1199 02FB 50 REF RByteAry ;
1200 02FC 36 REF RDiv_YS ;
1201
1202 ; LD A,FactoryMode ;
1203
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -