File: TECOVQ.LS of Disk: V50/Source/Source-Listing-MAC-2
(Source file text)
PAGE LINE SUBTITLE 2 41 Cmd O 9 246 Cmd ; 10 282 Cmd " 10 300 Cmd | 11 311 Cmd > 12 341 Cmd < /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 1 FILE # 1 1 /3 Q-OVERLAY TO TECO V50 2 3 / 08-APR-79 ADDED ELSE SUPPORT 4 / 10-APR-79 FIXED BUG HAVING TO DO WITH Y<...> 5 / SINCE < WASN'T TESTING NFLG PROPERLY 6 7 .ENABLE 7BIT 8 9 .MACRO .ERROR ERNUM 10 .GLOBAL ERR'ERNUM 11 ERR'ERNUM: ERR 12 .ENDM 13 14 .MACRO .SORT ARG1,ARG2 15 SORT; ARG1; ARG2-ARG1 16 .ENDM 17 18 7344 MTWO=CLL STA RAL 19 .EXTERNAL IOVRLC,EOVRLC,XOVRLC,FOVRLC 20 .EXTERNAL SORT,PUSHJ,TESTD,ERR,SORTA1 21 .ZTERNAL SCANP,NFLG,ITRST,QUOTE,QBASE,QP,MQ,CAAM,ZIREST 22 .EXTERNAL QSKP,SKPSET,GETQ,QUOTST,ENTRCE,NOTRCE,SCANUP,SCAN 23 .ZTERNAL SCHAR,Z77,NLINK,ITRCNT,N,LASTC 24 .EXTERNAL TESTA,TSTSEP,NCHK,GETNUM,POPJ,RESORT,NCHK,ZRON 25 .EXTERNAL PUSHL,ZROSPN,POPL,IREST 26 27 .GLOBAL QOVRLY,CHR.O,CDBQ,CSEM,CHGT,CHLT,SETSKP,VBARE 28 29 0200 .ASECT TECOVQ 30 31 5600 *5600 32 33 5600 RELOC 3200 34 35 03200* 0000 * IOVRLC 36 03201* 0000 QOVRLY, 0 37 03202* 0000 * EOVRLC 38 03203* 0000 * XOVRLC 39 03204* 0000 * FOVRLC /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 2 FILE # 1 40 41 .SBTTL Cmd O 42 43 CHR.O, 44 /+ TAD QFLG 45 /+ SZA CLA 46 /+ IAC /ONE MORE IF QUOTED 47 03205* 1000 * TAD SCANP /O COMMAND 48 03206* 3243 DCA COOQ /SAVE CURRENT SCAN POINTER 49 03207* 3000 * DCA NFLG 50 03210* 0000 * QSKP /CHECK THAT THERE IS REALLY A STRING HERE 51 /BECAUSE WE WILL NOT USE "SCAN" TO GET CHARACTERS 52 /FROM THIS STRING IN THE SEARCH LOOP. 53 /+ STA 54 /+ TAD SCANP 55 /+ CIA 56 /+ DCA ENDO 57 03211* 1000 * TAD ITRST /"O" ONLY SCANS FROM THE BEGINNING OF THE 58 03212* 3000 * DCA SCANP /CURRENT ITERATION LOOP. 59 /(JUMPS BACKWARD OUT OF ITERATIONS ARE VERBOTEN) 60 03213* 0000 * SKPSET 61 03214* 0041 41$: 41 /SEARCH FOR ! 62 03215* 1214 TAD 41$ 63 03216* 3000 * DCA QUOTE /SET QUOTE CHAR TO ! 64 /+ QCHK 65 03217* 1243 TAD COOQ 66 03220* 1000 * TAD QBASE 67 03221* 3000 * DCA QP /SET UP PTR TO ACCESS GOTO STRING 68 03222* 1000 * 1$: TAD QP 69 03223* 0000 * GETQ /GET CHAR FROM GOTO STRING 70 03224* 7041 CIA 71 03225* 3000 * DCA MQ /SAVE IT 72 03226* 0000 * QUOTST /GET CHAR FROM LABEL 73 03227* 5235 JMP 2$ /LABEL EXHAUSTED 74 03230* 1000 * TAD MQ 75 03231* 7640 SZA CLA /MATCH? 76 03232* 5263 JMP CSMQ /NO - REJOIN SEARCH ROUTINE FOR ANOTHER ! 77 03233* 2000 * ISZ QP 78 03234* 5222 JMP 1$ 79 2$: 80 /+ TAD QP 81 /+ TAD ENDO 82 /+ ABOVE TWO LINES REPLACE NEXT TWO LINES 83 03235* 1000 * TAD MQ 84 03236* 1000 * TAD CAAM /IS GOTO STRING EXHAUSTED TOO? 85 03237* 7640 SZA CLA 86 03240* 5264 JMP CSMQ1 /NO - REJOIN ! SEARCH ROUTINE 87 03241* 0000 * ENTRCE /RE-ENABLE TRACE 88 03242* 5400 * JMP I ZIREST 89 03243* 0000 COOQ, 0 90 /+ENDO, 0 /NEG OF END OF GOTO STRING 91 92 /+ THESE LINES REPRESENT (BUGGY) CODE TO ALLOW @O /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 3 Cmd O FILE # 1 93 94 /ROUTINE TO SKIP COMMANDS UP TO A CHARACTER 95 96 03244* 0000 SETSKP, 0 /SET UP TO SKIP COMMANDS 97 03245* 1644 TAD I SETSKP 98 03246* 3333 DCA SKPLST /CHAR TO TRAP ON 99 03247* 0000 * NOTRCE /DISABLE TRACE MODE 100 03250* 3332 CSML1, DCA BRACKS /INITIALIZE BRACKET LEVEL 101 03251* 0000 * CSML, SCANUP /GET A COMMAND CHAR 102 CSML2, .SORT SKPLST,SKPTAB 103 03255* 5251 JMP CSML /NOTHING SPECIAL - KEEP GOING 104 03256* 0000 * CSMD, SCAN /CLEAR OUT MODIFIER 105 03257* 5251 JMP CSML 106 107 03260* 0000 * CSMU, SCAN /SKIP ^U COMMAND 108 03261* 7610 SKP CLA /GET RID OF Q-REG NUMBER 109 03262* 0000 * CSMFS, QSKP /FS COMMAND - SKIP FIRST STRING 110 03263* 0000 * CSMQ, QSKP /SKIP OVER A QUOTED STRING 111 03264* 0000 * CSMQ1, PUSHJ 112 03265* 0000 * IREST /FIX UP QUOTE CHAR 113 03266* 5251 JMP CSML /KEEP GOING 114 115 03267* 1000 * CSMY, TAD SCHAR /SKIP ROUTINE FOR ^A AND ! 116 03270* 3000 * DCA QUOTE /WE MUST SCAN UNTIL WE FIND 117 03271* 5263 JMP CSMQ /A COPY OF THE COMMAND CHARACTER. /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 4 Cmd O FILE # 1 118 119 /SORT LIST FOR " COMMAND 120 121 03272* 0101 CNDLSA, "A 122 03273* 0104 "D 123 03274* 0116 "N 124 03275* 0105 "E 125 03276* 0103 "C 126 03277* 0107 "G 127 03300* 0114 "L 128 03301* 0124 "T /=L 129 03302* 0106 "F /=E 130 131 / PARALLEL LIST 'CNDLSB' IS ON NEXT PAGE 132 133 03303* 0000 * CSME, SCANUP /FOUND E COMMAND 134 .SORT ESKLST,ESKTAB /LOOK FOR ER, EW, EG, AND EB (USE CSMQ TO SKIP) 135 03307* 5251 JMP CSML /NO STRING 136 137 03310* 2332 CSMI, ISZ BRACKS /INCREMENT BRACKET LEVEL 138 03311* 5251 JMP CSML 139 140 03312* 7240 CSMO, STA 141 03313* 1332 TAD BRACKS /DECREMENT BRACKET LEVEL 142 03314* 7510 SPA 143 03315* 4777 JMS I (POPITR /IF WE EXIT <> POP OFF ITERATION VALUES 144 03316* 5250 JMP CSML1 145 146 03317* 1000 * CSMB, TAD LASTC /GET CHARACTER BEFORE IT WAS TRANSLATED TO UPPER CASE 147 03320* 1376 TAD (-"| /SEE IF IT WAS A VERTICAL BAR 148 03321* 7650 SNA CLA /IF NOT, IT WAS A \ AND JUST SCAN PAST IT 149 03322* 1333 TAD SKPLST /IF SO, IT IS PROBABLY THE ELSE CLAUSE 150 03323* 1375 TAD (-"' 151 03324* 7640 SZA CLA 152 03325* 5251 JMP CSML 153 03326* 1332 SKPRTN, TAD BRACKS /WE HAVE FOUND THE DESIRED CHARACTER 154 03327* 7640 SZA CLA /BUT IF THE BRACKET LEVEL IS NON-ZERO, 155 03330* 5774 JMP I (SORTA1 /WE CANNOT ACCEPT IT - KEEP SORTING 156 /WE MUST USE SORTA1 RATHER THAN RESORT IN CASE OF > 157 03331* 5644 JMP I SETSKP /EVERYTHING IS OK - RETURN 158 159 03332* 0000 BRACKS, 0 /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 5 Cmd O FILE # 1 160 161 /SORT LIST FOR SKIPPING OVER COMMANDS 162 163 03333* 0000 SKPLST, 0 /TRAP CHAR 164 03334* 0041 41 /! 165 03335* 0076 76 /> 166 03336* 0074 74 /< 167 03337* 0042 42 /" 168 03340* 0136 136 /^ 169 03341* 0100 100 /@ 170 03342* 0001 1 /^A 171 03343* 0011 11 /TAB 172 03344* 0025 25 /^U 173 03345* 0036 36 /^^ 174 03346* 0105 105 /E 175 03347* 0106 106 /F 176 03350* 0111 111 /I 177 03351* 0116 116 /N 178 03352* 0117 117 /O 179 03353* 0123 123 /S 180 03354* 0137 137 /_ 181 03355* 0121 121 /Q 182 03356* 0125 125 /U 183 03357* 0130 130 /X 184 03360* 0107 107 /G 185 03361* 0115 115 /M 186 03362* 0045 45 /% 187 03363* 0134 134 /\ or | 188 189 03364* 0000 * CSMF, SCAN /F COMMAND - BETTER BE FOLLOWED BY S,N, OR _ 190 03365* 7200 CLA 191 03366* 5262 JMP CSMFS /SCAN OFF TWO STRINGS /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 6 Cmd O FILE # 1 192 193 03367* 7240 CSMA, STA /LIST TERMINATOR 194 03370* 5264 JMP CSMQ1 /FOUND @ - SET QUOTE FLAG AND CONTINUE 195 196 03371* 0000 * CSMC, SCANUP /GET NEXT CHARACTER IN UPPER CASE 197 03372* 0000 * AND Z77 /MAKE IT A CONTROL CHARACTER 198 03373* 5252 JMP CSML2 /SUBSTITUTE IT FOR THE UPARROW 199 200 /TSTW, 0 /TEST FOR UPPER CASE ALPHABETIC 201 / TAD (-101 202 / CLL 203 / TAD (-26. 204 / SNL CLA 205 / ISZ TSTW 206 / JMP I TSTW ------ 03374* 0000 * 03375* 7731 03376* 7604 03377* 3537 207 6000 PAGE /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 7 Cmd O FILE # 1 208 209 /DISPATCH TABLE FOR SKIPPING OVER COMMANDS: 210 211 03400* 3326 SKPTAB, SKPRTN /DESIRED CHARACTER - RETURN 212 03401* 3267 CSMY /! 213 03402* 3312 CSMO /> 214 03403* 3310 CSMI /< 215 03404* 3431 CNDI /" 216 03405* 3371 CSMC /^ 217 03406* 3367 CSMA /@ 218 03407* 3267 CSMY /^A 219 03410* 3263 CSMQ /TAB 220 03411* 3260 CSMU /^U 221 03412* 3256 CSMD /^^ 222 03413* 3303 CSME /E 223 03414* 3364 CSMF /F 224 03415* 3263 ESKTAB, CSMQ /I OR ER 225 03416* 3263 CSMQ /N OR EW 226 03417* 3263 CSMQ /O OR EB 227 03420* 3263 CSMQ /S OR EG 228 03421* 3263 CSMQ /_ 229 03422* 3256 CSMD /Q 230 03423* 3256 CSMD /U 231 03424* 3256 CSMD /X 232 03425* 3256 CSMD /G 233 03426* 3256 CSMD /M 234 03427* 3256 CSMD /% 235 03430* 3317 CSMB /| /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 8 Cmd O FILE # 1 236 237 03431* 0000 * CNDI, SCAN /HIT ANOTHER " 238 03432* 7200 CLA 239 03433* 1777 TAD I (BRACKS 240 03434* 7650 SNA CLA 241 03435* 7240 STA /SO SKIP MATCHING ' 242 03436* 1310 TAD SKIP 243 03437* 3310 DCA SKIP 244 03440* 0000 * RESORT /GO BACK TO CSML /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 9 Cmd O FILE # 1 245 246 .SBTTL Cmd ; 247 248 03441* 1000 * CSEM, TAD ITRST /COMMAND ; - ALSO HERE ON FAILING NON-COLON SEARCH 249 03442* 7650 SNA CLA 250 .ERROR 09 /IF NOT IN ITERATION 251 03444* 1000 * TAD NLINK 252 03445* 7650 SNA CLA 253 03446* 0000 * NCHK /SKIP IF NUMBER 254 03447* 5776 JMP I (ZRON /NO NUMBER - IGNORE IT, WE DID IT ALREADY 255 /FALL INTO SEMO AND SEARCH FOR > 256 03450* 0000 * SEMO, SKPSET /PLOD THRU 257 03451* 0076 76 /LOOKING FOR > 258 03452* 0000 * ENTRCE /IT'S THE RIGHT ONE, TURN TRACE BACK ON 259 03453* 5331 JMP CGSG 260 261 / SKIP LIST FOR E'S 262 03454* 0122 ESKLST, "R /R 263 03455* 0127 "W /W 264 03456* 0102 "B /B 265 03457* 0107 "G /G 266 267 /ENTRIES MUST BE NEGATIVE: 268 269 03460* 0000 * CNDTAB, TESTA /A ALPHABETIC 270 03461* 0000 * TESTD /D DIGIT 271 / TSTW /W UPPER CASE ALPHABETIC 272 03462* 7650 SNA CLA /N NE 0 273 03463* 7640 CNDTB2, SZA CLA /E = EQ 0 274 03464* 0000 * TSTSEP /C R SYMBOL CONSTITUENT 275 03465* 7670 SZL SNA CLA /G > GT 0 276 03466* 7620 SNL CLA /L < LT 0 277 03467* 7620 SNL CLA /T S TRUE 278 03470* 7640 SZA CLA /F U FALSE 279 280 /THIS TABLE PRESUPPOSES 1000000000000 IS ILLEGAL /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 10 Cmd ; FILE # 1 281 282 .SBTTL Cmd " 283 284 03471* 0000 * CDBQ, NCHK /COMMAND " 285 .ERROR 23 /NO NUMBER TO TEST 286 03473* 0000 * SCANUP 287 .SORT CNDLSA,CNDTAB 288 03477* 7510 SPA 289 03500* 5306 JMP B$ 290 .SORT CNDLSB,CNDTB2 291 03504* 7500 SMA /CHECK THAT CHAR WAS TRANSLATED 292 .ERROR 20 /NO - NO SUCH TEST 293 03506* 3310 B$: DCA SKIP /STORE TEST INSTRUCTION 294 03507* 0000 * GETNUM /PERFORM THE TEST 295 03510* 7402 SKIP, HLT /TEST SKIPS IF TRUE 296 03511* 5314 JMP VBARE /AC MAY BE NON-0 297 03512* 7200 CLA /FROM CALL TO TESTA 298 03513* 0000 * POPJ /CONDITION SATISFIED 299 300 .SBTTL Cmd | 301 302 03514* 7240 VBARE, STA /NOT SATISFIED 303 03515* 3310 DCA SKIP /BEGINNING SKIPPING COMMANDS 304 03516* 0000 * SKPSET /CALL SKIPPING ROUTINE 305 03517* 0047 47 /FIND A ' 306 03520* 2310 ISZ SKIP /FOUND A ' 307 03521* 0000 * RESORT /NEED ANOTHER: BACK TO CSML 308 03522* 0000 * ENTRCE /RE-ENABLE TRACE 309 03523* 5400 * JMP I ZIREST /COMMAND ' NO ACTION TO TAKE /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 11 Cmd | FILE # 1 310 311 .SBTTL Cmd > 312 313 03524* 1000 * CHGT, TAD ITRCNT 314 03525* 7650 SNA CLA 315 03526* 5333 JMP CGTC /0 MEANS INFINITY 316 03527* 2000 * ISZ ITRCNT /LOOK FOR COUNT EXHAUSTED 317 03530* 5333 JMP CGTC /NO, CONTINUE 318 03531* 4337 CGSG, JMS POPITR /POP UP OLD ITERATION PARAMETERS 319 03532* 5400 * JMP I ZIREST 320 03533* 1000 * CGTC, TAD ITRST 321 03534* 7450 SNA 322 .ERROR 10 /IF NOT IN ITERATION 323 03536* 5775 JMP I (ZROSPN /BACK TO ROOT 324 325 03537* 0000 POPITR, 0 326 03540* 7201 CLA IAC /** AC NOT NECESSARILY 0 ON ENTRY 327 03541* 0000 * POPL 328 03542* 0000 * ITRCNT 329 03543* 0000 * ITRST 330 03544* 5737 JMP I POPITR /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 12 Cmd > FILE # 1 331 332 CNDLSB, 333 / "W /UPPER CASE ALPHABETIC 334 03545* 0075 "= /=E 335 03546* 0122 "R /=C 336 03547* 0076 "> /=G 337 03550* 0074 "< /=L 338 03551* 0123 "S /=T 339 03552* 0125 "U /=F 340 341 .SBTTL Cmd < 342 343 03553* 7344 CHLT, MTWO /COMMAND < 344 03554* 0000 * PUSHL 345 03555* 0000 * ITRST 346 03556* 0000 * ITRCNT 347 03557* 0000 * NCHK /WAS A NUMBER SPECIFIED? 348 03560* 5367 JMP 1$ /NO, ASSUME INFINITY 349 03561* 1000 * TAD NLINK /YES 350 03562* 7650 SNA CLA 351 03563* 1000 * TAD N 352 03564* 7450 SNA 353 03565* 5250 JMP SEMO /0 OR NEGATIVE MEANS SKIP ITERATION 354 03566* 7041 CIA /MAKE NEGATIVE 355 03567* 3000 * 1$: DCA ITRCNT /SET UP TERMINATION 356 03570* 1000 * TAD SCANP /SAVE CURRENT SCAN PNTR 357 03571* 3000 * DCA ITRST /ALWAYS .GE. 1 IN ITERATION 358 03572* 3000 * DCA NFLG /CLEAR NUMBER FLAG 359 03573* 0000 * POPJ ------ 03575* 0000 * 03576* 0000 * 03577* 3332 360 6200 PAGE 361 6200 RELOC /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 13 Cmd < FILE # 1 362 /3 Q-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 14 SYMBOL TABLE BRACKS 3332 NLINK Z 0*** CAAM Z 0*** NOTRCE X **** CDBQ G 3471 POPITR 3537 CGSG 3531 POPJ X **** CGTC 3533 POPL X **** CHGT G 3524 PUSHJ X **** CHLT G 3553 PUSHL X **** CHR.O G 3205 QBASE Z 0*** CNDI 3431 QOVRLY G 3201 CNDLSA 3272 QP Z 0*** CNDLSB 3545 QSKP X **** CNDTAB 3460 QUOTE Z 0*** CNDTB2 3463 QUOTST X **** COOQ 3243 RESORT X **** CSEM G 3441 SCAN X **** CSMA 3367 SCANP Z 0*** CSMB 3317 SCANUP X **** CSMC 3371 SCHAR Z 0*** CSMD 3256 SEMO 3450 CSME 3303 SETSKP G 3244 CSMF 3364 SKIP 3510 CSMFS 3262 SKPLST 3333 CSMI 3310 SKPRTN 3326 CSML 3251 SKPSET X **** CSML1 3250 SKPTAB 3400 CSML2 3252 SORT X **** CSMO 3312 SORTA1 X **** CSMQ 3263 TECOVQ 6200 ASECT CSMQ1 3264 TESTA X **** CSMU 3260 TESTD X **** CSMY 3267 TSTSEP X **** ENTRCE X **** VBARE G 3514 EOVRLC X **** XOVRLC X **** ERR X **** ZIREST Z 0*** ERR09 G 3443 ZRON X **** ERR10 G 3535 ZROSPN X **** ERR20 G 3505 Z77 Z 0*** ERR23 G 3472 .ERROR M 0000 ESKLST 3454 .SORT M 0000 ESKTAB 3415 FLD: 0 0200 ASECT FOVRLC X **** GETNUM X **** GETQ X **** IOVRLC X **** IREST X **** ITRCNT Z 0*** ITRST Z 0*** LASTC Z 0*** MQ Z 0*** MTWO 7344 N Z 0*** NCHK X **** NFLG Z 0***