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

📄 memtools.asm

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASM
字号:
;/slow clock     : 32768khz
;/programer      : Alton
;
;

       			.area   Memtools_data(data,abs)
			;.org	0x167
			;.CntBytes		EQU	0x07
			.org	0x16c		
.CntBytes		EQU	0x08
.P1RAM			EQU	0x6f
.P3RAM			EQU	0xb9
SDBuf::                 
LRBuf::
QRBuf::
SignCnt::
SignYCnt::
SignXCnt::		
SignC::			.ds	1
PointYCnt::
PointXCnt::		 
PointC::		.ds	1
YCnt::
XCnt::  		 	 
OperandC::		.ds	.CntBytes

SignXSum::		 
Sign_B::		.ds	1
PointXSum::		 
Point_B::		.ds	1
XSum::		         	 
Operand_B::		.ds	.CntBytes
	
SignXSquSum::		
SignA::			.ds	1
PointXSquSum::        
PointA::		.ds	1
SDBufEnd::   	 
XSquSum::		 	       			
OperandA::		.ds	.CntBytes

SignYSum::	 
SignE::			.ds	1
PointYSum::		 
PointE::		.ds	1
YSum::		 
OperandE::		.ds	.CntBytes

SignYSquSum::	 
SignD::			.ds	1
PointYSquSum::	 
PointD::		.ds	1
YSquSum::		 
OperandD::		.ds	.CntBytes



SignXYSum::             
SignF::			.ds	1
PointXYSum::            
PointF::		.ds	1
LRBufEnd::             
XYSum::                 
OperandF::		.ds	.CntBytes



DaltaXcnt::		.ds	1
.SetFlag::		.ds	1 
.ForLDP::		.ds	1
.Count::		.ds	1
.SRFlag::		.ds	1
.CalcFlag::		.ds	1
;;SetFlag	7     6     5	  4     3    2     1     0
;;				        D    R     G	 RND		
			.area   Memtools_code(code,rel)
;------------(A_COPY_X,Y,Z)-----------
.A_TO_X::
			
			lda 	#<SignA
			sta0	.PXDP			
			lda 	#<SignX
			sta0	.PYDP
			lda 	#>SignA
			sta0	.PXPP			
			lda 	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret
.A_TO_Y::
			
			lda 	#<SignA
			sta0	.PXDP			
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>SignA
			sta0	.PXPP			
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData						
			ret
.A_TO_Z::
			
			lda 	#<SignA
			sta0	.PXDP			
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>SignA
			sta0	.PXPP			
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret
;------------(B_COPY_X,Y,Z)-----------
.B_TO_X::
			
			lda 	#<Sign_B
			sta0	.PXDP			
			lda 	#<SignX
			sta0	.PYDP
			lda 	#>Sign_B
			sta0	.PXPP			
			lda 	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret
.B_TO_Y::
			
			lda 	#<Sign_B
			sta0	.PXDP			
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>Sign_B
			sta0	.PXPP			
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData						
			ret
.B_TO_Z::			
			lda 	#<Sign_B
			sta0	.PXDP			
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>Sign_B
			sta0	.PXPP			
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret
;------------(C_COPY_X,Y,Z)-----------
.C_TO_X::
			
			lda 	#<SignC
			sta0	.PXDP			
			lda 	#<SignX
			sta0	.PYDP
			lda 	#>SignC
			sta0	.PXPP			
			lda 	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret
.C_TO_Y::
			
			lda 	#<SignC
			sta0	.PXDP			
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>SignC
			sta0	.PXPP			
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData						
			ret
.C_TO_Z::			
			lda 	#<SignC
			sta0	.PXDP			
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>SignC
			sta0	.PXPP			
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret
;------------(D_COPY_X,Y,Z)-----------
.D_TO_X::
			
			lda 	#<SignD
			sta0	.PXDP			
			lda 	#<SignX
			sta0	.PYDP
			lda 	#>SignD
			sta0	.PXPP			
			lda 	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret
.D_TO_Y::
			
			lda 	#<SignD
			sta0	.PXDP			
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>SignD
			sta0	.PXPP			
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData						
			ret
.D_TO_Z::			
			lda 	#<SignD
			sta0	.PXDP			
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>SignD
			sta0	.PXPP			
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret
;------------(E_COPY_X,Y,Z)-----------

.E_TO_Z::
			 
			lda 	#<SignE
			sta0	.PXDP			
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>SignE
			sta0	.PXPP			
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret
.E_TO_Y::
			 
			lda 	#<SignE
			sta0	.PXDP			
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>SignE
			sta0	.PXPP			
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData						
			ret			
