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

📄 calctools.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
0187 F9 00          296 			sta0	OperandY
0189 F9 01          297 			sta0	OperandY+1
018B F9 02          298 			sta0	OperandY+2
018D F9 03          299 			sta0	OperandY+3			
018F F9 04          300 			sta0	OperandY+4
0191 F9 05          301 			sta0	OperandY+5
0193 20 0A 2C       302 			call	.Z_trans_B			 			
0196 20 09 F0       303 			call	.Z_trans_X
0199 F3 00          304 			lda 	#OperandX
019B F9 00          305 			sta0	Addr1
019D 20 00 00       306 			call	CheckData
01A0 F5 00          307 			lda0	DpCount
01A2 A7 0C          308 			cmpe	#0ch
01A4 06 01 B4       309 			brz	.StartCK
01A7 A7 0D          310 			cmpe	#0dh
01A9 06 01 E3       311 			brz	.ModifyOp6R
01AC A7 0E          312 			cmpe	#0eh
01AE 06 01 EC       313 			brz	.ModifyOp6
01B1 02 01 F3       314 			br	.NoModify	
01B4                315 .StartCK:			
01B4 F3 00          316 			lda	#0h			
01B6 F9 07          317 			sta0	OperandX+7			
01B8 F9 00          318 			sta0	SignX
01BA F9 00          319 			sta0	SignY
01BC F5 00          320 			lda0	PointX
01BE F9 00          321 			sta0	PointY			
01C0 20 00 00       322 			call	Subtration
01C3 F5 00          323 			lda0	SignZ
01C5 A7 00          324 			cmpe	#0h
01C7 07 01 F3       325 			brnz	.NoModify
01CA 20 0B 08       326 			call	.B_trans_Z
01CD 20 06 5F       327 			call	.DelPoint
01D0 20 09 F0       328 			call	.Z_trans_X
01D3 20 05 DF       329 			call	.ClrY
01D6 F3 01          330 			lda	#01h
01D8 F9 06          331 			sta0	OperandY+6
01DA 20 09 F0       332 			call	.Z_trans_X
01DD 20 00 00       333 			call	Addition
01E0 02 01 F6       334 			br	.EndCKNear_1
01E3                335 .ModifyOp6R:
+                   336 						
01E3 F5 06          337 			lda0	OperandX+6
01E5 CB F0          338 			anda	#0f0h
01E7 F9 06          339 			sta0	OperandX+6
01E9 02 01 B4       340 			br	.StartCK
01EC                341 .ModifyOp6:
+                   342 						
01EC F3 00          343 			lda	#0h			
01EE F9 06          344 			sta0	OperandX+6
01F0 02 01 B4       345 			br	.StartCK			
+                   346 			
+                   347 				
01F3                348 .NoModify:
01F3 20 0B 08       349 			call	.B_trans_Z
+                   350 			
+                   351 			 			 
01F6                352 .EndCKNear_1:
01F6 20 09 F0       353 			call	.Z_trans_X
01F9 24             354 			ret			
+                   355 ;----------------(POL)----------------------                
01FA                356 .POL::
+                   357 	
01FA 20 08 74       358 		call	.X_trans_S	
01FD 20 09 28       359 		call	.Y_trans_Buf
0200 20 00 8A       360 		call	.XSqu
0203 20 0A 2C       361 		call	.Z_trans_B
0206 20 0A 90       362 		call	.Buf_trans_X	
0209 20 00 8A       363 		call	.XSqu
020C 20 0A 04       364 		call	.Z_trans_Y
020F 20 0A E0       365 		call	.B_trans_X
0212 F3 00          366 		lda	#0h
0214 F9 07          367 		sta0	OperandX+7
0216 F9 07          368 		sta0	OperandY+7
0218 20 00 00       369 		call    Addition	
021B 20 09 F0       370 		call	.Z_trans_X
021E 20 00 00       371 		call	Squ
0221 20 07 3F       372 		call	.GetDpCount
0224 F5 00          373 		lda0	DpCount
0226 A7 00          374 		cmpe	#0h
0228 06 03 54       375 		brz	.Pow_x_y_Err
022B 20 07 51       376 		call	.Carry 
022E 20 09 F0       377 		call	.Z_trans_X		
0231 20 00 00       378 		call	.X_TO_E	
+                   379 						
0234 20 0A 90       380 		call	.Buf_trans_X				
0237 20 08 9C       381 		call	.X_trans_R
023A 20 0B 30       382 		call	.S_trans_Y
023D 20 09 78       383 		call	.Y_trans_I
0240 20 07 49       384 		call	.GetDpCountY
0243 F5 00          385 		lda0	DpCount
0245 A7 00          386 		cmpe	#0h
0247 06 02 6F       387 		brz	.Degree90
024A 20 00 00       388 		call	Division		
024D 20 09 F0       389 		call	.Z_trans_X
0250 20 00 00       390 		call	.Atan
0253 20 0B BC       391 		call	.R_trans_Y
0256 20 0B 6C       392 		call	.I_trans_X
0259 20 07 0C       393 		call	.CheckQuadrant	
025C 20 00 00       394 		call	.CheckAsinRrdDegre
025F 20 07 51       395 		call	.Carry 
0262                396 .SavetoF:		
0262 20 09 F0       397 		call	.Z_trans_X		 
0265 20 00 00       398 		call	.X_TO_F
0268 20 00 00       399 		call	.E_TO_Z
026B 20 0A 54       400 		call	.Z_trans_I
026E 24             401 		ret
026F                402 .Degree90:
026F 20 05 EB       403 		call	.ClrZ
0272 F3 90          404 		lda	#90h
0274 F9 06          405 		sta0	OperandZ+6
0276 02 02 62       406 		br	.SavetoF		
+                   407 ;----------------(REC)----------------------                
0279                408 .REC::		
0279 F5 00          409 		lda0	SignX
027B A7 00          410 		cmpe	#0h
027D 07 03 54       411 		brnz	.Pow_x_y_Err
0280 20 08 74       412 		call	.X_trans_S	;S
0283 20 09 28       413 		call	.Y_trans_Buf
0286 20 0A 90       414 		call	.Buf_trans_X
0289 20 08 38       415 		call	.X_trans_Z
028C 20 00 00       416 		call	.CheckRrdDegre
028F 20 00 00       417 		call	Sin
0292 20 0A 04       418 		call	.Z_trans_Y
0295 20 0B 1C       419 		call	.S_trans_X
0298 F3 00          420 		lda     #0h
029A FC 28          421 		sta     PP
029C 20 00 00       422 		call    Multiplation
029F 20 07 51       423 		call	.Carry 
02A2 20 09 F0       424 		call	.Z_trans_X
02A5 20 00 00       425 		call	.X_TO_F
+                   426 		
02A8 20 0A 90       427 		call	.Buf_trans_X
02AB 20 08 38       428 		call	.X_trans_Z
02AE 20 00 00       429 		call	.CheckRrdDegre
02B1 20 00 00       430 		call	Cos
02B4 20 0A 04       431 		call	.Z_trans_Y
02B7 20 0B 1C       432 		call	.S_trans_X
02BA F3 00          433 		lda     #0h
02BC FC 28          434 		sta     PP
02BE 20 00 00       435 		call    Multiplation
02C1 20 07 51       436 		call	.Carry 
02C4 20 09 F0       437 		call	.Z_trans_X
02C7 20 00 00       438 		call	.X_TO_E
02CA 24             439 		ret
+                   440 ;-------------------------------------------
02CB                441 .CKPowx_y::
02CB 20 00 00       442 		call	X_SatDataCnt_Trans                          
02CE 20 09 A0       443 		call	.Y_trans_T
02D1 20 09 00       444 		call	.Y_trans_X
02D4 20 00 00       445 		call	Fract
02D7 20 0B 1C       446 		call	.S_trans_X
02DA 20 05 DF       447 		call	.ClrY
02DD F3 02          448 		lda	#02h
02DF F9 06          449 		sta0	OperandY+6
02E1 20 00 00       450 		call	Mod
02E4 20 00 00       451 		call    MoveData
02E7 F5 06          452 		lda0	OperandX+6
02E9 A7 00          453 		cmpe	#0h
02EB 07 02 F2       454 		brnz	.EndCKPowx_y
02EE F3 01          455 		lda	#01h
02F0 F9 00          456 		sta0	ErrorFlag
02F2                457 .EndCKPowx_y:		
02F2 24             458 		ret				
+                   459 ;----------------(X^Y)----------------------                  
02F3                460 .Pow_x_y::      
02F3 20 03 A3       461 		call	.IsX_Zero
02F6 07 03 07       462 		brnz	1$
02F9 20 03 B2       463 		call	.IsY_Zero
02FC 06 03 54       464 		brz	.Pow_x_y_Err
02FF 20 00 00       465 		call	ClearBuffer
0302 F3 00          466 		lda	#0
0304 F9 75          467 		sta0	.DataBuf
0306 24             468 		ret
+                   469 1$:
0307 F5 00          470 		lda0	SignX
0309 F9 75          471 		sta0	.DataBuf
030B F5 00          472 		lda0	SignX
030D A7 01          473 		cmpe	#01h
030F 07 03 28       474 		brnz	.Normal_x_y
0312 F5 00          475 		lda0	PointY
0314 A7 00          476 		cmpe	#0h
0316 07 03 54       477 		brnz	.Pow_x_y_Err
0319 F3 00          478 		lda	#0h
031B F9 00          479 		sta0	SignX
031D F5 06          480 		lda0	OperandY+6
031F CB 01          481 		anda	#01h
0321 07 03 28       482 		brnz	.Normal_x_y
0324 F3 00          483 		lda	#0h
0326 F9 75          484 		sta0	.DataBuf
0328                485 .Normal_x_y:					 
0328 20 09 28       486                 call    .Y_trans_Buf
032B 20 00 00       487                 call    Ln
032E 20 00 00       488                 call	CheckOutData
0331 20 09 F0       489                 call    .Z_trans_X
0334 20 0A A4       490                 call    .Buf_trans_Y
0337 20 00 00       491                 call    Multiplation
033A 20 00 00       492                 call	CheckOutData
033D 20 09 F0       493                 call    .Z_trans_X
0340 20 00 00       494                 call    Ex
0343 F5 75          495                 lda0	.DataBuf
0345 F9 00          496                 sta0	SignZ
0347 F3 00          497                 lda	#0h
0349 F9 07          498                 sta0	OperandZ+7
034B 20 00 00       499                 call    CheckOutData
034E 20 04 09       500                 call    check_Z_carry
0351 02 03 58       501                 br	.EndPow_x_y
0354                502 .Pow_x_y_Err:
0354 F3 01          503                 lda	#01h
0356 F9 00          504                 sta0	ErrorFlag
+                   505                
0358                506 .EndPow_x_y:              
0358 24             507                 ret
+                   508 ;----------------(X^1/Y)--------------------          
0359                509 .Pow_x_invy::    		
0359 20 03 A3       510 		call	.IsX_Zero
035C 07 03 67       511 		brnz	1$
035F 20 00 00       512 		call	ClearBuffer
0362 F3 00          513 		lda	#0
0364 F9 75          514 		sta0	.DataBuf
0366 24             515 		ret
+                   516 1$:
0367 F5 00          517 		lda0	SignX
0369 F9 75          518 		sta0	.DataBuf
036B A7 01          519 		cmpe	#01h
036D 07 03 85       520 		brnz	.Nomalx_invy
0370 F5 06          521 		lda0	OperandY+6
0372 CB 01          522 		anda	#01h
0374 07 03 7E       523 		brnz	.ChkY
0377                524 .x_inverr:		
0377 F3 01          525 		lda	#01h
0379 F9 00          526 		sta0	ErrorFlag
037B 02 03 A2       527 		br	.EndPow_x_invy
037E                528 .ChkY:
037E F5 00          529 		lda0	PointY
0380 A7 00          530 		cmpe	#0h
0382 07 03 77       531 		brnz	.x_inverr		
0385                532 .Nomalx_invy:		
0385 F3 00          533 		lda	#0h
0387 F9 00          534 		sta0	SignX			                        
0389 20 09 28       535                 call    .Y_trans_Buf
038C 20 00 00       536                 call    Ln                            
038F 20 09 F0       537                 call    .Z_trans_X               
0392 20 0A A4       538                 call    .Buf_trans_Y
0395 20 00 00       539                 call    Division                            
0398 20 09 F0       540                 call    .Z_trans_X
039B 20 00 00       541                 call    Ex  
039E F5 75          542                 lda0	.DataBuf
03A0 F9 00          543                 sta0	SignZ          
03A2                544 .EndPow_x_invy:
03A2 24             545                 ret
+                   546                 
03A3                547 .IsX_Zero:
03A3 F1 00          548 		lda	OperandX
03A5 D9 01          549 		ora	OperandX+1
03A7 D9 02          550 		ora	OperandX+2
03A9 D9 03          551 		ora	OperandX+3
03AB D9 04          552 		ora	OperandX+4
03AD D9 05          553 		ora	OperandX+5
03AF D9 06          554 		ora	OperandX+6
03B1 24             555 		ret
03B2                556 .IsY_Zero:
03B2 F1 00          557 		lda	OperandY
03B4 D9 01          558 		ora	OperandY+1
03B6 D9 02          559 		ora	OperandY+2
03B8 D9 03          560 		ora	OperandY+3
03BA D9 04          561 		ora	OperandY+4
03BC D9 05          562 		ora	OperandY+5
03BE D9 06          563 		ora	OperandY+6
03C0 24             564 		ret
+                   565 ;----------------(X^Y)---------------------- 
03C1                566 .Pow_10_X::      
03C1 20 08 4C       567 		call	.X_trans_Buf
03C4 F5 00          568 		lda0	SignX
03C6 A7 01          569 		cmpe	#01h
03C8 07 03 E6       570 		brnz	.Dopow_10_x
03CB F3 00          571 		lda	#0h
03CD F9 00          572 		sta0	SignX
03CF 20 05 DF       573 		call	.ClrY		
03D2 F3 01          574 		lda	#01h
03D4 F9 05          575 		sta0	OperandY+5
03D6 20 00 00       576 		call	Subtration
03D9 F5 00          577 		lda0	SignZ	
03DB A7 00          578 		cmpe	#0h
03DD 07 03 E6       579 		brnz	.Dopow_10_x
03E0 20 05 EB       580 		call	.ClrZ
03E3 02 03 F3       581 		br	.EndPow_10_X
03E6                582 .Dopow_10_x:		   		   
03E6 20 0A A4       583  		call	.Buf_trans_Y 		               
03E9 20 05 D3       584               	call	.ClrX
03EC F3 10          585 		lda	#10h
03EE F9 06          586 	   	sta0	OperandX+6	   	 
03F0 20 02 F3       587 	   	call	.Pow_x_y
03F3                588 .EndPow_10_X:	   	
03F3 24             589 	   	ret
+                   590 	   	
+                   591 ;----------------(X^1/3)--------------------                
03F4                592 .Pow_x_inv3::
03F4 20 05 DF       593 		call	.ClrY
03F7 F3 03          594 		lda	#03h

⌨️ 快捷键说明

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