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

📄 calcedit.asl

📁 这是用台湾KingB 8位单片机开发的科学计算器程序
💻 ASL
📖 第 1 页 / 共 4 页
字号:
+                     1 
0000                  2  MACRO Clear_Mem(%1,%2,%3)        
+                     3  	lda	#%3
+                     4  	sta	PP       
+                     5                 
+                     6         lda     #%1       ;0807
+                     7         sta     DP
+                     8 1$:
+                     9         lda     #00h
+                    10         sta     i
+                    11         incdp             ;Clear page 0 (02h to 0cfh)
+                    12 	lda	DP
+                    13         cmpe    #%2
+                    14         brnz    1$
+                    15              
+                    16         ENDM
+                    17 
+                    18         
0000                 19 MACRO PP2One()    
+                    20     	lda	#01h
+                    21     	sta	PP
+                    22         ENDM
+                    23 
+                    24         
0000                 25 MACRO PP2Zero()    
+                    26     	lda	#00h
+                    27     	sta	PP
+                    28         ENDM        
+B 00 01

+                    29 		.area   caledit_use(data,abs)
+                    30 ;------------------------------------------------------------------------
+                    31 ;------------------------------------------------------------------------
+                    32 		.org	0x115	;0x11a;0x1f0
+                    33 
0115                 34 Insetflag::	.ds	1
0116                 35 chkFlag::	.ds	1
0117                 36 chkDP::		.ds	1
0118                 37 editFlag::	.ds	1
0119                 38 editDP::	.ds	1
+                    39 ;------------------------------------------------------------------------
+                    40 ;------------------------------------------------------------------------
+B 00 02

