📄 calcedit.asl
字号:
+ 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 + -