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

📄 getkeycode.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 4 页
字号:
+                     1 			.area   getkeydata(data,abs)
+                     2        			.org	0x12a
+B 00 01
012A                  3 .TPPTemp::		.ds	1
012B                  4 .TPHTemp::		.ds	1       			
012C                  5 .TPLTemp::		.ds	1
012D                  6 .SFlag::		.ds	1 
012E                  7 .FunctFlag::
012E                  8 .DelayCnt:		.ds	1
0066                  9 .AC			EQU	0x66
0066                 10 .ON			EQU	0x66
0017                 11 .OFF			EQU	0x17
0016                 12 .MODE			EQU	0x16
0012                 13 .SHIFT			EQU	0x12
0013                 14 .ALPHA			EQU	0x13
0014                 15 .LEFT			EQU	0x14
0015                 16 .RIGHT			EQU	0x15
0044                 17 .HYP			EQU	0x44
0052                 18 .STO			EQU	0x52
0053                 19 .RCL			EQU	0x53
0006                 20 .ENTER			EQU	0x06
00E9                 21 .SinH			EQU	0xe9
00F0                 22 .CosH			EQU	0xf0
00F1                 23 .TanH			EQU	0xf1
00F2                 24 .ASinH			EQU	0xf2
00F3                 25 .ACosH			EQU	0xf3
00F4                 26 .ATanH			EQU	0xf4
+                    27 
+                    28 
+                    29 
+                    30 
+                    31 
+                    32 ;SFlag    7   6   5   4   3   2   1   0
+                    33 ;On: 1	 cal AC	RCL STO EQU Sft Alf Hpy  
+                    34 ;Off:0
+                    35 
+                    36 ;SetFlag 7   6   5   4   3   2   1   0
+                    37 ;	 %+ cma	disp pt	num dms	drg rnd	
+                    38 
+                    39 		        .area   getkeycode(code)
+B 00 02
0000                 40 .GetKeyCode::
+                    41 		
0000 F3 01           42 		lda	#01h
0002 FC 28           43 		sta	PP
0004 F5 00           44 		lda0	.KeyPos	
0006 A7 00           45 		cmpe	#0h
0008 06 04 1A        46 		brz	.EndGetKeyCode	
000B A7 66           47 		cmpe	#.AC
000D 06 00 C1        48 		brz	.PowerOn
0010 A7 17           49 		cmpe	#.OFF
0012 06 01 3E        50 		brz	.PowerOff
0015 A7 14           51 		cmpe	#.LEFT
0017 06 00 37        52 		brz	.ChangKEY
001A A7 15           53 		cmpe	#.RIGHT
001C 06 00 37        54 		brz	.ChangKEY
001F F5 00           55 		lda0	ErrorFlag
0021 A7 00           56 		cmpe	#0h
0023 07 04 1A        57 		brnz	.EndGetKeyCode		
0026 F5 00           58 		lda0	.KeyPos		
0028 A7 06           59 		cmpe	#.ENTER
002A 06 01 44        60 		brz	.EQU					
002D A7 52           61 		cmpe	#.STO
002F 06 01 63        62 		brz	.STOset
0032 A7 53           63 		cmpe	#.RCL
0034 06 01 A5        64 		brz	.RCLset
+                    65 		
0037                 66 .ChangKEY:	
+                    67 		
0037 F1 2D           68 		lda 	.SFlag
0039 CB 07           69 		anda	#07h		
003B A7 00           70 		cmpe	#0h		
003D 06 00 54        71 		brz	.CkStoRcl
0040 A7 01           72 		cmpe	#01h
0042 06 03 84        73 		brz	.HypAddNor		
0045 A7 02           74 		cmpe	#02h
0047 06 03 0B        75 		brz	.AlfAddNor		
004A A7 04           76 		cmpe	#04h
004C 06 02 7D        77 		brz	.SftAddNor
004F A7 05           78 		cmpe	#05h
0051 06 03 CF        79 		brz	.HypAddSft
0054                 80 .CkStoRcl:		
0054 F1 2D           81 		lda	.SFlag
0056 CB 30           82 		anda	#30h
0058 07 00 6F        83 		brnz	.ChkStoRcl
+                    84 		 
005B                 85 .NomlKey::		
005B F5 00           86 		lda0	.KeyPos							
005D A7 12           87 		cmpe	#.SHIFT
005F 06 01 E4        88 		brz	.SetShift
0062 A7 13           89 		cmpe	#.ALPHA
0064 06 02 2F        90 		brz	.SetAlpha
0067 A7 44           91 		cmpe	#.HYP
0069 06 02 3E        92 		brz	.SetHyp
006C 02 00 7B        93 		br	.KeyTrans
006F                 94 .ChkStoRcl:		
006F F5 00           95 		lda0	.KeyPos	
0071 A7 12           96 		cmpe	#.SHIFT
0073 06 01 E4        97 		brz	.SetShift
0076 A7 13           98 		cmpe	#.ALPHA
0078 06 02 2F        99 		brz	.SetAlpha
007B                100 .KeyTrans:		
007B F3 01          101 		lda	#01h
007D FC 28          102 		sta	PP
007F F5 00          103 		lda0	.KeyPos	
0081 FD 01          104 		sta 	.M_bcdbuf+1
0083 F3 00          105 		lda	#0h
0085 FD 00          106 		sta 	.M_bcdbuf
0087 20 00 00       107 		call	.Bcd2Hex
008A F1 01          108 		lda 	.M_bcdbuf+1
008C F9 00          109 		sta0	.KeyPos		
008E F3 01          110 		lda	#01h
0090 FC 28          111 		sta	PP
0092 F3 00          112 		lda	#^(.NormalKey)
0094 FD 2A          113 		sta	.TPPTemp
0096 F3 07          114 		lda	#@(.NormalKey)
0098 FD 2B          115 		sta	.TPHTemp
009A F3 19          116 		lda	#<(.NormalKey)
009C FD 2C          117 		sta	.TPLTemp						
009E F5 00          118 		lda0	.KeyPos		
00A0 89 2C          119 		adda	.TPLTemp
00A2 FD 2C          120 		sta	.TPLTemp
00A4 05 00 AC       121 		brnc	.NoCarry
00A7 F1 2B          122 		lda	.TPHTemp	
00A9 1F             123 		inca
00AA FD 2B          124 		sta	.TPHTemp
00AC                125 .NoCarry:
00AC F1 2A          126 		lda	.TPPTemp
00AE FC 54          127 		sta	TPP
00B0 F1 2B          128 		lda	.TPHTemp
00B2 FC 02          129 		sta	TPH		
00B4 F1 2C          130 		lda	.TPLTemp
00B6 FC 01          131 		sta	TPL
00B8 F8             132 		ldv
00B9 F9 00          133 		sta0	.KeyPos		 
00BB 20 05 2A       134 		call	.CheckClrData
00BE 02 04 1A       135 		br	.EndGetKeyCode
+                   136 		
00C1                137 .PowerOn:	
+                   138 			
00C1 F3 01          139 		lda	#01h
00C3 FC 28          140 		sta	PP
00C5 F5 00          141 		lda0	ErrorFlag
00C7 A7 00          142 		cmpe	#0h
00C9 06 00 D2       143 		brz	1$
00CC F1 2D          144 		lda	.SFlag
00CE CB F7          145 		anda	#~08h
00D0 FD 2D          146 		sta	.SFlag
+                   147 1$:		
00D2 F3 00          148 		lda	#0h
00D4 FD 00          149 		sta	.CalcFlag
00D6 FD 00          150 		sta	.SRFlag
00D8 FD 00          151 		sta	Insetflag
00DA F9 00          152 		sta0	ErrorFlag		
00DC F1 2D          153 		lda	.SFlag
00DE CB 04          154 		anda	#04h
00E0 07 00 37       155 		brnz	.ChangKEY
00E3 F9 00          156 		sta0	ErrorFlag		
00E5 F1 2D          157 		lda	.SFlag
00E7 CB C8          158 		anda	#~37h		
00E9 DB 40          159 		ora	#40h		
00EB FD 2D          160 		sta	.SFlag
00ED CB 08          161 		anda	#08h
00EF A7 08          162 		cmpe	#08h
00F1 06 00 F7       163 		brz	.PwrEditMode
00F4 20 00 00       164 		call	.ClrP2Data
00F7                165 .PwrEditMode:	
00F7 20 00 00       166 		call	.ClrZ
00FA F3 00          167 		lda	#>.SetFlag
00FC FC 28          168 		sta	PP
00FE F1 00          169 		lda	.SetFlag
0100 CB C0          170 		anda	#~3fh		;ClrAllStatus
0102 FD 00          171 		sta	.SetFlag
0104 F3 01          172 		lda	#01h
0106 F9 00          173 		sta0	.ModeFlag
0108 F1 00          174 		lda	BasenFlag	;BaseN 0308	
010A CB F0          175 		anda	#0f0h
010C FD 00          176 		sta	BasenFlag	;						
010E 20 00 00       177 		call	ClrAlldisp		 		
+                   178 		;lda	#01h
0111 F3 05          179 		lda	#00000101b	;bit 2 1=B type 
0113 FC 38          180 		sta	LCDC
0115 F3 00          181 		lda	#0h
0117 F9 00          182 		sta0	.KeyPos
+                   183 ;;;;;;;formula AC
0119 F3 01          184 		lda	#>.SFlag
011B FC 28          185 		sta	PP
011D F1 2D          186 		lda	.SFlag		
011F DB 40          187 		ora	#40h
0121 CB 7F          188 		anda	#~80h
0123 FD 2D          189 		sta	.SFlag	
0125 F5 00          190 		lda0	.FormulaFlag
0127 A7 01          191 		cmpe	#01h
0129 07 04 1A       192 		brnz	.EndGetKeyCode
012C 20 00 00       193 		call	.Formula2Input 
012F F3 00          194 		lda	#0h
0131 F9 00          195 		sta0	.FormulaFlag
0133 F3 00          196 		lda	#>.ForLDP
0135 FC 28          197 		sta	PP
0137 F1 00          198 		lda	.ForLDP
0139 F9 00          199 		sta0	.DataDP
013B 02 04 1A       200 		br	.EndGetKeyCode
013E                201 .PowerOff:	
+                   202 		;lda	#0ffh
+                   203 		;sta	SP		
013E 20 00 00       204 		call	.Sleep				
0141 02 04 1A       205 		br	.EndGetKeyCode	
0144                206 .EQU:
+                   207 		
0144 F3 01          208 		lda	#01h
0146 FC 28          209 		sta	PP
0148 F1 2D          210 		lda	.SFlag	
014A CB 40          211 		anda	#40h	
014C 07 01 56       212 		brnz	.SetKey0
+                   213 		
014F F3 00          214 		lda	#0h		
0151 FD 00          215 		sta	Insetflag
0153 02 00 37       216 		br	.ChangKEY
0156                217 .SetKey0:
0156 F3 00          218 		lda	#0h
0158 F9 00          219 		sta0	.KeyPos
015A F1 2D          220 		lda	.SFlag
015C CB C8          221 		anda	#~37h						
015E FD 2D          222 		sta	.SFlag
0160 02 04 1A       223 		br	.EndGetKeyCode					
+                   224 ;-------------------------------------------	
+                   225 ;;;Judge mode choice enable ;if mdoe enable can't set sto or rcl	
0163                226 .STOset:
0163 F3 01          227 		lda	#01h		 
0165 FC 28          228 		sta	PP		
0167 F1 00          229 		lda	.SetFlag
0169 CB 02          230 		anda	#02h
016B 07 04 1A       231 		brnz	.EndGetKeyCode
016E F1 00          232 		lda	BasenFlag
0170 CB 0F          233 		anda	#0fh
0172 07 04 1A       234 		brnz	.EndGetKeyCode    	        	        	         	      	
0175 F5 00          235         	lda0	.ModeFlag
0177 CB F0          236 		anda	#0f0h
0179 07 04 1A       237 		brnz	.EndGetKeyCode	
017C F1 2D          238 		lda	.SFlag
017E CB 30          239 		anda	#30h
0180 A7 20          240 		cmpe	#20h
0182 06 01 8A       241 		brz	.DosetSto
0185 A7 10          242 		cmpe	#10h
0187 06 01 95       243 		brz	.ResetSto
+                   244 		
018A                245 .DosetSto:		
+                   246 		
018A F1 2D          247 		lda 	.SFlag
018C CB C8          248 		anda	#~37h
018E DB 10          249 		ora	#10h
0190 FD 2D          250 		sta 	.SFlag
0192 02 01 9F       251 		br	.EndSTOset
0195                252 .ResetSto:				
0195 F1 2D          253 		lda 	.SFlag
0197 CB E8          254 		anda	#~17h
0199 FD 2D          255 		sta 	.SFlag
019B F3 00          256 		lda	#0h
019D F9 00          257 		sta0	.KeyPos 
+                   258 		 	
019F                259 .EndSTOset:
019F 20 05 2A       260 		call	.CheckClrData 
01A2 02 04 1A       261 		br	.EndGetKeyCode
+                   262 
+                   263 ;-------------------------------------------
+                   264 ;;;Judge mode choice enable ;if mdoe enable can't set sto or rcl			
01A5                265 .RCLset:
01A5 F3 01          266 		lda	#01h		 
01A7 FC 28          267 		sta	PP	
01A9 F1 00          268 		lda	.SetFlag
01AB CB 02          269 		anda	#02h
01AD 07 04 1A       270 		brnz	.EndGetKeyCode
01B0 F1 00          271 		lda	BasenFlag
01B2 CB 0F          272 		anda	#0fh
01B4 07 04 1A       273 		brnz	.EndGetKeyCode    	        	        	         	      	
01B7 F5 00          274         	lda0	.ModeFlag
01B9 CB F0          275 		anda	#0f0h
01BB 07 04 1A       276 		brnz	.EndGetKeyCode	
01BE F1 2D          277 		lda	.SFlag
01C0 CB 30          278 		anda	#30h
01C2 A7 10          279 		cmpe	#10h
01C4 06 01 CC       280 		brz	.DosetRcl
01C7 A7 20          281 		cmpe	#20h
01C9 06 01 D7       282 		brz	.ResetRcl
+                   283 		
01CC                284 .DosetRcl:		
+                   285 		
01CC F1 2D          286 		lda 	.SFlag
01CE CB C8          287 		anda	#~37h
01D0 DB 20          288 		ora	#20h
01D2 FD 2D          289 		sta 	.SFlag
01D4 02 01 E1       290 		br	.EndRCLset
01D7                291 .ResetRcl:				
01D7 F1 2D          292 		lda 	.SFlag
01D9 CB D8          293 		anda	#~27h
01DB FD 2D          294 		sta 	.SFlag
01DD F3 00          295 		lda	#0h
01DF F9 00          296 		sta0	.KeyPos 
+                   297 		 	
+                   298 		
01E1                299 .EndRCLset:
+                   300 		;call	.CheckClrData 
01E1 02 04 1A       301 		br	.EndGetKeyCode		
+                   302 ;-------------------------------------------		
01E4                303 .SetShift:
01E4 F1 2D          304 		lda	.SFlag
01E6 CB 07          305 		anda	#07h		
01E8 A7 00          306 		cmpe	#0h
01EA 06 02 22       307 		brz	.SetSF4
01ED A7 01          308 		cmpe	#01h
01EF 06 02 13       309 		brz	.ADDhpy
01F2 A7 02          310 		cmpe	#02h
01F4 07 02 06       311 		brnz	.Sft
01F7 F1 2D          312 		lda	.SFlag

⌨️ 快捷键说明

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