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

📄 calctools.asm

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASM
📖 第 1 页 / 共 3 页
字号:
			lda 	#>Sign_b
			sta0	.PYPP
			call	.CopyData					
			ret
.X_trans_S::
			lda 	#<SignX
			sta0	.PXDP			 
			lda 	#<Sign_s
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			 
			lda 	#>Sign_s
			sta0	.PYPP
			call	.CopyData						
			ret
.X_trans_I::
			lda 	#<SignX
			sta0	.PXDP			
			lda	#<Sign_i
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda	#>Sign_i
			sta0	.PYPP
			call	.CopyData						
			ret
.X_trans_R::
			lda 	#<SignX
			sta0	.PXDP			
			lda	#<Sign_r
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda	#>Sign_r
			sta0	.PYPP
			call	.CopyData						
			ret
.X_trans_T::
			lda 	#<SignX
			sta0	.PXDP			
			lda	#<SignT
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda	#>SignT
			sta0	.PYPP
			call	.CopyData						
			ret	
.X_trans_LRX::
			lda 	#<SignX
			sta0	.PXDP			
			lda	#<SignLRX
			sta0	.PYDP
			lda 	#>SignX
			sta0	.PXPP			
			lda	#>SignLRX
			sta0	.PYPP
			call	.CopyData						
			ret				
			
.T_trans_X::
			lda 	#<SignT
			sta0	.PXDP			
			lda	#<SignX
			sta0	.PYDP
			lda 	#>SignT
			sta0	.PXPP			
			lda	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret	
.LRX_trans_X::
			lda 	#<SignLRX
			sta0	.PXDP			 
			lda 	#<SignX
			sta0	.PYDP
			lda 	#>SignLRX
			sta0	.PXPP			 
			lda 	#>SignX
			sta0	.PYPP
			call	.CopyData	
			ret								
;------------(Y_COPY_X,Z,Buf,b,s)-----------												
.Y_trans_X::
			lda 	#<SignY
			sta0	.PXDP
			lda	#<SignX
			sta0	.PYDP
			lda 	#>SignY
			sta0	.PXPP
			lda	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret
.Y_trans_Z::
			lda 	#<SignY
			sta0	.PXDP
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>SignY
			sta0	.PXPP
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData					
			ret
.Y_trans_Buf::
			lda 	#<SignY
			sta0	.PXDP			
			lda 	#<Sign_buf
			sta0	.PYDP
			lda 	#>SignY
			sta0	.PXPP			
			lda 	#>Sign_buf
			sta0	.PYPP
			call	.CopyData						
			ret
.Y_trans_B::
			lda 	#<SignY
			sta0	.PXDP			 
			lda 	#<Sign_b
			sta0	.PYDP
			lda 	#>SignY
			sta0	.PXPP			 
			lda 	#>Sign_b
			sta0	.PYPP
			call	.CopyData						
			ret
.Y_trans_Xn::
			lda 	#<SignY
			sta0	.PXDP			
			lda 	#<SignXn
			sta0	.PYDP
			lda 	#>SignY
			sta0	.PXPP			
			lda 	#>SignXn
			sta0	.PYPP
			call	.CopyData						
			ret			
.Y_trans_S::
			lda 	#<SignY
			sta0	.PXDP			
			lda 	#<Sign_s
			sta0	.PYDP
			lda 	#>SignY
			sta0	.PXPP			
			lda 	#>Sign_s
			sta0	.PYPP
			call	.CopyData						
			ret
.Y_trans_I::
			lda 	#<SignY
			sta0	.PXDP			
			lda 	#<Sign_i
			sta0	.PYDP
			lda 	#>SignY
			sta0	.PXPP			
			lda 	#>Sign_i
			sta0	.PYPP
			call	.CopyData						
			ret
.Y_trans_R::
			lda 	#<SignY
			sta0	.PXDP			 
			lda 	#<Sign_r
			sta0	.PYDP
			lda 	#>SignY
			sta0	.PXPP			 
			lda 	#>Sign_r
			sta0	.PYPP
			call	.CopyData						
			ret
.Y_trans_T::
			lda 	#<SignY
			sta0	.PXDP			 
			lda 	#<SignT
			sta0	.PYDP
			lda 	#>SignY
			sta0	.PXPP			 
			lda 	#>SignT
			sta0	.PYPP
			call	.CopyData	
			ret	
.Y_trans_LRY::
			lda 	#<SignY
			sta0	.PXDP			
			lda	#<SignLRY
			sta0	.PYDP
			lda 	#>SignY
			sta0	.PXPP			
			lda	#>SignLRY
			sta0	.PYPP
			call	.CopyData						
			ret							
