File: TECOVF.LS of Disk: V50/Source/Source-Listing-MAC-2
(Source file text)
PAGE LINE SUBTITLE 2 45 Cmd EU 2 46 Cmd ET 2 47 Cmd ES 2 48 Cmd EO 2 49 Cmd EH 2 50 Cmd ED 6 220 Cmd = 6 245 Cmd \ 6 246 Cmd | 8 292 Cmd ^D 8 294 Cmd ^O /3 F-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 1 FILE # 1 1 /3 F-OVERLAY TO TECO V50 2 3 / 08-APR-79 FIXED READ WITH NO WAIT BUG WITH ECHO OFF 4 / ADDED ELSE PROCESSING 5 6 .ENABLE 7BIT 7 8 .MACRO .ERROR ERNUM 9 .GLOBAL ERR'ERNUM 10 ERR'ERNUM: ERR 11 .ENDM 12 13 .MACRO .SORT ARG1,ARG2 14 SORT; ARG1; ARG2-ARG1 15 .ENDM 16 17 7346 MTHREE=CLL STA RTL 18 19 .EXTERNAL IOVRLC,QOVRLC,EOVRLC,XOVRLC 20 .EXTERNAL EDFLAG,ETFLAG 21 .EXTERNAL NCHK,POPJ,NNEW13,NMRBAS,POPJ,ERR,CRLF 22 .ZTERNAL N,Z40,NP,Z4,RADIX,NLINK,DVT1,LASTC 23 .ZTERNAL CLNF,ZZ,P,Z12,Z377,M,CFLG,SCHAR 24 .EXTERNAL EU1,EU2,KTYPE,PUTT,TYPE,ET1,ET8,SCHU,YSKP,EH4,TQMK,T0 25 .EXTERNAL MQLDVI,NCHK,POKE,SCAN,TPUT,UPOC 26 .EXTERNAL NMBR2,PUSHJ,CMIN,VBAR 27 28 .GLOBAL FOVRLY 29 .GLOBAL CTL.D,CTL.O,CBSL,CEQL 30 .GLOBAL DRAD 31 .GLOBAL CHR.ED,CHR.EH,CHR.EO,CHR.ES,CHR.ET,CHR.EU 32 33 0200 .ASECT TECOVF 34 35 7200 *7200 36 37 7200 RELOC 3200 38 39 03200* 0000 * IOVRLC 40 03201* 0000 * QOVRLC 41 03202* 0000 * EOVRLC 42 03203* 0000 * XOVRLC 43 03204* 0000 FOVRLY, 0 /3 F-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 2 FILE # 1 44 45 .SBTTL Cmd EU 46 .SBTTL Cmd ET 47 .SBTTL Cmd ES 48 .SBTTL Cmd EO 49 .SBTTL Cmd EH 50 .SBTTL Cmd ED 51 52 03205* 7001 CHR.EU, IAC 53 03206* 7001 CHR.ET, IAC 54 03207* 7001 CHR.ES, IAC 55 03210* 7001 CHR.EO, IAC 56 03211* 7001 CHR.EH, IAC 57 03212* 1377 CHR.ED, TAD (EDFLAG /*K* FLAGS MUST BE CONSECUTIVE FOR MORE REASONS THAN 1 58 03213* 3302 DCA XXFLAG 59 03214* 1000 * TAD N 60 03215* 7421 MQL /*WM SORRY 61 03216* 0000 * NCHK /ANY ARGUMENT? 62 03217* 5265 JMP 9$ /NO, RETURN VALUE 63 03220* 2000 * ISZ CFLG /WERE 2 ARGUMENTS SPECIFIED? 64 03221* 5225 JMP 8$ /NO 65 03222* 1000 * TAD M /YES 66 03223* 7040 CMA 67 03224* 0702 AND I XXFLAG /TURN OFF BITS SPECIFIED BY M 68 03225* 7501 8$: MQA /OR IN N VALUE 69 03226* 3702 DCA I XXFLAG /SET NEW VALUE 70 03227* 3000 * DCA CFLG 71 03230* 1302 TAD XXFLAG 72 03231* 1276 TAD XX$ 73 03232* 3277 DCA PTR$ 74 03233* 1677 TAD I PTR$ 75 03234* 3277 DCA PTR$ 76 03235* 1677 L$: TAD I PTR$ 77 03236* 7450 SNA 78 03237* 5267 JMP E$ /DONE, RETURN TO SET MULTI8 ECHO 79 03240* 3301 DCA MASK$ /SAVE MASK 80 03241* 2277 ISZ PTR$ 81 03242* 1677 TAD I PTR$ 82 03243* 3252 DCA 1$ /SAVE SKIP CONDITION 83 03244* 2277 ISZ PTR$ 84 03245* 1677 TAD I PTR$ 85 03246* 3300 DCA LOC$ /SAVE LOC TO CHANGE 86 03247* 2277 ISZ PTR$ 87 03250* 1702 TAD I XXFLAG /LOOK AT FLAG 88 03251* 0301 AND MASK$ /'AND' WITH MASK 89 03252* 7402 1$: HLT /SKIP INSTRUCTION 90 03253* 5261 JMP 3$ 91 03254* 1677 TAD I PTR$ 92 03255* 3700 DCA I LOC$ 93 03256* 2277 ISZ PTR$ 94 03257* 2277 2$: ISZ PTR$ 95 03260* 5235 JMP L$ 96 03261* 2277 3$: ISZ PTR$ 97 03262* 1677 TAD I PTR$ 98 03263* 3700 DCA I LOC$ /3 F-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 2-1 Cmd ED FILE # 1 99 03264* 5257 JMP 2$ /3 F-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 3 Cmd ED FILE # 1 100 101 03265* 1702 9$: TAD I XXFLAG /GET VALUE 102 03266* 5776 JMP I (NNEW13 /MAKE NEW 13-BIT VALUE 103 03267* 1775 E$: TAD I (ETFLAG 104 03270* 0330 AND MSK10 /WAS NO ECHO SET ? 105 03271* 7112 CLL RTR /IF ET CHANGED, ALWAYS AFFECT MULTI8 106 03272* 7450 SNA 107 03273* 7325 CLA STL IAC RAL /NO, GIOT 3: ENABLE ECHO 108 03274* 6770 6770 /YES, GIOT 2: DISABLE ECHO 109 03275* 0000 * POPJ 110 111 03276* **** * XX$: -EDFLAG+XXSUBS 112 03277* 0000 PTR$: 0 113 03300* 0000 LOC$: 0 114 03301* 0000 MASK$: 0 115 116 03302* 0000 XXFLAG, 0 /POINTS TO FLAG IN MEMORY ABOVE 4000 117 118 .NOLIST BE 119 120 / MASK; SKIP; LOC; VALUE IF SKIPS; VALUE IF NO SKIP 121 122 03303* 7777 EUSUB, 7777; SMA CLA; EU1; CLA; SNA CLA 123 03310* 7777 7777; SPA SNA CLA; EU2; TAD Z40; NOP 124 03315* 0000 0 125 126 03316* 0001 ETSUB, 1; SNA CLA; KTYPE; PUTT; TYPE 127 03323* 0001 1; SNA CLA; ET1; PUTT; TYPE 128 03330* 0010 MSK10, 10; SNA CLA; ET8; DCA SCHAR; TYPE 129 03335* 0000 0 130 131 03336* 0001 EDSUB, 1; SNA CLA; SCHU; -1; "^ 132 03343* 0002 2; SNA CLA; YSKP; SKP CLA; SZA CLA 133 03350* 0000 0 134 135 03351* 0004 EHSUB, 4; SNA CLA; EH4; TQMK; T0 136 CXSUB, 137 EVSUB, 138 ESSUB, 139 03356* 0000 EOSUB, 0 140 141 .LIST BE /3 F-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 4 Cmd ED FILE # 1 142 143 /RADIX TABLES: 144 /MUST BE IN SAME OVERLAY AS = AND ^O AND ^D 145 146 03357* 7000 ORAD, NOP 147 03360* 1000 1000 148 03361* 0100 100 149 03362* 0010 10 150 03363* **** * DRAD, NP&177+1200 /TAD NP 151 03364* 1750 1000. 152 03365* 0144 100. 153 03366* 0012 10. 154 155 03367* 3336 XXSUBS, EDSUB 156 03370* 3351 EHSUB 157 03371* 3356 EOSUB 158 03372* 3356 ESSUB 159 03373* 3316 ETSUB 160 03374* 3303 EUSUB 161 / EVSUB 162 / CXSUB 163 /MUST ALL BE TOGETHER IN SAME OVERLAY 164 ------ 03375* 0000 * 03376* 0000 * 03377* 0000 * 165 7400 PAGE /3 F-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 5 Cmd ED FILE # 1 166 167 /NUMERICAL OUTPUT ROUTINE 168 169 03400* 0000 ZEROD, 0 170 03401* 3256 DCA ZER$ /INITIALIZE "LEADING ZEROS" FLAG 171 03402* 1600 TAD I ZEROD 172 03403* 2200 ISZ ZEROD 173 03404* 3255 DCA DEV$ /SAVE OUTPUT ROUTINE ADDRESS 174 03405* 1000 * TAD NLINK /POS OR NEGATIVE? 175 03406* 7650 SNA CLA 176 03407* 5224 JMP 2$ /POSITIVE 177 03410* 1377 TAD (ORAD 178 03411* 7041 CIA 179 03412* 1000 * TAD RADIX 180 03413* 7650 SNA CLA 181 03414* 5221 JMP 1$ /OCTAL 182 03415* 1000 * TAD N /DECIMAL 183 03416* 7041 CIA 184 03417* 3000 * DCA N /NEGATE 185 03420* 7410 SKP 186 03421* 1000 * 1$: TAD Z4 /CONVERT - TO 1 187 03422* 1376 TAD ("- 188 03423* 4655 JMS I DEV$ /OUTPUT MINUS SIGN 189 03424* 7346 2$: MTHREE 190 03425* 3257 DCA CNT$ /ITERATION COUNT 191 03426* 1000 * TAD RADIX 192 03427* 3260 DCA R$ 193 03430* 2260 3$: ISZ R$ 194 03431* 1660 TAD I R$ 195 03432* 3235 DCA 4$ /GET DIVISOR 196 03433* 1000 * TAD N 197 03434* 0000 * MQLDVI /DIVIDE BY A POWER OF THE BASE 198 03435* 0000 4$: 0 199 03436* 1256 TAD ZER$ 200 03437* 7450 SNA 201 03440* 5245 JMP 5$ /IGNORE LEADING ZEROS 202 03441* 1375 TAD ("0 203 03442* 4655 JMS I DEV$ 204 03443* 7130 STL RAR 205 03444* 3256 DCA ZER$ /SET LEADING ZEROS FLAG 206 03445* 1000 * 5$: TAD DVT1 /GET REMAINDER 207 03446* 3000 * DCA N 208 03447* 2257 ISZ CNT$ /GO AROUND AGAIN? 209 03450* 5230 JMP 3$ /WHY NOT? 210 03451* 1000 * TAD N 211 03452* 1375 TAD ("0 212 03453* 4655 JMS I DEV$ /OUTPUT LAST DIGIT NO MATTER WHAT 213 03454* 5600 JMP I ZEROD 214 215 03455* 0000 DEV$: 0 /WHERE WE'RE SENDING THE DIGITS 216 03456* 0000 ZER$: 0 217 03457* 0000 CNT$: 0 218 03460* 0000 R$: 0 /3 F-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 6 Cmd ED FILE # 1 219 220 .SBTTL Cmd = 221 222 03461* 0000 * CEQL, NCHK /COMMAND = 223 .ERROR 21 /NO NUMBER 224 03463* 1000 * TAD RADIX 225 03464* 3306 DCA TMP$ 226 03465* 4774 JMS I (POKE /LOOK AHEAD ONE CHARACTER 227 03466* 1373 TAD (-"= /CHECK FOR = SIGN 228 03467* 7640 SZA CLA 229 03470* 5273 JMP 1$ /SINGLE = 230 03471* 0000 * SCAN /DOUBLE = (PASS UP SECOND ONE) 231 03472* 7610 SKP CLA /CLEAR AC 232 03473* 1000 * 1$: TAD Z4 233 03474* 1377 TAD (ORAD 234 03475* 3000 * DCA RADIX /SET OCTAL RADIX TEMPORARILY 235 03476* 4200 JMS ZEROD 236 03477* 0000 * TPUT 237 03500* 1306 TAD TMP$ 238 03501* 3000 * DCA RADIX /RESTORE ORIGINAL RADIX 239 03502* 2000 * ISZ CLNF /: SEEN? 240 03503* 0000 * CRLF /NO, END WITH CRLF 241 03504* 3000 * DCA CLNF 242 03505* 0000 * POPJ 243 03506* 0000 TMP$: 0 244 245 .SBTTL Cmd \ 246 .SBTTL Cmd | 247 248 03507* 1000 * CBSL, TAD LASTC /GET CHARACTER BEFORE IT WAS TRANSLATED TO UPPER CASE 249 03510* 0000 * AND Z40 /SEE IF IT WAS \ OR | (VERICAL BAR) 250 03511* 7640 SZA CLA 251 03512* 5772 JMP I (VBAR /COMMAND | (VERTICAL BAR) 252 03513* 0000 * NCHK /COMMAND \ (BACKSLASH) 253 03514* 5320 JMP CBSN 254 03515* 4200 JMS ZEROD 255 03516* 0000 * UPOC 256 03517* 0000 * POPJ /3 F-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 7 Cmd | FILE # 1 257 258 03520* 0000 * CBSN, PUSHJ 259 03521* 0000 * NMBR2 /INITIALIZE RESULT TO 0 260 03522* 4345 JMS PTCH 261 03523* 1371 TAD (-"- /CHECK FOR MINUS SIGN 262 03524* 7440 SZA 263 03525* 5330 JMP .+3 /NOT MINUS 264 03526* 0000 * PUSHJ 265 03527* 0000 * CMIN /RECORD MINUS SIGN 266 03530* 7041 CIA 267 03531* 7112 CLL RTR 268 03532* 7650 SNA CLA /CHECK FOR PLUS SIGN 269 03533* 2000 * L$: ISZ P /BUMP POINTER PAST SIGN 270 03534* 4345 JMS PTCH 271 03535* 1370 TAD (-72 272 03536* 7100 CLL 273 03537* 1000 * TAD Z12 274 03540* 7420 SNL /IS IT A DIGIT? 275 03541* 0000 * POPJ /NO 276 03542* 0000 * PUSHJ 277 03543* 0000 * NMBR2 /YES - ACCUMULATE IT 278 03544* 5333 JMP L$ /AND LOOP /3 F-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 8 Cmd | FILE # 1 279 280 03545* 0000 PTCH, 0 281 03546* 1000 * TAD P /V3C 282 03547* 7161 STL CIA /CHECK FOR END OF BUFFER 283 03550* 1000 * TAD ZZ 284 03551* 7670 SZL SNA CLA 285 03552* 0000 * POPJ 286 03553* 6211 CDF 10 287 03554* 1400 * TAD I P /GET A CHAR 288 03555* 0000 * AND Z377 289 03556* 6201 CDF 0 290 03557* 5745 JMP I PTCH 291 292 .SBTTL Cmd ^D 293 294 .SBTTL Cmd ^O 295 296 03560* 1000 * CTL.D, TAD Z4 /SET RADIX DECIMAL 297 03561* 1377 CTL.O, TAD (ORAD /SET RADIX OCTAL 298 03562* 3000 * DCA RADIX 299 03563* 1400 * TAD I RADIX 300 03564* 3767 DCA I (NMRBAS /EITHER "NOP"(8) OR "TAD NP"(10) 301 03565* 0000 * POPJ 302 ------ 03567* 0000 * 03570* 7706 03571* 7723 03572* 0000 * 03573* 7703 03574* 0000 * 03575* 0060 03576* 0055 03577* 3357 303 7600 PAGE 304 7600 RELOC /3 F-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 9 Cmd ^O FILE # 1 305 /3 F-OVERLAY TO TECO V50 MACREL-V2C FRI 07-DEC-90 PAGE 10 SYMBOL TABLE CBSL G 3507 POPJ X **** CBSN 3520 PTCH 3545 CEQL G 3461 PUSHJ X **** CFLG Z 0*** PUTT X **** CHR.ED G 3212 QOVRLC X **** CHR.EH G 3211 RADIX Z 0*** CHR.EO G 3210 SCAN X **** CHR.ES G 3207 SCHAR Z 0*** CHR.ET G 3206 SCHU X **** CHR.EU G 3205 TECOVF 7600 ASECT CLNF Z 0*** TPUT X **** CMIN X **** TQMK X **** CRLF X **** TYPE X **** CTL.D G 3560 T0 X **** CTL.O G 3561 UPOC X **** CXSUB 3356 VBAR X **** DRAD G 3363 XOVRLC X **** DVT1 Z 0*** XXFLAG 3302 EDFLAG X **** XXSUBS 3367 EDSUB 3336 YSKP X **** EHSUB 3351 ZEROD 3400 EH4 X **** ZZ Z 0*** EOSUB 3356 Z12 Z 0*** EOVRLC X **** Z377 Z 0*** ERR X **** Z4 Z 0*** ERR21 G 3462 Z40 Z 0*** ESSUB 3356 .ERROR M 0000 ETFLAG X **** .SORT M 0000 ETSUB 3316 ET1 X **** ET8 X **** EUSUB 3303 EU1 X **** EU2 X **** EVSUB 3356 FLD: 0 0200 ASECT FOVRLY G 3204 IOVRLC X **** KTYPE X **** LASTC Z 0*** M Z 0*** MQLDVI X **** MSK10 3330 MTHREE 7346 N Z 0*** NCHK X **** NLINK Z 0*** NMBR2 X **** NMRBAS X **** NNEW13 X **** NP Z 0*** ORAD 3357 P Z 0*** POKE X ****