📄 caldisp.asl
字号:
+ 1
0000 2 MACRO Clear_Mem(%1,%2,%3)
+ 3 lda #%3
+ 4 sta PP
+ 5
+ 6
+ 7 lda #%1 ;0807
+ 8 sta DP
+ 9 1$:
+ 10 lda #00h
+ 11 sta i
+ 12 incdp ;Clear page 0 (02h to 0cfh)
+ 13 lda DP
+ 14 cmpe #%2
+ 15 brnz 1$
+ 16 lda #00h
+ 17 sta PP
+ 18 ENDM
0000 19 MACRO PP2One()
+ 20 lda #01h
+ 21 sta PP
+ 22 ENDM
+ 23
0000 24 MACRO PP2Zero()
+ 25 lda #00h
+ 26 sta PP
+ 27 ENDM
+ 28
+ 29
+ 30
0000 31 MACRO PP2store(%1)
+ 32
+ 33 lda PP
+ 34 sta0 %1
+ 35 ENDM
+ 36
0000 37 MACRO PP2pop(%1)
+ 38
+ 39 lda0 %1
+ 40 sta PP
+ 41
+ 42 ENDM
+ 43 .area caldisp_use2(data,abs)
+ 44 ;------------------------------------------------------------------------
+ 45 ;------------------------------------------------------------------------
+ 46
+ 47 .org 0x100 ;0x1d0
+B 00 01
0100 48 GetCount:: .ds 1
0101 49 BasenFlag:: .ds 1
0102 50 blankCount:: .ds 1
0103 51 t1count:: .ds 1
0104 52 cmpFlag:: .ds 1
0105 53 cmpDP:: .ds 1
0106 54 cmpPP:: .ds 1
+ 55
0107 56 pointcount::
0107 57 chklengthbf:: .ds 1
0108 58 displength::
0108 59 pointbf:: .ds 1
0109 60 startbf::
0109 61 dispcount:: .ds 1
010A 62 EngFlag:: .ds 1
010B 63 T1Flag:: .ds 1
010C 64 pzdispbf:: .ds 7
0113 65 DispFlag:: .ds 1
0114 66 StateFlag:: .ds 1
+ 67
+ 68 .area caldisp_use3(data,abs)
+ 69 .org 0x1fa
+B 00 02
01FA 70 t1dispbf:: .ds 1
01FB 71 t1fontbf:: .ds 1
+ 72 ;------------------------------------------------------------------------
+ 73 ;------------------------------------------------------------------------
+ 74
+ 75 .area forcaldisp(code)
+B 00 03
0000 76 CalDispLib::
+ 77
0000 78 ErrorChk:
0000 F3 00 79 lda #>ErrorFlag
0002 FC 28 80 sta PP
0004 F3 00 81 lda #<ErrorFlag
0006 FC 21 82 sta DP
0008 F2 83 lda i
0009 A7 00 84 cmpe #C_ZERO
000B 07 03 20 85 brnz Allerrordisp
000E 86 ModeChk:
000E F5 00 87 lda0 .ModeFlag
0010 CB F0 88 anda #MASKLO
0012 07 18 25 89 brnz Modedisp
+ 90
0015 91 StoRclallChk:
0015 92 PP2One()
0019 F1 00 93 lda .SFlag
001B CB 30 94 anda #STOCHK|RCLCHK
001D 07 1D 52 95 brnz StoRcldisp
+ 96
0020 97 LogicChk:
0020 98 PP2One()
0024 F1 01 99 lda BasenFlag
0026 CB 0F 100 anda #MASKHI
0028 07 2B 7C 101 brnz LogicDisp
+ 102
+ 103
002B 104 CalDispchk:
002B 105 PP2One()
002F F1 00 106 lda .SFlag
0031 CB 80 107 anda #CALCCHK
0033 07 1C CB 108 brnz CalDisp
+ 109
0036 110 NoStepChk:
0036 F5 00 111 lda0 .DataDP
0038 A7 00 112 cmpe #C_ZERO
003A 07 00 42 113 brnz EngAllChk
003D F9 00 114 sta0 .SFDP
003F 02 00 CB 115 br CalDispLibend
+ 116
0042 117 EngAllChk:
0042 F5 00 118 lda0 .KeyPos
0044 A7 C2 119 cmpe #ENGKEY1
0046 06 00 51 120 brz Eng1Chk
0049 A7 41 121 cmpe #ENGKEY2
004B 06 00 61 122 brz Eng2Chk
004E 02 00 71 123 br InsetModeChk
0051 124 Eng1Chk:
0051 F1 00 125 lda .SetFlag
0053 CB 20 126 anda #BLANKCHK
0055 06 00 CB 127 brz CalDispLibend
0058 F1 0B 128 lda T1Flag
005A DB 40 129 ora #ENG1GO
005C FD 0B 130 sta T1Flag
005E 02 1E 4D 131 br ENG1Disp
0061 132 Eng2Chk:
0061 F1 00 133 lda .SetFlag
0063 CB 20 134 anda #BLANKCHK
0065 06 00 CB 135 brz CalDispLibend
0068 F1 0B 136 lda T1Flag
006A DB 20 137 ora #ENG2GO
006C FD 0B 138 sta T1Flag
006E 02 21 ED 139 br ENG2Disp
0071 140 InsetModeChk:
0071 141 PP2One()
0075 F1 00 142 lda .SetFlag
0077 CB 20 143 anda #BLANKCHK
0079 06 00 87 144 brz 1$
007C F3 00 145 lda #>.SRFlag
007E FC 28 146 sta PP
0080 F1 00 147 lda .SRFlag
0082 CB 01 148 anda #C_ONE
0084 07 00 CB 149 brnz CalDispLibend
+ 150 1$:
0087 151 PP2One()
008B F1 00 152 lda Insetflag
008D A7 01 153 cmpe #C_ONE
008F 06 00 00 154 brz Insetmode
0092 F5 00 155 lda0 .KeyPos
0094 A7 EE 156 cmpe #MODEKEY
0096 06 00 CB 157 brz CalDispLibend ;keep the modekey do not to do eveything
0099 A7 6A 158 cmpe #LOGICKEY
009B 06 00 CB 159 brz CalDispLibend ;keep the logickey do not to do eveything
009E A7 65 160 DelModeChk: cmpe #DELKEY
00A0 06 00 00 161 brz Delmode
00A3 A7 CC 162 LeftKeyChk: cmpe #LEFTKEY
00A5 06 04 09 163 brz Leftchk
00A8 A7 DD 164 RightKeyChk: cmpe #RIGHTKEY
00AA 06 04 DD 165 brz Rightchk
00AD 166 Dispchk:
00AD F3 00 167 lda #C_ZERO
00AF FD 03 168 sta t1count
00B1 169 FullStepChk:
00B1 F5 00 170 lda0 .DataDP
00B3 A7 50 171 cmpe #STEPCHK+1
00B5 05 00 BB 172 brnc 1$
00B8 02 00 CB 173 br CalDispLibend
+ 174 1$:
00BB F1 00 175 lda .SetFlag
00BD CB DF 176 anda #~BLANKCHK
00BF FD 00 177 sta .SetFlag
00C1 178 ReplaceFontChk:
00C1 F5 00 179 lda0 .SFDP
00C3 A7 00 180 cmpe #C_ZERO
00C5 07 00 00 181 brnz Replace
00C8 182 DispFontChk:
00C8 20 01 14 183 call Fulldisp
00CB 184 CalDispLibend:
00CB 24 185 ret
+ 186 ;------------------------------------------------------------------------
+ 187 ;------------------------------------------------------------------------
00CC 188 .DispInitial::
00CC 189 PP2One()
00D0 F3 10 190 lda #NORAM1DISP
00D2 FD 13 191 sta DispFlag
00D4 F3 90 192 lda #COMPSTATE|DEGSTATE
00D6 FD 14 193 sta StateFlag
00D8 F3 80 194 lda #DECMODE
00DA FD 01 195 sta BasenFlag
00DC F3 00 196 lda #C_ZERO
00DE F9 00 197 sta0 .SFDP
00E0 198 .DispInitial2::
00E0 F3 01 199 lda #MODESTART
00E2 F9 00 200 sta0 .ModeFlag
00E4 20 1C 70 201 call Clrfullmatrix
00E7 20 1C 95 202 call Clrfullseg
00EA 20 12 28 203 call DispAnsZero
00ED 204 PP2One()
00F1 F1 01 205 lda BasenFlag
00F3 CB F0 206 anda #MASKLO
00F5 FD 01 207 sta BasenFlag
00F7 F3 00 208 lda #C_ZERO
00F9 FD 00 209 sta Insetflag
00FB FD 0B 210 sta T1Flag
00FD F3 80 211 lda #STARTENG
00FF FD 0A 212 sta EngFlag
0101 F3 00 213 lda #C_ZERO
0103 FD 03 214 sta t1count
0105 FD FA 215 sta t1dispbf
0107 F3 0B 216 lda #C_11
0109 FD 00 217 sta GetCount
010B FD 02 218 sta blankCount
010D 20 15 BB 219 call Clr_signm
0110 20 15 CA 220 call Clr_expm
0113 24 221 ret
+ 222 ;------------------------------------------------------------------------
+ 223 ;------------------------------------------------------------------------
0114 224 Fulldisp:
0114 20 1C 70 225 call Clrfullmatrix
0117 226 fullchk:
0117 227 PP2One()
011B F3 0A 228 lda #C_TEN
011D FD 00 229 sta GetCount
+ 230
011F F3 02 231 lda #C_TWO
0121 FD 06 232 sta cmpPP
0123 F3 00 233 lda #C_ZERO
0125 FD 05 234 sta cmpDP
0127 235 fullloop:
0127 20 01 C2 236 call Addplace
012A 20 03 0C 237 call Chklength
012D 238 PP2One()
0131 F1 00 239 lda GetCount
0133 A9 08 240 suba displength
0135 FD 00 241 sta GetCount
0137 05 01 6C 242 brnc Alldisp
013A F5 00 243 lda0 .DataDP
013C A5 05 244 cmpe cmpDP
013E 07 01 27 245 brnz fullloop
0141 02 01 44 246 br Allnotfdisp
+ 247
0144 248 Allnotfdisp:
0144 249 PP2One()
0148 F3 0B 250 lda #C_11
014A FD 00 251 sta GetCount
+ 252
014C F3 02 253 lda #C_TWO
014E FD 06 254 sta cmpPP
0150 F3 00 255 lda #C_ZERO
0152 FD 05 256 sta cmpDP
0154 257 Allnotfloop:
0154 20 01 C2 258 call Addplace
0157 20 01 FA 259 call Font2disp
015A 260 PP2One()
015E F5 00 261 lda0 .DataDP
0160 A5 05 262 cmpe cmpDP
0162 07 01 54 263 brnz Allnotfloop
0165 F1 00 264 lda GetCount
0167 FD 02 265 sta blankCount
0169 02 01 AE 266 br Fulldispend1
+ 267
016C 268 Alldisp:
016C 269 PP2One()
0170 F3 0B 270 lda #C_11
0172 FD 00 271 sta GetCount
+ 272
0174 F3 02 273 lda #C_TWO
0176 FD 06 274 sta cmpPP
0178 F5 00 275 lda0 .DataDP
017A FD 05 276 sta cmpDP
017C 277 subloop:
017C 20 01 DF 278 call Decplace
017F 279 PP2One()
0183 20 03 0C 280 call Chklength
0186 F1 00 281 lda GetCount
0188 A9 08 282 suba displength
018A FD 00 283 sta GetCount
018C 05 01 92 284 brnc set2disp
018F 02 01 7C 285 br subloop
0192 286 set2disp:
0192 287 PP2One()
0196 F3 0B 288 lda #C_11
0198 FD 00 289 sta GetCount
019A 20 01 C2 290 call Addplace
019D 291 Fulldisploop:
019D 20 01 C2 292 call Addplace
01A0 20 01 FA 293 call Font2disp
01A3 294 PP2One()
01A7 F5 00 295 lda0 .DataDP
01A9 A5 05 296 cmpe cmpDP
01AB 07 01 9D 297 brnz Fulldisploop
01AE 298 Fulldispend1:
01AE F1 00 299 lda GetCount
01B0 FD 02 300 sta blankCount
01B2 301 Fulldispend:
01B2 24 302 ret
+ 303 ;------------------------------------------------------------------------
+ 304 ;------------------------------------------------------------------------
01B3 305 RightGetCount:
01B3 306 PP2One()
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -