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

📄 oppotriangle_0225.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
01A1 F3 00          293 		lda	#0h
01A3 FD D9          294 		sta	.IdFlag					
01A5 F1 00          295 		lda	SignX
01A7 FD DA          296 		sta	.SignXBuf
01A9 F3 00          297 		lda	#0h
01AB FD 00          298 		sta	SignX
01AD 20 00 00       299 		call	.X_trans_Buf
01B0 20 00 00       300 		call	.ClrY
01B3 F3 01          301 		lda	#01h
01B5 F9 01          302 		sta0	OperandY+1
01B7 20 00 00       303 		call	Subtration
01BA F5 00          304 		lda0	SignZ
01BC A7 01          305 		cmpe	#01h
01BE 07 01 F4       306 		brnz	.Put90toZ
01C1 20 00 00       307 		call	.Buf_trans_X			 	
01C4 F3 00          308 		lda	#0h			
01C6 FD 00          309 		sta	ErrorFlag
01C8 20 02 89       310 		call	.SpecialDegree	
01CB F1 DB          311 		lda	.SpecialFlag
01CD A7 00          312 		cmpe	#0h
01CF 06 01 DC       313 		brz	.NotSpeicalDegreeAtan
01D2 A7 02          314 		cmpe	#02h
01D4 06 02 13       315 		brz	.Degree45
01D7 A7 03          316 		cmpe	#03h
01D9 06 01 FE       317 		brz	.Degree0Atan
+                   318 		
01DC                319 .NotSpeicalDegreeAtan:		
+                   320 		
01DC 20 05 A8       321 		call	.ChoiceX
01DF 20 07 07       322 		call	.DoZ3
01E2 20 07 14       323 		call	.DoW3
01E5 20 07 21       324 		call	.DoS1
01E8 20 07 A0       325 		call	.DoS2
01EB 20 08 06       326 		call	.DoW4
01EE 20 08 22       327 		call	.ResultAtan		
01F1 02 02 25       328 		br	.Addsymbol
01F4                329 .Put90toZ:
01F4 20 00 00       330 		call	.ClrZ
01F7 F3 90          331 		lda	#90h
01F9 F9 06          332 		sta0	OperandZ+6
01FB 02 02 3C       333 		br	.SinXtoZ		
01FE                334 .Degree0Atan:
01FE F3 B4          335 		lda	#Int0
0200 FD D8          336 		sta	.M_Data_Offset
0202 20 04 7E       337 		call	.InpData
0205 20 00 00       338 		call	.X_trans_Z
0208 F3 05          339 		lda	#05h
020A FD D9          340 		sta	.IdFlag	
020C F3 00          341 		lda	#0h
020E FD 00          342 		sta	PointZ
0210 02 02 25       343 		br	.Addsymbol		
0213                344 .Degree45:
0213 F3 DC          345 		lda	#Int45
0215 FD D8          346 		sta	.M_Data_Offset
0217 20 04 7E       347 		call	.InpData
021A 20 00 00       348 		call	.X_trans_Z
021D F3 05          349 		lda	#05h
021F FD D9          350 		sta	.IdFlag
0221 F3 00          351 		lda	#0h
0223 FD 00          352 		sta	PointZ	
+                   353 								
0225                354 .Addsymbol:								
0225 F1 DA          355 		lda	.SignXBuf		
0227 A7 01          356 		cmpe	#01h
0229 07 02 2E       357 		brnz	.EndAtan		
022C FD 00          358 		sta	SignZ		
022E                359 .EndAtan:	
022E F1 D9          360 		lda	.IdFlag
0230 A7 05          361 		cmpe	#05h
0232 06 02 38       362 		brz	.EndDegreeAtan
0235 20 02 46       363 		call	.Degree	
0238                364 .EndDegreeAtan:	
0238 F3 00          365 		lda	#0h
023A FD D9          366 		sta	.IdFlag
+                   367 ;Added by Golden
023C                368 .SinXtoZ:		
023C F1 DA          369 		lda	.SignXBuf
023E A7 00          370 		cmpe    #00h
0240 06 02 45       371 		brz     .1$
0243 FD 00          372 		sta     SignZ
0245                373 .1$:		
0245 24             374 		ret		
+                   375 	
+                   376 ;------------------------------------------------	
0246                377 .Degree::	
0246 F3 00          378 		lda	#0h
0248 FC 28          379 		sta	PP	
024A 20 00 00       380 		call	.Z_trans_X
024D F3 A0          381 		lda	#R180DivPi
024F FD D8          382 		sta	.M_Data_Offset
0251 20 04 B9       383 		call	.InpDataToY							
0254 20 00 00       384 		call	Multiplation		
0257 24             385 		ret			
+                   386 ;------------------------------------------------	
0258                387 .Rad::		
0258 F3 00          388 		lda	#0h
025A FC 28          389 		sta	PP
025C F3 AA          390 		lda	#PiDiv180
025E FD D8          391 		sta	.M_Data_Offset
0260 20 04 B9       392 		call	.InpDataToY 							
0263 20 00 00       393 		call	Multiplation		
0266 24             394 		ret
+                   395 ;------------------------------------------------
0267                396 .Gpercent::		
0267 20 00 00       397 		call	.ClrY
026A F3 09          398 		lda	#09h
026C F9 06          399 		sta0	OperandY+6
026E F3 01          400 		lda	#01h
0270 F9 00          401 		sta0	PointY
0272 F3 00          402 		lda     #0h
0274 FC 28          403 		sta     PP 
0276 20 00 00       404 		call    Multiplation
0279 24             405 		ret		
+                   406 ;------------------------------------------------		
027A                407 .PI::		
027A F3 00          408 		lda	#0h
027C FC 28          409 		sta	PP	
027E F3 6E          410 		lda	#H_PI
0280 FD D8          411 		sta	.M_Data_Offset
0282 20 04 7E       412 		call	.InpData
0285 20 00 00       413 		call	.X_trans_Z
0288 24             414 		ret								
+                   415 ;------------------------------------------------		
0289                416 .SpecialDegree:		
0289 F3 00          417 		lda	#00h
028B FD DB          418 		sta	.SpecialFlag	
028D F3 78          419 		lda	#Point5
028F FD D8          420 		sta	.M_Data_Offset
0291 20 04 B9       421 		call	.InpDataToY
0294 20 00 00       422 		call	LineUp	
0297 F3 00          423 		lda	#OperandX
0299 FD 00          424 		sta	Addr1
029B F3 00          425 		lda	#OperandY
029D FD 00          426 		sta	Addr2		
029F F3 07          427 		lda	#.CmpLen		;06	2002.2.21
02A1 FD 00          428 		sta	DpCount
02A3 20 00 00       429 		call	CompareData
02A6 20 00 00       430 		call	.Buf_trans_X		;2002   7/12
02A9 F1 00          431 		lda	Temp1
02AB A7 00          432 		cmpe	#0h
02AD 06 02 F9       433 		brz	.Point5
+                   434 		
02B0 F3 96          435 		lda	#Int1
02B2 FD D8          436 		sta	.M_Data_Offset
02B4 20 04 B9       437 		call	.InpDataToY
02B7 20 00 00       438 		call	LineUp	
02BA F3 00          439 		lda	#OperandX
02BC FD 00          440 		sta	Addr1
02BE F3 00          441 		lda	#OperandY
02C0 FD 00          442 		sta	Addr2		
02C2 F3 07          443 		lda	#.CmpLen		;2002.02.21
02C4 FD 00          444 		sta	DpCount
02C6 20 00 00       445 		call	CompareData
02C9 20 00 00       446 		call	.Buf_trans_X		;2002   7/12
02CC F1 00          447 		lda	Temp1
02CE A7 00          448 		cmpe	#0h
02D0 06 03 00       449 		brz	.Int1
+                   450 		
02D3 F3 B4          451 		lda	#Int0
02D5 FD D8          452 		sta	.M_Data_Offset
02D7 20 04 B9       453 		call	.InpDataToY
02DA 20 00 00       454 		call	LineUp			;adjust point site
02DD F3 00          455 		lda	#OperandX
02DF FD 00          456 		sta	Addr1
02E1 F3 00          457 		lda	#OperandY
02E3 FD 00          458 		sta	Addr2		
02E5 F3 07          459 		lda	#.CmpLen			;shift addr size2002.02.21
02E7 FD 00          460 		sta	DpCount
02E9 20 00 00       461 		call	CompareData
02EC 20 00 00       462 		call	.Buf_trans_X		;2002   7/12
02EF F1 00          463 		lda	Temp1
02F1 A7 00          464 		cmpe	#0h
02F3 06 03 07       465 		brz	.Int0
02F6 02 03 0E       466 		br	.EndSpecialDegree
02F9                467 .Point5:
02F9 F3 01          468 		lda	#01h
02FB FD DB          469 		sta	.SpecialFlag
02FD 02 03 0E       470 		br	.EndSpecialDegree
0300                471 .Int1:
0300 F3 02          472 		lda	#02h
0302 FD DB          473 		sta	.SpecialFlag
0304 02 03 0E       474 		br	.EndSpecialDegree		
0307                475 .Int0:
0307 F3 03          476 		lda	#03h
0309 FD DB          477 		sta	.SpecialFlag
030B 02 03 0E       478 		br	.EndSpecialDegree		
+                   479 		
+                   480 		
030E                481 .EndSpecialDegree:
030E 24             482 		ret
+                   483 					
+                   484 ;------------------------------------------------		
030F                485 .CheckData:				
030F F3 00          486 		lda	#0h	
0311 FD DB          487 		sta	.SpecialFlag		
0313 FD 00          488 		sta	ErrorFlag		
+                   489 			
0315 F3 96          490 		lda	#Int1
0317 FD D8          491 		sta	.M_Data_Offset
0319 20 04 B9       492 		call	.InpDataToY
031C 20 00 00       493 		call	LineUp	
031F F3 00          494 		lda	#OperandX
0321 FD 00          495 		sta	Addr1
0323 F3 00          496 		lda	#OperandY
0325 FD 00          497 		sta	Addr2		
0327 F3 07          498 		lda	#.CmpLen		;2002.02.21	06
0329 FD 00          499 		sta	DpCount		
032B 20 00 00       500 		call	CompareData
032E F1 00          501 		lda	Temp1
0330 A7 01          502 		cmpe	#01h
0332 06 03 38       503 		brz	.DataError
0335 02 03 3C       504 		br	.EndCheckData			
+                   505 		
0338                506 .DataError:
0338 F3 01          507 		lda	#01h
033A FD 00          508 		sta	ErrorFlag
+                   509 					
033C                510 .EndCheckData:
+                   511 		
033C 24             512 		ret
+                   513 											
+                   514 ;------------------------------------------------------		
033D                515 .Condition1:					;x<=0.5
+                   516 		
033D 20 04 13       517 		call	.DoT1									
0340 20 03 F4       518 		call	.DoP1
0343 20 00 00       519 		call	.Z_trans_S		
0346 20 03 FB       520 		call	.DoQ1
0349 20 03 EA       521 		call	.DoW1
034C 20 03 75       522 		call	.Result1
034F 24             523 		ret		
+                   524 ;------------------------------------------------------		
0350                525 .Condition2:					;x>0.5 =<1
+                   526 						
0350 20 05 2F       527 		call	.DoW2
0353 20 05 3F       528 		call	.DoT2
0356 20 03 F4       529 		call	.DoP1		
0359 20 03 FB       530 		call	.DoQ1
035C 20 03 EA       531 		call	.DoW1		
035F 20 00 00       532 		call	.ClrX 
0362 20 00 00       533 		call	.Put_1_to_OperandX
0365 20 00 00       534 		call	.Z_trans_Y
0368 20 00 00       535 		call	Addition
036B 20 00 00       536 		call	.Z_trans_B	
036E 20 05 50       537 		call	.DoS		
0371 20 03 8B       538 		call	.Result2
0374 24             539 		ret
+                   540 ;------------------------------------------------------
0375                541 .Result1:
0375 20 00 00       542 		call	.ClrX 
0378 20 00 00       543 		call	.Put_1_to_OperandX
037B 20 00 00       544 		call	.Z_trans_Y			
037E 20 00 00       545 		call	Addition	
0381 20 00 00       546 		call	.Buf_trans_X		
0384 20 00 00       547 		call	.Z_trans_Y
0387 20 00 00       548 		call	Multiplation
038A 24             549 		ret			
+                   550 ;------------------------------------------------------
038B                551 .Result2:
+                   552 		
038B 20 00 00       553 		call	.Z_trans_Y
038E 20 00 00       554 		call	.B_trans_X		
0391 20 00 00       555 		call	Multiplation
0394 20 00 00       556 		call	.ClrX 		
0397 F3 82          557 		lda	#Int2
0399 FD D8          558 		sta	.M_Data_Offset
039B 20 04 7E       559 		call	.InpData
039E 20 00 00       560 		call	.Z_trans_Y		
03A1 20 00 00       561 		call	Multiplation
03A4 F3 6E          562 		lda	#H_PI
03A6 FD D8          563 		sta	.M_Data_Offset
03A8 20 04 7E       564 		call	.InpData
03AB 20 00 00       565 		call	.Z_trans_Y
03AE 20 00 00       566 		call	Subtration
03B1 24             567 		ret
+                   568 		
+                   569 		
+                   570 				
+                   571 ;------------------------------------------------------	
+                   572 
03B2                573 .AsinPs:
03B2 20 04 20       574 		call	.DoZMulPs5
03B5 20 04 2E       575 		call	.DoPs4AddZ
03B8 20 04 74       576 		call	.DoXMulZ
03BB 20 04 3C       577 		call	.DoPs3AddZ
03BE 20 04 74       578 		call	.DoXMulZ
03C1 20 04 4A       579 		call	.DoPs2AddZ
03C4 20 04 74       580 		call	.DoXMulZ
03C7 20 04 58       581 		call	.DoPs1AddZ
03CA 20 04 74       582 		call	.DoXMulZ
03CD 20 04 66       583 		call	.DoPs0AddZ
03D0 20 04 74       584 		call	.DoXMulZ
03D3 24             585 		ret
+                   586 ;------------------------------------------------------		

⌨️ 快捷键说明

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