.T_trans_Y::
			lda 	#<SignT
			sta0	.PXDP			 
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>SignT
			sta0	.PXPP			 
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData	
			ret	
	
.LRY_trans_Y::
			lda 	#<SignLRY
			sta0	.PXDP			 
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>SignLRY
			sta0	.PXPP			 
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData	
			ret												
;------------(z_COPY_X,Z,Buf,b,s)-----------												
.Z_trans_X::
			lda 	#<SignZ
			sta0	.PXDP
			lda	#<SignX
			sta0	.PYDP
			lda 	#>SignZ
			sta0	.PXPP
			lda	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret
.Z_trans_Y::
			lda 	#<SignZ
			sta0	.PXDP
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>SignZ
			sta0	.PXPP
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData					
			ret
.Z_trans_Buf::
			lda 	#<SignZ
			sta0	.PXDP			
			lda 	#<Sign_buf
			sta0	.PYDP
			lda 	#>SignZ
			sta0	.PXPP			
			lda 	#>Sign_buf
			sta0	.PYPP
			call	.CopyData						
			ret
.Z_trans_B::
			lda 	#<SignZ
			sta0	.PXDP			 
			lda 	#<Sign_b
			sta0	.PYDP
			lda 	#>SignZ
			sta0	.PXPP			 
			lda 	#>Sign_b
			sta0	.PYPP
			call	.CopyData						
			ret
.Z_trans_S::
			lda 	#<SignZ
			sta0	.PXDP			
			lda 	#<Sign_s
			sta0	.PYDP
			lda 	#>SignZ
			sta0	.PXPP			
			lda 	#>Sign_s
			sta0	.PYPP
			call	.CopyData						
			ret
.Z_trans_I::
			lda 	#<SignZ
			sta0	.PXDP			
			lda 	#<Sign_i
			sta0	.PYDP
			lda 	#>SignZ
			sta0	.PXPP			
			lda 	#>Sign_i
			sta0	.PYPP
			call	.CopyData						
			ret
.Z_trans_R::
			lda 	#<SignZ
			sta0	.PXDP			 
			lda 	#<Sign_r
			sta0	.PYDP
			lda 	#>SignZ
			sta0	.PXPP			 
			lda 	#>Sign_r
			sta0	.PYPP
			call	.CopyData						
			ret		
.Z_trans_T::
			lda 	#<SignZ
			sta0	.PXDP			 
			lda 	#<SignT
			sta0	.PYDP
			lda 	#>SignZ
			sta0	.PXPP			 
			lda 	#>SignT
			sta0	.PYPP
			call	.CopyData						
			ret							
;------------(Buf_COPY_X,Y,Z)---------------
.Buf_trans_X::
			 
			lda 	#<Sign_buf 
			sta0	.PXDP
			lda 	#<SignX
			sta0	.PYDP
			lda 	#>Sign_buf 
			sta0	.PXPP
			lda 	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret
.Buf_trans_Y::			 
			lda 	#<Sign_buf 
			sta0	.PXDP
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>Sign_buf 
			sta0	.PXPP
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData						
			ret
.Buf_trans_Z::			
			lda 	#<Sign_buf 
			sta0	.PXDP
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>Sign_buf 
			sta0	.PXPP
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret				
.Buf_trans_I::			
			lda 	#<Sign_buf 
			sta0	.PXDP
			lda 	#<Sign_i
			sta0	.PYDP
			lda 	#>Sign_buf 
			sta0	.PXPP
			lda 	#>Sign_i
			sta0	.PYPP
			call	.CopyData						
			ret	
;------------(B_COPY_X,Y,Z)------------------
.B_trans_X::
			 
			lda 	#<Sign_b 
			sta0	.PXDP
			lda 	#<SignX
			sta0	.PYDP
			lda 	#>Sign_b 
			sta0	.PXPP
			lda 	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret
.B_trans_Y::
			 
			lda 	#<Sign_b 
			sta0	.PXDP
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>Sign_b 
			sta0	.PXPP
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData						
			ret
.B_trans_Z::
			 
			lda 	#<Sign_b 
			sta0	.PXDP
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>Sign_b 
			sta0	.PXPP
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret			
;------------(S_COPY_X,Y,Z)------------------
.S_trans_X::			
			lda 	#<Sign_s
			sta0	.PXDP
			lda 	#<SignX
			sta0	.PYDP
			lda 	#>Sign_s 
			sta0	.PXPP
			lda 	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret
.S_trans_Y::
			 
			lda 	#<Sign_s
			sta0	.PXDP
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>Sign_s 
			sta0	.PXPP
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData						
			ret
