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

📄 syntax.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 4 页
字号:
059C A7 0A          734 		cmpe	#0ah
059E 06 06 29       735 		brz	.SynError		
05A1 A7 09          736 		cmpe	#09h
05A3 06 06 36       737 		brz	.EndStackCk
05A6 A7 12          738 		cmpe	#12h		;Semicolon
05A8 06 06 29       739 		brz	.SynError	
05AB F5 00          740 		lda0	.Buf1
05AD A7 B3          741 		cmpe	#0b3h
05AF 06 06 29       742 		brz	.SynError
05B2 02 06 36       743 		br	.EndStackCk
+                   744 ;-------------------------------------------		
05B5                745 .CommaFractDms:	
05B5 F3 00          746 		lda	#0h
05B7 F9 00          747 		sta0	.DmsCount	
05B9 F5 00          748 		lda0	.DataBuf
05BB F9 00          749 		sta0	.Buf2
05BD F5 00          750 		lda0	.Buf1
05BF F9 00          751 		sta0	.DataBuf
05C1 F9 01          752 		sta0	.DataBuf+1
05C3 20 00 00       753 		call	.CheckPari
05C6 20 00 00       754 		call	.CheckMem
05C9 F5 00          755 		lda0	.Buf2
05CB F9 00          756 		sta0	.DataBuf
05CD F5 00          757 		lda0	.Buf1
05CF A7 B3          758 		cmpe	#0b3h		;)
05D1 06 06 36       759 		brz	.EndStackCk				
05D4 F5 00          760 		lda0	.DataBuf
05D6 A7 B4          761 		cmpe	#0b4h		;b4= ','
05D8 06 05 FD       762 		brz	.Checkcomma
05DB A7 C3          763 		cmpe	#0c3h		;fract
05DD 06 05 FD       764 		brz	.Chkfract
05E0 F5 00          765 		lda0	.Buf1
05E2 A7 B7          766 		cmpe	#0b7h		;degree
05E4 06 06 29       767 		brz	.SynError
05E7 F5 00          768 		lda0	.AfterPari
05E9 A7 0A          769 		cmpe	#0ah
05EB 06 06 36       770 		brz	.EndStackCk
05EE F5 00          771 		lda0	.AfterPari
05F0 A7 01          772 		cmpe	#01h
05F2 06 06 36       773 		brz	.EndStackCk
05F5 A7 02          774 		cmpe	#02h
05F7 06 06 36       775 		brz	.EndStackCk										 			
05FA 02 06 29       776 		br	.SynError
05FD                777 .Chkfract:
05FD                778 .Checkcomma:
05FD F5 00          779 		lda0	.Buf1
05FF A7 B7          780 		cmpe	#0b7h		;degree
0601 06 06 36       781 		brz	.EndStackCk
0604 A7 C3          782 		cmpe	#0c3h		;fract
0606 06 06 29       783 		brz	.SynError
0609 A7 B4          784 		cmpe	#0b4h
060B 06 06 29       785 		brz	.SynError
060E A7 B0          786 		cmpe	#0b0h
0610 06 06 29       787 		brz	.SynError
0613 F5 00          788 		lda0	.AfterPari
0615 A7 0A          789 		cmpe	#0ah
0617 06 06 36       790 		brz	.EndStackCk
061A F5 00          791 		lda0	.AfterPari
061C A7 01          792 		cmpe	#01h
061E 06 06 36       793 		brz	.EndStackCk
0621 A7 02          794 		cmpe	#02h
0623 06 06 36       795 		brz	.EndStackCk											 			
0626 02 06 29       796 		br	.SynError	
+                   797 ;-------------------------------------------		
0629                798 .SynError:
0629 F3 02          799 		lda	#02h
062B F9 00          800 		sta0	ErrorFlag
062D F3 00          801 		lda     #0h 		;set error site
062F F9 00          802 		sta0	.TFlag
0631 F5 00          803 		lda0	.INDP
0633 3F             804 		deca
0634 F9 00          805 		sta0	.SFDP
0636                806 .EndStackCk:
0636 24             807 		ret	
+                   808 ;-------------------------------------------
0637                809 .FunctCode::
0637 F3 01          810 		lda	#01h
0639 FC 28          811 		sta	PP
063B F3 00          812 		lda	#^(.CheckFunC)
063D FC 54          813 		sta	TPP
063F F3 00          814 		lda	#@(.CheckFunC)
0641 FC 02          815 		sta	TPH
0643 F3 00          816 		lda	#<(.CheckFunC)
0645 FC 01          817 		sta	TPL
0647                818 .KeepSearch:		
0647 F8             819 		ldv
0648 F9 01          820 		sta0	.DataBuf+1	 
064A A7 FF          821 		cmpe	#0ffh
064C 06 06 61       822 		brz	.EndCode
064F F3 00          823 		lda	#0h
0651 FC 28          824 		sta	PP
0653 F5 01          825 		lda0	.DataBuf+1
0655 A5 00          826 		cmpe	.DataBuf
0657 07 06 47       827 		brnz	.KeepSearch
065A F3 08          828 		lda	#08h
065C F9 00          829 		sta0	.AfterPari
065E 02 06 65       830 		br	.EndunctCode
0661                831 .EndCode:
0661 F3 00          832 		lda	#0h
0663 F9 00          833 		sta0	.AfterPari
0665                834 .EndunctCode:		
0665 24             835 		ret	
+                   836 ;-------------------------------------------		
0666                837 .CkMemory::		
0666 F3 00          838 		lda	#0h
0668 F9 00          839 		sta0	.AfterPari
066A F3 01          840 		lda	#01h
066C FC 28          841 		sta	PP
066E F3 00          842 		lda	#^(.CheckMemory)
0670 FC 54          843 		sta	TPP
0672 F3 00          844 		lda	#@(.CheckMemory)
0674 FC 02          845 		sta	TPH
0676 F3 00          846 		lda	#<(.CheckMemory)
0678 FC 01          847 		sta	TPL
067A                848 .Searchmem:		
067A F8             849 		ldv
067B F9 01          850 		sta0	.DataBuf+1	 
067D A7 FF          851 		cmpe	#0ffh
067F 06 06 91       852 		brz	.Endmem
0682 F3 00          853 		lda	#0h
0684 FC 28          854 		sta	PP
0686 F5 01          855 		lda0	.DataBuf+1
0688 A5 00          856 		cmpe	.DataBuf	;.Buf1
068A 07 06 7A       857 		brnz	.Searchmem				
068D F3 0E          858 		lda	#0eh
068F F9 00          859 		sta0	.AfterPari
0691                860 .Endmem:		
0691 02 06 36       861 		br	.EndStackCk	
+                   862 		
+                   863 ;-------------------------------------------------
0694                864 .DispPari::
0694 F3 00          865 		lda	#>.SetFlag
0696 FC 28          866 		sta	PP
0698 F1 00          867 		lda	.SetFlag
069A CB 20          868 		anda	#20h
069C 07 07 58       869 		brnz	.EndDispPari		
069F F3 00          870 		lda	#0h
06A1 FC 21          871 		sta	DP
06A3 F9 00          872 		sta0	.DispFlag
06A5                873 .CKloop:	
+                   874 		
06A5 F3 00          875 		lda	#0h
06A7 FC 28          876 		sta	PP
06A9 F0 21          877 		lda	DP
06AB A5 00          878 		cmpe	.DataDP
06AD 06 07 58       879 		brz	.EndDispPari
06B0 F3 02          880 		lda	#02h
06B2 FC 28          881 		sta	PP	
06B4 F2             882 		lda	i
06B5 F9 00          883 		sta0	.DataBuf
06B7 A7 A0          884 		cmpe	#0a0h
06B9 06 07 2B       885 		brz	.SetPoint	
06BC A7 0A          886 		cmpe	#0ah
06BE 04 06 C5       887 		brc	.CKPari
06C1                888 .NextDP:		
06C1 18             889 		incdp		
06C2 02 06 A5       890 		br	.CKloop		
06C5                891 .CKPari:					 
06C5 F5 00          892 		lda0	.DataBuf
06C7 A7 B7          893 		cmpe	#0b7h
06C9 06 06 F9       894 		brz	.DmsMode
06CC A7 C3          895 		cmpe	#0c3h
06CE 06 07 0C       896 		brz	.FractMode
06D1 A7 D0          897 		cmpe	#0d0h
06D3 06 07 6C       898 		brz	.22$
06D6 A7 D6          899 		cmpe	#0d6h
06D8 06 07 6C       900 		brz	.22$
06DB F5 00          901 		lda0	.DataBuf
06DD F9 01          902 		sta0	.DataBuf+1
06DF 20 00 00       903 		call	.CheckPari
06E2 20 00 00       904 		call	.CheckMem
06E5 F5 00          905 		lda0	.AfterPari
06E7 A7 06          906 		cmpe	#06h		 
06E9 06 07 43       907 		brz	.DisDmsFractFlag
06EC A7 09          908 		cmpe	#09h
06EE 06 07 43       909 		brz	.DisDmsFractFlag
06F1 A7 0A          910 		cmpe	#0ah
06F3 06 07 43       911 		brz	.DisDmsFractFlag 	
06F6 02 06 C1       912 		br	.NextDP
06F9                913 .DmsMode:				
06F9 F3 00          914 		lda	#>.SetFlag
06FB FC 28          915 		sta	PP
06FD F1 00          916 		lda	.SetFlag
06FF CB FB          917 		anda	#~04h
0701 DB 04          918 		ora	#04h
0703 FD 00          919 		sta	.SetFlag
0705 F3 04          920 		lda	#04h
0707 F9 00          921 		sta0	.DispFlag		 
0709 02 06 C1       922 		br	.NextDP	
070C                923 .FractMode:	
070C F5 00          924 		lda0	.DispFlag
070E A7 03          925 		cmpe	#03h
0710 06 06 C1       926 		brz	.NextDP
0713 A7 02          927 		cmpe	#02h
0715 06 06 C1       928 		brz	.NextDP
0718 F3 00          929 		lda	#>.SetFlag
071A FC 28          930 		sta	PP
071C F1 00          931 		lda	.SetFlag
071E CB E7          932 		anda	#~18h
0720 DB 08          933 		ora	#08h
0722 FD 00          934 		sta	.SetFlag
0724 F3 05          935 		lda	#05h
0726 F9 00          936 		sta0	.DispFlag 		 
0728 02 06 C1       937 		br	.NextDP	
072B                938 .SetPoint:		
072B F5 00          939 		lda0	.DispFlag
072D A7 02          940 		cmpe	#02h
072F 06 06 C1       941 		brz	.NextDP	
0732 F3 00          942 		lda	#>.SetFlag
0734 FC 28          943 		sta	PP
0736 F1 00          944 		lda	.SetFlag
0738 CB E3          945 		anda	#~1ch		 ;18
073A FD 00          946 		sta	.SetFlag
073C F3 03          947 		lda	#03h
073E F9 00          948 		sta0	.DispFlag 		 
0740 02 06 C1       949 		br	.NextDP	
0743                950 .DisDmsFractFlag:
0743 F5 00          951 		lda0	.DataBuf
0745 A7 A8          952 		cmpe	#0xA8
0747 06 06 C1       953 		brz	.NextDP		
+                   954 				
+                   955 		
+                   956 		
+                   957 		
074A F5 00          958 		lda0	.DispFlag		
074C A7 02          959 		cmpe	#02h
074E 06 06 C1       960 		brz	.NextDP		
0751 F3 00          961 		lda	#0h
0753 F9 00          962 		sta0	.DispFlag		 
0755 02 07 65       963 		br	.11$ 	
0758                964 .EndDispPari:	
0758 F3 00          965 		lda	#>.SetFlag
075A FC 28          966 		sta	PP
075C F1 00          967 		lda	.SetFlag
075E CB 0C          968 		anda	#0ch		 
0760 A7 0C          969 		cmpe	#0ch
0762 06 07 6C       970 		brz	.22$
0765                971 .11$:		
0765 F5 00          972 		lda0	.DispFlag
0767 A7 00          973 		cmpe	#0h
0769 07 07 76       974 		brnz	.33$
076C                975 .22$:		
076C F3 00          976 		lda	#>.SetFlag
076E FC 28          977 		sta	PP
0770 F1 00          978 		lda	.SetFlag
0772 CB E3          979 		anda	#~1ch		 
0774 FD 00          980 		sta	.SetFlag
0776                981 .33$:		
0776 F3 01          982 		lda	#01h
0778 F9 00          983 		sta0	.DispFlag
077A 24             984 		ret
+                   985 ;-------------------------------------------		
077B                986 .FormulaCk::
077B F3 00          987 		lda	#0h
077D FC 21          988 		sta	DP
077F F9 00          989 		sta0	.FormulaFlag
0781 F3 02          990 		lda	#02h
0783 FC 28          991 		sta	PP
0785 F2             992 		lda	i
0786 A7 7A          993 		cmpe	#7ah
0788 06 07 A4       994 		brz	.ErrorSyn		
+                   995 		 
078B                996 .ScanEQU:	
078B F3 02          997 		lda	#02h
078D FC 28          998 		sta	PP	 		
078F 18             999 		incdp
0790 F2            1000 		lda	i
0791 A7 7A         1001 		cmpe	#7ah
0793 06 07 BB      1002 		brz	.IsFormula
0796 F3 00         1003 		lda	#0h
0798 FC 28         1004 		sta	PP
079A F0 21         1005 		lda	DP
079C A5 00         1006 		cmpe	.DataDP
079E 06 08 AA      1007 		brz	.EndFormula
07A1 02 07 8B      1008 		br	.ScanEQU
07A4               1009 .ErrorSyn:
07A4 F3 02         1010 		lda	#02h
07A6 F9 00         1011 		sta0 	ErrorFlag
07A8 F3 00         1012 		lda	#0h
07AA F9 00         1013 		sta0	.StoFlag
07AC F9 00         1014 		sta0	.FormulaFlag
07AE F3 00         1015 		lda	#>.SFlag
07B0 FC 28         1016 		sta	PP
07B2 F1 00         1017 		lda	.SFlag
07B4 CB 7F         1018 		anda	#~80h
07B6 FD 00         1019 		sta 	.SFlag				 
07B8 02 08 AA      1020 		br	.EndFormula					
07BB               1021 .IsFormula:
07BB F0 21         1022 		lda	DP
07BD A7 01         1023 		cmpe	#01h
07BF 07 07 A4      1024 		brnz	.ErrorSyn
07C2 F3 01         1025 		lda	#01h
07C4 F9 00         1026 		sta0	.FormulaFlag
07C6 F3 00         1027 		lda	#>.CalcFlag
07C8 FC 28         1028 		sta	PP
07CA F1 00         1029 		lda	.CalcFlag
07CC A7 01         1030 		cmpe	#01h
07CE 06 07 D8      1031 		brz	.CalcModeOp
07D1 F5 00         1032 		lda0	.KeyPos
07D3 A7 7B         1033 		cmpe	#7bh
07D5 07 08 AA      1034 		brnz	.EndFormula
07D8               1035 .CalcModeOp:	
07D8 F3 00         1036 		lda	#>.CalcFlag
07DA FC 28         1037 		sta	PP
07DC F3 01         1038 		lda	#01h		
07DE FD 00         1039 		sta	.CalcFlag			
07E0 20 08 AB      1040 		call	.SyntaxFormula
07E3 F5 00         1041 		lda0	ErrorFlag
07E5 A7 00         1042 		cmpe	#0h
07E7 07 07 A4      1043 		brnz	.ErrorSyn
07EA 20 00 00      1044 		call	.Syntax
07ED F5 00         1045 		lda0	ErrorFlag
07EF A7 00         1046 		cmpe	#0h
07F1 07 07 A4      1047 		brnz	.ErrorSyn	;.EndFormula
07F4 20 00 00      1048 		call	.ClrFa
07F7 20 00 00      1049 		call	.ClrP2		
07FA F3 02         1050 		lda	#02h
07FC F9 00         1051 		sta0	.FormulaDP
07FE               1052 .stomem:	
07FE F3 02         1053 		lda	#02h
0800 FC 28         1054 		sta	PP	
0802 F5 00         1055 		lda0	.FormulaDP
0804 FC 21         1056 		sta	DP
0806 A7 4F         1057 		cmpe	#04fh
0808 06 08 80      1058 		brz	.copy2formula
080B F2            1059 		lda	i
080C F9 00         1060 		sta0	.DataBuf
080E A7 E3         1061 		cmpe	#0e3h
0810 06 08 43      1062 		brz	.Recodemem
0813 A7 E4         1063 		cmpe	#0e4h
0815 06 08 43      1064 		brz	.Recodemem
0818 A7 E5         1065 		cmpe	#0e5h
081A 06 08 43      1066 		brz	.Recodemem
081D A7 E6         1067 		cmpe	#0e6h
081F 06 08 43      1068 		brz	.Recodemem
0822 A7 E7         1069 		cmpe	#0e7h
0824 06 08 43      1070 		brz	.Recodemem
0827 A7 E8         1071 		cmpe	#0e8h
0829 06 08 43      1072 		brz	.Recodemem
082C A7 F5         1073 		cmpe	#0f5h
082E 06 08 43      1074 		brz	.Recodemem
0831 A7 F6         1075 		cmpe	#0f6h
0833 06 08 43      1076 		brz	.Recodemem
0836 A7 F7         1077 		cmpe	#0f7h
0838 06 08 43      1078 		brz	.Recodemem
083B               1079 .nextdp1:		
083B F5 00         1080 		lda0	.FormulaDP
083D 1F            1081 		inca
083E F9 00         1082 		sta0	.FormulaDP	
0840 02 07 FE      1083 		br	.stomem
0843               1084 .Recodemem:
+                  1085 		
0843 F3 00         1086 		lda	#<SignFa
0845 F9 00         1087 		sta0	.Buf1
0847 F3 09         1088 		lda	#09h
0849 F9 00         1089 		sta0	.Counter
084B               1090 .MEMsto:	
084B F3 00         1091 		lda	#>SignFa
084D FC 28         1092 		sta	PP	
084F F5 00         1093 		lda0	.Counter
0851 A7 00         1094 		cmpe	#0h
0853 06 08 3B      1095 		brz	.nextdp1
0856 F5 00         1096 		lda0	.Buf1
0858 FC 21         1097 		sta	DP
085A F2            1098 		lda	i
085B F9 01         1099 		sta0	.DataBuf+1
085D A7 00         1100 		cmpe	#0h

⌨️ 快捷键说明

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