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

📄 calcmain.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
066E                934 .SetDRG:		
066E F5 00          935 		lda0	.KeyPos
0670 A7 01          936 		cmpe	#01h
0672 06 06 82       937 		brz	.SetD
0675 A7 02          938 		cmpe	#02h
0677 06 06 89       939 		brz	.SetR
067A A7 03          940 		cmpe	#03h
067C 06 06 90       941 		brz	.SetG		
067F 02 04 03       942 		br	.EmitKeyD
0682                943 .SetD:
0682 F3 AA          944 		lda	#0aah
0684 F9 00          945 		sta0	.KeyPos
0686 02 06 94       946 		br	.ClrScreen
0689                947 .SetR:
0689 F3 BB          948 		lda	#0bbh
068B F9 00          949 		sta0	.KeyPos
068D 02 06 94       950 		br	.ClrScreen
0690                951 .SetG:
0690 F3 CE          952 		lda	#0ceh
0692 F9 00          953 		sta0	.KeyPos		 
0694                954 .ClrScreen:		
0694 F3 02          955 		lda	#02h
0696 FC 28          956 		sta	PP
0698 F3 00          957 		lda	#0h
069A FC 21          958 		sta	DP
069C F2             959 		lda	i
069D A7 A2          960 		cmpe	#0a2h
069F 07 06 A5       961 		brnz	.DispScreen
06A2 20 00 00       962 		call	.ClrP2Data		
06A5                963 .DispScreen:	
06A5 F3 00          964 		lda	#>.SRFlag
06A7 FC 28          965 		sta	PP
06A9 F3 00          966 		lda	#0h
06AB FD 00          967 		sta	.SRFlag			
06AD 20 00 00       968 		call	Clrfullmatrix
06B0 20 00 00       969 		call	Clrfullseg
06B3 20 00 00       970 		call	Rightchk							
06B6 20 00 00       971 		call	ChkDispAns
06B9 20 00 00       972 		call	ShowAnschk
06BC F3 01          973 		lda	#01h
06BE FC 28          974 		sta	PP
06C0 F1 00          975 		lda	.SetFlag
06C2 CB FD          976 		anda	#~02h
06C4 FD 00          977 		sta	.SetFlag	
06C6 F1 00          978 		lda	.SFlag
06C8 CB 08          979 		anda	#08h
06CA 06 01 B4       980 		brz	.CalcResoult
06CD 02 06 48       981 		br	.DORnd						 
+                   982 ;------------------------------------------
06D0                983 .DRG:
06D0 F3 00          984 		lda	#>BasenFlag
06D2 FC 28          985 		sta	PP
06D4 F1 00          986         	lda	BasenFlag
06D6 CB 0F          987 		anda	#0fh
06D8 07 04 03       988 		brnz	.EmitKeyD    	        	        	         	      	
06DB F5 DF          989         	lda0	.ModeFlag
06DD CB F0          990 		anda	#0f0h
06DF 07 04 03       991 		brnz	.EmitKeyD
06E2 20 00 00       992 		call	DRGdisp
06E5 F3 01          993 		lda	#01h
06E7 FC 28          994 		sta	PP
06E9 F1 00          995 		lda	.SetFlag
06EB DB 02          996 		ora	#02h
06ED FD 00          997 		sta     .SetFlag
06EF 02 04 03       998 		br	.EmitKeyD
+                   999 ;------------------------------------------
+                  1000 ;;;;;;;;;;;;;;;Calc M+ M-		
06F2               1001 .M_ADD:
06F2 F3 00         1002 		lda	#>StateFlag
06F4 FC 28         1003 		sta	PP
06F6 F1 00         1004 		lda	StateFlag
06F8 CB 88         1005 		anda	#88h		;comp & basen
06FA A7 08         1006 		cmpe	#08h
06FC 06 07 1A      1007 		brz	.BasenMadd
06FF A7 80         1008 		cmpe	#80h
0701 07 04 03      1009 		brnz	.EmitKeyD
0704 20 00 00      1010 		call	.M_TO_X
0707 20 00 00      1011 		call	.Z_trans_Y
070A F3 00         1012 		lda	#0h
070C FC 28         1013 		sta	PP
070E 20 00 00      1014 		call    Addition
+                  1015 		;call	.CkOPZEmpty
0711 20 00 00      1016 		call	.Z_trans_X
0714 20 00 00      1017 		call	.X_TO_M		
0717 02 04 03      1018 		br 	.EmitKeyD
071A               1019 .BasenMadd:
071A 20 00 00      1020 		call	.M_TO_X
071D 20 00 00      1021 		call	.Buf_trans_Y
0720 F3 00         1022 		lda	#0h
0722 F9 00         1023 		sta0	SignY
0724 F3 00         1024 		lda	#0h
0726 FC 28         1025 		sta	PP
0728 20 00 00      1026 		call    Addition
+                  1027 		;call	.CkOPZEmpty
072B 20 00 00      1028 		call	.Z_trans_X
072E 20 00 00      1029 		call	.X_TO_M	
+                  1030 		;call	.Z_trans_Buf	
0731 02 04 03      1031 		br 	.EmitKeyD		
0734               1032 .M_SUB:		
0734 F3 00         1033 		lda	#>StateFlag
0736 FC 28         1034 		sta	PP
0738 F1 00         1035 		lda	StateFlag
073A CB 88         1036 		anda	#88h		;comp & basen
073C A7 08         1037 		cmpe	#08h
073E 06 07 5C      1038 		brz	.BasenMsub
0741 A7 80         1039 		cmpe	#80h
0743 07 04 03      1040 		brnz	.EmitKeyD
+                  1041 		;call	.CkOPZEmpty
0746 20 00 00      1042 		call	.M_TO_X
0749 20 00 00      1043 		call	.Z_trans_Y
074C F3 00         1044 		lda	#0h
074E FC 28         1045 		sta	PP
0750 20 00 00      1046 		call	Subtration		
0753 20 00 00      1047 		call	.Z_trans_X
0756 20 00 00      1048 		call	.X_TO_M			
0759 02 04 03      1049 		br 	.EmitKeyD
075C               1050 .BasenMsub:
075C 20 00 00      1051 		call	.M_TO_X
075F 20 00 00      1052 		call	.Buf_trans_Y
0762 F3 00         1053 		lda	#0h
0764 F9 00         1054 		sta0	SignY
0766 F3 00         1055 		lda	#0h
0768 FC 28         1056 		sta	PP
076A 20 00 00      1057 		call    Subtration
+                  1058 		;call	.CkOPZEmpty
076D 20 00 00      1059 		call	.Z_trans_X
0770 20 00 00      1060 		call	.X_TO_M
0773 20 00 00      1061 		call	.Z_trans_Buf		
0776 02 04 03      1062 		br 	.EmitKeyD
0779               1063 .CkOPZEmpty:		
0779 F3 00         1064 		lda	#<OperandZ
077B F9 00         1065 		sta0	Addr1
077D 20 00 00      1066 		call	CheckData
0780 F5 00         1067 		lda0	DpCount
0782 A7 00         1068 		cmpe	#0h
0784 07 07 97      1069 		brnz	.Store_M
0787 F3 00         1070 		lda	#>.SFlag
0789 FC 28         1071 		sta	PP
078B F1 00         1072 		lda	.SFlag
078D CB F7         1073 		anda	#~08h
078F FD 00         1074 		sta	.SFlag
0791 F1 00         1075 		lda	.SetFlag
0793 CB DF         1076 		anda	#~20h
0795 FD 00         1077 		sta	.SetFlag
0797               1078 .Store_M:	
0797 24            1079 		ret						
+                  1080 ;------------------------------------------
0798               1081 .STOMemory:
0798 F3 01         1082 		lda	#01h
079A FC 28         1083 		sta	PP
079C F1 00         1084 		lda	BasenFlag
079E CB F0         1085 		anda	#0f0h
07A0 06 07 A6      1086 		brz	1$
07A3 20 00 00      1087 		call	.I_trans_Z
+                  1088 1$:		
07A6 20 00 00      1089 		call	.STOReg					 			
07A9 02 04 00      1090 		br	.DispDotMatrix
07AC               1091 .RCLMemory:
07AC F3 00         1092 		lda	#>.SFlag
07AE FC 28         1093 		sta	PP
07B0 F1 00         1094 		lda	.SFlag
07B2 CB 40         1095 		anda	#40h
07B4 06 07 BB      1096 		brz	1$
07B7 F3 00         1097 		lda	#0h
07B9 F9 D4         1098 		sta0	.DataDP		
+                  1099 1$:		
07BB 20 00 00      1100 		call	.RCLReg	
07BE F3 00         1101 		lda	#>.SFlag
07C0 FC 28         1102 		sta	PP
07C2 F1 00         1103 		lda	.SFlag
07C4 CB BF         1104 		anda	#~40h
07C6 FD 00         1105 		sta	.SFlag	
07C8 F3 01         1106 		lda	#01h
07CA FC 28         1107 		sta	PP
07CC F1 00         1108 		lda	BasenFlag
07CE CB F0         1109 		anda	#0f0h
07D0 07 04 00      1110 		brnz	.DispDotMatrix
07D3 20 00 00      1111 		call	.Z_trans_I 
07D6 20 00 00      1112 		call	.Carry
+                  1113 				
07D9 02 04 00      1114 		br	.DispDotMatrix
+                  1115 ;;;;;;;;Anyway press left or right key set EditMode 		
07DC               1116 .CkLR:		
07DC F3 00         1117 		lda	#0h
07DE F9 00         1118 		sta0	.FormulaFlag
07E0 20 00 00      1119 		call	Chkkeylr
07E3 A7 01         1120 		cmpe	#01h
07E5 06 04 00      1121 		brz	.DispDotMatrix 
07E8 A7 02         1122 		cmpe	#02h
07EA 06 04 03      1123 		brz	.EmitKeyD
07ED 02 04 00      1124 		br	.DispDotMatrix 					
+                  1125 ;------------------------------------------								
07F0               1126 .CKIns:		
07F0 F3 01         1127 		lda	#01h
07F2 FC 28         1128 		sta	PP		
07F4 F1 00         1129 		lda	Insetflag
07F6 A7 01         1130 		cmpe	#01h
07F8 06 04 00      1131 		brz	.DispDotMatrix
07FB 02 01 B4      1132 		br 	.CalcResoult
07FE               1133 .INSck:				
07FE F3 00         1134 		lda	#>Insetflag 		
0800 FC 28         1135 		sta	PP
0802 F5 00         1136 		lda0	.SFDP
0804 A7 00         1137 		cmpe	#0h
0806 06 08 1F      1138 		brz	.Ckeck1$
0809 F1 00         1139 		lda	Insetflag
080B A7 00         1140 		cmpe	#0
080D 06 08 18      1141 		brz	.Ckeck0$
0810 A7 01         1142 		cmpe	#1
0812 06 08 1F      1143 		brz	.Ckeck1$
0815 02 04 00      1144 		br	.DispDotMatrix		
0818               1145 .Ckeck0$:
0818 F3 01         1146 		lda	#1
081A FD 00         1147 		sta	Insetflag		
081C 02 04 03      1148 		br	.EmitKeyD		
081F               1149 .Ckeck1$:
081F F3 00         1150 		lda	#0
0821 FD 00         1151 		sta	Insetflag		
0823 02 04 03      1152 		br	.EmitKeyD
+                  1153 ;;;;Mode select Comp SD REG Deg	Rad Gra	Fix Sci	Norm		
0826               1154 .Modeadd:
0826 F3 00         1155 		lda	#>StateFlag
0828 FC 28         1156 		sta	PP
082A F1 00         1157 		lda	StateFlag		
082C F3 00         1158 		lda	#0h
082E FD 00         1159 		sta	DaltaXcnt		
0830 20 00 00      1160 		call	Modeselect
0833 02 04 00      1161 		br	.DispDotMatrix				
0836               1162 .Logic:			
0836 20 00 00      1163 		call	LogicSelect
0839 02 04 00      1164 		br	.DispDotMatrix	
+                  1165 ;;;;;;;;;;;Judge Key auto add Ans		
083C               1166 .CheckRnd::	
083C F3 00         1167 		lda	#>.SFlag
083E FC 28         1168 		sta	PP	
0840 F1 00         1169 		lda	.SFlag		 
0842 CB 30         1170 		anda	#30h
0844 07 05 98      1171 		brnz	.MemoryCK
0847 F5 00         1172 		lda0	.KeyPos
0849 A7 A4         1173 		cmpe	#0a4h			;+
084B 06 09 06      1174 		brz	.DOAns
084E A7 A5         1175 		cmpe	#0a5h			;-
0850 06 09 06      1176 		brz	.DOAns
0853 A7 A6         1177 		cmpe	#0a6h			;*
0855 06 09 06      1178 		brz	.DOAns
0858 A7 A7         1179 		cmpe	#0a7h			;/
085A 06 09 06      1180 		brz	.DOAns	
085D A7 D3         1181 		cmpe	#0d3h			;x^y
085F 06 09 06      1182 		brz	.DOAns
0862 A7 D7         1183 		cmpe	#0d7h			;xSqu
0864 06 09 06      1184 		brz	.DOAns
0867 A7 C8         1185 		cmpe	#0c8h			;x-1
0869 06 09 06      1186 		brz	.DOAns
086C A7 D4         1187 		cmpe	#0d4h			;x!
086E 06 09 06      1188 		brz	.DOAns
0871 A7 C5         1189 		cmpe	#0c5h			;x^2
0873 06 09 06      1190 		brz	.DOAns
0876 A7 D2         1191 		cmpe	#0d2h			;x^3
0878 06 09 06      1192 		brz	.DOAns		
087B A7 AA         1193 		cmpe	#0aah			;degree
087D 06 09 06      1194 		brz	.DOAns
0880 A7 BB         1195 		cmpe	#0bbh			;Rad
0882 06 09 06      1196 		brz	.DOAns
0885 A7 CE         1197 		cmpe	#0ceh			;G%
0887 06 09 06      1198 		brz	.DOAns
088A A7 00         1199 		cmpe	#0h
088C 06 0A 01      1200 		brz	.EndAutoaddANS		;ret
088F A7 31         1201 		cmpe	#31h			;shift abc
0891 06 0A 01      1202 		brz	.EndAutoaddANS
0894 A7 42         1203 		cmpe	#42h			;shift abc
0896 06 0A 01      1204 		brz	.EndAutoaddANS
0899 A7 52         1205 		cmpe	#52h			;sto
089B 06 0A 01      1206 		brz	.EndAutoaddANS
089E A7 53         1207 		cmpe	#53h			;rcl
08A0 06 0A 01      1208 		brz	.EndAutoaddANS
08A3 A7 C3         1209 		cmpe	#0c3h			;ab/c
08A5 06 0A 01      1210 		brz	.EndAutoaddANS
08A8 A7 B7         1211 		cmpe	#0b7h			;degree
08AA 06 0A 01      1212 		brz	.EndAutoaddANS
08AD A7 61         1213 		cmpe	#61h			;ins
08AF 06 09 6B      1214 		brz	.RndEnd
08B2 A7 65         1215 		cmpe	#65h			;del
08B4 06 09 6B      1216 		brz	.RndEnd
08B7 A7 60         1217 		cmpe	#60h			;ins
08B9 06 09 6B      1218 		brz	.RndEnd		
08BC A7 B5         1219 		cmpe	#0b5h			;m+
08BE 06 09 60      1220 		brz	.EndCheckRnd 		
08C1 A7 CC         1221 		cmpe	#0cch			;left
08C3 06 09 60      1222 		brz	.EndCheckRnd 
08C6 A7 DD         1223 		cmpe	#0ddh			;right
08C8 06 09 60      1224 		brz	.EndCheckRnd 
08CB A7 77         1225 		cmpe	#77h			;%
08CD 06 09 60      1226 		brz	.EndCheckRnd 
08D0 A7 A3         1227 		cmpe	#0a3h			;=
08D2 06 09 60      1228 		brz	.EndCheckRnd 
+                  1229 ;		cmpe	#0dfh			;;;;;;;
+                  1230 ;		brz	.EndCheckRnd 
+                  1231 ;		cmpe	#.MODE
+                  1232 ;		brz	.EndCheckRnd 
+                  1233 ;		cmpe	#0b6h		
+                  1234 ;		brz	.EndCheckRnd		
+                  1235 ;		cmpe	#0bdh
+                  1236 ;		brz	.EndCheckRnd
+                  1237 ;		cmpe	#0beh
+                  1238 ;		brz	.EndCheckRnd
+                  1239 ;		cmpe	#0a8h
+                  1240 ;		brz	.EndCheckRnd
+                  1241 ;		cmpe	#0b0h
+                  1242 ;		brz	.EndCheckRnd
+                  1243 ;		cmpe	#0c2h			;eng
+                  1244 ;		brz	.EndCheckRnd
+                  1245 ;		cmpe	#041h			;Shift eng

⌨️ 快捷键说明

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