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

📄 postfix.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
023D 02 02 71       324 		br	.EndSime	;219		
0240                325 .PopPolRec:		
0240 F3 03          326 		lda	#.STPP
0242 FC 28          327 		sta	PP
0244 F5 00          328 		lda0	.STDP
0246 FC 21          329 		sta	DP
0248 F2             330 		lda	i		
0249 F9 00          331 		sta0	.DataBuf		
024B A7 D0          332 		cmpe	#.POL		;pol(
024D 06 02 6D       333 		brz	.EndComma
0250 A7 B1          334 		cmpe	#.REG
0252 06 02 6D       335 		brz	.EndComma	;REG MODE	
0255 A7 D6          336 		cmpe	#.REC		;rec(
0257 06 02 6D       337 		brz	.EndComma
025A A7 00          338 		cmpe	#0h
025C 06 03 5C       339 		brz	.SynErr
025F 20 0E 8B       340 		call	.StoFuncPS		
0262 20 0F BF       341 		call	.ClosEndPS
0265 F5 00          342 		lda0	.STDP
0267 3F             343 		deca
0268 F9 00          344 		sta0	.STDP
026A 02 02 40       345 		br	.PopPolRec
+                   346 		
026D                347 .EndComma:
026D F3 B4          348 		lda	#.Comma
026F F9 00          349 		sta0	.Buf1
0271                350 .EndSime:		
0271 F3 00          351 		lda	#>StateFlag
0273 FC 28          352 		sta	PP
0275 F1 00          353 		lda	StateFlag
0277 CB 07          354 		anda	#07h
0279 06 02 80       355 		brz	.EndComCK
027C F3 FF          356 		lda	#0ffh
027E F9 00          357 		sta0	.CommaFlag
0280                358 .EndComCK:		
0280 02 00 0A       359 		br	.IN2PS		
+                   360 ;-------------------------------------------		
0283                361 .DoPolRec:
+                   362 
0283 F5 00          363 		lda0	.DataBuf
0285 F9 00          364 		sta0	.Buf2	
0287 F5 00          365 		lda0	.Buf1
0289 F9 00          366 		sta0	.DataBuf	 
028B F9 01          367 		sta0	.DataBuf+1
028D 20 0A 64       368 		call	.CheckPari
0290 20 0E F1       369 		call	.CheckMem
0293 F5 00          370 		lda0	.Buf2
0295 F9 00          371 		sta0	.DataBuf
0297 F5 00          372 		lda0	.Buf1
0299 A7 7A          373 		cmpe	#07ah		; formula '=' 
029B 06 02 F5       374 		brz	.PushPolRec
029E F5 00          375 		lda0	.INDP
02A0 A7 01          376 		cmpe	#01h
02A2 06 02 F5       377 		brz	.PushPolRec
02A5 F5 00          378 		lda0	.Buf1
02A7 A7 B2          379 		cmpe	#.LC
02A9 06 02 F5       380 		brz	.PushPolRec
02AC A7 B3          381 		cmpe	#.RC
02AE 06 02 E3       382 		brz	.MulPushPolRec
02B1 F5 00          383 		lda0	.AfterPari
02B3 A7 01          384 		cmpe	#01h
02B5 06 02 E3       385 		brz	.MulPushPolRec
02B8 A7 02          386 		cmpe	#02h
02BA 06 02 E3       387 		brz	.MulPushPolRec
02BD A7 03          388 		cmpe	#03h
02BF 06 02 F5       389 		brz	.PushPolRec
02C2 A7 04          390 		cmpe	#04h
02C4 06 02 F5       391 		brz	.PushPolRec
02C7 A7 05          392 		cmpe	#05h
02C9 06 02 F5       393 		brz	.PushPolRec
02CC A7 06          394 		cmpe	#06h
02CE 06 02 F5       395 		brz	.PushPolRec		
02D1 A7 09          396 		cmpe	#09h
02D3 06 02 F5       397 		brz	.PushPolRec
02D6 A7 0A          398 		cmpe	#0ah
02D8 06 02 E3       399 		brz	.MulPushPolRec
02DB A7 0C          400 		cmpe	#0ch
02DD 06 02 F5       401 		brz	.PushPolRec
02E0 02 03 5C       402 		br	.SynErr 
+                   403 		
+                   404 		
+                   405 		
02E3                406 .MulPushPolRec:
02E3 20 0F BF       407 		call	.ClosEndPS
02E6 F5 00          408 		lda0	.DataBuf
02E8 F9 00          409 		sta0	.Buf2
02EA F3 A6          410 		lda	#.Mul
02EC F9 00          411 		sta0	.DataBuf
02EE 20 0C 2A       412 		call	.PushData
02F1 F5 00          413 		lda0	.Buf2
02F3 F9 00          414 		sta0	.DataBuf		
02F5                415 .PushPolRec:		
02F5 20 0C 2A       416 		call	.PushData
02F8 F3 B2          417 		lda	#.LC
02FA F9 00          418 		sta0	.DataBuf		 
02FC 20 0D 6B       419 		call	.StoStack
02FF F5 00          420 		lda0	.Buf2
0301 F9 00          421 		sta0	.Buf1
0303 02 00 0A       422 		br	.IN2PS	
+                   423 ;---------------------------------------	
0306                424 .DoDMS:
0306 F3 00          425 		lda	#0h
0308 F9 00          426 		sta0	.PointFlag
+                   427 		 
030A                428 .DoDmsCount:		
030A F5 00          429 		lda0	.DmsCount
030C A7 00          430 		cmpe	#0h
030E 06 03 20       431 		brz	.IsDegree
0311 A7 01          432 		cmpe	#01h
0313 06 03 34       433 		brz	.IsMin
0316 A7 02          434 		cmpe	#02h
0318 06 03 3B       435 		brz	.IsSec
031B A7 03          436 		cmpe	#03h
031D 04 03 5C       437 		brc	.SynErr
0320                438 .IsDegree:
0320 F3 AB          439 		lda	#.Degree			
0322 F9 00          440 		sta0	.DataBuf				
0324 F9 00          441 		sta0	.Buf1
0326 20 0F BF       442 		call	.ClosEndPS
0329 20 0C 2A       443 		call	.PushData
032C F5 00          444 		lda0	.DmsCount
032E 1F             445 		inca
032F F9 00          446 		sta0	.DmsCount	
0331 02 00 0A       447 		br	.IN2PS		
0334                448 .IsMin:		
0334 F3 AC          449 		lda	#.Minute
0336 F9 00          450 		sta0	.DataBuf
0338 02 03 42       451 		br	.PushDms
033B                452 .IsSec:
033B F3 AD          453 		lda	#.Second
033D F9 00          454 		sta0	.DataBuf	
033F 02 03 42       455 		br	.PushDms							
0342                456 .PushDms:	
0342 F5 00          457 		lda0	.DmsCount
0344 1F             458 		inca
0345 F9 00          459 		sta0	.DmsCount			
0347 F5 00          460 		lda0	.DataBuf
0349 F9 00          461 		sta0	.Buf1
034B 20 0F BF       462 		call	.ClosEndPS
034E 20 0C 2A       463 		call	.PushData
0351 F3 AE          464 		lda	#0aeh
0353 F9 00          465 		sta0	.DataBuf
0355 F3 09          466 		lda	#09h		;07hae
0357 F9 00          467 		sta0	.AfterPari
0359 02 0C 20       468 		br	.PushStack 
035C                469 .SynErr:
035C F3 02          470 		lda	#02h
035E F9 00          471 		sta0	ErrorFlag		
0360 02 00 D1       472 		br	.PosFixEnd
+                   473 ;-------------------------------------------
0363                474 .DoFract::
0363 F3 00          475 		lda	#0h
0365 F9 00          476 		sta0	.FractTrsCnt	;clr LC cnt
0367 F3 01          477 		lda	#01h
0369 FC 28          478 		sta	PP
036B F1 00          479 		lda	.SetFlag
036D CB 14          480 		anda	#14h
036F 07 03 72       481 		brnz	.NoSetFract
+                   482 		 
0372                483 .NoSetFract:		
0372 F5 00          484 		lda0	.DmsCount
0374 A7 00          485 		cmpe	#0h
0376 06 03 97       486 		brz	.NoDmsMode
0379 F5 00          487 		lda0	.Buf1
037B A7 AB          488 		cmpe	#0abh
037D 06 03 97       489 		brz	.NoDmsMode
0380 A7 AC          490 		cmpe	#0ach
0382 06 03 97       491 		brz	.NoDmsMode
0385 A7 AD          492 		cmpe	#0adh
0387 06 03 97       493 		brz	.NoDmsMode
038A A7 AE          494 		cmpe	#0aeh		;3/13 add 
038C 06 03 97       495 		brz	.NoDmsMode
038F A7 B3          496 		cmpe	#.RC
0391 06 03 97       497 		brz	.NoDmsMode
0394 02 03 5C       498 		br	.SynErr
0397                499 .NoDmsMode:			
0397 F3 00          500 		lda	#0h
0399 F9 00          501 		sta0	.PointFlag		
039B F5 00          502 		lda0	.DmsCount
039D A7 00          503 		cmpe	#0h
039F 06 03 A6       504 		brz	.DOFractCount
03A2 F3 00          505 		lda	#0h
03A4 F9 00          506 		sta0	.DmsCount
03A6                507 .DOFractCount:		
03A6 F5 00          508 		lda0	.FractCount
03A8 A7 00          509 		cmpe	#0h
03AA 06 03 B7       510 		brz	.Intnum
03AD A7 01          511 		cmpe	#01h
03AF 06 03 BE       512 		brz	.IntFen
03B2 A7 02          513 		cmpe	#02h		
03B4 02 03 CD       514 		br	.MaErr			;4/19
03B7                515 .Intnum:		
03B7 F3 DF          516 		lda	#0dfh
03B9 F9 00          517 		sta0	.DataBuf
03BB 02 03 C5       518 		br	.PushFrant	
03BE                519 .IntFen:			
03BE F3 DE          520 		lda	#0deh
03C0 F9 00          521 		sta0	.DataBuf
03C2 02 03 C5       522 		br	.PushFrant
03C5                523 .PushFrant:
03C5 F5 00          524 		lda0	.FractCount
03C7 1F             525 		inca
03C8 F9 00          526 		sta0	.FractCount
03CA 02 0C 1D       527 		br	.PushStackCls
03CD                528 .MaErr:
03CD F3 01          529 		lda	#01h
03CF F9 00          530 		sta0	ErrorFlag		
03D1 02 00 D1       531 		br	.PosFixEnd						
+                   532 ;-------------------------------------------
03D4                533 .SetADDEC:	
03D4 F5 00          534 		lda0	.DmsCount
03D6 A7 00          535 		cmpe	#0h
03D8 06 03 FA       536 		brz	.AddNoDms
03DB F5 00          537 		lda0	.Buf1
03DD A7 AB          538 		cmpe	#.Degree
03DF 06 03 F6       539 		brz	.ClrDmsCntA
03E2 A7 AC          540 		cmpe	#.Minute
03E4 06 03 F6       541 		brz	.ClrDmsCntA
03E7 A7 AD          542 		cmpe	#.Second
03E9 06 03 F6       543 		brz	.ClrDmsCntA
03EC A7 AE          544 		cmpe	#0aeh
03EE 06 03 F6       545 		brz	.ClrDmsCntA
03F1 A7 B3          546 		cmpe	#.RC
03F3 07 03 5C       547 		brnz	.SynErr
+                   548 		 		     ;	.AddNoDms 2003 1 14.
03F6                549 .ClrDmsCntA:
03F6 F3 00          550 		lda	#0h
03F8 F9 00          551 		sta0	.DmsCount		
03FA                552 .AddNoDms:	
03FA F5 00          553 		lda0	.FractTrsCnt
03FC A7 00          554 		cmpe	#0h
03FE 07 04 19       555 		brnz	.CKNormaldec		
0401 F5 00          556 		lda0	.Buf1
0403 A7 DF          557 		cmpe	#0dfh
0405 06 04 FD       558 		brz	.AdjustOpt
0408 A7 DE          559 		cmpe	#0deh
040A 06 04 A5       560 		brz	.ClrFractCnt
+                   561 		 	
040D                562 .CheckFractCNT:		
040D F5 00          563 		lda0	.FractCount
040F A7 01          564 		cmpe	#01h
0411 06 05 11       565 		brz	.AdjustOptmuldiv
0414 A7 02          566 		cmpe	#02h
0416 06 04 AC       567 		brz	.ClrFractCntMul
0419                568 .CKNormaldec:		
0419 F3 00          569 		lda	#0h
041B F9 00          570 		sta0	.PointFlag				
041D F5 00          571 		lda0	.INDP	;	.PSDP
041F A7 01          572 		cmpe	#01h
0421 06 0A 22       573 		brz	.Sign								
0424 F5 00          574 		lda0	.Buf1
0426 A7 A1          575 		cmpe	#.NUM
0428 05 0C 1D       576 		brnc	.PushStackCls		 
042B A7 AE          577 		cmpe	#0aeh		;06h
042D 06 0C 20       578 		brz	.PushStack 
0430 A7 A4          579 		cmpe	#.ADD
0432 06 0A 22       580 		brz	.Sign
0435 A7 A5          581 		cmpe	#.DEC
0437 06 0A 22       582 		brz	.Sign
043A A7 A6          583 		cmpe	#.Mul
043C 06 0A 22       584 		brz	.Sign
043F A7 A7          585 		cmpe	#.Div
0441 06 0A 22       586 		brz	.Sign
0444 A7 B2          587 		cmpe	#.LC
0446 06 0A 22       588 		brz	.Sign
0449 A7 A8          589 		cmpe	#.Negative
044B 06 0A 22       590 		brz	.Sign
044E A7 B4          591 		cmpe	#.Comma
0450 06 0A 22       592 		brz	.Sign
0453 A7 B0          593 		cmpe	#0b0h	;----5
0455 06 0A 22       594 		brz	.Sign	
0458 A7 B3          595 		cmpe	#.RC
045A 06 04 AC       596 		brz	.ClrFractCntMul		;.PushStackCls	
045D F5 00          597 		lda0	.DataBuf
045F F9 00          598 		sta0	Temp2;		.Buf2
0461 F5 00          599 		lda0	.Buf1
0463 F9 00          600 		sta0	.DataBuf
0465 F9 01          601 		sta0	.DataBuf+1
0467 20 0A 64       602 		call	.CheckPari
046A 20 0E F1       603 		call	.CheckMem
046D F5 00          604 		lda0	Temp2
046F F9 00          605 		sta0	.Buf1
0471 F9 00          606 		sta0	.DataBuf		
0473 F5 00          607 		lda0	.AfterPari
0475 A7 01          608 		cmpe	#01h
0477 06 0C 1D       609 		brz	.PushStackCls
047A A7 02          610 		cmpe	#02h
047C 06 0C 1D       611 		brz	.PushStackCls
047F A7 05          612 		cmpe	#05h		;CNR
0481 06 0A 22       613 		brz	.Sign	
0484 A7 06          614 		cmpe	#06h		;06h
0486 06 0A 22       615 		brz	.Sign
0489 A7 0A          616 		cmpe	#0ah
048B 06 0C 20       617 		brz	.PushStack	;.Sign	
048E A7 09          618 		cmpe	#09h
0490 06 0A 22       619 		brz	.Sign	
0493 A7 07          620 		cmpe	#07h		;06h
0495 06 0A 22       621 		brz	.Sign	;.PushStack 
0498 A7 0B          622 		cmpe	#0bh
049A 06 0A 22       623 		brz	.Sign		
049D A7 0C          624 		cmpe	#0ch
049F 06 0A 22       625 		brz	.Sign
04A2 02 00 0A       626 		br	.IN2PS
+                   627 
+                   628 			
04A5                629 .ClrFractCnt:		
04A5 F3 00          630 		lda	#0h
04A7 F9 00          631 		sta0	.FractCount		
04A9 02 0A 22       632 		br	.Sign		;
04AC                633 .ClrFractCntMul:		
04AC F3 00          634 		lda	#0h
04AE F9 00          635 		sta0	.FractCount		
04B0 02 0C 1D       636 		br	.PushStackCls 			
+                   637 
04B3                638 .ClrDmsCnt:		 
04B3 F3 00          639 		lda	#0h
04B5 F9 00          640 		sta0	.DmsCount		
04B7 02 0C 20       641 		br	.PushStack 
+                   642 ;-------------------------------------------		
04BA                643 .SetMulDiv:
04BA F5 00          644 		lda0	.DmsCount
04BC A7 00          645 		cmpe	#0h
04BE 06 04 E3       646 		brz	.MulNoDms
04C1 F5 00          647 		lda0	.Buf1

⌨️ 快捷键说明

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