| Line | Address | Object Code
| Label | F1 | N1 | B | F2 | N2 | Comments | Check
|
|---|
| 1 | 0 | | ; tape1.d/declare.t2 |
|
| 2 | 0 | | ;------------------- |
|
| 3 | 0 | | ; |
|
| 4 | 0 | | =1196 | |
|
| 5 | 1196 | | declaration:: | ; | |
|
| 6 | 1196 | | .loop: | ; | |
|
| 7 | 1196 | | ;.1196: |
|
| 8 | 1196 | | | call | | | | | ; | @1196
|
| 8+1 | 1196 | 7322411004503 | | lnk | advance.lnk | : | jmp | advance.ent | |
|
| 9 | 1197 | | declns.ent: | ; | |
|
| 10 | 1197 | 0602175 | | lod | bit39 | | | | ;mark as local to current block |
|
| 11 | 1197+ | 0402162 | | sto | typeinfo | | | | ;declaration type |
|
| 12 | 1198 | 0600600 | | lod | token | | | | ;token | @1198
|
| 13 | 1198+ | 1022261 | | jn | .err2 | | | | ;constant |
|
| 14 | 1199 | 0122176 | | sub | K9a | | | | ;=9 |
|
| 15 | 1199+ | 1022334 | | jn | .stat | | | | ;statement starter |
|
| 16 | 1200 | 0122200 | | sub | K8a | | | | ;=8 | @1200
|
| 17 | 1200+ | 1022263 | | jn | .decl | | | | ;declarer |
|
| 18 | 1201 | 0000000 | .err2: | o00 | 0 | | | | ; | @1201
|
| 19 | 1201+ | 1661044 | _err02: | lnk | errlnk | | | | ;error 2: bad start or end to statement, or |
|
| 20 | 1202 | | | ;symbol following own not real,int,bool,array, | |
|
| 21 | 1202 | | | ;or proc decl not followed by ;, or | |
|
| 22 | 1202 | | | ;name in decl not folowed by , or ;, or | |
|
| 23 | 1202 | | | ;decl following proc decl not proc decl. | |
|
| 24 | 1202 | | Error2: | ; | |
|
| 25 | 1202 | 0602205 | | lod | K2a | | | | ;=2 |
|
| 26 | 1202+ | 1001070 | | jmp | Error | | | | ; |
|
| 27 | 1203 | | ; |
|
| 28 | 1203 | | ;token is valid start for declaration |
|
| 29 | 1203 | | ; |
|
| 30 | 1203 | | .decl: | ; | |
|
| 31 | 1203 | 0003003002330 | | o00 | token | / | jmp | declsw-10 | ;switch on declarer |
|
| 32 | 1204 | | ; |
|
| 33 | 1204 | | ; own declaration |
|
| 34 | 1204 | | ; |
|
| 35 | 1204 | | .own: | ; | |
|
| 36 | 1204 | | | call | | | | | ;get next token | @1204
|
| 36+1 | 1204 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 37 | 1205 | 0600600 | | lod | token | | | | ;token |
|
| 38 | 1205+ | 0122231 | | sub | K11 | | | | ;should be int,real,boolean,array |
|
| 39 | 1206 | 1022261 | | jn | .err2 | | | | ;error if less |
|
| 40 | 1206+ | 0122211 | | sub | K4 | | | | ; |
|
| 41 | 1207 | 0003003022330 | | o00 | token | / | jn | declsw-10 | ; |
|
| 42 | 1208 | 1002261 | | jmp | .err2 | | | | ;not valid with own | @1208
|
| 43 | 1208+ | | ; |
|
| 44 | 1208+ | | ; boolean, integer or real keyword |
|
| 45 | 1208+ | | ; ACC contains mode bits |
|
| 46 | 1208+ | | ; |
|
| 47 | 1208+ | 0402163 | .svar: | sto | W1139 | | | | ;save type | @1208+
|
| 48 | 1209 | | | call | | | | | ;get next token |
|
| 48+1 | 1209 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 49 | 1210 | 0600600 | | lod | token | | | | ;load token | @1210
|
| 50 | 1210+ | 1042321 | | jz | .ident | | | | ;zero->identifier list |
|
| 51 | 1211 | 0122230 | | sub | K14 | | | | ;=14, [ARRAY] |
|
| 52 | 1211+ | 1043062 | | jz | L1586 | | | | ;yes, do array declaration |
|
| 53 | 1212 | 0122205 | | sub | K2a | | | | ;=2, [PROCEDURE] | @1212
|
| 54 | 1212+ | 1142275 | | jz | .tproc | | | | ;yes, do procedure declaration |
|
| 55 | 1213 | 1002261 | | jmp | .err2 | | | | ;otherwise error |
|
| 56 | 1213+ | | ; |
|
| 57 | 1213+ | | ; type procedure declaration |
|
| 58 | 1213+ | | ; |
|
| 59 | 1213+ | | .tproc: | ; | |
|
| 60 | 1213+ | 0602162 | | lod | typeinfo | | | | ; |
|
| 61 | 1214 | 1042261 | | jz | .err2 | | | | ;zero, error (own int proc) | @1214
|
| 62 | 1214+ | 0602163 | | lod | W1139 | | | | ;get type |
|
| 63 | 1215 | 0102232 | .proc: | add | procbit | | | | ;=02000000000000 add proc bit | @1215
|
| 64 | 1215+ | 0402163 | | sto | W1139 | | | | ;store updated type |
|
| 65 | 1216 | 1110637 | | jmp | .skip1 | | | | ;-->> | @1216
|
| 66 | 1216+ | | =4511+ | |
|
| 67 | 4511+ | | .skip1: | ; | |
|
| 68 | 4511+ | 0040000 | | o02 | 0 | | | | ;=1 |
|
| 69 | 4512 | 0410621 | | sto | W4497 | | | | ;set recovery flag=+1 | @4512
|
| 70 | 4512+ | 0602160 | | lod | dicpt | | | | ; |
|
| 71 | 4513 | 0410625 | | sto | W4501 | | | | ; |
|
| 72 | 4513+ | 1010626 | | jmp | statement.4502 | | | | ; |
|
| 73 | 4514 | | ; |
|
| 74 | 4514 | | =1216+ | |
|
| 75 | 1216+ | | .resumeproc: | ; | |
|
| 76 | 1216+ | 0040000 | | o02 | 0 | | | | ;=1 | @1216+
|
| 77 | 1217 | | | call | | | | | ;generate code? |
|
| 77+1 | 1217 | 7307175001640 | | lnk | GenInst.lnk | : | jmp | GenInst.ent | |
|
| 78 | 1218 | 1002470 | | jmp | .procparam | | | | ; | @1218
|
| 79 | 1218+ | | ; |
|
| 80 | 1218+ | | | pad | | | | | ; |
|
| 80+1 | 1218+ | 0000000 | | 00 | 0 | | | | |
|
| 81 | 1219 | | ;-------------------------------------------------------------------- |
|
| 82 | 1219 | | ; |
|
| 83 | 1219 | | .recover: | ; | |
|
| 84 | 1219 | 0600600 | | lod | token | | | | ; | @1219
|
| 85 | 1219+ | 0122200 | | sub | K8a | | | | ;=8 ['] |
|
| 86 | 1220 | 1042306 | | jz | .semicolon | | | | ; |
|
| 87 | 1220+ | 1002261 | | jmp | .err2 | | | | ; |
|
| 88 | 1221 | | ; |
|
| 89 | 1221 | | .comment: | ; | |
|
| 90 | 1221 | | | call | | | | | ;skip over comment |
|
| 90+1 | 1221 | 7312031002420 | | lnk | skipcomment.lnk | : | jmp | skipcomment.ent | |
|
| 91 | 1222 | | .semicolon: | ; | |
|
| 92 | 1222 | | | call | | | | | ;discard semicolon, get next |
|
| 92+1 | 1222 | 7322411004503 | | lnk | advance.lnk | : | jmp | advance.ent | |
|
| 93 | 1223 | 0600600 | | lod | token | | | | ; |
|
| 94 | 1223+ | 1022261 | | jn | .err2 | | | | ;constant not a good starter |
|
| 95 | 1224 | 0122176 | | sub | K9a | | | | ;=9 | @1224
|
| 96 | 1224+ | 1022333 | | jn | .stat2 | | | | ;statement starter |
|
| 97 | 1225 | 0122200 | | sub | K8a | | | | ;=8 |
|
| 98 | 1225+ | 1022313 | | jn | .decl2 | | | | ;declaration starter |
|
| 99 | 1226 | 1002261 | | jmp | .err2 | | | | ;others |
|
| 100 | 1226+ | | ; |
|
| 101 | 1226+ | 0000000 | | o00 | 0 | | | | ; |
|
| 102 | 1227 | | ; |
|
| 103 | 1227 | | ; keyword for declaration, switch to appropriate point |
|
| 104 | 1227 | | .decl2: | ; | |
|
| 105 | 1227 | 0003003002340 | | o00 | token | / | jmp | decl2sw-9 | ;switch on token | @1227
|
| 106 | 1228 | | ;-------------------------------------------------------------------- |
|
| 107 | 1228 | | ; param type: int, bool, real |
|
| 108 | 1228 | | ; |
|
| 109 | 1228 | | .pvar: | ; | |
|
| 110 | 1228 | 0102232 | | add | procbit | | | | ; | @1228
|
| 111 | 1228+ | 0402163 | | sto | W1139 | | | | ; |
|
| 112 | 1229 | | | call | | | | | ; |
|
| 112+1 | 1229 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 113 | 1230 | 0600600 | | lod | token | | | | ; | @1230
|
| 114 | 1230+ | 0122245 | | sub | K16 | | | | ;=16 [PROCEDURE] |
|
| 115 | 1231 | 1042470 | | jz | .procparam | | | | ; |
|
| 116 | 1231+ | 1002261 | | jmp | .err2 | | | | ; |
|
| 117 | 1232 | | ; |
|
| 118 | 1232 | | ; param type: procedure |
|
| 119 | 1232 | | ; |
|
| 120 | 1232 | 0402163 | .prp: | sto | W1139 | | | | ; | @1232
|
| 121 | 1232+ | 1002470 | | jmp | .procparam | | | | ; |
|
| 122 | 1233 | | ; |
|
| 123 | 1233 | | .ident: | ; | |
|
| 124 | 1233 | | | call | | | | | ;compile id list? | @1233
|
| 124+1 | 1233 | 7310725110636 | | lnk | L4510.lnk | : | jmp | L4510.ent | |
|
| 125 | 1234 | | .idlst: | ; recovery point from errors | |
|
| 126 | 1234 | 0602162 | | lod | typeinfo | | | | ; |
|
| 127 | 1234+ | 1142325 | | jz | .own2 | | | | ;own variables? -> |
|
| 128 | 1235 | 0602164 | | lod | idcount | | | | ;number of ids |
|
| 129 | 1235+ | 0502161 | | ads | wsptr | | | | ;add to workspace pointer |
|
| 130 | 1236 | 0602161 | | lod | wsptr | | | | ;pass current workspace pointer |
|
| 131 | 1236+ | 1002327 | | jmp | .define | | | | ;->to add it to dic info |
|
| 132 | 1237 | | ; |
|
| 133 | 1237 | 0000000 | | o00 | 0 | | | | |
|
| 134 | 1237+ | | ; |
|
| 135 | 1237+ | 0602164 | .own2: | lod | idcount | | | | ;number of ids in list | @1237+
|
| 136 | 1238 | 0502143 | | ads | W1123 | | | | ;add to global wksp size |
|
| 137 | 1238+ | 0602143 | | lod | W1123 | | | | ;pass current global pointer |
|
| 138 | 1239 | | ; |
|
| 139 | 1239 | | .define: | ; | |
|
| 140 | 1239 | 0102177 | | add | MaxInt | | | | ;=03777777777777 | @1239
|
| 141 | 1239+ | 0102163 | | add | W1139 | | | | ;idtype |
|
| 142 | 1240 | | | call | | | | | ;add to dictionary | @1240
|
| 142+1 | 1240 | 7312031002407 | | lnk | addtodic.lnk | : | jmp | addtodic.ent | |
|
| 143 | 1241 | 0600600 | .done: | lod | token | | | | ;token |
|
| 144 | 1241+ | 0122200 | | sub | K8a | | | | ;=8 ['] |
|
| 145 | 1242 | 1042254 | | jz | .loop | | | | ; apostrophe (semicolon) -> | @1242
|
| 146 | 1242+ | 1002261 | | jmp | .err2 | | | | ;error? |
|
| 147 | 1243 | | ;-------------------------------------------------------------------- |
|
| 148 | 1243 | | ; next token is statement - end of declarations |
|
| 149 | 1243 | | ; |
|
| 150 | 1243 | | .stat2: | ; | |
|
| 151 | 1243 | | | call | | | | | ; |
|
| 151+1 | 1243 | 7306371101531 | | lnk | putcode6.lnk | : | jmp | putcode6.ent | |
|
| 152 | 1244 | | .stat: | ; | |
|
| 153 | 1244 | 0602161 | | lod | wsptr | | | | ; | @1244
|
| 154 | 1244+ | 0122147 | | sub | W1127 | | | | ;wsplim |
|
| 155 | 1245 | 1022336 | | jn | .under | | | | ; |
|
| 156 | 1245+ | 0502147 | | ads | W1127 | | | | ; |
|
| 157 | 1246 | | .under: | ; | |
|
| 158 | 1246 | | | ret | | | | | ; | @1246
|
| 158+1 | 1246 | 0010643000001 | | o00 | declaration.lnk | / | jmp | 1 | |
|
| 159 | 1247 | | ; o00 Link15a /jmp 1 ;return |
|
| 160 | 1247 | | ;-------------------------------------------------------------------- |
|
| 161 | 1247 | | .comm2: | call | | | | | ;no longer referenced |
|
| 161+1 | 1247 | 7312031002420 | | lnk | skipcomment.lnk | : | jmp | skipcomment.ent | |
|
| 162 | 1248 | 1002254 | | jmp | .loop | | | | ; | @1248
|
| 163 | 1248+ | | ; |
|
| 164 | 1248+ | 0000000 | | o00 | 0 | | | | ; |
|
| 165 | 1249 | | ; |
|
| 166 | 1249 | | ;.1249: ;no longer referenced |
|
| 167 | 1249 | 1002337 | | jmp | .comm2 | | | | ; | @1249
|
| 168 | 1249+ | | ; |
|
| 169 | 1249+ | 0000000 | | o00 | 0 | | | | ; |
|
| 170 | 1250 | | ;-------------------------------------------------------------------- |
|
| 171 | 1250 | | ; switch list referenced at 1203 above, based on declarer |
|
| 172 | 1250 | | ; |
|
| 173 | 1250 | | declsw: | ; | |
|
| 174 | 1250 | 2610711002264 | | cls | typeinfo | : | jmp | .own | ; +10 own | @1250
|
| 175 | 1251 | 3011055102270 | | lod | boolbit | : | jmp | .svar | ; +11 boolean 0100000000000 |
|
| 176 | 1252 | 3011061102270 | | lod | intbit | : | jmp | .svar | ; +12 integer 0200000000000 | @1252
|
| 177 | 1253 | 3011065102270 | | lod | realbit | : | jmp | .svar | ; +13 real 0300000000000 |
|
| 178 | 1254 | 3011015003061 | | lod | rarrbit | : | jmp | L1585 | ; +14 array | @1254
|
| 179 | 1255 | 4012200000000 | | jmp | .switch | : | o00 | 0 | ; +15 switch |
|
| 180 | 1256 | 0600001002277 | | cla | 0 | : | jmp | .proc | ; +16 procedure | @1256
|
| 181 | 1257 | | ; |
|
| 182 | 1257 | | decl2sw: | ; | |
|
| 183 | 1257 | 4011424000000 | | jmp | .comment | : | o00 | 0 | ; +09 comment |
|
| 184 | 1258 | 4011304000000 | | jmp | .err2 | : | o00 | 0 | ; +10 own | @1258
|
| 185 | 1259 | 3011055002314 | | lod | boolbit | : | jmp | .pvar | ; +11 boolean |
|
| 186 | 1260 | 3011061002314 | | lod | intbit | : | jmp | .pvar | ; +12 integer | @1260
|
| 187 | 1261 | 3011065002314 | | lod | realbit | : | jmp | .pvar | ; +13 real |
|
| 188 | 1262 | 4011304000000 | | jmp | .err2 | : | o00 | 0 | ; +14 array | @1262
|
| 189 | 1263 | 4011304000000 | | jmp | .err2 | : | o00 | 0 | ; +15 switch |
|
| 190 | 1264 | 3011151002320 | | lod | procbit | : | jmp | .prp | ; +16 procedure | @1264
|
| 191 | 1265 | | ;-------------------------------------------------------------------- |
|
| 192 | 1265 | | ; switch declaration |
|
| 193 | 1265 | | ; |
|
| 194 | 1265 | | =1312 | |
|
| 195 | 1312 | | .switch: | ; | |
|
| 196 | 1312 | | | call | | | | | ;save stkp, then call gettoken | @1312
|
| 196+1 | 1312 | 7305105010635 | | lnk | L4509.lnk | : | jmp | L4509.ent | |
|
| 197 | 1313 | | | call | | | | | ;read ids |
|
| 197+1 | 1313 | 7310725002361 | | lnk | declid.lnk | : | jmp | declid.ent | |
|
| 198 | 1314 | 0602164 | | lod | idcount | | | | ;number of ids in list | @1314
|
| 199 | 1314+ | 0122207 | | sub | K1c | | | | ;=1 |
|
| 200 | 1315 | 1142444 | | jz | .idok | | | | ; |
|
| 201 | 1315+ | 1661044 | _err05: | lnk | errlnk | | | | ;error 5: missing := in switch |
|
| 202 | 1316 | 1002262 | | jmp | Error2 | | | | ; | @1316
|
| 203 | 1316+ | | ; |
|
| 204 | 1316+ | 0042201 | .idok: | o02 | K42 | | | | ;=42+1=>43 [:=] |
|
| 205 | 1317 | 0120600 | | sub | token | | | | ; |
|
| 206 | 1317+ | 1042447 | | jz | .swok | | | | ;OK, skip |
|
| 207 | 1318 | 1661044 | _err06: | lnk | errlnk | | | | ;error 6: missing := in switch | @1318
|
| 208 | 1318+ | 1002262 | | jmp | Error2 | | | | ;call error rtne |
|
| 209 | 1319 | | ; |
|
| 210 | 1319 | 0602144 | .swok: | lod | W1124 | | | | ; |
|
| 211 | 1319+ | 1320027 | | sll | 23 | | | | ; |
|
| 212 | 1320 | 0102216 | | add | swchbit | | | | ;=04400000000000 | @1320
|
| 213 | 1320+ | 0102143 | | add | W1123 | | | | ; |
|
| 214 | 1321 | | | call | | | | | ;add type info to dic |
|
| 214+1 | 1321 | 7312031002407 | | lnk | addtodic.lnk | : | jmp | addtodic.ent | |
|
| 215 | 1322 | 0602160 | | lod | dicpt | | | | ; | @1322
|
| 216 | 1322+ | 0342171 | | stc | W1145 | | | | ; |
|
| 217 | 1323 | | | call | | | | | ;add to dic |
|
| 217+1 | 1323 | 7312031002407 | | lnk | addtodic.lnk | : | jmp | addtodic.ent | |
|
| 218 | 1324 | | | call | | | | | ;discard :=, get 1st id | @1324
|
| 218+1 | 1324 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 219 | 1325 | | | call | | | | | ;read list of ids |
|
| 219+1 | 1325 | 7310725002361 | | lnk | declid.lnk | : | jmp | declid.ent | |
|
| 220 | 1326 | 0602164 | | lod | idcount | | | | ;number of ids in list | @1326
|
| 221 | 1326+ | 0502143 | | ads | W1123 | | | | ; |
|
| 222 | 1327 | 0602144 | | lod | W1124 | | | | ; |
|
| 223 | 1327+ | 1320027 | | sll | 23 | | | | ; |
|
| 224 | 1328 | 0102217 | | add | swlabit | | | | ;=04477777777777 | @1328
|
| 225 | 1328+ | 0102143 | | add | W1123 | | | | ; |
|
| 226 | 1329 | | | call | | | | | ; |
|
| 226+1 | 1329 | 7312031002407 | | lnk | addtodic.lnk | : | jmp | addtodic.ent | |
|
| 227 | 1330 | 0602164 | | lod | idcount | | | | ;number of ids in list | @1330
|
| 228 | 1330+ | 0102177 | | add | MaxInt | | | | ; |
|
| 229 | 1331 | 0010746400000 | | o00 | W1145 | / | sto | 0 | ; |
|
| 230 | 1332 | 1002331 | | jmp | declaration.done | | | | ;finished, check for semicolon | @1332
|
| 231 | 1332+ | | ; |
|
| 232 | 1332+ | 0000000 | | o00 | 0 | | | | ; |
|
| 233 | 1333 | | ;-------------------------------------------------------------------- |
|
| 234 | 1333 | | =1336 | |
|
| 235 | 1336 | | ; |
|
| 236 | 1336 | | .procparam: | ; | |
|
| 237 | 1336 | | | call | | | | | ;stack something, then gettoken | @1336
|
| 237+1 | 1336 | 7305105003014 | | lnk | L1548.lnk | : | jmp | L1548.ent | |
|
| 238 | 1337 | | | call | | | | | ; |
|
| 238+1 | 1337 | 7310725002361 | | lnk | declid.lnk | : | jmp | declid.ent | |
|
| 239 | 1338 | 0602160 | | lod | dicpt | | | | ; | @1338
|
| 240 | 1338+ | 0402171 | | sto | W1145 | | | | ; |
|
| 241 | 1339 | 0602163 | | lod | W1139 | | | | ; |
|
| 242 | 1339+ | 0102161 | | add | wsptr | | | | ; |
|
| 243 | 1340 | 0102175 | | add | bit39 | | | | ; | @1340
|
| 244 | 1340+ | 0102234 | | add | Bit32 | | | | ;=00020000000000 |
|
| 245 | 1341 | | | call | | | | | ; |
|
| 245+1 | 1341 | 7312031002407 | | lnk | addtodic.lnk | : | jmp | addtodic.ent | |
|
| 246 | 1342 | | | call | | | | | ;call 940 | @1342
|
| 246+1 | 1342 | 7307255001654 | | lnk | putNop.lnk | : | jmp | putNop.ent | |
|
| 247 | 1343 | 0602175 | | lod | bit39 | | | | ; |
|
| 248 | 1343+ | 0102145 | | add | ObjPC | | | | ; |
|
| 249 | 1344 | | | call | | | | | ; | @1344
|
| 249+1 | 1344 | 7312031002407 | | lnk | addtodic.lnk | : | jmp | addtodic.ent | |
|
| 250 | 1345 | 0602175 | | lod | bit39 | | | | ; |
|
| 251 | 1345+ | 0402172 | | sto | Link15c | | | | ; |
|
| 252 | 1346 | 0402173 | | sto | W1147 | | | | ; | @1346
|
| 253 | 1346+ | 0442161 | | inc | wsptr | | | | ; |
|
| 254 | 1347 | 0602160 | | lod | dicpt | | | | ; |
|
| 255 | 1347+ | 0402174 | | sto | W1148 | | | | ; |
|
| 256 | 1348 | 0600600 | | lod | token | | | | ; | @1348
|
| 257 | 1348+ | 0122200 | | sub | K8a | | | | ;=8, ['] |
|
| 258 | 1349 | 1042655 | | jz | .lp3k | | | | ;yes, no formal parameters |
|
| 259 | 1349+ | 0122235 | | sub | K39b | | | | ;=39, =>[(] |
|
| 260 | 1350 | 1042507 | | jz | .params | | | | ;yes, get parameter list | @1350
|
| 261 | 1350+ | 1002541 | | jmp | _err07 | | | | ; |
|
| 262 | 1351 | | ; |
|
| 263 | 1351 | | ; process parameter list |
|
| 264 | 1351 | | ; |
|
| 265 | 1351 | | .params: | ; | |
|
| 266 | 1351 | | | call | | | | | ;discard [(] | @1351
|
| 266+1 | 1351 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 267 | 1352 | | | call | | | | | ;get id list (formal params) |
|
| 267+1 | 1352 | 7310725003000 | | lnk | declid1.lnk | : | jmp | declid1.ent | |
|
| 268 | 1353 | | .1353: | ; | |
|
| 269 | 1353 | 0042204 | | o02 | K47a | | | | ;=47+1=>48, [)] |
|
| 270 | 1353+ | 0120600 | | sub | token | | | | ;check closing delimiter |
|
| 271 | 1354 | 1042513 | | jz | .closeOK | | | | ;OK, skip | @1354
|
| 272 | 1354+ | 1002541 | | jmp | _err07 | | | | ;missing ) in param list |
|
| 273 | 1355 | | ; |
|
| 274 | 1355 | | .closeOK: | ; | |
|
| 275 | 1355 | | | call | | | | | ;discard ), get next token | @1355
|
| 275+1 | 1355 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 276 | 1356 | 0600600 | | lod | token | | | | ;check for semicolon |
|
| 277 | 1356+ | 0122200 | | sub | K8a | | | | ;=8, ['] |
|
| 278 | 1357 | 1042516 | | jz | .semiOK | | | | ;OK, skip | @1357
|
| 279 | 1357+ | 1003010 | | jmp | .1544 | | | | ;missing semicolon? |
|
| 280 | 1358 | | ; |
|
| 281 | 1358 | | .semiOK: | ; | |
|
| 282 | 1358 | 0602164 | | lod | idcount | | | | ;number of params in list | @1358
|
| 283 | 1358+ | 0125036 | | sub | W2590 | | | | ; |
|
| 284 | 1359 | 1022520 | | jn | .idsOK | | | | ; |
|
| 285 | 1359+ | 1102751 | | jmp | _err08a | | | | ; |
|
| 286 | 1360 | | ; |
|
| 287 | 1360 | | .idsOK: | ; | |
|
| 288 | 1360 | 0602164 | | lod | idcount | | | | ;number of params | @1360
|
| 289 | 1360+ | 1320034 | | sll | 28 | | | | ; |
|
| 290 | 1361 | 0010762500001 | | o00 | W1148 | / | ads | 1 | ; |
|
| 291 | 1362 | 0602174 | | lod | W1148 | | | | ; | @1362
|
| 292 | 1362+ | 0402166 | | sto | W1142 | | | | ; |
|
| 293 | 1363 | 0042160 | | o02 | dicpt | | | | ; |
|
| 294 | 1363+ | 0402167 | | sto | W1143 | | | | ; |
|
| 295 | 1364 | | .ploop: | ; | |
|
| 296 | 1364 | 0010732600000 | | o00 | W1142 | / | lod | 0 | ; | @1364
|
| 297 | 1365 | | | call | | | | | ; |
|
| 297+1 | 1365 | 7312031002407 | | lnk | addtodic.lnk | : | jmp | addtodic.ent | |
|
| 298 | 1366 | 0642161 | | lis | wsptr | | | | ; | @1366
|
| 299 | 1366+ | 0102236 | | add | Bit33 | | | | ; |
|
| 300 | 1367 | | | call | | | | | ; |
|
| 300+1 | 1367 | 7312031102613 | | lnk | L1419P.lnk | : | jmp | L1419P.ent | |
|
| 301 | 1368 | 0040000 | | o02 | 0 | | | | ; | @1368
|
| 302 | 1368+ | 0762166 | | o37 | W1142 | | | | ; |
|
| 303 | 1369 | 0162167 | | bus | W1143 | | | | ; |
|
| 304 | 1369+ | 1022524 | | jn | .ploop | | | | ; |
|
| 305 | 1370 | 0040000 | | o02 | 0 | | | | ;=1 | @1370
|
| 306 | 1370+ | 0000000 | | o00 | 0 | | | | ; |
|
| 307 | 1371 | 0010736420000 | | o00 | W1143 | / | stn | 0 | ; |
|
| 308 | 1372 | | .specs: | ; | |
|
| 309 | 1372 | | | call | | | | | ;get token following ' | @1372
|
| 309+1 | 1372 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 310 | 1373 | 0600600 | | lod | token | | | | ; |
|
| 311 | 1373+ | 0122237 | | sub | K19b | | | | ;=19 [VALUE] |
|
| 312 | 1374 | 1042537 | | jz | .value | | | | ;yes, process value list | @1374
|
| 313 | 1374+ | 1102760 | | jmp | .1520P | | | | ;check for type specs |
|
| 314 | 1375 | | ; |
|
| 315 | 1375 | | .value: | ; | |
|
| 316 | 1375 | | | call | | | | | ;discard VALUE/comma, get next token | @1375
|
| 316+1 | 1375 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 317 | 1376 | 0600600 | | lod | token | | | | ; | @1376
|
| 318 | 1376+ | 1042543 | | jz | .valid | | | | ;identifier, ->OK |
|
| 319 | 1377 | 1661044 | _err07: | lnk | errlnk | | | | ;error 7: in a procedure declaration: |
|
| 320 | 1377+ | | | ;a) item after proc name not ( or ; | |
|
| 321 | 1377+ | | | ;b) not ; or ) after formal params | |
|
| 322 | 1377+ | | | ;c) list in value of spec has bad form | |
|
| 323 | 1377+ | | | ;d) spec before value part | |
|
| 324 | 1377+ | 1002262 | | jmp | Error2 | | | | ;call error rtne |
|
| 325 | 1378 | 1002542 | .halt: | jmp | .halt | | | | ;dynamic halt | @1378
|
| 326 | 1378+ | | ; |
|
| 327 | 1378+ | | | pad | | | | | ; |
|
| 327+1 | 1378+ | 0000000 | | 00 | 0 | | | | |
|
| 328 | 1379 | | ; |
|
| 329 | 1379 | | ; identifier in VALUE list |
|
| 330 | 1379 | | ; |
|
| 331 | 1379 | | .valid: | ; | |
|
| 332 | 1379 | | | call | | | | | ; lookup identifier | @1379
|
| 332+1 | 1379 | 7316111003423 | | lnk | lookupid.lnk | : | jmp | lookupid.ent | |
|
| 333 | 1380 | 1142754 | | jz | _err10a | | | | ;identifier not found |
|
| 334 | 1380+ | 0042236 | | o02 | Bit33 | | | | ; |
|
| 335 | 1381 | 0116142457777 | | neg | W1816 | / | ans | -1 | ; |
|
| 336 | 1382 | | .errrec: | ; | |
|
| 337 | 1382 | | | call | | | | | ;get next token | @1382
|
| 337+1 | 1382 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 338 | 1383 | 0040600 | | o02 | token | | | | ;token+1 |
|
| 339 | 1383+ | 0122201 | | sub | K42 | | | | ;=42, [,]+1 |
|
| 340 | 1384 | 1042537 | | jz | .value | | | | ;comma, back for more | @1384
|
| 341 | 1384+ | 0102241 | | add | K33 | | | | ;=33, [']+1 |
|
| 342 | 1385 | 1042552 | | jz | .valsemi | | | | ;semicolon, check for other specs |
|
| 343 | 1385+ | 1002541 | | jmp | _err07 | | | | ;otherwise, error |
|
| 344 | 1386 | | ; |
|
| 345 | 1386 | | ; end of specification list, see if more specs follow |
|
| 346 | 1386 | | ; |
|
| 347 | 1386 | | .valsemi: | ; | |
|
| 348 | 1386 | | ;.1386: |
|
| 349 | 1386 | | | call | | | | | ;discard ', get next token | @1386
|
| 349+1 | 1386 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 350 | 1387 | | .1387: | ; | |
|
| 351 | 1387 | 0600600 | | lod | token | | | | ; |
|
| 352 | 1387+ | 1022541 | | jn | _err07 | | | | ;constant |
|
| 353 | 1388 | 0122237 | | sub | K19b | | | | ;=19 | @1388
|
| 354 | 1388+ | 1122555 | | jn | .valok | | | | ;declaration or statement |
|
| 355 | 1389 | 1002541 | | jmp | _err07 | | | | ;error |
|
| 356 | 1389+ | | ; |
|
| 357 | 1389+ | | .valok: | ; | |
|
| 358 | 1389+ | 0102240 | | add | K10b | | | | ;=10 |
|
| 359 | 1390 | 1022606 | | jn | .stat3 | | | | ;statement | @1390
|
| 360 | 1390+ | | | pad | | | | | ; |
|
| 360+1 | 1390+ | 0000000 | | 00 | 0 | | | | |
|
| 361 | 1391 | 0003003002755 | | o00 | token | / | jmp | specsw-9 | ;switch on declarer |
|
| 362 | 1392 | | ; |
|
| 363 | 1392 | | | pad | | | | | |
|
| 363+1 | 1392 | 0000000 | | 00 | 0 | | | | |
|
| 364 | 1392+ | | ; |
|
| 365 | 1392+ | | ; boolean, integer, real (simple) specification |
|
| 366 | 1392+ | | ; |
|
| 367 | 1392+ | | .ssp: | ; | |
|
| 368 | 1392+ | 0402162 | | sto | typeinfo | | | | ;store type | @1392+
|
| 369 | 1393 | | | call | | | | | ;get next token |
|
| 369+1 | 1393 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 370 | 1394 | 0600600 | | lod | token | | | | ; | @1394
|
| 371 | 1394+ | 0122230 | | sub | K14 | | | | ;=14, [ARRAY]? |
|
| 372 | 1395 | 1042564 | | jz | .aspec | | | | ;yes, ->typed array spec. |
|
| 373 | 1395+ | 1002567 | | jmp | .sspec | | | | ;scalar type spec |
|
| 374 | 1396 | | ; |
|
| 375 | 1396 | | ; handle array declaration |
|
| 376 | 1396 | | ; |
|
| 377 | 1396 | 0602202 | .aspec: | lod | arrbit | | | | ;add array bit | @1396
|
| 378 | 1396+ | 0502162 | | ads | typeinfo | | | | ;into type |
|
| 379 | 1397 | 1002566 | | jmp | .cspec | | | | ;join common section |
|
| 380 | 1397+ | | ; |
|
| 381 | 1397+ | | ; array or string |
|
| 382 | 1397+ | | .asp: | ; | |
|
| 383 | 1397+ | 0402162 | | sto | typeinfo | | | | ;store type bits |
|
| 384 | 1398 | | .cspec: | ; | |
|
| 385 | 1398 | | | call | | | | | ;discard type keyword | @1398
|
| 385+1 | 1398 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 386 | 1399 | | .sspec: | ; | |
|
| 387 | 1399 | 0600600 | | lod | token | | | | ;get next token |
|
| 388 | 1399+ | 1042571 | | jz | .idspec | | | | ;identifier |
|
| 389 | 1400 | 1002541 | | jmp | _err07 | | | | ;error | @1400
|
| 390 | 1400+ | | ; |
|
| 391 | 1400+ | 0000000 | | o00 | 0 | | | | |
|
| 392 | 1401 | | ; |
|
| 393 | 1401 | | .idspec: | ; | |
|
| 394 | 1401 | | | call | | | | | ;lookup identifier | @1401
|
| 394+1 | 1401 | 7316111003423 | | lnk | lookupid.lnk | : | jmp | lookupid.ent | |
|
| 395 | 1402 | 1142756 | | jz | _err11a | | | | ; |
|
| 396 | 1402+ | 0602221 | | lod | typbits | | | | ;=03700000000000 |
|
| 397 | 1403 | 0016142057777 | | o00 | W1816 | / | and | -1 | ; | @1403
|
| 398 | 1404 | 1142575 | | jz | .idspok | | | | ; |
|
| 399 | 1404+ | 0040000 | | o02 | 0 | | | | ;=1 |
|
| 400 | 1405 | 1002757 | | jmp | _err11 | | | | ;name not a param | @1405
|
| 401 | 1405+ | | ; |
|
| 402 | 1405+ | | .idspok: | ; | |
|
| 403 | 1405+ | 0602162 | | lod | typeinfo | | | | ; |
|
| 404 | 1406 | 0016142677777 | | o00 | W1816 | / | las | -1 | ; | @1406
|
| 405 | 1407 | 0102162 | | add | typeinfo | | | | ; |
|
| 406 | 1407+ | 0403427 | | sto | idptr | | | | ; |
|
| 407 | 1408 | 0063023 | | and | W1555 | | | | ;=03777740000000 | @1408
|
| 408 | 1408+ | 0122252 | | sub | strbit | | | | ;string bits |
|
| 409 | 1409 | 1103016 | | jmp | .skip2 | | | | ; |
|
| 410 | 1409+ | | =1550+ | |
|
| 411 | 1550+ | | .skip2: | ; | |
|
| 412 | 1550+ | 1142751 | | jz | _err08a | | | | ;type not allowed as param |
|
| 413 | 1551 | 0102236 | | add | Bit33 | | | | ;=00040000000000 | @1551
|
| 414 | 1551+ | 0062243 | | and | MskArgTp | | | | ;=03740000000000 |
|
| 415 | 1552 | 1142751 | | jz | _err08a | | | | ;more than 64 params |
|
| 416 | 1552+ | 0603427 | | lod | idptr | | | | ; |
|
| 417 | 1553 | 0062242 | | and | W1186 | | | | ;=03440000000000 |
|
| 418 | 1553+ | 0122236 | | sub | Bit33 | | | | ;=00040000000000 |
|
| 419 | 1554 | 1142601 | | jz | .sp1 | | | | ; | @1554
|
| 420 | 1554+ | 1002602 | | jmp | .sp2 | | | | ; |
|
| 421 | 1555 | | ; |
|
| 422 | 1555 | | =1409+ | |
|
| 423 | 1409+ | | ; |
|
| 424 | 1409+ | | .sp1: | ; | |
|
| 425 | 1409+ | 0542172 | | cls | Link15c | | | | ; |
|
| 426 | 1410 | | .sp2: | ; | |
|
| 427 | 1410 | | | call | | | | | ;get next token | @1410
|
| 427+1 | 1410 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 428 | 1411 | 0040600 | | o02 | token | | | | ;token+1 |
|
| 429 | 1411+ | 0122201 | | sub | K42 | | | | ;=42, [,]+1 |
|
| 430 | 1412 | 1042566 | | jz | .cspec | | | | ;comma, get another ident | @1412
|
| 431 | 1412+ | 0102241 | | add | K33 | | | | ;=33, =>[']+1 |
|
| 432 | 1413 | 1042552 | | jz | .valsemi | | | | ;semicolon, end of specification |
|
| 433 | 1413+ | 1002541 | | jmp | _err07 | | | | ;otherwise error |
|
| 434 | 1414 | | ;-------------------------------------------------------------------- |
|
| 435 | 1414 | | ; statement starter after specifications |
|
| 436 | 1414 | | ; first check all parameters are specified |
|
| 437 | 1414 | | ; |
|
| 438 | 1414 | | .stat3: | ; | |
|
| 439 | 1414 | 0010736540000 | | o00 | W1143 | / | cls | 0 | ;add stopper to list | @1414
|
| 440 | 1415 | 0602160 | | lod | dicpt | | | | ; |
|
| 441 | 1415+ | 0402167 | | sto | W1143 | | | | ; |
|
| 442 | 1416 | | .sploop: | ; | |
|
| 443 | 1416 | 2210736600000 | | inc | W1143 | / | lod | 0 | ;get param info | @1416
|
| 444 | 1417 | 1043005 | | jz | .spdone | | | | ;end of list, all params OK |
|
| 445 | 1417+ | 0062221 | | and | typbits | | | | ;=03700000000000 |
|
| 446 | 1418 | 1142753 | | jz | _err08b | | | | ;no type specified | @1418
|
| 447 | 1418+ | 0442167 | | inc | W1143 | | | | ;skip name entry |
|
| 448 | 1419 | 1002610 | | jmp | .sploop | | | | ;and try next one |
|
| 449 | 1419+ | | ;-------------------------------------------------------------------- |
|
| 450 | 1419+ | | L1419P.ent: | ; | |
|
| 451 | 1419+ | 0102175 | | add | bit39 | | | | ; |
|
| 452 | 1420 | 1002407 | | jmp | addtodic.ent | | | | ; | @1420
|
| 453 | 1420+ | | ;-------------------------------------------------------------------- |
|
| 454 | 1420+ | | ; |
|
| 455 | 1420+ | | =1541 | |
|
| 456 | 1541 | | ; finished procedure heading, looking for statement/block |
|
| 457 | 1541 | | ; |
|
| 458 | 1541 | | .spdone: | ; | |
|
| 459 | 1541 | | | call | | | | | ; |
|
| 459+1 | 1541 | 7322411004504 | | lnk | advance2.lnk | : | jmp | advance2.ent | |
|
| 460 | 1542 | 1102614 | | jmp | .skip3 | | | | ; | @1542
|
| 461 | 1542+ | | =1420+ | |
|
| 462 | 1420+ | | .skip3: | ; | |
|
| 463 | 1420+ | 0602172 | | lod | Link15c | | | | ; |
|
| 464 | 1421 | 1022617 | | jn | .lp3a | | | | ;skip over next bit |
|
| 465 | 1421+ | 1102730 | | jmp | .skip4 | | | | ;-->> |
|
| 466 | 1422 | | =1496+ | |
|
| 467 | 1496+ | | .skip4: | ; | |
|
| 468 | 1496+ | 0042233 | | o02 | Bit21 | | | | ;=00000004000000 | @1496+
|
| 469 | 1497 | 0702152 | | las | W1130 | | | | ; |
|
| 470 | 1497+ | 0062212 | | and | B19.28 | | | | ;=00001777000000 |
|
| 471 | 1498 | 0401422 | | sto | GenAdr | | | | ; | @1498
|
| 472 | 1498+ | 0602226 | | lod | K6 | | | | ;=6 |
|
| 473 | 1499 | | | call | | | | | ; |
|
| 473+1 | 1499 | 7307175001640 | | lnk | GenInst.lnk | : | jmp | GenInst.ent | |
|
| 474 | 1500 | 0010746600000 | | o00 | W1145 | / | lod | 0 | ; | @1500
|
| 475 | 1501 | 0062244 | | and | M1188 | | | | ; |
|
| 476 | 1501+ | 0401422 | | sto | GenAdr | | | | ; |
|
| 477 | 1502 | 0602226 | | lod | K6 | | | | ;=6 | @1502
|
| 478 | 1502+ | 1002711 | | jmp | .skip5 | | | | ;-->> |
|
| 479 | 1503 | | =1481 | |
|
| 480 | 1481 | | .skip5: | ; | |
|
| 481 | 1481 | | | call | | | | | ; | @1481
|
| 481+1 | 1481 | 7307175001640 | | lnk | GenInst.lnk | : | jmp | GenInst.ent | |
|
| 482 | 1482 | 0602236 | | lod | Bit33 | | | | ; |
|
| 483 | 1482+ | 1002616 | | jmp | .skip6 | | | | ;-->> |
|
| 484 | 1483 | | =1422 | |
|
| 485 | 1422 | | .skip6: | ; | |
|
| 486 | 1422 | 0010762500002 | | o00 | W1148 | / | ads | 2 | ; | @1422
|
| 487 | 1423 | | .lp3a: | ; | |
|
| 488 | 1423 | 0602164 | | lod | idcount | | | | ;number of ids in list |
|
| 489 | 1423+ | 0162174 | | bus | W1148 | | | | ; |
|
| 490 | 1424 | 0402166 | | sto | W1142 | | | | ; | @1424
|
| 491 | 1424+ | | .lp3b: | ; | |
|
| 492 | 1424+ | 0602164 | | lod | idcount | | | | ;number of ids in list |
|
| 493 | 1425 | 0122226 | | sub | K6 | | | | ;=6 |
|
| 494 | 1425+ | 1122623 | | jn | .lp3c | | | | ; |
|
| 495 | 1426 | 0042176 | | o02 | K9a | | | | ;=9+1=>10 | @1426
|
| 496 | 1426+ | 1002625 | | jmp | .lp3d | | | | ; |
|
| 497 | 1427 | | ; |
|
| 498 | 1427 | | | pad | | | | | ; |
|
| 498+1 | 1427 | 0000000 | | 00 | 0 | | | | |
|
| 499 | 1427+ | | ; |
|
| 500 | 1427+ | | .lp3c: | ; | |
|
| 501 | 1427+ | 0040000 | | o02 | 0 | | | | ; |
|
| 502 | 1428 | 0162164 | | bus | idcount | | | | ;number of ids in list | @1428
|
| 503 | 1428+ | 1320001 | | sll | 1 | | | | ;double number |
|
| 504 | 1429 | | .lp3d: | ; | |
|
| 505 | 1429 | 0422167 | | stn | W1143 | | | | ;store (negated) |
|
| 506 | 1429+ | 0542170 | | cls | idpt1 | | | | ;clear pointer |
|
| 507 | 1430 | | .lp3e: | ; | |
|
| 508 | 1430 | 0602167 | | lod | W1143 | | | | ; | @1430
|
| 509 | 1430+ | 0102166 | | add | W1142 | | | | ; |
|
| 510 | 1431 | 2010726577777 | | sto | Link15b | / | lod | -1 | ; |
|
| 511 | 1432 | 0062243 | | and | MskArgTp | | | | ; | @1432
|
| 512 | 1432+ | 0202170 | | exa | idpt1 | | | | ; |
|
| 513 | 1433 | 1220006 | | srl | 6 | | | | ; |
|
| 514 | 1433+ | 0702170 | | las | idpt1 | | | | ; |
|
| 515 | 1434 | 0062242 | | and | W1186 | | | | ; | @1434
|
| 516 | 1434+ | 0122202 | | sub | arrbit | | | | ; |
|
| 517 | 1435 | 1042634 | | jz | .lp3f | | | | ; |
|
| 518 | 1435+ | 1102643 | | jmp | .lp3h | | | | ; |
|
| 519 | 1436 | | ; |
|
| 520 | 1436 | | .lp3f: | ; | |
|
| 521 | 1436 | 0602173 | | lod | W1147 | | | | ; | @1436
|
| 522 | 1436+ | 1042637 | | jz | .lp3g | | | | ; |
|
| 523 | 1437 | 0542173 | | cls | W1147 | | | | ; |
|
| 524 | 1437+ | | | nop | | | | | ; |
|
| 524+1 | 1437+ | 1002636 | | jmp | .1 | | | | |
|
| 524+2 | 1438 | | .1: | ; | |
|
| 525 | 1438 | | | call | | | | | ;generate Enter Block call | @1438
|
| 525+1 | 1438 | 7320121003403 | | lnk | GenEB.lnk | : | jmp | GenEB.ent | |
|
| 526 | 1439 | | .lp3g: | ; | |
|
| 527 | 1439 | 0010726577777 | | o00 | Link15b | / | lod | -1 | ; |
|
| 528 | 1440 | 0062244 | | and | M1188 | | | | ; | @1440
|
| 529 | 1440+ | 0404031 | | sto | IdInfo | | | | ; |
|
| 530 | 1441 | 0603517 | | lod | GPs+42 | | | | ; |
|
| 531 | 1441+ | 0000000 | | o00 | 0 | | | | ; |
|
| 532 | 1442 | | | call | | | | | ; | @1442
|
| 532+1 | 1442 | 7320121004033 | | lnk | gencode.lnk | : | jmp | gencode.ent | |
|
| 533 | 1443 | 1002645 | | jmp | .lp3i | | | | ; |
|
| 534 | 1443+ | | ; |
|
| 535 | 1443+ | | .lp3h: | ; | |
|
| 536 | 1443+ | 1022645 | | jn | .lp3i | | | | ; |
|
| 537 | 1444 | 0010726557777 | | o00 | Link15b | / | o27 | -1 | ; | @1444
|
| 538 | 1445 | | .lp3i: | ; | |
|
| 539 | 1445 | 0602205 | | lod | K2a | | | | ; |
|
| 540 | 1445+ | 0702167 | | las | W1143 | | | | ; |
|
| 541 | 1446 | 1022626 | | jn | .lp3e | | | | ; | @1446
|
| 542 | 1446+ | | ; end of loop |
|
| 543 | 1446+ | 0602170 | | lod | idpt1 | | | | ; |
|
| 544 | 1447 | 0000000 | | o00 | 0 | | | | ; |
|
| 545 | 1447+ | 0102175 | | add | bit39 | | | | ; |
|
| 546 | 1448 | 0010762400000 | | o00 | W1148 | / | sto | 0 | ; | @1448
|
| 547 | 1449 | 0040000 | | o02 | 0 | | | | ;=1 |
|
| 548 | 1449+ | 0562174 | | o27 | W1148 | | | | ; |
|
| 549 | 1450 | 0602226 | | lod | K6 | | | | ;=6 | @1450
|
| 550 | 1450+ | 0122164 | | sub | idcount | | | | ;number of ids in list |
|
| 551 | 1451 | 1022654 | | jn | .lp3j | | | | ; |
|
| 552 | 1451+ | 1102660 | | jmp | .1456P | | | | ; |
|
| 553 | 1452 | | ; |
|
| 554 | 1452 | 0422164 | .lp3j: | stn | idcount | | | | ;number of ids in list | @1452
|
| 555 | 1452+ | 1103003 | | jmp | .1539P | | | | ; |
|
| 556 | 1453 | | ; |
|
| 557 | 1453 | | .lp3k: | ; | |
|
| 558 | 1453 | | | call | | | | | ; |
|
| 558+1 | 1453 | 7322411004503 | | lnk | advance.lnk | : | jmp | advance.ent | |
|
| 559 | 1454 | 0600600 | | lod | token | | | | ; | @1454
|
| 560 | 1454+ | 1022541 | | jn | _err07 | | | | ;constant, error |
|
| 561 | 1455 | 0162176 | | bus | K9a | | | | ;=9 |
|
| 562 | 1455+ | 1022541 | | jn | _err07 | | | | ;not statement starter, error |
|
| 563 | 1456 | 1043024 | | jz | .1556 | | | | ;dummy statement | @1456
|
| 564 | 1456+ | | .1456P: | ; | |
|
| 565 | 1456+ | 0602163 | | lod | W1139 | | | | ; |
|
| 566 | 1457 | 0062215 | | and | realbit | | | | ; |
|
| 567 | 1457+ | 1142662 | | jz | .1458P | | | | ; |
|
| 568 | 1458 | 0442161 | | inc | wsptr | | | | ; | @1458
|
| 569 | 1458+ | | .1458P: | ; | |
|
| 570 | 1458+ | 0742147 | | lzs | W1127 | | | | ; |
|
| 571 | 1459 | | | call | | | | | ; |
|
| 571+1 | 1459 | 7312031002415 | | lnk | stack.lnk | : | jmp | stack.ent | |
|
| 572 | 1460 | 0602172 | | lod | Link15c | | | | ; | @1460
|
| 573 | 1460+ | 1220001 | | srl | 1 | | | | ; |
|
| 574 | 1461 | 0402167 | | sto | W1143 | | | | ; |
|
| 575 | 1461+ | 0602163 | | lod | W1139 | | | | ; |
|
| 576 | 1462 | 1003001 | | jmp | .1537 | | | | ; | @1462
|
| 577 | 1462+ | | ; |
|
| 578 | 1462+ | | .1462P: | ; | |
|
| 579 | 1462+ | 0602175 | | lod | bit39 | | | | ; |
|
| 580 | 1463 | | .1463: | ; | |
|
| 581 | 1463 | 0102167 | | add | W1143 | | | | ; |
|
| 582 | 1463+ | 1220001 | | srl | 1 | | | | ; |
|
| 583 | 1464 | 0102173 | | add | W1147 | | | | ; | @1464
|
| 584 | 1464+ | 0402167 | | sto | W1143 | | | | ; |
|
| 585 | 1465 | 0602174 | | lod | W1148 | | | | ; |
|
| 586 | 1465+ | 1320024 | | sll | 20 | | | | ; |
|
| 587 | 1466 | 0102171 | | add | W1145 | | | | ; | @1466
|
| 588 | 1466+ | 0102167 | | add | W1143 | | | | ; |
|
| 589 | 1467 | | | call | | | | | ; |
|
| 589+1 | 1467 | 7312031002415 | | lnk | stack.lnk | : | jmp | stack.ent | |
|
| 590 | 1468 | | | call | | | | | ;compile procedure body | @1468
|
| 590+1 | 1468 | 7310611003254 | | lnk | statement.lnk | : | jmp | statement.ent | |
|
| 591 | 1469 | 0602161 | | lod | wsptr | | | | ; |
|
| 592 | 1469+ | 0162147 | | bus | W1127 | | | | ; |
|
| 593 | 1470 | 1022677 | | jn | .1471 | | | | ; | @1470
|
| 594 | 1470+ | 0502161 | | ads | wsptr | | | | ; |
|
| 595 | 1471 | | .1471: | ; | |
|
| 596 | 1471 | 0010646577777 | | o00 | stkp | / | lod | -1 | ; |
|
| 597 | 1472 | 0402167 | | sto | W1143 | | | | ; | @1472
|
| 598 | 1472+ | 1220024 | | srl | 20 | | | | ; |
|
| 599 | 1473 | 0062222 | | and | K8191 | | | | ;=8191 |
|
| 600 | 1473+ | 0402160 | | sto | dicpt | | | | ; |
|
| 601 | 1474 | 0000000 | | o00 | 0 | | | | ; | @1474
|
| 602 | 1474+ | 0602205 | | lod | K2a | | | | ; |
|
| 603 | 1475 | 2710646600000 | | o27 | stkp | / | lod | 0 | ; |
|
| 604 | 1476 | 0402147 | | sto | W1127 | | | | ; | @1476
|
| 605 | 1476+ | 0042234 | | o02 | Bit32 | | | | ;=00020000000000 |
|
| 606 | 1477 | 0110736660000 | | neg | W1143 | / | lns | 0 | ; |
|
| 607 | 1478 | 0062244 | | and | M1188 | | | | ; | @1478
|
| 608 | 1478+ | 0162161 | | bus | wsptr | | | | ; |
|
| 609 | 1479 | 0402166 | | sto | W1142 | | | | ; |
|
| 610 | 1479+ | 0602167 | | lod | W1143 | | | | ; |
|
| 611 | 1480 | 1022714 | | jn | .1484 | | | | ; | @1480
|
| 612 | 1480+ | 1002713 | | jmp | .1483 | | | | ;-->> |
|
| 613 | 1481 | | =1483 | |
|
| 614 | 1483 | | .1483: | ; | |
|
| 615 | 1483 | | | call | | | | | ;generate Exit Block call | @1483
|
| 615+1 | 1483 | 7320121003401 | | lnk | GenXB.lnk | : | jmp | GenXB.ent | |
|
| 616 | 1484 | | .1484: | ; | |
|
| 617 | 1484 | 0602167 | | lod | W1143 | | | | ; |
|
| 618 | 1484+ | 1320001 | | sll | 1 | | | | ; |
|
| 619 | 1485 | 1022716 | | jn | .1486 | | | | ; |
|
| 620 | 1485+ | 1002722 | | jmp | .1490 | | | | ; |
|
| 621 | 1486 | | ; |
|
| 622 | 1486 | | .1486: | ; | |
|
| 623 | 1486 | 0010736040000 | | o00 | W1143 | / | o02 | 0 | ; | @1486
|
| 624 | 1487 | 0401422 | | sto | GenAdr | | | | ; |
|
| 625 | 1487+ | 1002466 | | jmp | .1334 | | | | ;-->> |
|
| 626 | 1488 | | =1334 | |
|
| 627 | 1334 | 0010736577777 | .1334: | o00 | W1143 | / | lod | -1 | ; | @1334
|
| 628 | 1335 | 1220034 | | srl | 28 | | | | ; |
|
| 629 | 1335+ | 1002720 | | jmp | .1488 | | | | ;-->> |
|
| 630 | 1336 | | =1488 | |
|
| 631 | 1488 | 0062223 | .1488: | and | K31b | | | | ;=31 | @1488
|
| 632 | 1488+ | 0501422 | | ads | GenAdr | | | | ; |
|
| 633 | 1489 | | | call | | | | | ; |
|
| 633+1 | 1489 | 7307175103002 | | lnk | L1538P.lnk | : | jmp | L1538P.ent | |
|
| 634 | 1490 | 0602167 | .1490: | lod | W1143 | | | | ; | @1490
|
| 635 | 1490+ | 1320002 | | sll | 2 | | | | ; |
|
| 636 | 1491 | 1022743 | | jn | .1507 | | | | ; |
|
| 637 | 1491+ | 0603542 | | lod | GPs+61 | | | | ;=04000031000002 |
|
| 638 | 1492 | | | call | | | | | ; | @1492
|
| 638+1 | 1492 | 7320121004033 | | lnk | gencode.lnk | : | jmp | gencode.ent | |
|
| 639 | 1493 | 0042233 | | o02 | Bit21 | | | | ;=00000004000000 |
|
| 640 | 1493+ | 0562152 | | o27 | W1130 | | | | ; |
|
| 641 | 1494 | 0602152 | | lod | W1130 | | | | ; | @1494
|
| 642 | 1494+ | 0062222 | | and | K8191 | | | | ;=8191 |
|
| 643 | 1495 | 0401430 | | sto | W792 | | | | ; |
|
| 644 | 1495+ | 0602166 | | lod | W1142 | | | | ; |
|
| 645 | 1496 | 1002465 | | jmp | .1333 | | | | ;-->> | @1496
|
| 646 | 1496+ | | =1333 | |
|
| 647 | 1333 | 0102225 | .1333: | add | Bbit | | | | ;=<00 0 / 00 0> |
|
| 648 | 1333+ | 1002737 | | jmp | .1503 | | | | ; |
|
| 649 | 1334 | | ; |
|
| 650 | 1334 | | =1503 | |
|
| 651 | 1503 | | .1503: | ; | |
|
| 652 | 1503 | | | call | | | | | ; | @1503
|
| 652+1 | 1503 | 7307175001630 | | lnk | GenSetBase.lnk | : | jmp | GenSetBase.ent | |
|
| 653 | 1504 | | .1504: | ; | |
|
| 654 | 1504 | 0040000 | | o02 | 0 | | | | ;=1 |
|
| 655 | 1504+ | 0000000 | | o00 | 0 | | | | ; |
|
| 656 | 1505 | 2710646600000 | | o27 | stkp | / | lod | 0 | ; |
|
| 657 | 1506 | 0402153 | | sto | W1131 | | | | ; | @1506
|
| 658 | 1506+ | 1002303 | | jmp | .recover | | | | ; |
|
| 659 | 1507 | | ; |
|
| 660 | 1507 | | .1507: | ; | |
|
| 661 | 1507 | 0010736600000 | | o00 | W1143 | / | lod | 0 | ; | @1507
|
| 662 | 1508 | 0062244 | | and | M1188 | | | | ; |
|
| 663 | 1508+ | 0401422 | | sto | GenAdr | | | | ; |
|
| 664 | 1509 | 0602226 | | lod | K6 | | | | ;=6 |
|
| 665 | 1509+ | 0102225 | | add | Bbit | | | | ;=<000/000> |
|
| 666 | 1510 | | | call | | | | | ; | @1510
|
| 666+1 | 1510 | 7307175001665 | | lnk | GenSkpInst.lnk | : | jmp | GenSkpInst.ent | |
|
| 667 | 1511 | 0042224 | | o02 | Bit19 | | | | ;=00000001000000 |
|
| 668 | 1511+ | 0000000 | | o00 | 0 | | | | ; |
|
| 669 | 1512 | | | call | | | | | ; | @1512
|
| 669+1 | 1512 | 7307175001705 | | lnk | L965.lnk | : | jmp | L965.ent | |
|
| 670 | 1513 | 1002740 | | jmp | .1504 | | | | ; |
|
| 671 | 1513+ | | ; |
|
| 672 | 1513+ | | _err08a: | ; | |
|
| 673 | 1513+ | 0602210 | | lod | K7a | | | | ;=7 |
|
| 674 | 1514 | | _err08: | ; | |
|
| 675 | 1514 | 1661044 | | lnk | errlnk | | | | ;error 8: param of non-allowable type | @1514
|
| 676 | 1514+ | | | ;or, too many parameters | |
|
| 677 | 1514+ | | | ;parameter not specified | |
|
| 678 | 1514+ | 1001051 | | jmp | Error1 | | | | ;call error routine |
|
| 679 | 1515 | 1002753 | .hlt15: | jmp | .hlt15 | | | | ;dynamic stop |
|
| 680 | 1515+ | | ; |
|
| 681 | 1515+ | | _err08b: | ; | |
|
| 682 | 1515+ | 0602200 | | lod | K8a | | | | ;=8, obsolete | @1515+
|
| 683 | 1516 | 1002752 | | jmp | _err08 | | | | ; |
|
| 684 | 1516+ | | ; |
|
| 685 | 1516+ | | _err10a: | ; | |
|
| 686 | 1516+ | 0602176 | | lod | K9a | | | | ;=9, obsolete |
|
| 687 | 1517 | | _err10: | ; | |
|
| 688 | 1517 | 1661044 | | lnk | errlnk | | | | ;error 10: name in value not param | @1517
|
| 689 | 1517+ | 1001051 | | jmp | Error1 | | | | ;goto error rtne |
|
| 690 | 1518 | 1002546 | | jmp | .errrec | | | | ;if error returns continue |
|
| 691 | 1518+ | | ; |
|
| 692 | 1518+ | | _err11a: | ; | |
|
| 693 | 1518+ | 0602176 | | lod | K9a | | | | ;=9, obsolete |
|
| 694 | 1519 | | _err11: | ; | |
|
| 695 | 1519 | 1661044 | | lnk | errlnk | | | | ;error 11: name in spec not param, or |
|
| 696 | 1519+ | | | ;param spec twice | |
|
| 697 | 1519+ | 1001051 | | jmp | Error1 | | | | ;goto error rtne |
|
| 698 | 1520 | 1002602 | | jmp | .sp2 | | | | ; | @1520
|
| 699 | 1520+ | | ;-------------------------------------------------------------------- |
|
| 700 | 1520+ | | .1520P: | ; | |
|
| 701 | 1520+ | 0102240 | | add | K10b | | | | ; |
|
| 702 | 1521 | 1042762 | | jz | .cmnt | | | | ; |
|
| 703 | 1521+ | 1002553 | | jmp | .1387 | | | | ; |
|
| 704 | 1522 | | ; |
|
| 705 | 1522 | | .cmnt: | ; | |
|
| 706 | 1522 | | | call | | | | | ; | @1522
|
| 706+1 | 1522 | 7312031002420 | | lnk | skipcomment.lnk | : | jmp | skipcomment.ent | |
|
| 707 | 1523 | 1002534 | | jmp | .specs | | | | ; |
|
| 708 | 1523+ | | | pad | | | | | ; |
|
| 708+1 | 1523+ | 0000000 | | 00 | 0 | | | | |
|
| 709 | 1524 | | ; |
|
| 710 | 1524 | | .comt: | ; | |
|
| 711 | 1524 | | | call | | | | | ; | @1524
|
| 711+1 | 1524 | 7312031002420 | | lnk | skipcomment.lnk | : | jmp | skipcomment.ent | |
|
| 712 | 1525 | 1002552 | | jmp | .valsemi | | | | ; |
|
| 713 | 1525+ | | | pad | | | | | |
|
| 713+1 | 1525+ | 0000000 | | 00 | 0 | | | | |
|
| 714 | 1526 | | ; |
|
| 715 | 1526 | | specsw: | ; | |
|
| 716 | 1526 | 4013720000000 | | jmp | .comt | : | 00 | 0 | ; +9 comment | @1526
|
| 717 | 1527 | 4012604000000 | | jmp | _err07 | : | 00 | 0 | ; +10 own invalid as spec |
|
| 718 | 1528 | 3011055102560 | | lod | boolbit | : | jmp | .ssp | ; +11 boolean | @1528
|
| 719 | 1529 | 3011061102560 | | lod | intbit | : | jmp | .ssp | ; +12 integer |
|
| 720 | 1530 | 3011065102560 | | lod | realbit | : | jmp | .ssp | ; +13 real | @1530
|
| 721 | 1531 | 3011015102565 | | lod | rarrbit | : | jmp | .asp | ; +14 array |
|
| 722 | 1532 | 4413644000000 | | jmp | _err08a | : | 00 | 0 | ; +15 switch | @1532
|
| 723 | 1533 | 4413644000000 | | jmp | _err08a | : | 00 | 0 | ; +16 procedure |
|
| 724 | 1534 | 3011251102565 | | lod | strbit | : | jmp | .asp | ; +17 string | @1534
|
| 725 | 1535 | 3010621103012 | | lod | W1124 | : | jmp | .lbl | ; +18 label |
|
| 726 | 1536 | | ;-------------------------------------------------------------------- |
|
| 727 | 1536 | | ; |
|
| 728 | 1536 | | =1537 | |
|
| 729 | 1537 | 0062215 | .1537: | and | realbit | | | | ; | @1537
|
| 730 | 1537+ | 1042667 | | jz | .1463 | | | | ; |
|
| 731 | 1538 | 1102666 | | jmp | .1462P | | | | ; |
|
| 732 | 1538+ | | ;-------------------------------------------------------------------- |
|
| 733 | 1538+ | | ; |
|
| 734 | 1538+ | | L1538P.ent: | ; | |
|
| 735 | 1538+ | 0602220 | | lod | W1168 | | | | ; | @1538+
|
| 736 | 1539 | 1001640 | | jmp | GenInst.ent | | | | ; |
|
| 737 | 1539+ | | ;-------------------------------------------------------------------- |
|
| 738 | 1539+ | | ; |
|
| 739 | 1539+ | | ;L1539P: |
|
| 740 | 1539+ | 0042231 | .1539P: | o02 | K11 | | | | ; | @1539+
|
| 741 | 1540 | 0562166 | | o27 | W1142 | | | | ; | @1540
|
| 742 | 1540+ | 1102620 | | jmp | .lp3b | | | | ; |
|
| 743 | 1541 | | ; |
|
| 744 | 1541 | | =1542+ | |
|
| 745 | 1542+ | | ; |
|
| 746 | 1542+ | | ; no reference to here?? |
|
| 747 | 1542+ | | ; |
|
| 748 | 1542+ | 0600600 | | lod | token | | | | ; |
|
| 749 | 1543 | 1043010 | | jz | .1544 | | | | ; |
|
| 750 | 1543+ | 1002541 | | jmp | _err07 | | | | ; |
|
| 751 | 1544 | | =1544 | |
|
| 752 | 1544 | | ; and hence to here |
|
| 753 | 1544 | | .1544: | ; | |
|
| 754 | 1544 | | | call | | | | | ; | @1544
|
| 754+1 | 1544 | 7306371006514 | | lnk | SkipPLC.lnk | : | jmp | SkipPLC.ent | |
|
| 755 | 1545 | | | call | | | | | ; |
|
| 755+1 | 1545 | 7310725002400 | | lnk | declid2.lnk | : | jmp | declid2.ent | |
|
| 756 | 1546 | 1002511 | | jmp | .1353 | | | | ; | @1546
|
| 757 | 1546+ | | ; |
|
| 758 | 1546+ | | .lbl: | ; | |
|
| 759 | 1546+ | 1320027 | | sll | 23 | | | | ; |
|
| 760 | 1547 | 0102250 | | add | W1192 | | | | ; | @1547
|
| 761 | 1547+ | 1102565 | | jmp | .asp | | | | ; |
|
| 762 | 1548 | | ; |
|
| 763 | 1548 | | L1548.ent: | ; | |
|
| 764 | 1548 | 0602144 | | lod | W1124 | | | | ; | @1548
|
| 765 | 1548+ | 0202153 | | exa | W1131 | | | | ; |
|
| 766 | 1549 | | | call | | | | | ; |
|
| 766+1 | 1549 | 7312031002415 | | lnk | stack.lnk | : | jmp | stack.ent | |
|
| 767 | 1550 | 1001222 | | jmp | gettoken.ent | | | | ; | @1550
|
| 768 | 1550+ | | ; |
|
| 769 | 1550+ | | =1555 | |
|
| 770 | 1555 | | ; |
|
| 771 | 1555 | 3777740000000 | W1555: | +03777740000000 | ; |
|
| 772 | 1556 | | ; |
|
| 773 | 1556 | | .1556: | ; | |
|
| 774 | 1556 | | | call | | | | | ; |
|
| 774+1 | 1556 | 7312031002420 | | lnk | skipcomment.lnk | : | jmp | skipcomment.ent | |
|
| 775 | 1557 | 1002655 | | jmp | .lp3k | | | | ; |
|
| 776 | 1557+ | | ; |
|
| 777 | 1557+ | | | pad | | | | | |
|
| 777+1 | 1557+ | 0000000 | | 00 | 0 | | | | |
|
| 778 | 1558 | | ;-------------------------------------------------------------------- |
|
| 779 | 1558 | | ; getboundexp, get expression suitable for array bound |
|
| 780 | 1558 | | ; |
|
| 781 | 1558 | | getboundexp:: | ; | |
|
| 782 | 1558 | | ; |
|
| 783 | 1558 | | .ent: | ; | |
|
| 784 | 1558 | | | pad | | | | | ; | @1558
|
| 784+1 | 1558 | 0000000 | | 00 | 0 | | | | |
|
| 785 | 1558+ | 0542171 | | cls | W1145 | | | | ; |
|
| 786 | 1559 | | | call | | | | | ;get next token |
|
| 786+1 | 1559 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 787 | 1560 | 0040600 | | o02 | token | | | | ;token+1 | @1560
|
| 788 | 1560+ | 1023225 | | jn | L1685 | | | | ;-> if -2 |
|
| 789 | 1561 | 0124346 | | sub | W2278 | | | | ;=23 ->[+]+1 |
|
| 790 | 1561+ | 1043047 | | jz | GetIntExp | | | | ;handle plus sign |
|
| 791 | 1562 | 0122207 | | sub | K1c | | | | ;=1 ->[-]+1 | @1562
|
| 792 | 1562+ | 1143046 | | jz | GetIntExp1 | | | | ;->handle neg sign |
|
| 793 | 1563 | | | pad | | | | | ; |
|
| 793+1 | 1563 | 0000000 | | 00 | 0 | | | | |
|
| 794 | 1563+ | 0542172 | | cls | Link15c | | | | ; |
|
| 795 | 1564 | | L1564.ent: | ; | |
|
| 796 | 1564 | 0602156 | .1564: | lod | frameptr | | | | ; | @1564
|
| 797 | 1564+ | 0202160 | | exa | dicpt | | | | ; |
|
| 798 | 1565 | 0402173 | | sto | W1147 | | | | ; |
|
| 799 | 1565+ | | L1565P: | ; | |
|
| 800 | 1565+ | | .1565P: | ; | |
|
| 801 | 1565+ | 0404304 | | sto | constptr | | | | ; | @1565+
|
| 802 | 1566 | | | call | | | | | ;process identifier? |
|
| 802+1 | 1566 | 7322411004504 | | lnk | advance2.lnk | : | jmp | advance2.ent | |
|
| 803 | 1567 | | | call | | | | | ; |
|
| 803+1 | 1567 | 7326171003053 | | lnk | GetIntExp2.lnk | : | jmp | GetIntExp2.ent | |
|
| 804 | 1568 | 0602173 | | lod | W1147 | | | | ; | @1568
|
| 805 | 1568+ | 0402160 | | sto | dicpt | | | | ; |
|
| 806 | 1569 | 0542166 | | cls | W1142 | | | | ; |
|
| 807 | 1569+ | 0040000 | | o02 | 0 | | | | ;=1 |
|
| 808 | 1570 | 2710646600000 | | o27 | stkp | / | lod | 0 | ; | @1570
|
| 809 | 1571 | 0062177 | | and | MaxInt | | | | ; |
|
| 810 | 1571+ | | L1571P: | ; | |
|
| 811 | 1571+ | 0102175 | .1571P: | add | bit39 | | | | ; |
|
| 812 | 1572 | | | call | | | | | ; | @1572
|
| 812+1 | 1572 | 7312031002407 | | lnk | addtodic.lnk | : | jmp | addtodic.ent | |
|
| 813 | 1573 | 0010727000001 | | o00 | Link15b | / | jmp | 1 | ;return |
|
| 814 | 1574 | | ; |
|
| 815 | 1574 | | | pad | | | | | ; | @1574
|
| 815+1 | 1574 | 0000000 | | 00 | 0 | | | | |
|
| 816 | 1574+ | | ;-------------------------------------------------------------------- |
|
| 817 | 1574+ | | ; |
|
| 818 | 1574+ | | ; declid process an identifier, checking for duplicate |
|
| 819 | 1574+ | | ; declarations. If OK, add to dictionary |
|
| 820 | 1574+ | | ; |
|
| 821 | 1574+ | | declid:: | ; | |
|
| 822 | 1574+ | | =1536 | |
|
| 823 | 1536 | | ; entry moved into module |
|
| 824 | 1536 | | ; add ident to dictionary, regardless of duplicates |
|
| 825 | 1536 | | ; |
|
| 826 | 1536 | | declid1.ent: | ; | |
|
| 827 | 1536 | 0602160 | | lod | dicpt | | | | ; bypass duplicate search | @1536
|
| 828 | 1536+ | 1102361 | | jmp | .1 | | | | ; enter main body |
|
| 829 | 1537 | | ; |
|
| 830 | 1537 | | ; main entry, include duplicate scan |
|
| 831 | 1537 | | ; |
|
| 832 | 1537 | | =1265 | |
|
| 833 | 1265 | | .ent: | ; | |
|
| 834 | 1265 | 0602156 | | lod | frameptr | | | | ; | @1265
|
| 835 | 1265+ | 0402167 | .1: | sto | W1143 | | | | ;limit for scans |
|
| 836 | 1266 | 0602160 | | lod | dicpt | | | | ; |
|
| 837 | 1266+ | 0402170 | | sto | idpt1 | | | | ; |
|
| 838 | 1267 | 0542164 | | cls | idcount | | | | ;number of ids in list | @1267
|
| 839 | 1267+ | 1102367 | | jmp | .3 | | | | ; |
|
| 840 | 1268 | | ; |
|
| 841 | 1268 | 0000000000000 | | +0 | ;no reference! | @1268
|
| 842 | 1269 | | ; |
|
| 843 | 1269 | | .2: | ; | |
|
| 844 | 1269 | 2210742600000 | | inc | idpt1 | / | lod | 0 | ; | @1269
|
| 845 | 1270 | 0120576 | | sub | ident | | | | ;ident |
|
| 846 | 1270+ | 1142402 | | jz | .7 | | | | ;match->duplicate id |
|
| 847 | 1271 | 0602170 | | lod | idpt1 | | | | ; |
|
| 848 | 1271+ | | .3: | ; | |
|
| 849 | 1271+ | 0122167 | | sub | W1143 | | | | ; | @1271+
|
| 850 | 1272 | 1022365 | | jn | .2 | | | | ;back to check next one |
|
| 851 | 1272+ | 0600600 | | lod | token | | | | ;token |
|
| 852 | 1273 | 1142372 | | jz | .4 | | | | ;ident-> |
|
| 853 | 1273+ | 1661044 | _err04: | lnk | errlnk | | | | ;error 4: item after comma in decl not name |
|
| 854 | 1274 | 1002262 | | jmp | Error2 | | | | ;loop back to test for name | @1274
|
| 855 | 1274+ | | ; |
|
| 856 | 1274+ | | .4: | ; | |
|
| 857 | 1274+ | 0600576 | | lod | ident | | | | ;identifier value |
|
| 858 | 1275 | | | call | | | | | ; add id to list |
|
| 858+1 | 1275 | 7312031002407 | | lnk | addtodic.lnk | : | jmp | addtodic.ent | |
|
| 859 | 1276 | 0442164 | | inc | idcount | | | | ;idcount | @1276
|
| 860 | 1276+ | | | pad | | | | | ;no-op |
|
| 860+1 | 1276+ | 0000000 | | 00 | 0 | | | | |
|
| 861 | 1277 | | .5: | ; | |
|
| 862 | 1277 | | | call | | | | | ; | @1277
|
| 862+1 | 1277 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 863 | 1278 | 0040600 | | o02 | token | | | | ;token+1 | @1278
|
| 864 | 1278+ | 0122201 | | sub | K42 | | | | ;=42 |
|
| 865 | 1279 | 1042400 | | jz | .6 | | | | ; comma-> |
|
| 866 | 1279+ | 1002405 | | jmp | .ret | | | | ;anything else-> |
|
| 867 | 1280 | | ; |
|
| 868 | 1280 | | ; alternate entry point |
|
| 869 | 1280 | | ; |
|
| 870 | 1280 | | declid2.ent: | ; | |
|
| 871 | 1280 | | .6: | ; | |
|
| 872 | 1280 | | | call | | | | | ; | @1280
|
| 872+1 | 1280 | 7305105001222 | | lnk | gettoken.lnk | : | jmp | gettoken.ent | |
|
| 873 | 1281 | 0602160 | | lod | dicpt | | | | ; |
|
| 874 | 1281+ | 0402170 | | sto | idpt1 | | | | ; |
|
| 875 | 1282 | 1002365 | | jmp | .2 | | | | ; loop back for next identifier | @1282
|
| 876 | 1282+ | | ; |
|
| 877 | 1282+ | | .7: | ; | |
|
| 878 | 1282+ | 0040000 | | o02 | 0 | | | | |
|
| 879 | 1283 | 1661044 | _err03: | lnk | errlnk | | | | ;error 3: name declared twice |
|
| 880 | 1283+ | 1001051 | | jmp | Error1 | | | | ;call error handler |
|
| 881 | 1284 | 1002375 | | jmp | .5 | | | | ; | @1284
|
| 882 | 1284+ | | ; |
|
| 883 | 1284+ | | | pad | | | | | |
|
| 883+1 | 1284+ | 0000000 | | 00 | 0 | | | | |
|
| 884 | 1285 | | .ret: | ; | |
|
| 885 | 1285 | | | ret | | | | | |
|
| 885+1 | 1285 | 0010727000001 | | o00 | declid.lnk | / | jmp | 1 | |
|
| 886 | 1286 | | ;-------------------------------------------------------------------- |
|