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

📄 calctools.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
0587 F3 00          894 			lda	#0h
0589 F9 78          895 			sta0	.PYDP 
058B 20 05 8F       896 			call	.Copyformula
058E 24             897 			ret			
+                   898 			
+                   899 ;-------------------------------------------			
058F                900 .Copyformula::			
+                   901 			
058F F3 4F          902 			lda	#79 
0591 F9 79          903 			sta0	.Counter
0593                904 .formulaCopy:					
0593 F5 79          905                         lda0	.Counter
0595 A7 00          906                         cmpe	#0h
0597 06 05 C2       907                         brz	.EndCopyformula
059A F5 6F          908                         lda0 	.PXPP
059C FC 28          909                         sta	PP
059E F5 77          910                         lda0 	.PXDP
05A0 FC 21          911                         sta	DP
05A2 F2             912                         lda	i
05A3 F9 7A          913                         sta0	.Data
05A5 F5 77          914                         lda0	.PXDP
05A7 1F             915                         inca
05A8 F9 77          916                         sta0	.PXDP
05AA F5 65          917                         lda0	.PYPP
05AC FC 28          918                         sta	PP
05AE F5 78          919                         lda0	.PYDP
05B0 FC 21          920                         sta	DP
05B2 F5 7A          921                         lda0	.Data
05B4 FE             922                         sta	i
05B5 F5 78          923                         lda0	.PYDP
05B7 1F             924                         inca
05B8 F9 78          925                         sta0	.PYDP  
05BA F5 79          926                         lda0	.Counter                  
05BC 3F             927                         deca
05BD F9 79          928                         sta0	.Counter
05BF 02 05 13       929                         br	.DataCopy
05C2                930 .EndCopyformula:
+                   931 			
05C2 F3 00          932 			lda	#0h			
05C4 FC 28          933 			sta	PP
05C6 24             934 			ret  
+                   935 ;/*-----(clear operand X)-----------------*/		
05C7                936 .ClrFa::
05C7 F3 00          937 			lda 	#>SignFa
05C9 F9 6F          938 			sta0	.PXPP
05CB F3 00          939 			lda 	#<SignFa
05CD F9 77          940 			sta0	.PXDP
05CF 20 05 47       941 			call	.ClearData					
05D2 24             942 			ret				  			
+                   943 ;/*-----(clear operand X)-----------------*/		
05D3                944 .ClrX::
05D3 F3 00          945 			lda 	#>SignX
05D5 F9 6F          946 			sta0	.PXPP
05D7 F3 00          947 			lda 	#<SignX
05D9 F9 77          948 			sta0	.PXDP
05DB 20 05 47       949 			call	.ClearData					
05DE 24             950 			ret	
+                   951 				
+                   952 ;/*-----(clear operand Y)-----------------*/		
05DF                953 .ClrY::
05DF F3 00          954 			lda 	#>SignY
05E1 F9 6F          955 			sta0	.PXPP
05E3 F3 00          956 			lda	#<SignY
05E5 F9 77          957 			sta0	.PXDP
05E7 20 05 47       958 			call	.ClearData
05EA 24             959 			ret						
+                   960 ;/*-----(clear operand Z)-----------------*/
05EB                961 .ClrZ:: 
05EB F3 00          962 			lda 	#>SignZ
05ED F9 6F          963 			sta0	.PXPP
05EF F3 00          964 			lda	#<SignZ
05F1 F9 77          965 			sta0	.PXDP
05F3 20 05 47       966 			call	.ClearData
05F6 24             967 			ret
+                   968 ;/*-----(PUT 100 TO OperandY)-------------*/		
05F7                969 .Put_100_to_OperandY:
05F7 20 05 DF       970 			call	.ClrY	
05FA F3 01          971 			lda	#01h
05FC F9 05          972 			sta0	OperandY+5
05FE 24             973 			ret
+                   974 ;/*-----(PUT 10 TO OperandX log 10)--------*/
+                   975 		
05FF                976 .Put_10_to_OperandX:
05FF 20 05 D3       977 			call	.ClrX
0602 F3 10          978 			lda	#10h
0604 F9 06          979 			sta0	OperandX+6
0606 24             980 			ret	
+                   981 ;/*-----(PUT 1 TO OperandX 1/X)-------------*/
+                   982 		
0607                983 .Put_1_to_OperandX::
0607 20 05 D3       984 			call	.ClrX
060A F3 01          985 			lda	#01h
060C F9 06          986 			sta0	OperandX+6			
060E 24             987 			ret	
+                   988 ;-------(X_Squ	)----------------------------	
060F                989 .X_Squ::
060F F3 00          990 			lda 	#<SignX
0611 F9 77          991 			sta0	.PXDP
0613 F3 00          992 			lda	#<SignY
0615 F9 78          993 			sta0	.PYDP
0617 F3 00          994 			lda 	#>SignX
0619 F9 6F          995 			sta0	.PXPP
061B F3 00          996 			lda	#>SignY
061D F9 65          997 			sta0	.PYPP
061F 20 05 0F       998 			call	.CopyData					
0622 24             999 			ret
+                  1000                      
+                  1001 ;----------------------------------------------
0623               1002 .ClearInt::	
0623 F3 00         1003 			lda	#>PointY
0625 FC 28         1004 			sta	PP	
0627 F3 0E         1005 			lda	#0eh
0629 FD 00         1006 			sta	PointY
062B F5 00         1007 			lda0	PointZ
062D A7 0F         1008 			cmpe	#0fh
062F 04 06 5A      1009 			brc	.NoPoint
0632 F3 00         1010 			lda	#OperandZ
0634 FC 21         1011 			sta	DP
0636               1012 .DelInt:		
0636 F1 00         1013 			lda	PointY		
0638 A5 00         1014 			cmpe	PointZ
063A 06 06 5E      1015 			brz	.EndGetPoint
063D F1 00         1016 			lda	PointY	
063F 3F            1017 			deca
0640 FD 00         1018 			sta	PointY
0642 F2            1019 			lda	i
0643 CB 0F         1020 			anda	#0fh
0645 FE            1021 			sta	i
0646 F1 00         1022 			lda	PointY		
0648 A5 00         1023 			cmpe	PointZ	
064A 06 06 5E      1024 			brz	.EndGetPoint
064D F1 00         1025 			lda	PointY	
064F 3F            1026 			deca
0650 FD 00         1027 			sta	PointY
0652 F2            1028 			lda	i 
0653 CB F0         1029 			anda	#0f0h
0655 FE            1030 			sta	i
0656 18            1031 			incdp	
0657 02 06 36      1032 			br	.DelInt		
065A               1033 .NoPoint:	
+                  1034 			 
065A 20 05 EB      1035 			call	.ClrZ
065D 24            1036 			ret
065E               1037 .EndGetPoint:
065E 24            1038 			ret		
+                  1039 ;------------------------------------------		
+                  1040 		
065F               1041 .DelPoint::	
065F F3 00         1042 			lda	#>PointY
0661 FC 28         1043 			sta	PP
0663 F5 00         1044 			lda0	PointZ
0665 A7 9C         1045 			cmpe	#156
0667 04 06 B5      1046 			brc	.NoInt
066A A7 0F         1047 			cmpe	#0fh
066C 05 06 75      1048 			brnc	.Under14	
066F 20 05 EB      1049 			call	.ClrZ
0672 02 06 B5      1050 			br	.NoInt
0675               1051 .Under14:			
0675 F3 0F         1052 			lda	#0fh
0677 FD 00         1053 			sta	PointY
0679 F3 00         1054 			lda	#OperandZ
067B 3F            1055 			deca
067C FC 21         1056 			sta	DP	
067E               1057 .ClearPoint:			
067E F1 00         1058 			lda	PointY
0680 A5 00         1059 			cmpe	PointZ
0682 04 06 90      1060 			brc	.IsInteven
0685 F2            1061 			lda	i
0686 CB 0F         1062 			anda	#0fh
0688 FE            1063 			sta	i
0689 F1 00         1064 			lda	PointY
068B A7 FF         1065 			cmpe	#0ffh
068D 06 06 B5      1066 			brz	.NoInt	
0690               1067 .IsInteven:		
0690 F1 00         1068 			lda	PointY
0692 3F            1069 			deca
0693 FD 00         1070 			sta	PointY		
0695 F1 00         1071 			lda	PointY
0697 A5 00         1072 			cmpe	PointZ
0699 04 06 A7      1073 			brc	.IsIntodd
069C F1 00         1074 			lda	PointY
069E A7 FF         1075 			cmpe	#0ffh
06A0 06 06 B5      1076 			brz	.NoInt	
06A3 F2            1077 			lda	i
06A4 CB F0         1078 			anda	#0f0h
06A6 FE            1079 			sta	i
06A7               1080 .IsIntodd:		
06A7 F1 00         1081 			lda	PointY
06A9 3F            1082 			deca
06AA FD 00         1083 			sta	PointY
06AC A7 FF         1084 			cmpe	#0ffh
06AE 06 06 B5      1085 			brz	.NoInt
06B1 18            1086 			incdp
06B2 02 06 7E      1087 			br	.ClearPoint
06B5               1088 .NoInt:		
06B5 F3 00         1089 			lda	#0h
06B7 F9 07         1090 			sta0	OperandZ+7
06B9 20 00 00      1091 			call	CheckOutData
+                  1092 		
06BC 24            1093 			ret
+                  1094 ;-------------------------------------------
06BD               1095 .Random::
06BD F5 D7         1096 			lda0	.RandCnt
06BF A7 FF         1097 			cmpe	#0ffh
06C1 07 06 C8      1098 			brnz	.AddCnt	
06C4 F3 00         1099 			lda	#0h
06C6 F9 D7         1100 			sta0	.RandCnt
06C8               1101 .AddCnt:	
06C8 F5 D7         1102 			lda0	.RandCnt
06CA 8B 80         1103 			adda	#80h
06CC F9 D7         1104 			sta0	.RandCnt
06CE               1105 .ProduceRandom::
+                  1106 			
06CE 20 05 D3      1107 			call	.ClrX
06D1 F3 01         1108 			lda	#01h
06D3 FC 28         1109 			sta	PP	
06D5 F3 00         1110 			lda	#0h
06D7 FD 00         1111 			sta	.M_hexbuf
06D9 F5 D7         1112 			lda0	.RandCnt
06DB FD 01         1113 			sta	.M_hexbuf+1
06DD 20 00 00      1114 			call	.Hex2Bcd
06E0 F1 00         1115 			lda	.M_bcdbuf 
06E2 F9 05         1116 			sta0	OperandX+.CntByte-3		
06E4 F1 01         1117 			lda	.M_bcdbuf+1
06E6 F9 06         1118 			sta0	OperandX+.CntByte-2
06E8 F3 00         1119 			lda	#0h
06EA F9 00         1120 			sta0	PointX
06EC F9 00         1121 			sta0	SignX
06EE F9 00         1122 			sta0	PointY
06F0 F9 00         1123 			sta0	SignY			
06F2 20 05 DF      1124 			call	.ClrY	
06F5 F3 07         1125 			lda 	#07H
06F7 F9 05         1126 			sta0	OperandY+.CntByte-3	
06F9 F3 89         1127 			lda	#89H
06FB F9 06         1128 			sta0	OperandY+.CntByte-2
06FD F3 00         1129 			lda	#0h
06FF FC 28         1130 			sta	PP			
0701 20 00 00      1131 			call    Division
0704 F3 03         1132 			lda	#03h
0706 FD 00         1133 			sta	PointZ			
0708 20 06 23      1134 			call	.ClearInt		
070B 24            1135 			ret
+                  1136 ;------------------------------------------
070C               1137 .CheckQuadrant::
070C F5 00         1138 		lda0	SignX
070E A7 00         1139 		cmpe	#0h
0710 06 07 3E      1140 		brz	.EndQuadrant
0713 F5 00         1141 		lda0	SignY
0715 A7 00         1142 		cmpe	#0h
0717 06 07 2C      1143 		brz	.QuadrantII
071A 20 05 DF      1144 		call	.ClrY
071D F3 01         1145 		lda	#01h
071F F9 05         1146 		sta0	OperandY+5
0721 F3 80         1147 		lda	#80h
0723 F9 06         1148 		sta0	OperandY+6
0725 20 09 F0      1149 		call	.Z_trans_X		 
0728 20 00 00      1150 		call	Subtration
072B 24            1151 		ret
072C               1152 .QuadrantII:
072C 20 05 D3      1153 		call	.ClrX
072F F3 01         1154 		lda	#01h
0731 F9 05         1155 		sta0	OperandX+5
0733 F3 80         1156 		lda	#80h
0735 F9 06         1157 		sta0	OperandX+6
0737 20 0A 04      1158 		call	.Z_trans_Y		 
073A 20 00 00      1159 		call	Addition			
073D 24            1160 		ret		
073E               1161 .EndQuadrant:
+                  1162 		 
073E 24            1163 		ret 
+                  1164 ;------------------------------------------		
073F               1165 .GetDpCount::			 
073F F3 00         1166 		lda	#OperandZ
0741 02 07 4B      1167 		br	.addr
0744               1168 .GetDpCountX::		
0744 F3 00         1169 		lda	#OperandX
0746 02 07 4B      1170 		br	.addr
0749               1171 .GetDpCountY::		
0749 F3 00         1172 		lda	#OperandY
+                  1173 		 	
074B               1174 .addr:		
074B FD 00         1175 		sta	Addr1
074D 20 00 00      1176 		call	CheckData						
0750 24            1177 		ret					
+                  1178 ;-------------------------------------------
0751               1179 .LimitCarry::
0751               1180 .Carry::
+                  1181 		 
0751 F3 00         1182  		lda	#>StateFlag
0753 FC 28         1183 		sta	PP
0755 F1 00         1184 		lda	StateFlag
0757 CB 08         1185 		anda	#08h
0759 07 07 E8      1186 		brnz	.EndLimit10
075C 20 09 50      1187 		call	.Y_trans_Xn		;T 	
075F 20 00 00      1188 		call	CheckOutData
0762 20 07 3F      1189 		call	.GetDpCount
0765 F5 00         1190 		lda0	DpCount
0767 F9 71         1191 		sta0	.Temp
0769               1192 .ShiftR1:		

⌨️ 快捷键说明

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