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

📄 calcmain.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
0403                622 .EmitKeyD:	
0403 F3 00          623 		lda	#0h
0405 F9 E3          624 		sta0	.TurboCnt				
0407 F3 01          625 		lda	#01h
0409 FC 28          626 		sta	PP
040B F1 00          627 		lda	.SFlag
040D CB 80          628 		anda	#80h
040F 06 04 20       629 		brz	.3$
0412 F5 00          630 		lda0	.FormulaFlag
0414 A7 01          631 		cmpe	#01h
0416 07 04 20       632 		brnz	.3$
0419 F5 E0          633 		lda0	.StoFlag
041B A7 00          634 		cmpe	#0h
041D 06 02 8D       635 		brz	.GetMdata
0420                636 .3$:		
0420 20 0B C1       637 		call	.EI 			;Enable INT
0423 20 00 00       638 		call	ModeIcom		;Disp Icom
0426 20 00 00       639 		call	T1chkblank
0429 F5 E1          640 		lda0	.KeyCodeBuf			
042B F9 00          641 		sta0	.KeyPos	
042D A7 14          642 		cmpe	#.ShiftL			
042F 06 04 4D       643 		brz	.RelaseKey
0432 A7 15          644 		cmpe	#.ShiftR	
0434 06 04 4D       645 		brz	.RelaseKey
0437 F3 00          646 		lda	#0h
0439 F9 E3          647 		sta0	.TurboCnt
043B                648 .CheckKey0:	
043B F3 32          649 		lda	#.RealseTime		;10ms*32=0.5sec
043D F9 E2          650 		sta0	.KeyTimeCnt
043F F5 E3          651 		lda0	.TurboCnt
0441 A7 08          652 		cmpe	#.TimeRels
0443 05 04 3B       653 		brnc	.CheckKey0					
0446 F3 00          654 		lda	#0h
0448 F9 E3          655 		sta0	.TurboCnt			
044A 02 00 AB       656 		br 	.CheckCode	
+                   657 
+                   658 ;--------------												
044D                659 .RelaseKey:		 
+                   660 		;lda0	.SFDP
+                   661 		;cmpe	#02h
+                   662 		;brnc	.CheckCode	
044D F3 00          663 		lda	#0h
044F FC 28          664 		sta	PP						
0451 F5 E3          665 		lda0	.TurboCnt
0453 A5 E2          666 		cmpe	.KeyTimeCnt
0455 05 04 20       667 		brnc	.3$
0458 F3 0A          668 		lda	#0ah		;100ms
045A F9 E2          669 		sta0	.KeyTimeCnt
045C 02 00 FC       670 		br	.InputKeyHandle	
+                   671 
+                   672 ;-------------------------------------------		
+                   673 ;;The Funtion is for Quad Mode ,Quad Estimate have X1 & X2 & Y
045F                674 .CalcEstimateXY:		
045F F3 00          675 		lda	#>.SFlag
0461 FC 28          676 		sta	PP					 
0463 F1 00          677 		lda 	.SFlag			;SFlag 08 is set =
0465 DB 08          678 		ora	#08h
0467 FD 00          679 		sta 	.SFlag	
0469 20 00 00       680 		call	.T_trans_X	
046C F3 00          681 		lda	#>DaltaXcnt				
046E FC 28          682 		sta	PP
0470 F1 00          683 		lda	DaltaXcnt
0472 A7 00          684 		cmpe	#0h					
0474 07 04 7A       685 		brnz	.DispDaltaX2			
0477 02 02 43       686 		br	.NoEquCalc			
047A                687 .DispDaltaX2:		 
047A F3 00          688 		lda	#>font		
047C FC 28          689 		sta	PP
047E F1 00          690 		lda	font			;Font=Inputkey
0480 A7 BD          691 		cmpe	#.DaltaX
0482 07 05 11       692 		brnz	.DispDaltaY
0485 F3 02          693 		lda	#02h
0487 FC 28          694 		sta	PP
0489 F3 00          695 		lda	#0h
048B FC 21          696 		sta	DP
048D F2             697 		lda	i
048E A7 BD          698 		cmpe	#.DaltaX
0490 06 04 B6       699 		brz	.LREstimate2
0493                700 .CkQR:		
0493 20 00 00       701 		call	.Syntax
0496 F5 00          702 		lda0	ErrorFlag
0498 A7 00          703 		cmpe	#0h
049A 06 02 43       704 		brz	.NoEquCalc
049D F3 00          705 		lda	#0h
049F F9 00          706 		sta0	ErrorFlag				
04A1 F3 00          707 		lda	#>DaltaXcnt
04A3 FC 28          708 		sta	PP				 	 		
04A5 F1 00          709 		lda	DaltaXcnt		
04A7 A7 02          710 		cmpe	#02h
04A9 06 05 07       711 		brz	.CalcQR_EstX1		
04AC F3 02          712 		lda	#02h
04AE FD 00          713 		sta	DaltaXcnt
04B0 20 00 00       714 		call	QR_EstimateX2				
04B3 02 03 7C       715 		br	.OnlyDisp
04B6                716 .LREstimate2:
04B6 F3 00          717 		lda	#>StateFlag
04B8 FC 28          718 		sta	PP
04BA F1 00          719 		lda	StateFlag
04BC CB 07          720 		anda	#07h
04BE A7 06          721 		cmpe	#06h		
04C0 06 04 93       722 		brz	.CkQR
04C3 A7 05          723 		cmpe	#05h
04C5 06 04 E0       724 		brz	.InvEstimateX
04C8 A7 04          725 		cmpe	#04h
04CA 06 04 E9       726 		brz	.PwrEstimateX
04CD A7 03          727 		cmpe	#03h
04CF 06 04 F2       728 		brz	.ExpEstimateX
04D2 A7 02          729 		cmpe	#02h
04D4 06 04 FB       730 		brz	.LogEstimateX
04D7                731 .LinEstimateX:		
04D7 20 00 00       732 		call	.LRX_trans_X
04DA 20 00 00       733 		call	LR_EstimateX
04DD 02 05 01       734 		br	.EstAnsCarry		
04E0                735 .InvEstimateX:
04E0 20 00 00       736 		call	.LRX_trans_X
04E3 20 00 00       737 		call	LR_InvEstimateX
04E6 02 05 01       738 		br	.EstAnsCarry	
04E9                739 .PwrEstimateX:		
04E9 20 00 00       740 		call	.LRX_trans_X
04EC 20 00 00       741 		call	LR_PwrEstimateX
04EF 02 05 01       742 		br	.EstAnsCarry	
04F2                743 .ExpEstimateX:
04F2 20 00 00       744 		call	.LRX_trans_X
04F5 20 00 00       745 		call	LR_ExpEstimateX
04F8 02 05 01       746 		br	.EstAnsCarry		
04FB                747 .LogEstimateX:
04FB 20 00 00       748 		call	.LRX_trans_X
04FE 20 00 00       749 		call	LR_LnEstimateX
0501                750 .EstAnsCarry:		
0501 20 00 00       751 		call	.Carry
0504 02 03 7C       752 		br	.OnlyDisp			
+                   753 ;-------------------------------------------		
+                   754 				
0507                755 .CalcQR_EstX1:		
0507 F3 01          756 		lda	#01h
0509 FD 00          757 		sta	DaltaXcnt	
050B 20 00 00       758 		call	QR_EstimateX1				
050E 02 03 7C       759 		br	.OnlyDisp		
0511                760 .DispDaltaY:	
0511 F3 02          761 		lda	#02h
0513 FC 28          762 		sta	PP
0515 F3 00          763 		lda	#0h
0517 FC 21          764 		sta	DP
0519 F2             765 		lda	i
051A A7 BE          766 		cmpe	#.DaltaY
051C 06 05 3B       767 		brz	.LREstimateY2
051F                768 .CkQRY:			
051F 20 00 00       769  		call	.Syntax
0522 F5 00          770 		lda0	ErrorFlag
0524 A7 00          771 		cmpe	#0h
0526 06 02 43       772 		brz	.NoEquCalc
0529 F3 00          773 		lda	#0h
052B F9 00          774 		sta0	ErrorFlag
052D F3 00          775 		lda	#>DaltaXcnt
052F FC 28          776 		sta	PP
0531 F3 02          777 		lda	#02h				 	 		
0533 FD 00          778 		sta	DaltaXcnt	
0535 20 00 00       779 		call	QR_EstimateY		
0538 02 03 7C       780 		br	.OnlyDisp
053B                781 .LREstimateY2:
053B F3 00          782 		lda	#>StateFlag
053D FC 28          783 		sta	PP
053F F1 00          784 		lda	StateFlag
0541 CB 07          785 		anda	#07h
0543 A7 06          786 		cmpe	#06h
0545 06 05 1F       787 		brz	.CkQRY
0548 A7 05          788 		cmpe	#05h
054A 06 05 68       789 		brz	.InvEstimateY
054D A7 04          790 		cmpe	#04h
054F 06 05 74       791 		brz	.PwrEstimateY
0552 A7 03          792 		cmpe	#03h
0554 06 05 80       793 		brz	.ExpEstimateY
0557 A7 02          794 		cmpe	#02h
0559 06 05 8C       795 		brz	.LogEstimateY
055C                796 .LinEstimateY:		
055C 20 00 00       797 		call	.LRY_trans_Y
055F 20 00 00       798 		call	.Y_trans_X
0562 20 00 00       799 		call	LR_EstimateY
0565 02 05 01       800 		br	.EstAnsCarry		
0568                801 .InvEstimateY:
0568 20 00 00       802 		call	.LRY_trans_Y
056B 20 00 00       803 		call	.Y_trans_X
056E 20 00 00       804 		call	LR_InvEstimateY
0571 02 05 01       805 		br	.EstAnsCarry	
0574                806 .PwrEstimateY:		
0574 20 00 00       807 		call	.LRY_trans_Y
0577 20 00 00       808 		call	.Y_trans_X
057A 20 00 00       809 		call	LR_PwrEstimateY
057D 02 05 01       810 		br	.EstAnsCarry	
0580                811 .ExpEstimateY:
0580 20 00 00       812 		call	.LRY_trans_Y
0583 20 00 00       813 		call	.Y_trans_X
0586 20 00 00       814 		call	LR_ExpEstimateY
0589 02 05 01       815 		br	.EstAnsCarry		
058C                816 .LogEstimateY:
058C 20 00 00       817 		call	.LRY_trans_Y
058F 20 00 00       818 		call	.Y_trans_X
0592 20 00 00       819 		call	LR_LnEstimateY
0595 02 05 01       820 		br	.EstAnsCarry						
+                   821 ;-------------------------------------------		
0598                822 .MemoryCK:				
0598 F3 01          823 		lda	#01h
059A FC 28          824 		sta	PP
059C F3 00          825 		lda	#^(.MemoryCheck)
059E FC 54          826 		sta	TPP
05A0 F3 00          827 		lda	#@(.MemoryCheck)
05A2 FC 02          828 		sta	TPH
05A4 F3 00          829 		lda	#<(.MemoryCheck)
05A6 FC 01          830 		sta	TPL
05A8                831 .SearchMem:		
05A8 F8             832 		ldv
05A9 F9 01          833 		sta0	.DataBuf+1	 
05AB A7 FF          834 		cmpe	#0ffh
05AD 06 05 FF       835 		brz	.ResetStoRcl
05B0 F3 00          836 		lda	#0h
05B2 FC 28          837 		sta	PP
05B4 F5 01          838 		lda0	.DataBuf+1
05B6 A7 A2          839 		cmpe	#0a2h		;ANS=A2
05B8 06 05 FF       840 		brz	.ResetStoRcl
05BB A5 00          841 		cmpe	.KeyPos
05BD 07 05 A8       842 		brnz	.SearchMem		
05C0 F3 00          843 		lda	#>.SFlag
05C2 FC 28          844 		sta	PP
05C4 F1 00          845 		lda	.SFlag		;6   5   4   3     
05C6 CB 78          846 		anda	#78h		;AC RCL STO EQU
05C8 A7 58          847 		cmpe	#58h		;AC     STO EQU
05CA 06 06 0B       848 		brz	.ClrStoRclFlag
05CD F3 01          849 		lda	#01h		;STO Check
05CF FC 28          850 		sta	PP
+                   851 					;lda	.SetFlag
05D1 F3 20          852 		lda 	#20h 		;ora	#20h
05D3 FD 00          853 		sta	.SetFlag				
05D5 F1 00          854 		lda	.SFlag		
05D7 CB 30          855 		anda	#30h				
05D9 A7 10          856 		cmpe	#10h		;SFlag 10 is Sto Mode
05DB 06 05 E3       857 		brz	.CheckSto	;	;.DislayMode	 		
05DE A7 20          858 		cmpe	#20h		;SFlag 20 is Rcl Mode
05E0 02 07 AC       859 		br	.RCLMemory
05E3                860 .CheckSto:
05E3 F3 00          861 		lda	#>.SFlag
05E5 FC 28          862 		sta	PP
05E7 F1 00          863 		lda	.SFlag	
05E9 CB 08          864 		anda	#08h
05EB 06 02 43       865 		brz	.NoEquCalc
05EE F3 01          866 		lda	#01h
+                   867 		
05F0 FC 28          868 		sta	PP
05F2 F1 00          869 		lda	StateFlag
05F4 CB 08          870 		anda	#08h
05F6 06 03 19       871 		brz	.ModeDisp
05F9 20 00 00       872 		call	.IsBaseNMode				
05FC 02 03 19       873 		br	.ModeDisp
+                   874 						
05FF                875 .ResetStoRcl:
05FF F5 00          876 		lda0	.KeyPos
0601 A7 52          877 		cmpe	#.StoCode		;STO
0603 06 04 03       878 		brz	.EmitKeyD
0606 A7 53          879 		cmpe	#.RclCode		;RCL 
0608 06 04 03       880 		brz	.EmitKeyD
060B                881 .ClrStoRclFlag:								
060B F3 01          882 		lda	#01h
060D FC 28          883 		sta	PP
060F F1 00          884 		lda	.SFlag
0611 CB CF          885 		anda	#~30h
0613 FD 00          886 		sta	.SFlag		
0615 02 04 03       887 		br	.EmitKeyD
+                   888 
+                   889 ;===========================================				
0618                890 .SetRND:	
0618 20 06 1E       891 		call	.CheckRndInp	
061B 02 04 03       892 		br	.EmitKeyD
061E                893 .CheckRndInp:		
061E F3 00          894 		lda	#>.SFlag		 
0620 FC 28          895 		sta	PP							
0622 F1 00          896 		lda 	.SFlag
0624 CB 08          897 		anda	#08h
0626 06 06 47       898 		brz	2$
0629 F1 00          899 		lda	.SetFlag
062B CB 1C          900 		anda	#1ch
062D 07 06 3A       901 		brnz	1$
0630 F1 00          902 		lda	DispFlag
0632 CB C0          903 		anda	#0c0h
0634 06 06 3A       904 		brz	1$
0637 20 00 00       905 		call	.OPZ2RND		
+                   906 1$:		
063A 20 00 00       907 		call	.Z_trans_I		;I=Ans
063D F3 01          908 		lda	#01h
063F FC 28          909 		sta	PP
0641 F1 00          910 		lda	.SetFlag
0643 DB 01          911 		ora	#01h
0645 FD 00          912 		sta	.SetFlag
+                   913 2$:				
0647 24             914 		ret
+                   915 ;-------------------------------------------		
0648                916 .DORnd:
0648 F5 00          917 		lda0	.KeyPos
064A A7 AA          918 		cmpe	#0aah
064C 06 06 68       919 		brz	1$
064F A7 BB          920 		cmpe	#0bbh
0651 06 06 68       921 		brz	1$
0654 A7 CE          922 		cmpe	#0ceh
0656 06 06 68       923 		brz	1$
0659 A7 60          924 		cmpe	#60H		
065B 07 01 44       925 		brnz	.EditModeInp
065E F3 00          926 		lda	#0h
0660 F9 00          927 		sta0	.KeyPos
0662 20 06 1E       928 		call	.CheckRndInp
0665 02 01 44       929 		br	.EditModeInp
+                   930 1$:
0668 20 08 3C       931 		call	.CheckRnd
066B 02 01 B4       932 		br	.CalcResoult		
+                   933 ;------------------------------------------

⌨️ 快捷键说明

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