⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calcmain.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
0685 F1 00          931 		lda	.SFlag
0687 CB 08          932 		anda	#08h
0689 06 01 73       933 		brz	.CalcResoult
068C 02 06 07       934 		br	.DORnd						 
+                   935 ;------------------------------------------
068F                936 .DRG:
068F F3 00          937 		lda	#>BasenFlag
0691 FC 28          938 		sta	PP
0693 F1 00          939         	lda	BasenFlag
0695 CB 0F          940 		anda	#0fh
0697 07 03 C2       941 		brnz	.EmitKeyD    	        	        	         	      	
069A F5 DF          942         	lda0	.ModeFlag
069C CB F0          943 		anda	#0f0h
069E 07 03 C2       944 		brnz	.EmitKeyD
06A1 20 00 00       945 		call	DRGdisp
06A4 F3 01          946 		lda	#01h
06A6 FC 28          947 		sta	PP
06A8 F1 00          948 		lda	.SetFlag
06AA DB 02          949 		ora	#02h
06AC FD 00          950 		sta     .SetFlag
06AE 02 03 C2       951 		br	.EmitKeyD
+                   952 ;------------------------------------------
+                   953 ;;;;;;;;;;;;;;;Calc M+ M-		
06B1                954 .M_ADD:
06B1 F3 00          955 		lda	#>StateFlag
06B3 FC 28          956 		sta	PP
06B5 F1 00          957 		lda	StateFlag
06B7 CB 88          958 		anda	#88h		;comp & basen
06B9 A7 08          959 		cmpe	#08h
06BB 06 06 D9       960 		brz	.BasenMadd
06BE A7 80          961 		cmpe	#80h
06C0 07 03 C2       962 		brnz	.EmitKeyD
06C3 20 00 00       963 		call	.M_TO_X
06C6 20 00 00       964 		call	.Z_trans_Y
06C9 F3 00          965 		lda	#0h
06CB FC 28          966 		sta	PP
06CD 20 00 00       967 		call    Addition
+                   968 		;call	.CkOPZEmpty
06D0 20 00 00       969 		call	.Z_trans_X
06D3 20 00 00       970 		call	.X_TO_M		
06D6 02 03 C2       971 		br 	.EmitKeyD
06D9                972 .BasenMadd:
06D9 20 00 00       973 		call	.M_TO_X
06DC 20 00 00       974 		call	.Buf_trans_Y
06DF F3 00          975 		lda	#0h
06E1 F9 00          976 		sta0	SignY
06E3 F3 00          977 		lda	#0h
06E5 FC 28          978 		sta	PP
06E7 20 00 00       979 		call    Addition
+                   980 		;call	.CkOPZEmpty
06EA 20 00 00       981 		call	.Z_trans_X
06ED 20 00 00       982 		call	.X_TO_M	
+                   983 		;call	.Z_trans_Buf	
06F0 02 03 C2       984 		br 	.EmitKeyD		
06F3                985 .M_SUB:		
06F3 F3 00          986 		lda	#>StateFlag
06F5 FC 28          987 		sta	PP
06F7 F1 00          988 		lda	StateFlag
06F9 CB 88          989 		anda	#88h		;comp & basen
06FB A7 08          990 		cmpe	#08h
06FD 06 07 1B       991 		brz	.BasenMsub
0700 A7 80          992 		cmpe	#80h
0702 07 03 C2       993 		brnz	.EmitKeyD
+                   994 		;call	.CkOPZEmpty
0705 20 00 00       995 		call	.M_TO_X
0708 20 00 00       996 		call	.Z_trans_Y
070B F3 00          997 		lda	#0h
070D FC 28          998 		sta	PP
070F 20 00 00       999 		call	Subtration		
0712 20 00 00      1000 		call	.Z_trans_X
0715 20 00 00      1001 		call	.X_TO_M			
0718 02 03 C2      1002 		br 	.EmitKeyD
071B               1003 .BasenMsub:
071B 20 00 00      1004 		call	.M_TO_X
071E 20 00 00      1005 		call	.Buf_trans_Y
0721 F3 00         1006 		lda	#0h
0723 F9 00         1007 		sta0	SignY
0725 F3 00         1008 		lda	#0h
0727 FC 28         1009 		sta	PP
0729 20 00 00      1010 		call    Subtration
+                  1011 		;call	.CkOPZEmpty
072C 20 00 00      1012 		call	.Z_trans_X
072F 20 00 00      1013 		call	.X_TO_M
0732 20 00 00      1014 		call	.Z_trans_Buf		
0735 02 03 C2      1015 		br 	.EmitKeyD
0738               1016 .CkOPZEmpty:		
0738 F3 00         1017 		lda	#<OperandZ
073A F9 00         1018 		sta0	Addr1
073C 20 00 00      1019 		call	CheckData
073F F5 00         1020 		lda0	DpCount
0741 A7 00         1021 		cmpe	#0h
0743 07 07 56      1022 		brnz	.Store_M
0746 F3 00         1023 		lda	#>.SFlag
0748 FC 28         1024 		sta	PP
074A F1 00         1025 		lda	.SFlag
074C CB F7         1026 		anda	#~08h
074E FD 00         1027 		sta	.SFlag
0750 F1 00         1028 		lda	.SetFlag
0752 CB DF         1029 		anda	#~20h
0754 FD 00         1030 		sta	.SetFlag
0756               1031 .Store_M:	
0756 24            1032 		ret						
+                  1033 ;------------------------------------------
0757               1034 .STOMemory:
0757 F3 01         1035 		lda	#01h
0759 FC 28         1036 		sta	PP
075B F1 00         1037 		lda	BasenFlag
075D CB F0         1038 		anda	#0f0h
075F 06 07 65      1039 		brz	1$
0762 20 00 00      1040 		call	.I_trans_Z
+                  1041 1$:		
0765 20 00 00      1042 		call	.STOReg					 			
0768 02 03 BF      1043 		br	.DispDotMatrix
076B               1044 .RCLMemory:
076B F3 00         1045 		lda	#>.SFlag
076D FC 28         1046 		sta	PP
076F F1 00         1047 		lda	.SFlag
0771 CB 40         1048 		anda	#40h
0773 06 07 7A      1049 		brz	1$
0776 F3 00         1050 		lda	#0h
0778 F9 D4         1051 		sta0	.DataDP		
+                  1052 1$:		
077A 20 00 00      1053 		call	.RCLReg	
077D F3 00         1054 		lda	#>.SFlag
077F FC 28         1055 		sta	PP
0781 F1 00         1056 		lda	.SFlag
0783 CB BF         1057 		anda	#~40h
0785 FD 00         1058 		sta	.SFlag	
0787 F3 01         1059 		lda	#01h
0789 FC 28         1060 		sta	PP
078B F1 00         1061 		lda	BasenFlag
078D CB F0         1062 		anda	#0f0h
078F 07 03 BF      1063 		brnz	.DispDotMatrix
0792 20 00 00      1064 		call	.Z_trans_I 
0795 20 00 00      1065 		call	.Carry
+                  1066 				
0798 02 03 BF      1067 		br	.DispDotMatrix
+                  1068 ;;;;;;;;Anyway press left or right key set EditMode 		
079B               1069 .CkLR:		
079B F3 00         1070 		lda	#0h
079D F9 00         1071 		sta0	.FormulaFlag
079F 20 00 00      1072 		call	Chkkeylr
07A2 A7 01         1073 		cmpe	#01h
07A4 06 03 BF      1074 		brz	.DispDotMatrix 
07A7 A7 02         1075 		cmpe	#02h
07A9 06 03 C2      1076 		brz	.EmitKeyD
07AC 02 03 BF      1077 		br	.DispDotMatrix 					
+                  1078 ;------------------------------------------								
07AF               1079 .CKIns:		
07AF F3 01         1080 		lda	#01h
07B1 FC 28         1081 		sta	PP		
07B3 F1 00         1082 		lda	Insetflag
07B5 A7 01         1083 		cmpe	#01h
07B7 06 03 BF      1084 		brz	.DispDotMatrix
07BA 02 01 73      1085 		br 	.CalcResoult
07BD               1086 .INSck:				
07BD F3 00         1087 		lda	#>Insetflag 		
07BF FC 28         1088 		sta	PP
07C1 F5 00         1089 		lda0	.SFDP
07C3 A7 00         1090 		cmpe	#0h
07C5 06 07 DE      1091 		brz	.Ckeck1$
07C8 F1 00         1092 		lda	Insetflag
07CA A7 00         1093 		cmpe	#0
07CC 06 07 D7      1094 		brz	.Ckeck0$
07CF A7 01         1095 		cmpe	#1
07D1 06 07 DE      1096 		brz	.Ckeck1$
07D4 02 03 BF      1097 		br	.DispDotMatrix		
07D7               1098 .Ckeck0$:
07D7 F3 01         1099 		lda	#1
07D9 FD 00         1100 		sta	Insetflag		
07DB 02 03 C2      1101 		br	.EmitKeyD		
07DE               1102 .Ckeck1$:
07DE F3 00         1103 		lda	#0
07E0 FD 00         1104 		sta	Insetflag		
07E2 02 03 C2      1105 		br	.EmitKeyD
+                  1106 ;;;;Mode select Comp SD REG Deg	Rad Gra	Fix Sci	Norm		
07E5               1107 .Modeadd:
07E5 F3 00         1108 		lda	#>StateFlag
07E7 FC 28         1109 		sta	PP
07E9 F1 00         1110 		lda	StateFlag		
07EB F3 00         1111 		lda	#0h
07ED FD 00         1112 		sta	DaltaXcnt		
07EF 20 00 00      1113 		call	Modeselect
07F2 02 03 BF      1114 		br	.DispDotMatrix				
07F5               1115 .Logic:			
07F5 20 00 00      1116 		call	LogicSelect
07F8 02 03 BF      1117 		br	.DispDotMatrix	
+                  1118 ;;;;;;;;;;;Judge Key auto add Ans		
07FB               1119 .CheckRnd::	
07FB F3 00         1120 		lda	#>.SFlag
07FD FC 28         1121 		sta	PP	
07FF F1 00         1122 		lda	.SFlag		 
0801 CB 30         1123 		anda	#30h
0803 07 05 57      1124 		brnz	.MemoryCK
0806 F5 00         1125 		lda0	.KeyPos
0808 A7 A4         1126 		cmpe	#0a4h			;+
080A 06 08 C5      1127 		brz	.DOAns
080D A7 A5         1128 		cmpe	#0a5h			;-
080F 06 08 C5      1129 		brz	.DOAns
0812 A7 A6         1130 		cmpe	#0a6h			;*
0814 06 08 C5      1131 		brz	.DOAns
0817 A7 A7         1132 		cmpe	#0a7h			;/
0819 06 08 C5      1133 		brz	.DOAns	
081C A7 D3         1134 		cmpe	#0d3h			;x^y
081E 06 08 C5      1135 		brz	.DOAns
0821 A7 D7         1136 		cmpe	#0d7h			;xSqu
0823 06 08 C5      1137 		brz	.DOAns
0826 A7 C8         1138 		cmpe	#0c8h			;x-1
0828 06 08 C5      1139 		brz	.DOAns
082B A7 D4         1140 		cmpe	#0d4h			;x!
082D 06 08 C5      1141 		brz	.DOAns
0830 A7 C5         1142 		cmpe	#0c5h			;x^2
0832 06 08 C5      1143 		brz	.DOAns
0835 A7 D2         1144 		cmpe	#0d2h			;x^3
0837 06 08 C5      1145 		brz	.DOAns		
083A A7 AA         1146 		cmpe	#0aah			;degree
083C 06 08 C5      1147 		brz	.DOAns
083F A7 BB         1148 		cmpe	#0bbh			;Rad
0841 06 08 C5      1149 		brz	.DOAns
0844 A7 CE         1150 		cmpe	#0ceh			;G%
0846 06 08 C5      1151 		brz	.DOAns
0849 A7 00         1152 		cmpe	#0h
084B 06 09 C0      1153 		brz	.EndAutoaddANS		;ret
084E A7 31         1154 		cmpe	#31h			;shift abc
0850 06 09 C0      1155 		brz	.EndAutoaddANS
0853 A7 42         1156 		cmpe	#42h			;shift abc
0855 06 09 C0      1157 		brz	.EndAutoaddANS
0858 A7 52         1158 		cmpe	#52h			;sto
085A 06 09 C0      1159 		brz	.EndAutoaddANS
085D A7 53         1160 		cmpe	#53h			;rcl
085F 06 09 C0      1161 		brz	.EndAutoaddANS
0862 A7 C3         1162 		cmpe	#0c3h			;ab/c
0864 06 09 C0      1163 		brz	.EndAutoaddANS
0867 A7 B7         1164 		cmpe	#0b7h			;degree
0869 06 09 C0      1165 		brz	.EndAutoaddANS
086C A7 61         1166 		cmpe	#61h			;ins
086E 06 09 2A      1167 		brz	.RndEnd
0871 A7 65         1168 		cmpe	#65h			;del
0873 06 09 2A      1169 		brz	.RndEnd
0876 A7 60         1170 		cmpe	#60h			;ins
0878 06 09 2A      1171 		brz	.RndEnd		
087B A7 B5         1172 		cmpe	#0b5h			;m+
087D 06 09 1F      1173 		brz	.EndCheckRnd 		
0880 A7 CC         1174 		cmpe	#0cch			;left
0882 06 09 1F      1175 		brz	.EndCheckRnd 
0885 A7 DD         1176 		cmpe	#0ddh			;right
0887 06 09 1F      1177 		brz	.EndCheckRnd 
088A A7 77         1178 		cmpe	#77h			;%
088C 06 09 1F      1179 		brz	.EndCheckRnd 
088F A7 A3         1180 		cmpe	#0a3h			;=
0891 06 09 1F      1181 		brz	.EndCheckRnd 
+                  1182 ;		cmpe	#0dfh			;;;;;;;
+                  1183 ;		brz	.EndCheckRnd 
+                  1184 ;		cmpe	#.MODE
+                  1185 ;		brz	.EndCheckRnd 
+                  1186 ;		cmpe	#0b6h		
+                  1187 ;		brz	.EndCheckRnd		
+                  1188 ;		cmpe	#0bdh
+                  1189 ;		brz	.EndCheckRnd
+                  1190 ;		cmpe	#0beh
+                  1191 ;		brz	.EndCheckRnd
+                  1192 ;		cmpe	#0a8h
+                  1193 ;		brz	.EndCheckRnd
+                  1194 ;		cmpe	#0b0h
+                  1195 ;		brz	.EndCheckRnd
+                  1196 ;		cmpe	#0c2h			;eng
+                  1197 ;		brz	.EndCheckRnd
+                  1198 ;		cmpe	#041h			;Shift eng
+                  1199 ;		brz	.EndCheckRnd
0894 F5 00         1200 		lda0	.KeyPos
0896 F9 00         1201 		sta0	.DataBuf
0898 F9 01         1202 		sta0	.DataBuf+1
089A 20 00 00      1203 		call	.CheckPari
089D 20 00 00      1204 		call	.CheckMem
08A0 F5 00         1205 		lda0	.AfterPari		 
08A2 A7 07         1206 		cmpe	#07h			;Pari 7 ex:2X^2 funct
08A4 06 08 C5      1207 		brz	.DOAns
08A7 A7 08         1208 		cmpe	#08h			;Pari 8 ex:5X^Y 6funct
08A9 06 08 C5      1209 		brz	.DOAns
08AC 20 00 00      1210 		call	.ClrP2Data
08AF F3 01         1211 		lda	#01h
08B1 FC 28         1212 		sta	PP
08B3 F1 00         1213 		lda	.SFlag			;cancel = flag
08B5 CB F7         1214 		anda	#~08h
08B7 FD 00         1215 		sta	.SFlag	
08B9 F1 00         1216 		lda	.SetFlag
08BB CB C0         1217 		anda	#~3fh
08BD FD 00         1218 		sta	.SetFlag					
08BF 20 00 00      1219 		call	Rekeyindisp2		;only clear dotmatrix
08C2 02 09 1F      1220 		br	.EndCheckRnd
+                  1221 ;;;;;;;;;;;;Auto add Ans to function oode				
08C5               1222 .DOAns:
08C5 F3 00         1223 		lda	#>.SRFlag
08C7 FC 28         1224 		sta	PP
08C9 F3 00         1225 		lda	#0h
08CB FD 00         1226 		sta	.SRFlag
08CD F3 00         1227 		lda	#>.SetFlag
08CF FC 28         1228 		sta	PP
08D1 F1 00         1229 		lda	.SetFlag
08D3 CB 80         1230 		anda	#80h
08D5 07 08 F8      1231 		brnz	 .PercntMul
08D8               1232 .ANS12:		
08D8 20 00 00      1233 		call	.ClrP2Data		;CLR Input data area Ram
+                  1234 ;;;;;;Auto add Ans data to Function code	
08DB               1235 .StartAns::	
08DB F3 00         1236 		lda	#>.SFlag
08DD FC 28         1237 		sta	PP
08DF F1 00         1238 		lda	.SFlag
08E1 CB 80         1239 		anda	#80h
08E3 07 09 1F      1240 		brnz	.EndCheckRnd				 
08E6 F3 02         1241 		lda	#02h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -