📄 basensyntax.asl
字号:
+ 1 ;/subrutine name : Basensyntax.asm
+ 2 ;/user bady : HE
+ 3 ;/fast clock : 4Mhz
+ 4 ;/slow clock : 32768khz
+ 5 ;/programer : Alton
+B 00 01
+ 6 .area Basensyntax(code,rel)
0000 7 .Basensyntax::
0000 20 01 78 8 call .InitBasenSyntax
0003 9 .Bsyntax:
0003 F3 00 10 lda #>.INDP
0005 FC 28 11 sta PP
0007 F5 00 12 lda0 .INDP
0009 A5 00 13 cmpe .DataDP
000B 06 01 59 14 brz .EnddataChk
000E F3 02 15 lda #02h
0010 FC 28 16 sta PP
0012 F5 00 17 lda0 .INDP
0014 FC 21 18 sta DP
0016 F2 19 lda i
0017 F9 00 20 sta0 .DataBuf
0019 A7 B6 21 cmpe #0b6h
001B 07 00 28 22 brnz 1$
001E F5 00 23 lda0 .DataDP
0020 A7 01 24 cmpe #01h
0022 06 00 28 25 brz 1$
0025 02 01 4E 26 br .Errorsyntax
+ 27 1$:
0028 20 00 00 28 call .CheckMem
002B 20 00 00 29 call .Paricmp
002E F5 00 30 lda0 .INDP
0030 A7 00 31 cmpe #0h
0032 06 00 7C 32 brz .ChkHead
0035 F5 00 33 lda0 .DataBuf
0037 A7 B2 34 cmpe #0b2h
0039 06 00 A1 35 brz .ChkLC
003C A7 B3 36 cmpe #0b3h
003E 06 00 B5 37 brz .ChkRC
0041 F5 00 38 lda0 .AfterPari
0043 A7 01 39 cmpe #01h
0045 06 00 DD 40 brz .ChkMem
0048 A7 04 41 cmpe #04h
004A 06 00 F1 42 brz .ChkNum
004D A7 07 43 cmpe #07h
004F 06 01 05 44 brz .ChkLogic
0052 A7 08 45 cmpe #08h
0054 06 01 05 46 brz .ChkLogic
0057 A7 09 47 cmpe #09h
0059 06 01 05 48 brz .ChkLogic
005C A7 0C 49 cmpe #0ch
005E 06 01 23 50 brz .ChkAddDec
0061 A7 0D 51 cmpe #0dh
0063 06 01 30 52 brz .ChkMulDiv
0066 A7 0E 53 cmpe #0eh
0068 06 01 23 54 brz .ChkNotNeg
006B A7 0F 55 cmpe #0fh
006D 06 01 23 56 brz .ChkTrnCode
0070 57 .NextDP:
0070 F5 00 58 lda0 .DataBuf
0072 F9 00 59 sta0 .Buf1
0074 F5 00 60 lda0 .INDP
0076 1F 61 inca
0077 F9 00 62 sta0 .INDP
0079 02 00 03 63 br .Bsyntax
+ 64
+ 65
+ 66 ;-------------------------------------------
007C 67 .ChkHead:
007C F5 00 68 lda0 .DataBuf
007E A7 B2 69 cmpe #0b2h
0080 06 00 AD 70 brz .HeadLC
0083 A7 B3 71 cmpe #0b3h
0085 06 01 4E 72 brz .Errorsyntax
0088 F5 00 73 lda0 .AfterPari
008A A7 07 74 cmpe #07h
008C 06 01 4E 75 brz .Errorsyntax
008F A7 08 76 cmpe #08h
0091 06 01 4E 77 brz .Errorsyntax
0094 A7 09 78 cmpe #09h
0096 06 01 4E 79 brz .Errorsyntax
0099 A7 0D 80 cmpe #0dh
009B 06 01 4E 81 brz .Errorsyntax
009E 02 00 70 82 br .NextDP
00A1 83 .ChkLC:
+ 84
00A1 20 00 00 85 call .GetPari
00A4 F5 00 86 lda0 .Buf1
+ 87 ;cmpe #0b3h
+ 88 ;brz .Errorsyntax
00A6 F5 00 89 lda0 .AfterPari
00A8 A7 0F 90 cmpe #0fh
00AA 06 01 4E 91 brz .Errorsyntax
00AD 92 .HeadLC:
00AD F5 00 93 lda0 .LRcnt
00AF 1F 94 inca
00B0 F9 00 95 sta0 .LRcnt
00B2 02 00 70 96 br .NextDP
00B5 97 .ChkRC:
00B5 F5 00 98 lda0 .LRcnt
00B7 3F 99 deca
00B8 F9 00 100 sta0 .LRcnt
00BA A7 FF 101 cmpe #0ffh
00BC 06 01 4E 102 brz .Errorsyntax
00BF 20 00 00 103 call .GetPari
00C2 F5 00 104 lda0 .Buf1
00C4 A7 B2 105 cmpe #0b2h
00C6 06 01 4E 106 brz .Errorsyntax
00C9 F5 00 107 lda0 .AfterPari
00CB A7 00 108 cmpe #0h
00CD 06 00 70 109 brz .NextDP
00D0 A7 01 110 cmpe #01h
00D2 06 00 70 111 brz .NextDP
00D5 A7 04 112 cmpe #04h
00D7 06 00 70 113 brz .NextDP
00DA 02 01 4E 114 br .Errorsyntax
00DD 115 .ChkMem:
00DD 20 00 00 116 call .GetPari
00E0 F5 00 117 lda0 .Buf1
00E2 A7 B3 118 cmpe #0b3h
00E4 06 01 4E 119 brz .Errorsyntax
00E7 F5 00 120 lda0 .AfterPari
00E9 A7 0F 121 cmpe #0fh
00EB 06 01 4E 122 brz .Errorsyntax
00EE 02 00 70 123 br .NextDP
00F1 124 .ChkNum:
00F1 20 00 00 125 call .GetPari
00F4 F5 00 126 lda0 .Buf1
00F6 A7 B3 127 cmpe #0b3h ;)A
00F8 06 01 4E 128 brz .Errorsyntax
00FB F5 00 129 lda0 .AfterPari
00FD A7 01 130 cmpe #01h ;A8
00FF 06 01 4E 131 brz .Errorsyntax
0102 02 00 70 132 br .NextDP
0105 133 .ChkLogic:
0105 20 00 00 134 call .GetPari
0108 F5 00 135 lda0 .Buf1
010A A7 B2 136 cmpe #0b2h ;(And
010C 06 01 4E 137 brz .Errorsyntax
010F F5 00 138 lda0 .AfterPari
0111 A7 00 139 cmpe #0h
0113 06 00 70 140 brz .NextDP
0116 A7 01 141 cmpe #01h ;AndXor
0118 06 00 70 142 brz .NextDP
011B A7 04 143 cmpe #04h ;AndOR
011D 06 00 70 144 brz .NextDP
0120 02 01 4E 145 br .Errorsyntax
0123 146 .ChkTrnCode:
0123 147 .ChkNotNeg:
0123 148 .ChkAddDec:
0123 20 00 00 149 call .GetPari
0126 F5 00 150 lda0 .AfterPari
0128 A7 0F 151 cmpe #0fh ;D-3
012A 06 01 4E 152 brz .Errorsyntax
012D 02 00 70 153 br .NextDP
+ 154
0130 155 .ChkMulDiv:
0130 20 00 00 156 call .GetPari
0133 F5 00 157 lda0 .Buf1
0135 A7 B2 158 cmpe #0b2h
0137 06 01 4E 159 brz .Errorsyntax
013A F5 00 160 lda0 .AfterPari
013C A7 00 161 cmpe #0h
013E 06 00 70 162 brz .NextDP
0141 A7 01 163 cmpe #01h
0143 06 00 70 164 brz .NextDP
0146 A7 04 165 cmpe #04h
0148 06 00 70 166 brz .NextDP
014B 02 01 4E 167 br .Errorsyntax
+ 168
+ 169 ;-------------------------------------------
014E 170 .Errorsyntax:
014E F3 02 171 lda #02h
0150 F9 00 172 sta0 ErrorFlag
0152 F5 00 173 lda0 .INDP
0154 F9 00 174 sta0 .SFDP
0156 02 01 77 175 br .EndBsyntax
0159 176 .EnddataChk:
0159 F5 00 177 lda0 .DataBuf
015B A7 B2 178 cmpe #0b2h
015D 06 01 4E 179 brz .Errorsyntax
0160 20 00 00 180 call .GetPari
0163 F5 00 181 lda0 .AfterPari
0165 A7 00 182 cmpe #0h
0167 06 01 77 183 brz .EndBsyntax
016A A7 01 184 cmpe #01h
016C 06 01 77 185 brz .EndBsyntax
016F A7 04 186 cmpe #04h
0171 06 01 77 187 brz .EndBsyntax
0174 02 01 4E 188 br .Errorsyntax
0177 189 .EndBsyntax:
0177 24 190 ret
+ 191 ;-------------------------------------------
0178 192 .InitBasenSyntax:
0178 F3 00 193 lda #0h
017A F9 00 194 sta0 .BeforePari
017C F9 00 195 sta0 .AfterPari
017E F9 00 196 sta0 ErrorFlag
0180 F9 00 197 sta0 .LRcnt
0182 F9 00 198 sta0 .INDP
0184 24 199 ret
+
+Symbol Table
+
+ .AfterPari **** GX
+ 1 .Basensyntax 0000 GR
+ .BeforePari **** GX
+ 1 .Bsyntax 0003 R
+ .Buf1 **** GX
+ .CheckMem **** GX
+ 1 .ChkAddDec 0123 R
+ 1 .ChkHead 007C R
+ 1 .ChkLC 00A1 R
+ 1 .ChkLogic 0105 R
+ 1 .ChkMem 00DD R
+ 1 .ChkMulDiv 0130 R
+ 1 .ChkNotNeg 0123 R
+ 1 .ChkNum 00F1 R
+ 1 .ChkRC 00B5 R
+ 1 .ChkTrnCode 0123 R
+ .DataBuf **** GX
+ .DataDP **** GX
+ 1 .EndBsyntax 0177 R
+ 1 .EnddataChk 0159 R
+ 1 .Errorsyntax 014E R
+ .GetPari **** GX
+ 1 .HeadLC 00AD R
+ .INDP **** GX
+ 1 .InitBasenSyntax 0178 R
+ .LRcnt **** GX
+ 1 .NextDP 0070 R
+ .Paricmp **** GX
+ .SFDP **** GX
+ ErrorFlag **** GX
+
+
+Area Table
+
+ 0 . size 0 flags 0
+ 1 Basensyntax size 185 flags 1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -