1 /10 OS/8 TECO VERSION 5 2 / 3 / 4 / 5 / 6 / 7 / 8 / 9 / 10 / 11 /COPYRIGHT (C) 1974,1975,1976,1977 BY DIGITAL EQUIPMENT CORPORATION 12 / 13 / 14 / 15 / 16 / 17 / 18 / 19 / 20 / 21 / 22 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE 23 /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT 24 /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY 25 /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT. 26 / 27 /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER 28 /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED 29 /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH 30 /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. 31 / 32 /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE 33 /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY 34 /DIGITAL. 35 / 36 / 37 / 38 / 39 / 40 / 41 / 42 / 43 / 44 / 45 /BROUGHT TO YOU BY: RUSS HAMM, O.M.S.I., AND RICHARD LARY (IN THAT ORDER) 46 /WITH ASSISTANCE FROM MARIO DENOBILI OF THE P?S 47 /PATCHES INCORPORATED BY S.R. ON 5-AUGUST-75 FOR OS/8 V3C: 48 49 /1. UPDATED VERSION # TO V4 50 /2. INCORPORATED PATCHES #S 1 & 2 (V302 AND V303) 51 / PREVENTS \ FROM GOING OUTSIDE OF BUFFER 52 / RESETS CFLAG TO PREVENT ARGUMENT ERROR EVERY 4096 TIMES IN LOOP 53 54 / CHANGES FOR V5: -S.R.- 55 56 /3. ADDED OVERLAYS 57 /4. EXPANDED ERROR MESSAGES 58 /5. DOCUMENTED CORE LAYOUT 59 /6. ADDED "T, "S, "F, "U, AND "R 60 /7. FIXED EG BUG 61 /8. MADE DEFAULT ITERATION COUNT TRULY INFINITE 62 /9. ADDED N^T 63 /10. ADDED := 64 /11. ADDED SOME SAFETY ERROR MESSAGES 65 / (I) ERROR IF Y HAS A NUMERIC ARGUMENT 66 / (II) ERROR IF TWO ARGUMENTS ARE SPECIFIED TO D 67 /12. REMOVE ^R (OBSOLETE COMMAND) 68 /13. REMOVE "A AND "B (AFTER AND BEFORE) 69 /14. ADDED 13-BIT ARITHMETIC 70 /15. MADE = AND \ GIVE SIGNED RESULTS (DECIMAL ONLY) 71 /16. ALLOW 13-BIT NUMERIC Q-REGISTERS. 72 / THIS IS ACCOMPLISHED BY RESERVING THE HIGH ORDER BIT 73 / OF THE LENGTH WORD. STRING PORTION OF Q-REGISTER 74 / NOW RESTRICTED TO 2047 CHARACTERS. IT GETS CHECKED BY 75 / ^U AND X. BELL RINGS WITHIN 12 CHARACTERS OF FILLING 76 / UP COMMAND STRING Q-REGISTER. 77 /17. STORED LINK AS LOW ORDER BIT IN NLINK IN CASE WE EVER 78 / WANT TO GO TO 24-BIT ARITHMETIC. 79 /18. ERROR ON A,B,C 80 /19. P DOESN'T CREATE FORM FEEDS 81 /20. ALLOW @ MODIFIER WITH ER, EW, EB. 82 /21. EK 83 /22. ^S FREEZE 84 /23. EGTEXT$ 85 /24. GOT RID OF F_ 86 /25. F IS ILLEGAL IF NOT FOLLOWED BY S OR N 87 /26. W IS NOW AN ILLEGAL COMMAND (EXCEPT ON -12) 88 /27. ADDED :G 89 /28. Y AND _ GIVE ERRORS IF DATA IS GOING TO BE LOST 90 / (IF OUTPUT FILE IS OPEN AND BUFFER IS NOT EMPTY) 91 /29. CASE FLAGGING IMPLEMENTED 92 /30. "< AND "> ARE SYNONYMOUS WITH "L AND "G 93 /31. ^G AND ^G* 94 /32. SCOPE RUBOUTS 95 /33. == NOW PRINTS NUMBER IN OCTAL 96 /34. EUFLAG AND ETFLAG IMPLEMENTED 97 /35. CASE FLAGGING WORKS 98 /36. IMAGE MODE (ET BIT 11) APPLIES TO T, ^A, AND N^T 99 / IT DOES NOT APPLY TO :G 100 /37. ERROR IF TRY TO DO AN EB TO A .BK FILE (IT DOES AN ER) 101 /38. VT AND FF ARE NOW LINE TERMINATORS 102 /39. BELL ECHOES AS ^G AS WELL AS RINGING BELL 103 /40. ^K IS AN ERROR 104 /41. REMOVED ^Z COMMAND 105 /42. CHANGED ^V TO EO 106 /43. CHANGED ^W TO W 107 /44. MEMORY RESIDENT OVERLAYS IF MORE THAN 12K 108 /45. LONG FORM ERROR MESSAGES ON 1EH 109 /46. ET FLAG 8'S BIT AFFECTS ECHOING OF ^T 110 /47. NEGATIVE OR 0 ITERATION SKIPS 111 /48. CTRL/N 112 /49. CTRL/C TRAP 113 114 /KNOWN BUGS 115 /1. LARGE T OR X AND ONLY 1 BLOCK LEFT IN OUT DEV 116 /2. ^S DOESN'T KEEP SCREEN ON 117 /3. FIX BATCH INTERRACTION 118 /4. MAKE VT AND FF SIMULATION INDEPENDENT OF TAB 119 120 DECIMAL 121 VERSN= 5 / VERSION NUMBER - CHANGE WITH EVERY EDIT 122 OCTAL / LAST EDIT 12-FEB-76 123 IN= 6200 /INPUT BUFFER AT 06200 124 OUT= 5200 /OUTPUT BUFFER AT 05200 125 ZMAX= 7640 /MAX 4000[10] CHARACTERS IN TEXT BUFFER 126 QMAX= 3720 /MAX 2000[10] Q-REGISTER CHARS IN 8K 127 Q12MAX= 5600 /MAX 2944[10] Q-REGISTER CHARS IN 12K 128 CHNSTR= 46 /38 CHARACTER STRING PASSED ON CHAIN 129 130 TWO= CLA CLL CML RTL 131 MTWO= CLA CLL CMA RAL 132 MTHREE= CLA CLL CMA RTL 133 AC3777= CLL STA RAR 134 SCPBIT= 7726 135 /THINGS WE WOULD LIKE TO ADD: 136 137 /:ER 138 /:EB 139 /NV 140 /@^A 141 /FR 142 /-S 143 /::S 144 /^EQ 145 /M,NS 146 /[Q 147 /]Q 148 /NON-EXACT SEARCH MODE 149 /*N 150 /ERFILESPEC/S FOR SUPERTECO 151 /^N 152 /CHECK FOR $ ON NI$ 153 /CHECK INTO SEARCHES IN ITERATIONS 154 /ERR MSG ON EA, EP 155 /NV=(1-N)TNT 156 /^C TRAP 157 /:X 158 159 /THINGS FOR -11: 160 /^R 161 /3EH 162 /M,ND 163 /ET BIT 15 SHOULD BE LOWER 164 /ECHO OF NULL 165 /***************************************** 166 / TECO ERROR MESSAGES: 167 /***************************************** 168 169 / TECO ERROR MESSAGES CONSIST OF A QUESTION MARK AND THREE LETTERS 170 / TYPING "?" IMMEDIATELY AFTER AN ERROR MESSAGE PRINTOUT PRINTS 171 / THE CURRENT COMMAND LINE UP TO THE ERROR CHARACTER. 172 173 /1 ?ILL ILLEGAL COMMAND 174 /2 ?UTC INCOMPLETE COMMAND (PDL NOT EMPTY AT END OF COMMAND STRING) 175 /3 ?IQN NON-ALPHANUMERIC Q-REGISTER NAME 176 /4 ?PDO PUSHDOWN OVERFLOW (MACROS & ITERATIONS NESTED TOO DEEPLY) 177 /5 ?MEM TEXT BUFFER OVERFLOW 178 /6 ?STL SEARCH STRING TOO LARGE ( >31 CHARS) 179 /7 ?ARG NUMBER MISSING BEFORE COMMA 180 / OR TWO ARGUMENTS SPECIFIED TO D 181 / OR 3 NUMERIC ARGUMENTS 182 /8 ?IFN ILLEGAL FILE NAME IN "ER","EW" OR "EB" COMMAND 183 /9 ?SNI SEMICOLON ON COMMAND LEVEL 184 /10 ?BNI ITERATION CLOSE (>) WITHOUT MATCHING OPEN (<) 185 /11 ?POP ATTEMPT TO MOVE POINTER OUTSIDE OF TEXT BUFFER 186 /12 ?QMO Q-REGISTER STORAGE OVERFLOW 187 /13 ?UTM INCOMPLETE COMMAND (PDL NOT EMPTY AT END OF MACRO) 188 /14 ?OUT OUTPUT FILE TOO BIG OR OUTPUT PARITY ERROR 189 /15 ?INP PARITY ERROR ON INPUT FILE 190 /16 ?FER FILE ERROR: CAN MEAN EITHER 191 / A) INPUT FILE NOT FOUND ON "ER" COMMAND 192 / B) CANNOT ENTER OUTPUT FILE ON "EW" OR "EB" COMMAND 193 / C) DEVICE SPECIFIED FOR FILE DOES NOT EXIST 194 / D) "EB" COMMAND GIVEN ON NON-FILE-STRUCTURED DEVICE 195 /17 ?FUL OUTPUT COMMAND WOULD HAVE OVERFLOWED OUTPUT FILE 196 / [PANIC MODE] 197 /18 ?NAY NUMERIC ARGUMENT SPECIFIED WITH Y COMMAND 198 /19 ?IEC E FOLLOWED BY AN ILLEGAL CHARACTER 199 /20 ?IQC " FOLLOWED BY AN ILLEGAL CHARACTER 200 /21 ?NAE NO NUMERIC ARGUMENT TO THE LEFT OF AN = 201 /22 ?NAU NO NUMERIC ARGUMENT TO THE LEFT OF A U 202 /23 ?NAQ NO NUMERIC ARGUMENT TO THE LEFT OF A " 203 /24 ?SRH FAILING SEARCH AT COMMAND LEVEL 204 /25 ?NAP NEGATIVE OR ZERO ARGUMENT TO P 205 /26 ?NAC NEGATIVE ARGUMENT TO COMMA 206 /27 ?NYI CASE SUPPORT NOT IMPL (USE W FOR WATCH) 207 /28 ? 208 /29 ?NAS NEGATIVE OR ZERO ARGUMENT WITH A SEARCH 209 /30 ?WLO WRITE LOCKED SYSTEM DEVICE 210 /31 ?IFC F FOLLOWED BY AN ILLEGAL CHARACTER 211 /32 ?YCA Y (OR _) COMMAND ABORTED BECAUSE DATA WOULD BE LOST 212 /33 ?CCL CCL NOT FOUND OR EG ARGUMENT TOO LONG 213 /34 ?XAB EXECUTION ABORTED BY ^C 214 /35 ?NYI CASE SUPPORT NOT IMPL (USE EO FOR VERSION) 215 /36 ?NFO ATTEMPT TO OUTPUT WITHOUT OPENING AN OUTPUT FILE 216 / CORE LAYOUT AND OVERLAY STRUCTURE 217 218 / BUFFER STRUCTURE: 219 220 /BUFFER 8K VERSION 12K VERSION 221 222 /INPUT BUFFER 06200-07200 25600-27600 223 /OUTPUT BUFFER 05200-06200 05200-07200 224 /Q-REG STORAGE OVER TEXT BFR 20000-25600 225 226 / HANDLER LOCATIONS: 227 228 /HANDLER PDP-8 VERSION PDP-12 VERSION 229 230 /INPUT HANDLER 7200-7600 7200-7400 231 /OUTPUT HANDLER 4000-4400 7400-7600 232 /SIZE OF HNDLR 2-PAGES 1-PAGE 233 /DISPLAY CODE NONE 4000-4400 234 235 / OVERLAY STRUCTURE 236 237 /ALL OVERLAYS ARE TWO PAGES LONG AND RESIDE IN CORE 238 /AT LOCATIONS 3200-3600 WHEN RUNNING. THE I-OVERLAY 239 /INITIALLY RESIDES IN THESE LOCATIONS. 240 241 /OVERLAY BLOCK INITIAL LOCATION CONTENTS 242 243 / I-OVERLAY 40 3200-3600 ER,EW,EB 244 / Q-OVERLAY 41 5600-6200 ", O, SKPSET 245 / E-OVERLAY 42 6200-6600 ERROR MESSAGE PROCESSOR 246 / X-OVERLAY 43 6600-7200 EX,EC,EG,EK,EF (EA,EI,EN,EP) 247 / F-OVERLAY 44 7200-7600 ED,EH,EO,ES,ET,EU (EV) 248 249 IOVRLC=40 250 QOVRLC=41 251 EOVRLC=42 252 XOVRLC=43 253 FOVRLC=44 254 255 IOVRLY=3200 256 QOVRLY=3201 257 EOVRLY=3202 258 XOVRLY=3203 259 FOVRLY=3204 260 261 /EACH OVERLAY IS ASSIGNED A LOCATION AT THE BEGINNING OF PAGE 3200. 262 /IF THIS LOCATION IS 0 (AS IT ALWAYS IS), THEN THAT OVERLAY IS NOT 263 /IN CORE. IF IT IS NOT 0, THEN THIS LOCATION CONTAINS THE 264 /BLOCK NUMBER TO READ IN THAT OVERLAY. 265 /THUS EACH OVERLAY HAS POINTERS TO ALL THE OTHER OVERLAYS. 266 MEMLOC=2000 267 268 /IN 16K MACHINES, FIELD 3 IS USED TO HOLD OVERLAYS 269 270 /NAME BLOCK MEMORY 271 272 /I 40 2000 273 /Q 41 2400 274 /E 42 3000 275 /X 43 3400 276 /F 44 4000 277 278 279 /INITIAL MEMORY LAYOUT 280 281 /0000-3177 TECO 282 /3200-3577 OVERLAY AREA (INITIALLY I-OVERLAY) 283 /3600-3777 TECO 284 /4000-4377 PDP-12 DISPLAY ROUTINE 285 /4400-5177 TECO 286 /5200-5577 INITIALIZATION CODE 287 /5600-6177 Q-OVERLAY CODE 288 /6200-6577 E-OVERLAY CODE 289 /6600-7177 X-OVERLAY CODE 290 /7200-7577 F-OVERLAY CODE 291 292 /FIELD 1: 293 294 /4400-7377 EXTENDED ERROR MESSAGES 295 / MOVES TO FIELD 3 296 /** TECO KLUDGES ** /7/27/73 297 /ONE OF THE REASONS WHY TECO GETS SO MANY OPERATIONS 298 /INTO SUCH A SMALL AMOUNT OF CORE IS THAT IT 299 /IS FULL OF *K*L*U*D*G*E*S*. THESE SHOULD BE KEPT IN MIND WHEN 300 /MODIFYING THE PROGRAM. SOME OF THEM ARE: 301 302 / THE "SORT" ROUTINE COMPARE LIST MUST END WITH A NEGATIVE NUMBER. 303 / USUALLY A FORTITUOUS JMS OR OPR INSTRUCTION IS USED 304 305 / THE "SORT" JUMP LIST ENTRIES ARE TREATED AS JUMP ADDRESSES 306 / IF THEY ARE POSITIVE AND SUBSTITUTE VALUES IF THEY ARE 307 / NEGATIVE - THEREFORE ALL LOCS JUMPED TO MUST BE BELOW 4000 308 / ANOTHER CONSEQUENCE IS THAT "QUOTST" CANNOT BE CALLED FROM 309 / ABOVE 4000 310 311 / THERE ARE OTHER LOCALIZED KLUDGES - THEY CAN GENERALLY 312 / BE IDENTIFIED BY THE APPEARANCE OF A DOUBLE-ASTERISK IN THE 313 / COMMENTS FIELD ALONG WITH A TERSE DESCRIPTIVE COMMENT 314 315 316 317 / OS/8 EQUIVALENCES: 318 319 JSBITS= 7746 /JOB STATUS BITS - IN FIELD 0 320 OSHNDT= 7647 /OS/8 DEVICE HANDLER TABLE - IN FIELD 1 321 OSDCBT= 7760 /OS/8 DEVICE CONTROL TABLE - IN FIELD 1 322 CCLADR= 400 /CCL OVERLAY LOAD ADDRESS 323 CCLOVL= 67 /BLOCK OF CCL OVERLAY 324 CCLOST= 602 /CCL OVERLAY SECONDARY START ADDRESS 325 *0 326 000000 0000 NAME, ZBLOCK 4 /NAME BUILD BUFFER - MUST BE AT LOCATION 0 000001 0000 000002 0000 000003 0000 327 /LOCS 4,5&6 ARE RESERVED SO WE CAN USE OS/8 ODT 328 329 *10 /CONSTANTS & NON-INDIRECT TEMPS STORED IN AUTO-XRS! 330 000010 0033 QUOTE, 33 /QUOTE CHAR - SINGLE WORD SORT LIST 331 ERR01, 332 000011 4514 SERR, ERR /END OF LIST 333 000012 0002 INRSIZ, 2 /4 IF 12K MACHINE 334 000013 0003 NUMLNS, 3 /NUMBER OF LINES (+ AND -) TO DISPLAY ON VR12 SCOPE 335 000014 7577 DX, 7577 /DISPLAY XR 336 000015 5150 SXR, QPUT12-1/XR USED BY SEARCH PROCESSOR 337 000016 2226 INXR, ASR33-1 /XR USED TO UNPACK INPUT BUFFER 338 000017 5166 XR, ASR35-1 /WORK XR 339 340 000020 0000 NMT, 0 /USED AS NUMBER TEMP AND SEARCH FAIL FLAG 341 000021 0000 CFLG, 0 /COMMA FLAG 342 000022 0000 CLNF, 0 /COLON FLAG 343 000023 0000 TFLG, 0 /TRACE FLAG 344 000024 0000 NFLG, 0 /NUMBER FLAG 345 000025 0000 QFLG, 0 /QUOTED STRING FLAG 346 000026 0000 M, 0 /NUMBER ARGS 347 000027 0000 N, 0 348 000030 0000 NLINK, 0 /LINK AFTER ARITH OPERATIONS - TESTED BY "A AND "B 349 000031 0000 CHAR, 0 /CHARACTER BUFFER 350 000032 0000 ITRST, 0 /ITERATION FLAG 351 000033 0000 ITRCNT, 0 /ITERATION COUNT 352 000034 0000 MPDL, 0 /MACRO FLAG 353 000035 0000 SCHAR, 0 /LAST CHAR SORTED 354 000036 0000 FFFLAG, 0 /FORM FEED FLAG - 7777 IF FORM FEED SEEN ON THIS READ 355 000037 0000 REND, 0 /INPUT END-OF-FILE FLAG 356 000040 0000 SCANP, 0 /COMMAND LINE EXECUTION POINTER 357 000041 0000 OSCANP, 0 /BACKUP FOR SCANP 358 000042 5140 PDLP, PDLBEG /PUSH-DOWN-LIST POINTER 359 000043 0000 QCMND, 0 /COMM LINE OR MACRO POINTER 360 000044 0000 P, 0 /CURRENT PNTR TO TEXT BUFFER 361 000045 0000 ZZ, 0 /END OF TEXT BUFFER POINTER 362 000046 0000 Q, 0 /EXTRA BUFFER POINTERS 363 IFNZRO .-47 <_ERROR_> 364 000047 0000 R, 0 365 000050 0000 QP, 0 /Q REGISTER POINTER 366 000051 0046 QZ, CHNSTR /END OF Q-REG POINTER 367 Z7, 368 000052 0007 CTLBEL, 7 369 000053 0015 CACR, 15 /CR 370 000054 0011 CAHT, 11 /HT 371 000055 0033 CAAM, 33 /ALT MODE 372 000056 0014 CAFF, 14 /FF: END OF PAGE 373 000057 0013 13 /VT 374 000060 0012 CALF, 12 /LF 375 ERR07, 376 000061 4514 NERR, ERR /END OF LIST 377 000062 4554 RADIX, DRAD /RADIX TABLE POINTER - DRAD OR ORAD 378 000063 0000 MQ, 0 379 000064 0000 DVT1, 0 380 000065 0000 ODEV, 0 /OUTPUT DEVICE NUMBER 381 000066 0000 OUTHND, 0 382 000067 0000 INHND, 0 383 000070 0000 EBFLG, 0 /EDIT BACKUP FLAG 384 000071 0000 QNMBR, 0 /LAST Q-REG REFERENCED 385 000072 0000 QBASE, 0 /BASE OF CURRENT COMMAND LINE 386 000073 0000 QLENGT, 0 /LENGTH OF CURRENT COMMAND LINE 387 000074 0000 QPTR, 0 /POINTER TO Q-REGISTER CONTROL BLOCK 388 000075 0000 ICRCNT, 0 /INPUT DOUBLEWORD COUNTER 389 000076 0000 OCRCNT, 0 /OUTPUT " 390 000077 0000 OPTR2, 0 /OUTPUT BUFFER POINTER 391 000100 0000 INRCNT, 0 /NUMBER OF INPUT RECORDS LEFT 392 000101 0000 OCMDLN, 0 /LENGTH OF OLD COMMAND LINE 393 000102 0000 CDT, 0 394 000103 4521 KTYPE, TYPE /*ET SET TO PUTT IF NO CONVERSION 395 000104 0000 TEMPT, 0 /TEMP. GET RID OF WHEN FIND ROOM ON PAGE 396 000105 0000 MEMSIZ, 0 /HIGHEST MEMORY FIELD IN BITS 9-11 397 000106 0000 LASTC, 0 /LAST CHARACTER GOTTEN OUT OF COMMAND LINE 398 399 /NFLG: 0'ED BY COMMANDS WHICH EAT ARGUMENTS OR DON'T RETURN 400 / VALUES; SUCH AS C,R,J,L,^A,X,$,',>,'U,G,O AND 401 / NON-COLON MODIFIED SEARCHES 402 / SET TO -1 TO INDICATE THATWWE'VE SEEN A NUMBER 403 /TECO PSEUDO-OPERATIONS 404 405 000107 0511 PUSH= JMS I .; PUSHXX 406 000110 0503 POP= JMS I .; POPXX /** MUST BE ONE MORE THAN "PUSH" 407 000111 0521 PUSHJ= JMS I .; PUSHJY 408 000112 0476 POPJ= JMP I .; POPJXX 409 000113 0530 PUSHL= JMS I .; PUSHLX 410 POPL= PUSHL /** POPL CALLED WITH POSITIVE AC 411 412 000114 2600 ERR= JMS I .;ERROR,ERRXX 413 000115 1533 SORT= JMS I .; SORTB 414 000116 1561 RESORT= JMP I .; SORTA2 415 000117 2423 SCAN= JMS I .; SGET 416 000120 2725 LISTEN= JMS I .; TYI 417 000121 2200 TYPE= JMS I .; TYPCTV 418 000122 2600 OUTPUT= JMS I .;OUTR, ERRXX /** MUST BE ONE MORE THAN "TYPE" 419 /PROBABLY NOT ANY MORE (19-JUN-77) 420 000123 3040 CRLF= JMS I .; TYCRLF 421 000124 0422 GETQ= JMS I .; GETQX 422 000125 3244 SKPSET= JMS I .; SETSKP 423 NCHK= ISZ NFLG /USED TO BE A SUBROUTINE CALL 424 000126 0453 CTCCHK= JMS I .; CHKCTC 425 000127 4626 BZCHK= JMS I .; CHKBZ 426 000130 4461 QCHK= JMS I .; CHKQF 427 000131 2367 QSKP= JMS I .; QOVER 428 000132 2477 QREF= JMS I .; QREFER 429 000133 2400 QSUM= JMS I .; QSUMR 430 000134 0400 QPUT= JMS I .; QPUTS 431 000135 2563 QUOTST= JMS I .; QTST 432 000136 2465 SETCMD= JMS I .; CMDSET 433 000137 3073 GETN= JMS I .; NGET 434 000140 2265 ADJQ= JMS I .; QADJ 435 000141 3644 MQLDVI= JMS I .; DVIMQL 436 000142 2752 UPPERC= JMS I .; CUPPER 437 000143 4643 SCANUP= JMS I .; SCUPPR 438 000144 3615 TSTSEP= JMS I .; SCHSRT 439 000145 4003 DISPLY= JMS I .; DSPLAY 440 000146 4447 NOTRCE= JMS I .; SAVTRA 441 000147 4454 ENTRCE= JMS I .; RESTRA 442 000150 2525 OVRLAY= JMS I .; OVERLY 443 000151 0643 GETNUM= JMS I .; NUMGET /GET 13 BIT NUMBER INTO L,AC 444 000152 0555 PUTT= JMS I .; TPUT 445 PAGE 446 /ENTER HERE TO USE AN ASR33 AS THE TELETYPE 447 448 000200 2740 TECO, ISZ I SPUT /IF CALLED BY "R" OR "RUN" - CHANGED TO TLS 449 000201 5730 TECO1, JMP I COMPAR /IF CALLED VIA "CHAIN" - CHANGED TO "JMP T0A" 450 000202 4330 TBEL, JMS COMPAR /HERE ON ^G - 2 ^G'S KILL ENTIRE COMMAND 451 452 000203 4523 T0, CRLF 453 000204 1377 T0A, TAD (PDLBEG 454 000205 3042 DCA PDLP /INITIALIZE PUSHDOWN LIST 455 000206 1042 T1, TAD PDLP 456 000207 1376 TAD (-PDLBEG 457 000210 7640 SZA CLA 458 000211 4514 ERR02, ERR /ERROR - PUSHDOWN LIST DID NOT BALANCE 459 000212 1375 TAD (45 460 000213 4532 QREF /SET UP POINTERS TO COMMAND LINE 461 000214 1577 TAD I [QPNTR 462 000215 3101 DCA OCMDLN /SAVE OLD COMMAND LINE LENGTH 463 /** SAVE ONLY IF < 20? 464 000216 4540 ADJQ /REDUCE COMMAND LINE LENGTH TO 0 465 000217 7100 CLL 466 000220 4511 PUSHJ 467 000221 1227 NRET /CLEAR NUMBER AND LAST OPERATOR 468 000222 3021 DCA CFLG 469 000223 3034 DCA MPDL /DELETE MACRO FLAG 470 000224 3032 DCA ITRST /ALSO ITERATION FLAG, 471 000225 3022 DCA CLNF /AND COLON FLAG 472 000226 4511 PUSHJ /KILL QUOTE FLAG 473 000227 3166 ZROSPN /KILL QUOTE AND NUMBER FLAGS AND SCAN POINTER 474 000230 6032 KCC /KILL ^O IF IN KEYBOARD BUFFER 475 000231 3774 DCA I (CHOOPS /KILL FATAL ERROR RETURN 476 000232 1176 TAD [52 477 000233 7410 SKP 478 000234 4773 ROCMND, JMS I (BACKUP /BACK UP AND GET LAST CHAR 479 000235 4521 TYPE 480 000236 3031 T2M1, DCA CHAR /KILL CHAR TO PREVENT SPURIOUS DOUBLE CHARACTERS 481 000237 4520 T2, LISTEN /BUILD COMMAND LINE 482 000240 4515 SORT 483 000241 4600 COMLST 484 000242 7760 COMTAB-COMLST 485 000243 3031 T2A, DCA CHAR 486 000244 4340 JMS SPUT /PUT INTO C.L. BUFFER 487 000245 5237 JMP T2 /GO GET ANOTHER 488 000246 1035 TCTLU, TAD SCHAR 489 000247 4521 TYPE /PRINT "^U" 490 000250 4773 TCTLUP, JMS I (BACKUP 491 000251 1175 TAD [-12 /CHECK FOR LF 492 000252 7640 SZA CLA 493 000253 5250 JMP TCTLUP /LOOP UNTIL LF 494 000254 7001 IAC 495 000255 5772 JMP I (TSP9 496 497 000256 1053 TCRLF, TAD CACR /CR IN COMM LINE 498 000257 3031 DCA CHAR 499 000260 4340 JMS SPUT /PUT INTO COMM LINE 500 000261 1060 TAD CALF /THEN PUT IN A LF 501 000262 5243 JMP T2A /AND GET SOME MORE 502 /COMMAND EXECUTION LOOP 503 504 000263 4330 TALTM, JMS COMPAR /2ND ALTM STARTS EXECUTION 505 000264 4523 CRLF /START COMM EXECUTION 506 000265 1375 CHTECO, TAD (45 /NUMBER OF INPUT COMMAND Q-REGISTER 507 000266 4536 SETCMD /SET UP THE INPUT LINE AS THE CURRENT COMMAND LINE 508 000267 4543 T6, SCANUP 509 000270 3031 T6A, DCA CHAR /SAVE COMMAND CHAR 510 000271 1031 TAD CHAR 511 000272 1371 TAD (CDSP /ADD BASE OF DISPATCH TABLE 512 000273 3300 DCA T7 /LOOK UP ENTRY IN 513 000274 1700 TAD I T7 /COMMAND DISPATCH TABLE 514 000275 3300 DCA T7 /CALL RECURSIVELY 515 000276 7100 CLL 516 000277 4511 PUSHJ 517 000300 0000 T7, 0 /CALL TO ROUTINE 518 000301 4526 CTCCHK /CHECK FOR ^C - ** AC MAY NOT BE 0 HERE ** 519 000302 7200 CLA /CTCCHK LEAVES AC NON-ZERO 520 000303 1024 TAD NFLG 521 000304 7710 SPA CLA 522 000305 5267 JMP T6 523 000306 3027 DCA N /IF WE ARE NOT ENTERING A NUMBER 524 000307 3030 DCA NLINK /SET 13-BIT N TO 0 525 000310 5267 JMP T6 /KEEP INTERPRETING 526 000311 1514 TQMK, TAD I ERROR 527 000312 7650 SNA CLA /ERROR ROUTINE ENTRY POINT NON-ZERO? 528 000313 5516 RESORT /NO 529 000314 7240 STA /AN ERROR PRINTOUT 530 000315 3073 DCA QLENGT /SET QLENGT BIG SO WE CAN ACCESS ENTIRE LINE 531 000316 4546 NOTRCE /TURN TRACE OFF 532 000317 4517 SCAN 533 000320 4521 TYPE /PRINT OUT THE LINE WHICH CAUSED THE ERROR 534 000321 2514 ISZ I ERROR /UP TO THE ERROR CHAR ITSELF 535 000322 5317 JMP .-3 536 000323 5203 JMP T0 /RE-INITIALIZE 537 538 000324 4510 CHUA, POP /^ COMMAND - POP OFF RETURN ADDRESS 539 000325 4543 SCANUP /GET THE NEXT CHARACTER IN UPPER CASE 540 000326 0174 AND [77 /MAKE IT A CONTROL CHARACTER 541 000327 5270 JMP T6A /USE IT INSTEAD OF THE ^ 542 000330 5211 COMPAR, TCINIT /LOOK FOR DOUBLED COMM LINE CHARS 543 000331 1035 TAD SCHAR /MOST RECENT 544 000332 7041 CIA 545 000333 1031 TAD CHAR /PREVIOUS 546 000334 7640 SZA CLA 547 000335 5516 RESORT /NOT THE SAME 548 000336 4340 JMS SPUT /PUT THE CHAR INTO THE COMMAND LINE AND ECHO IT 549 000337 5730 JMP I COMPAR /SAME-SPECIAL HANDLING 550 551 000340 5321 SPUT, JTECO /PUT CHAR INTO COMM LINE 552 000341 1051 TAD QZ 553 000342 3050 DCA QP 554 000343 1031 TAD CHAR 555 000344 4534 QPUT /STORE CHARACTER AWAY 556 000345 1577 TAD I [QPNTR 557 000346 7001 IAC 558 000347 4540 ADJQ /ADJUST COMMAND LINE REGISTER LENGTH 559 000350 3514 DCA I ERROR /CLEAR "ERROR JUST OCCURRED" FLAG 560 000351 1031 TAD CHAR 561 000352 4521 TYPE /TYPE THE INSERTED CHARACTER 562 000353 1577 TAD I [QPNTR 563 000354 1060 TAD CALF /12 564 000355 7710 SPA CLA 565 000356 5364 JMP EMERG /TYPE BELL IF WITHIN 12 CHARACTERS OF 2048 566 000357 7100 CLL 567 000360 1051 TAD QZ 568 000361 1367 TAD QLIMIT 569 000362 7620 SNL CLA /TYPE A BELL IF THE LINE IS 570 000363 5740 JMP I SPUT / WITHIN 12 CHARS OF OVERFLOW 571 000364 1052 EMERG, TAD Z7 572 000365 4521 TYPE 573 000366 5740 JMP I SPUT 574 000367 4072 QLIMIT, 12-QMAX 575 000371 5000 PAGE 000372 1461 000373 3104 000374 2612 000375 0045 000376 2640 000377 5140 576 /Q REGISTER PACK AND UNPACK 577 /THE Q-REGISTERS ARE STORED IN THE UPPER 4 BITS OF THE WORDS 578 /WHICH HAVE THE TEXT BUFFER CHARACTERS IN THEIR LOWER 8 BITS. 579 /THEREFORE EACH Q-REGISTER CHARACTER TAKES 2 WORDS. 580 581 000400 0000 QPUTS, 0 /STORE THROUGH POINTER "QP" AND BUMP POINTER 582 000401 7106 CLL RTL 583 000402 7006 RTL 584 000403 3222 DCA GETQX /SAVE CHARACTER 585 000404 1050 TAD QP 586 000405 7104 CLL RAL 587 000406 3253 DCA CHKCTC /COMPUTE CORE POINTER = 2*QP 588 000407 6211 CDF 10 589 000410 1222 TAD GETQX 590 000411 4243 JMS ST4BTS /STORE HIGH ORDER 4 BITS 591 000412 2253 ISZ CHKCTC 592 000413 1222 TAD GETQX 593 000414 7106 CLL RTL 594 000415 7006 RTL 595 000416 4243 JMS ST4BTS /STORE LOW ORDER 4 BITS 596 000417 6201 CDF 0 597 000420 2050 ISZ QP /BUMP POINTER 598 000421 5600 JMP I QPUTS 599 600 000422 0000 GETQX, 0 601 000423 7104 CLL RAL 602 000424 3253 DCA CHKCTC /COMPUTE CORE POINTER = 2*AC 603 000425 6211 CDF 10 604 000426 1653 TAD I CHKCTC 605 000427 0173 AND [7400 /FETCH HIGH ORDER 606 000430 2253 ISZ CHKCTC 607 000431 3200 DCA QPUTS 608 000432 1653 TAD I CHKCTC 609 000433 0173 AND [7400 /FETCH LOW ORDER 610 000434 7112 CLL RTR 611 000435 7012 RTR 612 000436 1200 TAD QPUTS /COMBINE TO FORM CHARACTER 613 000437 7012 RTR 614 000440 7012 RTR 615 000441 6201 CDF 0 616 000442 5622 JMP I GETQX 617 618 000443 0000 ST4BTS, 0 619 000444 0173 AND [7400 620 000445 3303 DCA POPXX 621 000446 1653 TAD I CHKCTC 622 000447 0172 AND [377 623 000450 1303 TAD POPXX 624 000451 3653 DCA I CHKCTC /STORE HIGH ORDER 625 000452 5643 JMP I ST4BTS 626 000453 0000 CHKCTC, 0 /SUBROUTINE TO CHECK FOR ^C IN KEYBOARD 627 000454 7604 CLA OSR /** AC MAY NOT BE 0 ON ENTRY 628 000455 3200 DCA QPUTS /GET LOCATION FROM SWITCH REGISTER 629 000456 1600 TAD I QPUTS 630 000457 7421 7421 /DISPLAY INDICATED LOCATION IN MQ 631 000460 7600 C7600, 7600 /JUST IN CASE THERE IS NO MQ 632 000461 6031 KSF 633 000462 5653 JMP I CHKCTC /NO CHAR IN KEYBOARD BUFFER - EXIT 634 000463 6034 KRS 635 000464 0171 AND [177 /KILL PARITY BIT 636 000465 1170 TAD [-20 /^P OUGHT TO GO AWAY 637 000466 7440 SZA 638 000467 1053 TAD CACR 639 000470 7440 SZA /^C? 640 000471 5653 JMP I CHKCTC /NO - RESUME WITH NON-ZERO AC 641 000472 4514 ERR34, ERR /^C, EXECUTION ABORTED 642 643 000473 6041 CTLC, TSF 644 000474 5273 JMP CTLC /WAIT FOR TELETYPE TO DIE DOWN 645 000475 5660 JMP I C7600 /RETURN TO OS/8 646 647 648 000476 3222 POPJXX, DCA GETQX /POPJ ROUTINE 649 000477 4510 POP 650 000500 3303 POPJXY, DCA POPXX 651 000501 1222 TAD GETQX 652 000502 5703 JMP I POPXX 653 /PUSH DOWN LIST ROUTINES 654 655 000503 0000 POPXX, 0 /POP ROUTINE 656 000504 7240 CLA CMA 657 000505 1042 TAD PDLP 658 000506 3042 DCA PDLP 659 000507 1442 TAD I PDLP 660 000510 5703 JMP I POPXX 661 662 000511 0000 PUSHXX, 0 /PUSH ROUTINE (DOESN'T AFFECT LINK) 663 000512 3442 DCA I PDLP 664 000513 2042 ISZ PDLP /BUMP PUSHDOWN POINTER 665 000514 1042 TAD PDLP /CHECK FOR EXACTLY FULL - THIS ALLOWS THE 666 000515 1377 TAD (-PDLEND 667 000516 7650 SNA CLA /** ERROR ROUTINE TO DO A PUSHJ 668 000517 4514 ERR04, ERR /FULL - REPORT IT 669 000520 5711 JMP I PUSHXX 670 671 000521 0000 PUSHJY, 0 /PUSHJ ROUTINE (DOESN'T AFFECT LINK) 672 000522 3222 DCA GETQX 673 000523 7001 IAC /** LINK SHOULD BE PRESERVED ON EXIT 674 000524 1321 TAD PUSHJY 675 000525 4507 PUSH 676 000526 1721 TAD I PUSHJY 677 000527 5300 JMP POPJXY 678 679 000530 0000 PUSHLX, 0 /PUSH AND CLEAR A LIST 680 000531 7100 CLL 681 000532 7500 SMA /PUSH LIST IF AC<0, POP IT IF >=0 682 000533 7160 CMA STL 683 000534 3321 DCA PUSHJY /SET COUNTER 684 000535 7004 RAL /** DEPENDS ON FACT THAT POP=PUSH+1 ** 685 000536 1353 TAD PUSHYY 686 000537 3345 DCA PUSHYX /STORE EITHER A "PUSH" OR A "POP" 687 000540 4510 POP /SAVE RETURN POINTER 688 000541 3253 DCA CHKCTC 689 000542 1730 PUSHLP, TAD I PUSHLX 690 000543 3222 DCA GETQX 691 000544 1622 TAD I GETQX 692 000545 4507 PUSHYX, PUSH /PUSH OR POP 693 000546 3622 DCA I GETQX /IF PUSHYX=PUSH, THIS ZEROES THE PUSHED LOCATION 694 000547 2330 ISZ PUSHLX 695 000550 2321 ISZ PUSHJY 696 000551 5342 JMP PUSHLP 697 000552 1253 TAD CHKCTC /RESTORE RETURN POINTER 698 000553 4507 PUSHYY, PUSH 699 000554 5730 JMP I PUSHLX 700 000555 0000 TPUT, 0 /TELETYPE OUTPUT 701 000556 3104 DCA TEMPT 702 000557 4526 TPUTX, CTCCHK /CHECK FOR ^C OR ^P 703 000560 1376 TAD (3-17 /INHIBIT PRINTING AS LONG AS THERE 704 000561 7450 SNA /IS A ^O IN THE KEYBOARD BUFFER. 705 000562 5755 JMP I TPUT 706 000563 1375 TAD (17-23 /CHECK FOR ^S 707 000564 7650 SNA CLA 708 000565 5357 JMP TPUTX 709 000566 6041 TSF /WAIT FOR TELETYPE FLAG 710 000567 5366 TSFWT, JMP .-1 /WHILE WAITING, DISPLAY TEXT ON SCOPE 711 000570 1104 TAD TEMPT 712 000571 6046 TLS 713 000572 7200 CLA 714 000573 5755 JMP I TPUT 715 000575 7774 PAGE 000576 7764 000577 2601 716 /POINTER MOVING COMMANDS - C,R,J,L 717 718 000600 3024 CHRJ, DCA NFLG /COMMAND J 719 000601 4551 GETNUM /CAUSE NEG ARGUMENT TO GIVE A POP 720 000602 5210 JMP CLOQ 721 722 000603 4537 CHRR, GETN /GET LAST NUMBER, DEFAULT=(+ OR -)1 723 000604 7061 CHR1, CML CIA /NEGATE 13-BIT NUMBER 724 000605 7410 SKP 725 000606 4537 CHRC, GETN /GET LAST NUMBER, DEFAULT=(+ OR -)1 726 000607 1044 TAD P /OFFSET RELATIVE TO . 727 / 728 / *** LINK NOT ALWAYS SET RIGHT 729 / 730 000610 4527 CLOQ, BZCHK /SEE IF IN RANGE B,Z 731 000611 3044 DCA P /IN RANGE 732 000612 6201 DNN3, CDF 0 733 000613 5512 POPJ 734 735 000614 4537 CHRL, GETN /GET LAST NUMBER, DEFAULT=(+ OR -)1 736 000615 6211 CHRL1, CDF 10 737 000616 7470 SZL SNA 738 000617 5232 JMP LNEG 739 000620 7041 CIA 740 000621 3102 DCA CDT 741 000622 1044 CHRLP, TAD P 742 000623 7041 CIA 743 000624 1045 TAD ZZ 744 000625 7650 SNA CLA /IF WE ARE AT THE END OF THE BUFFER, 745 000626 5212 JMP DNN3 /RETURN 746 000627 4777 JMS I (CHLCMP /COMPARE CHARACTER AGAINST LINE FEED 747 000630 2044 ISZ P 748 000631 5222 JMP CHRLP /KEEP GOING UNTIL WE GET THERE OR OVERFLOW BUFFER 749 000632 1376 LNEG, TAD (-1 750 000633 3102 DCA CDT 751 000634 7340 CHRLM, CLA CMA CLL 752 000635 1044 TAD P 753 000636 3044 DCA P /MOVE POINTER BACKWARD 1 754 000637 7420 SNL 755 000640 5775 JMP I (CHRLI /OOPS - PAST THE BEGINNING OF THE BUFFER - RETURN 756 000641 4777 JMS I (CHLCMP /COMPARE CHARACTER AGAINST LINE FEED 757 000642 5234 JMP CHRLM /NOT SATISFIED YET - KEEP LOOPING 758 759 000643 0000 NUMGET, 0 /PUT 13-BIT NUMBER IN L,AC 760 000644 1030 TAD NLINK 761 000645 7110 CLL RAR 762 000646 1027 TAD N 763 000647 5643 JMP I NUMGET 764 /D COMMAND AND PART OF ADJUST ROUTINE 765 766 000650 2021 CHRD, ISZ CFLG /WAS THERE A COMMA? 767 000651 7410 SKP /NO 768 000652 5061 JMP NERR /YES, 2 ARGS TO D 769 000653 4537 GETN /GET LAST NUMBER, DEFAULT=(+ OR -)1 770 000654 7420 SNL /SIGN BIT OF 13-BIT NUMBER IS IN LINK 771 000655 5333 JMP PLUSND /+ND 772 000656 7141 CLL CIA 773 000657 3102 DCA CDT /-ND 774 000660 1102 TAD CDT 775 000661 4511 PUSHJ /DO (-)NC(+)ND 776 000662 0604 CHR1 777 000663 1102 TAD CDT 778 000664 5333 JMP PLUSND 779 780 000665 7450 ADJ, SNA /ADJUST BUFFER + OR - N CHARS 781 /TEST FOR NOTHING 782 000666 5512 POPJ /GO AWAY 783 000667 7120 STL /MOVE UP N CHARACTERS 784 000670 1045 TAD ZZ /ADD TO MAX CHARACTER 785 000671 3047 DCA R /NEW HIGHEST 786 000672 1047 TAD R /SEE IF TOO HIGH 787 000673 1374 TAD (-ZMAX 788 000674 7660 SNL SZA CLA /TWO PLACES FOR OVERFLOW THERE 789 000675 4514 ERR05, ERR 790 000676 1045 TAD ZZ 791 000677 3046 DCA Q 792 000700 1047 TAD R 793 000701 3045 DCA ZZ 794 000702 6211 CDF 10 795 000703 1046 UPNL, TAD Q 796 000704 7041 CIA 797 000705 1044 TAD P 798 000706 7650 SNA CLA /FINISHED? 799 000707 5212 JMP DNN3 /YES 800 000710 7040 CMA 801 000711 1046 TAD Q 802 000712 3046 DCA Q 803 000713 7040 CMA 804 000714 1047 TAD R 805 000715 3047 DCA R 806 000716 1446 TAD I Q /GET A CHAR 807 000717 0172 L12K1, AND [377 /JMP .+5 IF 12K 808 000720 3370 DCA CHLTMP 809 000721 1447 TAD I R /BE CAREFUL NOT TO 810 000722 0173 AND [7400 /DESTROY THE HIGH- 811 000723 1370 TAD CHLTMP /ORDER 4 BITS 812 J12K1= JMP . 813 000724 3447 DCA I R /AND PUT IT IN THE LOW PART OF THE TARGET WORD 814 000725 5303 JMP UPNL 815 /K COMMAND AND MORE OF ADJUST ROUTINE 816 817 000726 4773 CHRK, JMS I (NLINES /CONVERT LINES TO CHARS 818 000727 3102 DCA CDT 819 000730 1026 TAD M /SET POINTER 820 000731 3044 DCA P /LOWER ARG 821 000732 1102 TAD CDT 822 000733 7450 PLUSND, SNA 823 000734 5512 POPJ /IGNORE 0D 824 000735 7100 ADJ2, CLL 825 000736 1044 TAD P /MOVE DOWN N CHARACTERS 826 000737 7430 SZL 827 000740 7240 CLA CMA /DETECT GROSS OVERFLOWS 828 /** CHECK 829 000741 4527 BZCHK 830 000742 3046 DCA Q /N IN AC 831 000743 1044 TAD P 832 000744 3047 DCA R 833 000745 6211 CDF 10 834 000746 1045 DNN1, TAD ZZ 835 000747 7041 CIA 836 000750 1046 TAD Q 837 000751 7650 SNA CLA /FINISHED? 838 000752 5365 JMP DNN2 839 000753 1446 TAD I Q /GET A CHAR 840 000754 0172 L12K2, AND [377 /JMP .+5 IF 12K 841 000755 3370 DCA CHLTMP 842 000756 1447 TAD I R /BE CAREFUL NOT TO 843 000757 0173 AND [7400 /DESTROY THE HIGH- 844 000760 1370 TAD CHLTMP /ORDER 4 BITS 845 J12K2= JMP . 846 000761 3447 DCA I R /AND PUT IT IN THE LOW PART OF THE TARGET WORD 847 000762 2046 ISZ Q 848 000763 2047 ISZ R 849 000764 5346 JMP DNN1 850 000765 1047 DNN2, TAD R 851 000766 3045 DCA ZZ 852 000767 5212 JMP DNN3 853 854 000770 0000 CHLTMP, 0 855 856 /GO TO ADJ TO MOVE UP TEXT 857 /GOTO ADJ2 TO MOVE DOWN TEXT 858 /IN EITHER CASE, AC CONTAINS NUMBER OF CHARS TO MOVE (0-4095) 859 860 000771 4514 ERR27, ERR /^W 861 000772 4514 ERR35, ERR /^V 862 000773 1717 PAGE 000774 0140 000775 3130 000776 7777 000777 3116 863 /SEARCH SUBROUTINE - CALLED BY N, S, AND _ COMMANDS 864 865 001000 0000 SEARCH, 0 866 001001 3374 DCA REPFLG /AC MAY BE NON-0 TO ALLOW A REPLACE 867 001002 4537 GETN 868 001003 7470 SZL SNA 869 001004 4514 ERR29, ERR /NEG OR 0 ARG TO SEARCH 870 001005 7041 CIA 871 001006 3373 DCA CSN /GET NUMBER OF OCCURRANCES TO SEARCH FOR 872 001007 4530 QCHK /GET REPLACEMENT FOR ALTMODE, IF ANY 873 001010 1377 TAD (STABLE-1 874 001011 3015 DCA SXR /INITIALIZE XR 875 001012 1167 TAD [-40 876 001013 3372 DCA CSP 877 001014 4535 SGTLP, QUOTST /GET A CHARACTER FROM THE SEARCH STRING 878 001015 5225 JMP SCHQUO /OOPS- NO MORE 879 001016 4515 SORT /SEE IF ITS SPECIAL 880 001017 3664 SCHLST 881 001020 5213 SCHTAB-SCHLST 882 001021 3415 SSTCHR, DCA I SXR /STORE THE CHAR IN THE SEARCH BUFFER 883 001022 2372 ISZ CSP 884 001023 5214 JMP SGTLP /LOOP 885 001024 4514 ERR06, ERR /OOPS - SEARCH BUFFER FULL! 886 887 001025 1372 SCHQUO, TAD CSP 888 001026 1166 TAD [40 /A NULL SEARCH STRING MEANS USE THE 889 001027 7640 SZA CLA /PREV CONTENTS OF THE SEARCH BUFFER, ELSE 890 001030 3415 DCA I SXR /STORE TERMINATING 0 AND BEGIN THE SEARCH 891 001031 1044 CSST, TAD P 892 001032 3372 DCA CSP 893 001033 5272 JMP CSF1 894 001034 1361 SCHINV, TAD CSNCL /^N, INVERT SKIP SENSE 895 001035 3246 DCA CSWT 896 897 001036 1415 CSL, TAD I SXR /GET A CHAR FROM THE SEARCH BUFFER 898 001037 7550 SPA SNA 899 001040 5263 JMP SCCOMD /NEGATIVE CHARS AND 0 ARE SPECIAL 900 001041 7041 CIA 901 001042 6211 CDF 10 902 001043 1444 TAD I P 903 001044 0172 AND [377 904 001045 6201 CSWT1, CDF 0 905 001046 7640 CSWT, SZA CLA 906 001047 5271 JMP CSF /FAIL TO MATCH ON THIS CHARACTER 907 001050 2044 ISZ P 908 001051 1256 CSG, TAD CSZCL 909 001052 3246 DCA CSWT /RESTORE SEARCH TEST 910 001053 1045 TAD ZZ 911 001054 7040 CMA 912 001055 1044 TAD P 913 001056 7640 CSZCL, SZA CLA /CHECK FOR END OF BUFFER 914 001057 5236 JMP CSL /NO 915 001060 3044 DCA P 916 001061 3020 CSZ, DCA NMT 917 001062 5600 JMP I SEARCH 918 /SEARCH SUBROUTINE - CONTINUED 919 920 001063 3264 SCCOMD, DCA .+1 /SPECIAL CHARACTERS ARE JUMPS OR 0 921 001064 7402 HLT /0 FALLS THROUGH INTO TERMINATION CODE 922 001065 2373 ISZ CSN /GET NTH OCCURRENCE 923 001066 5271 JMP CSF /MORE TO GO 924 001067 7040 CMA 925 001070 5261 JMP CSZ /GOT IT 926 001071 2372 CSF, ISZ CSP /INDEX P 927 001072 1377 CSF1, TAD (STABLE-1 928 001073 3015 DCA SXR /INITIALIZE AUTO - INDEX 929 001074 1372 TAD CSP 930 001075 3044 DCA P 931 001076 5251 JMP CSG 932 933 /SEARCH STRING MODIFIERS ^N,^Q,^S, AND ^X 934 935 001077 5234 SCHTAB, JMP SCHINV /^N: ANYTHING BUT 936 001100 1103 SCHCTQ /^Q: LITERALLY 937 001101 5305 JMP SCHSEP /^S: ANY SEPARATOR 938 001102 5245 JMP CSWT1 /^X: ANYTHING 939 940 001103 4517 SCHCTQ, SCAN /GET THE NEXT CHARACTER 941 001104 5221 JMP SSTCHR /AND STORE IT IN PLACE OF THE ^Q 942 943 001105 6211 SCHSEP, CDF 10 /^S, LOOK FOR SEPARATOR 944 001106 1444 TAD I P 945 001107 0172 AND [377 946 001110 4544 TSTSEP /SHARED SORTING ROUTINE 947 001111 7410 SKP 948 001112 7040 CMA /SET AC = -1 IF NON-SEPARATOR 949 001113 5245 JMP CSWT1 /GO CHECK RESULTS 950 951 001114 3371 FN, DCA CNXT 952 001115 7240 STA 953 001116 5355 JMP CHRN1 954 /S,N AND _ COMMANDS (ALSO FS AND FN) 955 956 001117 7240 FS, STA /CHANGE S TO FS 957 001120 4200 CHRS, JMS SEARCH /S COMMAND - DO A SEARCH 958 001121 2374 CHKREP, ISZ REPFLG /WAS THERE A REPLACE SPECIFIED? 959 001122 5337 JMP CHKCLN /NO - CHECK FOR COLON 960 001123 4531 QSKP /COUNT UP STRING 2 961 001124 1020 TAD NMT 962 001125 7700 SMA CLA 963 001126 5337 JMP CHKCLN /FAILED, SET VALUE & EXIT 964 001127 1372 TAD CSP /FIGURE OUT OFFSET TO FAKE OUT "I" ROUTINE 965 001130 7041 CIA /SO THAT WE HAVE THE RIGHT INSERTION COUNT 966 001131 1044 TAD P /BUT THE SIZE OF THE HOLE WE NEED 967 001132 3064 DCA DVT1 /IS DECREASED BY THE LENGTH OF THE SEARCH STRING. 968 001133 1372 TAD CSP /RESET 969 001134 3044 DCA P /TEXT POINTER 970 001135 4511 PUSHJ /INSERT 971 001136 2645 CIL2 /STRING 2 972 001137 3374 CHKCLN, DCA REPFLG /CLEAR REPLACE FLAG 973 001140 1020 TAD NMT 974 001141 4511 PUSHJ /FORM NUMBER FROM "NMT" 975 001142 4772 NNEW13 /(APPLYING OPERATOR, IF NECESSARY) 976 001143 2022 ISZ CLNF /WAS THERE A COLON ON THIS SEARCH? 977 001144 7410 SKP /NO 978 001145 5565 JMP I [IREST /YES - GO AWAY REGARDLESS OF RESULTS 979 001146 3022 DCA CLNF /RESET COLON FLAG TO 0 980 001147 2027 ISZ N /DID WE SUCCEED? 981 001150 5776 JMP I (CFSI /NO - SIMULATE A SEMICOLON 982 001151 3024 DCA NFLG /YES - HOWEVER, NO COLON MEANS NO RESULT 983 001152 5565 JMP I [IREST 984 985 001153 7201 CHBA, CLA IAC /_ COMMAND 986 001154 3371 CHRN, DCA CNXT /N COMMAND - SET OUTPUT FLAG 987 001155 4200 CHRN1, JMS SEARCH /DO A SEARCH 988 001156 1037 TAD REND 989 001157 7041 CIA 990 001160 1045 TAD ZZ 991 001161 7650 CSNCL, SNA CLA /HAVE WE REACHED END-OF-FILE? 992 001162 5321 JMP CHKREP /YES - STOP AND ASSIGN VALUE 993 001163 1020 TAD NMT 994 001164 7640 SZA CLA /HAVE WE SUCCEEDED? 995 001165 5321 JMP CHKREP /YES - STOP AND ASSIGN VALUE 996 001166 1371 TAD CNXT 997 001167 4564 JMS I [NXTBUF /GET NEXT BUFFER 998 001170 5231 JMP CSST /KEEP SEARCHING - RETURN TO CHRN+2 999 001171 0000 CNXT, 0 /OUTPUT FLAG 1000 001172 0000 CSP, 0 /TEMP P 1001 001173 0000 CSN, 0 1002 001174 0000 REPFLG, 0 /REPLACE FLAG (-1 MEANS REPLACE) 1003 001176 1754 PAGE 001177 4377 1004 /NUMBER PROCESSORS: 1005 /COMMANDS B,H,Z,. AND DIGITS 1006 1007 1008 001200 1031 NMBR, TAD CHAR /NUMBER FOUND IN COMMAND STRING 1009 001201 1163 TAD [-60 1010 001202 3020 NMBR2, DCA NMT 1011 001203 7100 CLL 1012 001204 2024 NCHK /CHECK NUMBER FLAG 1013 001205 5214 JMP NNEW /NOT UP, NEW OPERAND 1014 001206 1336 TAD DOPR 1015 001207 3217 DCA NOPR /USE SAME OPERATOR AS FOR THE PREVIOUS DIGITS 1016 001210 1337 TAD NP /MULTIPLY PREV DIGITS BY 10 1017 001211 7106 CLL RTL 1018 001212 1337 NMRBAS, TAD NP /REPLACED BY "NOP" FOR OCTAL 1019 001213 7104 CLL RAL /** COULD CHECK FOR OVERFLOW IN THIS AREA 1020 001214 1020 NNEW, TAD NMT 1021 001215 3337 NCOM, DCA NP /CURRENT NUMBER 1022 / RAL 1023 / DCA NEWLNK 1024 / TAD NEWLNK /GET NEW LINK 1025 / CLL RAR /INTO LINK 1026 001216 1337 NCOM2, TAD NP 1027 1028 001217 7410 NOPR, SKP /DISPATCH JUMP FOR OPERATOR 1029 001220 7061 CML CIA 1030 001221 1316 TAD NACC /CURRENT EXPRESSION VALUE 1031 001222 3027 DCA N 1032 001223 7004 RAL 1033 001224 1305 TAD NACCLK /ADD IN OLD LINK 1034 001225 7010 RAR 1035 001226 7610 SKP CLA 1036 001227 3027 NRET, DCA N 1037 001230 7004 RAL 1038 001231 3030 DCA NLINK /SAVE LINK FOR POSSIBLE COMPARISON TEST 1039 001232 1217 TAD NOPR 1040 001233 3336 DCA DOPR 1041 001234 1304 TAD NULLOP 1042 001235 3217 DCA NOPR /SET OPERATOR TO NULL OP 1043 001236 7240 STA 1044 001237 5275 JMP DCPOPJ /SET NUMBER FLAG AND EXIT 1045 001240 7326 CCPR, STL CLA RTL /2 1046 001241 4513 POPL 1047 001242 1217 NOPR 1048 001243 1316 NACC 1049 001244 1305 NACCLK 1050 001245 4551 GETNUM 1051 001246 5215 JMP NCOM /COMBINE OLD NUMBER AND PARENTHESIZED RESULT 1052 1053 001247 7346 COPR, MTHREE 1054 001250 4513 PUSHL 1055 001251 1305 NACCLK 1056 001252 1316 NACC 1057 001253 1217 NOPR 1058 001254 3027 DCA N 1059 001255 3030 DCA NLINK 1060 001256 5266 JMP CPLS /CLEAN OUT INSIDE PARENS 1061 1062 001257 1044 CDOT, TAD P /COMMAND . 1063 /** COULD CAUSE ERROR IF NFLG SET 1064 001260 5326 JMP NCOMCL 1065 /NEWLNK, 0 1066 /COMMANDS &,#,/,*,-,+,(,) 1067 1068 001261 7344 CAMP, MTWO /*K* LOGICAL AND ** 1069 001262 1377 CNBS, TAD (NIOR-NDIV /LOGICAL OR 1070 001263 1376 CVIR, TAD (NDIV-NMPY /DIVISION 1071 001264 1375 CAST, TAD (NMPY&177+5200-7400 /MULTIPLICATION 1072 001265 1162 CMIN, TAD [7400-SKP /SUBTRACTION 1073 001266 1374 CPLS, TAD (SKP /ADDITION 1074 001267 3217 DCA NOPR /COMMON TO ALL NUMERIC OPERATORS 1075 001270 1027 TAD N 1076 001271 3316 DCA NACC 1077 001272 1030 TAD NLINK 1078 001273 3305 DCA NACCLK 1079 001274 3337 DCA NP 1080 001275 3024 DCPOPJ, DCA NFLG /CLEAR NUMBER FLAG 1081 001276 5512 POPJ 1082 1083 001277 0316 NAND, AND NACC /BITWISE AND OF BINARY NUMBERS 1084 001300 5227 JMP NRET /** KEEP THESE TWO OPNS TOGETHER 1085 001301 7040 NIOR, CMA /BITWISE OR OF BINARY VALUES 1086 001302 0316 AND NACC 1087 001303 1337 TAD NP 1088 001304 5227 NULLOP, JMP NRET 1089 1090 001305 0000 NACCLK, 0 /LINK OF EXPRESSION WITHOUT NP 1091 001306 7041 NMPY, CIA /*** REALLY OUGHT TO IMPLEMENT 13-BIT MULTIPLY 1092 001307 3322 DCA ND 1093 001310 1305 TAD NACCLK 1094 001311 7010 RAR /SET UP OLD LINK 1095 001312 1316 TAD NACC 1096 001313 2322 ISZ ND 1097 001314 5312 JMP .-2 1098 001315 5227 JMP NRET 1099 001316 0000 NACC, 0 /VALUE OF EXPRESSION WITHOUT NP 1100 001317 3322 NDIV, DCA ND 1101 001320 1316 TAD NACC 1102 001321 4541 MQLDVI 1103 001322 0000 ND, 0 1104 001323 5227 JMP NRET 1105 /COMMANDS ^F,^^,^Z,^V, Q AND %, ^D, ^O 1106 1107 001324 7614 CTLF, CLA OSR SKP /^F COMMAND - VALUE OF CONSOLE SWITCHES 1108 001325 4517 CTUA, SCAN /^^ COMMAND - VALUE OF NEXT CHAR IN COMMAND LINE 1109 001326 7100 NCOMCL, CLL 1110 001327 5215 JMP NCOM /GO INTO NUMBER PROCESSOR 1111 1112 /CTLZ, TAD QZ /COMMAND ^Z 1113 / JMP NCOM /RETURN NUMBER OF CHARACTERS IN ALL Q-REGS. 1114 /CTLV, TAD (VERSN /^V COMMAND - RETURNS THE CURRENT VERSION NUMBER 1115 /NCOM14, CLL 1116 / JMP NCOM 1117 1118 001330 1161 CTLD, TAD [4 /SET RADIX DECIMAL 1119 001331 1373 CTLO, TAD (ORAD /SET RADIX OCTAL 1120 001332 3062 DCA RADIX 1121 001333 1462 TAD I RADIX 1122 001334 3212 DCA NMRBAS /EITHER "NOP"(8) OR "TAD NP"(10) 1123 001335 5512 POPJ 1124 1125 001336 0000 DOPR, 0 /PREVIOUS OPERATOR 1126 001337 0000 NP, 0 /VALUE OF CURRENT NUMBER 1127 1128 001340 1424 SCPTAB, BBELL 1129 001341 1435 BCR 1130 001342 1435 BCR /TAB 1131 001343 1426 EASYRO /ALT 1132 001344 1442 BFF 1133 001345 1443 BVT 1134 001346 1441 BLF 1135 1136 001347 1037 CTLN, TAD REND 1137 001350 7040 CMA 1138 001351 5772 JMP I (NNEW13 1139 1140 001352 1023 CQSM, TAD TFLG 1141 001353 7040 CMA /TRACE FLAG ALTERNATES BETWEEN 0 AND 7777 1142 001354 3023 DCA TFLG 1143 001355 5512 POPJ 1144 001356 1114 FTAB, FN 1145 001357 1117 FS 1146 001360 0116 FLST, 116 /FN 1147 001361 0123 123 /FS 1148 1149 001362 4543 CHRF, SCANUP /COMMAND F 1150 001363 4515 SORT 1151 001364 1360 FLST 1152 001365 7776 FTAB-FLST 1153 001366 4514 ERR31, ERR /BAD F COMMAND 1154 1155 001367 7240 CCLN, STA /: COMMAND - SET VALUE FLAG 1156 001370 3022 DCA CLNF 1157 001371 5512 POPJ /SO NEXT SEARCH WILL HAVE A NUMERIC VALUE 1158 001372 4772 PAGE 001373 4550 001374 7410 001375 5706 001376 0011 001377 7762 1159 /CURSOR RIGHT IS $C 1160 /CURSOR UP IS $A 1161 /ERASE LINE IS $K 1162 1163 001400 0000 BUGFLG, 0 /-1 MEANS MUST RETYPE LINE ON NEXT RUBOUT 1164 1165 001401 0000 BSP, 0 1166 001402 1230 TAD TTY10 1167 001403 4552 PUTT /TYPE BS, SPACE, BS 1168 001404 1251 TAD TTY40 1169 001405 4552 PUTT 1170 001406 1230 TAD TTY10 1171 001407 4552 PUTT 1172 001410 7240 STA 1173 001411 1777 TAD I (COLCT /FIX UP COLUMN COUNTER 1174 001412 3777 DCA I (COLCT 1175 001413 5601 JMP I BSP 1176 001414 4776 SCOPY, JMS I (BACKUP /BACK UP ONE CHAR IN CMD LINE 1177 001415 1167 TAD [-40 /LOOK AT CHAR WE BACKED OVER 1178 001416 7500 SMA 1179 001417 5226 JMP EASYRO /IT'S EASY TO RUB THIS ONE OUT 1180 001420 1166 TAD [40 /RESTORE CHARACTER 1181 001421 4515 SORT 1182 001422 0052 CTLBEL 1183 001423 1266 SCPTAB-CTLBEL 1184 001424 7200 BBELL, CLA 1185 001425 4201 JMS BSP /^X NEEDS TWO RUB OUTS 1186 001426 7200 EASYRO, CLA 1187 001427 2200 ISZ BUGFLG /MAYBE WE REALLY SHOULD REPRINT LINE 1188 001430 7410 TTY10, SKP /NOT NECESSARY 1189 001431 5235 JMP BCR /NECESSARY (PREVIOUS VERTICAL MOTION MAY 1190 /HAVE SCROLLED OFF TOP OF SCREEN) 1191 001432 4201 JMS BSP /RUB IT OUT 1192 001433 3200 SCOPGO, DCA BUGFLG 1193 001434 5775 JMP I (T2M1 1194 1195 001435 4265 BCR, JMS BELLSP /REPRINT LINE 1196 001436 4732 JMS I SCAPE 1197 001437 0113 113 /ERASE LINE 1198 001440 5233 JMP SCOPGO 1199 1200 001441 1052 BLF, TAD CTLBEL /CURSOR UP 1 1201 001442 1374 BFF, TAD (-4 /CURSOR UP 8 1202 001443 1374 BVT, TAD (-4 /CURSOR UP 4 1203 001444 3201 DCA BSP 1204 001445 4773 JMS I (ESCAPE 1205 001446 0101 101 /CURSOR UP 1206 001447 2201 ISZ BSP 1207 001450 5245 JMP .-3 1208 001451 7240 TTY40, STA 1209 001452 5233 JMP SCOPGO 1210 001453 3331 TSTAR, DCA BCHAR 1211 001454 1031 TSPACE, TAD CHAR /LOOK AT PREVIOUS CHARACTER 1212 001455 1372 TAD (-7 1213 001456 7640 SZA CLA /WAS IT ^G ? 1214 001457 5516 RESORT /NO 1215 001460 7240 STA /YES 1216 001461 1577 TSP9, TAD I [QPNTR /REDUCE CMD LINE BY 1 CHAR 1217 001462 4540 ADJQ /I.E. GET RID OF ^G 1218 001463 4265 JMS BELLSP 1219 001464 5775 JMP I (T2M1 1220 1221 001465 0000 BELLSP, 0 1222 001466 4523 BLSP1, CRLF /TAD CACR 1223 001467 7000 BLSP2, NOP /TYPE 1224 001470 1063 TAD MQ 1225 001471 3330 DCA SAVMQ 1226 001472 3063 DCA MQ 1227 001473 1051 TAD QZ /START FROM END OF COMMAND LINE 1228 001474 3050 LFBLP, DCA QP /AND SEARCH FOR LF 1229 001475 7240 STA 1230 001476 1063 TAD MQ /COUNT HOW MANY 1231 001477 3063 DCA MQ 1232 001500 7240 STA 1233 001501 1050 TAD QP 1234 001502 7510 SPA 1235 001503 5313 JMP LFSTAR /AT BEGIN OF CMD LINE 1236 001504 4524 GETQ 1237 001505 1331 TAD BCHAR /LOOK FOR LF 1238 001506 7650 SNA CLA /IS IT LF? 1239 001507 5316 JMP LFB /YES 1240 001510 7240 STA /NO 1241 001511 1050 TAD QP /BUMP BACK ONE MORE CHAR 1242 001512 5274 JMP LFBLP 1243 1244 001513 7200 LFSTAR, CLA 1245 001514 1176 TAD [52 /PRINT ANOTHER * 1246 001515 4521 TYPE 1247 001516 4511 LFB, PUSHJ 1248 001517 2764 COLG4 /REPRINT LINE TO END OF CMD LINE 1249 001520 1330 TAD SAVMQ /RESTORE MQ 1250 001521 3063 DCA MQ 1251 001522 7000 BLSP3, NOP /JMS I SCAPE 1252 001523 7000 BLSP4, NOP /113 1253 001524 1175 TAD [-12 1254 001525 3331 DCA BCHAR /SET UP FOR NEXT TIME 1255 001526 6032 KCC /CLEAR OUT ^O OR ^S 1256 001527 5665 JMP I BELLSP 1257 1258 001530 0000 SAVMQ, 0 1259 001531 7766 BCHAR, -12 /CHAR WE'RE SEARCHING BACKWARDS FOR 1260 001532 2767 SCAPE, ESCAPE 1261 001533 0000 SORTB, 0 /SORT AND BRANCH ROUTINE 1262 001534 3035 DCA SCHAR /SAVE SORT CHAR 1263 001535 7240 STA 1264 001536 1733 TAD I SORTB /GET POINTER TO LIST 1265 001537 2333 ISZ SORTB 1266 001540 3017 DCA XR 1267 001541 1417 SORTA1, TAD I XR /GET ITEM IN TEST LIST 1268 001542 7510 SPA /END MARKED BY NEG VALUE 1269 001543 5361 JMP SORTA2 /FELL OUT BOTTOM 1270 001544 7161 CIA STL 1271 001545 1035 TAD SCHAR 1272 001546 7640 SZA CLA /COMPARE SORT CHAR 1273 001547 5341 JMP SORTA1 /NOT IT. 1274 001550 1017 TAD XR /GOT IT. NOW MAKE INDEX 1275 001551 1733 TAD I SORTB /TO JUMP TABLE 1276 001552 3371 DCA COUNT /THIS IS TABLE POINTER 1277 001553 1771 TAD I COUNT /GET JUMP ADDRESS FROM TABLE 1278 001554 7510 SPA /IF IT IS NEGATIVE, 1279 001555 5363 JMP SORTA3 /ITS NOT A JUMP ADDRESS - ITS A VALUE 1280 001556 3371 DCA COUNT 1281 001557 7300 CLA CLL 1282 001560 5771 JMP I COUNT 1283 001561 7300 SORTA2, CLA CLL /FELL OUT BOTTOM 1284 001562 1035 TAD SCHAR /CARRY CHARACTER BACK TO 1285 001563 2333 SORTA3, ISZ SORTB 1286 001564 5733 JMP I SORTB /DO SOMETHING ELSE 1287 1288 001565 4543 CSMC, SCANUP /GET NEXT CHARACTER IN UPPER CASE 1289 001566 0174 AND [77 /MAKE IT A CONTROL CHARACTER 1290 001567 3035 DCA SCHAR 1291 001570 5341 JMP SORTA1 /SUBSTITUTE IT FOR THE UPARROW 1292 1293 001571 0000 COUNT, 0 1294 001572 7771 PAGE 001573 2767 001574 7774 001575 0236 001576 3104 001577 2221 1295 /COMMANDS P AND T 1296 1297 001600 4240 CHRP, JMS POKE /LOOK AHEAD ONE CHARACTER 1298 001601 4542 UPPERC /BUT IN UPPERCASE 1299 001602 1377 TAD (-127 /SEE IF IT'S "W" 1300 001603 3104 DCA TEMPT /SAVE KNOWLEDGE AS FLAG 1301 001604 1104 TAD TEMPT 1302 001605 7650 SNA CLA 1303 001606 4517 SCAN /PASS UP W 1304 001607 7200 CLA /CLEAR W FROM AC 1305 001610 1021 TAD CFLG 1306 001611 7710 SPA CLA /IS THIS COMMAND M,NP? 1307 001612 5257 JMP CHRW /YES - TREAT LIKE M,NPW 1308 001613 4537 GETN /COMMAND P - GET # OF PAGES 1309 001614 7470 SZL SNA 1310 001615 4514 ERR25, ERR /NEG OR 0 ARG TO P 1311 001616 7041 CIA 1312 001617 3237 DCA CPCT 1313 001620 4511 CPOA, PUSHJ 1314 001621 1655 CPOC /DO N 1315 001622 1104 TAD TEMPT /IS NEXT CHARACTER W? 1316 001623 7650 SNA CLA 1317 001624 5252 JMP NOYANK /YES 1318 / TAD REND /IF WANT P TO CREATE FF'S 1319 / SZA CLA /WHEN NO MORE INPUT FILE 1320 001625 2036 ISZ FFFLAG /NO, SAW FF? 1321 001626 5231 JMP NOFF /NO 1322 001627 1056 TAD CAFF /YES 1323 001630 4522 OUTPUT /OUTPUT FF 1324 001631 3045 NOFF, DCA ZZ /FORCE Y COMMAND TO WORK 1325 001632 4511 PUSHJ 1326 001633 2022 CHRY /WHOEVER THOUGHT OF THE PW COMMAND SHOULD BE SHOT 1327 001634 2237 YANKY, ISZ CPCT 1328 001635 5220 JMP CPOA 1329 001636 5512 POPJ 1330 001637 0000 CPCT, 0 1331 1332 001640 0000 POKE, 0 /RETURN NEXT CHARACTER (BY LOOKING AHEAD) 1333 001641 1073 TAD QLENGT 1334 001642 7141 CIA CLL 1335 001643 1040 TAD SCANP 1336 001644 7630 SZL CLA /MAKE SURE WE HAVEN'T RUN OFF END OF COMMAND LINE 1337 001645 5640 JMP I POKE /RETURN 0 IF NO CHAR 1338 001646 1040 TAD SCANP 1339 001647 1072 TAD QBASE 1340 001650 4524 GETQ 1341 001651 5640 JMP I POKE /LEAVE CHAR IN AC 1342 1343 001652 1056 NOYANK, TAD CAFF /NPW OUTPUTS FFS 1344 001653 4522 OUTPUT 1345 001654 5234 JMP YANKY 1346 001655 4511 CPOC, PUSHJ 1347 001656 3134 CHRH 1348 001657 1376 CHRW, TAD (OUTPUT 1349 001660 3301 CHRT2, DCA CWOUT /W AND T COMMANDS - SAME THING, DIFFERENT DEVICES 1350 001661 4317 JMS NLINES /CONVERT LINES TO CHARS 1351 001662 7040 CWOA, CMA 1352 001663 3317 DCA NLINES /SET CHARACTER COUNT 1353 001664 1317 TAD NLINES 1354 001665 7041 CIA 1355 001666 4541 MQLDVI /COMPUTE HOW MANY WORDS THIS OUTPUT WILL USE 1356 001667 0006 6 /(BY TAKING 2/3 OF THE NUMBER OF CHARACTERS, 1357 001670 7126 CLL CML RTL / BU THAT'S SLOW SO WE TAKE 4/6 AND ROUND) 1358 001671 4775 JMS I (FITS /DETERMINE WHETHER THE OUTPUT WILL FIT 1359 001672 4514 ERR17, ERR /NO - TELL THE USER 1360 001673 7200 CLA /CLEAR CRAP FROM AC 1361 001674 5303 JMP CWOC 1362 001675 6211 CWOB, CDF 10 1363 001676 1426 TAD I M 1364 001677 0171 AND [177 1365 001700 6201 CDF 0 1366 001701 0000 CWOUT, 0 /TYPE, OUTPUT, OR QPUT 1367 001702 2026 ISZ M 1368 001703 2317 CWOC, ISZ NLINES /DONE? 1369 001704 5275 JMP CWOB /NO 1370 001705 5512 POPJ 1371 1372 001706 1103 CHRT, TAD KTYPE 1373 001707 5260 JMP CHRT2 1374 /X COMMAND AND LINES-TO-CHARACTER CONVERTOR 1375 1376 001710 4532 CHRX, QREF /COMMAND X 1377 001711 4317 JMS NLINES /CONVERT LINES TO CHARS 1378 001712 4540 ADJQ /ADJUST Q-REGISTERS AND SET UP NEW LENGTH. 1379 001713 1374 TAD (QPUT 1380 001714 3301 DCA CWOUT /SET OUTPUT ROUTINE TO STORE INTO Q REG 1381 001715 1063 TAD MQ /LOAD THE CHARACTER COUNT 1382 001716 5262 JMP CWOA /GO TO TEXT OUTPUTTER 1383 1384 001717 0000 NLINES, 0 /CONVERT + OR - N LINES AROUND . TO CHARS M,N 1385 001720 2021 ISZ CFLG /WAS THERE A COMMA? 1386 001721 7410 SKP /NO 1387 001722 5334 JMP MFROMN /YES - DON'T CONVERT LINES TO CHARS 1388 001723 1044 TAD P 1389 001724 3026 DCA M 1390 001725 3021 DCA CFLG /V3C 1391 001726 4511 PUSHJ /CHRL DOES A "GETN" 1392 001727 0614 CHRL /TO GET THE DEFAULT VALUES OF N 1393 001730 1044 TAD P 1394 001731 3027 DCA N 1395 001732 1026 TAD M 1396 001733 3044 DCA P 1397 001734 3024 MFROMN, DCA NFLG /CLEAR NFLG IN CASE COMMA FLAG WAS ON 1398 001735 7100 CLL /M AND N ARE KNOWN TO BE 12-BITS LONG 1399 /AND POSITIVE 1400 001736 1027 TAD N 1401 001737 4527 BZCHK /IS N OK? 1402 001740 7140 CMA CLL /YES - COMPUTE N-M 1403 001741 1026 TAD M /BY COMPUTING M-N-1 1404 001742 7040 CMA /AND COMPLEMENTING IT 1405 001743 7420 SNL /IS M>N? 1406 001744 5717 JMP I NLINES /NO - RETURN N-M 1407 001745 1026 TAD M /N-M+M=N NOW IN AC. 1408 001746 3237 DCA CPCT /INTERCHANGE M AND N 1409 001747 1026 TAD M 1410 001750 3027 DCA N 1411 001751 1237 TAD CPCT 1412 001752 3026 DCA M 1413 001753 5334 JMP MFROMN 1414 /COMMANDS ; < AND > 1415 1416 001754 1032 CFSI, TAD ITRST 1417 001755 7650 SNA CLA 1418 001756 4514 ERR24, ERR /FAILING SEARCH NOT IN ITERATION 1419 001757 4550 CSEM, OVRLAY 1420 001760 3201 QOVRLY 1421 001761 3503 CSEMO 1422 / ^A ROUTINE 1423 1424 001762 1103 CTLA, TAD KTYPE 1425 001763 3371 CEXP, DCA WHERTO 1426 001764 1031 TAD CHAR 1427 001765 3010 DCA QUOTE /TERMINATING CHAR SAME AS COMMAND CHAR 1428 001766 3024 DCA NFLG /KILL NUMBER IF PRESENT 1429 001767 4535 CTLALP, QUOTST 1430 001770 5565 JMP I [IREST 1431 001771 0000 WHERTO, 0 /TYPE OR IGNORE THE CHARACTER 1432 001772 7200 CLA 1433 001773 5367 JMP CTLALP 1434 001774 4534 PAGE 001775 3741 001776 4522 001777 7651 1435 /COMMANDS A AND Y 1436 1437 002000 2024 CHRA, NCHK /COMMAND A 1438 002001 5236 JMP CHAA 1439 002002 4551 GETNUM 1440 002003 1044 TAD P 1441 002004 3047 DCA R 1442 002005 7430 SZL 1443 002006 5777 JMP I (ERR11 /ERROR IF POINTER OFF PAGE 1444 002007 6211 CDF 10 1445 002010 1047 TAD R 1446 002011 7140 CMA CLL 1447 002012 1045 TAD ZZ /RETURN 'POP' IF POINTER OUTSIDE RANGE [0,Z-1] 1448 002013 7620 SNL CLA /OTHERWISE VALUE OF CHARACTER AT POINTER POSITION 1449 002014 5777 JMP I (ERR11 /POP 1450 002015 1447 TAD I R 1451 002016 0172 AND [377 1452 002017 6201 CDF 0 1453 002020 7100 NCOM14, CLL 1454 002021 5776 JMP I (NCOM 1455 002022 1024 CHRY, TAD NFLG 1456 002023 7640 SZA CLA 1457 002024 4514 ERR18, ERR /NUMERIC ARGUMENT TO Y 1458 002025 1122 TAD OUTR 1459 002026 7041 CIA 1460 002027 1114 TAD ERROR 1461 002030 7640 SZA CLA 1462 002031 1045 TAD ZZ 1463 002032 7640 YSKP, SZA CLA /CHANGE TO SKP CLA TO NEVER ABORT Y COMMAND 1464 002033 4514 ERR32, ERR /Y COMMAND ABORTED 1465 002034 3045 DCA ZZ 1466 002035 3044 DCA P /WIPE OUT THE BUFFER 1467 002036 1375 CHAA, TAD (ZMAX-1 1468 002037 0037 AND REND 1469 002040 7141 CIA CLL 1470 002041 1045 TAD ZZ /IF WE HAVE ALREADY SEEN THE INPUT EOF, 1471 002042 7630 SZL CLA /OR IF WE'RE ALREADY FULL (OR NEARLY SO) 1472 002043 5362 JMP APLF /GET OUT 1473 002044 2075 DECGET, ISZ ICRCNT 1474 002045 5301 JMP I2 /NO NEED TO READ 1475 002046 7100 CLL 1476 002047 1012 TAD INRSIZ 1477 002050 1100 TAD INRCNT 1478 002051 7420 STECO1, SNL /"SKP!CLA" FOR SUPERTECO 1479 002052 3100 DCA INRCNT /UPDATE RECORD COUNT 1480 002053 7172 LFTAB, CLL CML CMA RTR /IF WE OVERFLOWED THE END OF THE FILE, ! 1481 002054 7012 RTR /5 ENTRY TABLE: MUST BE - - - + + ! 1482 002055 7012 RTR /SHORTEN THE READ BY THE CORRECT AMOUNT ! 1483 002056 1366 TAD INCTLW / ! 1484 002057 3261 DCA INCTRL /SO THAT WE WILL NOT READ TOO FAR ! 1485 002060 4467 JMS I INHND 1486 I3, 1487 002061 0400 INCTRL, 0400 1488 002062 6200 BUFIN, IN /6200 IF 8K, 5600 IF 12K 1489 002063 0000 IBLK, 0 1490 002064 7700 SMA CLA 1491 002065 7410 SKP 1492 002066 5364 JMP INER /IGNORE END-OF-FILE ERRORS, WE'LL SEE THE ^Z. 1493 002067 1263 TAD IBLK 1494 002070 1012 TAD INRSIZ /BUMP RECORD NUMBER BY THE MAXIMUM NUMBER 1495 002071 3263 DCA IBLK /(IF WE READ SHORT ITS THE LAST ONE ANYWAY) 1496 002072 7240 CLA CMA 1497 002073 1262 TAD BUFIN 1498 002074 3016 DCA INXR /SET UP INPUT XR 1499 002075 1367 TAD INPCNT 1500 002076 3075 DCA ICRCNT 1501 002077 7346 MTHREE 1502 002100 3261 DCA I3 1503 002101 7000 I2, NOP /CDF 20 IF 12K 1504 002102 2261 ISZ I3 1505 002103 5324 JMP I1 /NORMAL CHARACTER 1506 002104 7346 MTHREE /WEIRD CHARACTER-RESET SWITCH 1507 002105 3261 DCA I3 1508 002106 7344 MTWO 1509 002107 1016 TAD INXR 1510 002110 3016 DCA INXR /MOVE INPUT XR BACK TO BEGINNING OF DBLWORD 1511 002111 1416 TAD I INXR 1512 002112 0173 AND [7400 1513 002113 3036 DCA FFFLAG /TEMP 1514 002114 1416 TAD I INXR 1515 002115 0173 AND [7400 1516 002116 7112 CLL RTR 1517 002117 7012 RTR 1518 002120 1036 TAD FFFLAG 1519 002121 7112 CLL RTR 1520 002122 7012 RTR 1521 002123 7410 SKP 1522 002124 1416 I1, TAD I INXR 1523 002125 7000 IC, NOP /CDF 0 IF 12K 1524 002126 0171 AND [177 /MASK OFF GARBAGE 1525 /INPUT CHARACTER IN AC 1526 002127 7440 SZA 1527 002130 1374 TAD (-177 1528 002131 7450 SNA /IGNORE BLANK TAPE AND RUBOUTS 1529 002132 5244 JMP DECGET 1530 002133 1373 TAD (177-32 1531 002134 7450 STECO2, SNA /"SKP" FOR SUPERTECO 1532 002135 5357 JMP APFS /IT'S A ^Z 1533 002136 1372 TAD (16 1534 002137 7450 SNA 1535 002140 5361 JMP APFF /ITS A FORM FEED 1536 002141 1056 TAD CAFF /RESTORE CHAR 1537 002142 6211 CDF 10 1538 002143 3063 DCA MQ /SAVE CHAR 1539 002144 1445 TAD I ZZ /PROTECT HIGH- 1540 002145 0173 AND [7400 /ORDER BITS 1541 002146 1063 TAD MQ /OF TARGET 1542 002147 3445 DCA I ZZ /STORE CHAR IN BUFFER 1543 002150 1063 TAD MQ 1544 002151 6201 CDF 0 1545 002152 2045 ISZ ZZ 1546 002153 1175 TAD [-12 1547 002154 7650 SNA CLA /IF THE CHAR IS A LINE FEED, 1548 002155 1371 TAD (-310 /CHECK THAT THE BUFFER IS NOT NEARLY FULL 1549 002156 5236 JMP CHAA 1550 002157 3037 APFS, DCA REND /SIGNAL END OF FILE 1551 002160 7410 SKP 1552 002161 7240 APFF, STA 1553 002162 3036 APLF, DCA FFFLAG /SET FORM FEED FLAG 1554 002163 5512 POPJ 1555 002164 3037 INER, DCA REND /INHIBIT FUTURE INPUTS 1556 002165 4514 ERR15, ERR 1557 1558 002166 0401 INCTLW, 401 /1021 IF 12K MACHINE 1559 002167 6400 INPCNT, 6400 /5000 IF 12K MACHINE 1560 002171 7470 PAGE 002172 0016 002173 0145 002174 7601 002175 7637 002176 1215 002177 4634 1561 /TELETYPE ROUTINES 1562 1563 002200 0000 TYPCTV, 0 /TELETYPE STUFFER 1564 002201 4515 SORT 1565 002202 0052 CTLBEL 1566 002203 2473 CTLTAB-CTLBEL 1567 002204 3035 DCA SCHAR /STORE (POSSIBLY TRANSLATED) CHAR 1568 002205 1035 OUTCC, TAD SCHAR 1569 002206 2221 ISZ COLCT /BUMP COLUMN COUNTER 1570 002207 0167 AND [7740 1571 002210 7640 SZA CLA /IS THE CHAR A CONTROL CHARACTER? 1572 002211 5243 JMP NOCON /NO 1573 002212 1377 TAD (136 1574 002213 4552 PUTT /OUTPUT "^" 1575 002214 2221 ISZ COLCT 1576 002215 1160 TAD [100 1577 002216 1035 OUTLF, TAD SCHAR 1578 002217 4552 OUTLF1, PUTT 1579 002220 5600 JMP I TYPCTV 1580 002221 0000 COLCT, 0 1581 1582 002222 3221 OUTCR, DCA COLCT /RESET CHAR COUNT 1583 002223 5216 JMP OUTLF 1584 002224 1161 OUTVT, TAD [4 1585 002225 1162 OUTFF, TAD [7770 /FORM FEED IS 8 LINE FEEDS, VERT TAB IS 4 1586 002226 3221 DCA COLCT /*** BUG 1587 002227 1060 ASR33, TAD CALF /SIMULATE FORMFEEDS AND VERT TABS WITH LINEFEEDS 1588 002230 5237 JMP OUTCOM /*K* 8 LOCS AT ASR33 OVERLAYED BY ASR35 CODE 1589 1590 002231 1221 OUTHT, TAD COLCT /COLUMN COUNTER, MOD 8 1591 002232 0157 AND [7 1592 002233 1162 TAD [7770 /SIMULATE TABS WITH SPACES 1593 002234 3221 DCA COLCT 1594 002235 0040 40 /TAKE UP SPACE SO ASR-35 ROUTINE WILL JUST FIT 1595 002236 1235 TAD .-1 /USE SPACES FOR TABS 1596 002237 4552 OUTCOM, PUTT /PUT ONE OUT THE 1597 002240 2221 ISZ COLCT /WINDOW 1598 002241 5776 JMP I (TPUTX /STILL MORE INSIDE 1599 002242 5600 JMP I TYPCTV 1600 1601 002243 1035 NOCON, TAD SCHAR 1602 002244 0160 AND [100 1603 002245 7650 EU1, SNA CLA /*EU SET TO CLA IF EUFLAG < 0 (NO CASE FLAGGING) 1604 002246 5216 JMP OUTLF /NOT ALPHANUMERIC 1605 002247 7000 EU2, NOP /*EU SET TO TAD [40 IF EUFLAG>0 (FLAG UPPER CASE) 1606 002250 1035 TAD SCHAR 1607 002251 0166 AND [40 1608 002252 7650 SNA CLA 1609 002253 5216 JMP OUTLF 1610 002254 1323 TAD SQUO 1611 002255 4552 PUTT 1612 002256 2221 ISZ COLCT 1613 002257 1035 TAD SCHAR 1614 002260 0156 AND [137 1615 002261 5217 JMP OUTLF1 /OUTPUT UPPER CASE VERSION 1616 1617 002262 1035 OUTBEL, TAD SCHAR 1618 002263 4552 PUTT 1619 002264 5205 JMP OUTCC 1620 /ROUTINE TO MANIPULATE Q-REGISTER STORAGE 1621 1622 /*** ALLOW : TO MEAN APPEND TO Q-REGISTER 1623 /APPLIES TO X AND ^U COMMANDS 1624 /MAKE SURE CMD LINE AND ^S ZERO CLNF 1625 1626 002265 0000 QADJ, 0 1627 002266 7510 SPA 1628 002267 5313 JMP ERR12 /STRING TOO LONG FOR Q-REGISTER 1629 002270 3063 DCA MQ /SAVE NEW LENGTH OF Q-REGISTER 1630 002271 4533 QSUM /COMPUTE POINTER TO CURRENT Q-REGISTER 1631 002272 7350 AC3777 1632 002273 0474 AND I QPTR 1633 002274 1050 TAD QP 1634 002275 3047 DCA R 1635 002276 7350 AC3777 1636 002277 0474 AND I QPTR /GET ITS CURRENT LENGTH 1637 002300 7141 CIA CLL 1638 002301 1063 TAD MQ /COMPUTE DIFFERENCE 1639 002302 7420 SNL /ADJUST Q-REGS 1640 002303 5340 JMP QDNN /TO HOLD NEW STRING 1641 002304 7450 SNA /CHECK FOR ZERO 1642 002305 5356 JMP QADJDN /NOTHING TO DO 1643 002306 1051 TAD QZ /MOVE Q-REGISTERS UP TO INSERT CHARS 1644 002307 3050 DCA QP /(LINK IS 1 FROM PREVIOUS SNL) 1645 002310 1050 TAD QP 1646 002311 1366 TAD MQMAX /SEE IF OUT OF BOUNDS 1647 002312 7620 SNL CLA /TWO PLACES TO TOGGLE LINK THERE 1648 002313 4514 ERR12, ERR /GETTING TOO FULL 1649 002314 1051 TAD QZ 1650 002315 3046 DCA Q 1651 002316 1050 TAD QP 1652 002317 3051 DCA QZ 1653 002320 2050 ISZ QP 1654 002321 1046 QUPL, TAD Q 1655 002322 7041 CIA 1656 002323 1047 SQUO, TAD R /DOUBLES AS ASCII FOR ' 1657 002324 7650 SNA CLA 1658 002325 5356 JMP QADJDN 1659 002326 7040 CMA 1660 002327 1046 TAD Q 1661 002330 3046 DCA Q 1662 002331 7344 MTWO 1663 002332 1050 TAD QP 1664 002333 3050 DCA QP 1665 002334 1046 TAD Q 1666 002335 4524 GETQ 1667 002336 4534 QPUT 1668 002337 5321 JMP QUPL 1669 002340 1047 QDNN, TAD R /MOVE Q-REGS DOWN TO ABSORB CHARACTERS 1670 002341 3050 DCA QP 1671 002342 1051 QDNN1, TAD QZ 1672 002343 7041 CIA 1673 002344 1047 TAD R /-NUMBER OF CHARS TO MOVE 1674 002345 7650 SNA CLA /DONE? 1675 002346 5354 JMP QDNNF /YES 1676 002347 1047 TAD R 1677 002350 4524 GETQ 1678 002351 4534 QPUT 1679 002352 2047 ISZ R 1680 002353 5342 JMP QDNN1 /LOOP AGAIN 1681 002354 1050 QDNNF, TAD QP /SET NEW VALUE 1682 002355 3051 DCA QZ /OF HIGHEST CHAR 1683 002356 7330 QADJDN, STL CLA RAR /4000 1684 002357 0474 AND I QPTR /SAVE HIGH ORDER PART 1685 002360 1063 TAD MQ 1686 002361 3474 DCA I QPTR /SAVE NEW LENGTH OF Q-REGISTER IN Q-REG TABLE 1687 002362 1043 TAD QCMND /SET UP COMMAND LINE AGAIN 1688 002363 4536 SETCMD /AS IT MAY HAVE BEEN SHUFFLED. 1689 002364 4533 QSUM /RECOMPUTE POINTER TO BEGINNING OF NEW Q-REG 1690 002365 5665 JMP I QADJ 1691 1692 002366 4060 MQMAX, -QMAX 1693 1694 002367 0000 QOVER, 0 /SUBROUTINE TO SKIP TO END OF STRING 1695 002370 4530 QCHK /GET THE QUOTE CHARACTER (IF ANY) 1696 002371 1040 TAD SCANP 1697 002372 3041 DCA OSCANP /SAVE BACKUP SCAN POINTER 1698 002373 4535 QOVERL, QUOTST 1699 002374 5767 JMP I QOVER /FOUND AN ALTM OR EQUIVALENT - RETURN 1700 002375 5373 JMP QOVERL /NOT END - SKIP ANOTHER CHAR 1701 002376 0557 PAGE 002377 0136 1702 /Q-REGISTER SUBROUTINES 1703 1704 002400 0000 QSUMR, 0 /COMPUTE POINTER TO Q-REG 1705 002401 7450 SNA 1706 002402 1071 TAD QNMBR /NORMALLY USES QNMBR, BUT CAN BE OVERRIDDEN BY AC 1707 002403 7041 CIA 1708 002404 3222 DCA QKNT 1709 002405 3050 DCA QP 1710 002406 1377 TAD (QARRAY /BASE ADDR OF Q-REG POINTERS 1711 002407 3074 DCA QPTR 1712 002410 5217 JMP QSUMB 1713 002411 7350 QSUML, AC3777 1714 002412 0474 AND I QPTR /ADD # OF CHARS IN LOWER REG 1715 002413 1050 TAD QP 1716 002414 3050 DCA QP 1717 002415 2074 ISZ QPTR /SKIP VALUE WORD 1718 002416 2074 ISZ QPTR /POINT TO NEXT Q-REG 1719 002417 2222 QSUMB, ISZ QKNT /REACHED OUR Q-REGISTER YET? 1720 002420 5211 JMP QSUML /NO - ADD IN ANOTHER 1721 002421 5600 JMP I QSUMR 1722 002422 0000 QKNT, 0 1723 002423 0000 SGET, 0 /SCAN COMMAND LINE OR MACRO 1724 002424 7200 SGET1, CLA /** CALLED WITH AC NON-ZERO ** 1725 002425 1073 TAD QLENGT 1726 002426 7141 CIA CLL 1727 002427 1040 TAD SCANP 1728 002430 7630 SZL CLA /CHECK THAT WE ARE STILL INSIDE THE COMMAND LINE 1729 002431 5245 JMP SGOVFL /NO - COMMAND DONE 1730 002432 1040 TAD SCANP /GET CHARACTER POSITION IN LINE 1731 002433 1072 TAD QBASE /ADD IT TO THE ADDRESS OF THE LINE 1732 002434 4524 GETQ /AND GET THAT CHARACTER. 1733 002435 3106 DCA LASTC 1734 002436 1023 TAD TFLG 1735 002437 0106 AND LASTC /IF THE TRACE FLAG IS ON, 1736 002440 7440 SZA 1737 002441 4521 TYPE /PRINT THE CHAR 1738 002442 1106 TAD LASTC 1739 002443 2040 ISZ SCANP /INCREMENT CHARACTER POINTER AFTER FETCH 1740 002444 5623 JMP I SGET /RETURN 1741 002445 1034 SGOVFL, TAD MPDL /"MPDL" IS THE PUSHDOWN POINTER ON ENTRY TO THIS 1742 002446 7450 SNA /MACRO. IF IT IS 0, WE ARE NOT IN A MACRO 1743 002447 5776 JMP I (T1 /SO RETURN TO THE USER 1744 002450 1042 TAD PDLP /CHECK THAT THE ENDING POINTER IS THE SAME 1745 002451 7001 IAC 1746 002452 7640 SZA CLA /AS THE ENTRY ONE - OTHERWISE WE HAVE 1747 002453 4514 ERR13, ERR /SCREWED UP SOMEHOW (EG WE ARE 1748 002454 4510 POP / IN THE MIDDLE OF A COMMAND) 1749 002455 3040 DCA SCANP 1750 002456 4510 POP 1751 002457 3032 DCA ITRST 1752 002460 4510 POP /RESTORE THE PREVIOUS VALUES OF 1753 002461 3034 DCA MPDL /MPDL, THE SCAN POINTER AND THE COMMAND LINE 1754 002462 4510 POP /POINTER FROM THE PUSHDOWN LIST 1755 002463 4536 SETCMD 1756 002464 5224 JMP SGET1 /AND FETCH A CHARACTER FROM THE UPPER LEVEL. 1757 002465 0000 CMDSET, 0 /SUBROUTINE TO SET UP COMMAND LINE POINTERS 1758 002466 3043 DCA QCMND /STORE IN COMMAND LINE NUMBER 1759 002467 1043 TAD QCMND 1760 002470 4533 QSUM 1761 002471 1050 TAD QP /GET FIRST LOCATION IN COMMAND LINE 1762 002472 3072 DCA QBASE /AND STORE IN "QBASE" 1763 002473 7350 AC3777 1764 002474 0474 AND I QPTR 1765 002475 3073 DCA QLENGT /STORE THE LINE LENGTH IN "QLENGT" 1766 002476 5665 JMP I CMDSET /RETURN 1767 1768 002477 0000 QREFER, 0 /SET UP POINTERS FOR Q-REG REFERENCE 1769 002500 7440 SZA 1770 002501 5314 JMP QREFEX /AHA - WE ALREADY HAVE THE Q-REGISTER 1771 002502 4543 SCANUP /GET Q-REGISTER IDENTIFIER 1772 002503 3071 DCA QNMBR 1773 002504 1071 TAD QNMBR 1774 002505 4544 TSTSEP /TEST FOR ALPHANUMERIC (LOWER CASE LEGAL) 1775 002506 4514 ERR03, ERR /OOPS - BAD Q-REGISTER REFERENCE 1776 002507 1071 TAD QNMBR 1777 002510 1155 TAD [7700 1778 002511 7510 SPA /NUMERIC? 1779 002512 1052 TAD Z7 /YES - FORCE NUMBERS UP TO ABUT LETTERS 1780 002513 1060 TAD CALF /FORCE IDENTIFIER INTO THE RANGE 1-44 (OCTAL) 1781 002514 3071 QREFEX, DCA QNMBR /STORE AWAY NUMBER FOR FURTHER REFERENCE 1782 002515 4533 QSUM /COMPUTE QP AND QPTR 1783 002516 5677 JMP I QREFER /RETURN 1784 1785 002517 4550 CDBQ, OVRLAY 1786 002520 3201 QOVRLY /READ IN Q-OVERLAY 1787 002521 3451 CDBQO 1788 1789 002522 4550 CHRO, OVRLAY /READ IN Q-OVERLAY 1790 002523 3201 QOVRLY 1791 002524 3205 CHROO 1792 002525 0000 OVERLY, 0 1793 002526 1725 TAD I OVERLY /GET LOCATION TO CHECK 1794 002527 2325 ISZ OVERLY 1795 002530 3342 DCA TMP 1796 002531 1725 TAD I OVERLY 1797 002532 3325 DCA OVERLY /SET RETURN ADDRESS 1798 002533 1742 TAD I TMP /IS OUR OVERLAY IN CORE? 1799 002534 7450 SNA 1800 002535 5725 JMP I OVERLY /YES, BRANCH INTO IT 1801 002536 3342 DCA TMP /NO, SET BLOCK TO READ IN 1802 /** THE NEXT 5 WORDS ARE MODIFIED IF WE HAVE MORE THAN 12K 1803 002537 4775 OVREAD, JMS I (7607 /CALL SYSTEM HANDLER 1804 002540 0200 0200 /READ 2 PAGES 1805 002541 3200 3200 /INTO 3200 1806 002542 0000 TMP, 0 /FROM THIS BLOCK 1807 002543 7402 HLT /ERROR READING OVERLAY 1808 002544 5725 JMP I OVERLY /GO TO NEXT SPOT 1809 1810 002545 2262 CTLTAB, OUTBEL /BELL 1811 002546 2222 OUTCR 1812 002547 2231 POUTHT, OUTHT 1813 002550 4044 4044 /$ WITH SIGN BIT ON 1814 002551 2225 OUTFF 1815 002552 2224 OUTVT 1816 002553 2216 OUTLF 1817 1818 002554 4033 ALTTAB, 4033 1819 002555 4033 4033 /ALTMODE WITH SIGN BIT ON 1820 1821 002556 7240 CATS, STA /@ COMMAND - FAKE OUT "IREST" 1822 002557 3025 IREST, DCA QFLG /RESET QUOTED STRING FLAG 1823 002560 1055 TAD CAAM 1824 002561 3010 DCA QUOTE /RESET QUOTE CHAR TO ALTMODE 1825 002562 5512 POPK, POPJ /RETURN 1826 1827 002563 0000 QTST, 0 /SUBROUTINE TO GET A CHAR AND TEST FOR ALTMODE 1828 002564 4517 SCAN 1829 002565 4515 SORT 1830 002566 0010 QUOTE 1831 002567 2553 QTST-QUOTE /RETURN IF QUOTE FOUND 1832 002570 2363 ISZ QTST 1833 002571 5763 JMP I QTST /SKIP-RETURN WITH AC INTACT IF NOT FOUND 1834 /COMMANDS ^U AND E - ALSO ERROR ROUTINE 1835 1836 002572 4550 CTLU, OVRLAY 1837 002573 3204 FOVRLY 1838 002574 3354 CTLUO 1839 002575 7607 PAGE 002576 0206 002577 4647 1840 002600 5543 ERRXX, ERR30+1 /ENTRY POINT ALSO SERVES AS A FLAG FOR "TQMK" 1841 002601 6032 KCC /CLEARS AC 1842 002602 6201 CDF 0 /JUST IN CASE 1843 002603 1600 TAD I ERRXX /GRAB SIGNAL '0' NOW 1844 002604 3232 DCA ERRTMP /BEFORE OVERLAY MIGHT DESTROY IT 1845 002605 4550 OVRLAY /GO TO ERROR OVERLAY 1846 002606 3202 EOVRLY 1847 002607 3205 ERRYY 1848 1849 002610 1232 ERRRET, TAD ERRTMP /GET THE LOCATION AFTER THE CALL 1850 002611 7650 SNA CLA /IF IT'S ZERO AND WE WERE CHAINED TO, 1851 002612 7000 CHOOPS, NOP /ITS A FATAL ERROR - JMP CTLC 1852 FATALJ= JMP I (CTLC 1853 002613 1040 CTRLP, TAD SCANP 1854 002614 7041 CIA 1855 002615 3200 DCA ERRXX /SET ERRXX TO CHAR POSITION OF ERROR CHAR. 1856 002616 6032 KCC /ZAP KEYBOARD FLAG 1857 002617 5776 JMP I (T0 /CONTINUE AS NORMAL UNLESS USER TYPES "?" 1858 1859 002620 4543 CHRE, SCANUP /COMMAND E 1860 002621 3325 DCA TYI 1861 002622 1325 TAD TYI 1862 002623 4515 SORT 1863 002624 4522 EFLST 1864 002625 6420 EFTAB-EFLST 1865 002626 7200 CLA 1866 002627 4550 OVRLAY 1867 002630 3204 FOVRLY 1868 002631 3205 CHRED 1869 002632 0000 ERRTMP, 0 /MUST BE INITIALLY 0 1870 /COMMANDS I AND 1871 1872 002633 2024 CHRI, NCHK /I COMMAND 1873 002634 5243 JMP CIL1 1874 002635 1027 TAD N /INSERT CHAR WHOSE VALUE IS N 1875 002636 4342 JMS UPOC 1876 /*** CHECK FOR $ 1877 002637 5512 POPJ 1878 002640 3025 CTLI, DCA QFLG /CANNOT BE QUOTED 1879 / CLA CMA /FOR TAB INSERT 1880 / TAD SCANP 1881 / DCA SCANP /BACK UP SCAN POINTER BY ONE 1882 / /*** THIS IS A BUG 1883 002641 1054 TAD CAHT /TAB 1884 002642 4342 JMS UPOC 1885 002643 4531 CIL1, QSKP /COUNT LENGTH OF INSERTION 1886 002644 3064 DCA DVT1 /ZERO FUDGE USED BY FS COMMAND 1887 002645 1041 CIL2, TAD OSCANP 1888 002646 1072 TAD QBASE 1889 002647 3050 DCA QP /SET UP POINTER TO INSERTION STRING 1890 002650 1040 TAD SCANP 1891 002651 7141 CIA CLL 1892 002652 1041 TAD OSCANP 1893 002653 3063 DCA MQ /STORE CHAR COUNT TO INSERT (-1) 1894 002654 1063 TAD MQ 1895 002655 1064 TAD DVT1 /ADD FS FUDGE 1896 002656 7040 CMA 1897 002657 7420 SNL /DID WE INSERT MORE THAN WE DELETED? 1898 002660 5322 JMP EXPAND /YES - IGNORE SIGN BIT OF COUNT 1899 002661 7041 CIA 1900 002662 4511 PUSHJ 1901 002663 0735 ADJ2 /COMPRESS OUT EXCESS DELETED STUFF 1902 002664 5272 JMP CIL4 1903 002665 1050 CIL3, TAD QP 1904 002666 4524 GETQ /GET A CHAR 1905 002667 3325 DCA TYI 1906 002670 4275 JMS STOREC /STORE A CHARACTER 1907 002671 2050 ISZ QP 1908 002672 2063 CIL4, ISZ MQ 1909 002673 5265 JMP CIL3 /OF INSERTION 1910 002674 5565 JMP I [IREST 1911 1912 002675 0000 STOREC, 0 /STORE CHAR IN "TYI" INTO TEXT BUFFER AT P 1913 002676 6211 CDF 10 1914 002677 1444 TAD I P 1915 002700 0173 AND [7400 1916 002701 1325 TAD TYI 1917 002702 3444 DCA I P 1918 002703 6201 CDF 0 1919 002704 2044 ISZ P 1920 002705 5675 JMP I STOREC 1921 /G COMMAND 1922 1923 002706 4532 CHRG, QREF /G COMMAND - GET Q-REGISTER NUMBER 1924 002707 3024 DCA NFLG 1925 002710 7350 AC3777 1926 002711 0474 AND I QPTR /GET COUNT OF CHARS IN REGISTER 1927 002712 7040 CMA 1928 002713 3063 DCA MQ /SAVE AS TRANSFER COUNT 1929 002714 2022 ISZ CLNF 1930 002715 7410 SKP 1931 002716 5364 JMP COLG4 1932 002717 3022 DCA CLNF 1933 002720 7350 AC3777 1934 002721 0474 AND I QPTR 1935 002722 4511 EXPAND, PUSHJ /COME HERE FROM INSERT LOGIC 1936 002723 0665 ADJ /INCREASE TEXT BUFFER SIZE ( Q-REG LENGTH MAY 1937 002724 5272 JMP CIL4 /BE NEGATIVE) AND GO TRANSFER THE CHARS 1938 1939 002725 0000 TYI, 0 /TELETYPE INPUT 1940 002726 6031 TYI1, KSF /WAIT FOR THE KEYBOARD FLAG 1941 002727 5326 KSFWT, JMP .-1 /WHILE WAITING, DISPLAY TEXT ON SCOPE 1942 002730 4526 CTCCHK /CHECK FOR ^C 1943 002731 6036 KRB /WATCH OUT - AC MAY NOT BE 0! 1944 002732 0171 AND [177 1945 002733 7450 SNA 1946 002734 5326 JMP TYI1 /IGNORE NULL CHARS AND LEADER 1947 002735 4515 SORT 1948 002736 4640 ALTLST 1949 002737 5714 ALTTAB-ALTLST /LOOK FOR NON-STANDARD ALTMODES 1950 002740 0171 AND [177 /IN CASE WE RETURNED A NEGATIVE VALUE 1951 002741 5725 JMP I TYI 1952 1953 002742 0000 UPOC, 0 /MOVE TEXT BUFFER UP ONE CHAR 1954 002743 0171 AND [177 1955 002744 3325 DCA TYI 1956 002745 7201 CLA IAC 1957 002746 4511 PUSHJ 1958 002747 0665 ADJ 1959 002750 4275 JMS STOREC /STORE CHAR IN THE HOLE WE MADE 1960 002751 5742 JMP I UPOC 1961 1962 002752 0000 CUPPER, 0 /FORCE CHARACTER TO UPPER CASE 1963 002753 1155 TAD [-100 1964 002754 7500 SMA /IF ITS >100 1965 002755 0375 AND (37 /REDUCE IT TO BE <140 1966 002756 1160 TAD [100 1967 002757 5752 JMP I CUPPER /RETURN 1968 002760 1050 COLG3, TAD QP 1969 002761 4524 GETQ /GET A CHAR 1970 002762 4521 TYPE 1971 002763 2050 ISZ QP 1972 002764 2063 COLG4, ISZ MQ 1973 002765 5360 JMP COLG3 1974 002766 5512 POPJ 1975 002767 0000 ESCAPE, 0 1976 002770 1055 TAD CAAM /TYPE ESCAPE 1977 002771 4552 PUTT 1978 002772 1767 TAD I ESCAPE 1979 002773 4552 PUTT /TYPE ARGUMENT 1980 002774 5767 JMP I ESCAPE /OK TO RETURN TO ARGUMENT 1981 002775 0037 PAGE 002776 0203 002777 0473 1982 003000 1577 TSAVE, TAD I [QPNTR 1983 003001 7640 SZA CLA /IF WE ARE NOT AT THE BEGINNING OF THE C.L. 1984 003002 5516 RESORT /TREAT THIS LIKE ANY OTHER ^S 1985 003003 7344 MTWO /DROP OFF THE TWO BELLS OR ALTMODES 1986 003004 1101 TAD OCMDLN 1987 003005 4540 ADJQ /SET COMMAND STRING LENGTH TO OLD VALUE 1988 003006 1331 TAD L44 1989 003007 4532 QREF /SET UP POINTERS TO Q-REG Z 1990 003010 4540 ADJQ /KILL CONTENTS OF Q-REG Z 1991 003011 1577 TAD I [QPNTR 1992 003012 3777 DCA I (QPNTR-2 1993 003013 3577 DCA I [QPNTR /DO A QUICK SHUFFLE OF Q-REG LENGTHS 1994 003014 5776 JMP I (TCTLU 1995 003015 4532 CHRQ, QREF /COMMAND Q 1996 003016 7100 CLL 1997 003017 5222 JMP CQOA 1998 1999 003020 4532 CPCS, QREF /COMMAND % 2000 003021 4537 GETN 2001 003022 2074 CQOA, ISZ QPTR /POINT TO VALUE WORD 2002 003023 1474 TAD I QPTR /INCREMENT VALUE BY ARGUMENT 2003 003024 3474 DCA I QPTR 2004 /ADD LINKS 2005 003025 7240 STA 2006 003026 1074 TAD QPTR /GO BACK ONE 2007 003027 3246 DCA QPTR2 /ALSO COMPL LINK 2008 003030 7030 CML RAR 2009 003031 1646 TAD I QPTR2 2010 003032 3646 DCA I QPTR2 2011 003033 1646 TAD I QPTR2 2012 003034 7004 RAL 2013 003035 7200 CLA 2014 003036 1474 TAD I QPTR 2015 003037 5775 JMP I (NCOM /MAKE A NUMBER 2016 2017 003040 0000 TYCRLF, 0 /TYPE A CR AND LF 2018 003041 1053 TAD CACR /CR 2019 003042 4521 XTYPE, TYPE 2020 003043 1060 TAD CALF /LF 2021 003044 4521 TYPE 2022 003045 5640 JMP I TYCRLF /RETURN 2023 2024 003046 0000 QPTR2, 0 2025 2026 003047 4550 CHGT, OVRLAY 2027 003050 3201 QOVRLY 2028 003051 3513 CHGTO 2029 003052 4550 CHLT, OVRLAY 2030 003053 3201 QOVRLY 2031 003054 3534 CHLTO 2032 003055 2024 CCMA, NCHK /COMMAND , 2033 003056 5061 JMP NERR /NUMBER FLAG NOT SET 2034 003057 1030 TAD NLINK 2035 003060 7640 SZA CLA 2036 003061 4514 ERR26, ERR /NEG ARGUMENT TO , 2037 003062 2021 ISZ CFLG 2038 003063 7410 SKP 2039 003064 5061 JMP NERR /3 NUMERIC ARGUMENTS 2040 003065 1027 TAD N /MOVE N TO M 2041 003066 3026 CCMA3, DCA M /ENTERED HERE BY "H" COMMAND 2042 003067 3027 DCA N /AND CLEAR N 2043 003070 7240 STA 2044 003071 3021 DCA CFLG /SET COMMA FLAG 2045 003072 5512 POPJ 2046 /RETURNS 13-BIT RESULT IN AC,LINK 2047 2048 003073 0000 NGET, 0 /SUBROUTINE TO GET LAST NUMBER, WITH 2049 003074 2024 NGET1, NCHK /DEFAULT VALUES OF +1 (NO NUMBER), 2050 003075 5300 JMP NGET2 /OR -1 (JUST A MINUS SIGN) 2051 003076 4551 GETNUM 2052 003077 5673 JMP I NGET /DIGITS SEEN - RETURN THEM 2053 003100 7301 NGET2, CLA CLL IAC /NO DIGITS SEEN 2054 003101 4511 PUSHJ /MAKE BELIEVE WE SAW THE DIGIT "1" 2055 003102 1215 NCOM /AND CREATE A NUMBER FROM IT (TAKING ANY 2056 003103 5274 JMP NGET1 /OPERATORS INTO ACCOUNT) AND USE IT 2057 2058 003104 0000 BACKUP, 0 2059 003105 1577 TAD I [QPNTR /SEE IF ANYTHING TO ERASE 2060 003106 7650 SNA CLA 2061 003107 5774 JMP I (T0 /NO, START ALL OVER 2062 003110 7240 STA 2063 003111 1577 TAD I [QPNTR /THEN THE CHARACTER COUNT 2064 003112 4540 ADJQ /REDUCE THE LENGTH OF THE COMMAND REGISTER BY 1 2065 003113 1051 TAD QZ 2066 003114 4524 GETQ /GET THE CHARACTER WE RUBBED OUT 2067 003115 5704 JMP I BACKUP 2068 2069 003116 0000 CHLCMP, 0 /COMPARISON SUBROUTINE 2070 003117 1444 TAD I P /DATA FIELD IS 10 2071 003120 0172 AND [377 2072 003121 6201 CDF 0 2073 003122 4515 SORT 2074 003123 0056 CAFF 2075 003124 1775 LFTAB-CAFF 2076 003125 7710 SPA CLA /LINE TERMINATORS ARE CHANGED TO NEGATIVE NOS. 2077 003126 2102 ISZ CDT /IS COUNT EXHAUSTED? 2078 003127 5340 JMP CHLRET /NO 2079 003130 2044 CHRLI, ISZ P 2080 003131 0044 L44, 44 2081 003132 6201 CDF 0 2082 003133 5512 POPJ 2083 2084 003134 4511 CHRH, PUSHJ /COMMAND H 2085 003135 3066 CCMA3 /SET M=0 AND COMMA FLAG ON AND FALL INTO "Z" 2086 /** COULD CAUSE ERROR ON B AND H IF NFLG SET 2087 003136 1045 CHRZ, TAD ZZ /COMMAND Z 2088 CTLH, /^H COMMAND - TIME OF DAY - NOT IMPLEMENTED 2089 003137 5773 CHRB, JMP I (NCOM14 /COMMAND B 2090 2091 003140 6211 CHLRET, CDF 10 2092 003141 5716 JMP I CHLCMP 2093 003142 3155 EFTAB, IOV 2094 003143 3152 XOV 2095 003144 3152 XOV 2096 003145 3152 XOV 2097 003146 3152 XOV 2098 003147 3155 IOV 2099 003150 3155 IOV 2100 003151 3152 XOV 2101 003152 4550 XOV, OVRLAY 2102 003153 3203 XOVRLY 2103 003154 3205 CHREX 2104 2105 003155 4550 IOV, OVRLAY 2106 003156 3200 IOVRLY 2107 003157 3400 CHRER 2108 /COMMANDS = AND \ DISPATCHER TO OVERLAY 2109 2110 003160 4550 CEQL, OVRLAY 2111 003161 3204 FOVRLY 2112 003162 3460 CEQLO 2113 003163 4550 CBSL, OVRLAY 2114 003164 3204 FOVRLY 2115 003165 3505 CBSLO 2116 2117 003166 3040 ZROSPN, DCA SCANP /RESET TO BEGINNING OF ITERATION 2118 003167 3024 ZRON, DCA NFLG /KILL NUMBER FLAG 2119 003170 5565 JMP I [IREST 2120 003173 2020 PAGE 003174 0203 003175 1215 003176 0246 003177 4755 2121 / I/O-OVERLAY 2122 2123 / IOVRLY XOVRLY FOVRLY 2124 / ER EF EU 2125 / EB EC ES 2126 / EW EX ET 2127 / EG EV 2128 / EH 2129 / EO 2130 2131 *3200 2132 2133 003200 0000 IOVRLY, 0 2134 003201 0041 QOVRLC 2135 003202 0042 EOVRLC 2136 003203 0043 XOVRLC 2137 003204 0044 FOVRLC 2138 2139 /SUBROUTINE TO DO LOOKUPS AND ENTERS (LINK CRITICAL ON ENTRY) 2140 2141 003205 0000 OPEN, 0 /CALLED WITH MONITOR CODE - 2 IN AC 2142 003206 3317 DCA RSTSW /ENTER OR LOOKUP 2143 003207 7630 SZL CLA /IF THIS IS THE OUTPUT SIDE OF AN "EB" COMMAND, 2144 003210 5306 JMP DEVLOD /SKIP THE STATEMENT SCAN 2145 003211 4530 QCHK 2146 003212 1302 TAD DSKNAM /PACKED SIXBIT FOR 'DSK:' 2147 003213 3324 DCA DEVC 2148 003214 1377 TAD (72 /RESTORE : 2149 003215 3301 NGOM1, DCA DEVLST+1 2150 003216 3000 NGO, DCA NAME /CLEAR NAME 2151 003217 3001 DCA NAME+1 2152 003220 3002 DCA NAME+2 2153 003221 7344 MTWO 2154 003222 3346 DCA PERDSW 2155 003223 3347 NAMCM1, DCA NAMCNT 2156 003224 4535 NAMEC, QUOTST /GET CHAR AND TEST FOR ALTM 2157 003225 5303 JMP DEVQOT /ALTM - END OF NAME 2158 003226 4515 SORT /NO - CHECK SPECIAL CHARS 2159 003227 3300 DEVLST /([,:,., AND SPACE 2160 003230 0217 DEVTAB-DEVLST 2161 003231 4544 TSTSEP /NO, SEE IF ALPHANUMERIC 2162 003232 4514 ERR08, ERR /ILLEGAL CHAR 2163 003233 1347 TAD NAMCNT 2164 003234 1162 TAD [-10 2165 003235 7700 SMA CLA /MORE THAN 6 CHARS? 2166 003236 5224 JMP NAMEC /YES, IGNORE 2167 003237 1347 TAD NAMCNT /NO, PACK IT 2168 003240 7110 CLL RAR 2169 003241 3342 DCA TEMP1 /*K* NOTE ASSUMPTION NAME STARTS AT LOC 0! 2170 003242 1035 TAD SCHAR 2171 003243 4542 UPPERC /** "UPPERC" ALWAYS COMPLEMENTS LINK 2172 003244 0174 AND [77 2173 003245 7420 SNL 2174 003246 5252 JMP .+4 2175 003247 7106 CLL RTL 2176 003250 7006 RTL 2177 003251 7006 RTL 2178 003252 1742 TAD I TEMP1 2179 003253 3742 DCA I TEMP1 2180 003254 2347 ISZ NAMCNT 2181 003255 5224 JMP NAMEC 2182 2183 003256 2346 PERD, ISZ PERDSW /FOUND A PERIOD 2184 003257 1000 TAD NAME 2185 003260 7650 SNA CLA /ERROR IF WE HAVE 2186 003261 5232 JMP ERR08 /DOUBLE PERIODS OR NO FILE NAME 2187 003262 3301 DCA DEVLST+1 /DEVICE NO LONGER LEGAL 2188 003263 3003 DCA NAME+3 /ZERO EXTENSION OUT 2189 003264 1154 TAD [6 /AND SET POINTER TO 6TH CHARACTER 2190 003265 5223 JMP NAMCM1 2191 2192 003266 1001 COLON, TAD NAME+1 2193 003267 7450 SNA /WE MUST PACK THE NAME INTO ONE WORD OURSELVES 2194 003270 5275 JMP .+5 /BECAUSE IF "OPEN" IS CALLED FROM THE OUTPUT 2195 003271 1000 TAD NAME /SIDE OF AN "EB" COMMAND, WE SKIP 2196 003272 7700 SMA CLA /THE NAME COLLECTOR.(WITH GOOD REASON - 2197 003273 7130 CLL CML RAR /THE USR OVERLAYS THE COMMAND LINE). 2198 003274 1001 TAD NAME+1 /SINCE THE OS/8 "ASSIGN" CALL TO THE USR 2199 003275 1000 TAD NAME /REPLACES THE 2ND NAME WORD WITH THE DEVICE 2200 003276 3324 DCA DEVC /NUMBER, ALL NAME INFO MUST BE HELD IN WORD 1. 2201 003277 5215 JMP NGOM1 /DEVICE NAME STORED - RESET FOR FILE NAME 2202 2203 003300 0056 DEVLST, 56 /. 2204 003301 0072 72 /: 2205 003302 5723 DSKNAM, 5723 /=0423+1300+4000 - SERVES AS LIST TERMINATOR 2206 003303 2346 DEVQOT, ISZ PERDSW /IF WE NEVER SAW A PERIOD, 2207 003304 3003 DCA NAME+3 /WIPE OUT THE EXTENSION 2208 003305 4776 JMS I (GETUSR /BRING USR INTO CORE 2209 2210 003306 1605 DEVLOD, TAD I OPEN /MOVE HANDLER ADDRESS 2211 003307 3326 DCA DEVHND 2212 003310 2205 ISZ OPEN /AND BUMP POINTER 2213 003311 7326 TWO 2214 003312 1317 TAD RSTSW 2215 003313 3340 DCA CODE /ENTER OR LOOKUP 2216 003314 6212 CIF 10 /AND RESET TABLES 2217 003315 4553 JMS I [200 2218 003316 0013 13 2219 003317 0000 RSTSW, 0 /DON'T ZAP OPEN FILES ON INPUT 2220 003320 3325 DCA DEVNO /ZERO SECOND NAME WORD 2221 003321 6212 CIF 10 2222 003322 4553 JMS I [200 2223 003323 0001 1 /ASSIGN HANDLER 2224 003324 0000 DEVC, 0 2225 003325 0000 DEVNO, 0 2226 003326 0000 DEVHND, 0 2227 003327 5350 JMP OPNERR /ERROR - KICK USR OUT FIRST 2228 003330 3341 DCA STBLK 2229 003331 1317 TAD RSTSW /GET LOOKUP-ENTER SWITCH 2230 003332 1000 TAD NAME /IF NAME IS NULL AND THIS IS A LOOKUP, 2231 003333 7650 SNA CLA 2232 003334 5344 JMP OPSUCC /IT JUST SUCCEEDED 2233 003335 1325 TAD DEVNO /DEVICE # 2234 003336 6212 CIF 10 2235 003337 4553 JMS I [200 2236 003340 0000 CODE, 0 /ENTER OR LOOKUP 2237 003341 0000 STBLK, 0 /FILLED WITH STARTING BLOCK 2238 TEMP1, 2239 003342 0000 FLN, 0 /FILLED WITH -LENGTH 2240 /**** CHECK IF AC MUST = 0 2241 003343 5350 JMP OPNERR /ERROR 2242 003344 1326 OPSUCC, TAD DEVHND /HANDLER ADDRESS IN AC 2243 003345 5605 JMP I OPEN 2244 003346 7777 PERDSW, 7777 /FLIP FLOP FOR EXTENSION 2245 003347 0000 NAMCNT, 0 /CHARACTER COUNT 2246 /*** CHECK FOR : (SEE P.26) RETURN VALUE IF FNF, ALSO IF FOUND 2247 003350 1317 OPNERR, TAD RSTSW /WE SHOULD ONLY KILL THE OUTPUT FILE 2248 003351 7650 SNA CLA 2249 003352 5355 JMP .+3 /IF THIS IS AN OUTPUT ERROR 2250 003353 1114 EBERR, TAD ERROR 2251 003354 3122 DCA OUTR 2252 003355 4511 PUSHJ 2253 003356 3611 PECDSM, ECDISM /DISMISS THE USR 2254 003357 4514 ERR16, ERR 2255 003360 0000 0 /*K* TELLS ERR RTN TO EXIT IF WE WERE CHAINED TO 2256 2257 003376 4507 PAGE 003377 0072 2258 003400 1777 CHRER, TAD I (TYI 2259 003401 4515 SORT 2260 003402 3410 ERLST 2261 003403 7775 ERTAB-ERLST 2262 003404 4514 ERR /CAN'T HAPPEN 2263 2264 003405 3413 ERTAB, EBAK /EB 2265 003406 3500 ROPEN /ER 2266 003407 3450 WOPEN /EW 2267 2268 003410 0102 ERLST, 102 /EB 2269 003411 0122 122 /ER 2270 003412 0127 127 /EW 2271 2272 /FILE OPEN COMMMANDS: 2273 2274 003413 7340 EBAK, CLA CMA CLL /"EDIT BACKUP" COMMAND WITH LINK CLEAR 2275 003414 4511 PUSHJ /USE 'ROPEN' TO SET POINTERS 2276 003415 3500 ROPEN /WITHOUT KICKING OUT THE USR (AC=-1 ON ENTRY) 2277 003416 1776 TAD I (DEVNO /DEVICE # 2278 003417 1375 TAD (OSDCBT-1 2279 003420 3047 DCA R 2280 003421 6211 CDF 10 2281 003422 1447 TAD I R /GET DEVICE CODE FROM DCB TABLE 2282 003423 6201 CDF 2283 003424 7700 SMA CLA /NEGATIVE IF FILE-STRUCTURED 2284 003425 5774 JMP I (EBERR /YOU CAN'T DO THAT! 2285 003426 1003 TAD NAME+3 /EXTENSION 2286 003427 1373 TAD (-213 2287 003430 7450 SNA 2288 003431 5774 JMP I (EBERR /CAN'T EB A .BK FILE 2289 003432 1244 TAD DOTBK /RESTORE EXTENSION 2290 003433 3047 DCA R /SAVE IT 2291 003434 1244 TAD DOTBK /.BK EXTENSION 2292 003435 3003 DCA NAME+3 2293 003436 6212 CIF 10 2294 003437 1776 TAD I (DEVNO /DEVICE # 2295 003440 4553 JMS I [200 /DELETE THE OLD BACKUP 2296 003441 0004 4 2297 003442 0000 NAME 2298 003443 0000 0 2299 003444 0213 DOTBK, 213 /WHO CARES IF IT'S NOT THERE? 2300 003445 1047 TAD R /OLD EXTENSION 2301 003446 3003 DCA NAME+3 2302 003447 7321 CLA CLL CML IAC /SET EDIT BACKUP FLAG AND DO AN "ENTER" 2303 /LINK MUST BE SET HERE FOR OPEN 2304 003450 3070 WOPEN, DCA EBFLG /LINK NORMALLY 0 WHEN GOTTEN HERE 2305 003451 7201 CLA IAC /OPEN OUTPUT FILE 2306 003452 4772 JMS I (OPEN /ENTER CODE IN AC 2307 003453 4001 OUHNDL, 4001 /HANDLER ADDRESS 2308 003454 3066 DCA OUTHND /HANDLER ENTRY 2309 003455 1776 TAD I (DEVNO 2310 003456 3065 DCA ODEV /SAVE DEV # 2311 003457 3771 DCA I (OCNT /CLEAR BLOCK COUNT 2312 003460 1770 TAD I (FLN 2313 003461 3767 DCA I (OMAXLN /MAXIMUM FILE LENGTH 2314 003462 1000 TAD NAME 2315 003463 3766 DCA I (OUNAM 2316 003464 1001 TAD NAME+1 2317 003465 3765 DCA I (OUNAM+1 2318 003466 1002 TAD NAME+2 2319 003467 3764 DCA I (OUNAM+2 2320 003470 1003 TAD NAME+3 2321 003471 3763 DCA I (OUNAM+3 2322 003472 1362 TAD (DECPUT 2323 003473 3122 DCA OUTR /ENABLE CHARACTER OUTPUT ROUTINE 2324 003474 1361 TAD (ECDISM 2325 003475 3762 DCA I (DECPUT /FAKE RETURN FROM CHAR I/O ROUTINE 2326 003476 1760 TAD I (STBLK 2327 003477 5757 JMP I (OSETP /SET UP BLOCK NUMBER AND POINTERS 2328 /FILE OPEN ROUTINE 2329 2330 003500 3074 ROPEN, DCA QPTR /ENTERED WITH AC=-1 IF MONITOR IS TO BE KEPT 2331 /ENTERED WITH LINK=0 2332 003501 4772 JMS I (OPEN /LOOKUP CODE IN AC 2333 003502 7201 INHNDL, 7201 /HANDLER ADDRESS 2334 003503 3067 DCA INHND /SAVE HANDLER ENTRY 2335 003504 7240 STA 2336 003505 3075 DCA ICRCNT /POINTER 2337 003506 7240 STA 2338 003507 3037 DCA REND /CLEAR END-OF-FILE FLAG 2339 003510 1760 TAD I (STBLK 2340 003511 3756 DCA I (IBLK /FIRST BLOCK 2341 003512 1770 TAD I (FLN 2342 003513 3100 DCA INRCNT /SET UP INPUT FILE LENGTH 2343 003514 2074 ISZ QPTR /SHOULD WE DISMISS THE MONITOR? 2344 003515 5761 JMP I (ECDISM /YES - KICK THE USR OUT AND POPJ 2345 003516 5565 JMP I [IREST /EXIT 2346 2347 003517 3256 DEVTAB, PERD /. 2348 003520 3266 COLON /: 2349 003556 2063 PAGE 003557 3716 003560 3341 003561 3611 003562 3671 003563 3773 003564 3772 003565 3771 003566 3770 003567 3736 003570 3342 003571 3605 003572 3205 003573 7565 003574 3353 003575 7757 003576 3325 003577 2725 2350 003600 1065 NORMAL, TAD ODEV /CLOSE FILE 2351 003601 6212 CIF 10 2352 003602 4553 JMS I [200 2353 003603 0004 4 2354 003604 3770 OUNAM 2355 003605 0000 OCNT, 0 /NUMBER OF BLOCKS 2356 003606 7402 HLT 2357 003607 1114 TAD ERROR /RESET OUTPUT SUBROUTINE POINTER 2358 003610 3122 DCA OUTR /TO ERROR 2359 003611 6212 ECDISM, CIF 10 /DISMISS OS/8 USR ROUTINE 2360 003612 4553 JMS I [200 2361 003613 0011 11 /KICK USR OUT 2362 003614 5565 JMP I [IREST 2363 2364 /*** REALLY SHOULD BREAK UP INTO 2 ROUTINES 2365 2366 003615 0000 SCHSRT, 0 /SORT LETTERS AND NUMBERS 2367 003616 4542 UPPERC /CONVERT TO UPPER CASE TO REDUCE CASES 2368 003617 7100 CLL /THE LINK WILL ALTERNATE EACH TIME 2369 003620 1163 TAD [-60 /WE ADD ONE OF OUR NEGATIVE CONSTANTS. 2370 003621 7500 SMA /THE LINK AT THE END WILL TELL WHETHER 2371 003622 1175 TAD [-12 /THE CHARACTER WAS ALPHANUMERIC 2372 003623 7500 SMA /(I.E. BETWEEN 60-71,101-132 OR 140-172) 2373 003624 1270 TAD M7 /OR A SEPARATOR CHARACTER. 2374 003625 7500 SMA 2375 003626 1377 TAD (-32 2376 003627 7630 SZL CLA /WAS IT ALPHANUMERIC? 2377 003630 2215 ISZ SCHSRT /YES 2378 003631 5615 JMP I SCHSRT /SKIP RETURN IF ALPHANUMERIC 2379 2380 003632 0000 RT, 0 /ROUTINE TO PACK THIRD CHAR INTO OUTPUT BUFFER 2381 003633 7106 CLL RTL 2382 003634 7006 RTL 2383 003635 3003 DCA DM /CALLED TWICE - FIRST TIME WITH CHAR IN AC, 2384 003636 1003 TAD DM /SECOND TIME WITH "DM" IN AC 2385 003637 0173 AND [7400 2386 003640 1477 TAD I OPTR2 2387 003641 3477 DCA I OPTR2 2388 003642 2077 ISZ OPTR2 2389 003643 5632 JMP I RT 2390 003644 0000 DVIMQL, 0 /FAKE MQL DVI 2391 003645 3064 DCA DVT1 /STORE DIVIDEND 2392 003646 3063 DCA MQ /INITIALIZE QUOTIENT 2393 003647 1644 DV1, TAD I DVIMQL /GET DIVISOR 2394 003650 7041 CIA 2395 003651 7100 CLL /SET UP TO TAKE IMMEDIATE EXIT ON ZERODIVIDE 2396 003652 1064 TAD DVT1 /SUBTRACT DIVISOR FROM DIVIDEND 2397 003653 7420 SNL /OVERFLOWED YET? 2398 003654 5260 JMP DV7200 /YES 2399 003655 3064 DCA DVT1 /NO - STORE IT BACK 2400 003656 2063 ISZ MQ /BUMP QUOTIENT 2401 003657 5247 JMP DV1 /AND LOOP 2402 003660 7200 DV7200, CLA 2403 003661 1063 TAD MQ 2404 003662 2244 ISZ DVIMQL /SKIP PAST DIVISOR 2405 003663 5644 JMP I DVIMQL /RETURN WITH QUOTIENT IN AC 2406 2407 /SEARCH STRING MODIFIERS: 2408 2409 003664 0016 SCHLST, 16 /^N - ANYTHING BUT 2410 003665 0021 21 /^Q - LITERALLY 2411 003666 0023 23 /^S - ANY SEPARATOR 2412 003667 0030 30 /^X - ANYTHING 2413 003670 7771 M7, -7 2414 003671 0000 DECPUT, 0 /DEVICE INDEPENDENT I/O 2415 003672 1153 TAD [200 /ADD ON PARITY BIT 2416 003673 2340 ISZ O3 /3RD CHAR OF 3? 2417 003674 5332 JMP O2 /NO 2418 003675 4232 JMS RT /YES, SPECIAL HANDLING 2419 003676 1003 TAD DM /TEMP STORAGE 2420 003677 4232 JMS RT 2421 003700 7346 SETO3, MTHREE /RESET SWITCH 2422 003701 3340 DCA O3 2423 003702 2076 ISZ OCRCNT /END OF BUFFER? 2424 003703 5671 JMP I DECPUT /NO 2425 003704 4341 JMS FITS /CHECK FOR OUTPUT OVERFLOW 2426 003705 5326 JMP OERR /YUP 2427 003706 3205 DCA OCNT /NO - UPDATE OUTPUT COUNT 2428 003707 4466 JMS I OUTHND /OUTPUT THE BUFFER 2429 003710 4400 OUCTRL, 4400 2430 003711 5200 BUFOUT, OUT 2431 003712 0000 OBLK, 0 2432 003713 5326 JMP OERR 2433 003714 1312 TAD OBLK 2434 003715 1012 TAD INRSIZ /BUMP THE OUTPUT RECORD NUMBER BY THE MAXIMUM 2435 003716 3312 OSETP, DCA OBLK /SINCE ALL WRITES EXCEPT THE LAST ARE MAXIMAL 2436 003717 1311 TAD BUFOUT /BUFFER POINTERS 2437 003720 3335 DCA OPTR1 2438 003721 1311 TAD BUFOUT 2439 003722 3077 DCA OPTR2 2440 003723 1337 TAD OUTSIZ 2441 003724 3076 DCA OCRCNT /DOUBLEWORD COUNT (7377 IF 8K, 6777 IF 12K) 2442 003725 5300 JMP SETO3 /SET BYTE COUNTER AND RETURN 2443 003726 7200 OERR, CLA 2444 003727 1114 TAD ERROR 2445 003730 3122 DCA OUTR /INHIBIT FUTURE OUTPUT 2446 003731 4514 ERR14, ERR 2447 003732 3735 O2, DCA I OPTR1 /NORMAL HANDLING 2448 003733 2335 ISZ OPTR1 /BUMP POINTER 2449 003734 5671 JMP I DECPUT 2450 003735 0000 OPTR1, 0 2451 003736 0000 OMAXLN, 0 /SIZE OF HOLE FOR OUTPUT 2452 003737 7377 OUTSIZ, 7377 /6777 2453 003740 0000 O3, 0 2454 003741 0000 FITS, 0 /SUBROUTINE TO CHECK FOR OUTPUT OVERFLOW 2455 003742 1335 TAD OPTR1 /** AC MAY CONTAIN FUDGE ON INPUT ** 2456 003743 7041 CIA 2457 003744 1311 TAD BUFOUT /COMPUTE NUMBER OF WORDS IN BUFFER 2458 003745 0173 AND [7400 /ROUND "UP" TO NEXT BUFFERLOAD 2459 003746 7041 CIA /MAKE POSITIVE 2460 003747 7130 CLL CML RAR 2461 003750 3310 DCA OUCTRL /AND SAVE IT AS A BUFFER CONTROL WORD 2462 003751 1310 TAD OUCTRL 2463 003752 7104 CLL RAL 2464 003753 7106 CLL RTL /ISOLATE THE BLOCK COUNT OF THE CONTROL WORD 2465 003754 7006 RTL /IN THE LOW ORDER PART OF THE AC 2466 003755 7004 RAL 2467 003756 1205 TAD OCNT /ADD IT TO THE CURRENT OUTPUT COUNT 2468 003757 7120 CLL CML 2469 003760 1336 TAD OMAXLN /SEE THAT WE DIDN'T OVERFLOW 2470 003761 7460 SNL SZA /THE ASSIGNED OUTPUT AREA 2471 003762 5741 JMP I FITS /OOPS - WE DID - ERROR RETURN 2472 003763 7041 CIA 2473 003764 1336 TAD OMAXLN /SUBTRACT OFF THE LIMIT 2474 003765 7041 CIA /TO ARRIVE AT THE UPDATED BLOCK COUNT 2475 003766 2341 ISZ FITS 2476 003767 5741 JMP I FITS /AND SKIP RETURN 2477 003770 0000 OUNAM, ZBLOCK 4 /NAME OF OPEN OUTPUT FILE GOES HERE 003771 0000 003772 0000 003773 0000 2478 003777 7746 PAGE 2479 /DISPLAY ROUTINE FOR PDP-12 SCOPE 2480 2481 004000 0000 WASTE, 0 /** MUST BE AT MULTIPLE OF 2000 2482 004001 0000 XPOS, 0 /PDP-12 BETA REGISTER 1 2483 004002 0000 BETA2, 0 /PDP-12 BETA REGISTER 2 2484 2485 004003 0000 DSPLAY, 0 /TEXT DISPLAY ROUTINE FOR TECO 2486 004004 7346 MTHREE /THIS ROUTINE DEPENDS ON THE FACT THAT THE 2487 004005 1203 TAD DSPLAY /HIGH ORDER BITS OF THE X-COORD ARE IGNORED 2488 004006 3014 DCA DX /BY THE VR12 HARDWARE 2489 004007 1414 TAD I DX /GET THE SKIP 2490 004010 3305 DCA DLPTST /PUT IT IN THE LOOP 2491 004011 1044 TAD P 2492 004012 3014 DCA DX 2493 004013 1013 TAD NUMLNS 2494 004014 7161 STL CIA /LOOK BACKWARD 2495 004015 4511 PUSHJ /FOR BEGINNING OF DISPLAY AREA 2496 004016 0615 CHRL1 2497 004017 7360 D360, STA STL /=7360 2498 004020 1044 TAD P 2499 004021 3003 DCA DM 2500 004022 1014 TAD DX 2501 004023 3044 DCA P /RESTORE POSITION 2502 004024 1013 TAD NUMLNS /NOW SCAN FORWARD 2503 004025 7101 CLL IAC 2504 004026 4511 PUSHJ /FOR THE END OF THE DISPLAY AREA 2505 004027 0615 CHRL1 2506 004030 1044 TAD P 2507 004031 7041 CIA 2508 004032 1003 TAD DM 2509 004033 3047 DCA R /*K* THIS NUMBER MUST GO IN R - 2510 004034 1014 TAD DX /THE ^W COMMAND NEEDS IT THERE 2511 004035 3044 DCA P /RESTORE ORIGINAL P 2512 004036 1044 DSETUP, TAD P 2513 004037 7041 CIA 2514 004040 1003 TAD DM 2515 004041 3002 DCA DQ /SAVE COUNT OF CHARS TO CURSOR POSITION 2516 004042 1003 TAD DM 2517 004043 3014 DCA DX 2518 004044 1047 TAD R 2519 004045 3001 DCA DR 2520 004046 1217 TAD D360 2521 004047 3000 DCA YPOS 2522 004050 1365 DISCR, TAD DISLF 2523 004051 3201 SETXPS, DCA XPOS /SET X POSITION/COLUMN COUNTER 2524 004052 5305 JMP DLPTST 2525 /DISPLAY LOOP 2526 2527 004053 6211 DGETCH, CDF 10 2528 004054 1414 TAD I DX 2529 004055 6201 CDF 0 /GET THE CHARACTER FROM FIELD 1 2530 004056 0171 AND [177 /AND OFF THE HIGH ORDER BITS 2531 004057 1377 TAD (-33 2532 004060 7450 SNA /CHANGE ALTMODES 2533 004061 1054 TAD CAHT /TO DOLLAR SIGNS 2534 004062 1376 TAD (-5 2535 004063 7540 SMA SZA /IF NOT A CONTXRACTER 2536 004064 5304 JMP DLOOP /DISPLAY IT AND KEEP GOING 2537 004065 7450 SNA 2538 004066 5342 JMP DBLANK /DO BLANKS FAST 2539 004067 1375 TAD (40-15 2540 004070 7450 SNA /CR? 2541 004071 5250 JMP DISCR /YES - RESET X COORD 2542 004072 7120 STL 2543 004073 1161 TAD [4 2544 004074 7450 SNA /TAB? 2545 004075 5332 JMP DTABB 2546 004076 7420 SNL 2547 004077 5365 JMP DISLF /LINE FEED, VERTICAL TAB, OR FORM FEED 2548 004100 1374 TAD (51 /ORDINARY CONTROL CHAR - RESTORE IT + 40 2549 004101 3200 DCA WASTE /SAVE CHAR 2550 004102 4347 JMS DISCHR /DISPLAY ^ 2551 004103 1200 TAD WASTE /NOW DISPLAY ALTERED CHAR 2552 004104 4347 DLOOP, JMS DISCHR 2553 2554 004105 7402 DLPTST, HLT /EITHER KSF OR TSF OR "ISZ R" 2555 004106 7410 SKP 2556 004107 5603 JMP I DSPLAY /EXIT IMMEDIATELY IF TEST SKIPS 2557 004110 2002 ISZ DQ /ARE WE AT THE CURRENT POINTER POSITION? 2558 004111 5327 JMP TSTEDS /NO 2559 004112 1376 TAD (-5 2560 004113 1201 TAD XPOS 2561 004114 3201 DCA XPOS /BACK UP X POSITION A HALF-CHARACTER 2562 004115 1320 TAD DM20 2563 004116 1000 TAD YPOS 2564 004117 6141 6141 /ENTER LINC MODE 2565 004120 1760 DM20, 1760 /DSC I 2566 004121 2000 2000 2567 004122 1760 1760 /DISPLAY A ^ 2568 004123 2076 2076 2569 004124 0002 0002 /PDP 2570 004125 7346 MTHREE /AND MOVE X POSITION BACK TO WHERE IT WAS 2571 004126 5343 JMP DBLANK+1 2572 004127 2001 TSTEDS, ISZ DR /ARE WE THROUGH? 2573 004130 5253 JMP DGETCH /NO 2574 004131 5236 JMP DSETUP /YES - START OVER 2575 004132 1201 DTABB, TAD XPOS /DISPLAY TAB 2576 004133 7040 CMA 2577 004134 0052 AND Z7 2578 004135 3200 DCA WASTE /GET NUMBER OF COLUMNS TO GO (-1) 2579 004136 1200 TAD WASTE 2580 004137 7106 CLL RTL 2581 004140 7004 RAL 2582 004141 1200 TAD WASTE /MULTIPLY BY 9 2583 004142 1054 DBLANK, TAD CAHT /BUMP ONE MORE COLUMN 2584 004143 1201 TAD XPOS 2585 004144 7440 SZA /OVERFLOW? 2586 004145 5251 JMP SETXPS /NO - SET XPOS AND CONTINUE 2587 004146 5363 JMP LINOFL /YES - GO TO THE NEXT LINE 2588 2589 /SUBROUTINE TO DISPLAY A CHARACTER 2590 2591 004147 4105 DISCHR, DLPTST /*K* DISCHR MUST CONTAIN "DLPTST" WHEN WE 2592 004150 7104 CLL RAL /ARE EXAMINING CHARACTERS ** 2593 004151 1373 TAD (DTABLE-1 2594 004152 3202 DCA BETA2 /STORE ADDRESS OF TABLE ENTRY FOR CHAR -1 2595 004153 1000 TAD YPOS 2596 2597 004154 6141 6141 /ENTER LINC MODE 2598 004155 1762 1762 /DSC I 2 2599 004156 1762 1762 /DSC I 2 2600 004157 0002 0002 /RE-ENTER PDP-8 MODE 2601 2602 004160 7200 CLA 2603 004161 2201 ISZ XPOS /BUMP THE X COORDINATE/COLUMN COUNTER 2604 004162 5747 JMP I DISCHR /RETURN 2605 004163 1372 LINOFL, TAD (7054 /INDENT ALL CONTINUATION LINES 2606 004164 3201 DCA XPOS 2607 004165 7010 DISLF, RAR /*K* RAR=7010 AC MAY HAVE A SMALL NUMBER 2608 004166 1000 TAD YPOS /IN IT HERE - THATS OK AS LONG AS ITS SMALL, 2609 004167 1167 TAD [-40 /SINCE ONLY THE HIGH 8 BITS OF YPOS COUNT. 2610 004170 3000 DCA YPOS 2611 004171 5747 JMP I DISCHR /*K* THIS ALWAYS RETURNS TO DLPTST ** 2612 2613 YPOS= NAME /USE SOME FREE PAGE ZERO LOCATIONS 2614 DR= NAME+1 /FOR OUR TEMPORARIES 2615 DQ= NAME+2 2616 DM= NAME+3 2617 004172 7054 PAGE 004173 4177 004174 0051 004175 0023 004176 7773 004177 7745 2618 004200 2000 DTABLE, 2000;2076; 7500;0000; 7000;0070; 7714;1477 004201 2076 004202 7500 004203 0000 004204 7000 004205 0070 004206 7714 004207 1477 2619 004210 5721 5721;4671; 6661;4333; 5166;0526; 0000;0070 004211 4671 004212 6661 004213 4333 004214 5166 004215 0526 004216 0000 004217 0070 2620 004220 3600 3600;0041; 4100;0036; 2050;0050; 0404;0437 004221 0041 004222 4100 004223 0036 004224 2050 004225 0050 004226 0404 004227 0437 2621 004230 0500 0500;0006; 0404;0404; 0001;0000; 0601;4030 004231 0006 004232 0404 004233 0404 004234 0001 004235 0000 004236 0601 004237 4030 2622 004240 4536 4536;3651; 2101;0177; 4523;2151; 4122;2651 004241 3651 004242 2101 004243 0177 004244 4523 004245 2151 004246 4122 004247 2651 2623 004250 2414 2414;0477; 5172;0651; 1506;4225; 4443;6050 004251 0477 004252 5172 004253 0651 004254 1506 004255 4225 004256 4443 004257 6050 2624 004260 5126 5126;2651; 5122;3651; 2200;0000; 4601;0000 004261 2651 004262 5122 004263 3651 004264 2200 004265 0000 004266 4601 004267 0000 2625 004270 1000 1000;4224; 1212;1212; 2442;0010; 4020;2055 004271 4224 004272 1212 004273 1212 004274 2442 004275 0010 004276 4020 004277 2055 2626 004300 4077 4077;5751; 4477;7744; 5177;2651; 4136;2241 004301 5751 004302 4477 004303 7744 004304 5177 004305 2651 004306 4136 004307 2241 2627 004310 4177 4177;3641; 4577;4145; 4477;4044; 4136;2645 004311 3641 004312 4577 004313 4145 004314 4477 004315 4044 004316 4136 004317 2645 2628 004320 1077 1077;7710; 7741;0041; 4142;4076; 1077;4324 004321 7710 004322 7741 004323 0041 004324 4142 004325 4076 004326 1077 004327 4324 2629 004330 0177 0177;0301; 3077;7730; 3077;7706; 4177;7741 004331 0301 004332 3077 004333 7730 004334 3077 004335 7706 004336 4177 004337 7741 2630 004340 4477 4477;3044; 4276;0376; 4477;3146; 5121;4651 004341 3044 004342 4276 004343 0376 004344 4477 004345 3146 004346 5121 004347 4651 2631 004350 4040 4040;4077; 0177;7701; 0176;7402; 0677;7701 004351 4077 004352 0177 004353 7701 004354 0176 004355 7402 004356 0677 004357 7701 2632 004360 1463 1463;6314; 0770;7007; 4543;6151; 4177;0000 004361 6314 004362 0770 004363 7007 004364 4543 004365 6151 004366 4177 004367 0000 2633 004370 3040 3040;0106; 0000;7741; 2000;2076; 1604;0404 004371 0106 004372 0000 004373 7741 004374 2000 004375 2076 004376 1604 004377 0404 2634 004400 0000 STABLE, ZBLOCK 40 /SEARCH BUFFER 004401 0000 004402 0000 004403 0000 004404 0000 004405 0000 004406 0000 004407 0000 004410 0000 004411 0000 004412 0000 004413 0000 004414 0000 004415 0000 004416 0000 004417 0000 004420 0000 004421 0000 004422 0000 004423 0000 004424 0000 004425 0000 004426 0000 004427 0000 004430 0000 004431 0000 004432 0000 004433 0000 004434 0000 004435 0000 004436 0000 004437 0000 2635 2636 004440 2024 CTLW, NCHK /^W COMMAND - IF THERE WAS A NUMBER BEFORE 2637 004441 5244 JMP CTLW2 /THE ^W, SET THE NUMBER OF LINES TO DISPLAY 2638 004442 1027 TAD N /EQUAL TO THAT NUMBER. 2639 004443 3013 DCA NUMLNS 2640 /DON'T WORRY ABOUT NEGATIVE N 2641 004444 2047 CTLW2, ISZ R /FAKE OUT! (MUST BE BEFORE CALL TO DISPLY) 2642 004445 4545 DISPLY /IN ANY CASE, GO THROUGH ONE DISPLAY CYCLE 2643 004446 5512 POPJ /THEN RETURN 2644 2645 004447 0000 SAVTRA, 0 /SAVE TRACE MODE 2646 004450 1023 TAD TFLG 2647 004451 3260 DCA TFGTMP 2648 004452 3023 DCA TFLG 2649 004453 5647 JMP I SAVTRA /EXIT WITH TRACE OFF 2650 2651 004454 0000 RESTRA, 0 /RESTORE TRACE MODE 2652 004455 1260 TAD TFGTMP 2653 004456 3023 DCA TFLG 2654 004457 5654 JMP I RESTRA 2655 004460 0000 TFGTMP, 0 2656 2657 004461 0000 CHKQF, 0 /CHECK FOR EXPLICIT QUOTES 2658 004462 2025 ISZ QFLG /QUOTE FLAG SET? 2659 004463 5266 JMP .+3 /NO 2660 004464 4517 SCAN /GET QUOTING CHAR 2661 004465 3010 DCA QUOTE /PUT INTO SEARCH TABLE 2662 004466 3025 DCA QFLG /ZAP QUOTE FLAG 2663 004467 5661 JMP I CHKQF /RETURN 2664 004470 0000 NXTBUF, 0 2665 004471 7640 SZA CLA 2666 004472 5302 JMP NOWRIT /READ-ONLY IF AC NOT 0 ON ENTRY 2667 004473 4511 PUSHJ 2668 004474 1655 CPOC /HP 2669 004475 3045 DCA ZZ /FORCE Y TO WORK 2670 004476 2036 ISZ FFFLAG /IF WE DIDN'T SEE A FORM FEED ON INPUT 2671 004477 5302 JMP NOWRIT /DON'T OUTPUT ONE 2672 004500 1056 TAD CAFF 2673 004501 4522 OUTPUT 2674 004502 4511 NOWRIT, PUSHJ 2675 004503 2022 CHRY /READ NEW BUFFER 2676 004504 4526 CTCCHK /CHECK FOR ^C AND ^P 2677 004505 7200 CLA /*K* CTCCHK LEAVES AC NON-ZERO! 2678 004506 5670 JMP I NXTBUF 2679 2680 004507 0000 GETUSR, 0 /ROUTINE TO LOCK THE USR INTO CORE 2681 004510 6201 CDF 0 2682 004511 1045 TAD ZZ /IF THE TEXT BUFFER IS EMPTY AND 2683 004512 7650 SNA CLA /WE HAVE 12K, SO Q-REGS ARE IN FIELD 2, 2684 004513 7000 NWRUSR, NOP /(CHANGED BY INIT CODE TO "TAD [4" IF 12K) 2685 004514 7132 STL RTR /THEN WE SHOULD NOT SAVE CORE ON A USR CALL. 2686 004515 3777 DCA I (JSBITS /THIS STORES A 2000 OR A 2001 2687 004516 6212 CIF 10 2688 004517 4555 JMS I [7700 /OK - NOW LOAD THE USR IN 2689 004520 0010 10 2690 004521 5707 JMP I GETUSR 2691 /E COMMAND MODIFIERS 2692 2693 004522 0102 EFLST, 102 /EB I 2694 004523 0103 103 /EC X 2695 004524 0106 106 /EF X 2696 004525 0107 107 /EG X 2697 004526 0113 113 /EK X 2698 004527 0122 122 /ER I 2699 004530 0127 127 /EW I 2700 004531 0130 130 /EX I 2701 2702 004532 4532 CHRU, QREF /COMMAND U 2703 004533 2024 NCHK 2704 004534 4514 ERR22, ERR /U MUST BE PRECEDED BY A NUMBER 2705 004535 1030 TAD NLINK 2706 004536 7112 CLL RTR 2707 004537 3030 DCA NLINK 2708 004540 7350 AC3777 2709 004541 0474 AND I QPTR 2710 004542 1030 TAD NLINK 2711 004543 3474 DCA I QPTR 2712 004544 2074 ISZ QPTR 2713 004545 1027 TAD N 2714 004546 3474 DCA I QPTR 2715 004547 5512 POPJ 2716 2717 /RADIX TABLES: 2718 2719 004550 7000 ORAD, NOP 2720 004551 1000 1000 2721 004552 0100 100 2722 004553 0010 10 2723 004554 1337 DRAD, NP&177+1200 /"TAD NP" 2724 004555 1750 1750 2725 004556 0144 144 2726 004557 0012 12 2727 /DISPATCH TABLE FOR COMMAND INPUT 2728 2729 004560 0202 COMTAB, TBEL /^G 2730 004561 0256 TCRLF /CR 2731 004562 0234 RUBY, ROCMND /RUBOUT 2732 004563 0246 TCTLU /^U 2733 004564 0263 TALTM /ALTMODE 2734 004565 0311 TQMK /? 2735 004566 3000 TSAVE /^S 2736 004567 1453 TSTAR /* 2737 004570 1454 TSPACE /SPACE 2738 2739 004571 0000 EDFLAG, 0 /MUST BE KEPT TOGETHER 2740 004572 0000 EHFLAG, 0 2741 004573 0005 EOFLAG, VERSN 2742 004574 0000 ESFLAG, 0 2743 004575 0000 ETFLAG, 0 2744 004576 0000 EUFLAG, 0 2745 /CXFLAG, 0 2746 004577 7746 PAGE 2747 /COMMAND M 2748 /AND Q-REGISTER STORAGE 2749 004600 0007 COMLST, 7 /^G, COMMAND LINE EDIT LIST 2750 004601 0015 15 /CR, INSERT CR & LF 2751 004602 0177 177 /RUBOUT 2752 004603 0025 25 /^U - RUB OUT LINE 2753 004604 0033 33 /^[, ALT MODE 2754 004605 0077 77 /? 2755 004606 0023 23 /^S - SAVE OLD COMMAND LINE IN Q-REG Z 2756 004607 0052 52 /* 2757 004610 0040 40 /SPACE 2758 2759 004611 4532 CHRM, QREF /COMMAND M 2760 004612 1242 TAD M4 /4 ITEMS PUSHED TO 2761 004613 4513 PUSHL /SAVE CURRENT MACRO STATE 2762 004614 0043 QCMND 2763 004615 0034 MPDL 2764 004616 0032 ITRST /SO THE "O" COMMAND WILL WORK IN MACROS 2765 004617 0040 SCANP /ZEROED BY "PUSHL" 2766 004620 1042 TAD PDLP /MUST CHECK PDL AT END OF MACRO 2767 004621 7041 CIA 2768 004622 3034 DCA MPDL 2769 004623 1071 TAD QNMBR /Q-REGISTER TO EXECUTE 2770 004624 4536 SETCMD /SET COMMAND LINE TO THIS Q-REG 2771 004625 5512 POPJ /LEAVE NUMBER FLAG ALONE AND EXIT 2772 2773 004626 0000 CHKBZ, 0 /SEE THAT B .LE. C(AC) .LE. ZZ 2774 004627 7430 SZL 2775 004630 5234 JMP ERR11 /POP 2776 004631 7041 CIA /ENTERED WITH LINK SET CORRECTLY 2777 004632 1045 TAD ZZ 2778 004633 7420 SNL /13-BIT ARITHMETIC 2779 004634 4514 ERR11, ERR /C(AC)>ZZ 2780 004635 7041 CIA 2781 004636 1045 TAD ZZ /RESTORE ORIGINAL AC 2782 004637 5626 JMP I CHKBZ 2783 2784 004640 0175 ALTLST, 175 /ALT MODE 2785 004641 0176 176 /ANOTHER ALTMODE 2786 004642 7774 M4, -4 2787 004643 0000 SCUPPR, 0 /SCAN AND CONVERT TO UPPER CASE 2788 004644 4517 SCAN 2789 004645 4542 UPPERC 2790 004646 5643 JMP I SCUPPR /THAT'S ALL? 2791 2792 /Q-REGISTER STORAGE - EACH Q-REGISTER TAKES 2 WORDS. 2793 /WD 1 CONTAINS THE LENGTH OF THE CHARACTER PART OF THE REGISTER (IF ANY) 2794 /WD 2 CONTAINS THE VALUE OF THE NUMERIC PART OF THE REGISTER (IF ANY) 2795 2796 004647 0000 QARRAY, ZBLOCK 110 /36 Q-REGISTERS * 2 WORDS/REGISTER = 72 WORDS 004650 0000 004651 0000 004652 0000 004653 0000 004654 0000 004655 0000 004656 0000 004657 0000 004660 0000 004661 0000 004662 0000 004663 0000 004664 0000 004665 0000 004666 0000 004667 0000 004670 0000 004671 0000 004672 0000 004673 0000 004674 0000 004675 0000 004676 0000 004677 0000 004700 0000 004701 0000 004702 0000 004703 0000 004704 0000 004705 0000 004706 0000 004707 0000 004710 0000 004711 0000 004712 0000 004713 0000 004714 0000 004715 0000 004716 0000 004717 0000 004720 0000 004721 0000 004722 0000 004723 0000 004724 0000 004725 0000 004726 0000 004727 0000 004730 0000 004731 0000 004732 0000 004733 0000 004734 0000 004735 0000 004736 0000 004737 0000 004740 0000 004741 0000 004742 0000 004743 0000 004744 0000 004745 0000 004746 0000 004747 0000 004750 0000 004751 0000 004752 0000 004753 0000 004754 0000 004755 0000 004756 0000 2797 004757 0046 QPNTR, CHNSTR /FAKE Q-REGISTER FOR INPUT LINE - LENGTH ONLY. 2798 004760 2024 CTLT, NCHK 2799 004761 5365 JMP CTLT2 /NO ARG 2800 004762 1027 TAD N 2801 004763 4521 ET1, TYPE /TYPE CHAR REPRESENTED BY ARGUMENT 2802 004764 5512 POPJ 2803 004765 4520 CTLT2, LISTEN /^T COMMAND - VALUE OF NEXT CHAR FROM TTY 2804 004766 4521 ET8, TYPE /*ET ECHO THE CHARACTER 2805 004767 1035 TAD SCHAR /GET THE CHARACTER 2806 004770 5777 JMP I (NCOM14 /JUMP INTO NUMBER PROCESSOR 2807 2808 004771 1036 CTLE, TAD FFFLAG /^E COMMAND - RETURNS FORM FEED FLAG 2809 004772 7100 NNEW13, CLL 2810 004773 7510 SPA 2811 004774 7120 STL /EXTEND SIGN BIT TO LINK 2812 004775 5776 JMP I (NCOM /RETURN -1 IF F.F., 0 OTHERWISE 2813 004776 1215 PAGE 004777 2020 2814 *5000 2815 2816 /COMMAND DISPATCH TABLE ** ALLOW EVEN/ODD FOR NOVICE SUBSET? 2817 2818 005000 2562 CDSP, POPK;CTLA;SERR;CTLC;CTLD;CTLE;CTLF;CTLC /0-7 005001 1762 005002 0011 005003 0473 005004 1330 005005 4771 005006 1324 005007 0473 2819 005010 3137 CTLH;CTLI;POPK;SERR;POPK;POPK;CTLN;CTLO /10-17 005011 2640 005012 2562 005013 0011 005014 2562 005015 2562 005016 1347 005017 1331 2820 005020 0203 T0;SERR;SERR;SERR;CTLT;CTLU;ERR35;ERR27 /20-27 005021 0011 005022 0011 005023 0011 005024 4760 005025 2572 005026 0772 005027 0771 2821 005030 0011 SERR;SERR;SERR;ZRON;SERR;SERR;CTUA;SERR /30-37 005031 0011 005032 0011 005033 3167 005034 0011 005035 0011 005036 1325 005037 0011 2822 005040 2562 POPK;CEXP;CDBQ;CNBS;SERR;CPCS;CAMP;ZRON /40-47 005041 1763 005042 2517 005043 1262 005044 0011 005045 3020 005046 1261 005047 3167 2823 005050 1247 COPR;CCPR;CAST;CPLS;CCMA;CMIN;CDOT;CVIR /50-57 005051 1240 005052 1264 005053 1266 005054 3055 005055 1265 005056 1257 005057 1263 2824 005060 1200 NMBR;NMBR;NMBR;NMBR;NMBR;NMBR;NMBR;NMBR /60-67 005061 1200 005062 1200 005063 1200 005064 1200 005065 1200 005066 1200 005067 1200 2825 005070 1200 NMBR;NMBR;CCLN;CSEM;CHLT;CEQL;CHGT;CQSM /70-77 005071 1200 005072 1367 005073 1757 005074 3052 005075 3160 005076 3047 005077 1352 2826 005100 2556 CATS;CHRA;CHRB;CHRC;CHRD;CHRE;CHRF;CHRG /100-107 005101 2000 005102 3137 005103 0606 005104 0650 005105 2620 005106 1362 005107 2706 2827 005110 3134 CHRH;CHRI;CHRJ;CHRK;CHRL;CHRM;CHRN;CHRO /110-117 005111 2633 005112 0600 005113 0726 005114 0614 005115 4611 005116 1154 005117 2522 2828 005120 1600 CHRP;CHRQ;CHRR;CHRS;CHRT;CHRU;SERR;SERR /120-127 005121 3015 005122 0603 005123 1120 005124 1706 005125 4532 005126 0011 005127 0011 2829 005130 1710 CHRX;CHRY;CHRZ;SERR;CBSL;SERR;CHUA;CHBA /130-137 005131 2022 005132 3136 005133 0011 005134 3163 005135 0011 005136 0324 005137 1153 2830 /END OF DISPATCH TABLE 2831 2832 005140 0000 PDLBEG, ZBLOCK 11 /BEGINNING OF PUSHDOWN LIST 005141 0000 005142 0000 005143 0000 005144 0000 005145 0000 005146 0000 005147 0000 005150 0000 2833 005151 0000 QPUT12, ZBLOCK 16 /ROUTINES INSERTED LATER - USED IN 005152 0000 005153 0000 005154 0000 005155 0000 005156 0000 005157 0000 005160 0000 005161 0000 005162 0000 005163 0000 005164 0000 005165 0000 005166 0000 2834 005167 0000 ASR35, ZBLOCK 10 /INITIALIZATION, OVERLAYED BY PUSHDOWN LIST 005170 0000 005171 0000 005172 0000 005173 0000 005174 0000 005175 0000 005176 0000 2835 005177 0000 PDLEND, 0 /END OF PUSHDOWN LIST 2836 PAGE 2837 *5200 2838 2839 / INITIALIZATION SECTION 2840 / ENTER HERE AT 5200 TO MODIFY TECO TO USE A MODEL 35 TELETYPE 2841 / SORRY - NO CURRENT PAGE LITERALS 2842 2843 005200 2321 TECO35, ISZ JTECO /IF CALLED VIA "R" OR "RUN" 2844 005201 1417 TAD I XR /MOVE ASR-35 PATCH (WHICH OUTPUTS TABS AND 2845 005202 3416 DCA I INXR / FORM FEEDS) OVER PRINT ROUTINE 2846 005203 2344 ISZ ASRCNT 2847 005204 5201 JMP .-3 2848 005205 1355 TAD YOUTHTX 2849 005206 3756 DCA I YPOUTHT 2850 005207 1153 TAD [TECO 2851 005210 3757 DCA I Y7745 /CHANGE STARTING ADDRESS IN CASE WE'RE RESTARTED 2852 /AND FALL INTO INITIALIZATION ROUTINE 2853 2854 005211 6046 TCINIT, TLS /INITIALIZATION ROUTINE - INITIALIZE THE TTY 2855 005212 1211 TAD .-1 2856 005213 3553 DCA I [TECO 2857 005214 1373 TAD YT0A /"JMP T0A" 2858 005215 3723 DCA I PTECO1 /CHANGE THE ENTRY AT 200 SO WE'RE NOT CALLED AGAIN 2859 005216 7320 CLA STL 2860 005217 6141 6141 /ENTER LINC MODE (MAYBE) 2861 005220 0004 4 /ESF - SET SMALL CHARACTERS FOR SCOPE 2862 005221 0261 0261 /ROL I 1 - ROTATE LINK INTO AC11 2863 005222 0002 0002 /BACK TO PDP-8 MODE 2864 005223 7650 SNA CLA /AC NON-ZERO IF WE ARE A PDP-12 2865 005224 5227 JMP NOTA12 /NO, JUST AN ORDINARY 8 2866 005225 1370 TAD YPDP12 2867 005226 4344 JMS CHANGE /TRADE OFF TWO PAGE HANDLERS FOR A SCOPE 2868 005227 1760 NOTA12, TAD I Y7777 2869 005230 0250 AND COR70 2870 005231 7440 SZA 2871 005232 5327 JMP SOFCOR 2872 005233 6201 COR0, CDF 0 /NEEDED FOR PDP-8L 2873 005234 1326 TAD CORSIZ /GET FIELD TO TEST 2874 005235 7006 RTL 2875 005236 7004 RAL 2876 005237 0250 AND COR70 /MASK USEFUL BITS 2877 005240 1263 TAD COREX 2878 005241 3242 DCA .+1 /SET UP CDF TO FIELD 2879 005242 6201 COR1, CDF /N /N IS FIELD TO TEST 2880 005243 1724 TAD I CORLOC /SAVE CURRENT CONTENTS 2881 005244 7000 COR2, NOP /HACK FOR PDP-8! 2882 005245 3242 DCA COR1 2883 005246 1244 TAD COR2 /7000 IS A "GOOD" PATTERN 2884 005247 3724 DCA I CORLOC 2885 005250 0070 COR70, 70 /HACK FOR PDP-8, NOP 2886 005251 1724 TAD I CORLOC /TRY TO READ BACK 7000 2887 005252 7400 CORX, 7400 /HACK FOR PDP-8, NOP 2888 005253 1252 TAD CORX /GUARD AGAINST WRAP-AROUND 2889 005254 1325 TAD CORV /TAD (1400 2890 005255 7640 SZA CLA 2891 005256 5263 JMP COREX /NON-EXISTENT FIELD EXIT 2892 005257 1242 TAD COR1 /RESTORE CONTENTS DESTROYED 2893 005260 3724 DCA I CORLOC 2894 005261 2326 ISZ CORSIZ /TRY NEXT HIGHER FIELD 2895 005262 5233 JMP COR0 2896 2897 005263 6201 COREX, CDF 0 /LEAVE WITH DATA FIELD 0 2898 005264 7240 STA 2899 005265 1326 TAD CORSIZ /HIGHEST EXISTING FIELD 2900 005266 3105 COR999, DCA MEMSIZ 2901 005267 1105 TAD MEMSIZ 2902 005270 7650 SNA CLA 2903 005271 5310 JMP JTECOM /8K 2904 005272 1361 TAD YM7 /MORE THAN 8K 2905 005273 4762 JMS I YMOVE 2906 005274 6201 CDF 0 2907 005275 5150 QPUT12-1 2908 005276 6201 CDF 0 2909 005277 0377 QPUTS-1 2910 005300 1361 TAD YM7 2911 005301 4762 JMS I YMOVE 2912 005302 6201 CDF 0 2913 005303 5157 QPUT12+7-1 2914 005304 6201 CDF 0 2915 005305 0421 GETQX-1 2916 005306 1371 TAD YTWLVEK 2917 005307 4344 JMS CHANGE /AND CHANGE A WHOLE MESS OF LOCATIONS 2918 005310 4763 JTECOM, JMS I YOVINIT /WRITE OUT OVERLAYS 2919 005311 6211 CDF 10 2920 005312 1764 TAD I YSCPBIT 2921 005313 6201 CDF 0 2922 005314 0153 AND [200 2923 005315 7650 SNA CLA 2924 005316 5321 JMP JTECO 2925 005317 1372 TAD YSCOPE 2926 005320 4344 JMS CHANGE 2927 005321 5722 JTECO, JMP I .+1 /INCREMENTED IF WE WERE'NT CHAINED TO 2928 005322 5332 CHINIL 2929 005323 0201 PTECO1, TECO1 2930 2931 005324 5252 CORLOC, CORX /ADDRESS TO TEST IN EACH FIELD 2932 005325 1400 CORV, 1400 /7000+7400+1400=0 2933 005326 0001 CORSIZ, 1 /CURRENT FIELD TO TEST 2934 2935 005327 7110 SOFCOR, CLL RAR 2936 005330 7012 RTR 2937 005331 5266 JMP COR999 2938 /CHAINED INIT CODE - MOVE 17600 INTO Q-REGISTER SPACE 2939 2940 005332 6211 CHINIL, CDF 10 2941 005333 1414 TAD I DX /GET A COMMAND LINE CHAR 2942 005334 6201 CDF 0 2943 005335 4534 QPUT 2944 005336 2343 ISZ INICT 2945 005337 5332 JMP CHINIL 2946 005340 1365 TAD YFATALJ /SET UP THE FATAL ERROR EXIT 2947 005341 3766 DCA I YCHOOPS /IN THE ERROR ROUTINE 2948 005342 5767 JMP I YCHTECO 2949 005343 7732 INICT, -CHNSTR 2950 2951 ASRCNT, 2952 005344 7770 CHANGE, -10 /ROUTINE TO CHANGE SPECIFIC LOCATIONS 2953 005345 3017 DCA XR /STORE TABLE POINTER 2954 005346 1417 CHANGL, TAD I XR /GET LOCATION 2955 005347 7450 SNA 2956 005350 5744 JMP I CHANGE /END OF LIST - RETURN 2957 005351 3104 DCA TEMPT 2958 005352 1417 TAD I XR /GET CONTENTS 2959 005353 3504 DCA I TEMPT /ZAP! 2960 005354 5346 JMP CHANGL 2961 2962 /CHECK FOR OS/8 SCOPE BIT, IF ON, PATCH TECO 2963 /ALSO SEND ESC SEQ TO TERMINAL TO SEE IF VT05 OR VT5X. 2964 2965 2966 005355 2230 YOUTHTX, OUTHTX 2967 005356 2547 YPOUTHT,POUTHT 2968 005357 7745 Y7745, 7745 2969 005360 7777 Y7777, 7777 2970 005361 7771 YM7, -7 2971 005362 5545 YMOVE, MOVE 2972 005363 5460 YOVINIT,OVINIT 2973 005364 7726 YSCPBIT,SCPBIT 2974 005365 5777 YFATALJ,FATALJ 2975 005366 2612 YCHOOPS,CHOOPS 2976 005367 0265 YCHTECO,CHTECO 2977 005370 5445 YPDP12, PDP12-1 2978 005371 5414 YTWLVEK,TWLVEK-1 2979 005372 5373 YSCOPE, SCOPE-1 2980 005373 5204 YT0A, T0A&177+5200 2981 /FLOW INTO NEXT PAGE 2982 005374 4562 SCOPE, RUBY; SCOPY /MAKE SCOPE RUBOUTS WORK 005375 1414 2983 005376 1466 BLSP1; TAD CACR /MAKE BELL SPACE WORK 005377 1053 2984 005400 1467 BLSP2; TYPE /AND MORE RUBOUTS 005401 4521 2985 005402 1522 BLSP3; SCAPE&177+4600 /JMS I (ESCAPE 005403 4732 2986 005404 1523 BLSP4; 113 /MORE BELL SPACE 005405 0113 2987 005406 4576 EUFLAG; -1 /SET EU TO -1 005407 7777 2988 005410 2245 EU1; CLA 005411 7200 2989 005412 2247 EU2; TAD [40 005413 1166 2990 005414 0000 0 2991 /LOCATIONS TO CHANGE MUST BE CHANGED IN OVERLAY IMAGE 2992 /BEFORE OVERLAY IS WRITTEN OUT 2993 2994 /LOCATIONS TO CHANGE IF WE HAVE 12K OF CORE 2995 2996 005415 0012 TWLVEK, INRSIZ; 4 /INPUT BUFFER GROWS TO 4 BLOCKS LONG 005416 0004 2997 005417 2166 INCTLW; 1021 /AND LIVES IN FIELD 2 005420 1021 2998 005421 2167 INPCNT; 5000 005422 5000 2999 005423 2101 I2; CDF 20 005424 6221 3000 005425 2125 IC; CDF 0 /THIS WAS A NOP TO SPEED UP RTS-8 OPERATION 005426 6201 3001 005427 0717 L12K1; J12K1 /SPEED UP TEXT MOVE ROUTINES, 005430 5324 3002 005431 0754 L12K2; J12K2 /SINCE Q-REGISTERS DON'T SIT ON TOP OF TEXT. 005432 5361 3003 005433 3737 OUTSIZ; 6777 /OUTPUT BUFFER TAKES OVER OLD INPUT BUFFER SPACE 005434 6777 3004 005435 2062 BUFIN; 5600 005436 5600 3005 005437 4513 NWRUSR; TAD [4 /LET USR BE CALLED WITHOUT SAVING CORE 005440 1161 3006 005441 2366 MQMAX; -Q12MAX /ALLOW MORE Q-REGISTER STORAGE 005442 2200 3007 005443 0367 QLIMIT; 12-Q12MAX 005444 2212 3008 005445 0000 0 3009 3010 3011 /LOCATIONS TO CHANGE IF WE'RE RUNNING ON A PDP-12 3012 3013 005446 2727 PDP12, KSFWT; DISPLY /FIX KEYBOARD AND PRINTER WAITS 005447 4545 3014 005450 0567 TSFWT; DISPLY /SO THEY DISPLAY WHILE WAITING 005451 4545 3015 005452 5127 CDSP+127;CTLW /ENABLE W COMMAND 005453 4440 3016 005454 3502 INHNDL; 7200 /ONE PAGE INPUT HANDLER ONLY 005455 7200 3017 005456 3453 OUHNDL; 7400 /DITTO OUTPUT HANDLER 005457 7400 3018 /VALUE MUST BE 0 INITIALLY TO END LIST 3019 005460 0000 OVINIT, 0 /WRITE OUT OVERLAYS 3020 /IF MORE THAN 12K, MOVE OVERLAYS TO FIELD 3 3021 005461 7346 MTHREE 3022 005462 1105 TAD MEMSIZ 3023 005463 7710 SPA CLA 3024 005464 5316 JMP L16K /LESS THAN 16K 3025 005465 1173 TAD [-400 3026 005466 4345 JMS MOVE 3027 005467 6201 CDF 0 3028 005470 3177 3200-1 3029 005471 6231 CDF 30 3030 005472 1777 MEMLOC-1 3031 005473 1343 TAD M2000 3032 005474 4345 JMS MOVE 3033 005475 6201 CDF 0 3034 005476 5577 5600-1 3035 005477 6231 CDF 30 3036 005500 2377 MEMLOC+400-1 3037 005501 1344 TAD M5 3038 005502 4345 JMS MOVE 3039 005503 6211 CDF 10 3040 005504 6436 NEWERR-1 3041 005505 6201 CDF 0 3042 005506 2536 OVREAD-1 3043 / TAD (COREAD-COREND-1 3044 005507 1323 TAD M3000 3045 005510 4345 JMS MOVE 3046 005511 6211 CDF 10 3047 005512 4377 4400-1 / COREAD-1 3048 005513 6231 CDF 30 3049 005514 4377 4400-1 3050 005515 5330 JMP G16K 3051 005516 4777 L16K, JMS I (7607 3052 005517 4200 4200 3053 005520 3200 3200 /WRITE OUT I/O-OVERLAY 3054 005521 0040 IOVRLC 3055 005522 5332 JMP OVERR /ERROR WRITING OVERLAY 3056 005523 4777 M3000, JMS I (7607 3057 005524 5400 5400 /4 OVERLAYS 3058 005525 5600 5600 /WRITE OUT Q-OVERLAY AND E-OVERLAY 3059 005526 0041 QOVRLC 3060 005527 5332 JMP OVERR /ERROR WRITING OUT OVERLAY 3061 005530 3776 G16K, DCA I (ERRXX 3062 005531 5660 JMP I OVINIT /RETURN 3063 3064 005532 1173 OVERR, TAD [-400 /SWAP IN ERROR OVERLAY FROM CORE AND MAKE SURE 3065 005533 4345 JMS MOVE /WE RETURN TO MONITOR 3066 005534 6201 CDF 0 3067 005535 6177 6200-1 3068 005536 6201 CDF 0 3069 005537 3177 3200-1 3070 / DCA I (ERRTMP /SET FATAL SWITCH 3071 005540 1375 TAD (FATALJ 3072 005541 3774 DCA I (CHOOPS 3073 005542 5773 ERR30, JMP I (ERRYY /CALL ERROR MESSAGE PROCESSOR 3074 3075 005543 6000 M2000, -2000 3076 005544 7773 M5, -5 3077 005545 0000 MOVE, 0 3078 005546 3063 DCA MQ 3079 005547 1745 TAD I MOVE 3080 005550 3363 DCA MOVEL 3081 005551 2345 ISZ MOVE 3082 005552 1745 TAD I MOVE 3083 005553 3016 DCA INXR 3084 005554 2345 ISZ MOVE 3085 005555 1745 TAD I MOVE 3086 005556 3365 DCA MOVEC 3087 005557 2345 ISZ MOVE 3088 005560 1745 TAD I MOVE 3089 005561 3017 DCA XR 3090 005562 2345 ISZ MOVE 3091 005563 7402 MOVEL, HLT 3092 005564 1416 TAD I INXR 3093 005565 7402 MOVEC, HLT 3094 005566 3417 DCA I XR 3095 005567 6201 CDF 0 3096 005570 2063 ISZ MQ 3097 005571 5363 JMP MOVEL 3098 005572 5745 JMP I MOVE 3099 /ROUTINES TO BE (POSSIBLY) SWAPPED INTO TECO 3100 3101 005573 3205 *QPUT12 005574 2612 005575 5777 005576 2600 005577 7607 3102 RELOC QPUTS 3103 000400* 0000 QPUTS, 0 /12K Q-REGISTER PUT ROUTINE 3104 000401* 0172 AND [377 3105 000402* 6221 CDF 20 3106 000403* 3450 DCA I QP 3107 000404* 6201 CDF 0 3108 000405* 2050 ISZ QP 3109 000406* 5600 JMP I QPUTS 3110 3111 RELOC GETQX 3112 000422* 0000 GETQX, 0 /12K Q-REGISTER GET ROUTINE 3113 000423* 3253 DCA CHKCTC 3114 000424* 6221 CDF 20 3115 000425* 1653 TAD I CHKCTC 3116 000426* 6201 CDF 0 3117 000427* 0172 AND [377 3118 000430* 5622 JMP I GETQX 3119 3120 RELOC ASR33 3121 002227* 5235 JMP OUTCMX / FORM FEED/VERT. TAB - USE 8/4 FILLERS 3122 002230* 1221 OUTHTX, TAD COLCT /GET COLUMN COUNTER 3123 002231* 7012 RTR 3124 002232* 7010 RAR 3125 002233* 7244 CLA CMA RAL /OUTPUT 2 FILLERS IF MORE THAN 4 CHARS TO TAB 3126 002234* 3221 DCA COLCT /OTHERWISE 1 (COLCT IS A MODULO 8 COUNTER) 3127 002235* 1035 OUTCMX, TAD SCHAR /GET CONTROL CHAR TO TYPE 3128 002236* 4552 PUTT /AND TYPE IT - WE WILL NOW FILL WITH NULLS 3129 RELOC 3130 PAGE 3131 / Q-OVERLAY 3132 3133 *5600 3134 3135 RELOC 3200 3136 3137 003200* 0040 IOVRLC 3138 003201* 0000 QOVRLY, 0 3139 003202* 0042 EOVRLC 3140 003203* 0043 XOVRLC 3141 003204* 0044 FOVRLC 3142 3143 /O COMMAND 3144 3145 003205* 1040 CHROO, TAD SCANP /O COMMAND 3146 003206* 3243 DCA COOQ /SAVE CURRENT SCAN POINTER 3147 003207* 3024 DCA NFLG 3148 /??? DCA QFLG /QUOTED "O" COMMAND NOT ALLOWED 3149 003210* 4531 QSKP /CHECK THAT THERE IS REALLY A STRING HERE 3150 /BECAUSE WE WILL NOT USE "SCAN" TO GET CHARACTERS 3151 /FROM THIS STRING IN THE SEARCH LOOP. 3152 003211* 1032 TAD ITRST /"O" ONLY SCANS FROM THE BEGINNING OF THE 3153 003212* 3040 DCA SCANP /CURRENT ITERATION LOOP. 3154 /(JUMPS BACKWARD OUT OF ITERATIONS ARE VERBOTEN) 3155 003213* 4525 SKPSET 3156 003214* 0041 CS41, 41 /SEARCH FOR ! 3157 003215* 1214 TAD CS41 3158 003216* 3010 DCA QUOTE /SET QUOTE CHAR TO ! 3159 003217* 1243 TAD COOQ 3160 003220* 1072 TAD QBASE 3161 003221* 3050 DCA QP /SET UP PTR TO ACCESS GOTO STRING 3162 003222* 1050 COOC, TAD QP 3163 003223* 4524 GETQ /GET CHAR FROM GOTO STRING 3164 003224* 7041 CIA 3165 003225* 3063 DCA MQ /SAVE IT 3166 003226* 4535 QUOTST /GET CHAR FROM LABEL 3167 003227* 5235 JMP COOB /LABEL EXHAUSTED 3168 003230* 1063 TAD MQ 3169 003231* 7640 SZA CLA /MATCH? 3170 003232* 5263 JMP CSMQ /NO - REJOIN SEARCH ROUTINE FOR ANOTHER ! 3171 003233* 2050 ISZ QP 3172 003234* 5222 JMP COOC 3173 003235* 1063 COOB, TAD MQ 3174 003236* 1055 TAD CAAM /IS GOTO STRING EXHAUSTED TOO? 3175 003237* 7640 SZA CLA 3176 003240* 5264 JMP CSMQ+1 /NO - REJOIN ! SEARCH ROUTINE 3177 003241* 4547 ENTRCE /RE-ENABLE TRACE 3178 003242* 5565 JMP I [IREST 3179 003243* 0000 COOQ, 0 3180 /ROUTINE TO SKIP COMMANDS UP TO A CHARACTER 3181 3182 003244* 0000 SETSKP, 0 /SET UP TO SKIP COMMANDS 3183 003245* 1644 TAD I SETSKP 3184 003246* 3332 DCA SKPLST /CHAR TO TRAP ON 3185 003247* 4546 NOTRCE /DISABLE TRACE MODE 3186 003250* 3331 CSML1, DCA BRACKS /INITIALIZE BRACKET LEVEL 3187 003251* 4543 CSML, SCANUP /GET A COMMAND CHAR 3188 003252* 4515 SORT 3189 003253* 3332 SKPLST 3190 003254* 0046 SKPTAB-SKPLST 3191 003255* 5251 JMP CSML /NOTHING SPECIAL - KEEP GOING 3192 003256* 4517 CSMD, SCAN /CLEAR OUT MODIFIER 3193 003257* 5251 JMP CSML 3194 3195 003260* 4517 CSMU, SCAN /SKIP ^U COMMAND 3196 003261* 7610 SKP CLA /GET RID OF Q-REG NUMBER 3197 003262* 4531 CSMFS, QSKP /FS COMMAND - SKIP FIRST STRING 3198 003263* 4531 CSMQ, QSKP /SKIP OVER A QUOTED STRING 3199 003264* 4511 CSMQ1, PUSHJ 3200 003265* 2557 IREST /FIX UP QUOTE CHAR 3201 003266* 5251 JMP CSML /KEEP GOING 3202 3203 003267* 1035 CSMY, TAD SCHAR /SKIP ROUTINE FOR ^A AND ! 3204 003270* 3010 DCA QUOTE /WE MUST SCAN UNTIL WE FIND 3205 003271* 5263 JMP CSMQ /A COPY OF THE COMMAND CHARACTER. 3206 /SORT LIST FOR " COMMAND 3207 3208 003272* 0103 CNDLST, 103 /C 3209 003273* 0107 107 /G 3210 003274* 0116 116 /N 3211 003275* 0114 114 /L 3212 003276* 0105 105 /E 3213 003277* 0124 124 /T 3214 003300* 0123 123 /S 3215 003301* 0106 106 /F 3216 003302* 0125 125 /U 3217 003303* 0122 122 /R 3218 003304* 0074 74 /< 3219 003305* 0076 76 /> 3220 3221 003306* 4543 CSME, SCANUP /FOUND E COMMAND 3222 003307* 4515 SORT 3223 003310* 3362 ESKLST /LOOK FOR ER & EW & EG 3224 003311* 0033 ESKTAB-ESKLST /USE CSMQ TO SKIP 3225 003312* 5251 JMP CSML /NO STRING 3226 3227 003313* 4517 CSMF, SCAN /F COMMAND - BETTER BE FOLLOWED BY S,N, OR _ 3228 003314* 7200 CLA 3229 003315* 5262 JMP CSMFS /SCAN OFF TWO STRINGS 3230 3231 003316* 2331 CSMI, ISZ BRACKS /INCREMENT BRACKET LEVEL 3232 003317* 5251 JMP CSML 3233 3234 003320* 7240 CSMO, STA 3235 003321* 1331 TAD BRACKS /DECREMENT BRACKET LEVEL 3236 003322* 7510 SPA 3237 003323* 4777 JMS I (POPITR /IF WE EXIT <> POP OFF ITERATION VALUES 3238 003324* 5250 JMP CSML1 3239 3240 003325* 1331 SKPRTN, TAD BRACKS /WE HAVE FOUND THE DESIRED CHARACTER 3241 003326* 7640 SZA CLA /BUT IF THE BRACKET LEVEL IS NON-ZERO, 3242 003327* 5770 JMP I XSORTA1 /WE CANNOT ACCEPT IT - KEEP SORTING 3243 003330* 5644 JMP I SETSKP /EVERYTHING IS OK - RETURN 3244 3245 003331* 0000 BRACKS, 0 3246 /SORT LIST FOR SKIPPING OVER COMMANDS 3247 3248 003332* 0000 SKPLST, 0 /TRAP CHAR 3249 003333* 0041 41 /! 3250 003334* 0076 76 /> 3251 003335* 0074 74 /< 3252 003336* 0042 42 /" 3253 003337* 0136 136 /^ 3254 003340* 0100 100 /@ 3255 003341* 0001 1 /^A 3256 003342* 0011 11 /TAB 3257 003343* 0025 25 /^U 3258 003344* 0036 36 /^^ 3259 003345* 0105 105 /E 3260 003346* 0106 106 /F 3261 003347* 0111 111 /I 3262 003350* 0116 116 /N 3263 003351* 0117 117 /O 3264 003352* 0123 123 /S 3265 003353* 0137 137 /_ 3266 003354* 0121 121 /Q 3267 003355* 0125 125 /U 3268 003356* 0130 130 /X 3269 003357* 0107 107 /G 3270 003360* 0115 115 /M 3271 003361* 0045 45 /% 3272 / SKIP LIST FOR E'S 3273 003362* 0122 ESKLST, 122 /R 3274 003363* 0127 127 /W 3275 003364* 0102 102 /B 3276 003365* 0107 107 /G 3277 3278 003366* 7240 CSMA, STA /LIST TERMINATOR 3279 003367* 5264 JMP CSMQ1 /FOUND @ - SET QUOTE FLAG AND CONTINUE 3280 3281 3282 003370* 1541 XSORTA1,SORTA1 3283 003377* 3526 PAGE 3284 /DISPATCH TABLE FOR SKIPPING OVER COMMANDS: 3285 3286 003400* 3325 SKPTAB, SKPRTN /DESIRED CHARACTER - RETURN 3287 003401* 3267 CSMY /! 3288 003402* 3320 CSMO /> 3289 003403* 3316 CSMI /< 3290 003404* 3476 CNDI /" 3291 003405* 1565 CSMC /^ 3292 003406* 3366 CSMA /@ 3293 003407* 3267 CSMY /^A 3294 003410* 3263 CSMQ /TAB 3295 003411* 3260 CSMU /^U 3296 003412* 3256 CSMD /^^ 3297 003413* 3306 CSME /E 3298 003414* 3313 CSMF /F 3299 003415* 3263 ESKTAB, CSMQ /I OR ER 3300 003416* 3263 CSMQ /N OR EW 3301 003417* 3263 CSMQ /O OR EB 3302 003420* 3263 CSMQ /S OR EG 3303 003421* 3263 CSMQ /_ 3304 003422* 3256 CSMD /Q 3305 003423* 3256 CSMD /U 3306 003424* 3256 CSMD /X 3307 003425* 3256 CSMD /G 3308 003426* 3256 CSMD /M 3309 003427* 3256 CSMD /% 3310 003430* 4525 SEMO, SKPSET /PLOD THRU 3311 003431* 0076 76 /LOOKING FOR > 3312 003432* 4547 ENTRCE /IT'S THE RIGHT ONE, TURN TRACE BACK ON 3313 003433* 5634 JMP I ZCGSG 3314 003434* 3520 ZCGSG, CGSG 3315 3316 003435* 4544 CNDTAB, TSTSEP /LEGAL CONSTITUENT OF SYMBOL FOR ASSEMBLER 3317 003436* 7670 SZL SNA CLA /GT 0 3318 003437* 7650 SNA CLA /NE 0 3319 003440* 7620 SNL CLA /LT 0 3320 003441* 7640 SZA CLA /EQ 0 3321 003442* 7620 SNL CLA /TRUE 3322 003443* 7620 SNL CLA /SUCCESSFUL 3323 003444* 7640 SZA CLA /FALSE 3324 003445* 7640 SZA CLA /UNSUCCESSFUL 3325 003446* 4544 TSTSEP /ALPHANUMERIC 3326 003447* 7620 SNL CLA /< 3327 003450* 7670 SZL SNA CLA /> 3328 3329 /THIS TABLE PRESUPPOSES 1000000000000 IS ILLEGAL 3330 /COMMANDS " AND ' 3331 3332 003451* 2024 CDBQO, NCHK /COMMAND " 3333 003452* 4514 ERR23, ERR /NO NUMBER TO TEST 3334 003453* 4543 SCANUP 3335 003454* 4515 SORT 3336 003455* 3272 CNDLST 3337 003456* 0143 CNDTAB-CNDLST 3338 003457* 7500 SMA /CHECK THAT CHAR WAS TRANSLATED 3339 003460* 4514 ERR20, ERR /NO - NO SUCH TEST 3340 003461* 3263 DCA SKIP /STORE TEST INSTRUCTION 3341 003462* 4551 GETNUM /PERFORM THE TEST 3342 003463* 7402 SKIP, HLT /TEST SKIPS IF TRUE 3343 003464* 7610 SKP CLA 3344 003465* 5512 POPJ /CONDITION SATISFIED 3345 003466* 7240 STA /NOT SATISFIED 3346 003467* 3263 DCA SKIP /BEGINNING SKIPPING COMMANDS 3347 003470* 4525 SKPSET /CALL SKIPPING ROUTINE 3348 003471* 0047 47 /FIND A ' 3349 003472* 2263 ISZ SKIP /FOUND A ' 3350 003473* 5516 RESORT /NEED ANOTHER: BACK TO CSML 3351 003474* 4547 ENTRCE /RE-ENABLE TRACE 3352 003475* 5565 JMP I [IREST /COMMAND ' NO ACTION TO TAKE 3353 3354 003476* 4517 CNDI, SCAN /HIT ANOTHER " 3355 003477* 7240 STA /SO SKIP MATCHING ' 3356 003500* 1263 TAD SKIP 3357 003501* 3263 DCA SKIP 3358 003502* 5516 RESORT /GO BACK TO CSML 3359 /COMMANDS ; AND > 3360 3361 003503* 1032 CSEMO, TAD ITRST /COMMAND ; - ALSO HERE ON FAILING NON-COLON SEARCH 3362 003504* 7650 SNA CLA 3363 003505* 4514 ERR09, ERR /IF NOT IN ITERATION 3364 003506* 1030 CSEM2, TAD NLINK 3365 003507* 7650 SNA CLA 3366 003510* 2024 NCHK 3367 003511* 5777 JMP I (ZRON /NO NUMBER - IGNORE IT, WE DID IT ALREADY 3368 003512* 5230 JMP SEMO /SEARCH FOR > 3369 3370 003513* 1033 CHGTO, TAD ITRCNT 3371 003514* 7650 SNA CLA 3372 003515* 5322 JMP CGTC /0 MEANS INFINITY 3373 003516* 2033 ISZ ITRCNT /LOOK FOR COUNT EXHAUSTED 3374 003517* 5322 JMP CGTC /NO, CONTINUE 3375 003520* 4326 CGSG, JMS POPITR /POP UP OLD ITERATION PARAMETERS 3376 003521* 5565 JMP I [IREST 3377 003522* 1032 CGTC, TAD ITRST 3378 003523* 7450 SNA 3379 003524* 4514 ERR10, ERR /IF NOT IN ITERATION 3380 003525* 5776 JMP I (ZROSPN /BACK TO ROOT 3381 3382 003526* 0000 POPITR, 0 3383 003527* 7201 CLA IAC /** AC NOT NECESSARILY 0 ON ENTRY 3384 003530* 4513 POPL 3385 003531* 0033 ITRCNT 3386 003532* 0032 ITRST 3387 003533* 5726 JMP I POPITR 3388 003534* 7344 CHLTO, MTWO /COMMAND < 3389 003535* 4513 PUSHL 3390 003536* 0032 ITRST 3391 003537* 0033 ITRCNT 3392 003540* 1024 TAD NFLG 3393 003541* 7650 SNA CLA /WAS A NUMBER SPECIFIED? 3394 003542* 5351 JMP INF /NO, ASSUME INFINITY 3395 003543* 1030 TAD NLINK 3396 003544* 7650 SNA CLA 3397 003545* 1027 TAD N 3398 003546* 7450 SNA 3399 003547* 5230 JMP SEMO /0 OR NEGATIVE MEANS SKIP ITERATION 3400 003550* 7041 CIA /MAKE NEGATIVE 3401 003551* 3033 INF, DCA ITRCNT /SET UP TERMINATION 3402 003552* 1040 TAD SCANP /SAVE CURRENT SCAN PNTR 3403 003553* 3032 DCA ITRST /ALWAYS .GE. 1 IN ITERATION 3404 003554* 3024 DCA NFLG /CLEAR NUMBER FLAG 3405 003555* 5512 POPJ 3406 3407 /SHOULD WE TREAT 0<> SPECIAL? 3408 003576* 3166 PAGE 003577* 3167 3409 RELOC 3410 / ERROR-OVERLAY 3411 3412 *6200 3413 3414 RELOC 3200 3415 3416 003200* 0040 IOVRLC 3417 003201* 0041 QOVRLC 3418 003202* 0000 EOVRLY, 0 3419 003203* 0043 XOVRLC 3420 003204* 0044 FOVRLC 3421 3422 003205* 3027 ERRYY, DCA N 3423 003206* 1377 TAD (ERLIST-1 3424 003207* 3017 DCA XR 3425 003210* 2027 ERLOOP, ISZ N /BUMP ERROR NUMBER 3426 003211* 1417 TAD I XR 3427 003212* 7440 SZA /END OF LIST? 3428 003213* 1776 TAD I (ERRXX /NO - CHECK FOR MATCH 3429 003214* 7640 Z40, SZA CLA /FOUND WHAT WE WANTED? 3430 003215* 5210 JMP ERLOOP /NO - KEEP LOOKING 3431 003216* 1027 TAD N 3432 003217* 7104 CLL RAL /MULTIPLY BY 2 3433 003220* 1375 TAD (ERBASE-2 3434 003221* 3356 DCA PTR 3435 003222* 1756 TAD I PTR /GET FIRST WORD OF ERR MSG 3436 003223* 7710 SPA CLA 3437 003224* 5300 JMP CTCT /^C TRAP 3438 003225* 1174 ERL2, TAD [77 3439 003226* 4521 TYPE 3440 003227* 1756 TAD I PTR 3441 003230* 7012 RTR 3442 003231* 7012 RTR 3443 003232* 7012 RTR 3444 003233* 4774 JMS I (SIXTYP /TYPE LEFT CHARACTER 3445 003234* 1756 TAD I PTR 3446 003235* 4774 JMS I (SIXTYP /TYPE RIGHT CHARACTER 3447 003236* 2356 ISZ PTR 3448 003237* 1756 TAD I PTR 3449 003240* 7012 RTR 3450 003241* 7012 RTR 3451 003242* 7012 RTR 3452 003243* 4774 JMS I (SIXTYP /TYPE 3RD CHARACTER 3453 003244* 7201 CLA IAC 3454 003245* 0773 AND I (EHFLAG 3455 003246* 7640 SZA CLA 3456 003247* 5772 JMP I (ERRRET 3457 003250* 7346 MTHREE 3458 003251* 1105 TAD MEMSIZ 3459 003252* 7710 SPA CLA 3460 003253* 5772 JMP I (ERRRET /NO LONG ERROR MESSAGE UNLESS 16K OOR MORE 3461 003254* 1214 TAD Z40 /TYPE EXTENDED ERROR MESSAGE 3462 003255* 4521 TYPE 3463 003256* 1214 TAD Z40 3464 003257* 4521 TYPE 3465 / TAD Z40 3466 / TYPE 3467 003260* 1027 TAD N 3468 003261* 1371 TAD (XERBAS-1 3469 003262* 3356 DCA PTR /GET PTR TO PTR TO ERROR MSG 3470 003263* 6231 CDF 30 3471 003264* 1756 TAD I PTR /GET PTR TO ERROR MESSAGE 3472 003265* 3356 DCA PTR 3473 003266* 1756 XLUP, TAD I PTR 3474 003267* 6201 CDF 0 3475 003270* 7450 SNA 3476 003271* 5772 JMP I (ERRRET 3477 003272* 7510 SPA 3478 003273* 4310 JMS NEGCHR /NEGATIVE CHAR IS FLAG FOR ERRONEOUS CHARACTER 3479 003274* 4552 PUTT 3480 003275* 2356 ISZ PTR 3481 003276* 6231 CDF 30 3482 003277* 5266 JMP XLUP 3483 3484 003300* 6034 CTCT, KRS /CTRL/C ERROR MESSAGE 3485 003301* 0171 AND [177 /ISOLATE ^C OR ^P INTO 7-BIT 3486 003302* 4521 TYPE /READ CTRL/C FROM BUFFER 3487 003303* 4523 CRLF /ECHO IT AND CR LF 3488 003304* 1577 TAD I [QPNTR 3489 003305* 7640 SZA CLA 3490 003306* 5225 JMP ERL2 /PRINT XAB ERROR MESSAGE 3491 / MTHREE 3492 / TAD CHAR /LOOK AT PREVIOUS CHARACTER 3493 / SZA CLA 3494 / JMP I (ERRRET /ONE ^C DO NOTHING 3495 003307* 5770 JMP I (CTLC /TWO ^C'S, ABORT 3496 003310* 0000 NEGCHR, 0 3497 003311* 7200 CLA 3498 003312* 1106 TAD LASTC 3499 003313* 4515 SORT 3500 003314* 0053 CACR 3501 003315* 3515 ERPTAB-CACR 3502 003316* 7510 SPA 3503 003317* 3106 DCA LASTC /SAVE $ FOR ALTMODE 3504 003320* 7200 CLA 3505 003321* 1367 TAD ("" 3506 003322* 4552 PUTT 3507 003323* 1106 TAD LASTC 3508 003324* 0167 AND [7740 3509 003325* 7650 SNA CLA 3510 003326* 4333 JMS WOW /USE CARRET FORM FOR CONTROL CHARS 3511 003327* 1106 TAD LASTC /AC MAY BE NON-0 3512 003330* 4552 PUTT 3513 003331* 1367 TAD ("" 3514 003332* 5710 JMP I NEGCHR 3515 3516 003333* 0000 WOW, 0 3517 003334* 1366 TAD ("^ 3518 003335* 4552 PUTT 3519 003336* 1160 TAD [100 3520 003337* 5733 JMP I WOW 3521 3522 003340* 1106 SPY, TAD LASTC 3523 003341* 1365 TAD (-11+CNVTAB 3524 003342* 3333 DCA WOW 3525 003343* 1364 TAD ("< 3526 003344* 4552 PUTT 3527 003345* 1733 TAD I WOW 3528 003346* 7012 RTR 3529 003347* 7012 RTR 3530 003350* 7012 RTR 3531 003351* 4774 JMS I (SIXTYP 3532 003352* 1733 TAD I WOW 3533 003353* 4774 JMS I (SIXTYP 3534 003354* 1363 TAD ("> 3535 003355* 5710 JMP I NEGCHR 3536 003356* 0000 PTR, 0 3537 3538 003363* 0276 PAGE 003364* 0274 003365* 3552 003366* 0336 003367* 0242 003370* 0473 003371* 4377 003372* 2610 003373* 4572 003374* 3400 003375* 3451 003376* 2600 003377* 3406 3539 003400* 0000 SIXTYP, 0 3540 003401* 0156 AND [137 /IGNORE SIGN BIT OF BYTE 3541 003402* 1166 TAD [40 3542 003403* 0174 AND [77 3543 003404* 1166 TAD [40 3544 003405* 4552 PUTT 3545 003406* 5600 JMP I SIXTYP 3546 003407* 7766 ERLIST, -ERR01-1 /LIST OF POINTERS TO ALL POSSIBLE 3547 003410* 7566 -ERR02-1 /CALLS TO THE ERROR ROUTINE. 3548 003411* 5271 -ERR03-1 3549 003412* 7260 -ERR04-1 3550 003413* 7102 -ERR05-1 3551 003414* 6753 -ERR06-1 3552 003415* 7716 -ERR07-1 3553 003416* 4545 -ERR08-1 3554 003417* 4272 -ERR09-1 3555 003420* 4253 -ERR10-1 3556 003421* 3143 -ERR11-1 3557 003422* 5464 -ERR12-1 3558 003423* 5324 -ERR13-1 3559 003424* 4046 -ERR14-1 3560 003425* 5612 -ERR15-1 3561 003426* 4420 -ERR16-1 3562 003427* 6105 -ERR17-1 3563 003430* 5753 -ERR18-1 3564 003431* 4566 -ERR19-1 3565 003432* 4317 -ERR20-1 3566 003433* 4316 -ERR21-1 3567 003434* 3243 -ERR22-1 3568 003435* 4325 -ERR23-1 3569 003436* 6021 -ERR24-1 3570 003437* 6162 -ERR25-1 3571 003440* 4716 -ERR26-1 3572 003441* 7006 -ERR27-1 3573 003442* 4335 ERR28, -ERR28-1 3574 003443* 6773 -ERR29-1 3575 003444* 2235 -ERR30-1 3576 003445* 6411 -ERR31-1 3577 003446* 5744 -ERR32-1 3578 003447* 4357 -ERR33-1 3579 003450* 7305 -ERR34-1 3580 003451* 7005 -ERR35-1 3581 003452* 0000 0 /ERROR 36 - UNLABELED ERROR - NAMELY "JMS I OUTR" 3582 /** MUST BE LAST ERROR MESSAGE 3583 003453* 1114 ERBASE, TEXT /ILL/ /1 ILLEGAL COMMAND 003454* 1400 3584 003455* 2524 TEXT /UTC/ /2 UNTERMINATED COMMAND 003456* 0300 3585 003457* 1121 TEXT /IQN/ /3 ILLEGAL Q-REGISTER NAME 003460* 1600 3586 003461* 2004 TEXT /PDO/ /4 INTERNAL PUSH DOWN OVERFLOW (RECURSION) 003462* 1700 3587 003463* 1505 TEXT /MEM/ /5 MEMORY OVERFLOW 003464* 1500 3588 003465* 2324 TEXT /STL/ /6 SEARCH STRING TOO LONG 003466* 1400 3589 003467* 0122 TEXT /ARG/ /7 ARGUMENT ERROR 003470* 0700 3590 003471* 1106 TEXT /IFN/ /8 ILLEGAL FILE NAME 003472* 1600 3591 003473* 2316 TEXT /SNI/ /9 SEMICOLON NOT IN ITERATION 003474* 1100 3592 003475* 0216 TEXT /BNI/ /10 CLOSE BRACKET NOT IN ITERATION 003476* 1100 3593 003477* 2017 TEXT /POP/ /11 POINTER OFF PAGE 003500* 2000 3594 003501* 2115 TEXT /QMO/ /12 Q-REGISTER MEMORY OVERFLOW 003502* 1700 3595 003503* 2524 TEXT /UTM/ /13 UNTERMINATED MACRO 003504* 1500 3596 003505* 1725 TEXT /OUT/ /14 OUTPUT ERROR 003506* 2400 3597 003507* 1116 TEXT /INP/ /15 INPUT ERROR 003510* 2000 3598 003511* 0605 TEXT /FER/ /16 FILE ERROR 003512* 2200 3599 003513* 0625 TEXT /FUL/ /17 OUTPUT COMMAND WOULD HAVE OVERFLOWED 003514* 1400 3600 003515* 1601 TEXT /NAY/ /18 NEGATIVE ARGUMENT TO Y 003516* 3100 3601 003517* 1105 TEXT /IEC/ /19 ILLEGAL E CHARACTER 003520* 0300 3602 003521* 1121 TEXT /IQC/ /20 ILLEGAL " CHARACTER 003522* 0300 3603 003523* 1601 TEXT /NAE/ /21 NO ARGUMENT BEFORE = 003524* 0500 3604 003525* 1601 TEXT /NAU/ /22 NO ARGUMENT BEFORE U 003526* 2500 3605 003527* 1601 TEXT /NAQ/ /23 NO ARGUMENT BEFORE " 003530* 2100 3606 003531* 2322 TEXT /SRH/ /24 FAILING SEARCH 003532* 1000 3607 003533* 1601 TEXT /NAP/ /25. NEGATIVE OR 0 ARGUMENT TO P 003534* 2000 3608 003535* 1601 TEXT /NAC/ /26. NEGATIVE ARGUMENT TO , 003536* 0300 3609 003537* 1631 TEXT /NYI/ /27. ^W NOT IMPLEMENTED 003540* 1100 3610 003541* 0415 TEXT /DMY/ /28. NOT USED 003542* 3100 3611 003543* 1601 TEXT /NAS/ /29. NEGATIVE OR 0 COUNT TO SEARCH 003544* 2300 3612 003545* 2714 TEXT /WLO/ /30. CAN'T WRITE OUT ERROR MESSAGE OVERLAY 003546* 1700 3613 003547* 1106 TEXT /IFC/ /31. ILLEGAL F CHARACTER 003550* 0300 3614 003551* 3103 TEXT /YCA/ /32. Y COMMAND ABORTED 003552* 0100 3615 003553* 0303 TEXT /CCL/ /33. CCL NOT FOUND OR EG TOO BIG 003554* 1400 3616 / TEXT /XAB/ /34. EXECUTION ABORTED BY ^C 3617 003555* 7001 7001;0200 003556* 0200 3618 003557* 1631 TEXT /NYI/ /35. ^V NOT IMPLEMENTED 003560* 1100 3619 003561* 1606 TEXT /NFO/ /36. NO FILE FOR OUTPUT 003562* 1700 3620 003563* 1024 CNVTAB, TEXT /HTLFVTFFCR/ 003564* 1406 003565* 2624 003566* 0606 003567* 0322 003570* 0000 3621 *.-1 3622 003570* 3340 ERPTAB, SPY /CR 3623 003571* 3340 SPY /HT 3624 003572* 4044 4044 /$ 3625 003573* 3340 SPY /FF 3626 003574* 3340 SPY /VT 3627 003575* 3340 SPY /LF 3628 PAGE 3629 RELOC 3630 / X-OVERLAY 3631 3632 *6600 3633 3634 RELOC 3200 3635 3636 003200* 0040 IOVRLC 3637 003201* 0041 QOVRLC 3638 003202* 0042 EOVRLC 3639 003203* 0000 XOVRLY, 0 3640 003204* 0044 FOVRLC 3641 3642 003205* 1777 CHREX, TAD I (TYI 3643 003206* 4515 SORT 3644 003207* 3212 XLIS 3645 003210* 0102 XTAB-XLIS 3646 003211* 4514 ERR /CAN'T HAPPEN 3647 3648 003212* 0103 XLIS, 103 /EC 3649 003213* 0106 106 /EF 3650 003214* 0107 107 /EG 3651 003215* 0113 113 /EK 3652 003216* 0130 130 /EX 3653 3654 /"EX" AND "EC" COMMANDS 3655 003217* 4511 EXIT, PUSHJ /"EX" COMMAND 3656 003220* 3222 EXITC /CLOSE OUT THE FILES 3657 003221* 5776 JMP I (CTLC /AND GO AWAY 3658 3659 003222* 1122 EXITC, TAD OUTR /"EC" COMMAND 3660 003223* 7041 CIA /CHECK FOR OPEN OUTPUT FILE 3661 003224* 1114 TAD ERROR 3662 003225* 7650 SNA CLA 3663 003226* 5512 POPJ /NOPE, EXIT ALREADY 3664 003227* 4564 EXLOOP, JMS I [NXTBUF /GET NEXT BUFFER 3665 003230* 1037 TAD REND 3666 003231* 7041 CIA 3667 003232* 1045 TAD ZZ /CHECK FOR END-OF-FILE AND 3668 003233* 7640 SZA CLA /TEXT BUFFER EMPTY 3669 003234* 5227 JMP EXLOOP /NOT YET 3670 /ENDFILE PROCESSOR 3671 003235* 1076 ENDFIL, TAD OCRCNT 3672 003236* 7040 CMA /REDUCE THE OUTPUT DOUBLEWORD COUNT 3673 003237* 0171 AND [177 /TO REFLECT ONLY THOSE WORDS REMAINING 3674 003240* 7040 CMA /UNTIL THE NEXT BLOCK BOUNDARY 3675 003241* 3076 DCA OCRCNT 3676 003242* 1375 TAD (7200 /USED TO BE 'DV7200' 3677 003243* 3063 DCA MQ /SET COUNTER FOR ONE BLOCK WORTH OF STUFF 3678 003244* 1374 TAD (32 /^Z END-OF-FILE 3679 003245* 4522 OUTPUT 3680 003246* 2063 ISZ MQ 3681 003247* 5245 JMP .-2 /FILL AT LEAST THE CURRENT BUFFER AND OUTPUT IT 3682 003250* 1065 TAD ODEV /MAKE SURE THE USR KNOWS THE HANDLER 3683 003251* 1373 TAD (OSHNDT-1 /*K* - POINTER INTO 3684 003252* 3271 DCA TY / OS/8 DEVICE RESIDENCY TABLE 3685 003253* 6211 CDF 10 3686 003254* 1066 TAD OUTHND 3687 003255* 3671 DCA I TY /MARK THE HANDLER AS IN CORE 3688 003256* 4772 JMS I (GETUSR /LOCK THE USR INTO CORE 3689 003257* 1070 TAD EBFLG /IS THIS AN EDIT BACKUP? 3690 003260* 7650 SNA CLA 3691 003261* 5771 JMP I (NORMAL /NO, JUST CLOSE FILE 3692 003262* 1770 TAD I (OCNT-1 /YES, LOOKUP OLD FILE TO CHANGE NAME 3693 003263* 3270 DCA TY-1 3694 003264* 6212 CIF 10 3695 003265* 1065 TAD ODEV /INPUT AND OUTPUT ARE ON SAME DEVICE 3696 003266* 4553 JMS I [200 3697 003267* 0002 2 3698 003270* 3770 OUNAM 3699 003271* 0000 TY, 0 /USELESS LENGTH--USE IT FOR TEMPORARY 3700 003272* 5771 JMP I (NORMAL /ERROR-JUST CLOSE FILE AND DON'T TELL ANYBODY 3701 003273* 6211 CDF 10 /ALL THAT WAS JUST TO GET THE DIRECTORY IN CORE 3702 003274* 7240 STA /SO WE COULD FIDDLE WITH IT 3703 003275* 1767 TAD I (17 /FORM POINTER TO DIRECTORY ENTRY 3704 003276* 1766 TAD I (1404 3705 003277* 3271 DCA TY 3706 003300* 1365 TAD (213 /CHANGE EXTENSION TO .BK 3707 003301* 3671 DCA I TY 3708 003302* 1452 TAD I Z7 /DIRECTORY BLOCK IT CAME FROM 3709 003303* 0052 AND Z7 3710 003304* 3311 DCA ACI 3711 003305* 6201 CDF 0 3712 003306* 4466 JMS I OUTHND 3713 003307* 4210 4210 /WRITE IT BACK OUT 3714 003310* 1400 1400 3715 003311* 0000 ACI, 0 3716 003312* 5306 JMP .-4 /ERROR! KEEP TRYING-THIS CAN BLOW A DIRECTORY 3717 003313* 5771 JMP I (NORMAL 3718 003314* 3222 XTAB, EXITC /EC 3719 003315* 3235 ENDFIL /EF 3720 003316* 3400 EXITGO /EG 3721 003317* 3321 EKILL /EK 3722 003320* 3217 EXIT /EX 3723 003321* 1114 EKILL, TAD ERROR 3724 003322* 3122 DCA OUTR 3725 003323* 5512 POPJ 3726 003365* 0213 PAGE 003366* 1404 003367* 0017 003370* 3604 003371* 3600 003372* 4507 003373* 7646 003374* 0032 003375* 7200 003376* 0473 003377* 2725 3727 003400* 4511 EXITGO, PUSHJ /DO AN EC TO CLOSE OUT FILE 3728 003401* 3222 EXITC 3729 003402* 4530 QCHK /ALLOW @ 3730 003403* 3215 DCA STOCD /MAKE REUSABLE IN CASE .START 3731 003404* 1377 TAD (7600 3732 003405* 3226 DCA CDPTR 3733 003406* 1376 TAD (-47 /47 ENTRIES IN CD TABLE 3734 003407* 3227 DCA EGCNT 3735 003410* 4535 EG1, QUOTST 3736 003411* 5230 JMP EG2 3737 003412* 1153 TAD [200 /TURN ON PARITY BIT FOR OS/8 3738 003413* 4215 JMS STOCD 3739 003414* 5210 JMP EG1 3740 3741 003415* 0000 STOCD, 0 3742 003416* 2227 ISZ EGCNT 3743 003417* 7410 SKP 3744 003420* 4514 ERR33, ERR /EG ARG TOO BIG 3745 003421* 6211 CDF 10 3746 003422* 3626 DCA I CDPTR 3747 003423* 6201 CDF 0 3748 003424* 2226 ISZ CDPTR 3749 003425* 5615 JMP I STOCD 3750 3751 003426* 7600 CDPTR, 7600 3752 003427* 7737 EGCNT, -41 3753 3754 003430* 1215 EG2, TAD STOCD 3755 003431* 7650 SNA CLA /ANYTHING IS ARG 3756 003432* 5265 JMP REGEG /NO 3757 003433* 4215 JMS STOCD /STORE 0 AT END 3758 003434* 4775 JMS I (GETUSR 3759 003435* 1374 TAD (CCLNAM 3760 003436* 3243 DCA ARG1 /JUST IN CASE PREVIOUS EG FAILED 3761 003437* 7201 CLA IAC /SYS 3762 003440* 6212 CIF 10 3763 003441* 4553 JMS I [200 3764 003442* 0002 2 /LOOKUP 3765 003443* 3461 ARG1, CCLNAM 3766 003444* 0000 0 3767 003445* 5256 JMP CCLERR 3768 003446* 1373 TAD (2001 3769 003447* 3772 DCA I (JSBITS /KEEP USR IN CORE 3770 003450* 1243 TAD ARG1 3771 003451* 3255 DCA CHNBLK 3772 003452* 6212 CIF 10 3773 003453* 4553 JMS I [200 3774 003454* 0006 6 /CHAIN 3775 003455* 0000 CHNBLK, 0 3776 003456* 4511 CCLERR, PUSHJ 3777 003457* 3611 ECDISM 3778 003460* 5220 JMP ERR33 3779 3780 003461* 0303 CCLNAM, FILENAME CCL.SV 003462* 1400 003463* 0000 003464* 2326 3781 REGEG, /EDIT AND GO - A CCL SPECIAL 3782 003465* 4771 JMS I (7607 /CALL THE OS/8 SYSTEM HANDLER 3783 003466* 0200 0200 /TO READ IN THE CCL OVERLAY 3784 003467* 0400 CCLADR 3785 003470* 0067 CCLOVL 3786 003471* 5220 JMP ERR33 /ERROR ON SYSTEM DEVICE! 3787 003472* 5673 JMP I .+1 /GO TO THE OVERLAY 3788 003473* 0602 CCLOST /AT OUR "SPECIAL" LOCATION 3789 RELOC 3790 / F-OVERLAY 3791 3792 007171 7607 *7200 007172 7746 007173 2001 007174 3461 007175 4507 007176 7731 007177 7600 3793 3794 RELOC 3200 3795 3796 003200* 0040 IOVRLC 3797 003201* 0041 QOVRLC 3798 003202* 0042 EOVRLC 3799 003203* 0043 XOVRLC 3800 003204* 0000 FOVRLY, 0 3801 3802 003205* 1777 CHRED, TAD I (TYI 3803 003206* 4515 SORT 3804 003207* 3234 DLIS 3805 003210* 0015 DTAB2-DLIS /CHECK FOR LEGALITY 3806 003211* 4514 ERR19, ERR /BAD CHAR AFTER E 3807 003212* 1777 DTOK, TAD I (TYI 3808 003213* 4515 SORT 3809 003214* 3234 DLIS 3810 003215* 0006 DTAB-DLIS 3811 003216* 3250 DCA XXFLAG 3812 003217* 2024 NCHK /ANY ARGUMENT? 3813 003220* 5232 JMP XXNO /NO, RETURN VALUE 3814 003221* 1027 TAD N /YES 3815 003222* 3650 DCA I XXFLAG /SET NEW VALUE 3816 003223* 1250 TAD XXFLAG 3817 003224* 1376 TAD (-EDFLAG+XXSUBS 3818 003225* 3257 DCA XXSUB 3819 003226* 1657 TAD I XXSUB 3820 003227* 3257 DCA XXSUB 3821 003230* 4657 JMS I XXSUB /CALL IT 3822 003231* 5512 POPJ /RETURN 3823 003232* 1650 XXNO, TAD I XXFLAG /GET VALUE 3824 003233* 5775 JMP I (NNEW13 /MAKE NEW 13-BIT VALUE 3825 3826 003234* 0104 DLIS, 104 /ED 3827 003235* 0110 110 /EH 3828 003236* 0117 117 /EO 3829 003237* 0123 123 /ES 3830 003240* 0124 124 /ET 3831 003241* 0125 125 /EU 3832 003242* 4571 DTAB, EDFLAG /MUST BE NEGATIVE 3833 003243* 4572 EHFLAG /TO CAUSE SUBSTITUTION 3834 003244* 4573 EOFLAG 3835 003245* 4574 ESFLAG 3836 003246* 4575 ETFLAG 3837 003247* 4576 EUFLAG 3838 003250* 0000 XXFLAG, 0 /POINTS TO FLAG IN MEMORY ABOVE 4000 3839 3840 003251* 3212 DTAB2, DTOK 3841 003252* 3212 DTOK 3842 003253* 3212 DTOK 3843 003254* 3212 DTOK 3844 003255* 3212 DTOK 3845 003256* 3212 DTOK 3846 3847 003257* 0000 XXSUB, 0 3848 / MASK;SKIP;LOC;VALUE IF SKIPS;VALUE IF NO SKIP 3849 3850 003260* 0000 EUSUB, 0 3851 003261* 4323 JMS FIXUP 3852 003262* 7777 7777; SMA CLA; EU1; CLA; SNA CLA 003263* 7700 003264* 2245 003265* 7200 003266* 7650 3853 003267* 7777 7777; SPA SNA CLA; EU2; TAD [40;NOP 003270* 7750 003271* 2247 003272* 1166 003273* 7000 3854 003274* 0000 0 3855 003275* 5660 JMP I EUSUB 3856 3857 003276* 0000 ETSUB, 0 3858 003277* 4323 JMS FIXUP 3859 003300* 0001 1; SNA CLA; KTYPE; PUTT; TYPE 003301* 7650 003302* 0103 003303* 4552 003304* 4521 3860 003305* 0001 1; SNA CLA; ET1; PUTT; TYPE 003306* 7650 003307* 4763 003310* 4552 003311* 4521 3861 003312* 0010 10; SNA CLA; ET8; CLA; TYPE 003313* 7650 003314* 4766 003315* 7200 003316* 4521 3862 003317* 0000 0 3863 003320* 5676 JMP I ETSUB 3864 3865 003321* 0000 LOC, 0 3866 003322* 0000 MASK, 0 3867 3868 003323* 0000 FIXUP, 0 3869 003324* 1723 FIXLUP, TAD I FIXUP 3870 003325* 7450 SNA 3871 003326* 5723 JMP I FIXUP /DONE, RETURN TO 0 3872 003327* 3322 DCA MASK /SAVE MASK 3873 003330* 2323 ISZ FIXUP 3874 003331* 1723 TAD I FIXUP 3875 003332* 3341 DCA SKIPY /SAVE SKIP CONDITION 3876 003333* 2323 ISZ FIXUP 3877 003334* 1723 TAD I FIXUP 3878 003335* 3321 DCA LOC /SAVE LOC TO CHANGE 3879 003336* 2323 ISZ FIXUP 3880 003337* 1650 TAD I XXFLAG /LOOK AT FLAG 3881 003340* 0322 AND MASK /'AND' WITH MASK 3882 003341* 7402 SKIPY, HLT 3883 003342* 5350 JMP SKPF 3884 003343* 1723 TAD I FIXUP 3885 003344* 3721 DCA I LOC 3886 003345* 2323 ISZ FIXUP 3887 003346* 2323 SKPT, ISZ FIXUP 3888 003347* 5324 JMP FIXLUP 3889 003350* 2323 SKPF, ISZ FIXUP 3890 003351* 1723 TAD I FIXUP 3891 003352* 3721 DCA I LOC 3892 003353* 5346 JMP SKPT 3893 003354* 4532 CTLUO, QREF /COMMAND ^U 3894 003355* 4531 QSKP /COUNT UP STRING 3895 003356* 1041 TAD OSCANP 3896 003357* 7040 CMA 3897 003360* 1040 TAD SCANP /LENGTH OF STRING 3898 / 3899 / *** PROHIBIT STRING > 2047 CHARS 3900 / 3901 003361* 4540 ADJQ /ADJUST Q-REGISTERS AND SET NEW LENGTH 3902 003362* 1041 TAD OSCANP /RESET SCAN POINTER 3903 003363* 3040 DCA SCANP 3904 003364* 3024 DCA NFLG 3905 003365* 4546 NOTRCE 3906 003366* 4535 CCUB, QUOTST 3907 003367* 5372 JMP CTLUND 3908 003370* 4534 QPUT 3909 003371* 5366 JMP CCUB 3910 003372* 4547 CTLUND, ENTRCE 3911 003373* 5565 JMP I [IREST 3912 003375* 4772 PAGE 003376* 6765 003377* 2725 3913 /NUMERICAL OUTPUT ROUTINE 3914 3915 003400* 0000 ZEROD, 0 3916 003401* 3255 DCA ZERFLG /INITIALIZE "LEADING ZEROS" FLAG 3917 003402* 1600 TAD I ZEROD 3918 003403* 2200 ISZ ZEROD 3919 003404* 3254 DCA OUTDEV /SAVE OUTPUT ROUTINE ADDRESS 3920 003405* 1030 TAD NLINK /POS OR NEGATIVE? 3921 003406* 7650 SNA CLA 3922 003407* 5223 JMP ZER2 /POSITIVE 3923 003410* 1062 TAD RADIX 3924 003411* 1377 TAD (-ORAD 3925 003412* 7650 SNA CLA 3926 003413* 5220 JMP PUTSGN /OCTAL 3927 003414* 1027 TAD N /DECIMAL 3928 003415* 7041 CIA 3929 003416* 3027 DCA N /NEGATE 3930 003417* 7410 SKP 3931 003420* 1161 PUTSGN, TAD ["1-"- 3932 003421* 1376 TAD ("- 3933 003422* 4654 JMS I OUTDEV /OUTPUT MINUS SIGN 3934 003423* 7346 ZER2, MTHREE 3935 003424* 3256 DCA ZCOUNT /ITERATION COUNT 3936 003425* 1062 TAD RADIX 3937 003426* 3257 DCA RXR 3938 003427* 2257 ZDIGIT, ISZ RXR 3939 003430* 1657 TAD I RXR 3940 003431* 3234 DCA DIV1 /GET DIVISOR 3941 003432* 1027 TAD N 3942 003433* 4541 MQLDVI /DIVIDE BY A POWER OF THE BASE 3943 003434* 0000 DIV1, 0 3944 003435* 1255 TAD ZERFLG 3945 003436* 7450 SNA 3946 003437* 5244 JMP LZ /IGNORE LEADING ZEROS 3947 003440* 1375 TAD (60 3948 003441* 4654 JMS I OUTDEV 3949 003442* 7130 STL RAR 3950 003443* 3255 DCA ZERFLG /SET LEADING ZEROS FLAG 3951 003444* 1064 LZ, TAD DVT1 /GET REMAINDER 3952 003445* 3027 DCA N 3953 003446* 2256 ISZ ZCOUNT /GO AROUND AGAIN? 3954 003447* 5227 JMP ZDIGIT /WHY NOT? 3955 003450* 1027 TAD N 3956 003451* 1375 TAD (60 3957 003452* 4654 JMS I OUTDEV /OUTPUT LAST DIGIT NO MATTER WHAT 3958 003453* 5600 JMP I ZEROD 3959 3960 003454* 0000 OUTDEV, 0 /WHERE WE'RE SENDING THE DIGITS 3961 003455* 0000 ZERFLG, 0 3962 003456* 0000 ZCOUNT, 0 3963 003457* 0000 RXR, 0 3964 /COMMANDS = AND \ 3965 3966 /COMMANDS = AND \ - NUMERICAL OUTPUT 3967 3968 003460* 2024 CEQLO, NCHK /COMMAND = 3969 003461* 4514 ERR21, ERR /NO NUMBER 3970 003462* 1062 TAD RADIX 3971 003463* 3312 DCA RADTMP 3972 003464* 4774 JMS I (POKE /LOOK AHEAD ONE CHARACTER 3973 003465* 1373 TAD (-75 /CHECK FOR = SIGN 3974 003466* 7640 SZA CLA 3975 003467* 5272 JMP SETRAD /SINGLE = 3976 003470* 4517 SCAN /DOUBLE = (PASS UP SECOND ONE) 3977 003471* 7610 SKP CLA /CLEAR AC 3978 003472* 1161 SETRAD, TAD [4 3979 003473* 1372 TAD (ORAD 3980 003474* 3062 DCA RADIX /SET OCTAL RADIX TEMPORARILY 3981 003475* 4200 JMS ZEROD 3982 003476* 0555 TPUT 3983 003477* 1312 TAD RADTMP 3984 003500* 3062 DCA RADIX /RESTORE ORIGINAL RADIX 3985 003501* 2022 ISZ CLNF /: SEEN? 3986 003502* 4523 CRLF /NO, END WITH CRLF 3987 003503* 3022 DCA CLNF 3988 003504* 5512 POPJ 3989 3990 003505* 2024 CBSLO, NCHK /COMMAND \ 3991 003506* 5313 JMP CBSN 3992 003507* 4200 JMS ZEROD 3993 003510* 2742 UPOC 3994 003511* 5512 POPJ 3995 3996 003512* 0000 RADTMP, 0 3997 003513* 4511 CBSN, PUSHJ 3998 003514* 1202 NMBR2 /INITIALIZE RESULT TO 0 3999 003515* 4346 JMS PTCH 4000 003516* 1444 TAD I P 4001 003517* 0172 AND [377 /GET CURRENT CHARACTER 4002 003520* 6201 CDF 0 4003 003521* 1371 TAD (-55 /CHECK FOR MINUS SIGN 4004 003522* 7440 SZA 4005 003523* 5326 JMP .+3 /NOT MINUS 4006 003524* 4511 PUSHJ 4007 003525* 1265 CMIN /RECORD MINUS SIGN 4008 003526* 7041 CIA 4009 003527* 7112 CLL RTR 4010 003530* 7650 SNA CLA /CHECK FOR PLUS SIGN 4011 003531* 2044 CBSNP, ISZ P /BUMP POINTER PAST SIGN 4012 003532* 4346 JMS PTCH 4013 003533* 1444 TAD I P /GET A CHAR 4014 003534* 0172 AND [377 4015 003535* 6201 CDF 0 4016 003536* 1370 TAD (-72 4017 003537* 7100 CLL 4018 003540* 1060 TAD CALF 4019 003541* 7420 SNL /IS IT A DIGIT? 4020 003542* 5512 POPJ /NO 4021 003543* 4511 PUSHJ 4022 003544* 1202 NMBR2 /YES - ACCUMULATE IT 4023 003545* 5331 JMP CBSNP /AND LOOP 4024 003546* 0000 PTCH, 0 4025 003547* 1044 TAD P /V3C 4026 003550* 7161 STL CIA /CHECK FOR END OF BUFFER 4027 003551* 1045 TAD ZZ 4028 003552* 7670 SZL SNA CLA 4029 003553* 5512 POPJ 4030 003554* 6211 CDF 10 4031 003555* 5746 JMP I PTCH 4032 4033 003556* 3564 XXSUBS, EDSUB 4034 003557* 3564 EHSUB 4035 003560* 3564 EOSUB 4036 003561* 3564 ESSUB 4037 003562* 3276 ETSUB 4038 003563* 3260 EUSUB 4039 / CXSUB 4040 4041 /CXSUB, 4042 EDSUB, 4043 EHSUB, 4044 ESSUB, 4045 003564* 0000 EOSUB, 0 4046 003565* 5764 JMP I EOSUB 4047 003570* 7706 PAGE 003571* 7723 003572* 4550 003573* 7703 003574* 1640 003575* 0060 003576* 0255 003577* 3230 4048 RELOC 4049 000153 0200 FIELD 1 000154 0006 000155 7700 000156 0137 000157 0007 000160 0100 000161 0004 000162 7770 000163 7720 000164 4470 000165 2557 000166 0040 000167 7740 000170 7760 000171 0177 000172 0377 000173 7400 000174 0077 000175 7766 000176 0052 000177 4757 4050 4051 *4400 4052 4053 014400 4444 XERBAS, XER1 4054 014401 4466 XER2 4055 014402 4513 XER3 4056 014403 4545 XER4 4057 014404 4601 XER5 4058 014405 4633 XER6 4059 014406 4662 XER7 4060 014407 4705 XER8 4061 014410 4745 XER9 4062 014411 4773 XER10 4063 014412 5021 XER11 4064 014413 5062 XER12 4065 014414 5115 XER13 4066 014415 5140 XER14 4067 014416 5155 XER15 4068 014417 5171 XER16 4069 014420 5204 XER17 4070 014421 5251 XER18 4071 014422 5277 XER19 4072 014423 5333 XER20 4073 014424 5367 XER21 4074 014425 5414 XER22 4075 014426 5441 XER23 4076 014427 5472 XER24 4077 014430 5510 XER25 4078 014431 5547 XER26 4079 014432 5576 XER27 4080 014433 5671 XER28 4081 014434 5672 XER29 4082 014435 5731 XER30 4083 014436 6000 XER31 4084 014437 6034 XER32 4085 014440 6056 XER33 4086 014441 6126 XER34 4087 014442 6150 XER35 4088 014443 6245 XER36 4089 XER1, 4090 014444 0311 "I;"l;"l;"e;"g;"a;"l;" ;"C;"o;"m;"m;"a;"n;"d;" ;4000;0 014445 0354 014446 0354 014447 0345 014450 0347 014451 0341 014452 0354 014453 0240 014454 0303 014455 0357 014456 0355 014457 0355 014460 0341 014461 0356 014462 0344 014463 0240 014464 4000 014465 0000 4091 XER2, 4092 014466 0325 "U;"n;"t;"e;"r;"m;"i;"n;"a;"t;"e;"d;" ;"C;"o;"m;"m;"a;"n;"d;0 014467 0356 014470 0364 014471 0345 014472 0362 014473 0355 014474 0351 014475 0356 014476 0341 014477 0364 014500 0345 014501 0344 014502 0240 014503 0303 014504 0357 014505 0355 014506 0355 014507 0341 014510 0356 014511 0344 014512 0000 4093 XER3, 4094 014513 0311 "I;"l;"l;"e;"g;"a;"l;" ;"Q;"-;"r;"e;"g;"i;"s;"t;"e;"r;" ;"N;"a;"m;"e;" ;4000;0 014514 0354 014515 0354 014516 0345 014517 0347 014520 0341 014521 0354 014522 0240 014523 0321 014524 0255 014525 0362 014526 0345 014527 0347 014530 0351 014531 0363 014532 0364 014533 0345 014534 0362 014535 0240 014536 0316 014537 0341 014540 0355 014541 0345 014542 0240 014543 4000 014544 0000 4095 XER4, 4096 014545 0311 "I;"n;"t;"e;"r;"n;"a;"l;" ;"P;"u;"s;"h;" ;"D;"o;"w;"n;" ;"O;"v;"e;"r 014546 0356 014547 0364 014550 0345 014551 0362 014552 0356 014553 0341 014554 0354 014555 0240 014556 0320 014557 0365 014560 0363 014561 0350 014562 0240 014563 0304 014564 0357 014565 0367 014566 0356 014567 0240 014570 0317 014571 0366 014572 0345 014573 0362 4097 014574 0346 "f;"l;"o;"w;0 014575 0354 014576 0357 014577 0367 014600 0000 4098 XER5, 4099 014601 0323 "S;"t;"o;"r;"a;"g;"e;" ;"C;"a;"p;"a;"c;"i;"t;"y;" ;"E;"x;"c;"e;"e;"d;"e;"d;0 014602 0364 014603 0357 014604 0362 014605 0341 014606 0347 014607 0345 014610 0240 014611 0303 014612 0341 014613 0360 014614 0341 014615 0343 014616 0351 014617 0364 014620 0371 014621 0240 014622 0305 014623 0370 014624 0343 014625 0345 014626 0345 014627 0344 014630 0345 014631 0344 014632 0000 4100 XER6, 4101 014633 0323 "S;"e;"a;"r;"c;"h;" ;"S;"t;"r;"i;"n;"g;" ;"t;"o;"o;" ;"L;"o;"n;"g;0 014634 0345 014635 0341 014636 0362 014637 0343 014640 0350 014641 0240 014642 0323 014643 0364 014644 0362 014645 0351 014646 0356 014647 0347 014650 0240 014651 0364 014652 0357 014653 0357 014654 0240 014655 0314 014656 0357 014657 0356 014660 0347 014661 0000 4102 XER7, 4103 014662 0311 "I;"m;"p;"r;"o;"p;"e;"r;" ;"A;"r;"g;"u;"m;"e;"n;"t;"s;0 014663 0355 014664 0360 014665 0362 014666 0357 014667 0360 014670 0345 014671 0362 014672 0240 014673 0301 014674 0362 014675 0347 014676 0365 014677 0355 014700 0345 014701 0356 014702 0364 014703 0363 014704 0000 4104 XER8, 4105 014705 0311 "I;"l;"l;"e;"g;"a;"l;" ;"C;"h;"a;"r;"a;"c;"t;"e;"r;" ;4000 014706 0354 014707 0354 014710 0345 014711 0347 014712 0341 014713 0354 014714 0240 014715 0303 014716 0350 014717 0341 014720 0362 014721 0341 014722 0343 014723 0364 014724 0345 014725 0362 014726 0240 014727 4000 4106 014730 0240 " ;"i;"n;" ;"F;"i;"l;"e;"n;"a;"m;"e;0 014731 0351 014732 0356 014733 0240 014734 0306 014735 0351 014736 0354 014737 0345 014740 0356 014741 0341 014742 0355 014743 0345 014744 0000 4107 XER9, 4108 014745 0273 ";;" ;"n;"o;"t;" ;"i;"n;" ;"a;"n;" ;"I;"t;"e;"r;"a;"t;"i;"o;"n;0 014746 0240 014747 0356 014750 0357 014751 0364 014752 0240 014753 0351 014754 0356 014755 0240 014756 0341 014757 0356 014760 0240 014761 0311 014762 0364 014763 0345 014764 0362 014765 0341 014766 0364 014767 0351 014770 0357 014771 0356 014772 0000 4109 XER10, 4110 014773 0276 ">;" ;"n;"o;"t;" ;"i;"n;" ;"a;"n;" ;"I;"t;"e;"r;"a;"t;"i;"o;"n;0 014774 0240 014775 0356 014776 0357 014777 0364 015000 0240 015001 0351 015002 0356 015003 0240 015004 0341 015005 0356 015006 0240 015007 0311 015010 0364 015011 0345 015012 0362 015013 0341 015014 0364 015015 0351 015016 0357 015017 0356 015020 0000 4111 XER11, 4112 015021 0301 "A;"t;"t;"e;"m;"p;"t;" ;"t;"o;" ;"M;"o;"v;"e;" ;"P;"o;"i;"n;"t;"e;"r 015022 0364 015023 0364 015024 0345 015025 0355 015026 0360 015027 0364 015030 0240 015031 0364 015032 0357 015033 0240 015034 0315 015035 0357 015036 0366 015037 0345 015040 0240 015041 0320 015042 0357 015043 0351 015044 0356 015045 0364 015046 0345 015047 0362 4113 015050 0240 " ;"O;"f;"f;" ;"P;"a;"g;"e;0 015051 0317 015052 0346 015053 0346 015054 0240 015055 0320 015056 0341 015057 0347 015060 0345 015061 0000 4114 XER12, 4115 015062 0321 "Q;"-;"r;"e;"g;"i;"s;"t;"e;"r;" ;"M;"e;"m;"o;"r;"y;" ;"O;"v;"e;"r;"f;"l;"o;"w;0 015063 0255 015064 0362 015065 0345 015066 0347 015067 0351 015070 0363 015071 0364 015072 0345 015073 0362 015074 0240 015075 0315 015076 0345 015077 0355 015100 0357 015101 0362 015102 0371 015103 0240 015104 0317 015105 0366 015106 0345 015107 0362 015110 0346 015111 0354 015112 0357 015113 0367 015114 0000 4116 XER13, 4117 015115 0325 "U;"n;"t;"e;"r;"m;"i;"n;"a;"t;"e;"d;" ;"M;"a;"c;"r;"o;0 015116 0356 015117 0364 015120 0345 015121 0362 015122 0355 015123 0351 015124 0356 015125 0341 015126 0364 015127 0345 015130 0344 015131 0240 015132 0315 015133 0341 015134 0343 015135 0362 015136 0357 015137 0000 4118 XER14, 4119 015140 0317 "O;"u;"t;"p;"u;"t;" ;"E;"r;"r;"o;"r;0 015141 0365 015142 0364 015143 0360 015144 0365 015145 0364 015146 0240 015147 0305 015150 0362 015151 0362 015152 0357 015153 0362 015154 0000 4120 XER15, 4121 015155 0311 "I;"n;"p;"u;"t;" ;"E;"r;"r;"o;"r;0 015156 0356 015157 0360 015160 0365 015161 0364 015162 0240 015163 0305 015164 0362 015165 0362 015166 0357 015167 0362 015170 0000 4122 XER16, 4123 015171 0306 "F;"i;"l;"e;" ;"E;"r;"r;"o;"r;0 015172 0351 015173 0354 015174 0345 015175 0240 015176 0305 015177 0362 015200 0362 015201 0357 015202 0362 015203 0000 4124 XER17, 4125 015204 0317 "O;"u;"t;"p;"u;"t;" ;"C;"o;"m;"m;"a;"n;"d;" ;"w;"o;"u;"l;"d;" ;"h;"a;"v;"e 015205 0365 015206 0364 015207 0360 015210 0365 015211 0364 015212 0240 015213 0303 015214 0357 015215 0355 015216 0355 015217 0341 015220 0356 015221 0344 015222 0240 015223 0367 015224 0357 015225 0365 015226 0354 015227 0344 015230 0240 015231 0350 015232 0341 015233 0366 015234 0345 4126 015235 0240 " ;"O;"v;"e;"r;"f;"l;"o;"w;"e;"d;0 015236 0317 015237 0366 015240 0345 015241 0362 015242 0346 015243 0354 015244 0357 015245 0367 015246 0345 015247 0344 015250 0000 4127 XER18, 4128 015251 0316 "N;"u;"m;"e;"r;"i;"c;" ;"A;"r;"g;"u;"m;"e;"n;"t;" ;"t;"o;" ;"Y;0 015252 0365 015253 0355 015254 0345 015255 0362 015256 0351 015257 0343 015260 0240 015261 0301 015262 0362 015263 0347 015264 0365 015265 0355 015266 0345 015267 0356 015270 0364 015271 0240 015272 0364 015273 0357 015274 0240 015275 0331 015276 0000 4129 XER19, 4130 015277 0311 "I;"l;"l;"e;"g;"a;"l;" ;"C;"h;"a;"r;"a;"c;"t;"e;"r;" ;4000 015300 0354 015301 0354 015302 0345 015303 0347 015304 0341 015305 0354 015306 0240 015307 0303 015310 0350 015311 0341 015312 0362 015313 0341 015314 0343 015315 0364 015316 0345 015317 0362 015320 0240 015321 4000 4131 015322 0240 " ;"a;"f;"t;"e;"r;" ;"E;0 015323 0341 015324 0346 015325 0364 015326 0345 015327 0362 015330 0240 015331 0305 015332 0000 4132 XER20, 4133 015333 0311 "I;"l;"l;"e;"g;"a;"l;" ;"C;"h;"a;"r;"a;"c;"t;"e;"r;" ;4000 015334 0354 015335 0354 015336 0345 015337 0347 015340 0341 015341 0354 015342 0240 015343 0303 015344 0350 015345 0341 015346 0362 015347 0341 015350 0343 015351 0364 015352 0345 015353 0362 015354 0240 015355 4000 4134 015356 0240 " ;"a;"f;"t;"e;"r;" ;"";0 015357 0341 015360 0346 015361 0364 015362 0345 015363 0362 015364 0240 015365 0242 015366 0000 4135 XER21, 4136 015367 0316 "N;"o;" ;"A;"r;"g;"u;"m;"e;"n;"t;" ;"b;"e;"f;"o;"r;"e;" ;"=;0 015370 0357 015371 0240 015372 0301 015373 0362 015374 0347 015375 0365 015376 0355 015377 0345 015400 0356 015401 0364 015402 0240 015403 0342 015404 0345 015405 0346 015406 0357 015407 0362 015410 0345 015411 0240 015412 0275 015413 0000 4137 XER22, 4138 015414 0316 "N;"o;" ;"A;"r;"g;"u;"m;"e;"n;"t;" ;"b;"e;"f;"o;"r;"e;" ;"U;0 015415 0357 015416 0240 015417 0301 015420 0362 015421 0347 015422 0365 015423 0355 015424 0345 015425 0356 015426 0364 015427 0240 015430 0342 015431 0345 015432 0346 015433 0357 015434 0362 015435 0345 015436 0240 015437 0325 015440 0000 4139 XER23, 4140 015441 0316 "N;"o;" ;"A;"r;"g;"u;"m;"e;"n;"t;" ;"b;"e;"f;"o;"r;"e;" ;"q;"u;"o;"t;"e;0 015442 0357 015443 0240 015444 0301 015445 0362 015446 0347 015447 0365 015450 0355 015451 0345 015452 0356 015453 0364 015454 0240 015455 0342 015456 0345 015457 0346 015460 0357 015461 0362 015462 0345 015463 0240 015464 0361 015465 0365 015466 0357 015467 0364 015470 0345 015471 0000 4141 XER24, 4142 015472 0323 "S;"e;"a;"r;"c;"h;" ;"f;"a;"i;"l;"e;"d;0 015473 0345 015474 0341 015475 0362 015476 0343 015477 0350 015500 0240 015501 0346 015502 0341 015503 0351 015504 0354 015505 0345 015506 0344 015507 0000 4143 XER25, 4144 015510 0316 "N;"e;"g;"a;"t;"i;"v;"e;" ;"o;"r;" ;"Z;"e;"r;"o 015511 0345 015512 0347 015513 0341 015514 0364 015515 0351 015516 0366 015517 0345 015520 0240 015521 0357 015522 0362 015523 0240 015524 0332 015525 0345 015526 0362 015527 0357 4145 015530 0240 " ;"A;"r;"g;"u;"m;"e;"n;"t;" ;"t;"o;" ;"P;0 015531 0301 015532 0362 015533 0347 015534 0365 015535 0355 015536 0345 015537 0356 015540 0364 015541 0240 015542 0364 015543 0357 015544 0240 015545 0320 015546 0000 4146 XER26, 4147 015547 0316 "N;"e;"g;"a;"t;"i;"v;"e;" ;"a;"r;"g;"u;"m;"e;"n;"t;" ;"t;"o;" ;",;0 015550 0345 015551 0347 015552 0341 015553 0364 015554 0351 015555 0366 015556 0345 015557 0240 015560 0341 015561 0362 015562 0347 015563 0365 015564 0355 015565 0345 015566 0356 015567 0364 015570 0240 015571 0364 015572 0357 015573 0240 015574 0254 015575 0000 4148 XER27, 4149 015576 0303 "C;"a;"s;"e;" ;"S;"u;"p;"p;"o;"r;"t;" ;"n;"o;"t 015577 0341 015600 0363 015601 0345 015602 0240 015603 0323 015604 0365 015605 0360 015606 0360 015607 0357 015610 0362 015611 0364 015612 0240 015613 0356 015614 0357 015615 0364 4150 015616 0240 " ;"I;"m;"p;"l;"e;"m;"e;"n;"t;"e;"d;215;212;211;177;177 015617 0311 015620 0355 015621 0360 015622 0354 015623 0345 015624 0355 015625 0345 015626 0356 015627 0364 015630 0345 015631 0344 015632 0215 015633 0212 015634 0211 015635 0177 015636 0177 4151 015637 0333 "[;"u;"s;"e;" ;"W;" ;"f;"o;"r;" ;"W;"a;"t;"c;"h;" ;"C;"o;"m;"m;"a;"n;"d;"];0 015640 0365 015641 0363 015642 0345 015643 0240 015644 0327 015645 0240 015646 0346 015647 0357 015650 0362 015651 0240 015652 0327 015653 0341 015654 0364 015655 0343 015656 0350 015657 0240 015660 0303 015661 0357 015662 0355 015663 0355 015664 0341 015665 0356 015666 0344 015667 0335 015670 0000 4152 /XER28, 4153 /"N;"e;"g;"a;"t;"i;"v;"e;" ;"o;"r;" ;"Z;"e;"r;"o;" 4154 /"I;"t;"e;"r;"a;"t;"i;"o;"n;" ;"C;"o;"u;"n;"t;0 4155 XER28, 4156 015671 0000 0 4157 XER29, 4158 015672 0316 "N;"e;"g;"a;"t;"i;"v;"e;" ;"o;"r;" ;"Z;"e;"r;"o;" 015673 0345 015674 0347 015675 0341 015676 0364 015677 0351 015700 0366 015701 0345 015702 0240 015703 0357 015704 0362 015705 0240 015706 0332 015707 0345 015710 0362 015711 0357 015712 0240 4159 015713 0301 "A;"r;"g;"u;"m;"e;"n;"t;" ;"t;"o;" ;"S;0 015714 0362 015715 0347 015716 0365 015717 0355 015720 0345 015721 0356 015722 0364 015723 0240 015724 0364 015725 0357 015726 0240 015727 0323 015730 0000 4160 XER30, 4161 015731 0303 "C;"a;"n;"n;"o;"t;" ;"W;"r;"i;"t;"e;" ;"O;"u;"t;" ;"E;"r;"r;"o;"r 015732 0341 015733 0356 015734 0356 015735 0357 015736 0364 015737 0240 015740 0327 015741 0362 015742 0351 015743 0364 015744 0345 015745 0240 015746 0317 015747 0365 015750 0364 015751 0240 015752 0305 015753 0362 015754 0362 015755 0357 015756 0362 4162 015757 0240 " ;"M;"e;"s;"s;"a;"g;"e;" ;"O;"v;"e;"r;"l;"a;"y;0 015760 0315 015761 0345 015762 0363 015763 0363 015764 0341 015765 0347 015766 0345 015767 0240 015770 0317 015771 0366 015772 0345 015773 0362 015774 0354 015775 0341 015776 0371 015777 0000 4163 XER31, 4164 016000 0311 "I;"l;"l;"e;"g;"a;"l;" ;"C;"h;"a;"r;"a;"c;"t;"e;"r;" ;4000 016001 0354 016002 0354 016003 0345 016004 0347 016005 0341 016006 0354 016007 0240 016010 0303 016011 0350 016012 0341 016013 0362 016014 0341 016015 0343 016016 0364 016017 0345 016020 0362 016021 0240 016022 4000 4165 016023 0240 " ;"a;"f;"t;"e;"r;" ;"F;0 016024 0341 016025 0346 016026 0364 016027 0345 016030 0362 016031 0240 016032 0306 016033 0000 4166 XER32, 4167 016034 0331 "Y;" ;"C;"o;"m;"m;"a;"n;"d;" ;"A;"b;"o;"r;"t;"e;"d;0 016035 0240 016036 0303 016037 0357 016040 0355 016041 0355 016042 0341 016043 0356 016044 0344 016045 0240 016046 0301 016047 0342 016050 0357 016051 0362 016052 0364 016053 0345 016054 0344 016055 0000 4168 XER33, 4169 016056 0303 "C;"C;"L;".;"S;"V;" ;"n;"o;"t;" ;"f;"o;"u;"n;"d;" ;"o;"r;" 016057 0303 016060 0314 016061 0256 016062 0323 016063 0326 016064 0240 016065 0356 016066 0357 016067 0364 016070 0240 016071 0346 016072 0357 016073 0365 016074 0356 016075 0344 016076 0240 016077 0357 016100 0362 016101 0240 4170 016102 0305 "E;"G;" ;"a;"r;"g;"u;"m;"e;"n;"t;" ;"t;"o;"o;" ;"b;"i;"g;0 016103 0307 016104 0240 016105 0341 016106 0362 016107 0347 016110 0365 016111 0355 016112 0345 016113 0356 016114 0364 016115 0240 016116 0364 016117 0357 016120 0357 016121 0240 016122 0342 016123 0351 016124 0347 016125 0000 4171 XER34, 4172 016126 0305 "E;"x;"e;"c;"u;"t;"i;"o;"n;" ;"a;"b;"o;"r;"t;"e;"d;0 016127 0370 016130 0345 016131 0343 016132 0365 016133 0364 016134 0351 016135 0357 016136 0356 016137 0240 016140 0341 016141 0342 016142 0357 016143 0362 016144 0364 016145 0345 016146 0344 016147 0000 4173 XER35, 4174 016150 0303 "C;"a;"s;"e;" ;"S;"u;"p;"p;"o;"r;"t;" ;"n;"o;"t;" 016151 0341 016152 0363 016153 0345 016154 0240 016155 0323 016156 0365 016157 0360 016160 0360 016161 0357 016162 0362 016163 0364 016164 0240 016165 0356 016166 0357 016167 0364 016170 0240 4175 016171 0311 "I;"m;"p;"l;"e;"m;"e;"n;"t;"e;"d;215;212;211;177;177 016172 0355 016173 0360 016174 0354 016175 0345 016176 0355 016177 0345 016200 0356 016201 0364 016202 0345 016203 0344 016204 0215 016205 0212 016206 0211 016207 0177 016210 0177 4176 016211 0333 "[;"u;"s;"e;" ;"E;"O;" ;"f;"o;"r 016212 0365 016213 0363 016214 0345 016215 0240 016216 0305 016217 0317 016220 0240 016221 0346 016222 0357 016223 0362 4177 016224 0240 " ;"V;"e;"r;"s;"i;"o;"n;" ;"n;"u;"m;"b;"e;"r;"];0 016225 0326 016226 0345 016227 0362 016230 0363 016231 0351 016232 0357 016233 0356 016234 0240 016235 0356 016236 0365 016237 0355 016240 0342 016241 0345 016242 0362 016243 0335 016244 0000 4178 XER36, 4179 016245 0316 "N;"o;" ;"F;"i;"l;"e;" ;"f;"o;"r;" ;"O;"u;"t;"p;"u;"t;0 016246 0357 016247 0240 016250 0306 016251 0351 016252 0354 016253 0345 016254 0240 016255 0346 016256 0357 016257 0362 016260 0240 016261 0317 016262 0365 016263 0364 016264 0360 016265 0365 016266 0364 016267 0000 4180 PAGE 4181 016400 0000 COREAD, 0 4182 016401 2200 ISZ COREAD 4183 016402 1600 TAD I COREAD /GET BLOCK # 4184 016403 0231 AND CO7 4185 016404 7112 CLL RTR 4186 016405 7012 RTR 4187 016406 7010 RAR /MULTIPLY BY 400 4188 016407 1234 TAD KMEM 4189 016410 3235 DCA FLO 4190 016411 1232 TAD M400 4191 016412 3230 DCA FLCNT 4192 016413 1233 TAD K3200 4193 016414 3236 DCA FTO 4194 016415 6231 FLOO, CDF 30 4195 016416 1635 TAD I FLO 4196 016417 6201 CDF 0 4197 016420 3636 DCA I FTO 4198 016421 2235 ISZ FLO 4199 016422 2236 ISZ FTO 4200 016423 2230 ISZ FLCNT 4201 016424 5215 JMP FLOO 4202 016425 2200 ISZ COREAD 4203 016426 6203 CIF CDF 0 4204 016427 5600 JMP I COREAD 4205 4206 016430 0000 FLCNT, 0 4207 016431 0007 CO7, 7 4208 016432 7400 M400, -400 4209 016433 3200 K3200, 3200 4210 016434 2000 KMEM, MEMLOC 4211 016435 0000 FLO, 0 4212 016436 0000 FTO, 0 4213 COREND=. 4214 NEWERR, RELOC OVREAD 4215 012537* 6232 CIF 30 /NEW CODE TO READ OVERLAY 4216 012540* 4741 JMS I .+1 /MUST BE 5 LOCS LONG 4217 012541* 6400 COREAD 4218 012542* 0000 TMP, 0 /BLOCK # 4219 012543* 7000 NOP 4220 RELOC 4221 PAGE 4222 4223 $ end of file ^ AC3777 7350 ACI 3311 ADJ 0665 ADJ2 0735 ADJQ 4540 ALTLST 4640 ALTTAB 2554 APFF 2161 APFS 2157 APLF 2162 ARG1 3443 ASR33 2227 ASR35 5167 ASRCNT 5344 BACKUP 3104 BBELL 1424 BCHAR 1531 BCR 1435 BELLSP 1465 BETA2 4002 BFF 1442 BLF 1441 BLSP1 1466 BLSP2 1467 BLSP3 1522 BLSP4 1523 BRACKS 3331 BSP 1401 BUFIN 2062 BUFOUT 3711 BUGFLG 1400 BVT 1443 BZCHK 4527 C7600 0460 CAAM 0055 CACR 0053 CAFF 0056 CAHT 0054 CALF 0060 CAMP 1261 CAST 1264 CATS 2556 CBSL 3163 CBSLO 3505 CBSN 3513 CBSNP 3531 CCLADR 0400 CCLERR 3456 CCLN 1367 CCLNAM 3461 CCLOST 0602 CCLOVL 0067 CCMA 3055 CCMA3 3066 CCPR 1240 CCUB 3366 CDBQ 2517 CDBQO 3451 CDOT 1257 CDPTR 3426 CDSP 5000 CDT 0102 CEQL 3160 CEQLO 3460 CEXP 1763 CFLG 0021 CFSI 1754 CGSG 3520 CGTC 3522 CHAA 2036 CHANGE 5344 CHANGL 5346 CHAR 0031 CHBA 1153 CHGT 3047 CHGTO 3513 CHINIL 5332 CHKBZ 4626 CHKCLN 1137 CHKCTC 0453 CHKQF 4461 CHKREP 1121 CHLCMP 3116 CHLRET 3140 CHLT 3052 CHLTMP 0770 CHLTO 3534 CHNBLK 3455 CHNSTR 0046 CHOOPS 2612 CHR1 0604 CHRA 2000 CHRB 3137 CHRC 0606 CHRD 0650 CHRE 2620 CHRED 3205 CHRER 3400 CHREX 3205 CHRF 1362 CHRG 2706 CHRH 3134 CHRI 2633 CHRJ 0600 CHRK 0726 CHRL 0614 CHRL1 0615 CHRLI 3130 CHRLM 0634 CHRLP 0622 CHRM 4611 CHRN 1154 CHRN1 1155 CHRO 2522 CHROO 3205 CHRP 1600 CHRQ 3015 CHRR 0603 CHRS 1120 CHRT 1706 CHRT2 1660 CHRU 4532 CHRW 1657 CHRX 1710 CHRY 2022 CHRZ 3136 CHTECO 0265 CHUA 0324 CIL1 2643 CIL2 2645 CIL3 2665 CIL4 2672 CLNF 0022 CLOQ 0610 CMDSET 2465 CMIN 1265 CNBS 1262 CNDI 3476 CNDLST 3272 CNDTAB 3435 CNVTAB 3563 CNXT 1171 CO7 6431 CODE 3340 COLCT 2221 COLG3 2760 COLG4 2764 COLON 3266 COMLST 4600 COMPAR 0330 COMTAB 4560 COOB 3235 COOC 3222 COOQ 3243 COPR 1247 COR0 5233 COR1 5242 COR2 5244 COR70 5250 COR999 5266 COREAD 6400 COREND 6437 unreferenced COREX 5263 CORLOC 5324 CORSIZ 5326 CORV 5325 CORX 5252 COUNT 1571 CPCS 3020 CPCT 1637 CPLS 1266 CPOA 1620 CPOC 1655 CQOA 3022 CQSM 1352 CRLF 4523 CS41 3214 CSEM 1757 CSEM2 3506 unreferenced CSEMO 3503 CSF 1071 CSF1 1072 CSG 1051 CSL 1036 CSMA 3366 CSMC 1565 CSMD 3256 CSME 3306 CSMF 3313 CSMFS 3262 CSMI 3316 CSML 3251 CSML1 3250 CSMO 3320 CSMQ 3263 CSMQ1 3264 CSMU 3260 CSMY 3267 CSN 1173 CSNCL 1161 CSP 1172 CSST 1031 CSWT 1046 CSWT1 1045 CSZ 1061 CSZCL 1056 CTCCHK 4526 CTCT 3300 CTLA 1762 CTLALP 1767 CTLBEL 0052 CTLC 0473 CTLD 1330 CTLE 4771 CTLF 1324 CTLH 3137 CTLI 2640 CTLN 1347 CTLO 1331 CTLT 4760 CTLT2 4765 CTLTAB 2545 CTLU 2572 CTLUND 3372 CTLUO 3354 CTLW 4440 CTLW2 4444 CTRLP 2613 unreferenced CTUA 1325 CUPPER 2752 CVIR 1263 CWOA 1662 CWOB 1675 CWOC 1703 CWOUT 1701 D360 4017 DBLANK 4142 DCPOPJ 1275 DECGET 2044 DECPUT 3671 DEVC 3324 DEVHND 3326 DEVLOD 3306 DEVLST 3300 DEVNO 3325 DEVQOT 3303 DEVTAB 3517 DGETCH 4053 DISCHR 4147 DISCR 4050 DISLF 4165 DISPLY 4545 DIV1 3434 DLIS 3234 DLOOP 4104 DLPTST 4105 DM 0003 DM20 4120 DNN1 0746 DNN2 0765 DNN3 0612 DOPR 1336 DOTBK 3444 DQ 0002 DR 0001 DRAD 4554 DSETUP 4036 DSKNAM 3302 DSPLAY 4003 DTAB 3242 DTAB2 3251 DTABB 4132 DTABLE 4200 DTOK 3212 DV1 3647 DV7200 3660 DVIMQL 3644 DVT1 0064 DX 0014 EASYRO 1426 EBAK 3413 EBERR 3353 EBFLG 0070 ECDISM 3611 EDFLAG 4571 EDSUB 3564 EFLST 4522 EFTAB 3142 EG1 3410 EG2 3430 EGCNT 3427 EHFLAG 4572 EHSUB 3564 EKILL 3321 EMERG 0364 ENDFIL 3235 ENTRCE 4547 EOFLAG 4573 EOSUB 3564 EOVRLC 0042 EOVRLY 3202 ERBASE 3453 ERL2 3225 ERLIST 3407 ERLOOP 3210 ERLST 3410 ERPTAB 3570 ERR 4514 ERR01 0011 ERR02 0211 ERR03 2506 ERR04 0517 ERR05 0675 ERR06 1024 ERR07 0061 ERR08 3232 ERR09 3505 ERR10 3524 ERR11 4634 ERR12 2313 ERR13 2453 ERR14 3731 ERR15 2165 ERR16 3357 ERR17 1672 ERR18 2024 ERR19 3211 ERR20 3460 ERR21 3461 ERR22 4534 ERR23 3452 ERR24 1756 ERR25 1615 ERR26 3061 ERR27 0771 ERR28 3442 ERR29 1004 ERR30 5542 ERR31 1366 ERR32 2033 ERR33 3420 ERR34 0472 ERR35 0772 ERROR 0114 ERRRET 2610 ERRTMP 2632 ERRXX 2600 ERRYY 3205 ERTAB 3405 ESCAPE 2767 ESFLAG 4574 ESKLST 3362 ESKTAB 3415 ESSUB 3564 ET1 4763 ET8 4766 ETFLAG 4575 ETSUB 3276 EU1 2245 EU2 2247 EUFLAG 4576 EUSUB 3260 EXIT 3217 EXITC 3222 EXITGO 3400 EXLOOP 3227 EXPAND 2722 FATALJ 5777 FFFLAG 0036 FITS 3741 FIXLUP 3324 FIXUP 3323 FLCNT 6430 FLN 3342 FLO 6435 FLOO 6415 FLST 1360 FN 1114 FOVRLC 0044 FOVRLY 3204 FS 1117 FTAB 1356 FTO 6436 G16K 5530 GETN 4537 GETNUM 4551 GETQ 4524 GETQX 0422 GETUSR 4507 I1 2124 I2 2101 I3 2061 IBLK 2063 IC 2125 ICRCNT 0075 IN 6200 INCTLW 2166 INCTRL 2061 INER 2164 INF 3551 INHND 0067 INHNDL 3502 INICT 5343 INPCNT 2167 INRCNT 0100 INRSIZ 0012 INXR 0016 IOV 3155 IOVRLC 0040 IOVRLY 3200 IREST 2557 ITRCNT 0033 ITRST 0032 J12K1 5324 J12K2 5361 JSBITS 7746 JTECO 5321 JTECOM 5310 K3200 6433 KMEM 6434 KSFWT 2727 KTYPE 0103 L12K1 0717 L12K2 0754 L16K 5516 L44 3131 LASTC 0106 LFB 1516 LFBLP 1474 LFSTAR 1513 LFTAB 2053 LINOFL 4163 LISTEN 4520 LNEG 0632 LOC 3321 LZ 3444 M 0026 M2000 5543 M3000 5523 M4 4642 M400 6432 M5 5544 M7 3670 MASK 3322 MEMLOC 2000 MEMSIZ 0105 MFROMN 1734 MOVE 5545 MOVEC 5565 MOVEL 5563 MPDL 0034 MQ 0063 MQLDVI 4541 MQMAX 2366 MTHREE 7346 MTWO 7344 N 0027 NACC 1316 NACCLK 1305 NAMCM1 3223 NAMCNT 3347 NAME 0000 NAMEC 3224 NAND 1277 unreferenced NCHK 2024 NCOM 1215 NCOM14 2020 NCOM2 1216 unreferenced NCOMCL 1326 ND 1322 NDIV 1317 NEGCHR 3310 NERR 0061 NEWERR 6437 NFLG 0024 NGET 3073 NGET1 3074 NGET2 3100 NGO 3216 unreferenced NGOM1 3215 NIOR 1301 NLINES 1717 NLINK 0030 NMBR 1200 NMBR2 1202 NMPY 1306 NMRBAS 1212 NMT 0020 NNEW 1214 NNEW13 4772 NOCON 2243 NOFF 1631 NOPR 1217 NORMAL 3600 NOTA12 5227 NOTRCE 4546 NOWRIT 4502 NOYANK 1652 NP 1337 NRET 1227 NULLOP 1304 NUMGET 0643 NUMLNS 0013 NWRUSR 4513 NXTBUF 4470 O2 3732 O3 3740 OBLK 3712 OCMDLN 0101 OCNT 3605 OCRCNT 0076 ODEV 0065 OERR 3726 OMAXLN 3736 OPEN 3205 OPNERR 3350 OPSUCC 3344 OPTR1 3735 OPTR2 0077 ORAD 4550 OSCANP 0041 OSDCBT 7760 OSETP 3716 OSHNDT 7647 OUCTRL 3710 OUHNDL 3453 OUNAM 3770 OUT 5200 OUTBEL 2262 OUTCC 2205 OUTCMX 2235 OUTCOM 2237 OUTCR 2222 OUTDEV 3454 OUTFF 2225 OUTHND 0066 OUTHT 2231 OUTHTX 2230 OUTLF 2216 OUTLF1 2217 OUTPUT 4522 OUTR 0122 OUTSIZ 3737 OUTVT 2224 OVERLY 2525 OVERR 5532 OVINIT 5460 OVREAD 2537 OVRLAY 4550 P 0044 PDLBEG 5140 PDLEND 5177 PDLP 0042 PDP12 5446 PECDSM 3356 unreferenced PERD 3256 PERDSW 3346 PLUSND 0733 POKE 1640 POP 4510 POPITR 3526 POPJ 5512 POPJXX 0476 POPJXY 0500 POPK 2562 POPL 4513 POPXX 0503 POUTHT 2547 PTCH 3546 PTECO1 5323 PTR 3356 PUSH 4507 PUSHJ 4511 PUSHJY 0521 PUSHL 4513 PUSHLP 0542 PUSHLX 0530 PUSHXX 0511 PUSHYX 0545 PUSHYY 0553 PUTSGN 3420 PUTT 4552 Q 0046 Q12MAX 5600 QADJ 2265 QADJDN 2356 QARRAY 4647 QBASE 0072 QCHK 4530 QCMND 0043 QDNN 2340 QDNN1 2342 QDNNF 2354 QFLG 0025 QKNT 2422 QLENGT 0073 QLIMIT 0367 QMAX 3720 QNMBR 0071 QOVER 2367 QOVERL 2373 QOVRLC 0041 QOVRLY 3201 QP 0050 QPNTR 4757 QPTR 0074 QPTR2 3046 QPUT 4534 QPUT12 5151 QPUTS 0400 QREF 4532 QREFER 2477 QREFEX 2514 QSKP 4531 QSUM 4533 QSUMB 2417 QSUML 2411 QSUMR 2400 QTST 2563 QUOTE 0010 QUOTST 4535 QUPL 2321 QZ 0051 R 0047 RADIX 0062 RADTMP 3512 REGEG 3465 REND 0037 REPFLG 1174 RESORT 5516 RESTRA 4454 ROCMND 0234 ROPEN 3500 RSTSW 3317 RT 3632 RUBY 4562 RXR 3457 SAVMQ 1530 SAVTRA 4447 SCAN 4517 SCANP 0040 SCANUP 4543 SCAPE 1532 SCCOMD 1063 SCHAR 0035 SCHCTQ 1103 SCHINV 1034 SCHLST 3664 SCHQUO 1025 SCHSEP 1105 SCHSRT 3615 SCHTAB 1077 SCOPE 5374 SCOPGO 1433 SCOPY 1414 SCPBIT 7726 SCPTAB 1340 SCUPPR 4643 SEARCH 1000 SEMO 3430 SERR 0011 SETCMD 4536 SETO3 3700 SETRAD 3472 SETSKP 3244 SETXPS 4051 SGET 2423 SGET1 2424 SGOVFL 2445 SGTLP 1014 SIXTYP 3400 SKIP 3463 SKIPY 3341 SKPF 3350 SKPLST 3332 SKPRTN 3325 SKPSET 4525 SKPT 3346 SKPTAB 3400 SOFCOR 5327 SORT 4515 SORTA1 1541 SORTA2 1561 SORTA3 1563 SORTB 1533 SPUT 0340 SPY 3340 SQUO 2323 SSTCHR 1021 ST4BTS 0443 STABLE 4400 STBLK 3341 STECO1 2051 unreferenced STECO2 2134 unreferenced STOCD 3415 STOREC 2675 SXR 0015 T0 0203 T0A 0204 T1 0206 T2 0237 T2A 0243 T2M1 0236 T6 0267 T6A 0270 T7 0300 TALTM 0263 TBEL 0202 TCINIT 5211 TCRLF 0256 TCTLU 0246 TCTLUP 0250 TECO 0200 TECO1 0201 TECO35 5200 unreferenced TEMP1 3342 TEMPT 0104 TFGTMP 4460 TFLG 0023 TMP 2542 TPUT 0555 TPUTX 0557 TQMK 0311 TSAVE 3000 TSFWT 0567 TSP9 1461 TSPACE 1454 TSTAR 1453 TSTEDS 4127 TSTSEP 4544 TTY10 1430 TTY40 1451 TWLVEK 5415 TWO 7326 TY 3271 TYCRLF 3040 TYI 2725 TYI1 2726 TYPCTV 2200 TYPE 4521 UPNL 0703 UPOC 2742 UPPERC 4542 VERSN 0005 WASTE 4000 WHERTO 1771 WOPEN 3450 WOW 3333 XER1 4444 XER10 4773 XER11 5021 XER12 5062 XER13 5115 XER14 5140 XER15 5155 XER16 5171 XER17 5204 XER18 5251 XER19 5277 XER2 4466 XER20 5333 XER21 5367 XER22 5414 XER23 5441 XER24 5472 XER25 5510 XER26 5547 XER27 5576 XER28 5671 XER29 5672 XER3 4513 XER30 5731 XER31 6000 XER32 6034 XER33 6056 XER34 6126 XER35 6150 XER36 6245 XER4 4545 XER5 4601 XER6 4633 XER7 4662 XER8 4705 XER9 4745 XERBAS 4400 XLIS 3212 XLUP 3266 XOV 3152 XOVRLC 0043 XOVRLY 3203 XPOS 4001 XR 0017 XSORTA 3370 XTAB 3314 XTYPE 3042 unreferenced XXFLAG 3250 XXNO 3232 XXSUB 3257 XXSUBS 3556 Y7745 5357 Y7777 5360 YANKY 1634 YCHOOP 5366 YCHTEC 5367 YFATAL 5365 YM7 5361 YMOVE 5362 YOUTHT 5355 YOVINI 5363 YPDP12 5370 YPOS 0000 YPOUTH 5356 YSCOPE 5372 YSCPBI 5364 YSKP 2032 unreferenced YT0A 5373 YTWLVE 5371 Z40 3214 Z7 0052 ZCGSG 3434 ZCOUNT 3456 ZDIGIT 3427 ZER2 3423 ZERFLG 3455 ZEROD 3400 ZMAX 7640 ZRON 3167 ZROSPN 3166 ZZ 0045