.S_trans_Z::
			 
			lda 	#<Sign_s
			sta0	.PXDP
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>Sign_s 
			sta0	.PXPP
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret		
.T_trans_S::
			 
			lda 	#<SignT
			sta0	.PXDP
			lda 	#<Sign_s
			sta0	.PYDP
			lda 	#>SignT
			sta0	.PXPP
			lda 	#>Sign_s
			sta0	.PYPP
			call	.CopyData						
			ret								
;------------(I_COPY_X,Y,Z)------------------
.I_trans_X::
			 
			lda 	#<Sign_i
			sta0	.PXDP
			lda 	#<SignX
			sta0	.PYDP
			lda 	#>Sign_i 
			sta0	.PXPP
			lda 	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret
.I_trans_Y::
			 
			lda 	#<Sign_i
			sta0	.PXDP
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>Sign_i 
			sta0	.PXPP
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData						
			ret
.I_trans_Z::
			lda 	#<Sign_i
			sta0	.PXDP
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>Sign_i 
			sta0	.PXPP
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret
;------------(R_COPY_X,Y,Z)------------------
.R_trans_X::
			lda 	#<Sign_r
			sta0	.PXDP
			lda 	#<SignX
			sta0	.PYDP
			lda 	#>Sign_r 
			sta0	.PXPP
			lda 	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret			
			  
.R_trans_Y::
			lda 	#<Sign_r
			sta0	.PXDP
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>Sign_r
			sta0	.PXPP
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData						
			ret
			 	
.R_trans_Z::
			lda 	#<Sign_r
			sta0	.PXDP
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>Sign_r 
			sta0	.PXPP
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret
;------------(Xn_COPY_X,Y,Z)------------------
.Xn_trans_X::
			 
			lda 	#<SignXn
			sta0	.PXDP
			lda 	#<SignX
			sta0	.PYDP
			lda 	#>SignXn 
			sta0	.PXPP
			lda 	#>SignX
			sta0	.PYPP
			call	.CopyData						
			ret
.Xn_trans_Y::
			 
			lda 	#<SignXn 
			sta0	.PXDP
			lda 	#<SignY
			sta0	.PYDP
			lda 	#>SignXn
			sta0	.PXPP
			lda 	#>SignY
			sta0	.PYPP
			call	.CopyData						
			ret
.Xn_trans_Z::
			 
			lda 	#<SignXn
			sta0	.PXDP
			lda 	#<SignZ
			sta0	.PYDP
			lda 	#>SignXn
			sta0	.PXPP
			lda 	#>SignZ
			sta0	.PYPP
			call	.CopyData						
			ret						
;------------------------------------------------			
ModCarry::					;input/2pi
       			call   .X_trans_R	;input	
       			call   .Y_trans_B	;2pi
       			call    Division      
       			call   .Carry
       			call   .R_trans_X
       			call    GetInt
       			call   .GetDpCount
       			lda0   DpCount		;input<2pi
       			cmpe   #0h
       			brnz   .Beyond2PI 
       			ret     
.Beyond2PI:        				;input>2pi
       			call   .B_trans_Y	;2pi
       			call   .Z_trans_B
       			call   .Z_trans_X 
       			lda	#0h
       			sta0   SignX      
       			call   Multiplation
       			call   .Z_trans_Y
       			call   .R_trans_X
       			lda	#0h
       			sta0   SignX 
       			lda	#0h
       			sta0   OperandX+7
       			sta0   OperandY+7      
       			call   Subtration
       			call   .Z_trans_R     ;r
       			call	.ClrX
       			lda	#01h
       			sta	OperandX+6
       			lda	#05h
       			sta	PointX
       			call	.Z_trans_Y
       			call   Subtration
       			call	.R_trans_X
       			lda0	SignZ
       			cmpe	#0h
       			brnz	.EndModCarry
       			call	.ClrX       
.EndModCarry:      
       			call   .B_trans_Z     ;q
       			ret		
;-------------------------------------------                
Order_tab:	
	DB      000h,000h,000h,000h,000h,000h,001h,000h	
	DB      000h,000h,000h,000h,000h,000h,001h,000h	
        DB      000h,000h,000h,000h,000h,000h,002h,000h
        DB      000h,000h,000h,000h,000h,000h,006h,000h
        DB      000h,000h,000h,000h,000h,000h,024h,000h
        DB      000h,000h,000h,000h,000h,001h,020h,000h
        DB      000h,000h,000h,000h,000h,007h,020h,000h
        DB      000h,000h,000h,000h,000h,050h,040h,000h
        DB      000h,000h,000h,000h,004h,003h,020h,000h
        DB      000h,000h,000h,000h,036h,028h,080h,000h
        DB      000h,000h,000h,003h,062h,088h,000h,000h        
        DB      000h,000h,000h,039h,091h,068h,000h,000h
        DB      000h,000h,004h,079h,000h,016h,000h,000h
        DB      000h,000h,062h,027h,002h,008h,000h,000h
        DB      000h,008h,071h,078h,029h,012h,000h,000h       
        DB      001h,030h,076h,074h,036h,080h,000h,000h
        DB      020h,092h,027h,089h,088h,080h,000h,000h
        DB      035h,056h,087h,042h,080h,096h,000h,0ffh
        DB      064h,002h,037h,037h,005h,072h,080h,0feh
        DB      012h,016h,045h,010h,004h,008h,083h,0fch
        DB      024h,032h,090h,020h,008h,017h,066h,0fbh        
        DB      051h,009h,009h,042h,017h,017h,009h,0fah
        DB      011h,024h,000h,007h,027h,077h,076h,0f8h
        DB      025h,085h,020h,016h,073h,088h,085h,0f7h
        DB      062h,004h,048h,040h,017h,033h,024h,0f6h
        DB      015h,051h,012h,010h,004h,033h,031h,0f4h
        DB      040h,032h,091h,046h,011h,026h,061h,0f3h
        DB      010h,088h,088h,069h,045h,004h,018h,0f1h
        DB      030h,048h,088h,034h,046h,011h,071h,0f0h
        DB      088h,041h,076h,019h,093h,073h,097h,0efh
        DB      026h,052h,052h,085h,098h,012h,019h,0edh        
        DB      082h,022h,083h,086h,054h,017h,079h,0ech
        DB      026h,031h,030h,083h,069h,033h,069h,0eah
        DB      086h,083h,031h,076h,018h,081h,019h,0e9h
        DB      029h,052h,032h,079h,090h,039h,060h,0e7h
        DB      010h,033h,031h,047h,096h,063h,086h,0e5h
        DB      037h,019h,093h,032h,067h,089h,090h,0e4h
        DB      013h,076h,037h,053h,009h,012h,026h,0e2h
        DB      052h,030h,022h,061h,074h,066h,060h,0e1h
        DB      020h,039h,078h,082h,008h,011h,097h,0dfh
        DB      081h,059h,015h,028h,032h,047h,090h,0deh        
        DB      033h,045h,025h,026h,061h,031h,064h,0dch
        DB      014h,005h,000h,061h,017h,075h,029h,0dah
        DB      060h,041h,052h,063h,006h,033h,074h,0d9h
        DB      026h,058h,027h,015h,074h,078h,085h,0d7h
        DB      011h,096h,022h,022h,008h,065h,048h,0d5h
        DB      055h,002h,062h,021h,059h,081h,021h,0d4h
        DB      025h,086h,023h,024h,015h,011h,017h,0d2h
        DB      012h,041h,039h,015h,059h,025h,036h,0d0h
        DB      060h,082h,081h,086h,040h,034h,027h,0cfh
        DB      030h,041h,040h,093h,020h,017h,013h,0cdh     
        DB      015h,051h,011h,087h,053h,028h,074h,0cbh 
        DB      080h,065h,081h,075h,017h,009h,044h,0cah
        DB      042h,074h,088h,032h,084h,006h,000h,0c8h
        DB      023h,008h,043h,069h,073h,039h,024h,0c6h
        DB      012h,069h,064h,003h,035h,036h,058h,0c4h
        DB      071h,009h,098h,058h,078h,004h,086h,0c3h
        DB      040h,052h,069h,019h,050h,048h,077h,0c1h
        DB      023h,050h,056h,013h,031h,028h,029h,0bfh
        DB      013h,086h,083h,011h,085h,045h,069h,0bdh
        DB      083h,020h,098h,071h,012h,074h,014h,0bch  
        DB      050h,075h,080h,021h,038h,077h,023h,0bah
        DB      031h,046h,099h,073h,026h,003h,088h,0b8h
        DB      019h,082h,060h,083h,015h,040h,044h,0b6h
        DB      012h,068h,086h,093h,021h,085h,088h,0b4h
        DB      082h,047h,065h,005h,092h,008h,025h,0b3h
        DB      054h,043h,044h,093h,090h,077h,044h,0b1h
        DB      036h,047h,011h,010h,091h,081h,089h,0afh
        DB      024h,080h,003h,055h,042h,043h,068h,0adh
        DB      017h,011h,022h,045h,024h,028h,014h,0abh
PI_tab::
        DB      031h,041h,059h,026h,053h,058h,097h,00dh   
PI2_tab::
	 DB     000h,00dh,062h,083h,018h,053h,007h,017h,094h,0ffh 
PI_tab1::
	DB      000h,00dh,031h,041h,059h,026h,053h,058h,097h,0ffh 		                       															        																				

⌨️ 快捷键说明

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