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

📄 calcmain.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 5 页
字号:
0414 05 03 DF       620 		brnc	.3$
0417 F3 0A          621 		lda	#0ah		;100ms
0419 F9 E2          622 		sta0	.KeyTimeCnt
041B 02 00 BB       623 		br	.InputKeyHandle	
+                   624 
+                   625 ;-------------------------------------------		
+                   626 ;;The Funtion is for Quad Mode ,Quad Estimate have X1 & X2 & Y
041E                627 .CalcEstimateXY:		
041E F3 00          628 		lda	#>.SFlag
0420 FC 28          629 		sta	PP					 
0422 F1 00          630 		lda 	.SFlag			;SFlag 08 is set =
0424 DB 08          631 		ora	#08h
0426 FD 00          632 		sta 	.SFlag	
0428 20 00 00       633 		call	.T_trans_X	
042B F3 00          634 		lda	#>DaltaXcnt				
042D FC 28          635 		sta	PP
042F F1 00          636 		lda	DaltaXcnt
0431 A7 00          637 		cmpe	#0h					
0433 07 04 39       638 		brnz	.DispDaltaX2			
0436 02 02 02       639 		br	.NoEquCalc			
0439                640 .DispDaltaX2:		 
0439 F3 00          641 		lda	#>font		
043B FC 28          642 		sta	PP
043D F1 00          643 		lda	font			;Font=Inputkey
043F A7 BD          644 		cmpe	#.DaltaX
0441 07 04 D0       645 		brnz	.DispDaltaY
0444 F3 02          646 		lda	#02h
0446 FC 28          647 		sta	PP
0448 F3 00          648 		lda	#0h
044A FC 21          649 		sta	DP
044C F2             650 		lda	i
044D A7 BD          651 		cmpe	#.DaltaX
044F 06 04 75       652 		brz	.LREstimate2
0452                653 .CkQR:		
0452 20 00 00       654 		call	.Syntax
0455 F5 00          655 		lda0	ErrorFlag
0457 A7 00          656 		cmpe	#0h
0459 06 02 02       657 		brz	.NoEquCalc
045C F3 00          658 		lda	#0h
045E F9 00          659 		sta0	ErrorFlag				
0460 F3 00          660 		lda	#>DaltaXcnt
0462 FC 28          661 		sta	PP				 	 		
0464 F1 00          662 		lda	DaltaXcnt		
0466 A7 02          663 		cmpe	#02h
0468 06 04 C6       664 		brz	.CalcQR_EstX1		
046B F3 02          665 		lda	#02h
046D FD 00          666 		sta	DaltaXcnt
046F 20 00 00       667 		call	QR_EstimateX2				
0472 02 03 3B       668 		br	.OnlyDisp
0475                669 .LREstimate2:
0475 F3 00          670 		lda	#>StateFlag
0477 FC 28          671 		sta	PP
0479 F1 00          672 		lda	StateFlag
047B CB 07          673 		anda	#07h
047D A7 06          674 		cmpe	#06h		
047F 06 04 52       675 		brz	.CkQR
0482 A7 05          676 		cmpe	#05h
0484 06 04 9F       677 		brz	.InvEstimateX
0487 A7 04          678 		cmpe	#04h
0489 06 04 A8       679 		brz	.PwrEstimateX
048C A7 03          680 		cmpe	#03h
048E 06 04 B1       681 		brz	.ExpEstimateX
0491 A7 02          682 		cmpe	#02h
0493 06 04 BA       683 		brz	.LogEstimateX
0496                684 .LinEstimateX:		
0496 20 00 00       685 		call	.LRX_trans_X
0499 20 00 00       686 		call	LR_EstimateX
049C 02 04 C0       687 		br	.EstAnsCarry		
049F                688 .InvEstimateX:
049F 20 00 00       689 		call	.LRX_trans_X
04A2 20 00 00       690 		call	LR_InvEstimateX
04A5 02 04 C0       691 		br	.EstAnsCarry	
04A8                692 .PwrEstimateX:		
04A8 20 00 00       693 		call	.LRX_trans_X
04AB 20 00 00       694 		call	LR_PwrEstimateX
04AE 02 04 C0       695 		br	.EstAnsCarry	
04B1                696 .ExpEstimateX:
04B1 20 00 00       697 		call	.LRX_trans_X
04B4 20 00 00       698 		call	LR_ExpEstimateX
04B7 02 04 C0       699 		br	.EstAnsCarry		
04BA                700 .LogEstimateX:
04BA 20 00 00       701 		call	.LRX_trans_X
04BD 20 00 00       702 		call	LR_LnEstimateX
04C0                703 .EstAnsCarry:		
04C0 20 00 00       704 		call	.Carry
04C3 02 03 3B       705 		br	.OnlyDisp			
+                   706 ;-------------------------------------------		
+                   707 				
04C6                708 .CalcQR_EstX1:		
04C6 F3 01          709 		lda	#01h
04C8 FD 00          710 		sta	DaltaXcnt	
04CA 20 00 00       711 		call	QR_EstimateX1				
04CD 02 03 3B       712 		br	.OnlyDisp		
04D0                713 .DispDaltaY:	
04D0 F3 02          714 		lda	#02h
04D2 FC 28          715 		sta	PP
04D4 F3 00          716 		lda	#0h
04D6 FC 21          717 		sta	DP
04D8 F2             718 		lda	i
04D9 A7 BE          719 		cmpe	#.DaltaY
04DB 06 04 FA       720 		brz	.LREstimateY2
04DE                721 .CkQRY:			
04DE 20 00 00       722  		call	.Syntax
04E1 F5 00          723 		lda0	ErrorFlag
04E3 A7 00          724 		cmpe	#0h
04E5 06 02 02       725 		brz	.NoEquCalc
04E8 F3 00          726 		lda	#0h
04EA F9 00          727 		sta0	ErrorFlag
04EC F3 00          728 		lda	#>DaltaXcnt
04EE FC 28          729 		sta	PP
04F0 F3 02          730 		lda	#02h				 	 		
04F2 FD 00          731 		sta	DaltaXcnt	
04F4 20 00 00       732 		call	QR_EstimateY		
04F7 02 03 3B       733 		br	.OnlyDisp
04FA                734 .LREstimateY2:
04FA F3 00          735 		lda	#>StateFlag
04FC FC 28          736 		sta	PP
04FE F1 00          737 		lda	StateFlag
0500 CB 07          738 		anda	#07h
0502 A7 06          739 		cmpe	#06h
0504 06 04 DE       740 		brz	.CkQRY
0507 A7 05          741 		cmpe	#05h
0509 06 05 27       742 		brz	.InvEstimateY
050C A7 04          743 		cmpe	#04h
050E 06 05 33       744 		brz	.PwrEstimateY
0511 A7 03          745 		cmpe	#03h
0513 06 05 3F       746 		brz	.ExpEstimateY
0516 A7 02          747 		cmpe	#02h
0518 06 05 4B       748 		brz	.LogEstimateY
051B                749 .LinEstimateY:		
051B 20 00 00       750 		call	.LRY_trans_Y
051E 20 00 00       751 		call	.Y_trans_X
0521 20 00 00       752 		call	LR_EstimateY
0524 02 04 C0       753 		br	.EstAnsCarry		
0527                754 .InvEstimateY:
0527 20 00 00       755 		call	.LRY_trans_Y
052A 20 00 00       756 		call	.Y_trans_X
052D 20 00 00       757 		call	LR_InvEstimateY
0530 02 04 C0       758 		br	.EstAnsCarry	
0533                759 .PwrEstimateY:		
0533 20 00 00       760 		call	.LRY_trans_Y
0536 20 00 00       761 		call	.Y_trans_X
0539 20 00 00       762 		call	LR_PwrEstimateY
053C 02 04 C0       763 		br	.EstAnsCarry	
053F                764 .ExpEstimateY:
053F 20 00 00       765 		call	.LRY_trans_Y
0542 20 00 00       766 		call	.Y_trans_X
0545 20 00 00       767 		call	LR_ExpEstimateY
0548 02 04 C0       768 		br	.EstAnsCarry		
054B                769 .LogEstimateY:
054B 20 00 00       770 		call	.LRY_trans_Y
054E 20 00 00       771 		call	.Y_trans_X
0551 20 00 00       772 		call	LR_LnEstimateY
0554 02 04 C0       773 		br	.EstAnsCarry						
+                   774 ;-------------------------------------------		
0557                775 .MemoryCK:				
0557 F3 01          776 		lda	#01h
0559 FC 28          777 		sta	PP
055B F3 00          778 		lda	#^(.MemoryCheck)
055D FC 54          779 		sta	TPP
055F F3 00          780 		lda	#@(.MemoryCheck)
0561 FC 02          781 		sta	TPH
0563 F3 00          782 		lda	#<(.MemoryCheck)
0565 FC 01          783 		sta	TPL
0567                784 .SearchMem:		
0567 F8             785 		ldv
0568 F9 01          786 		sta0	.DataBuf+1	 
056A A7 FF          787 		cmpe	#0ffh
056C 06 05 BE       788 		brz	.ResetStoRcl
056F F3 00          789 		lda	#0h
0571 FC 28          790 		sta	PP
0573 F5 01          791 		lda0	.DataBuf+1
0575 A7 A2          792 		cmpe	#0a2h		;ANS=A2
0577 06 05 BE       793 		brz	.ResetStoRcl
057A A5 00          794 		cmpe	.KeyPos
057C 07 05 67       795 		brnz	.SearchMem		
057F F3 00          796 		lda	#>.SFlag
0581 FC 28          797 		sta	PP
0583 F1 00          798 		lda	.SFlag		;6   5   4   3     
0585 CB 78          799 		anda	#78h		;AC RCL STO EQU
0587 A7 58          800 		cmpe	#58h		;AC     STO EQU
0589 06 05 CA       801 		brz	.ClrStoRclFlag
058C F3 01          802 		lda	#01h		;STO Check
058E FC 28          803 		sta	PP
+                   804 					;lda	.SetFlag
0590 F3 20          805 		lda 	#20h 		;ora	#20h
0592 FD 00          806 		sta	.SetFlag				
0594 F1 00          807 		lda	.SFlag		
0596 CB 30          808 		anda	#30h				
0598 A7 10          809 		cmpe	#10h		;SFlag 10 is Sto Mode
059A 06 05 A2       810 		brz	.CheckSto	;	;.DislayMode	 		
059D A7 20          811 		cmpe	#20h		;SFlag 20 is Rcl Mode
059F 02 07 6B       812 		br	.RCLMemory
05A2                813 .CheckSto:
05A2 F3 00          814 		lda	#>.SFlag
05A4 FC 28          815 		sta	PP
05A6 F1 00          816 		lda	.SFlag	
05A8 CB 08          817 		anda	#08h
05AA 06 02 02       818 		brz	.NoEquCalc
05AD F3 01          819 		lda	#01h
+                   820 		
05AF FC 28          821 		sta	PP
05B1 F1 00          822 		lda	StateFlag
05B3 CB 08          823 		anda	#08h
05B5 06 02 D8       824 		brz	.ModeDisp
05B8 20 00 00       825 		call	.IsBaseNMode				
05BB 02 02 D8       826 		br	.ModeDisp
+                   827 						
05BE                828 .ResetStoRcl:
05BE F5 00          829 		lda0	.KeyPos
05C0 A7 52          830 		cmpe	#.StoCode		;STO
05C2 06 03 C2       831 		brz	.EmitKeyD
05C5 A7 53          832 		cmpe	#.RclCode		;RCL 
05C7 06 03 C2       833 		brz	.EmitKeyD
05CA                834 .ClrStoRclFlag:								
05CA F3 01          835 		lda	#01h
05CC FC 28          836 		sta	PP
05CE F1 00          837 		lda	.SFlag
05D0 CB CF          838 		anda	#~30h
05D2 FD 00          839 		sta	.SFlag		
05D4 02 03 C2       840 		br	.EmitKeyD
+                   841 
+                   842 ;===========================================				
05D7                843 .SetRND:	
05D7 20 05 DD       844 		call	.CheckRndInp	
05DA 02 03 C2       845 		br	.EmitKeyD
05DD                846 .CheckRndInp:		
05DD F3 00          847 		lda	#>.SFlag		 
05DF FC 28          848 		sta	PP							
05E1 F1 00          849 		lda 	.SFlag
05E3 CB 08          850 		anda	#08h
05E5 06 06 06       851 		brz	2$
05E8 F1 00          852 		lda	.SetFlag
05EA CB 1C          853 		anda	#1ch
05EC 07 05 F9       854 		brnz	1$
05EF F1 00          855 		lda	DispFlag
05F1 CB C0          856 		anda	#0c0h
05F3 06 05 F9       857 		brz	1$
05F6 20 00 00       858 		call	.OPZ2RND		
+                   859 1$:		
05F9 20 00 00       860 		call	.Z_trans_I		;I=Ans
05FC F3 01          861 		lda	#01h
05FE FC 28          862 		sta	PP
0600 F1 00          863 		lda	.SetFlag
0602 DB 01          864 		ora	#01h
0604 FD 00          865 		sta	.SetFlag
+                   866 2$:				
0606 24             867 		ret
+                   868 ;-------------------------------------------		
0607                869 .DORnd:
0607 F5 00          870 		lda0	.KeyPos
0609 A7 AA          871 		cmpe	#0aah
060B 06 06 27       872 		brz	1$
060E A7 BB          873 		cmpe	#0bbh
0610 06 06 27       874 		brz	1$
0613 A7 CE          875 		cmpe	#0ceh
0615 06 06 27       876 		brz	1$
0618 A7 60          877 		cmpe	#60H		
061A 07 01 03       878 		brnz	.EditModeInp
061D F3 00          879 		lda	#0h
061F F9 00          880 		sta0	.KeyPos
0621 20 05 DD       881 		call	.CheckRndInp
0624 02 01 03       882 		br	.EditModeInp
+                   883 1$:
0627 20 07 FB       884 		call	.CheckRnd
062A 02 01 73       885 		br	.CalcResoult		
+                   886 ;------------------------------------------
062D                887 .SetDRG:		
062D F5 00          888 		lda0	.KeyPos
062F A7 01          889 		cmpe	#01h
0631 06 06 41       890 		brz	.SetD
0634 A7 02          891 		cmpe	#02h
0636 06 06 48       892 		brz	.SetR
0639 A7 03          893 		cmpe	#03h
063B 06 06 4F       894 		brz	.SetG		
063E 02 03 C2       895 		br	.EmitKeyD
0641                896 .SetD:
0641 F3 AA          897 		lda	#0aah
0643 F9 00          898 		sta0	.KeyPos
0645 02 06 53       899 		br	.ClrScreen
0648                900 .SetR:
0648 F3 BB          901 		lda	#0bbh
064A F9 00          902 		sta0	.KeyPos
064C 02 06 53       903 		br	.ClrScreen
064F                904 .SetG:
064F F3 CE          905 		lda	#0ceh
0651 F9 00          906 		sta0	.KeyPos		 
0653                907 .ClrScreen:		
0653 F3 02          908 		lda	#02h
0655 FC 28          909 		sta	PP
0657 F3 00          910 		lda	#0h
0659 FC 21          911 		sta	DP
065B F2             912 		lda	i
065C A7 A2          913 		cmpe	#0a2h
065E 07 06 64       914 		brnz	.DispScreen
0661 20 00 00       915 		call	.ClrP2Data		
0664                916 .DispScreen:	
0664 F3 00          917 		lda	#>.SRFlag
0666 FC 28          918 		sta	PP
0668 F3 00          919 		lda	#0h
066A FD 00          920 		sta	.SRFlag			
066C 20 00 00       921 		call	Clrfullmatrix
066F 20 00 00       922 		call	Clrfullseg
0672 20 00 00       923 		call	Rightchk							
0675 20 00 00       924 		call	ChkDispAns
0678 20 00 00       925 		call	ShowAnschk
067B F3 01          926 		lda	#01h
067D FC 28          927 		sta	PP
067F F1 00          928 		lda	.SetFlag
0681 CB FD          929 		anda	#~02h
0683 FD 00          930 		sta	.SetFlag	

⌨️ 快捷键说明

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