+                    41 		.area	forcaledit(code)
+                    42 		
0000                 43 Delmode::	
0000                 44 		PP2One()		
0004 F1 00           45 		lda	.SetFlag
0006 CB 20           46 		anda	#BLANKCHK
0008 07 00 CF        47 		brnz	Delmodeend
000B F1 00           48 		lda	.SFlag
000D CB 40           49 		anda	#ACCHK
000F 07 00 CF        50 		brnz	Delmodeend
+                    51 		
+                    52 		
0012                 53 		PP2One()
0016 F5 00           54 		lda0	.DataDP
0018 A7 00           55 		cmpe	#C_ZERO
001A 07 00 20        56 		brnz	Candel
001D 02 00 CF        57 		br	Delmodeend		
0020                 58 Candel:		
0020 F5 00           59 		lda0	.SFDP
0022 A7 00           60 		cmpe	#C_ZERO
0024 07 00 2A        61 		brnz	Del1go
0027 02 00 A3        62 		br	Del2go
+                    63 
002A                 64 Del1go:
+                    65 				
002A 20 03 80        66 		call	ClrPP3		
002D 20 00 D4        67 		call	Movepage
+                    68 				
0030                 69 		PP2One()
0034 F5 00           70 		lda0	.SFDP
0036 FD 00           71 		sta	cmpDP
0038 FD 19           72 		sta	editDP
003A F3 02           73 		lda	#C_TWO
003C FD 00           74 		sta	cmpPP
003E 20 00 00        75 		call	Decplace
0041                 76 		PP2One()				
0045 F1 00           77 		lda	cmpDP
0047 FD 17           78 		sta	chkDP	
0049 F9 00           79 		sta0	.SFDP
+                    80 		
004B 20 03 41        81 		call	clrp2back
+                    82 		
004E                 83 		PP2One()			
0052 F5 00           84 		lda0	.DataDP
0054 FD 00           85 		sta	cmpDP
+                    86 						
0056 F3 03           87 		lda	#C_THREE	;PP2 IS CLR BACK,SO CHK PP3
0058 FD 00           88 		sta	cmpPP		
005A 20 00 00        89 		call	Decplace
005D F5 00           90 		lda0	.SFDP
005F A5 00           91 		cmpe	cmpDP	
0061 07 00 6F        92 		brnz	keepchkadd
0064 F5 00           93 		lda0	.SFDP
0066 F9 00           94 		sta0	.DataDP		
0068 F3 00           95 		lda	#C_ZERO
006A F9 00           96 		sta0	.SFDP
006C 02 00 C9        97 		br	Delmodeend1				
006F                 98 keepchkadd:
+                    99 		
006F                100 		PP2One()
0073 F1 19          101 		lda	editDP
0075 FD 00          102 		sta	cmpDP										
0077                103 movewordloop:												
0077 20 01 16       104 		call	movebehind		
007A                105 		PP2One()
007E F5 00          106 		lda0	.DataDP
0080 A5 00          107 		cmpe	cmpDP		
0082 07 00 77       108 		brnz	movewordloop
0085                109 		PP2One()			
0089 F1 17          110 		lda	chkDP
008B F9 00          111 		sta0	.DataDP					
008D                112 		PP2One()			
0091 F5 00          113 		lda0	.SFDP
0093 FD 00          114 		sta	cmpDP		
0095 F3 02          115 		lda	#C_TWO
0097 FD 00          116 		sta	cmpPP
0099 20 00 00       117 		call	Addplace					
009C F1 00          118 		lda	cmpDP		
009E F9 00          119 		sta0	.SFDP			
00A0 02 00 C9       120 		br	Delmodeend1		
+                   121 		
+                   122 		
+                   123 		
+                   124 		
00A3                125 Del2go:
+                   126 		
00A3                127 Del2go2:		
00A3                128 		PP2One()
00A7 F5 00          129 		lda0	.DataDP
00A9 FD 00          130 		sta	cmpDP
00AB F3 02          131 		lda	#C_TWO
00AD FD 00          132 		sta	cmpPP
00AF 20 00 00       133 		call	Decplace
+                   134 		
00B2 F5 00          135 		lda0	.DataDP
00B4 3F             136 		deca
00B5 FC 21          137 		sta	DP
00B7 F3 02          138 		lda	#C_TWO
00B9 FC 28          139 		sta	PP		
00BB F3 00          140 		lda	#C_ZERO
00BD FE             141 		sta	I
+                   142 						
00BE                143 		PP2One()		
00C2 F1 00          144 		lda	cmpDP
00C4 F9 00          145 		sta0	.DataDP				
00C6 02 00 C9       146 		br	Delmodeend1
+                   147 			
+                   148 		
+                   149 		
00C9                150 Delmodeend1:
00C9 20 03 80       151 		call	ClrPP3
00CC 02 00 00       152 		br	Rightchk					
00CF                153 Delmodeend:
00CF                154 		PP2One()
00D3 24             155 		ret		
+                   156 ;------------------------------------------------------------------------
+                   157 ;------------------------------------------------------------------------
00D4                158 Movepage:
00D4                159 		PP2One()
00D8 F3 00          160 		lda	#C_ZERO
00DA FD 00          161 		sta	cmpDP
00DC                162 moveloop:		
00DC                163 		PP2One()
00E0 F3 02          164 		lda	#C_TWO
00E2 FD 00          165 		sta	cmpPP
00E4 F1 00          166 		lda	cmpDP
00E6 FC 21          167 		sta	DP
00E8 F1 00          168 		lda	cmpPP
00EA FC 28          169 		sta	PP
00EC F2             170 		lda	I
00ED F9 00          171 		sta0	.DataBuf
+                   172 		
00EF                173 		PP2One()
00F3 F3 03          174 		lda	#C_THREE
00F5 FD 00          175 		sta	cmpPP
00F7 F1 00          176 		lda	cmpDP
00F9 FC 21          177 		sta	DP
00FB F1 00          178 		lda	cmpPP
00FD FC 28          179 		sta	PP
00FF F5 00          180 		lda0	.DataBuf
0101 FE             181 		sta	I
+                   182 				
0102                183 		PP2One()
0106 F5 00          184 		lda0	.DataDP
0108 A5 00          185 		cmpe	cmpDP
010A 06 01 15       186 		brz	Movepageend
010D F1 00          187 		lda	cmpDP
010F 1F             188 		inca
0110 FD 00          189 		sta	cmpDP				
0112 02 00 DC       190 		br	moveloop
+                   191 				
0115                192 Movepageend:
0115 24             193 		ret
+                   194 		
+                   195 		
+                   196 		
+                   197 ;------------------------------------------------------------------------
+                   198 ;------------------------------------------------------------------------
0116                199 movebehind:
0116                200 		PP2One()	
011A F3 03          201 		lda	#C_THREE
011C FD 00          202 		sta	cmpPP
011E 20 00 00       203 		call	Addplace	
0121                204 		PP2One()		
0125 F1 00          205 		lda	font
0127 F9 00          206 		sta0	.DataBuf
0129 F1 17          207 		lda	chkDP
012B FC 21          208 		sta	DP
012D 1F             209 		inca
012E FD 17          210 		sta	chkDP
0130 F3 02          211 		lda	#C_TWO
0132 FC 28          212 		sta	PP
0134 F5 00          213 		lda0	.DataBuf
0136 FE             214 		sta	I		
+                   215 				
0137                216 movebehindend:
0137 24             217 		ret	
+                   218 		
+                   219 ;------------------------------------------------------------------------
+                   220 ;------------------------------------------------------------------------		
0138                221 Replace::	
+                   222 
0138 20 03 80       223 		call	ClrPP3
+                   224 						
013B 20 00 D4       225 		call	Movepage
013E                226 		PP2One()							
0142 F5 00          227 		lda0	.SFDP
0144 FD 19          228 		sta	editDP	
+                   229 						
0146 F5 00          230 		lda0	.SFDP
0148 FD 00          231 		sta	cmpDP
014A F3 02          232 		lda	#C_TWO
014C FD 00          233 		sta	cmpPP		
014E 20 00 00       234 		call	Decplace	
0151 F1 00          235 		lda	cmpDP
0153 F9 00          236 		sta0	.SFDP		
0155 20 03 41       237 		call	clrp2back
+                   238 		
0158                239 Replaceset:					
0158 F5 00          240 		lda0	.SFDP
015A FC 21          241 		sta	DP
015C 1F             242 		inca
015D F9 00          243 		sta0	.SFDP
015F F3 02          244 		lda	#C_TWO
0161 FC 28          245 		sta	PP
0163 F5 00          246 		lda0	.KeyPos
0165 A7 10          247 		cmpe	#TENCODE
0167 07 01 6C       248 		brnz	0$
016A F3 00          249 		lda	#C_ZERO
016C FE             250 0$:		sta	I
+                   251 				
016D                252 		PP2One()	
0171 F5 00          253 		lda0	.DataDP
0173 A5 19          254 		cmpe	editDP
0175 07 01 83       255 		brnz	1$		
+                   256 			
0178 F5 00          257 		lda0	.SFDP
017A F9 00          258 		sta0	.DataDP
017C F3 00          259 		lda	#C_ZERO
017E F9 00          260 		sta0	.SFDP
0180 02 01 BB       261 		br	rpmodeend1
+                   262 				
+                   263 1$:					
0183                264 		PP2One()	
0187 F5 00          265 		lda0	.SFDP
0189 FD 17          266 		sta	chkDP
018B F1 19          267 		lda	editDP
018D FD 00          268 		sta	cmpDP
018F                269 wordrploop:								
018F 20 01 16       270 		call	movebehind		
0192                271 		PP2One()	
0196 F5 00          272 		lda0	.DataDP
0198 A5 00          273 		cmpe	cmpDP		
019A 07 01 8F       274 		brnz	wordrploop	
+                   275 		
+                   276 					
019D                277 		PP2One()				
01A1 F5 00          278 		lda0	.SFDP
01A3 FD 00          279 		sta	cmpDP
01A5 F3 02          280 		lda	#C_TWO
01A7 FD 00          281 		sta	cmpPP		
01A9 20 00 00       282 		call	Addplace		
01AC F1 00          283 		lda	cmpDP
01AE F9 00          284 		sta0	.SFDP					
01B0                285 		PP2One()
01B4 F1 17          286 		lda	chkDP
01B6 F9 00          287 		sta0	.DataDP					
01B8 02 01 BB       288 		br	rpmodeend1
+                   289 				
01BB                290 rpmodeend1:		
01BB 20 03 80       291 		call	ClrPP3
01BE 02 00 00       292 		br	Rightchk
01C1                293 rpmodeend:				
+                   294 				
01C1 24             295 		ret
+                   296 ;------------------------------------------------------------------------
+                   297 ;------------------------------------------------------------------------
01C2                298 Insetmode::
01C2 F5 00          299 		lda0	.KeyPos
01C4 A7 65          300 		cmpe	#DELKEY

⌨️ 快捷键说明

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