;------------(F_COPY_X,Y,Z)-----------

.F_TO_Z::
			 
			lda 	#<SignF
			sta0	.PXDP			
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>SignF
			sta0	.PXPP			
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret
;------------(X_COPY_X,Y,Z)-----------

.X_TO_Z::
			 
			lda 	#<Sign_X
			sta0	.PXDP			
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>Sign_X
			sta0	.PXPP			
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret
;------------(Y_COPY_X,Y,Z)-----------

.Y_TO_Z::		
			lda 	#<Sign_Y
			sta0	.PXDP			
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>Sign_Y
			sta0	.PXPP			
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret
;------------(M_COPY_X,Y,Z)-----------

.M_TO_Z::			
			lda 	#<SignM
			sta0	.PXDP			
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>SignM
			sta0	.PXPP			
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret
;-------------------------------------------			
.X_TO_A::			
			lda 	#<SignX
			sta0	.PXDP			
			lda 	#<SignA
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda 	#>SignA
			sta0	.PYPP
			call	.CopyData						
			ret	
.Z_TO_A::			
			lda 	#<SignZ
			sta0	.PXDP			
			lda 	#<SignA
			sta0	.PYDP
			lda 	#>SignZ
			sta0	.PXPP			
			lda 	#>SignA
			sta0	.PYPP
			call	.CopyData						
			ret				
;-------------------------------------------			
.X_TO_B::			
			lda 	#<SignX
			sta0	.PXDP			
			lda 	#<Sign_B
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda 	#>Sign_B
			sta0	.PYPP
			call	.CopyData						
			ret
.Z_TO_B::			
			lda 	#<SignZ
			sta0	.PXDP			
			lda 	#<Sign_B
			sta0	.PYDP
			lda 	#>SignZ
			sta0	.PXPP			
			lda 	#>Sign_B
			sta0	.PYPP
			call	.CopyData						
			ret			
;-------------------------------------------			
.X_TO_C::			
			lda 	#<SignX
			sta0	.PXDP			
			lda 	#<SignC
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda 	#>SignC
			sta0	.PYPP
			call	.CopyData						
			ret	
;-------------------------------------------			
.X_TO_D::			
			lda 	#<SignX
			sta0	.PXDP			
			lda 	#<SignD
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda 	#>SignD
			sta0	.PYPP
			call	.CopyData						
			ret	
;-------------------------------------------			
.X_TO_E::			
			lda 	#<SignX
			sta0	.PXDP			
			lda 	#<SignE
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda 	#>SignE
			sta0	.PYPP
			call	.CopyData						
			ret
;-------------------------------------------			
.X_TO_F::			
			lda 	#<SignX
			sta0	.PXDP			
			lda 	#<SignF
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda 	#>SignF
			sta0	.PYPP
			call	.CopyData						
			ret
;-------------------------------------------			
.X_TO_X::			
			lda 	#<SignX
			sta0	.PXDP			
			lda 	#<Sign_X
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda 	#>Sign_X
			sta0	.PYPP
			call	.CopyData						
			ret	
;-------------------------------------------			
.X_TO_Y::			
			lda 	#<SignX
			sta0	.PXDP			
			lda 	#<Sign_Y
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda 	#>Sign_Y
			sta0	.PYPP
			call	.CopyData						
			ret
;-------------------------------------------
.M_TO_X::
			
			lda 	#<SignM
			sta0	.PXDP			
			lda 	#<SignX
			sta0	.PYDP
			lda 	#>SignM
			sta0	.PXPP			
			lda 	#>SignX
			sta0	.PYPP
			call	.CopyData
			ret	
.X_TO_M::			
			lda 	#<SignX
			sta0	.PXDP			
			lda 	#<SignM
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda 	#>SignM
			sta0	.PYPP
			call	.CopyData
			ret	
;-------------------------------------------
.MCL::
			lda	#01h
			sta	PP
			lda	#.P1RAM
			sta     DP
.ClrMcl:			
			lda	#0h
			sta	i
			lda	DP
			cmpe	#0aah
			brz	.MCL2
			incdp
			br	.ClrMcl	
 
;-------------------------------------------
.MCL2::
			lda	#03h
			sta	PP
			lda	#.P3RAM	
			sta     DP
.ClrMcl2:			
			lda	#0h
			sta	i
			lda	DP
			cmpe	#0ffh
			brz	.EndMCL
			incdp
			br	.ClrMcl2	
.EndMCL:		
			ret																																																		 							 							 		 					 					 					 					 					 						 						 																				

⌨️ 快捷键说明

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