1 / THE NEW IMPROVED P?S MONITOR 2 6 XLIST ON; IFZERO 1 < 7 LAST EDIT: 12-DEC-1986 18:00:00 CJL 8 9 MUST BE ASSEMBLED WITH '/J' SWITCH SET. 10 11 12 13 14 15 P P P P ? ? ? S S S 8 8 8 16 P P ? ? S S / 8 8 17 P P ? S / 8 8 18 P P P P ? S S S / 8 8 8 19 P ? S / 8 8 20 P S S / 8 8 21 P ? S S S 8 8 8 22 23 24 25 26 27 28 29 THIS SYSTEM IS DEDICATED TO THE DECTAPE VERSION OF THE DEC DISK MONITOR SYSTEM 30 WITHOUT WHICH IT DOES NOW AND ALWAYS HAS RUN. 31 > XLIST ON 32 / EQUATED SYMBOLS. 33 34 ADRLST= 7603 /ZAP ADDRESS LIST IN I/O ROUTINES 35 BATBLK= 0201 /BATCH SYSTEM BLOCK 36 BATCORE=2600 /BATCH CODE ADDRESS 37 BATLEN= 0001 /BATCH SYSTEM LENGTH 38 BATMEM= 7400 /BATCH SYSTEM ADDRESS 39 BATSGA= 3400 /BATCH SYSTEM GENERATION ADDRESS 40 BBLEN= 0043 /LENGTH OF SLURP LOADER WHICH IS THE BOOTSTRAP 41 BCIF= 7746 /SLURP LOADER CIF CDF STARTUP ADDRESS 42 BINADR= 0020 /DEFAULT BINARY SCRATCH AREA (%) 43 BINBLK= 0203 /BLOCK NUMBER OF BIN SYSTEM 44 BINGEN= 4000 /BIN SYSTEM GENERATION ADDRESS 45 BINIT= 0020 /BIN SYSTEM SLURP INITIALIZE ROUTINE 46 BINITLN=0020 /LENGTH OF SLURP INITIALIZE CODE 47 BINIT2= 0031 /INITIALIZE PART TWO 48 BINLEN= 0013 /BINARY LOADER LENGTH (FOR LOADING) 49 BISTRT= 7776 /DEFAULT STARTING ADDRESS IF /I OR /V IN EFFECT 50 BRLGEN= 2^10+4200 /BATCH RECOVERY GENERATION FIELD AND ADDRESS 51 BSGRP= 0003 /(1984-1960)%8 IS BASE GROUP VALUE 52 BSTART= 0200 /STARTING ADDRESS OF BIN SYSTEM 53 BTRLBLK=0115 /BATCH RECOVERY BLOCK 54 BTRLEN= 0005 /TOTAL BATCH RECOVERY LENGTH 55 BZIP= 0000 /LOWEST LOADING ADDRESS IN BIN 56 CALADR= 0020 /EQUATED FROM CONSOLE OVERLAY! 57 CALFLD= 0021 /EQUATED FROM CONSOLE OVERLAY! 58 CATADR= 7000 /USER CATALOG ADDRESS 59 CHANGE= 1600 /STARTING ADDRESS OF CHANGE SYSTEM 60 CHKCNT= 0043 /EQUATED FROM CONSOLE OVERLAY! 61 CHKPTR= 0044 /EQUATED FROM CONSOLE OVERLAY! 62 CHNGBLK=0241 /LOADING BLOCK FOR CHANGE/FIND 63 CHNGLEN=0003 /LENGTH OF CHANGE/FIND 64 CNTLST= 7615 /I/O ZAP ORIGINAL CONTENTS LIST 65 CONINT= 0000 /EQUATED FROM CONSOLE OVERLAY! 66 CONOFF= 0100 /EQUATED FROM CONSOLE OVERLAY! 67 DEVWRD= 0104 /EQUATED FROM CONSOLE OVERLAY! 68 DIR= 0015 /FIRST OF TWO USER DIRECTORY BLOCKS 69 DOLBLK= 0040 /DEFAULT ASCII SCRATCH AREA ($) 70 DSPBLB= 0024 /BLURB DISPLAY ROUTINE IN I/O OVERLAY 71 DUMBLK= 0232 /DUMP SYSTEM BLOCK 72 DUMGEN= 2^10+6000 /DUMP GENERATION FIELD AND ADDRESS 73 DUMLEN= 0007 /DUMP SYSTEM LENGTH 74 DUMSTRT=1400 /DUMP STARTING ADDRESS 75 ERRTRP= 0046 /EQUATED FROM CONSOLE OVERLAY! 76 ESTATUS=0077 /EQUATED FROM CONSOLE OVERLAY! 77 EXHGEN= 1^10+4000 /EXTENDED HANDLER GENERATION FIELD AND ADDRESS 78 EXHRUN= 1^10+6000 /EXTENDED HANDLER INITIAL LOADING FIELD AND ADDRESS 79 EXIGEN= 1^10+3400 /EXTENDED HANDLER INITIALIZE GENERATION FIELD, ADDRESS 80 EXIRUN= 0^10+5400 /EXTENDED HANDLER INITIALIZE LOADING FIELD, ADDRESS 81 EXTCAT= 0067 /EXTENDED CATALOG BLOCK 82 EXTLEN= 0003 /LENGTH OF EXTENDED USER CATALOG 83 FILBEG= 3000 /FILE BUFFER 84 FILBLB= 0023 /BLURB FILL ROUTINE IN I/O OVERLAY 85 FILSIZE=0020 /LENGTH OF USER FILE 86 FIND= 1200 /STARTING ADDRESS OF FIND SYSTEM 87 FNDGEN= 2^10+2000 /FIND/CHANGE GENERATION FIELD AND ADDRESS 88 FUDWRD= 0105 /EQUATED FROM CONSOLE OVERLAY! 89 GET= 0600 /STARTING ADDRESS OF GET SYSTEM 90 HANDBLK=0122 /HANDLER INFORMATION BLOCK 91 HANDMAX=0040 /NUMBER OF BLOCKS ALLOCATED FOR HANDLER IMAGES 92 HBLOCK= 0101 /FIRST INITIALIZATION BLOCK IN EXTENDED SYSTEMS 93 HIDWRD= 7600 /SYSTEM HANDLER ID NUMBER WORD 94 IBLOCK= 0060 /I BLOCK 95 IGEN= 2^10+4000 /I GENERATION FIELD AND ADDRESS 96 INCON= 0031 /EQUATED FROM CONSOLE OVERLAY! 97 INFLAG= 0025 /EQUATED FROM CONSOLE OVERLAY! 98 INTFLGS=0002 /EQUATED FROM CONSOLE OVERLAY! 99 INTLST= 0003 /EQUATED FROM CONSOLE OVERLAY! 100 IOTRAP= 0045 /EQUATED FROM CONSOLE OVERLAY! 101 IOWAIT= 0047 /EQUATED FROM CONSOLE OVERLAY! 102 JMPIC= JMP I . /CURRENT PAGE JUMP INDIRECT DEFINITION 103 KEPRADX=0040 /"KEEP CURRENT RADIX" BIT 104 LCMODE= 0006 /EQUATED FROM CONSOLE OVERLAY! 105 LINFLAG=0030 /EQUATED FROM CONSOLE OVERLAY! 106 LOWBLK= 0201 /LOWEST BLOCK FOR USER CATALOG 107 LPMODE= 0004 /EQUATED FROM CONSOLE OVERLAY! 108 LPTFLAG=0027 /EQUATED FROM CONSOLE OVERLAY! 109 MOVBLB= 0022 /ERROR BLURB MOVE ROUTINE IN I/O OVERLAY 110 NL0001= CLA IAC /SET AC TO ONE 111 NL0002= CLA CLL CML RTL /SET AC TO TWO 112 NL2000= CLA CLL CML RTR /SET AC TO TWO THOUSAND 113 NL3777= CLA CLL CMA RAR /SET AC TO THREE SEVEN SEVEN SEVEN 114 NL4000= CLA CLL CML RAR /SET AC TO FOUR THOUSAND 115 NL5777= CLA CLL CMA RTR /SET AC TO FIVE SEVEN SEVEN SEVEN 116 NL7775= CLA CLL CMA RTL /SET AC TO SEVEN SEVEN SEVEN FIVE 117 NL7776= CLA CLL CMA RAL /SET AC TO SEVEN SEVEN SEVEN SIX 118 NL7777= CLA CMA /SET AC TO SEVEN SEVEN SEVEN SEVEN 119 NOSCAN= 0100 /"DON'T SCAN FILENAMES" BIT 120 ODSTRT= 3000 /ODT STARTING ADDRESS 121 ODTBLK= 0163 /ODT SYSTEM BLOCK 122 ODTGEN= 1^10+0000 /ODT GENERATION FIELD AND ADDRESS 123 ODTLEN= 0016 /ODT SYSTEM LENGTH 124 OUTFLAG=0026 /EQUATED FROM CONSOLE OVERLAY! 125 OUTLPT= 0035 /EQUATED FROM CONSOLE OVERLAY! 126 OUTCON= 0033 /EQUATED FROM CONSOLE OVERLAY! 127 OVID= 0106 /EQUATED FROM CONSOLE OVERLAY! 128 OVRWRD= 0111 /EQUATED FROM CONSOLE OVERLAY! 129 REVISIO="Z&77 /REVISION NUMBER OF MONITOR 130 RUBBLK= 0017 / BLOCK 131 RUBPAGE=7400 /WHERE CODE, ETC. IS LOADED 132 RUNBLK= 0072 /"R" BLOCK NUMBER 133 RUNGEN= 2^10+0000 /"R" COMMAND GENERATION FIELD AND ADDRESS 134 RUNLEN= 0004 /"R" LENGTH 135 SBOOT= 7600 /SYSTEM BOOTSTRAP ADDRESS 136 SBTFUN= 7602 /SYSTEM BOOTSTRAP UNIT WORD 137 SFILES= 7757 /FILE ARGUMENTS PASSED TO SYSTEMS STARTING HERE 138 SLOAD= 7632 /SYSTEM LOADER CALL IS HERE 139 SLPBLK= 0100 /SLURP LOADER BLOCK 140 SLPGEN= 2^10+4400 /SLURP LOADER GENERATION FIELD AND ADDRESS 141 SLUPAGE=BINLEN^200 /SLURP LOADER PAGE IN BIN 142 SOUTFLS=7607 /OUTPUT FILE COUNT 143 SPARM= 7756 /SYSTEM EQUALS PARAMETER ADDRESS 144 START= 0400 /STARTING ADDRESS OF START SYSTEM 145 SWAL= 7604 /PASSED SWITCHES /A-/L 146 SWAPIN= 1200 /ADDRESS TO SWAP CODE INTO 147 SWMX= 7605 /PASSED SWITCHES /M-/X 148 SWY9= 7606 /PASSED SWITCHES /Y-/9 149 SWPLEN= 0004 /PAGE SWAP COUNT FOR EXTENDED COMMAND PROCESSOR 150 SYSCAT= 0063 /SYSTEM CATALOG BLOCK 151 SYSCGEN=2^10+5000 /SYSTEM CATALOGUE GENERATION FIELD AND ADDRESS 152 SYSLEN= 0004 /LENGTH OF SYSTEMS CATALOGUE 153 TCSIZE= 2702 /SIZE OF DEFAULT SYSTEM I/O DEVICE 154 TRAPIO= 1041 /I/O TRAP ENTRY POINT IN HANDLER AUXILIARY CODE 155 TRPBLK= 0113 /I/O TRAP BLOCKS 156 TRPERR= 1200 /I/O ERROR TRAP ENTRY POINT IN AUXILIARY HANDLER CODE 157 TRPGEN= 2^10+1000 /I/O TRAP GENERATION FIELD AND ADDRESS 158 TTY= 0003 /DEVICE CODE OF MONITOR KEYBOARD DEVICE 159 VERSION="8&77 /VERSION NUMBER OF SYSTEM 160 VTMODE= 0005 /EQUATED FROM CONSOLE OVERLAY! 161 WAITIO= 1110 /AUXILIARY HANDLER CODE ENTRY POINT FOR I/O WAIT TRAPS 162 WRITE= 4000 /SYSIO WRITE BIT 163 XCMBLK= 0061 /EXTENDED COMMAND PROCESSOR BLOCK 164 XCMGEN= 2^10+1400 /EXTENDED COMMAND GENERATION FIELD AND ADDRESS 165 XIOMON= 0102 /EQUATED FROM CONSOLE OVERLAY! 166 ZAPLST= 7627 /ZAP LIST FOR ZAPPED ADDRESSES IN HANDLER 167 168 / DEPENDENT DEFINITIONS. 169 170 KEYCODE=TTY^10+6000 /SKELETON KEYBOARD CODE 171 PRTCODE=TTY+1^10+6000 /SKELETON PRINTER CODE 172 KRBIOT= KEYCODE+6 /LOAD AC WITH CHARACTER, CLEAR FLAG, START READER 173 KSFIOT= KEYCODE+1 /SKIP ON KEYBOARD FLAG 174 TFLIOT= PRTCODE+0 /SET TELEPRINTER FLAG 175 TLSIOT= PRTCODE+6 /LOAD PRINTER BUFFER, CLEAR FLAG, START PRINT CYCLE 176 TSFIOT= PRTCODE+1 /SKIP ON TELEPRINTER FLAG 177 / MEMORY LAYOUT OF THE P?S/8 STARTER SYSTEM. 178 179 / BLOCK GENERATION CORE LOADING CORE MAJOR SYSTEM FUNCTION 180 181 / N. A. 06600-07377 N. A. SYSTEM GENERATION ROUTINES 182 / 000 07400-07577 07600-07777 BOOTSTRAP, SYSTEM I/O, ETC. 183 / 001-013 00000-02577 00000-02577 KEYBOARD MONITOR 184 / 014 02600-02777 02600-02777 THE "EDIT" COMMAND 185 / 015-016 01000-01377 07000-07377 USER CATALOG 186 / (03000-03377) 187 / 017 03000-03177 07400-07577 TTY: EDITING FEATURES, ETC. 188 / (03400-03577) 189 / 020-037 N. A. N. A. "%" SCRATCH FILE 190 / 040-057 N. A. N. A. "$" SCRATCH FILE 191 / 060 24000-24177 N. A. /I BLOCK 192 / 061-062 21400-21777 01200-01577 EXTENDED COMMAND PROCESSOR 193 / 063-066 25000-25777 03000-03777 SYSTEMS CATALOG 194 / (01600-02177) 195 / 067-071 01000-01577 04000-04577 EXTENDED USER'S CATALOG 196 / 072-075 20000-20777 04600-05577 "R", "RU" COMMAND PROCESSOR 197 / 076-077 N. A. N. A. RESERVED FOR EXPANSION 198 / 100 24400-24577 02600-02777 SLURP LOADER BLOCK 199 / (07600-07756) 200 / (00031-00050) 201 / 101-102 13400-13777 05400-05777 EXTENDED HANDLER INITIALIZATION 202 / 103-112 14000-15777 16000-17777 EXTENDED HANDLER CODE 203 / 113-114 21000-21377 (RELOCATABLE) I/O HANDLER TRAP BLOCKS 204 / 115 24200-24377 03000-03177 BATCH RECOVERY BLOCK 205 / 116 N. A. 02600-02777 ACTIVE COPY OF BATCH SAVED IN THIS BLOCK 206 / (3200-3377) 207 / 117 N. A. 07400-07577 LAST BATCH BUFFER SAVED IN THIS BLOCK 208 / (3400-3577) 209 / 120 N. A. 07600-07777 SYSTEM I/O, SWITCHES, FILES SAVED HERE 210 / (3600-3777) 211 / 121 N. A. 00000-00177 PAGE ZERO USER SETTINGS SAVED HERE 212 / (4000-4177) 213 / 122 N. A. N. A. RESERVED FOR HANDLER INFORMATION 214 / 123-162 N. A. N. A. RESERVED FOR HANDLERS 215 / 163-200 10000-13377 00000-03377 ODT SYSTEM 216 / 201 03400-03577 07400-07577 BATCH SYSTEM ONCE-ONLY CODE 217 / 202 03600-03777 02600-02777 BATCH CODE 218 / 203-215 04000-06577 00000-02577 BIN/GET/START SYSTEM 219 / 216-231 N. A. N. A. SCRATCH AREA FOR VIRTUAL LOADER 220 / 232-240 26000-27577 00000-01577 DUMP SYSTEM 221 / 241-243 22000-22577 01200-01777 CHANGE/FIND SYSTEM 222 / 244 N. A. N. A. FIRST FREE BLOCK FOR USER CATALOG 223 *0 224 225 IFNZRO . 226 000000 0000 UNIT, 0 /UNIT NUMBER FOR UNITIO; MAY BE CHANGED BY BOOTSTRAP 227 000001 5513 TPTR1, JMP I L7600/[SBOOT] /BOOTSTRAP ON POWER RESTART OR INTERRUPT 228 000002 7700 FNAME, 7700; SETPCS; 0 /DEFAULT FILE NAME; AVAILABLE AT STARTUP TIME 000003 2732 000004 0000 229 230 PSETPCS=.-2 /POINTER FOR STARTUP CORE SIZING ROUTINE 231 232 000005 0003 L3, 3 /USED TO TERMINATE FNAME; MUST BE LESS THAN 0100 233 234 L100, /CONSTANT 0100 235 000006 0100 PTEMP1, TEMP1 /POINTER TO TEMP1 236 000007 7770 TPTR2, -10 /TEMPORARY; INITIALIZED FOR BOOTSTRAP TTY: TIMEOUT 237 238 *10 /DEFINE AUTO-INDEX AREA 239 240 000010 0002 L2, 2 /CONSTANT 0002; MUST BE POSITIVE! 241 000011 7741 L7741, 7741 /CONSTANT 7741 242 000012 7766 L7766, 7766 /CONSTANT 7766 243 000013 7772 L7772, 7772 /CONSTANT 7772 244 000014 7774 L7774, 7774 /CONSTANT 7774 245 000015 7766 RADXSW, -12 /RADIX SWITCH 246 000016 2777 XR1, FILBEG-1 /AUTO-INDEX NUMBER ONE; INITIALIZED FOR STARTUP 247 000017 6777 XR2, CATADR-1 /AUTO-INDEX NUMBER TWO; INITIALIZED FOR STARTUP 248 249 *20 /GET PAST AUTO-INDEX AREA 250 251 IFNZRO 20-. 252 000020 7032 CHAR, VERSION^100+REVISION /INPUT BUFFER; ALSO USED AS A TEMPORARY BY SOME 253 000021 6775 BUFEND, FILBEG+3775 /FILE BUFFER 254 000022 6774 BUFINFO,FILBEG+3774 /POINTERS 255 000023 7377 DIREND, CATADR+377 /POINTER TO DIRECTORY END 256 000024 0000 ECHOSW, 0 /ECHO SWITCH 257 000025 6776 FIZZ1, FILBEG+3776 /FILE LINE NUMBER POINTER 258 000026 0000 GETNDX, .-. /DON'T MOVE THIS UNLESS YOU KNOW WHY 259 000027 6777 FIZZ2, FILBEG+3777 /FILE TEXT POINTER 260 000030 0654 FLIPECH,ECHOFLP /POINTER TO ECHO FLIPPER 261 000031 0000 GETBASE,0 /GET HALFWORD BASE; INITIALIZED FOR SIZE-UP ROUTINE 262 000032 1200 GLINE, XGLINE /GET A LINE OF INPUT ROUTINE 263 000033 2302 INPUT, TTYR /MASTER INPUT POINTER 264 000034 7757 L7757, 7757 /CONSTANT 7757 265 000035 1553 PCMDSUB,CMDSUB /POINTER TO COMMAND SUBROUTINE 266 000036 0000 SLINUM, .-. /STARTING LINE NUMBER 267 000037 0004 UNITIO, 4 /UNIT FIXUP I/O ENTRY; INITIALIZED FOR ONCE-ONLY CODE 268 269 IFNZRO 40-. 270 000040 7770 L7770, 7770 /CLA WITH HARMLESS SKIP (MAYBE) 271 000041 0015 L15, 15 /HARMLESS AND TO PROTECT SKIP 272 000042 1037 TAD UNITIO /STORE CALLING ADDRESS 273 000043 3572 DCA I SSYSIO/[SYSIO] /IN REAL ENTRY POINT 274 000044 2037 ISZ UNITIO /BUMP TO FUNCTION WORD 275 000045 1437 TAD I UNITIO /GET FUNCTION WORD 276 000046 0040 L40, AND L7770/[7770] /NO UNIT BITS 277 L1000, /CONSTANT 1000 278 000047 1000 PR6BIT, TAD UNIT /ADD ON CURRENT UNIT 279 000050 3437 DCA I UNITIO /PUT BACK IN FUNCTION WORD 280 000051 5530 JMP I PRELIO/[SYSIO+1]/NOW DO REAL I/O 281 282 000052 2477 BEGLINE,INPBUF /INPUT BUFFER POINTER 283 000053 0000 EDLIN, .-. /EDIT COMMAND TEMPORARY; USED BY STARTUP ROUTINES 284 000054 2200 NAME, XNAME /POINTER TO NAME ROUTINE 285 000055 2302 PTTYR, TTYR /POINTER TO TTY: INPUT 286 000056 0000 TABCNT, 0 / STOP COUNTER 287 000057 0332 WHATMOR,XWHATMORE /POINTER TO WHATMORE ENTRY 288 289 IFNZRO 60-. 290 000060 2722 PUTNDX, SETPMORE /PUT HALFWORD INDEX; INITIALIZED FOR STARTUP 291 000061 1722 LIMITS, XLIMIT /POINTER TO LIMITS CHECK 292 000062 0257 LINENO, XLINENO /POINTER TO LINE NUMBER ROUTINE 293 000063 0012 L12, 12 /CONSTANT 0012 294 000064 0037 L37, 37 /CONSTANT 0037 295 000065 7756 L7756, 7756 /CONSTANT 7756 296 000066 1102 NAMPRT, XPRTNAM /NAME PRINT ROUTINE 297 000067 7766 OLDRAD, -12 /OLD RADIX 298 000070 0000 OLDUNIT,.-. /OLD UNIT 299 000071 0440 PBEGIN, BEGIN /POINTER TO BEGINNING 300 000072 7632 PSLOAD, SLOAD /POINTER TO SYSTEM LOADER 301 000073 1414 RST, SCMORE /EXTENDED COMMAND OVERLAY ADDRESS; MODIFIED BY BATCH 302 000074 0000 TABSW, 0 / SWITCH 303 000075 0000 TAPREC, .-. /TAPE BLOCK TEMPORARY 304 000076 1056 TUNIT, XTUNIT /POINTER TO :UNIT TEST ROUTINE 305 000077 0000 LOOKSW, 0 /LOOKUP CREATE/COMPLAIN SWITCH; DON'T MOVE THIS 306 IFNZRO 100-. 307 000100 0177 TEMP1, 177 /TEMPORARY; INITIALIZED FOR STARTUP ROUTINES 308 000101 7775 TEMP2, -3 /TEMPORARY; INITIALIZED FOR STARTUP ROUTINES 309 000102 0000 TEMP3, .-. /TEMPORARY 310 000103 0077 L77, TEMP1-1 /PUT THIS AFTER TEMP3 TO TERMINATE 311 000104 0444 GETHAF, XGETHAF /POINTER TO GET A HALFWORD ROUTINE 312 L200, /CONSTANT 0200 313 000105 0200 LNOPRT, XLNOPRT /POINTER TO LINE NUMBER PRINT ROUTINE 314 000106 1131 LNSRCH, XLNSRCH /LINE NUMBER SEARCH ROUTINE 315 000107 2262 PRINT, XPRINT /POINTER TO PRINT ROUTINE 316 000110 0505 TSPACE, XTSPACE /POINTER TO TEST FOR (OR ) 317 000111 0330 WHAT, XWHAT /POINTER TO WHAT MESSAGE PRINTER 318 319 IFNZRO 112-. 320 000112 0031 MESSAGE,GETBASE /MESSAGE PRINT ROUTINE; INITIALIZED FOR STARTUP 321 000113 7600 L7600, 7600 /CLEAR AC WITH CONSTANT 322 000114 3024 DCA ECHOSW /FORCE ECHO ON 323 000115 1112 SCRIB1, TAD MESSAGE /GET POINTER TO STRING 324 000116 3571 DCA I SCRIBE/[XSCRIBE] /MAKE THINGS LOOK LIKE JMS 325 000117 5515 JMP I SCRIB1/[SCRIBE+1] /AND GO TO WORK 326 327 000120 0000 SEQSW, 0 /AUTOMATIC NUMBERING SWITCH 328 000121 0000 SWAPSW, 0 /EXTENDED COMMAND OVERLAY SWAP SWITCH 329 330 IFNZRO 122-. 331 000122 7200 TCNT1, -600 /COUNT TEMPORARY; INITIALIZED FOR STARTUP 332 000123 0000 COLUMN, .-. /COLUMN COUNTER 333 000124 0000 INCHAR, .-. /KEYBOARD INPUT BUFFER 334 000125 1305 PINSERT,INSERT /POINTER TO INSERT ROUTINE 335 000126 1201 PLRST, XGLINE+1 /POINTER TO GLINE RESTART 336 000127 0341 PMOVE, MOVE /POINTER TO MOVE ROUTINE 337 000130 7641 PRELIO, SYSIO+1 /FIRST REAL INSTRUCTION WITHIN I/O ROUTINES 338 000131 0000 PUTBASE,.-. /PUT HALFWORD BASE ADDRESS 339 000132 0360 PUTHAF, XPUTHAF /PUT A HALFWORD ROUTINE 340 000133 0000 TCNT2, .-. /COUNT TEMPORARY 341 342 000134 7771 NEWCAT, -7 /NEW CATALOG ROUTINE; INITIALIZED FOR STARTUP 343 000135 4476 JMS I TUNIT/[XTUNIT] /TEST FOR :UNIT 344 000136 7740 L7740, SMA SZA CLA /NONE FOUND 345 000137 4565 JMS I PLODCAT/[LODCAT] /:UNIT FOUND, GET A NEW CATALOG LOADED 346 000140 5534 JMP I NEWCAT /RETURN 347 348 000141 0000 RESET, .-. /RESET ROUTINE FOR CERTAIN CONTROL CHARACTERS 349 000142 3024 DCA ECHOSW /FORCE ECHO ON 350 000143 3120 DCA SEQSW /FORCE SEQUENCE MODE OFF 351 000144 4547 JMS I RESMORE /DO ANY ADDITIONAL STUFF 352 353 000145 0000 RESEND, .-. /NORMAL RESET ENDING ROUTINE 354 000146 5541 JMP I RESET /RETURN TO ORIGINAL CALLER 355 356 000147 0145 RESMORE,RESEND /**** EDIT MODE **** EDCANCEL 357 000150 7000 CATCORE,CATADR /CATALOG POINTER 358 000151 0000 DOLLSW, 0 /"$" FILE STATUS WORD; 1=WRITE $ 359 000152 7576 LINLEN, INPBUF&177+7600^2 /INPUT BUFFER LENGTH IN CHARACTERS 360 000153 0000 LNO, .-. /LINE NUMBER TEMPORARY 361 000154 0667 LOOKUP, XLOOKUP /POINTER TO LOOKUP ROUTINE 362 000155 0000 LOWLIM, .-. /LOWER LIMIT 363 000156 0011 L11, 11 /CONSTANT 0011 364 000157 0006 L6, 6 /CONSTANT 0006 365 000160 7761 L7761, 7761 /CONSTANT 7761 366 000161 1156 PBUTIO, BUTIO /POINTER TO BOOTSTRAP UNIT-ORIENTED I/O ROUTINES 367 000162 1221 PCHLOOP,CHLOOP /POINTER TO CHLOOP 368 000163 2400 PCTRLPR,CTRLPRT /POINTER TO CONTROL-CHARACTER PRINT ROUTINE 369 000164 0602 PFILNAM,FILNAME /POINTER TO FILENAME ROUTINE 370 000165 0461 PLODCAT,LODCAT /LOAD A NEW CATALOG ROUTINE 371 000166 0056 PROMPT, ".&177 /PROMPT CHARACTER 372 000167 7602 PSBTFUN,SBTFUN /POINTER TO BOOTSTRAP UNIT WORD 373 000170 7611 PSCRSIZ,SCRSIZE /POINTER TO CORE SIZE WORD 374 000171 1111 SCRIBE, XSCRIBE /POINTER TO SCRIBE ROUTINE 375 000172 7640 SSYSIO, SYSIO /SYSTEM I/O ENTRY POINT 376 000173 0000 UPLIM, .-. /UPPER LIMIT 377 000174 0010 L10, 10 /CONSTANT 0010 378 379 000175 0000 ZBLOCK 177-. /EMPTY SPACE 000176 0000 380 381 IFNZRO 177-. 382 000177 0007 L7, 7 /CONSTANT 0007 383 IFNZRO 200-. 384 000200 5657 XLNOPRT,JMP I XLINENO /FOR GENASYS 385 000201 3257 DCA XLINENO /SAVE NUMBER 386 000202 1052 TAD BEGLINE/[INPBUF]/POINT TO THE 387 000203 3131 DCA PUTBAS /INPUT BUFFER 388 000204 3060 L60I, DCA PUTNDX /CLEAR OUTPUT INDEX 389 000205 7346 NL7775 /INITIALIZE COUNT TO 390 000206 3037 DCA UNITIO /PRINT FOUR DIGITS 391 000207 3476 DIVLUP, DCA I TUNIT/[XTUNIT] /ZERO QUOTIENT 392 000210 1037 TAD UNITIO /COPY THE 393 000211 3100 DCA TEMP1 /COUNT 394 000212 7240 NL7777 /ASSUME RADIX^0 395 000213 3315 DIVLP2, DCA TSTINT /SAVE IT 396 000214 1015 TAD RADXSW /\ 397 000215 3134 DCA NEWCAT / \ 398 000216 1315 TAD TSTINT / >MULTIPLY BY RADIX 399 000217 2134 ISZ NEWCAT / / 400 000220 5216 JMP .-2 // 401 000221 2100 ISZ TEMP1 /RAISE TO A HIGHER POWER? 402 000222 5213 JMP DIVLP2 /SEE IF WE RAISE AGAIN 403 000223 3315 DCA TSTINT /SET DIVISOR 404 000224 5227 JMP .+3 /JUMP INTO IT 405 406 000225 3257 PRTDIG, DCA XLINENO /CLEAR OR SAVE REMAINDER 407 000226 2476 ISZ I TUNIT/[XTUNIT] /BUMP QUOTIENT 408 000227 1315 TAD TSTINT /SUBTRACT A POWER 409 000230 7100 CLL /CLEAR LINK FOR TEST 410 000231 1257 TAD XLINENO /ADD ON REMAINDER 411 000232 7430 SZL /SKIP IF IT UNDERFLOWED 412 000233 5225 JMP PRTDIG /GO DO IT AGAIN 413 000234 7720 MNUM, -"0!200 /CONSTANT 7720; THIS CLEARS THE AC 414 000235 7700 L7700A, 7700 /CONSTANT 7700; THIS CAN'T SKIP 415 000236 1476 TAD I TUNIT/[XTUNIT] /GET QUOTIENT 416 000237 7440 SZA /TEST FOR LEADING ZEROES 417 000240 5244 JMP .+4 /JUMP IF SIGNIFICANT DIGIT 418 000241 1046 ZROFIL, TAD L40/[" &177] /\ 419 000242 4525 JMS I PINSERT/[INSERT]/ >BLANK LEADING ZEROS 420 000243 5247 JMP .+4 // 421 422 000244 1204 TAD L60I/("0&177) /MAKE IT ASCII 423 000245 4525 JMS I PINSERT/[INSERT]/NOW INSERT INTO BUFFER 424 000246 7330 NL4000 /FORCE SIGNIFICANCE 425 000247 2037 ISZ UNITIO /ANY DIGITS LEFT? 426 000250 5207 JMP DIVLUP /YES...GO GET EM 427 000251 1257 TAD XLINENO /GET LAST DIGIT 428 000252 1204 TAD L60I/("0&177) /MAKE IT ASCII 429 000253 4525 JMS I PINSERT/[INSERT]/PUT IT IN 430 000254 1064 TAD L37/[37] /GET A 431 000255 4525 JMS I PINSERT/[INSERT]/INSERT AND PRINT 432 000256 5600 JMP I XLNOPRT /RETURN 433 000257 6600 XLINENO,GENASYS /INITIALIZED FOR GENASYS PURPOSES ONLY 434 000260 4510 JMS I TSPACE/[XTSPACE]/THROW AWAY ANY BLANKS 435 000261 4315 JMS TSTINT /GO FIND A DIGIT 436 000262 5657 JMP I XLINENO /NONE FOUND JUST RETURN 437 000263 3200 LINUM1, DCA XLNOPRT /SAVE IT 438 000264 2026 ISZ GETNDX /BUMP INDEX 439 000265 4315 JMS TSTINT /TRY TO FIND ANOTHER 440 000266 5304 JMP LINUM2 /NO CAN DO 441 000267 3100 DCA TEMP1 /SAVE TEMPORARILY 442 000270 1015 TAD RADXSW /SETUP TO MULTIPLY 443 000271 3037 DCA UNITIO /BY RADIX 444 000272 7100 CLL /CLEAR MAGIC LINK 445 000273 1200 TAD XLNOPRT /\ 446 000274 7430 SZL / \ 447 000275 5511 JMP I WHAT/[XWHAT] / >MULTIPLY BY RADIX AND TEST FOR OVERFLOW 448 000276 2037 ISZ UNITIO / / 449 000277 5273 JMP .-4 // 450 000300 1100 TAD TEMP1 /ADD DIGIT 451 000301 7420 SNL /TEST FOR OVERFLOW 452 000302 5263 JMP LINUM1 /IF NONE THEN GET NEXT DIGIT 453 000303 5511 JMP I WHAT/[XWHAT] /ERROR IF OVERFLOWED 454 000304 7240 LINUM2, NL7777 /INDICATE ONLY ONCE ALLOWED 455 000305 4510 JMS I TSPACE/[XTSPACE]/IS CHARACTER A OR ? 456 000306 1200 TAD XLNOPRT /GET NUMBER 457 000307 7040 CMA /TEST FOR 7777 458 000310 7450 SNA /SKIP IF NOT 459 000311 5511 JMP I WHAT/[XWHAT] /ERROR IF IT IS 460 000312 7160 STL CMA /RESTORE NUMBER, SET LINK=1 461 000313 2257 ISZ XLINENO /BUMP RETURN ADDRESSS TO DO A 462 000314 5657 JMP I XLINENO /SKIP RETURN 463 464 000315 0000 TSTINT, .-. /TEST IF INTEGER 465 000316 4504 JMS I GETHAF/[XGETHAF]/GET THE CHARACTER 466 000317 1234 TAD MNUM/(-"0!200) /REMOVE ZONE BITS 467 000320 7120 STL /INITIALIZE TEST 468 000321 1015 TAD RADXSW /COMPARE TO CURRENT LIMIT 469 000322 7620 SNL CLA /SKIP IF LEGAL 470 000323 5715 JMP I TSTINT /FAIL RETURN 471 000324 4504 JMS I GETHAF/[XGETHAF]/GET THE CHARACTER BACK 472 000325 1234 TAD MNUM/(-"0!200) /WITHOUT ASCII ZONE BITS 473 000326 2315 ISZ TSTINT /BUMP FOR 474 000327 5715 JMP I TSTINT /SKIP RETURN 475 / COMES HERE ON ERROR. 476 477 000330 4112 XWHAT, JMS MESSAGE /TELL THEM 478 000331 2415 WHATMG /THEY GOOFED 479 000332 5471 XWHATMO,JMP I PBEGIN/[BEGIN] /RESTART 480 000333 5513 JMP I L7600/[SBOOT] /GETS HERE IF ERRORS SHOULD BOOTSTRAP 481 482 000334 4561 RUNGO, JMS I PBUTIO/[BUTIO] /READ IN SYSTEM'S EXTENDED COMMAND OVERLAY 483 000335 1200 SWAPIN /START LOADING HERE 484 000336 0400 SWPLEN^100 /UNIT BITS WILL BE FILLED IN 485 000337 0061 XCMBLK /EXTENDED COMMAND RESIDES ON THIS BLOCK 486 000340 5735 JMP I .-3/(SWAPIN) /GO START IT UP 487 488 000341 7536 MOVE, TRYNXT /MOVE ROUTINE; INITIALIZED FOR STARTUP 489 000342 3122 DCA TCNT1 /SAVE NUMBER OF WORDS TO MOVE 490 000343 7240 NL7777 /\ 491 000344 1741 TAD I MOVE / \SETUP AUTO-INDEXED 492 000345 2341 ISZ MOVE / /"FROM" POINTER 493 000346 3016 DCA XR1 // 494 000347 7360 NL7777 STL /\ 495 000350 1741 TAD I MOVE / \SETUP AUTO-INDEXED 496 000351 2341 ISZ MOVE / /"TO" POINTER 497 000352 3017 DCA XR2 // 498 000353 1416 MONSTRT,TAD I XR1 /FETCH 499 000354 3417 DCA I XR2 /STORE 500 000355 2122 ISZ TCNT1 /TEST 501 000356 5353 JMP .-3 /LOOP 502 000357 5741 JMP I MOVE /RETURN WITH CLEAR LINK 503 504 000360 0000 XPUTHAF,.-. /PUT A HALF-WORD ROUTINE 505 000361 3020 DCA CHAR /SAVE THE PASSED VALUE 506 000362 1060 TAD PUTNDX /GET HALF-WORD INDEX 507 000363 7110 CLL RAR /SHIFT WHICH HALF BIT INTO LINK 508 000364 1131 TAD PUTBASE /ADD BASE TO INDEX/2 509 000365 3341 DCA MOVE /SAVE POINTER 510 000366 1741 TAD I MOVE /GET BOTH CURRENT HALF-WORDS 511 000367 0235 AND L7700A/(7700) /RETAIN EVEN HALF IN CASE WE NEED IT 512 000370 1020 TAD CHAR /PUT LATEST INTO LOW-ORDER HALF 513 000371 7430 SZL /SKIP IF EVEN HALF BEING STORED 514 000372 5376 JMP .+4 /ELSE LEAVE IT ALONE 515 000373 7126 STL RTL;STL RTL;STL RTL /SHIFT LEFT WITH GARBAGE 000374 7126 000375 7126 516 000376 3741 DCA I MOVE /STORE BACK 517 000377 5760 JMP I XPUTHAF /RETURN 518 PAGE 519 520 000400 1224 NEWBUF, TAD BUFBEG/(FILBEG) /\ 521 000401 3425 DCA I FIZZ1/[FILBEG+3776] / \RESET THE TWO 522 000402 1022 TAD BUFINFO/[FILBEG+3774] / /FILE POINTERS 523 000403 3427 DCA I FIZZ2/[FILBEG+3777] // 524 000404 1224 TAD BUFBEG/(FILBEG) /\ 525 000405 3422 DCA I BUFINFO/[FILBEG+3774] / \CREATE AN INITIAL LINE 526 000406 7240 NL7777 / /INFORMATION ENTRY 527 000407 3421 DCA I BUFEND/[FILBEG+3775] // 528 000410 4267 JMS CLEAR /CLEAR BUFFER 529 000411 1177 PLRTN, TAD L7/["G&37] /DING-DONG 530 000412 4507 JMS I PRINT/[XPRINT] /AVON CALLING 531 000413 5471 JMP I PBEGIN/[BEGIN] /BEGIN TO DO SOME WORK 532 533 000414 4504 SCRATCH,JMS I GETHAF/[XGETHAF] /GET NEXT CHARACTER 534 000415 7650 SNA CLA /SKIP IF NOT 535 000416 5200 JMP NEWBUF /DO WHOLE SCRATCH IF NO ARGUMENTS 536 000417 4461 JMS I LIMITS/[XLIMIT] /LOOK FOR VALID LIMITS 537 000420 5511 JMP I WHAT/[XWHAT] /FORGET IT 538 000421 4321 JMS REMOVE /DELETE SPECIFIED LINE OR SECTION 539 000422 5211 JMP PLRTN /GO RING THE AND KEEP GOING 540 541 / COMES HERE IF MONITOR WAS SWAPPED OUT FOR EXTENDED EXECUTION PROCESSOR. 542 543 000423 1070 SWAPIT, TAD OLDUNIT /RESTORE 544 000424 3000 BUFBEG, DCA UNIT /TAPE UNIT 545 000425 1067 TAD OLDRAD /RESTORE 546 000426 3015 DCA RADXSW /RADIX 547 000427 4561 JMS I PBUTIO/[BUTIO] /\ 548 000430 1200 SWAPIN / \RESTORE SWAPPED 549 000431 0400 SWPLEN^100 / /PART OF MONITOR 550 000432 0006 SWAPIN%200+1 // 551 000433 3121 DCA SWAPSW /CLEAR SWAP SWITCH 552 000434 7410 SKP /DON'T TEST FOR UNIT AGAIN 553 000435 4476 SYS, JMS I TUNIT/[XTUNIT] /TEST FOR ":UNIT" 554 000436 7000 NOP /DON'T CARE 555 000437 4565 JMS I PLODCAT/[LODCAT] /LOAD IN NEW CATALOG 556 000440 1121 BEGIN, TAD SWAPSW /IS MONITOR SWAPPED OUT? 557 000441 7640 SZA CLA /SKIP IF NOT 558 000442 5223 JMP SWAPIT /JUMP IF SO 559 000443 5776 JMP I PBEGN0/(BEGIN0) /CONTINUE THERE 560 000444 0000 XGETHAF,.-. /GET A HALF-WORD ROUTINE 561 000445 1026 TAD GETNDX /GET HALF-WORD INDEX 562 000446 7110 CLL RAR /SHIFT WHICH HALF BIT INTO LINK 563 000447 1031 TAD GETBASE /ADD BASE TO INDEX/2 564 000450 3261 DCA LODCAT /SAVE POINTER 565 000451 1661 TAD I LODCAT /GET BOTH HALVES 566 000452 7430 SZL /SKIP IF EVEN HALF WANTED 567 000453 5257 JMP .+4 /ELSE LEAVE IT ALONE 568 000454 7012 RTR;RTR;RTR /GET EVEN HALF 000455 7012 000456 7012 569 000457 0103 AND L77/[77] /JUST SIX BITS 570 000460 5644 JMP I XGETHAF /RETURN 571 572 000461 0000 LODCAT, .-. /LOAD A CATALOG ROUTINE 573 000462 4037 JMS UNITIO /\ 574 000463 7000 CATADR / \READ IN USERS CATALOG 575 000464 0200 2^100 / /INTO CATALOG AREA 576 000465 0015 DIR // 577 000466 5661 JMP I LODCAT /RETURN 578 579 000467 0000 CLEAR, .-. /CLEAR CORE ROUTINE 580 000470 1427 TAD I FIZZ2/[FILBEG+3777] /\ 581 000471 7041 CIA / \ 582 000472 1425 TAD I FIZZ1/[FILBEG+3776] / \COMPUTE AND TEST LENGTH 583 000473 7450 SNA / /OF UNUSED SECTION 584 000474 5667 JMP I CLEAR / / 585 000475 3122 DCA TCNT1 // 586 000476 7240 NL7777 /\ 587 000477 1425 TAD I FIZZ1/[FILBEG+3776] / >SETUP POINTER 588 000500 3016 DCA XR1 // 589 000501 3416 DCA I XR1 /\ 590 000502 2122 ISZ TCNT1 / >CLEAR IT 591 000503 5301 JMP .-2 // 592 000504 5667 JMP I CLEAR /RETURN 593 594 IFNZRO .&7600-400 595 000505 7777 XTSPACE,7777 /CHECK FOR OR ; CHECKED BY BATCH 596 000506 3335 DCA REMOVP /SAVE PASSED COUNT 597 000507 4504 JMS I GETHAF/[XGETHAF] /GET NEXT CHARACTER 598 000510 1136 TAD L7740/[-" !200] /IS IT A ? 599 000511 7440 SZA /SKIP IF IT IS 600 000512 7001 IAC /IS IT ? 601 000513 7640 SZA CLA /SKIP IF OR 602 000514 5705 JMP I XTSPACE /RETURN 603 000515 2026 ISZ GETNDX /THROW IT AWAY 604 000516 2335 ISZ REMOVP /DONE ENOUGH? 605 000517 5307 JMP XTSPACE+2 /NO, GO BACK 606 000520 5705 JMP I XTSPACE /RETURN 607 000521 0000 REMOVE, .-. /REMOVE A LINE ROUTINE 608 000522 7344 NL7776 /\ 609 000523 1173 TAD UPLIM / >POINTER TO LINE INFORMATION AFTER UPPER LIMIT 610 000524 3001 DCA TPTR1 // 611 000525 1401 TAD I TPTR1 /\ 612 000526 3335 DCA REMOVP / \SET UP POINTERS TO "FROM" 613 000527 1555 TAD I LOWLIM / /AND "TO" POINTERS 614 000530 3336 DCA REMOVP+1 // 615 000531 1425 TAD I FIZZ1/[FILBEG+3776] /\ 616 000532 7040 CMA / >COMPUTE LENGTH OF MOVE 617 000533 1401 TAD I TPTR1 // 618 000534 4527 JMS I PMOVE/[MOVE] /\ 619 000535 0000 REMOVP, .-. / >MOVE THE TEXT DOWN 620 000536 0000 .-. // 621 000537 1017 TAD XR2 /RESET FILES NEXT 622 000540 3425 DCA I FIZZ1/[FILBEG+3776] /LINE POINTER 623 000541 1173 TAD UPLIM /\ 624 000542 7041 CIA / \ 625 000543 1427 TAD I FIZZ2/[FILBEG+3777] / >LINE INFORMATION MOVE COUNT 626 000544 7130 STL RAR / / 627 000545 3122 DCA TCNT1 // 628 000546 1401 TAD I TPTR1 /\ 629 000547 7041 CIA / \COMPUTE RELOCATION FACTOR 630 000550 1555 TAD I LOWLIM / /FOR INFORMATION WORDS 631 000551 3100 DCA TEMP1 // 632 000552 1401 REMOV1, TAD I TPTR1 /FETCH POINTER TO LINE 633 000553 1100 TAD TEMP1 /ADD RELOCATION FACTOR 634 000554 3555 DCA I LOWLIM /RESTORE POINTER TO LINE 635 000555 2001 ISZ TPTR1 /BUMP "FROM" POINTER 636 000556 2155 ISZ LOWLIM /BUMP "TO" POINTER 637 000557 1401 TAD I TPTR1 /FETCH LINE NUMBER 638 000560 3555 DCA I LOWLIM /RESTORE LINE NUMBER 639 000561 7346 NL7775 /\ 640 000562 1001 TAD TPTR1 / >ADJUST "FROM" POINTER 641 000563 3001 DCA TPTR1 // 642 000564 7346 NL7775 /\ 643 000565 1155 TAD LOWLIM / >ADJUST "TO" POINTER 644 000566 3155 DCA LOWLIM // 645 000567 2122 ISZ TCNT1 /TEST FOR COMPLETION AND 646 000570 5352 JMP REMOV1 /JUMP BACK 647 000571 7326 NL0002 /\ 648 000572 1155 TAD LOWLIM / >RESET FILES NEXT INFORMATION POINTER 649 000573 3427 DCA I FIZZ2/[FILBEG+3777] // 650 000574 4267 JMS CLEAR /CLEAR UNUSED SECTION 651 000575 5721 JMP I REMOVE /RETURN 652 653 000576 2000 PBEGN0, BEGIN0 /POINTER TO BEGIN0 654 PAGE 655 656 000600 7402 HALT, HLT /HALT FOR NOW 657 000601 5471 JMP I PBEGIN/[BEGIN] /CONTINUE THERE 658 659 000602 0000 FILNAME,.-. /LOCATE FILE NAME ROUTINE 660 000603 3077 DCA LOOKSW /SET LOOK SWITCH 661 000604 4454 JMS I NAME/[XNAME] /IS THERE A NAME? 662 000605 5222 JMP TRYDOL /NO BUT IT MIGHT BE "$" 663 000606 4134 JMS NEWCAT /READ NEW CATALOG IF NECESSARY 664 000607 7346 NL7775 /SET UP FOR THREE WORDS 665 000610 4527 JMS I PMOVE/[MOVE] /MOVE THEM 666 000611 0100 TEMP1 /FROM HERE 667 000612 0002 FNAME /TO HERE 668 000613 1005 TAD L3/[3] /SET BUMP FACTOR 669 000614 3122 DCA TCNT1 /TO THREE WORDS 670 000615 1423 TAD I DIREND/[CATADR+377] /FIND OUT WHERE USERS 671 000616 3075 DCA TAPREC /FIRST FILE BEGINS 672 000617 1150 TAD CATCORE/[CATADR] /POINT TO USER CATALOG 673 000620 4554 JMS I LOOKUP/[XLOOKUP] /TRY TO FIND NAME 674 000621 5602 JMP I FILNAME /RETURN 675 676 000622 4504 TRYDOL, JMS I GETHAF/[XGETHAF] /GET THE CHARACTER 677 000623 1376 TAD L7734/(-"$!200) /COMPARE TO "$" 678 000624 7110 CLL RAR /MAKE "$" OR "%" COMPARE 679 000625 7640 SZA CLA /SKIP IF EITHER 680 000626 5242 JMP TRYOLD /NOT EITHER, TRY DEFAULT NAME 681 000627 7430 SZL /SKIP IF "$" 682 000630 1377 TAD L7760/(20-40) /ADD ON -20 IF "%" 683 000631 1046 TAD L40/[40] /ADD ON 40 FOR "$" 684 000632 3507 DCA I PRINT/[XPRINT] /SAVE IT FOR LATER 685 000633 2026 ISZ GETNDX /BUMP TO NEXT CHARACTER 686 000634 4134 JMS NEWCAT /READ NEW CATALOG IF NECESSARY 687 000635 4510 JMS I TSPACE/[XTSPACE] /CHECK FOR A SPACE 688 000636 1335 TAD L7700B/("?^100) /DESTROY THE 689 000637 3002 DCA FNAME /DEFAULT NAME 690 000640 1507 TAD I PRINT/[XPRINT] /FETCH BLOCK NUMBER OF "$" OR "%" FILE 691 000641 5602 JMP I FILNAME /RETURN 692 693 000642 4504 TRYOLD, JMS I GETHAF/[XGETHAF] /GET THE CHARACTER AGAIN 694 000643 7440 SZA /SKIP IF 695 000644 1375 TAD L7706A/(-":!200) /ELSE TRY ":" 696 000645 7640 SZA CLA /SKIP IF EITHER 697 000646 5511 JMP I WHAT/[XWHAT] /ELSE COMPLAIN 698 000647 7346 NL7775 /SET UP TO MOVE THREE WORDS 699 000650 4527 JMS I PMOVE/[MOVE] /MOVE THEM 700 000651 0002 FNAME /FROM HERE 701 000652 0100 TEMP1 /TO HERE 702 000653 5206 JMP FILNAME+4 /TRY AGAIN 703 000654 0000 ECHOFLP,.-. /ECHO FLIPPING ROUTINE 704 000655 7330 NL4000 /\ 705 000656 1024 TAD ECHOSW / >INVERT ECHO STATUS 706 000657 3024 DCA ECHOSW // 707 000660 5654 JMP I ECHOFLP /RETURN 708 709 000661 0000 SAVCAT, .-. /SAVE A CATALOG ROUTINE 710 000662 4037 JMS UNITIO /\ 711 000663 7000 CATADR / \WRITE USER'S CATALOG 712 000664 4200 2^100+WRITE / /BACK ONTO HIS TAPE 713 000665 0015 DIR // 714 000666 5661 JMP I SAVCAT /RETURN 715 716 000667 0000 XLOOKUP,.-. /LOOKUP ROUTINE 717 000670 3001 DCA TPTR1 /SAVE POINTER TO CATALOG 718 000671 1401 TAD I TPTR1 /\ 719 000672 7650 SNA CLA / >TEST FOR END OF CATALOG 720 000673 5322 JMP NOTFND // 721 000674 7240 NL7777 /\ 722 000675 1001 TAD TPTR1 / >SETUP AUTO-INDEXED POINTER TO FILE ENTRY 723 000676 3016 DCA XR1 // 724 000677 1103 TAD L77/[TEMP1-1] /SETUP AUTO-INDEXED 725 000700 3017 DCA XR2 /POINTER TO NAME 726 000701 7346 NL7775 /SET NAME LENGTH 727 000702 3133 DCA TCNT2 /OF THREE WORDS 728 000703 1416 TAD I XR1 /GET FILE WORD 729 000704 7041 CIA /INVERT FOR TEST 730 000705 1417 TAD I XR2 /COMPARE TO NAME WORD 731 000706 7640 SZA CLA /SKIP IF IT MATCHES 732 000707 5314 JMP NOTHIS /JUMP IF NOT 733 000710 2133 ISZ TCNT2 /DONE ALL YET? 734 000711 5303 JMP .-6 /NO, KEEP GOING 735 000712 1075 TAD TAPREC /GET CORRESPONDING RECORD 736 000713 5667 JMP I XLOOKUP /RETURN 737 738 000714 1075 NOTHIS, TAD TAPREC /GET CURRENT RECORD 739 000715 1374 TAD L20/(FILSIZE) /UPDATE TO NEXT FILE 740 000716 3075 DCA TAPREC /STORE BACK 741 000717 1001 TAD TPTR1 /GET CURRENT SEARCH POINTER 742 000720 1122 TAD TCNT1 /ADD ON BUMP FACTOR 743 000721 5270 JMP XLOOKUP+1 /GO DO IT AGAIN 744 000722 1100 NOTFND, TAD TEMP1 /\ 745 000723 1006 TAD L100/[-"?^100] / >CHECK FOR ASSUMED DEFAULT NAME 746 000724 7640 SZA CLA // 747 000725 2077 ISZ LOOKSW /DO WE CREATE AN ENTRY? 748 000726 5361 JMP LOOKNG /NO... 749 000727 1423 TAD I DIREND/[CATADR+377] /\ 750 000730 3075 DCA TAPREC / >INITIALIZE POINTERS 751 000731 1150 TAD CATCORE/[CATADR] // 752 000732 3355 LOOKMT, DCA LOOKPT /RESTORE POINTER 753 000733 1355 TAD LOOKPT /CHECK 754 000734 1772 TAD I CATTOP/(CATADR+375) /FOR 755 000735 7700 L7700B, SMA CLA /FULL 756 000736 5367 JMP FULL /CATALOG 757 000737 1755 TAD I LOOKPT /\ 758 000740 7440 SZA / \ 759 000741 7040 CMA / >BRANCH ON OR HOLE 760 000742 7650 SNA CLA / / 761 000743 5352 JMP SAVNAME // 762 000744 1075 TAD TAPREC /\ 763 000745 1374 TAD L20/(FILSIZE) / >ELSE BUMP BLOCK NUMBER 764 000746 3075 DCA TAPREC // 765 000747 1355 TAD LOOKPT /\ 766 000750 1122 TAD TCNT1 / >BUMP POINTER AND JUMP BACK 767 000751 5332 JMP LOOKMT // 768 769 000752 7346 SAVNAME,NL7775 /\ 770 000753 4527 JMS I PMOVE/[MOVE] / \MOVE THE FILE NAME 771 000754 0100 TEMP1 / /INTO THE ENTRY 772 000755 0000 LOOKPT, .-. // 773 000756 4261 JMS SAVCAT /RESTORE USER'S CATALOG 774 000757 1075 TAD TAPREC /FETCH BLOCK NUMBER 775 000760 5667 JMP I XLOOKUP /RETURN 776 777 000761 3024 LOOKNG, DCA ECHOSW /FORCE ECHO ON 778 000762 4466 JMS I NAMPRT/[XPRTNAM] /\ 779 000763 0100 TEMP1 / \ 780 000764 4112 JMS MESSAGE / >PRINT FILE NAME, "NOT FOUND" AND RESTART 781 000765 1172 NFMSG / / 782 000766 5457 JMP I WHATMORE/[XWHATMO] // 783 784 000767 4112 FULL, JMS MESSAGE /COMPLAIN OF 785 000770 2370 FULMSG /NO ROOM AND 786 000771 5471 FULLZAP,JMP I PBEGIN/[BEGIN] /RESUME MONITOR MODE 787 /**** R COMMAND **** JMP I WHATMORE/[XWHATMORE] 788 789 000772 7375 CATTOP, CATADR+375 /POINTER TO ABSOLUTE END OF CATALOG 790 791 IFZERO .-1000&4000 792 000773 3603 UPCMSG, TEXT "^C" /"^C" MESSAGE 793 000774 0020 L20, 20 /CONSTANT 0020; THIS TERMINATES UPCMSG 794 000775 7706 L7706A, 7706 /CONSTANT 7706 795 000776 7734 L7734, 7734 /CONSTANT 7734 796 000777 7760 L7760, 7760 /CONSTANT 7760 797 PAGE 798 799 IFNZRO 1000-. 800 001000 0000 XPR6BIT,.-. /PRINT SIX-BIT ROUTINE 801 001001 7440 L7440, SZA /SKIP ON NEW LINE CHARACTER 802 001002 5211 JMP PR6BT1 /JUMP 803 001003 1041 TAD L15/["M&37] /FETCH CARRIAGE RETURN 804 001004 4507 JMS I PRINT/[XPRINT] /PRINT IT 805 001005 1063 TAD L12/["J&37] /TAKE A 806 001006 4507 JMS I PRINT/[XPRINT] /PRINT IT 807 001007 3123 DCA COLUMN /RESET COLUMN 808 001010 5600 JMP I XPR6BIT / RETURN 809 810 001011 2200 PR6BT1, ISZ XPR6BIT /BUMP RETURN ADDRESS 811 001012 1011 TAD L7741/[-37] / CHARACTER? 812 001013 7450 SNA /NO...SKIP 813 001014 5221 JMP PR6TAB /YES...GO TAB OUT 814 001015 0103 AND L77/[77] /TRIM AND 815 001016 1064 TAD L37/[37] /RESTORE TO 7-BIT ASCII 816 001017 4507 JMS I PRINT/[XPRINT] /PRINT IT 817 001020 5600 JMP I XPR6BIT /RETURN 818 819 001021 1074 PR6TAB, TAD TABSW /FETCH SWITCHES 820 001022 7104 CLL RAL /SAVE TTY: MODE 821 001023 1123 TAD COLUMN /GET PRESENT COLUMN 822 001024 7510 SPA /SKIP IF ENABLED 823 001025 7240 NL7777 /FUDGE IF TURNED OFF 824 825 IFNZRO .&177-GETNDX 826 001026 0177 L177, AND L7/[7] /MODULO EIGHT 827 001027 1040 TAD L7770/[-10] /NEGATIVE SPACES TO STOP 828 001030 3056 DCA TABCNT /SAVE IT 829 001031 7430 SZL /SKIP IF MOD33 830 001032 5240 JMP PR6TB1 /JUMP IF MOD35 831 001033 1046 TAD L40/[" &177] /FETCH A 832 001034 4507 JMS I PRINT/[XPRINT] /PRINT IT 833 001035 2056 ISZ TABCNT /SKIP IF STOP HAS BEEN REACHED 834 001036 5233 JMP .-3 /ELSE JUMP BACK 835 001037 5600 JMP I XPR6BIT /RETURN 836 837 001040 1056 PR6TB1, TAD TABCNT /GET NEGATIVE COUNT 838 001041 2056 ISZ TABCNT /SKIP IF COUNT EQUALS ONE 839 001042 1014 TAD L7774/[-4] /ELSE ADD FUDGE 840 001043 7130 STL RAR /SIGNED HALVE 841 001044 7130 STL RAR /ONCE MORE TO QUARTER IT 842 001045 3056 DCA TABCNT /NOW SAVE IT 843 001046 1156 TAD L11/["I&37] /GRAB AN 844 001047 4507 JMS I PRINT/[XPRINT] /OUTPUT IT 845 001050 2056 ISZ TABCNT /SKIP IF ALL DONE 846 001051 5247 JMP .-2 /ELSE OUTPUT A 847 001052 1123 TAD COLUMN /GET CURRENT COLUMN 848 001053 1174 TAD L10/[10] /ROUND UP 849 001054 0040 AND L7770/[7770] /JUST STOP 850 001055 5207 JMP PR6BT1-2 /GO LEAVE FROM THERE 851 001056 0000 XTUNIT, .-. /TEST FOR UNIT CONSTRUCTION 852 001057 4504 JMS I GETHAF/[XGETHAF]/\ 853 001060 1300 TAD L7706/(-":!200) / \ 854 001061 7640 SZA CLA / >TEST FOR ":" 855 001062 5656 JMP I XTUNIT / / 856 001063 2026 ISZ GETNDX // 857 001064 4504 JMS I GETHAF/[XGETHAF]/\ 858 001065 1301 TAD L7720/(-"0!200) / \ 859 001066 7120 STL / \ 860 001067 1040 TAD L7770/["0-"8] / \SET UP NEW UNIT 861 001070 7420 SNL / /COMPLAIN IF BAD 862 001071 5511 JMP I WHAT/[XWHAT] / / 863 001072 0177 AND L7/[7] / / 864 001073 3000 DCA UNIT // 865 001074 2026 ISZ GETNDX /BUMP GET INDEX 866 001075 2256 ISZ XTUNIT /BUMP RETURN ADDRESS 867 001076 4510 JMS I TSPACE/[XTSPACE]/CHECK FOR A SPACE 868 001077 5656 JMP I XTUNIT /RETURN 869 870 001100 7706 L7706, -":!200 /CONSTANT 7706 871 001101 7720 L7720, -"0!200 /CONSTANT 7720 872 873 001102 0000 XPRTNAM,.-. /PRINT NAMES ROUTINE 874 001103 1302 TAD XPRTNAM /PRETEND THAT WE 875 001104 3311 DCA XSCRIBE /CAME INTO SCRIBE 876 001105 1201 TAD L7440/(SZA) /SET SCRIBE FLAG 877 001106 3320 DCA SCRIBR+1 /TO A SZA 878 001107 1013 TAD L7772/[-6] /MAXIMUM OF SIX CHARACTERS 879 001110 7410 SKP /SKIP 880 881 001111 0000 XSCRIBE,.-. /SCRIBE OUTPUT ROUTINE 882 883 IFNZRO 1112-. 884 001112 3302 DCA XPRTNAM /SET MAXIMUM CHARACTER COUNT 885 001113 1711 TAD I XSCRIBE /FETCH MESSAGE ADDRESS 886 001114 2311 ISZ XSCRIBE /BUMP PAST POINTER 887 001115 3031 DCA GETBASE /SET GET BASE POINTER 888 001116 3026 DCA GETNDX /ZERO GET INDEX 889 001117 4504 SCRIBR, JMS I GETHAF/[XGETHAF]/FETCH A SIX-BIT CHARACTER 890 001120 7000 NOP /THIS IS THE SCRIBE FLAG 891 001121 4447 JMS I PR6BIT/[XPR6BIT]/PRINT THE CHARACTER 892 001122 5326 JMP SCRIBG /EXIT ON 893 001123 2026 ISZ GETNDX /BUMP GET INDEX 894 001124 2302 ISZ XPRTNAM /MAXIMUM CHARACTER TEST 895 001125 5317 JMP SCRIBR /BACK FOR MORE 896 001126 1150 SCRIBG, TAD CATCORE/[NOP] /RESET SCRIBE FLAG 897 001127 3320 DCA SCRIBR+1 /TO A NOP 898 001130 5711 JMP I XSCRIBE /RETURN 899 001131 0000 XLNSRCH,.-. /SEARCH FOR LINE NUMBER 900 001132 3100 DCA TEMP1 /SAVE LINE NUMBER 901 001133 3356 DCA BUTIO /CLEAR LIMIT COUNTER 902 001134 1021 TAD BUFEND/[FILBEG+3775] /POINTER TO FIRST ENTRY 903 001135 3001 LSRLUP, DCA TPTR1 /SAVE POINTER 904 001136 1401 TAD I TPTR1 /GET TEST NUMBER 905 001137 7161 STL CIA /NEGATE AND SET MAGIC LINK 906 001140 1100 TAD TEMP1 /ADD LINE NUMBER 907 001141 7450 SNA /NOT IT 908 001142 2331 ISZ XLNSRCH /SKIP RETURN IF FOUND 909 001143 7670 SNA SZL CLA /SKIP IF NOT DONE 910 001144 5353 JMP LSRFND /JUMP IF FOUND OR PASSED 911 001145 7344 NL7776 /BACKUP THE 912 001146 1001 TAD TPTR1 /SEARCH POINTER 913 001147 2356 ISZ BUTIO /LOOKED TOO MANY TIMES? 914 001150 5335 JMP LSRLUP /NO, KEEP GOING 915 001151 7300 CLA CLL /CLEAN UP 916 001152 5731 JMP I XLNSRCH /TAKE FAILURE RETURN 917 918 001153 7240 LSRFND, NL7777 /BRING BACK POINTER 919 001154 1001 TAD TPTR1 /TO LINE INFO >= REQUEST 920 001155 5731 JMP I XLNSRCH /FOUND THEN L=1 ELSE L=0 921 922 001156 0000 BUTIO, .-. /BOOTSTRAP UNIT-ORIENTED I/O ROUTINES 923 001157 1356 TAD BUTIO /GET OUR CALLER 924 001160 3572 DCA I SSYSIO/[SYSIO] /MAKE IT THEIRS 925 001161 2356 ISZ BUTIO /BUMP TO FUNCTION WORD 926 001162 1567 TAD I PSBTFUN/[SBTFUN] /GET OUR BOOTSTRAP UNIT 927 001163 0177 AND L7/[7] /JUST UNIT BITS 928 001164 3331 DCA XLNSRCH /STORE FOR NOW 929 001165 1756 TAD I BUTIO /GET FUNCTION WORD 930 001166 0040 AND L7770/[7770] /REMOVE OLD UNIT BITS 931 001167 1331 TAD XLNSRCH /ADD ON NEW ONES 932 001170 3756 DCA I BUTIO /STORE BACK 933 001171 5530 JMP I PRELIO/[SYSIO+1] /NOW START IT UP 934 935 001172 4016 NFMSG, TEXT " NOT FOUND!" 001173 1724 001174 4006 001175 1725 001176 1604 001177 4100 936 / THE FOLLOWING FOUR PAGES WILL BE SWAPPED OUT BY THE EXTENDED COMMAND CODE. 937 938 PAGE 939 940 IFNZRO .-1200 941 001200 2001 XGLINE, BEGIN1 /GET A LINE OF INPUT; INITIALIZED FOR RELOAD 942 001201 1052 TAD BEGLINE/[INPBUF]/POINT PUTBASE TO 943 001202 3131 DCA PUTBASE /BEGINING OF INPUT BUFFER 944 001203 3060 GL60, DCA PUTNDX /ZERO INDEX 945 001204 1120 TAD SEQSW /AUTO SEQUENCE MODE? 946 001205 7640 L7640, SZA CLA /SKIP IF NO 947 001206 5215 JMP NOPRMPT /JUMP IF YES 948 001207 1000 TAD UNIT /GET CURRENT UNIT 949 001210 1203 TAD GL60/("0&177) /MAKE IT ASCII 950 001211 7200 NOUNPRM,CLA /**** ENABLED **** JMS I PRINT/[XPRINT] 951 001212 1166 TAD PROMPT /TAKE A PERIOD (OR OTHER) 952 001213 4507 JMS I PRINT/[XPRINT] /NOW PRINT IT 953 001214 5217 JMP CTLKREM /NOW BYPASS NUMBER 954 955 001215 1036 NOPRMPT,TAD SLINUM /GET LINE NUMBER 956 001216 4505 JMS I LNOPRT/[XLNOPRT]/PRINT IT 957 001217 1060 CTLKREM,TAD PUTNDX /SAVE FOR THE 958 001220 3053 DCA EDLIN /<^K> COMMAND 959 001221 4433 CHLOOP, JMS I INPUT /FETCH SEVEN-BIT ASCII CHARACTER 960 001222 3100 DCA TEMP1 /PRESERVE CHARACTER 961 001223 1244 TAD PCHTBL/(CHTBL-2)/TABLE POINTER 962 001224 4435 JMS I PCMDSUB/[CMDSUB]/CALL LOOKUP ROUTINE 963 001225 1100 TAD TEMP1 /RESTORE CHARACTER 964 001226 1205 TAD L7640/(-140) /SEE IF LOWER CASE 965 001227 7500 SMA /SKIP IF NOT 966 001230 1136 TAD L7740/[-40] /CONVERT TO UPPER CASE 967 001231 1243 TAD L101/(101) /RESTORE CHARACTER 968 001232 7550 SPA SNA /SKIP IF GOOD CHARACTER 969 001233 7610 SKP CLA /ELSE CLEAR AND SKIP NEXT 970 001234 1064 TABCH, TAD L37/[37] /RESTORE CHARACTER 971 001235 0103 AND L77/[77] /TRIM TO SIX-BIT 972 001236 7450 SNA /SKIP IF VALID 973 001237 5562 JMP I PCHLOOP/[CHLOOP]/ELSE IGNORE IT 974 001240 5645 JMP I PNEXT /GO WHERE YOU SHOULD 975 976 / COMES HERE IF IN NORMAL MODE. 977 978 001241 4525 GOTCR, JMS I PINSERT/[INSERT]/INSERT INTO BUFFER AND PRINT 979 001242 5562 JMP I PCHLOOP/[CHLOOP]/CONTINUE 980 981 001243 0101 L101, 101 /CONSTANT 0101 982 001244 1244 PCHTBL, CHTBL-2 /POINTER TO CHARACTER TABLE 983 001245 1241 PNEXT, GOTCR /POINTER TO NEXT ROUTINE; MODIFIED BY EDIT MODE 984 001246 7601 CHTBL, -177; BACKSP / 001247 7421 985 001250 7641 -137; BACKSP / 001251 7421 986 001252 7745 -33; GOTESC / 001253 7407 987 001254 7746 -"Z!300;EOSEQ /<^Z> 001255 1547 988 001256 7753 -"U!300;DELETL /<^U> 001257 2143 989 001260 7754 -"T!300;REW /<^T> 001261 2146 990 001262 7756 -"R!300;REW /<^R> 001263 2146 991 001264 7763 -"M!300;GOTCR / 001265 1241 992 001266 7765 -"K!300;CTRLK /<^K> 001267 2670 993 001270 7766 -"J!300;LFVIEW / 001271 2674 994 001272 7767 -"I!300;TABCH / 001273 1234 995 001274 7770 -"H!300;BACKSP / 001275 7421 996 001276 0000 EDENABL,0; CTRLA /**** EDIT MODE **** -"A!300 <^A> 001277 2656 997 001300 7772 -"F!300;SRCHX /<^F> 001301 2652 998 001302 7771 -"G!300;NEWSCH / 001303 2647 999 001304 0000 0 /THIS TERMINATES THE LIST 1000 001305 0000 INSERT, .-. /INSERT A LINE ROUTINE 1001 001306 0103 AND L77/[77] /CLEAN UP HIGH ORDER BITS 1002 001307 7450 SNA /? 1003 001310 5317 JMP PUTCH /YES 1004 001311 3020 DCA CHAR /NO, SAVE IT 1005 001312 1060 TAD PUTNDX /GET CURRENT INDEX 1006 001313 1152 TAD LINLEN/[INPBUF&177+7600^2] /SEE IF LINE IS TOO LONG 1007 001314 7700 SMA CLA /SKIP IF NOT 1008 001315 5705 JMP I INSERT /IGNORE IT IF SO 1009 001316 1020 TAD CHAR /RETRIEVE CHARACTER 1010 001317 4532 PUTCH, JMS I PUTHAF/[XPUTHAF] /PUT CHARACTER INTO BUFFER 1011 001320 1020 TAD CHAR /GET IT AGAIN 1012 001321 4447 JMS I PR6BIT/[XPR6BIT] /NOW TRY TO ECHO IT 1013 001322 5325 JMP GLINGO /JUMP IF 1014 001323 2060 ISZ PUTNDX /BUMP INDEX 1015 001324 5705 JMP I INSERT /RETURN 1016 1017 001325 1060 GLINGO, TAD PUTNDX /IS ANYTHING IN THE BUFFER? 1018 001326 7650 SNA CLA /YES... 1019 001327 5526 JMP I PLRST /NO... IGNORE NULL LINES 1020 001330 1052 TAD BEGLINE/[INPBUF] /\ 1021 001331 3031 DCA GETBASE / >SETUP GET POINTERS 1022 001332 3026 DCA GETNDX // 1023 001333 5600 JMP I XGLINE /RETURN 1024 1025 / REWIND ROUTINE. 1026 1027 001334 0000 0 /EXTRA WORD FOR REWIND PURPOSES 1028 1029 001335 0000 REWIND, ZBLOCK .!177-. /EMPTY SPACE 001336 0000 001337 0000 001340 0000 001341 0000 001342 0000 001343 0000 001344 0000 001345 0000 001346 0000 001347 0000 001350 0000 001351 0000 001352 0000 001353 0000 001354 0000 001355 0000 001356 0000 001357 0000 001360 0000 001361 0000 001362 0000 001363 0000 001364 0000 001365 0000 001366 0000 001367 0000 001370 0000 001371 0000 001372 0000 001373 0000 001374 0000 001375 0000 001376 0000 1030 1031 001377 5562 JMP I PCHLOOP/[CHLOOP] /CONTINUE 1032 PAGE 1033 1034 001400 0000 NUMNUM, .-. /GET NUMERICAL ARGUMENTS 1035 001401 4462 JMS I LINENO/[XLINENO] /\ 1036 001402 1367 TAD L144/(144) / >LOOK FOR LINE NUMBER 1037 001403 3036 DCA SLINUM // 1038 001404 4462 JMS I LINENO/[XLINENO] /\ 1039 001405 1063 TAD L12/[12] / >LOOK FOR ANOTHER ONE 1040 001406 3120 DCA SEQSW // 1041 001407 5600 JMP I NUMNUM /RETURN 1042 1043 001410 4200 SEQ, JMS NUMNUM /SCAN ARGUMENTS 1044 001411 5471 JMP I PBEGIN/[BEGIN] /NOW GO USE THEM 1045 1046 001412 4200 RESEQ, JMS NUMNUM /SCAN ARGUMENTS 1047 001413 1021 TAD BUFEND/[FILBEG+3775] /START WITH FIRST LINE NUMBER 1048 001414 3001 RESLUP, DCA TPTR1 /SAVE POINTER TO LINE NUMBER 1049 001415 1401 TAD I TPTR1 /FETCH NEXT LINE NUMBER 1050 001416 7040 CMA /\ 1051 001417 7640 SZA CLA / \ 1052 001420 5223 JMP .+3 / >IF 7777 THEN DONE 1053 001421 3120 DCA SEQSW / / 1054 001422 5233 JMP LAST // 1055 001423 1036 TAD SLINUM /ELSE SET IT TO A 1056 001424 3401 DCA I TPTR1 /NEW LINE NUMBER 1057 001425 1036 TAD SLINUM /\ 1058 001426 1120 TAD SEQSW / >BUMP LINE NUMBER 1059 001427 3036 DCA SLINUM // 1060 001430 7344 NL7776 /\ 1061 001431 1001 TAD TPTR1 / >BUMP POINTER AND JUMP BACK 1062 001432 5214 JMP RESLUP // 1063 1064 001433 1421 LAST, TAD I BUFEND/[FILBEG+3775] /\ 1065 001434 7040 CMA / \IF NULL FILE 1066 001435 7650 SNA CLA / /THEN DO NOTHING 1067 001436 5244 JMP LASTCR // 1068 001437 7326 NL0002 /\ 1069 001440 1427 TAD I FIZZ2/[FILBEG+3777] / >POINT TO LAST ENTRY 1070 001441 3016 DCA XR1 // 1071 001442 1416 TAD I XR1 /GET LAST LINE NUMBER 1072 001443 4505 JMS I LNOPRT/[XLNOPRT] /PRINT IT OUT 1073 001444 4447 LASTCR, JMS I PR6BIT/[XPR6BIT] /DO A , 1074 001445 5471 JMP I PBEGIN/[BEGIN] /GO BACK FOR MORE 1075 1076 001446 5252 R, JMP .+4 /**** ENABLED **** JMS I PBUTIO/[BUTIO] 1077 001447 3000 FILBEG /WRITE ACTIVE FILE 1078 001450 6000 FILSIZE^100+WRITE /IN "$":[BOOTSTRAP UNIT] 1079 001451 0040 DOLBLK /BEFORE DOING "R" 1080 001452 4561 JMS I PBUTIO/[BUTIO] /CALL I/O ROUTINES 1081 001453 3000 FILBEG /READ IN CATALOGUES AND CODE 1082 001454 1300 SYSLEN+EXTLEN+RUNLEN^100 /INTO FILE AREA 1083 001455 0063 SYSCAT /STARTING FROM SYSTEMS CATALOGUE 1084 001456 5657 JMP I .+1/(RSTART) /GO START IT UP 1085 001457 4600 RSTART /THROUGH HERE 1086 001460 7240 PUNCH, NL7777 /INDICATE PUNCH MODE 1087 001461 3101 LIST, DCA TEMP2 /SAVE MODE 1088 001462 4461 JMS I LIMITS/[XLIMIT] /TEST FOR VALID LIMITS 1089 001463 5471 JMP I PBEGIN/[BEGIN] /NO... FORGET IT 1090 001464 1555 LISLUP, TAD I LOWLIM /\ 1091 001465 3275 DCA LISTPT / >FETCH POINTER TO LINE 1092 001466 2155 ISZ LOWLIM // 1093 001467 1101 TAD TEMP2 /\ 1094 001470 7640 SZA CLA / >BYPASS IF IN PUNCH MODE 1095 001471 5274 JMP NOLNUM // 1096 001472 1555 TAD I LOWLIM /ELSE FETCH LINE NUMBER 1097 001473 4505 JMS I LNOPRT/[XLNOPRT] /AND PRINT IT 1098 001474 4571 NOLNUM, JMS I SCRIBE/[XSCRIBE] /NOW PRINT 1099 001475 0000 LISTPT, .-. /THE LINE 1100 001476 7346 NL7775 /\ 1101 001477 1155 TAD LOWLIM / >BUMP POINTER 1102 001500 3155 DCA LOWLIM // 1103 001501 1173 TAD UPLIM /GET UPPER LIMIT 1104 001502 7041 CIA /INVERT IT 1105 001503 1155 TAD LOWLIM /ADD ON LOWER LIMIT 1106 001504 7710 SPA CLA /SKIP IF NOT FINISHED 1107 001505 5244 JMP LASTCR /JUMP IF FINISHED 1108 001506 5264 JMP LISLUP /KEEP GOING 1109 1110 001507 4462 TAB, JMS I LINENO/[XLINENO] /LOOK FOR A NUMBER 1111 001510 5322 JMP TABNO /IF NONE FOUND THEN SET NOFILL MODE 1112 001511 7450 SNA /IF ZERO 1113 001512 5324 JMP TABOFF /GO TURN OFF 1114 001513 1370 TAD L7773/(-5) /\ 1115 001514 7450 SNA / >IF 5 SET MOD35 1116 001515 5323 JMP TAB35 // 1117 001516 1010 TAD L2/[-3+5] /\ 1118 001517 7650 SNA CLA / >IF 3 SET MOD33 1119 001520 5325 JMP TABSET // 1120 001521 5511 JMP I WHAT/[XWHAT] /ELSE BARF 1121 1122 001522 7120 TABNO, STL /ENTRY FOR NOFILL 1123 001523 7201 TAB35, NL0001 /ENTRY FOR MOD35 1124 001524 7012 TABOFF, RTR /ENTRY FOR OFF 1125 001525 3074 TABSET, DCA TABSW /SET SWITCH 1126 001526 5471 JMP I PBEGIN/[BEGIN] /NOW RETURN 1127 1128 001527 4462 ECHO, JMS I LINENO/[XLINENO] /SCAN FOR A NUMBER 1129 001530 5334 JMP ECHFLP /JUST FLIP IF NONE FOUND 1130 001531 7010 RAR /\ 1131 001532 7210 CLA RAR / >ON IF ODD, OFF IF EVEN 1132 001533 3024 DCA ECHOSW // 1133 001534 4430 ECHFLP, JMS I FLIPECHO/[ECHOFLP] /FLIP IT FROM WHAT IT WERE 1134 001535 5471 JMP I PBEGIN/[BEGIN] /RETURN TO O/S 1135 001536 1371 LEFT, TAD LF7764/(-14) /GET MESSAGE LENGTH 1136 001537 4571 JMS I SCRIBE/[XSCRIBE] /TELL THEM 1137 001540 1572 LEFMSG /OUR MESSAGE 1138 001541 1425 TAD I FIZZ1/[FILBEG+3776] /\ 1139 001542 7041 CIA / >COMPUTE WORDS LEFT 1140 001543 1427 TAD I FIZZ2/[FILBEG+3777] // 1141 001544 7104 CLL RAL /*2 FOR CHARACTERS 1142 001545 4505 JMS I LNOPRT/[XLNOPRT] /PRINT OUT THE NUMBER 1143 001546 5244 JMP LASTCR /FINISH IT THERE 1144 1145 001547 4141 EOSEQ, JMS RESET /RESET ECHO AND CLEAR SEQUENCE MODE, ETC. 1146 001550 4571 JMS I SCRIBE/[XSCRIBE] /TELL THEM 1147 001551 2172 ZAPMSG /<^Z> MESSAGE 1148 001552 5526 JMP I PLRST /RESTART INPUT 1149 1150 001553 0000 CMDSUB, .-. /LOOKUP ROUTINE 1151 001554 3016 DCA XR1 /STASH POINTER 1152 001555 2016 CMDLUP, ISZ XR1 /BUMP PAST ROUTINE ADDRESS 1153 001556 1416 TAD I XR1 /FETCH TRIAL 1154 001557 7450 SNA /SKIP IF GOOD 1155 001560 5753 JMP I CMDSUB /RETURN 1156 001561 1100 TAD TEMP1 /IS THIS IT? 1157 001562 7640 SZA CLA /SKIP IF YES 1158 001563 5355 JMP CMDLUP /BACK IF NO 1159 001564 1416 TAD I XR1 /GET ADDRESS 1160 001565 3001 DCA TPTR1 /SAVE IT 1161 001566 5401 JMP I TPTR1 /BRANCH TO IT 1162 1163 001567 0144 L144, 144 /CONSTANT 0144 1164 001570 7773 L7773, 7773 /CONSTANT 7773 1165 001571 7764 LF7764, 7764 /LENGTH OF LEFMSG 1166 001572 0310 LEFMSG, TEXT "CHARACTERS: " 001573 0122 001574 0103 001575 2405 001576 2223 001577 7240 1167 PAGE 1168 1169 001600 4134 CAT, JMS NEWCAT /READ NEW CATALOG IF NECESSARY 1170 001601 1150 TAD CATCORE/[CATADR] /SET UP POINTER 1171 001602 3214 DCA CATPTR /TO CATALOG 1172 001603 1014 CATLUP, TAD L7774/[-4] /SET COUNT TO 1173 001604 3122 DCA TCNT1 /FOUR NAMES PER LINE 1174 001605 1614 TAD I CATPTR /\ 1175 001606 7450 SNA / >TEST FOR END OF CATALOG 1176 001607 5633 JMP I CATEND/(LASTCR) // 1177 001610 7040 CMA /\ 1178 001611 7650 SNA CLA / >TEST FOR HOLE 1179 001612 5230 JMP CATHOLE // 1180 001613 4466 JMS I NAMPRT/[XNAMPRT] /PRINT FILE NAME 1181 001614 0000 CATPTR, .-. /POINTER STORED HERE 1182 001615 1005 CATGO, TAD L3/[3] /\ 1183 001616 1214 TAD CATPTR / >BUMP POINTER TO NEXT ENTRY 1184 001617 3214 DCA CATPTR // 1185 001620 2122 ISZ TCNT1 /IF LINE IS DONE THEN SKIP 1186 001621 5224 JMP .+3 /ELSE JUMP 1187 001622 4447 JMS I PR6BIT/[XPR6BIT] /DO A , 1188 001623 5203 JMP CATLUP /DO ANOTHER LINE 1189 1190 001624 1064 TAD L37/[37] /GRAB A 1191 001625 4447 JMS I PR6BIT/[XPR6BIT] /PRINT IT 1192 001626 7402 HLT /THIS IS ALWAYS SKIPPED! 1193 001627 5205 JMP CATLUP+2 /CONTINUE LINE 1194 1195 001630 4466 CATHOLE,JMS I NAMPRT/[XPRTNAM] /INDICATE EMPTY SLOT 1196 001631 1770 FREMSG / 1197 001632 5215 JMP CATGO /GO BACK FOR MORE 1198 1199 001633 1444 CATEND, LASTCR /WHERE TO FINISH UP CATALOG COMMAND 1200 1201 001634 4564 LOAD, JMS I PFILNAME/[FILNAME] /LOOK FOR FILE NAME 1202 001635 3241 DCA LODBLK /SAVE BLOCK NUMBER 1203 001636 4037 JMS UNITIO /\ 1204 001637 3000 FILBEG / \READ USER FILE 1205 001640 2000 FILSIZ^100 / /INTO CORE 1206 001641 0040 LODBLK, DOLBLK // 1207 001642 5471 JMP I PBEGIN/ BEGIN] /RETURN 1208 001643 1015 RADIX, TAD RADXSW /GET CURRENT RADIX 1209 001644 3067 DCA OLDRADIX /SAVE IT 1210 001645 1012 TAD L7766/[-12] /SETUP FOR 1211 001646 3015 DCA RADXSW /DECIMAL RADIX RIGHT NOW 1212 001647 4462 JMS I LINENO/[XLINENO] /IS ARGUMENT PRESENT? 1213 001650 5261 JMP RADFLP /NO, FLIP THE RADIX 1214 001651 1012 TAD L7766/[-12] /COMPARE TO DECIMAL VALUE 1215 001652 7450 SNA /SKIP IF OTHER 1216 001653 5471 JMP I PBEGIN/[BEGIN] /JUST GO BACK IF DECIMAL ASKED FOR 1217 001654 1010 TAD L2/[-10+12] /COMPARE TO OCTAL VALUE 1218 001655 7640 SZA CLA /SKIP IF IT MATCHES THAT 1219 001656 5511 JMP I WHAT/[XWHAT] /ELSE COMPLAIN OF BAD VALUE 1220 001657 1012 TAD L7766/[-12] /SETUP FOR CHANGE TO OCTAL 1221 001660 7410 SKP /DON'T USE CURRENT VALUE 1222 001661 1067 RADFLP, TAD OLDRADIX /GET OLD RADIX 1223 001662 7041 CIA /INVERT IT 1224 001663 1065 TAD L7756/[-12-10] /ADD ON MAGIC SUM 1225 001664 3015 DCA RADXSW /STORE NEW RADIX VALUE 1226 001665 5471 JMP I PBEGIN/[BEGIN] /GO BACK FOR MORE 1227 1228 001666 7240 SAVE, NL7777 /SET CREATE FLAG 1229 001667 4564 JMS I PFILNAME/[FILNAME] /LOOK FOR FILE NAME OR CREATE 1230 001670 3274 DCA SAVBLK /SAVE BLOCK NUMBER 1231 001671 4037 JMS UNITIO /\ 1232 001672 3000 FILBEG / \SAVE THE USER'S 1233 001673 6000 FILSIZ^100+WRITE / /FILE ONTO TAPE 1234 001674 0000 SAVBLK, .-. // 1235 001675 5471 JMP I PBEGIN/[BEGIN] /RETURN 1236 1237 001676 4564 DELETE, JMS I PFILNAME/[FILNAME] /LOOK FOR FILE NAME 1238 001677 7200 CLA /CLEAN UP 1239 001700 1416 TAD I XR1 /\ 1240 001701 7640 SZA CLA / \IF NEXT ENTRY IS ZERO THEN 1241 001702 7240 NL7777 / /ZERO THIS ONE ELSE SET TO "??" 1242 001703 3401 DCA I TPTR1 // 1243 001704 4767 JMS I PSAVCAT/(SAVCAT) /WRITE USERS CATALOG BACK 1244 001705 5471 JMP I PBEGIN/[BEGIN] /RETURN 1245 1246 001706 4430 PLEASE, JMS I FLIPECHO/[ECHOFLP] /REVERSE ECHO 1247 001707 4571 JMS I SCRIBE/[XSCRIBE] /NOW MAYBE PRINT 1248 001710 2477 INPBUF /THE INPUT BUFFER 1249 001711 4430 JMS I FLIPECHO/[ECHOFLP] /RESTORE ECHO 1250 001712 1177 TAD L7/["G&37] /GRAB A 1251 001713 4507 JMS I PRINT/[XPRINT] /PRINT IT 1252 001714 4455 JMS I PTTYR/[TTYR] /WAIT FOR ANY CHARACTER 1253 001715 5320 JMP ENTER+2 /CLEAN UP THERE 1254 1255 001716 7240 ENTER, NL7777 /SET CREATE FLAG 1256 001717 4564 JMS I PFILNAME/[FILNAME] /ENTER NAME IN CATALOG 1257 001720 7200 CLA /THROW IT AWAY 1258 001721 5471 JMP I PBEGIN/[BEGIN] /RETURN 1259 001722 0000 XLIMIT, .-. /ESTABLISH LINE LIMITS 1260 001723 1022 TAD BUFINFO/[FILBEG+3774] /ASSUME LOWER LIMIT 1261 001724 3155 DCA LOWLIM /TO BE FIRST LINE 1262 001725 4510 JMS I TSPACE/[XTSPACE] /THROW AWAY BLANKS AND TABS 1263 001726 4504 JMS I GETHAF/[XGETHAF] /\ 1264 001727 1366 TAD L7723/(-"-!200) / >TEST FOR DASH 1265 001730 7650 SNA CLA // 1266 001731 5352 JMP LIMIT1 /JUMP IF FOUND 1267 001732 4462 JMS I LINENO/[XLINENO] /TEST FOR LINE NUMBER 1268 001733 5354 JMP LIMIT1+2 /JUMP IF NOT FOUND 1269 001734 4506 JMS I LNSRCH/[XLNSRCH] /\ 1270 001735 7000 NOP / >GET POINTER TO LINE INFO 1271 001736 3155 DCA LOWLIM // 1272 001737 7044 CMA RAL /-1 IF IT EXISTS 1273 001740 3100 DCA TEMP1 /-2 IF IT DOESN'T 1274 001741 4510 JMS I TSPACE/[XTSPACE] /THROW AWAY AND 1275 001742 4504 JMS I GETHAF/[XGETHAF] /\ 1276 001743 1366 TAD L7723/(-"-!200) / >TEST FOR DASH 1277 001744 7650 SNA CLA // 1278 001745 5352 JMP LIMIT1 /JUMP IF FOUND 1279 001746 2100 ISZ TEMP1 /DID LINE EXIST? 1280 001747 5722 JMP I XLIMIT /NO...TAKE FAILURE EXIT 1281 001750 1155 TAD LOWLIM /YES...FUDGE UPPER LIMIT 1282 001751 5357 JMP LIMIT2 /SAME AS LOWER LIMIT 1283 1284 001752 2026 LIMIT1, ISZ GETNDX /BUMP PAST DASH 1285 001753 4462 JMS I LINENO/[XLINENO] /TEST FOR LINE NUMBER 1286 001754 7344 NL7776 /IF NONE FOUND THEN ASSUME 7776 1287 001755 4506 JMS I LNSRCH/[XLNSRCH] /GET POINTER TO LINE INFO 1288 001756 1010 TAD L2/[2] /+2 IF IT DOESN'T EXIST 1289 001757 3173 LIMIT2, DCA UPLIM /SAVE AS UPPER LIMIT 1290 001760 1173 TAD UPLIM /\ 1291 001761 7041 CIA / >IS RANGE POSITIVE? 1292 001762 1155 TAD LOWLIM // 1293 001763 7700 SMA CLA /SKIP IF NOT 1294 001764 2322 ISZ XLIMIT /ELSE SETUP SKIP RETURN 1295 001765 5722 JMP I XLIMIT /RETURN 1296 1297 001766 7723 L7723, 7723 /CONSTANT 7723 1298 001767 0661 PSAVCAT,SAVCAT /POINTER TO SAVE CATALOG ROUTINE 1299 001770 7406 FREMSG, TEXT "" 001771 2205 001772 0576 1300 001773 0611 TBMSG, TEXT "FILE FULL" 001774 1405 001775 4006 001776 2514 001777 1400 1301 PAGE 1302 1303 002000 4432 BEGIN0, JMS I GLINE/[XGLINE] /GET A LINE OF INPUT 1304 002001 4462 BEGIN1, JMS I LINENO/[XLINENO] /IS THERE A LINE NUMBER? 1305 002002 5336 JMP COMAND /NOPE... ITS A COMMAND 1306 002003 3153 DCA LNO /YES... SAVE LINE NUMBER 1307 002004 1036 TAD SLINUM /\ 1308 002005 1120 TAD SEQSW / >INCREMENT LINE NUMBER 1309 002006 3036 DCA SLINUM // 1310 002007 1153 TAD LNO /GET LINE NUMBER 1311 002010 4506 JMS I LNSRCH/[XLNSRCH] /DOES IT EXIST? 1312 002011 5217 JMP NEWLIN /NO... CREATE IT 1313 002012 3155 DCA LOWLIM /\ 1314 002013 1155 TAD LOWLIM / >YES... SETUP DELETION LIMITS 1315 002014 3173 DCA UPLIM // 1316 002015 4762 JMS I PREMOVE/(REMOVE) /DELETE LINE 1317 002016 7410 SKP /SKIP 1318 002017 3173 NEWLIN, DCA UPLIM /SET UPLIM 1319 002020 1026 TAD GETNDX /\ 1320 002021 7041 CIA / >COMPUTE LENGTH OF TEXT 1321 002022 1060 TAD PUTNDX // 1322 002023 7450 SNA /SKIP IF SOMETHING THERE 1323 002024 5761 JMP I PPLRTN/(PLRTN) /IF NULL ACKNOWLEDGE REMOVAL OF OLD LINE 1324 002025 1010 TAD L2/[2] /FUDGE FOR 1325 002026 7110 CLL RAR /DIVIDE BY TWO TO GET 1326 002027 3100 DCA TEMP1 /LENGTH IN WORDS 1327 002030 7326 NL0002 /TWO INFO WORDS 1328 002031 1100 TAD TEMP1 /PLUS LENGTH 1329 002032 1425 TAD I FIZZ1/[FILBEG+3776] /\ 1330 002033 7140 CMA CLL / >TEST IF IT WILL FIT 1331 002034 1427 TAD I FIZZ2/[FILBEG+3777] // 1332 002035 7630 SZL CLA /SKIP IF NO ROOM 1333 002036 5242 JMP .+4 /JUMP IF IT WILL FIT 1334 002037 4112 JMS MESSAGE /PRINT NO ROOM MESSAGE 1335 002040 1773 TBMSG /NO SPACE LEFT 1336 002041 5760 JMP I PLWAIT/(PLEASE+4) /WAIT FOR OPERATOR DECISION 1337 1338 002042 1425 TAD I FIZZ1/[FILBEG+3776] /\ 1339 002043 7040 CMA / \COMPUTE NUMBER OF WORDS 1340 002044 1573 TAD I UPLIM / /OF CHARACTERS TO MOVE 1341 002045 3122 DCA TCNT1 // 1342 002046 1425 TAD I FIZZ1/[FILBEG+3776] /SET UP FROM 1343 002047 3001 DCA TPTR1 /POINTER 1344 002050 1001 TAD TPTR1 /\ 1345 002051 1100 TAD TEMP1 / >SET UP TO POINTER 1346 002052 3007 DCA TPTR2 // 1347 002053 1007 TAD TPTR2 /RESET FILES NEXT 1348 002054 3425 DCA I FIZZ1/[FILBEG+3776] /LINE POINTER 1349 002055 1401 INSRT1, TAD I TPTR1 /FETCH 1350 002056 3407 DCA I TPTR2 /STORE 1351 002057 7240 NL7777 /\ 1352 002060 1001 TAD TPTR1 / >BACKUP "FROM" POINTER 1353 002061 3001 DCA TPTR1 // 1354 002062 7240 NL7777 /\ 1355 002063 1007 TAD TPTR2 / >BACKUP "TO" POINTER 1356 002064 3007 DCA TPTR2 // 1357 002065 2122 ISZ TCNT1 /TEST IF DONE 1358 002066 5255 JMP INSRT1 /LOOP BACK 1359 002067 7326 NL0002 /\ 1360 002070 1173 TAD UPLIM / \ 1361 002071 7041 CIA / \COMPUTE NUMBER OF LINE 1362 002072 1427 TAD I FIZZ2/[FILBEG+3777] / /INFO ENTRIES TO MOVE 1363 002073 7130 STL RAR / / 1364 002074 3122 DCA TCNT1 // 1365 002075 7240 NL7777 /\ 1366 002076 1427 TAD I FIZZ2/[FILBEG+3777] / >SETUP FROM POINTER 1367 002077 3016 DCA XR1 // 1368 002100 7344 NL7776 /\ 1369 002101 1016 TAD XR1 / >SETUP TO POINTER 1370 002102 3017 DCA XR2 // 1371 002103 1017 TAD XR2 /\ 1372 002104 7001 IAC / >RESET FILES NEXT INFO POINTER 1373 002105 3427 DCA I FIZZ2/[FILBEG+3777] // 1374 002106 1416 INSRT2, TAD I XR1 /\ 1375 002107 1100 TAD TEMP1 / >MOVE AND RELOCATE 1376 002110 3417 DCA I XR2 // 1377 002111 1416 TAD I XR1 /MOVE LINE 1378 002112 3417 DCA I XR2 /NUMBER 1379 002113 2122 ISZ TCNT1 /TEST FOR END 1380 002114 5306 JMP INSRT2 /LOOP BACK 1381 002115 1573 TAD I UPLIM /SETUP PUT 1382 002116 3131 DCA PUTBASE /POINTER 1383 002117 1060 TAD PUTNDX /\ 1384 002120 7040 CMA / \COMPUTE NUMBER OF 1385 002121 1026 TAD GETNDX / /CHARACTERS TO MOVE 1386 002122 3122 DCA TCNT1 // 1387 002123 3060 DCA PUTNDX /CLEAR PUT INDEX 1388 002124 4504 INSRT3, JMS I GETHAF/[XGETHAF] /FETCH CHARACTER 1389 002125 4532 JMS I PUTHAF/[XPUTHAF] /STORE CHARACTER 1390 002126 2026 ISZ GETNDX /BUMP GET INDEX 1391 002127 2060 ISZ PUTNDX /BUMP PUT INDEX 1392 002130 2122 ISZ TCNT1 /TEST FINISH 1393 002131 5324 JMP INSRT3 /LOOP BACK 1394 002132 2173 ISZ UPLIM /\ 1395 002133 1153 TAD LNO / >SHOVE LINE NUMBER INTO INFO ENTRY 1396 002134 3573 DCA I UPLIM // 1397 002135 5471 JMP I PBEGIN/[BEGIN] /CONTINUE 1398 002136 4454 COMAND, JMS I NAME/[XNAME] /VALID NAME? 1399 002137 5511 JMP I WHAT/[XWHAT] /NO... BARF 1400 002140 1357 TAD PCMNDS/(CMNDS-2)/SETUP POINTER TO COMMAND TABLE 1401 002141 4435 JMS I PCMDSUB/[CMDSUB]/CALL LOOKUP ROUTINE 1402 002142 5756 JMP I FUDGE/(RUNGO) /TRY TO RUN IT 1403 1404 002143 4571 DELETL, JMS I SCRIBE/[XSCRIBE]/TELL THEM 1405 002144 2163 UPUMSG /<^U> MESSAGE 1406 002145 5526 JMP I PLRST /RESTART INPUT 1407 1408 002146 1100 REW, TAD TEMP1 /GET CONTROL CHARACTER 1409 002147 1160 TAD L7761/[-17] /REDUCE TO OFFSET FROM <^O> 1410 002150 4563 JMS I PCTRLPR/[CTRLPR]/PRINT "^R" OR "^T" 1411 002151 5752 JMP I .+1/(REWIND) /GO DO REWIND CODE 1412 002152 1335 REWIND /THROUGH HERE 1413 1414 002153 1063 LNFEED, TAD L12/[12] /GET A 1415 002154 4507 JMS I PRINT/[XPRINT] /JUST PRINT IT 1416 002155 5562 JMP I PCHLOOP/[CHLOOP]/KEEP GOING 1417 1418 002156 0334 FUDGE, RUNGO /STARR 1419 002157 2416 PCMNDS, CMNDS-2 /POINTER TO COMMANDS 1420 002160 1712 PLWAIT, PLEASE+4 /POINTER TO OPERATOR WAIT ROUTINE 1421 002161 0411 PPLRTN, PLRTN /RING BELL ROUTINE 1422 002162 0521 PREMOVE,REMOVE /POINTER TO LINE REMOVAL ROUTINE 1423 002163 3625 UPUMSG, TEXT "^U" /MAIN <^U> MESSAGE 1424 002164 4032 UPU2MSG,TEXT " ZAP!";0;0;0 /REST OF <^U> MESSAGE; 10 CHARACTERS MAXIMUM 002165 0120 002166 4100 002167 0000 002170 0000 002171 0000 1425 002172 3632 ZAPMSG, TEXT "^Z" /MAIN <^Z> MESSAGE 1426 002173 4032 ZP2MSG, TEXT " ZAP!";0;0 /REST OF <^Z> MESSAGE; 8 CHARACTERS MAXIMUM 002174 0120 002175 4100 002176 0000 002177 0000 1427 PAGE 1428 1429 002200 0000 XNAME, .-. /SCAN A NAME ROUTINE 1430 002201 1026 TAD GETNDX /SAVE 1431 002202 3001 DCA TPTR1 /INDEX 1432 002203 4504 NAMTST, JMS I GETHAF/[XGETHAF]/\ 1433 002204 7440 SZA / \TEST CHARACTER FOR 1434 002205 1011 TAD L7741/[-37] / /A - Z , [ , \ , ] , ^ 1435 002206 7510 SPA // 1436 002207 5214 JMP NAMOK /YES...GOOD ENOUGH 1437 002210 1034 TAD L7757/[-"0+237] /\ 1438 002211 7510 SPA / >NG IF BELOW NUMERIC RANGE 1439 002212 7332 NL2000 // 1440 002213 1012 TAD L7766/[-12] /\ 1441 002214 7700 NAMOK, SMA CLA / >NG IF ABOVE NUMERIC RANGE 1442 002215 5220 JMP NAMNG // 1443 002216 2026 ISZ GETNDX /BUMP TO NEXT CHARACTER 1444 002217 5203 JMP NAMTST /AND TEST IT 1445 1446 002220 1026 NAMNG, TAD GETNDX /\ 1447 002221 7041 CIA / \DID WE FIND ANY 1448 002222 1001 TAD TPTR1 / /GOOD CHARACTERS? 1449 002223 7450 SNA // 1450 002224 5600 JMP I XNAME /NO...FAILURE EXIT 1451 002225 1157 TAD L6/[6] /\ 1452 002226 7510 SPA / \ 1453 002227 7200 CLA / >SET -7SETUP TO MOVE TO TEMP1, 2, 3 1463 002241 3101 DCA TEMP2 / / 1464 002242 3102 DCA TEMP3 // 1465 002243 4504 NAMLUP, JMS I GETHAF/[XGETHAF]/FETCH 1466 002244 4532 JMS I PUTHAF/[XPUTHAF]/STORE 1467 002245 2026 ISZ GETNDX /BUMP 1468 002246 2060 ISZ PUTNDX /BUMP 1469 002247 2122 ISZ TCNT1 /TEST 1470 002250 5243 JMP NAMLUP /LOOP 1471 002251 1060 TAD PUTNDX /\ 1472 002252 7010 RAR / \ZERO RIGHT HALF 1473 002253 7630 SZL CLA / /WORD IF NECESSARY 1474 002254 4532 JMS I PUTHAF/[XPUTHAF]// 1475 002255 1007 TAD TPTR2 /POINT TO TERMINATING 1476 002256 3026 DCA GETNDX /CHARACTER AGAIN 1477 002257 2200 ISZ XNAME /BUMP RETURN ADDRESS 1478 002260 4510 JMS I TSPACE/[XTSPACE]/IS CHARACTER A OR ? 1479 002261 5600 JMP I XNAME /RETURN 1480 / CONSOLE OUTPUT ROUTINE. 1481 1482 002262 0000 XPRINT, .-. /TTY: OUTPUT ROUTINE 1483 002263 3302 DCA TTYR /SAVE PASSED VALUE 1484 002264 4310 XPRAGN, JMS TCHECK /CHECK FOR <^C>, ETC. FIRST 1485 002265 1024 TAD ECHOSW /SHOULD WE PRINT? 1486 002266 7710 SPA CLA /SKIP IF SO 1487 002267 5273 JMP XPROFF /JUMP IF NOT 1488 002270 1302 TAD TTYR /GET THE CHARACTER 1489 002271 4335 JMS P7OUT /TRY TO OUTPUT IT 1490 002272 5264 JMP XPRAGN /DIDN'T, TRY INPUT WHILE WAITING 1491 002273 4310 XPROFF, JMS TCHECK /CHECK FOR <^C>, ETC. 1492 002274 1302 TAD TTYR /GET THE CHARACTER AGAIN 1493 002275 0620 AND I NAMNG/[177] /REDUCE TO SEVEN-BIT FORM 1494 002276 1136 TAD L7740/[-" !200] /COMPARE TO SMALLEST PRINTING CHARACTER 1495 002277 7700 SMA CLA /SKIP IF NON-PRINTING CONTROL CHARACTER 1496 002300 2123 ISZ COLUMN /ELSE BUMP COLUMN COUNTER 1497 002301 5662 JMP I XPRINT /RETURN 1498 1499 / CONSOLE INPUT ROUTINE. 1500 1501 002302 0000 TTYR, .-. /TTY: INPUT 1502 002303 4310 TTYRLP, JMS TCHECK /CHECK FOR INPUT 1503 002304 1124 TAD INCHAR /GET INPUT BUFFER 1504 002305 7450 SNA /SKIP IF ANYTHING THERE 1505 002306 5303 JMP TTYRLP /ELSE GO WAIT AGAIN 1506 002307 5702 JMP I TTYR /RETURN WITH CHARACTER 1507 1508 002310 0000 TCHECK, .-. /CHARACTER CHECK ROUTINE 1509 002311 4343 JMS CCHECK /CHECK FOR <^C> AND GET A CHARACTER 1510 002312 7440 SZA /SKIP IF NOTHING CAME IN 1511 002313 1034 TAD L7757/[-"Q!300] /CHECK FOR LOOSE <^Q> 1512 002314 7450 SNA /SKIP IF OTHER 1513 002315 5330 JMP TCLEAR /IGNORE <^Q> WITHOUT <^S> 1514 002316 1010 TAD L2/[-"O+"Q] /CHECK FOR <^O> 1515 002317 7450 SNA /SKIP IF OTHER 1516 002320 5332 JMP OFLIP /FLIP ECHO STATE IF <^O> 1517 002321 1014 TAD L7774/[-"S+"O] /CHECK FOR <^S> 1518 002322 7640 SZA CLA /SKIP IF <^S> 1519 002323 5710 JMP I TCHECK /RETURN IF SOMETHING ELSE 1520 002324 4343 JMS CCHECK /CHECK FOR <^C> AND GET A CHARACTER 1521 002325 1034 TAD L7757/[-"Q!300] /CHECK FOR <^Q> 1522 002326 7640 SZA CLA /SKIP IF <^Q> 1523 002327 5324 JMP .-3 /GO BACK IF ANYTHING ELSE (INCLUDING NOTHING) 1524 002330 3124 TCLEAR, DCA INCHAR /OBLITERATE HIDDEN CHARACTERS 1525 002331 5710 JMP I TCHECK /RETURN 1526 1527 002332 4563 OFLIP, JMS I PCTRLPR/[CTRLPR]/PRINT "^O" 1528 002333 4430 JMS I FLIPECH/[ECHOFL]/REVERSE ECHO STATE 1529 002334 5330 JMP TCLEAR /OBLITERATE <^O> AND RETURN 1530 002335 0000 P7OUT, .-. /OUTPUT ROUTINE 1531 002336 6041 P7TSF, TSFIOT /**** CONSOLE **** CIF MCS+10 1532 002337 5735 P7JMP, JMP I P7OUT /**** CONSOLE **** JMS OUTCON 1533 002340 6046 P7TLS, TLSIOT /**** CONSOLE **** JMP I P7OUT 1534 002341 2335 ISZ P7OUT /BUMP RETURN ADDRESS 1535 002342 5735 JMP I P7OUT /TAKE SKIP RETURN 1536 1537 002343 0000 CCHECK, .-. /<^C> CHECK ROUTINE 1538 002344 7200 CLA /CLEAN UP 1539 002345 6031 KSFIOT /**** CONSOLE **** CIF MCS+10 1540 002346 5743 JMP I CCHECK /**** CONSOLE **** JMS INCON 1541 002347 6036 KRBIOT /**** CONSOLE **** JMP I CCHECK 1542 002350 0620 AND I NAMNG/[177] /TRIM TO SEVEN-BIT 1543 002351 3124 DCA INCHAR /SAVE IT 1544 002352 7346 NL7775 /SET -3 1545 002353 1124 TAD INCHAR /COMPARE TO CHARACTER 1546 002354 7650 SNA CLA /SKIP IF NOT <^C> 1547 002355 5360 JMP CTLC /JUMP IF <^C> 1548 002356 1124 TAD INCHAR /GET THE CHARACTER 1549 002357 5743 JMP I CCHECK /RETURN 1550 1551 002360 4141 CTLC, JMS RESET /RESET ECHO AND CLEAR SEQUENCE MODE, ETC. 1552 002361 1150 TAD CATCORE/[NOP] /RESET THE 1553 002362 3767 DCA I PSCFLAG/(SCRIBR+1) /SCRIBE FLAG 1554 002363 4112 CTCPZAP,JMS MESSAGE /TELL THEM 1555 002364 0773 UPCMSG /<^C> WAS HIT 1556 002365 5471 CTCZAP, JMP I PBEGIN/[BEGIN] /**** BATCH RUNNING **** JMP I PECTLC/(ECTLC) 1557 1558 002366 2607 PECTLC, ECTLC /POINTER TO BATCH <^C> ROUTINE 1559 002367 1120 PSCFLAG,SCRIBR+1 /POINTER TO SCRIBE FLAG 1560 002370 0301 FULMSG, TEXT "CATALOG FULL!" 002371 2401 002372 1417 002373 0740 002374 0625 002375 1414 002376 4100 1561 PAGE 1562 1563 002400 0000 CTRLPRT,.-. /CONTROL CHARACTER PRINT ROUTINE 1564 002401 3112 DCA MESSAGE /SAVE OFFSET FROM "^O" 1565 002402 1213 TAD L136/("^&177) /GET AN "^" 1566 002403 4614 JMS I PP7OUT/(P7OUT) /PRINT IT 1567 002404 5203 JMP .-1 /WAIT FOR IT 1568 002405 1160 TAD L7761/("O-"^) /ADJUST TO "O" 1569 002406 1112 TAD MESSAGE /ADD OFFSET TO DESIRED 1570 002407 4614 JMS I PP7OUT/(P7OUT) /PRINT IT 1571 002410 5207 JMP .-1 /WAIT FOR IT 1572 002411 7200 CLA /CLEAN UP 1573 002412 5600 JMP I CTRLPRT /RETURN 1574 1575 002413 0136 L136, 136 /CONSTANT 0136 1576 002414 2335 PP7OUT, P7OUT /POINTER TO P7OUT ROUTINE 1577 002415 2710 WHATMG, TEXT "WHAT?" 002416 0124 002417 7700 1578 / COMMAND DISPATCH TABLE 1579 1580 002420 7477 CMNDS, -"C^100-"A+300; CAT /LIST CATALOG 002421 1600 1581 002422 7275 -"E^100-"C+300; ECHO /CHANGE ECHO STATUS 002423 1527 1582 002424 7274 -"E^100-"D+300; EDCMND, EDCOM /EDIT A LINE 002425 2602 1583 002426 7262 -"E^100-"N+300; ENTER /ENTER FILENAME IN CATALOG 002427 1716 1584 002430 7256 -"E^100-"R+300; SCRATCH /ERASE LINES 002431 0414 1585 002432 7173 -"F^100-"E+300; LOAD /FETCH FILE 002433 1634 1586 002434 6777 -"H^100-"A+300; HALT /HALT 002435 0600 1587 002436 6467 -"K^100-"I+300; DELETE /KILL FILENAME FROM CATALOG 002437 1676 1588 002440 6377 -"L^100-"A+300; LAST /PRINT LAST LINE NUMBER 002441 1433 1589 002442 6375 -"L^100-"C+300; SYS /LOAD NEW CATALOG INTO CORE 002443 0435 1590 002444 6373 -"L^100-"E+300; LEFT /PRINT WORDS LEFT 002445 1536 1591 002446 6367 -"L^100-"I+300; LIST /LIST BUFFER 002447 1461 1592 002450 6362 -"L^100-"N+300; SEQ /LINE NUMBERS 002451 1410 1593 002452 6354 -"L^100-"T+300; PUNCH /LIST NO NUMBERS 002453 1460 1594 002454 6261 -"M^100-"O+300; SBOOT /BOOTSTRAP TO NEW MONITOR 002455 7600 1595 002456 5764 -"P^100-"L+300; PLEASE /PLEASE 002457 1706 1596 002460 5577 -"R^100-"A+300; RADIX /CHANGE RADIX 002461 1643 1597 002462 5573 -"R^100-"E+300; RESEQ /RESEQUENCE BUFFER 002463 1412 1598 002464 5553 -"R^100-"U+300; R /RUN COMMAND 002465 1446 1599 002466 5600 -"R^100; R /R COMMAND 002467 1446 1600 002470 5377 -"T^100-"A+300; TAB /CHANGE MODE 002471 1507 1601 002472 5056 -"W^100-"R+300; SAVE /WRITE FILE 002473 1666 1602 002474 4142 -"^^100-"^+300; BEGIN /^^ COMMENT COMMAND 002475 0440 1603 002476 0000 0 /THIS ENDS THE TABLE 1604 / THIS CODE RESIDES IN THE INPUT BUFFER AND WILL BE DESTROYED! 1605 1606 002477 1567 INPBUF, TAD I PSBTFUN/[SBTFUN] /GET BOOTSTRAP FUNCTION WORD 1607 002500 0177 AND L7/[7] /JUST UNIT BITS 1608 002501 3000 DCA UNIT /SAVE AS BOOTSTRAP UNIT 1609 002502 7326 NL0002 /SET "C" BIT MASK 1610 002503 0570 AND I PSCRSIZE/[SCRSIZE] /GET THE "C" BIT 1611 002504 7640 SZA CLA /SKIP IF OFF 1612 002505 5355 JMP OVRCHK /JUMP IF ON 1613 002506 6041 TTYTST, TSFIOT /FLAG UP? 1614 002507 5347 JMP TTIMOUT /NO, GO TIME IT OUT 1615 002510 6040 TFLIOT /RESET FLAG ON DECMATE 1616 002511 2510 OVRCOMM,ISZ I TSPACE/[XTSPACE] /IS BATCH RUNNING? 1617 002512 5340 JMP BATRLD /YES, GO DO SOMETHING ABOUT IT 1618 002513 7640 SZA CLA /SKIP IF NO <^C> FROM CONSOLE OVERLAY 1619 002514 5331 JMP GOTUPC /JUMP IF <^C> FROM CONSOLE OVERLAY 1620 002515 1570 TAD I PSCRSIZE/[SCRSIZE] /GET CORE WORD AGAIN 1621 002516 7012 RTR /"C" BIT TO LINK, "<^C>" BIT TO AC[0] 1622 002517 7710 SPA CLA /SKIP IF NO SOFTWARE <^C> BIT SET 1623 002520 5331 JMP GOTUPC /JUMP IF SOFTWARE <^C> BIT SET 1624 002521 7420 SNL /SKIP IF "C" BIT SET 1625 002522 6031 KSFIOT /HARDWARE FLAG UP? 1626 002523 5333 JMP NOTUPC /NO, FORGET IT 1627 002524 6036 KRBIOT /YES, GET THE CHARACTER 1628 002525 0100 AND TEMP1/[177] /TRIM TO SEVEN-BIT 1629 002526 1101 TAD TEMP2/[-"C!300] /COMPARE TO <^C> 1630 002527 7640 SZA CLA /SKIP IF IT MATCHES 1631 002530 5333 JMP NOTUPC /JUMP IF NOT 1632 002531 4466 GOTUPC, JMS I NAMPRT/[XPRTNAME] /TELL THEM 1633 002532 0773 UPCMSG /"^C" 1634 002533 4447 NOTUPC, JMS I PR6BIT/[XPR6BIT] /DO A , 1635 002534 7344 NL7776 /SETUP "<^C>" BIT MASK 1636 002535 0570 AND I PSCRSIZE/[SCRSIZE] /REMOVE THE BIT 1637 002536 3570 DCA I PSCRSIZE/[SCRSIZE] /STORE IT BACK 1638 002537 5774 JMP I NXTADR /DO "ERASE" OR "FETCH $" 1639 1640 002540 3375 BATRLD, DCA OVRCNT /STORE <^C> INDICATOR 1641 002541 4561 JMS I PBUTIO/[BUTIO] /\ 1642 002542 3000 PBATRL, BATRL / \READ IN THE 1643 002543 0500 BTRLEN^100 / /BATCH RECOVERY ROUTINE 1644 002544 0115 BTRLBLK // 1645 002545 1375 TAD OVRCNT /GET <^C> INDICATOR 1646 002546 4742 JMS I PBATRL/(BATRL) /CALL BATCH RECOVERY ROUTINES 1647 1648 002547 2277 TTIMOUT,ISZ INPBUF /WAITED ENOUGH? 1649 002550 5306 JMP TTYTST /NO, TRY AGAIN 1650 002551 2007 ISZ TPTR2 /WAITED TOO LONG? 1651 002552 5306 JMP TTYTST /NO, TRY AGAIN 1652 002553 6046 TLSIOT /YES, SET THE FLAG 1653 002554 5311 JMP OVRCOMMON /CONTINUE THERE 1654 002555 6211 OVRCHK, CDF 10 /WILL BE CDF OVERLAY FIELD 1655 002556 1776 TAD I OVRPTR /GET A WORD 1656 002557 2376 ISZ OVRPTR /BUMP TO NEXT 1657 002560 2375 ISZ OVRCNT /CHECKED ENOUGH? 1658 002561 5356 JMP .-3 /NO, KEEP GOING 1659 002562 6201 CDF 00 /BACK TO OUR FIELD 1660 002563 1377 TAD OVRSUM /COMPARE TO MAGIC VALUE 1661 002564 7650 SNA CLA /SKIP IF WRONG 1662 002565 5372 JMP OVRLOADED /JUMP IF APPARENTLY OK 1663 002566 4572 JMS I SSYSIO/[SYSIO] /CALL I/O ROUTINES 1664 002567 0000 0000 /RELOAD ADDRESS 1665 002570 0000 OVRFUN, .-. /READ FUNCTION FOR OVERLAY 1666 002571 0000 OVRBLK, .-. /BLOCK NUMBER FOR OVERLAY 1667 002572 6212 OVRLOAD,CIF 10 /WILL BE CIF OVERLAY FIELD 1668 002573 4102 JMS XIOMON /INITIALIZE MONITOR AND GET <^C> INDICATOR 1669 / JMP OVRCOMMON /CONTINUE THERE 1670 1671 002574 0400 NXTADR, NEWBUF /OR LOAD+2 IF "SET DOLLAR FETCH" 1672 002575 0000 OVRCNT, .-. /OVERLAY CHECK AREA COUNTER 1673 002576 0000 OVRPTR, .-. /OVERLAY CHECK AREA POINTER 1674 002577 0000 OVRSUM, .-. /OVERLAY CHECK WORD 1675 PAGE 1676 1677 EDITIT= . /EDIT COMMAND LOADS INTO THIS BLOCK 1678 1679 002600 0000 SAVSLI, .-. /SAVED STARTING LINE NUMBER 1680 1681 IFNZRO .-XGLINE-1&177 1682 002601 0000 SAVSEQ, .-. /SAVED OLD SEQUENCE VALUE 1683 1684 002602 1036 EDCOM, TAD SLINUM /SAVE OLD 1685 002603 3200 DCA SAVSLI /SEQUENCE NUMBER 1686 002604 1120 TAD SEQSW /AND THE 1687 002605 3201 DCA SAVSEQ /OLD INCREMENT 1688 002606 1377 TAD (EWHAT) /FUDGE THE WHAT ROUTINE 1689 002607 3111 DCA WHAT/[XWHAT] /TO RETURN TO EDIT 1690 002610 7240 NL7777 /TAD (-"A!300) /GET <^A> VALUE 1691 002611 3776 DCA I (EDENABLE) /FIX COMMAND TABLE 1692 002612 1375 TAD (EREST) /CHANGE THE 1693 002613 3126 DCA PLRST /RESTART ADDRESS 1694 002614 1374 TAD (EDCANCEL) /SETUP THE 1695 002615 3147 DCA RESMORE /RESET ROUTINE 1696 002616 4462 JMS I LINENO/[XLINENO] /LOOK FOR A LINE NUMBER 1697 002617 5241 JMP EWHAT /ERROR IF NONE 1698 002620 3036 DCA SLINUM /SAVE FOR GLINE 1699 002621 1036 TAD SLINUM /RETRIEVE LINE NUMBER 1700 002622 4506 JMS I LNSRCH/[XLNSRCH] /SEE IF IT EXISTS 1701 002623 5241 JMP EWHAT /ERROR IF IT DOESN'T 1702 002624 3360 DCA LINST /ELSE SAVE POINTER 1703 002625 4462 JMS I LINENO/[XLINENO] /ANOTHER ARGUMENT? 1704 002626 7610 SKP CLA /NO 1705 002627 3036 DCA SLINUM /YES, SAVE AS LINE NUMBER 1706 002630 2120 ISZ SEQSW /FOR GLINE FUDGE 1707 002631 1760 EREST, TAD I LINST /GET POINTER TO START OF LINE 1708 002632 3031 DCA GETBASE /AND SETUP GETHAF BASE POINTER 1709 002633 3026 DCA GETNDX /START AT BEGINNING 1710 002634 3337 DCA MSCHAR /CLEAR SEARCH CHARACTER 1711 002635 4432 JMS I GLINE/[XGLINE] /START THE MESS GOING 1712 002636 4337 JMS ERESTORE /RESTORE SAVED VALUES 1713 002637 4345 JMS EDCANCEL /CANCEL EDIT MODE 1714 002640 5773 JMP I (BEGIN1) /FINISH UP THERE 1715 1716 002641 7200 EWHAT, CLA /CLEAN UP 1717 002642 4337 JMS ERESTORE /RESTORE SAVED VALUES 1718 002643 4345 JMS EDCANCEL /CANCEL EDIT MODE 1719 002644 4112 JMS MESSAGE /TELL THEM 1720 002645 2761 BEDMSG /THEY GOOFED 1721 002646 5457 JMP I WHATMORE/[XWHATMORE] /GO AWAY 1722 1723 002647 1372 NEWSCH, TAD (SRCHX) /POINT TO 1724 002650 3771 DCA I (PNEXT) /OUT ROUTINE 1725 002651 5562 JMP I PCHLOOP/[CHLOOP] /KEEP GOING THERE 1726 002652 7041 SRCHX, CIA /COMPLEMENT THE SEARCH CHARACTER 1727 002653 3337 DCA MSCHAR /SAVE IT FOR TESTS LATER 1728 002654 1370 TAD (GOTCR) /RESET THE GLINE ROUTINE 1729 002655 3771 DCA I (PNEXT) /TO WORK NORMALLY 1730 002656 4504 CTRLA, JMS I GETHAF/[XGETHAF] /GET A CHARACTER FROM THE BUFFER 1731 002657 7450 SNA /? 1732 002660 5562 JMP I PCHLOOP/[CHLOOP] /YES, GO BACK TO TAKING INPUT 1733 002661 2026 ISZ GETNDX /BUMP TO NEXT 1734 002662 4525 JMS I PINSERT/[INSERT] /INSERT AND PRINT THIS CHARACTER 1735 002663 1020 TAD CHAR /GET THE CHARACTER 1736 002664 1337 TAD MSCHAR /COMPARE TO OUR CHARACTER 1737 002665 7640 SZA CLA /SKIP IF IT MATCHES 1738 002666 5256 JMP CTRLA /ELSE KEEP GOING 1739 002667 5562 JMP I PCHLOOP/[CHLOOP] /NOW WAIT FOR MORE INPUT ON THE MATCH 1740 1741 002670 1014 CTRLK, TAD L7774/["K-"O] /OFFSET FOR ^K 1742 002671 4563 JMS I PCTRLPRT/[CTRLPRT] /PRINT "^K" 1743 002672 1053 TAD EDLIN /RESET US BACK TO 1744 002673 3060 DCA PUTNDX /BEGINNING OF LINE 1745 002674 4447 LFVIEW, JMS I PR6BIT/[XPR6BIT] /DO A , 1746 002675 1120 TAD SEQSW /GET CURRENT SEQUENCE MODE 1747 002676 7640 SZA CLA /SKIP IF NOT IN SEQUENCE MODE 1748 002677 5305 JMP ENOPROMPT /JUMP IF IN SEQUENCE MODE 1749 002700 1000 TAD UNIT /GET CURRENT UNIT 1750 002701 1307 TAD E60/("0&177) /MAKE IT ASCII 1751 002702 7200 NOEPUNI,CLA /**** ENABLED **** JMS I PRINT/[XPRINT] 1752 002703 1166 TAD PROMPT /GET THE PROMPT CHARACTER 1753 002704 4507 JMS I PRINT/[XPRINT] /PRINT IT 1754 002705 1026 ENOPROM,TAD GETNDX /GET CURRENT INDEX 1755 002706 3020 DCA CHAR /SAVE IT 1756 002707 1060 E60, TAD PUTNDX /GET BUFFER INDEX 1757 002710 7450 SNA /SKIP IF ANYTHING 1758 002711 5562 JMP I PCHLOOP/[CHLOOP] /ELSE FORGET IT 1759 002712 7041 CIA /INVERT TO COUNT WHICH PREVENTS , 1760 002713 4571 JMS I SCRIBE/[XSCRIBE] /GO PRINT THE LINE 1761 002714 2477 INPBUF /AS IT IS NOW 1762 002715 1020 EEXIT, TAD CHAR /GET OLD INDEX 1763 002716 3026 DCA GETNDX /RESTORE IT 1764 002717 1760 TAD I LINST /GET OLD BASE 1765 002720 3031 DCA GETBASE /RESTORE IT 1766 002721 5562 JMP I PCHLOOP/[CHLOOP] /KEEP GOING 1767 / COMES HERE TO FINISH CORE SIZING ROUTINE. 1768 1769 002722 1053 SETPMOR,TAD EDLIN /NOW HAVE PROPER MCS VALUE 1770 002723 7112 CLL RTR;RAR /MOVE MCS BITS TO AC[3-5] 002724 7010 1771 002725 3031 DCA GETBASE /SAVE FOR NOW 1772 002726 1570 TAD I PSCRSIZE/[SCRSIZE] /GET CORE SIZE WORD 1773 002727 0103 AND L77/[77] /KEEP ALL BUT OLD PCS AND MCS BITS 1774 002730 1031 TAD GETBASE /ADD ON NEW MCS BITS 1775 002731 3570 DCA I PSCRSIZE/[SCRSIZE] /STORE FOR NOW 1776 1777 / COMES HERE TO SET NEW PCS BITS ONLY IF CONSOLE OVERLAY PRESENT. 1778 1779 002732 1570 SETPCS, TAD I PSCRSIZE/[SCRSIZE] /GET CONFIGURATION WORD 1780 002733 0345 AND INIT777/(777) /REMOVE ANY OLD PCS BITS 1781 002734 1053 TAD EDLIN /ADD ON CURRENT PCS BITS 1782 002735 3570 DCA I PSCRSIZE/[SCRSIZE] /STORE COMPOSITE CORE SIZE WORD 1783 002736 5452 JMP I BEGLINE/[INPBUF] /CONTINUE THERE 1784 1785 MSCHAR, /-(SEARCH CHARACTER) STORED HERE 1786 002737 0000 ERESTOR,.-. /RESTORE SAVED VALUES ROUTINE 1787 002740 1201 XGLIN1, TAD SAVSEQ /GET SAVED SEQUENCE VALUE 1788 002741 3120 DCA SEQSW /RESTORE IT 1789 002742 1200 TAD SAVSLINUM /GET SAVED LINE NUMBER 1790 002743 3036 DCA SLINUM /RESTORE IT 1791 002744 5737 JMP I ERESTORE /RETURN 1792 1793 EDCANCE, /EDIT MODE CANCEL ROUTINE 1794 002745 0777 INIT777,777 /CONSTANT 0777 FOR STARTUP PURPOSES ONLY 1795 002746 1367 TAD (XWHAT) /RESET THE 1796 002747 3111 DCA WHAT/[XWHAT] /WHAT POINTER 1797 002750 1370 TAD (GOTCR) /RESET THE 1798 002751 3771 DCA I (PNEXT) /INSERTION POINTER 1799 002752 1340 TAD XGLIN1/(XGLINE+1) /RESET THE 1800 002753 3126 DCA PLRST /LINE RESTART POINTER 1801 002754 3776 DCA I (EDENABLE) /CANCEL EDIT COMMAND LIST 1802 002755 1366 TAD (RESEND) /RESET THE 1803 002756 3147 DCA RESMORE /RESET ROUTINE 1804 002757 5745 JMP I EDCANCEL /RETURN 1805 1806 002760 0000 LINST, .-. /LINE START POINTER 1807 002761 0201 BEDMSG, TEXT "BAD LINE!" 002762 0440 002763 1411 002764 1605 002765 4100 1808 002766 0145 PAGE 002767 0330 002770 1241 002771 1245 002772 2652 002773 2001 002774 2745 002775 2631 002776 1276 002777 2641 1809 RELOC RUBPAGE /WHERE THIS WILL EXECUTE 1810 1811 / BATCH EXIT CODE FINISHES HERE. 1812 1813 007400* 4561 RUBFLG, JMS I PBUTIO/[BUTIO] /\ 1814 007401* 2600 RTEMP1, EDITIT / \LOAD THE 1815 007402* 0100 RTEMP2, 1^100 / /EDIT PAGE 1816 007403* 0014 RTEMP3, EDITIT%200+1 // 1817 007404* 7200 ROVFLO, CLA /CLEAN UP DIRTY AC 1818 007405* 4447 JMS I PR6BIT/[XPR6BIT]/DO A , 1819 007406* 5526 JMP I PLRST /RESTART INPUT 1820 1821 007407* 1217 GOTESC, TAD RALTCH /GET AN INDICATOR 1822 007410* 4507 JMS I PRINT/[XPRINT] /AND PRINT IT 1823 007411* 4532 JMS I PUTHAF/[XPUTHAF]/FAKE AN 1824 007412* 1060 TAD PUTNDX /GET OUTPUT INDEX 1825 007413* 7650 SNA CLA /SKIP IF SOMETHING THERE 1826 007414* 4447 JMS I PR6BIT /ELSE DO A , 1827 007415* 5616 JMP I .+1/(GLINGO) /AND LOOK AS IF IT WERE 1828 007416* 1325 GLINGO /POINTER TO WHERE TO GO BACK TO 1829 1830 007417* 0044 RALTCH, "$&177 /DEFAULT INDICATOR 1831 007420* 0134 RDELIM, "\&177 /DEFAULT DELIMITER 1832 1833 IFNZRO .-RDELIM-1 1834 007421* 1026 BACKSP, TAD GETNDX /\ 1835 007422* 3202 DCA RTEMP2 / \SAVE GETHAF POINTERS 1836 007423* 1031 TAD GETBASE / /FOR EDIT COMMAND 1837 007424* 3203 DCA RTEMP3 // 1838 007425* 7240 NL7777 /GET A MINUS 1 1839 007426* 1060 TAD PUTNDX /ADD PUT OFFSET VALUE 1840 007427* 7510 SPA /AT ? 1841 007430* 5204 JMP ROVFLO /YES, JUST RESTART LINE 1842 007431* 3026 DCA GETNDX /ELSE SAVE COPY 1843 007432* 1052 TAD BEGLINE/[INPBUF]/SET GETHAF BASE POINTER 1844 007433* 3031 DCA GETBASE /TO BEGINNING OF LINE 1845 007434* 3200 DCA RUBFLG /INDICATE NO LINE OVERFLOW YET 1846 007435* 1220 TAD RDELIM /GET DELIMITER 1847 007436* 4507 JMS I PRINT/[XPRINT] /AND PRINT IT 1848 007437* 7240 RAGN, NL7777 /GET A -1 1849 007440* 1060 TAD PUTNDX /OFF OF PUT OFFSET 1850 007441* 7510 SPA /OVERFLOW? 1851 007442* 5306 JMP RNOMOR /YES, CLOSE LINE AND START NEW ONE 1852 007443* 3060 DCA PUTNDX /ELSE SAVE THE NEW VALUE 1853 007444* 7201 PRMPCNT,NL0001/OR NL0002 /PROMPT COUNT INSTRUCTION FOR BACKUP MODES 1854 007445* 7200 CLA /CLEAN UP 1855 007446* 1053 TAD EDLIN /\ 1856 007447* 7041 CIA / \ 1857 007450* 1060 TAD PUTNDX / \ 1858 007451* 7700 SMA CLA / >IF EDLIN>PUTNDX, EDLIN=PUTNDX 1859 007452* 5255 JMP .+3 / / 1860 007453* 1060 TAD PUTNDX / / 1861 007454* 3053 DCA EDLIN // 1862 007455* 4504 JMS I GETHAF/[XGETHAF] /GET RUBBED-OUT CHARACTER 1863 007456* 4447 JMS I PR6BIT/[XPR6BIT] /ECHO IT ON TTY: 1864 007457* 1223 RCHLP2, CHLOOP+2 /POINTER TO REJOINED CODE; THIS WILL BE SKIPPED 1865 007460* 7240 NL7777 /LOAD AC WITH -1 1866 007461* 1060 TAD PUTNDX /ADD ON PUT OFFSET 1867 007462* 3026 DCA GETNDX /AND SAVE IT FOR NEXT TIME 1868 007463* 4433 JMS I INPUT /CAPTIVATE INPUT 1869 007464* 3100 DCA TEMP1 /SAVE IT IN GOOD LOCATION 1870 007465* 1100 TAD TEMP1 /GET WHAT HE TYPED 1871 007466* 1040 TAD L7770/[-"H!300] /IS IT ? 1872 007467* 7440 SZA /SKIP IF SO 1873 007470* 1170 TAD PSCRSIZE/[-177+"H-300] /OR IS IT ? 1874 007471* 7440 SZA /SKIP IF EITHER 1875 007472* 1046 TAD L40/[-137+177] /OR IS IT UNDERSCORE? 1876 007473* 7650 SNA CLA /SKIP IF NONE OF THEM 1877 007474* 5237 JMP RAGN /JUMP IF ANY OF THEM 1878 007475* 1220 REXIT, TAD RDELIM /GET DELIMITER 1879 007476* 4507 JMS I PRINT/[XPRINT] /AND PRINT IT TO ENCLOSE 1880 007477* 1202 TAD RTEMP2 /\ 1881 007500* 3026 DCA GETNDX / \RESTORE POINTERS 1882 007501* 1203 TAD RTEMP3 / /FOR EDIT COMMAND 1883 007502* 3031 DCA GETBASE // 1884 007503* 2200 ISZ RUBFLG /ARE WE HERE DUE TO OVERFLOW? 1885 007504* 5657 JMP I RCHLP2/(CHLOOP+2) /NO, RESUME CLEANLY 1886 007505* 5204 JMP ROVFLO /YES, RESTART LINE 1887 1888 007506* 7240 RNOMOR, NL7777 /SET LINE OVERFLOW 1889 007507* 3200 DCA RUBFLG /FOR ALL TO SEE 1890 007510* 5275 JMP REXIT /AND LEAVE 1891 1892 007511* 0000 ZBLOCK 25 /FOR ALIGNMENT WITH OTHER CODE 007512* 0000 007513* 0000 007514* 0000 007515* 0000 007516* 0000 007517* 0000 007520* 0000 007521* 0000 007522* 0000 007523* 0000 007524* 0000 007525* 0000 007526* 0000 007527* 0000 007530* 0000 007531* 0000 007532* 0000 007533* 0000 007534* 0000 007535* 0000 1893 007536* 6201 TRYNXT, CDF 00 /FOR THE PDP-8/L 1894 007537* 6211 CDFNXT, CDF 10 /REFERENCE NEXT FIELD 1895 007540* 1512 TAD I MESSAGE/[GETBASE] /GET ITS TEST LOCATION 1896 007541* 3053 DCA EDLIN /SAVE FOR RESTORATION 1897 007542* 1150 TAD CATCORE/[7000] /GET A 7000 1898 007543* 3512 DCA I MESSAGE/[GETBASE] /STORE IT TENTATIVELY 1899 007544* 1512 TAD I MESSAGE/[GETBASE] /TRY TO REGAIN IT 1900 007545* 1047 TAD L1000/[-7000] /7000 + 1000 = 0000 1901 007546* 7450 SNA /SKIP IF WE FAILED 1902 007547* 1031 TAD GETBASE /DID WE HIT OUR LOCATION? 1903 007550* 7640 SZA CLA /SKIP IF NOT 1904 007551* 5361 JMP HARDEND /JUMP IF WE ZAPPED OUR LOCATION 1905 007552* 1053 TAD EDLIN /RESTORE TEST LOCATION 1906 007553* 3512 DCA I MESSAGE/[GETBASE] /IN THE TEST FIELD 1907 007554* 1337 TAD CDFNXT /\ 1908 007555* 1174 TAD L10/[10] / >INCREMENT TO NEXT FIELD 1909 007556* 3337 DCA CDFNXT // 1910 007557* 2134 ISZ NEWCAT /INCREMENT COUNTER 1911 007560* 5336 JMP TRYNXT /TRY NEXT FIELD 1912 007561* 6201 HARDEND,CDF 00 /RESTORE DATA FIELD 1913 007562* 1134 TAD NEWCAT /GET NEGATIVE COUNTER 1914 007563* 1177 TAD L7/[7] /MAKE IT POSITIVE 1915 007564* 7112 CLL RTR /MOVE PHYSICAL SIZE 1916 007565* 7012 RTR /INTO AC[0-2] 1917 007566* 3053 DCA EDLIN /SAVE TEMPORARILY 1918 007567* 1570 TAD I PSCRSIZE/[SCRSIZE] /GET CORE SIZE WORD 1919 007570* 0010 AND L2/[2] /ISOLATE "C" BIT 1920 007571* 7640 SZA CLA /WAS IT SET? 1921 007572* 5403 JMP I PSETPCS/[SETPCS] /JUMP IF SO; DON'T TOUCH MCS BITS 1922 007573* 1570 TAD I PSCRSIZE/[SCRSIZE] /GET CORE SIZE WORD AGAIN 1923 007574* 0037 AND UNITIO/[4] /JUST "J" BIT 1924 007575* 7640 SZA CLA /SKIP IF UNLIMITED SYSTEM 1925 007576* 1150 TAD CATCORE/[-1^1000] /ELSE BACKUP BY ONE FIELD 1926 007577* 5460 JMP I PUTNDX/[SETPMORE] /CONTINUE THERE 1927 1928 RELOC /TURN OFF RELOCATION 1929 1930 FIELD 0 /DUMP ALL LITERAL TABLES NOW 1931 / P?S/8 BATCH SYSTEM. 1932 1933 / ONCE-ONLY CODE. 1934 1935 *BATSGA /WHERE IT GENERATES 1936 1937 RELOC BATMEM /WHERE IT EXECUTES 1938 1939 IFNZRO .&177 1940 007400* 7000 BATSTRT,NOP /IN CASE WE'RE CHAINED TO 1941 007401* 1377 TAD (EREAD) /SETUP OUR 1942 007402* 3033 DCA INPUT /INPUT POINTER 1943 007403* 1376 TAD (SCMORE) /FORCE OFF ANY 1944 007404* 3073 DCA RST /OLD BATCH 1945 007405* 1111 TAD WHAT/[XWHAT] /INVALIDATE THE 1946 007406* 3775 DCA I (EDCMND) /"EDIT" COMMAND 1947 007407* 1374 TAD (PECTLC&177+JMPIC) /SETUP THE 1948 007410* 3773 DCA I (CTCZAP) /<^C> TRAP 1949 007411* 1620 TAD I BMFUN/(SFUN) /GET OUR FUNCTION WORD 1950 007412* 3220 DCA BMFUN /STORE IN-LINE 1951 007413* 1621 TAD I BMBLK/(SBLOCK) /GET OUR BLOCK 1952 007414* 7001 IAC /BUMP TO CODE BLOCK 1953 007415* 3221 DCA BMBLK /STORE IN-LINE 1954 007416* 4572 JMS I SSYSIO/[SYSIO] /CALL I/O ROUTINES 1955 007417* 2600 BATCORE /BATCH ADDRESS 1956 007420* 7634 BMFUN, SFUN /FUNCTION WORD 1957 007421* 7635 BMBLK, SBLOCK /BLOCK NUMBER 1958 007422* 7201 NL0001 /SETUP MASK 1959 007423* 0772 AND I (SWMX) /GET /X BIT 1960 007424* 7650 SNA CLA /SKIP IF SET 1961 007425* 5230 JMP .+3 /JUMP IF NOT 1962 007426* 1465 TAD I L7756/[SPARM] /GET EQUALS PARAMETER 1963 007427* 3771 DCA I (ETEST) /CHANGE TEST CHARACTER 1964 007430* 1770 TAD I (SOUTFLS) /GET OUTPUT FILE COUNT 1965 007431* 1767 TAD I (EFILE) /UPDATE FILE POINTER 1966 007432* 3767 DCA I (EFILE) /STORE IT BACK 1967 007433* 4447 JMS I PR6BIT/[XPR6BIT] /DO A , 1968 007434* 4571 JMS I SCRIBE/[XSCRIBE] /TELL THEM 1969 007435* 7531 BSTMSG /OUR STARTUP MESSAGE 1970 007436* 4447 JMS I PR6BIT/[XPR6BIT] /DO A , 1971 007437* 1766 TAD I (SWAL) /GET /A-/L 1972 007440* 0105 AND L200/[200] /JUST /E 1973 007441* 7640 SZA CLA /SKIP IF OFF 1974 007442* 5246 JMP ETESTA /JUMP IF ON 1975 007443* 3255 DCA EZAP /MAKE IT ALWAYS SAVE 1976 007444* 1365 TAD (EBRK) /SETUP 1977 007445* 3073 DCA RST /EXECUTION TRAP 1978 007446* 1766 ETESTA, TAD I (SWAL) /GET /A-/L 1979 007447* 7700 SMA CLA /SKIP IF /A SET 1980 007450* 5301 JMP EMORE /JUMP IF NOT 1981 007451* 1425 TAD I FIZZ1/[FILBEG+3776] /GET FILE LIMIT 1982 007452* 7041 CIA /INVERT IT 1983 007453* 1364 TAD (FILBEG+200) /COMPARE TO ONE PAGE LIMIT 1984 007454* 7740 SMA SZA CLA /SKIP IF GREATER THAN ONE PAGE 1985 007455* 5273 EZAP, JMP EMOR /**** NOT /E **** 0000 1986 007456* 1363 TAD (-16) /SETUP MESSAGE LIMIT 1987 007457* 4571 JMS I SCRIBE/[XSCRIBE] /TELL THEM 1988 007460* 7522 BSFMSG /WE ARE SAVING THE FILE 1989 007461* 1567 TAD I PSBTFUN/[SBTFUN] /GET BOOTSTRAP UNIT 1990 007462* 0177 AND L7/[7] /JUST UNIT BITS 1991 007463* 1362 TAD ("0&177) /MAKE IT ASCII 1992 007464* 4507 JMS I PRINT/[XPRINT] /PRINT THE UNIT 1993 007465* 4447 JMS I PR6BIT/[XPR6BIT] /DO A , 1994 007466* 4447 JMS I PR6BIT/[XPR6BIT] /DO A , 1995 007467* 4561 JMS I PBUTIO/[BUTIO] /CALL I/O ROUTINES 1996 007470* 3000 BFILBEG,FILBEG /TO WRITE OUT 1997 007471* 6000 FILSIZE^100+WRITE /THE FILE 1998 007472* 0020 BINADR /IN %:U 1999 007473* 1361 EMOR, TAD (EFIXIT) /SETUP NEW 2000 007474* 3760 DCA I (ETRIM) /CO-ROUTINE EXIT 2001 007475* 1567 TAD I PSBTFUN/[SBTFUN] /GET BOOTSTRAP UNIT 2002 007476* 0177 AND L7/[7] /JUST UNIT BITS 2003 007477* 1006 TAD L100/[1^100] /ADD ON PAGE BITS 2004 007500* 3757 DCA I (EFUN) /STORE IN I/O CALL 2005 007501* 1772 EMORE, TAD I (SWMX) /GET /M-/X 2006 007502* 0006 AND L100/[100] /JUST /R 2007 007503* 7650 SNA CLA /SKIP IF /R BIT SET 2008 007504* 5307 JMP .+3 /JUMP IF NOT 2009 007505* 1356 TAD ("R&37) /GET <^R> 2010 007506* 3755 DCA I (EEOSEQ) /STORE IN CHARACTER CONVERSION LOCATION 2011 007507* 1354 TAD (JMP I PBEGIN/[BEGIN]) /FORCE OFF 2012 007510* 3457 DCA I WHATMORE/[XWHATMORE] /ANY OLD BATCH 2013 007511* 3120 DCA SEQSW /FORCE OFF SEQUENCE MODE 2014 007512* 1353 TAD (BATCORE-2) /SETUP THE 2015 007513* 3527 DCA I PMOVE/[XMOVE] /PHONEY JMS 2016 007514* 1270 TAD BFILBEG /GET FIRST ARGUMENT 2017 007515* 3753 DCA I (BATCORE-2) /STORE IT IN-LINE 2018 007516* 1352 TAD (RUBPAGE) /GET SECOND ARGUMENT 2019 007517* 3751 DCA I (BATCORE-1) /STORE IT IN-LINE 2020 007520* 1113 TAD L7600/[-200] /GET COUNT TO MOVE 2021 007521* 5750 JMP I (MOVE+1) /CONTINUE IN SUBROUTINE 2022 2023 007522* 4427 BSFMSG, TEXT "$WRITE FILE %:" /BATCH FILE WRITE MESSAGE 007523* 2211 007524* 2405 007525* 4006 007526* 1114 007527* 0540 007530* 4572 2024 007531* 4423 BSTMSG, TEXT "$START BATCH";0 /BATCH STARTUP MESSAGE 007532* 2401 007533* 2224 007534* 4002 007535* 0124 007536* 0310 007537* 0000 2025 2026 / EXECUTION CONTINUES ON PAGE 2600. 2027 007550* 0342 PAGE 007551* 2577 007552* 7400 007553* 2576 007554* 5471 007555* 2752 007556* 0022 007557* 2664 007560* 2615 007561* 2666 007562* 0060 007563* 7762 007564* 3200 007565* 2730 007566* 7604 007567* 2753 007570* 7607 007571* 2756 007572* 7605 007573* 2365 007574* 5766 007575* 2425 007576* 1414 007577* 2605 2028 2029 RELOC /TURN OFF RELOCATION 2030 / BATCH CODE. 2031 2032 / THIS IS THE RESIDENT BATCH CODE LOADED BY THE BATCH SYSTEM (ONCE-ONLY) CODE. 2033 2034 RELOC BATCORE /EXECUTION ADDRESS 2035 2036 002600* 7332 BATCORE,NL2000 /\ 2037 002601* 0605 AND I EREAD/(SWMX) / >CHECK /N SWITCH 2038 002602* 7640 SZA CLA // 2039 002603* 5471 EJMPBGN,JMP I PBEGIN/[BEGIN] /DON'T SCRATCH IF IT'S ON 2040 002604* 5754 JMP I EPTR/(NEWBUF) /DO SCRATCH IF IT'S OFF 2041 2042 002605* 7605 EREAD, SWMX /GIVE ME A CHARACTER ENTRY 2043 002606* 5615 JMP I ETRIM /GO WHERE YOU'RE SUPPOSED TO GO 2044 2045 / COMES HERE ON <^C> FROM THE KEYBOARD MONITOR ITSELF. 2046 2047 002607* 4561 ECTLC, JMS I PBUTIO/[BUTIO] /\ 2048 002610* 3000 BATRL / \RELOAD THE BATCH 2049 002611* 0500 BTRLEN^100 / /RECOVERY ROUTINE 2050 002612* 0115 BTRLBLK // 2051 002613* 7240 NL7777 /INDICATE <^C> FOUND 2052 002614* 4610 JMS I .-4/(BATRL) /START IT UP 2053 2054 002615* 2672 ETRIM, EOF /EXIT ROUTINE 2055 002616* 0103 AND L77/[77] /TRIM TO SIX-BIT 2056 002617* 7450 SNA / CHARACTER? 2057 002620* 5236 JMP EOL /YES 2058 002621* 7041 CIA /\ 2059 002622* 1356 TAD ETEST / \ 2060 002623* 7450 SNA / \IF THIS IS CHARACTER 2061 002624* 5242 JMP EZ / /THEN CONVERT TO APPROPRIATE 2062 002625* 7041 CIA / / 2063 002626* 1356 TAD ETEST // 2064 002627* 1011 TAD L7741/[-37] /\ 2065 002630* 7450 SNA / >FIXUP 2066 002631* 1377 TAD (7652) // 2067 002632* 7510 SPA /\ 2068 002633* 1006 TAD L100/[100] / >MAKE IT SEVEN-BIT 2069 002634* 1064 TAD L37/[37] // 2070 002635* 5605 JMP I EREAD /RETURN TO CALLER 2071 2072 002636* 1376 EOL, TAD (ERSET) /RESET TO ALIGNED 2073 002637* 3215 DCA ETRIM /RETURN FOR NEXT 2074 002640* 1041 TAD L15/[15] /GIVE A CARRIAGE 2075 002641* 5605 JMP I EREAD /RETURN THIS TIME 2076 2077 002642* 1352 EZ, TAD EEOSEQ /GET <^Z> OR <^R> 2078 002643* 5605 JMP I EREAD /RETURN TO CALLER WITH THIS 2079 002644* 1754 EBACK, TAD I EPTR /FETCH A WORD 2080 002645* 7450 SNA /SKIP IF ITS OK 2081 002646* 5272 JMP EOF /ELSE TAKE END OF FILE BRANCH 2082 002647* 7012 RTR;RTR;RTR /MOVE OVER 002650* 7012 002651* 7012 2083 002652* 4215 JMS ETRIM /GO TRIM CHARACTER 2084 002653* 1754 TAD I EPTR /FETCH THE WORD AGAIN 2085 002654* 4215 JMS ETRIM /GO TRIM SECOND CHARACTER 2086 002655* 2354 ERSET, ISZ EPTR /BUMP FETCH POINTER 2087 002656* 1354 TAD EPTR /GET POINTER 2088 002657* 1105 TAD L200/[-RUBPAGE-200] /COMPARE TO LIMIT 2089 002660* 7640 SZA CLA /DONE WITH BUFFER? 2090 002661* 5244 JMP EBACK /NO... NOT QUITE YET 2091 002662* 4572 EOB, JMS I SSYSIO/[SYSIO] /\ 2092 002663* 7400 E7400, RUBPAGE / \READ IN 2093 002664* 0100 EFUN, 1^100+.-. / /NEXT BLOCK 2094 002665* 0020 EBLOCK, BINADR // 2095 002666* 2265 EFIXIT, ISZ EBLOCK /BUMP BLOCK NUMBER 2096 002667* 1263 TAD E7400/(RUBPAGE) /RESET 2097 002670* 3354 DCA EPTR /POINTER 2098 002671* 5244 JMP EBACK /GO DO IT AGAIN 2099 2100 002672* 2353 EOF, ISZ EFILE /BUMP TO NEXT FILE 2101 002673* 1040 TAD L7770/[7770] /GET FILE MASK 2102 002674* 0753 AND I EFILE /JUST BLOCK BITS 2103 002675* 7450 SNA /? 2104 002676* 5305 JMP EOT /YES 2105 002677* 3265 DCA EBLOCK /NO, PUT INTO CALL 2106 002700* 1753 TAD I EFILE /GET UNIT BITS 2107 002701* 0177 E177, AND L7/[7] /AND JUST UNIT BITS 2108 002702* 1006 TAD L100/[1^100] /ADD ON ONE PAGE 2109 002703* 3264 DCA EFUN /PUT INTO CALL 2110 002704* 5262 JMP EOB /NOW READ A BUFFER IN 2111 2112 002705* 1375 EOT, TAD (SCMORE) /ALLOW A NORMAL EXTENDED 2113 002706* 3073 DCA RST /COMMAND OR "R" 2114 002707* 1374 TAD (EDCOM) /RESTORE 2115 002710* 3773 DCA I (EDCMND) /"EDIT" COMMAND 2116 002711* 1203 TAD EJMPBGN/(JMP I PBEGIN/[BEGIN]) /ALLOW 2117 002712* 3457 DCA I WHATMORE/[XWHATMORE] /ERRORS 2118 002713* 1055 TAD PTTYR/[TTYR] /RESTORE THE 2119 002714* 3033 DCA INPUT /INPUT POINTER 2120 002715* 1203 TAD EJMPBGN/(JMP I PBEGIN/[BEGIN]) /RESTORE NORMAL 2121 002716* 3772 DCA I (CTCZAP) /<^C> HANDLING 2122 002717* 3024 DCA ECHOSW /FORCE ECHO ON 2123 002720* 4561 JMS I PBUTIO/[BUTIO] /\ 2124 002721* 7400 PRUBPAG,RUBPAGE / \ 2125 002722* 0100 1^100 / /RELOAD PAGE 2126 002723* 0017 RUBBLK // 2127 002724* 4447 JMS I PR6BIT/[XPR6BIT] /DO A , 2128 002725* 4571 JMS I SCRIBE/[XSCRIBE] /TELL THEM 2129 002726* 2757 BFNMSG /BATCH IS DONE 2130 002727* 5721 JMP I PRUBPAGE/(RUBPAGE) /FINISH IT THERE 2131 / COMES HERE TO BREAKPOINT THE MONITOR FOR BATCH FROM THE 2132 / EXTENDED COMMAND PROCESSOR AND THE "R", "RU(N)" COMMANDS. 2133 2134 002730* 4561 EBRK, JMS I PBUTIO/[BUTIO] /\ 2135 002731* 0400 XTSPACE&7600 / \SAVE ACTIVATED 2136 002732* 4100 1^100+WRITE / /MONITOR BLOCK 2137 002733* 0003 XTSPACE%200+1 // 2138 002734* 4561 JMS I PBUTIO/[BUTIO] /\ 2139 002735* 2600 EDITIT / \SAVE ACTIVE 2140 002736* 4100 1^100+WRITE / /COPY OF BATCH 2141 002737* 0116 BTRLBLK+1 // 2142 002740* 4561 JMS I PBUTIO/[BUTIO] /\ 2143 002741* 7400 RUBPAGE / \SAVE THE BUFFER, 2144 002742* 4200 2^100+WRITE / /SYSIO PAGE 2145 002743* 0117 BTRLBLK+2 // 2146 002744* 4561 JMS I PBUTIO/[BUTIO] /\ 2147 002745* 0000 0000 / \SAVE PAGE 2148 002746* 4100 1^100+WRITE / /ZERO STUFF 2149 002747* 0121 BTRLBLK+4 // 2150 002750* 3457 DCA I WHATMORE/[XWHATMORE] /EXTENDED COMMAND, "R" ERRORS BOOTSTRAP 2151 002751* 5755 JMP I ERST /GO DO EXTENDED COMMAND OR "R" PART 2 2152 2153 002752* 0032 EEOSEQ, "Z&37 /**** /R **** "R&37 2154 002753* 7756 EFILE, SFILES-1 /FILE POINTER 2155 002754* 0400 EPTR, NEWBUF /BUFFER POINTER 2156 002755* 1414 ERST, SCMORE /NEXT EXECUTION ADDRESS 2157 002756* 0034 ETEST, "\&77 / CHARACTER 2158 002757* 4405 BFNMSG, TEXT "$END BATCH";0 /BATCH DONE MESSAGE 002760* 1604 002761* 4002 002762* 0124 002763* 0310 002764* 0000 2159 2160 002772* 2365 PAGE 002773* 2425 002774* 2602 002775* 1414 002776* 2655 002777* 7652 2161 2162 RELOC /TURN OFF RELOCATION 2163 FIELD BRLGEN&70%10 /GENERATION FIELD 2164 2165 *BRLGEN&7600 /GENERATION ADDRESS 2166 2167 BRLCORE,NOPUNCH /STOP BINARY OUTPUT 2168 2169 FIELD 0 /EXECUTION FIELD 2170 2171 *BRLCORE /RESTORE ORIGIN 2172 2173 ENPUNCH /RESTORE BINARY OUTPUT 2174 2175 RELOC FILBEG /WHERE IT WILL EXECUTE 2176 2177 003000* 0000 BATRL, .-. /RECOVERY ENTRY POINT 2178 003001* 3327 DCA BATSW /SAVE <^C> INDICATOR 2179 003002* 4561 JMS I PBUTIO/[BUTIO] /\ 2180 003003* 0400 XTSPACE&7600 / \READ IN 2181 003004* 0100 1^100 / /BLOCK THREE 2182 003005* 0003 XTSPACE%200+1 // 2183 003006* 7240 NL7777 /TURN OFF BATCH 2184 003007* 3510 DCA I TSPACE/[XTSPACE] /IN BLOCK THREE 2185 003010* 4561 JMS I PBUTIO/[BUTIO] /\ 2186 003011* 0400 XTSPACE&7600 / \WRITE BACK 2187 003012* 4100 1^100+WRITE / /BLOCK THREE 2188 003013* 0003 XTSPACE%200+1 // 2189 003014* 1200 TAD BATRL /GET CALLER'S ADDRESS 2190 003015* 1377 TAD (-ETRIM) /COMPARE TO MONITOR'S <^C> ADDRESS 2191 003016* 7650 SNA CLA /SKIP IF TIME-OUT CODE IS THE CALLER 2192 003017* 5312 JMP UPCDONE /JUMP IF "^C" ALREADY PRINTED 2193 003020* 4267 JMS BTCHEK /CHECK FOR <^C> 2194 003021* 1111 TAD WHAT/[XWHAT] /DESTROY THE 2195 003022* 3776 DCA I (EDCMND) /EDIT COMMAND 2196 003023* 1375 TAD (EBRK) /RESET THE 2197 003024* 3073 DCA RST /BATCH BREAKPOINT 2198 003025* 1374 TAD (PECTLC&177+JMPIC) /RESET THE 2199 003026* 3773 DCA I (CTCZAP) /MONITOR'S <^C> HANDLER 2200 003027* 1113 TAD L7600/[-200] /\ 2201 003030* 4527 JMS I PMOVE/[MOVE] / \MOVE DOWN THE 2202 003031* 3200 BATRL+200 / /ACTIVE BATCH 2203 003032* 2600 BATCORE // 2204 003033* 1372 TAD (SCMORE) /RESET THE 2205 003034* 3771 DCA I (ERST) /BREAK RETURN ADDRESS 2206 003035* 4267 JMS BTCHEK /CHECK FOR <^C> AGAIN 2207 003036* 1113 TAD L7600/[-200] /\ 2208 003037* 4527 JMS I PMOVE/[MOVE] / \MOVE DOWN THE 2209 003040* 3400 BATRL+400 / /BATCH BUFFER 2210 003041* 7400 RUBPAGE // 2211 003042* 4267 JMS BTCHEK /CHECK FOR <^C> AGAIN 2212 003043* 1065 TAD L7756/[-22] /\ 2213 003044* 4527 JMS I PMOVE/[MOVE] / \MOVE DOWN THE EQUALS 2214 003045* 3756 SPARM&177+BATRL+600 / /AND FILE PARAMETERS 2215 003046* 7756 SPARM // 2216 003047* 4267 JMS BTCHEK /CHECK FOR <^C> AGAIN 2217 003050* 1730 TAD I BTFROM /\ 2218 003051* 3732 DCA I BTTO / \ 2219 003052* 2330 ISZ BTFROM / \MOVE DOWN THE 2220 003053* 2332 ISZ BTTO / /COPY OF PAGE ZERO 2221 003054* 2331 ISZ BTRLCNT / / 2222 003055* 5250 JMP .-5 // 2223 003056* 1070 TAD OLDUNIT /RESTORE 2224 003057* 3000 DCA UNIT /PREVIOUS UNIT 2225 003060* 1067 TAD OLDRADIX /RESTORE 2226 003061* 3015 DCA RADXSW /PREVIOUS RADIX 2227 003062* 3121 DCA SWAPSW /FOR LESS OVERHEAD 2228 003063* 4267 JMS BTCHEK /CHECK FOR <^C> AGAIN 2229 003064* 4565 JMS I PLODCAT/[LODCAT] /RELOAD THE CATALOG 2230 003065* 4267 JMS BTCHEK /CHECK FOR <^C> AGAIN 2231 003066* 5770 JMP I (NOTUPC) /CONTINUE THERE 2232 2233 003067* 0000 BTCHEK, .-. /<^C> CHECK ROUTINE 2234 003070* 1327 TAD BATSW /GET PASSED VALUE 2235 003071* 7040 CMA /INVERT FOR TESTING 2236 003072* 7650 SNA CLA /SKIP IF NOT <^C> VALUE 2237 003073* 5310 JMP GOTUC /JUMP IF IT IS 2238 003074* 1570 TAD I PSCRSIZE/[SCRSIZE] /GET CORE SIZE WORD 2239 003075* 7012 RTR /"C" BIT TO LINK, "^C" BIT TO AC[0] 2240 003076* 7710 SPA CLA /SKIP IF <^C> NOT DETECTED 2241 003077* 5310 JMP GOTUC /JUMP IF IT WAS 2242 003100* 7420 SNL /SKIP IF OVERLAY IN EFFECT 2243 003101* 6031 KSFIOT /CONSOLE FLAG UP? 2244 003102* 5667 JMP I BTCHEK /NO, FORGET IT 2245 003103* 6036 KRBIOT /YES, GET THE CHARACTER 2246 003104* 0367 AND (177) /JUST SEVEN-BIT 2247 003105* 1366 TAD (-3) /COMPARE TO <^C> 2248 003106* 7640 SZA CLA /SKIP IF IT MATCHES 2249 003107* 5667 JMP I BTCHEK /ELSE RETURN 2250 GOTUC,/ TAD BATRL /GET CALLER 2251 / TAD (-ETRIM) /COMPARE TO MONITOR'S CALL 2252 / SNA CLA /SKIP IF TIME-OUT CALLER 2253 / JMP UPCDONE /JUMP IF MONITOR CALLING 2254 003110* 4112 JMS MESSAGE /TELL THEM 2255 003111* 3143 BATUPC /^C NOW 2256 003112* 1365 UPCDONE,TAD (-20) /LIMIT THE CALL TO PREVENT , 2257 003113* 4571 JMS I SCRIBE/[XSCRIBE] /PRINT OUT 2258 003114* 3133 BABTMSG /ABORT MESSAGE 2259 003115* 7344 NL7776 /SETUP MASK 2260 003116* 0570 AND I PSCRSIZE/[SCRSIZE] /GET THE OTHER BITS 2261 003117* 3570 DCA I PSCRSIZE/[SCRSIZE] /CLEAR "^C" BIT 2262 003120* 7326 NL0002 /SET "C" MASK 2263 003121* 0570 AND I PSCRSIZE/[SCRSIZE] /GET THE BIT 2264 003122* 7640 SZA CLA /SKIP IF NO OVERLAY 2265 003123* 5513 JMP I L7600/[SBOOT] /JUST BOOTSTRAP, OVERLAY WILL SAY "^C" 2266 003124* 4466 JMS I NAMPRT/[XNAMPRT] /ELSE WE SAY 2267 003125* 3143 BATUPC /^C 2268 003126* 5513 JMP I L7600/[SBOOT] /NOW GO BOOTSTRAP 2269 003127* 0000 BATSW, .-. /<^C> TO BATCH SWITCH 2270 003130* 4000 BTFROM, BATRL+1000 /WHERE PAGE ZERO IMAGE WAS LOADED 2271 003131* 7600 BTRLCNT,-200 /PAGE ZERO MOVE COUNT 2272 003132* 0000 BTTO, UNIT /WHERE PAGE ZERO BELONGS 2273 003133* 4405 BABTMSG,TEXT "$END BATCH FROM " 003134* 1604 003135* 4002 003136* 0124 003137* 0310 003140* 4006 003141* 2217 003142* 1540 2274 003143* 3603 BATUPC, TEXT "^C";0 003144* 0000 2275 2276 003165* 7760 PAGE 003166* 7775 003167* 0177 003170* 2533 003171* 2755 003172* 1414 003173* 2365 003174* 5766 003175* 2730 003176* 2425 003177* 5163 2277 2278 RELOC /TURN OFF RELOCATION 2279 / STRING SEARCH FOR P?S/8 2280 2281 / STRING SEARCH OVERLAY FOR THE P?S/8 KEYBOARD MONITOR/EDITOR. 2282 2283 / USAGE: 2284 2285 / FIND [DELIMITER] [SEARCH STRING] [OPTIONAL DELIMITER] 2286 2287 / CHANGE [DELIMITER] [SEARCH STRING] [OPTIONAL DELIMITER] 2288 / [OPTIONAL REPLACEMENT STRING] 2289 2290 / OPTIONS: 2291 2292 / /A SEARCH ADDITIONAL LINES PAST THE FIRST MATCHING ONE 2293 / FOR THE SEARCH STRING. 2294 2295 / =NNNN START SEARCH FOR SEARCH STRING AT LINE NNNN IN THE FILE. 2296 2297 / [NULL STRING] NULL STRINGS ARE VALID AND ARE DEFINED AS BEING LOCATED 2298 / AT THE BEGINNING OF THE LINE. PASSING A NULL STRING AS A 2299 / SEARCH STRING TO CHANGE WILL INSERT THE REPLACEMENT STRING 2300 / AT THE BEGINNING OF THE LINE. PASSING A NULL STRING AS A 2301 / SEARCH STRING TO FIND WILL MATCH ANY LINE. PASSING A 2302 / NULL STRING OR NO STRING AT ALL AS A REPLACEMENT STRING 2303 / TO CHANGE WILL IMPLY DELETING THE SEARCH STRING. 2304 / THE SECOND DELIMITER IS MANDATORY WHEN PASSING A 2305 / REPLACEMENT STRING TO CHANGE. IT IS ALLOWED BUT NOT 2306 / NECESSARY WHEN JUST DELETING THE SEARCH STRING IN THE FILE. 2307 2308 / RESTRICTIONS: 2309 2310 / ALL EQUALS PARAMETER AND SWITCH SETTINGS MUST BE PASSED BEFORE THE 2311 / FIRST DELIMITER. THE DELIMITER CHARACTER SET IS ANY PRINTING CHARACTER 2312 / EXCEPT: 2313 2314 / ( ) / < = > 2315 2316 / THE DELIMITER CHARACTER CANNOT BE IN THE SEARCH STRING, BUT IS 2317 / ALLOWED IN THE REPLACEMENT STRING. 2318 2319 / BATCH USAGE: 2320 2321 / FIND AND CHANGE COMMANDS ARE NOT ALLOWED FROM NORMAL BATCH. 2322 2323 / FIND AND CHANGE COMMANDS ARE ALLOWED FROM BATCH WITH THE /E OPTION INVOKED 2324 / WHICH IN TURN CAN BE RUN FROM THE NORMAL BATCH. 2325 FIELD FNDGEN&70%10 /GENERATION FIELD 2326 2327 *FNDGEN&7600 /GENERATION ADDRESS 2328 2329 FNDCORE,NOPUNCH /FOOL THE ASSEMBLER 2330 2331 FIELD 0 /WHERE IT LOADS 2332 2333 *FNDCORE /RESTORE ORIGIN 2334 2335 ENPUNCH /UN-FOOL THE ASSEMBLER 2336 2337 RELOC XGLINE /WHERE IT EXECUTES 2338 2339 IFNZRO .&177 2340 2341 FIND= . /FIND SYSTEM STARTS HERE 2342 2343 001200* 7000 XGLINE, NOP /OVER GLINE ROUTINE; NOP IN CASE OF CHAINING 2344 001201* 5725 XGLIN2, JMP I FRESET/(FINDENTRY) /**** INITIALIZED **** TAD BEGLINE/[INPBUF] 2345 001202* 3131 DCA PUTBASE /RESET OUTPUT BASE 2346 001203* 3060 DCA PUTNDX /AND INDEX 2347 001204* 5674 JMP I NXTHNG/(XNXTHNG) /GOTO NEXT THING 2348 2349 001205* 1277 NXTLINE,TAD PLFLAG /IN MIDDLE OF LINE? 2350 001206* 7640 SZA CLA /SKIP IF NO 2351 001207* 5371 JMP FINISH /YES, GOTO END OF LINE ROUTINE 2352 001210* 7344 CHANG2, NL7776 /BACK UP 2353 001211* 1327 TAD TPTR /TO 2354 001212* 3327 NXTLN2, DCA TPTR /NEXT LINE 2355 001213* 3277 DCA PLFLAG /CLEAR PARTIAL LINE FLAG 2356 001214* 1727 TAD I TPTR /GET TEXT POINTER 2357 001215* 3266 DCA GTBASS /SAVE IT 2358 001216* 3267 DCA GTNDX1 /ZERO CORRESPONDING INDEX 2359 001217* 1666 TAD I GTBASS /GET TWO TEXT CHARACTERS 2360 001220* 7650 SNA CLA /? 2361 001221* 5675 JMP I PFDONE/(FDONE) /YES, GO FINISH UP 2362 001222* 7410 SKP /NO, LEAVE INDEX 1 ALONE 2363 001223* 2267 SCAN1, ISZ GTNDX1 /BUMP TO NEXT POINTER 2364 001224* 1267 TAD GTNDX1 /GET TEXT POINTER 2365 001225* 3271 DCA GTNDX3 /PUT IT IN WORKING POINTER 2366 001226* 1325 CONTINU,TAD FRESET /RESET 2367 001227* 3270 DCA GTNDX2 /INPUT INDEX 2368 001230* 1265 SCAN2, TAD CHBASE/(STRBUFFER) /SETUP 2369 001231* 3031 DCA GETBASE /FOR GETTING AN INPUT CHARACTER 2370 001232* 1270 TAD GTNDX2 /ALSO SETUP 2371 001233* 3026 DCA GETNDX /CORRESPONDING INDEX 2372 001234* 4504 JMS I GETHAF/[XGETHAF] /GET AN INPUT CHARACTER 2373 001235* 3326 DCA TEMP01 /SAVE IT 2374 001236* 1326 TAD TEMP01 /GET CHARACTER AGAIN 2375 001237* 7440 SZA /? 2376 001240* 1273 TAD MDELIM /OR IS IT THE DELIMITER? 2377 001241* 7640 SZA CLA /SKIP IF SO 2378 001242* 5246 JMP COMN /JUMP IF NOT EITHER 2379 001243* 5330 FNDFLG, JMP CHNGFND /**** FIND **** 0000 2380 001244* 1266 TAD GTBASS /GET LINE POINTER 2381 001245* 5676 JMP I PFNDFND/(FNDFND) /FINISH UP THERE 2382 2383 001246* 2270 COMN, ISZ GTNDX2 /BUMP TO NEXT INPUT CHARACTER 2384 001247* 1266 TAD GTBASS /SET UP FOR A TEXT CHARACTER 2385 001250* 3031 DCA GETBASE /FOR COMPARISON 2386 001251* 1271 TAD GTNDX3 /SETUP 2387 001252* 3026 DCA GETNDX /INDEX ALSO 2388 001253* 4504 JMS I GETHAF/[XGETHAF] /GET A CHARACTER FROM TEXT 2389 001254* 7450 SNA /? 2390 001255* 5205 JMP NXTLINE /YES, TRY FOR ANOTHER LINE 2391 001256* 2271 ISZ GTNDX3 /BUMP TO NEXT CHARACTER FOR NEXT TIME 2392 001257* 7041 CIA /INVERT CHARACTER FOR TEST 2393 001260* 1326 TAD TEMP01 /COMPARE TO TEST CHARACTER 2394 001261* 7650 SNA CLA /SKIP IF DIFFERENT 2395 001262* 5230 JMP SCAN2 /GO HERE IF THE SAME 2396 001263* 5223 JMP SCAN1 /GO HERE IF DIFFERENT 2397 2398 001264* 7604 ASWAL, SWAL /POINTER TO /A-/L SWITCHES 2399 001265* 1400 CHBASE, STRBUFFER /WHERE INPUT WAS MOVED TO 2400 001266* 0000 GTBASS, .-. /GET BASE FOR TEXT 2401 001267* 0000 GTNDX1, .-. /GET INDEX FOR TEXT 2402 001270* 0000 GTNDX2, .-. /GET INDEX FOR INPUT 2403 001271* 0000 GTNDX3, .-. /WORKING INDEX FOR TEXT 2404 001272* 0000 LLINE, .-. /LAST LINE NUMBER 2405 001273* 0000 MDELIM, .-. /DELIMITER 2406 001274* 1506 NXTHNG, XNXTHNG /DO THE NEXT THING THERE 2407 001275* 1530 PFDONE, FDONE /POINTER TO FDONE CODE 2408 001276* 1513 PFNDFND,FNDFND /FIND ENDUP CODE 2409 001277* 0000 PLFLAG, 0 /PARTIAL LINE FLAG 2410 001300* 1546 PPUTIT, XPUTIT /POINTER TO PUT IT ROUTINE 2411 2412 001301* 1052 LINGO, TAD BEGLINE/[INPBUF] /RESET 2413 001302* 3031 DCA GETBASE /INPUT POINTER 2414 001303* 3026 DCA GETNDX /AND INDEX 2415 001304* 5600 JMP I XGLINE /BACK TO THE EDITOR 2416 2417 ZBLOCK INSERT-. /GET TO PROPER PLACE 2418 001305* 0000 INSERT, .-. /CHARACTER INSERT ROUTINE 2419 001306* 0103 AND L77/[77] /JUST SIX-BIT PLEASE 2420 001307* 7450 SNA /? 2421 001310* 5317 JMP INPPUT /YES, THAT'S OK 2422 001311* 3020 DCA CHAR /ELSE SAVE IT 2423 001312* 1060 TAD PUTNDX /GET INDEX 2424 001313* 1152 TAD LINLEN/[INPBUF&177+7600^2] /COMPARE TO LIMIT 2425 001314* 7700 SMA CLA /SKIP IF OK 2426 001315* 5705 JMP I INSERT /FORGET IT 2427 001316* 1020 TAD CHAR /GET THE CHARACTER 2428 001317* 4532 INPPUT, JMS I PUTHAF/[XPUTHAF] /PUT OUT A CHARACTER 2429 001320* 1020 TAD CHAR /GET IT BACK 2430 001321* 4447 JMS I PR6BIT/[XPR6BIT] /PRINT IT 2431 001322* 5301 JMP LINGO /IT WAS AN 2432 001323* 2060 ISZ PUTNDX /BUMP OUTPUT INDEX 2433 001324* 5705 JMP I INSERT /RETURN 2434 2435 001325* 1602 FRESET, FINDENTRY /INDEX RESET VALUE FOR INPUT 2436 001326* 0000 TEMP01, .-. /CHARACTER TEMPORARY 2437 001327* 0000 TPTR, .-. /TEMPORARY POINTER FOR TEXT 2438 001330* 1277 CHNGFND,TAD PLFLAG /GET PARTIAL LINE FLAG 2439 001331* 7640 SZA CLA /SKIP IF BEGINNING OF LINE 2440 001332* 5342 JMP BYPASS /DON'T PROCESS LINE NUMBER 2441 001333* 1327 TAD TPTR /GET POINTER 2442 001334* 7001 IAC /ADJUST TO LINE NUMBER POINTER 2443 001335* 3305 DCA INSERT /SAVE IT 2444 001336* 1705 TAD I INSERT /GET LINE NUMBER 2445 001337* 3272 DCA LLINE /SAVE IT 2446 001340* 1272 TAD LLINE /GET IT BACK 2447 001341* 4505 JMS I LNOPRT /PRINT IT INTO INPUT BUFFER 2448 001342* 1266 BYPASS, TAD GTBASS /GET BASE OF TEXT 2449 001343* 3031 DCA GETBASE /SETUP PUTHAF BASE 2450 001344* 1277 TAD PLFLAG /GET COUNT OF FRONT OF LINE 2451 001345* 3026 DCA GETNDX /SETUP INDEX WITH IT 2452 001346* 1267 TAD GTNDX1 /GET EXACT LENGTH OF FRONT OF LINE 2453 001347* 7041 CIA /INVERT FOR COUNT 2454 001350* 1277 TAD PLFLAG /ADD ON INDEX VALUE 2455 001351* 4700 JMS I PPUTIT/(PUTIT) /PUT OUT C(AC) NUMBER OF CHARACTERS ONLY 2456 001352* 1265 TAD CHBASE/(STRBUFFER) /GET COMMAND BASE 2457 001353* 3031 DCA GETBASE /SETUP PUTIT BASE 2458 001354* 1270 TAD GTNDX2 /GET INDEX INTO INPUT BUFFER 2459 001355* 3026 DCA GETNDX /SETUP MASTER INDEX WITH IT 2460 001356* 4504 JMS I GETHAF/[XGETHAF] /GET A CHARACTER FROM THERE 2461 001357* 7440 SZA /? 2462 001360* 2026 ISZ GETNDX /NO, BUMP PAST DELIMITER 2463 001361* 4700 JMS I PPUTIT/(PUTIT) /OUTPUT LIMITED CHARACTERS OR NOTHING 2464 001362* 1271 TAD GTNDX3 /STORE WORKING TEXT INDEX AS MASTER 2465 001363* 3267 DCA GTNDX1 /TEXT INDEX TO SKIP PAST FOUND STUFF 2466 001364* 1267 TAD GTNDX1 /GET IT BACK 2467 001365* 3277 DCA PLFLAG /SAVE AS PARTIAL LINE FLAG 2468 001366* 1664 NULZAP, TAD I ASWAL/(SWAL) /**** NULL SEARCH STRING **** 0000 2469 001367* 7710 SPA CLA /SKIP IF NOT ALL 2470 001370* 5226 JMP CONTINUE /GO DO THE REST OF THE LINE 2471 001371* 1266 FINISH, TAD GTBASS /SETUP FOR TEXT 2472 001372* 3031 DCA GETBASE /GETTING 2473 001373* 1277 TAD PLFLAG /USE THIS 2474 001374* 3026 DCA GETNDX /AS INDEX 2475 001375* 7330 NL4000 /SET ON HIGH ORDER BIT 2476 001376* 4700 JMS I PPUTIT/(PUTIT) /PUT OUT REST OF LINE IF ANY 2477 001377* 4305 JMS INSERT /THIS FINISHS THE LINE AND RETURNS TO MONITOR 2478 PAGE 2479 2480 001400* 0000 STRBUFF,ZBLOCK EDITIT-INPBUF /SEARCH STRING, ETC. STORED HERE 001401* 0000 001402* 0000 001403* 0000 001404* 0000 001405* 0000 001406* 0000 001407* 0000 001410* 0000 001411* 0000 001412* 0000 001413* 0000 001414* 0000 001415* 0000 001416* 0000 001417* 0000 001420* 0000 001421* 0000 001422* 0000 001423* 0000 001424* 0000 001425* 0000 001426* 0000 001427* 0000 001430* 0000 001431* 0000 001432* 0000 001433* 0000 001434* 0000 001435* 0000 001436* 0000 001437* 0000 001440* 0000 001441* 0000 001442* 0000 001443* 0000 001444* 0000 001445* 0000 001446* 0000 001447* 0000 001450* 0000 001451* 0000 001452* 0000 001453* 0000 001454* 0000 001455* 0000 001456* 0000 001457* 0000 001460* 0000 001461* 0000 001462* 0000 001463* 0000 001464* 0000 001465* 0000 001466* 0000 001467* 0000 001470* 0000 001471* 0000 001472* 0000 001473* 0000 001474* 0000 001475* 0000 001476* 0000 001477* 0000 001500* 0000 2481 2482 / COMES HERE TO READ BACK THE OTHER SWAPPED-OUT PAGES BEFORE STARTING UP. 2483 2484 001501* 4561 FCNEXT, JMS I PBUTIO/[BUTIO] /CALL I/O ROUTINES 2485 001502* 1600 CAT&7600 /READ IN THE OTHER SWAPPED OUT PAGES 2486 001503* 0200 2^100 /NEXT TO US 2487 001504* 0010 CAT%200+1 /BLOCK NUMBER 2488 001505* 5471 FCJMPB, JMP I PBEGIN/[BEGIN] /GO START IT UP 2489 2490 001506* 7410 XNXTHNG,SKP /FIRST TIME THROUGH SKIP 2491 001507* 5325 JMP CHNGAGN /ANY FURTHER TIMES GO HERE 2492 001510* 3306 DCA XNXTHNG /DESTROY ONCE-ONLY CODE 2493 001511* 1324 TAD SCRPTR /GET INITIAL SEARCH VALUE 2494 001512* 5777 JMP I (NXTLN2) /START FROM WHEREVER 2495 2496 001513* 3324 FNDFND, DCA SCRPTR /SAVE POINTER PASSED IN AC 2497 001514* 1776 TAD I (TPTR) /GET LINE NUMBER POINTER 2498 001515* 7001 IAC /GET TO RIGHT VALUE 2499 001516* 3346 DCA XPUTIT /SAVE IT 2500 001517* 1746 TAD I XPUTIT /GET LINE NUMBER ITSELF 2501 001520* 3775 DCA I (LLINE) /SAVE IT 2502 001521* 1775 TAD I (LLINE) /GET IT BACK 2503 001522* 4505 JMS I LNOPRT/[XLNOPRT] /PRINT IT (INTO BUFFER AS WELL) 2504 001523* 4571 JMS I SCRIBE/[XSCRIBE] /PRINT 2505 001524* 0000 SCRPTR, .-. /THE CORRESPONDING LINE 2506 001525* 1774 CHNGAGN,TAD I (SWAL) /GET SWITCHES /A-/L 2507 001526* 7710 SPA CLA /A SET? 2508 001527* 5341 JMP SRCHAGN /YES, GO DO IT AGAIN 2509 001530* 7240 FDONE, NL7777 /NO, RESET 2510 001531* 3121 DCA SWAPSW /SWAP SWITCH SO WE DISAPPEAR 2511 001532* 7410 CTCBZAP,SKP /**** BATCH **** 0000 2512 001533* 5457 JMP I WHATMORE/[XWHATMORE] /DON'T CHANGE <^C> CODE 2513 001534* 1373 TAD (JMS MESSAGE) /RESET THE 2514 001535* 3772 DCA I (CTCPZAP) /<^C> PRINT ROUTINE 2515 001536* 1305 TAD FCJMPB/(JMP I PBEGIN/[BEGIN]) /RESET THE 2516 001537* 3771 DCA I (CTCZAP) /<^C> HANDLER 2517 001540* 5457 JMP I WHATMORE/[XWHATMORE] /BACK TO THE MONITOR 2518 001541* 1775 SRCHAGN,TAD I (LLINE) /GET LAST FOUND LINE NUMBER 2519 001542* 4506 JMS I LNSRCH/[XLNSRCH]/SEARCH FOR IT 2520 001543* 5777 JMP I (NXTLN2) /WASN'T THERE, USE WHAT WAS FOUND 2521 001544* 3776 DCA I (TPTR) /WAS THERE, BACKUP FROM IT 2522 001545* 5770 JMP I (CHANG2) /CONTINUE THERE 2523 2524 001546* 0000 XPUTIT, .-. /PUT A SEGMENT OF A LINE ROUTINE 2525 001547* 7450 SNA /SKIP IF ANY TO DO 2526 001550* 5746 JMP I XPUTIT /NONE, JUST RETURN 2527 001551* 3324 DCA SCRPTR /SAVE AS COUNT 2528 001552* 4504 JMS I GETHAF/[XGETHAF]/GET A CHARACTER 2529 001553* 7450 SNA /END OF LINE? 2530 001554* 5746 JMP I XPUTIT /YES, RETURN 2531 001555* 4525 JMS I PINSERT/[INSERT]/NO, PUT IT IN 2532 001556* 2026 ISZ GETNDX /BUMP TO NEXT CHARACTER 2533 001557* 2324 ISZ SCRPTR /DONE ALL YET? 2534 001560* 5352 JMP .-6 /NO, GO BACK 2535 001561* 5746 JMP I XPUTIT /YES, RETURN 2536 2537 001570* 1210 PAGE 001571* 2365 001572* 2363 001573* 4112 001574* 7604 001575* 1272 001576* 1327 001577* 1212 2538 IFNZRO .&177 2539 2540 CHANGE= . /CHANGE SYSTEM STARTS HERE 2541 2542 001600* 7000 CHANGE, NOP /IN CASE WE'RE CHAINED TO 2543 001601* 7410 SKP /DON'T "CHANGE" FNDFLG 2544 001602* 3777 FINDENT,DCA I (FNDFLG) /INDICATE "FIND" 2545 001603* 1776 TAD I (LINGO) /INITIALIZE THE 2546 001604* 3775 DCA I (XGLIN2) /GLINE ROUTINE 2547 001605* 1073 TAD RST /GET EXECUTION BREAKPOINT POINTER 2548 001606* 1374 TAD (-SCMORE) /COMPARE TO MAGIC VALUE 2549 001607* 7650 SNA CLA /SKIP IF OTHER 2550 001610* 5215 JMP STROK /JUMP IF IT MATCHES 2551 001611* 4257 JMS CTCSETUP /SETUP FOR <^C> 2552 001612* 4112 JMS MESSAGE /TELL THEM 2553 001613* 1675 BATFU /THEY MESSED UP 2554 001614* 5513 JMPIL76,JMP I L7600/[SBOOT] /GOODBYE 2555 2556 001615* 4504 STROK, JMS I GETHAF/[XGETHAF] /GET LAST CHARACTER SCANNED 2557 001616* 7450 SNA /? 2558 001617* 5254 JMP NOSTRING /YES, COMPLAIN 2559 001620* 7041 CIA /INVERT THIS CHARACTER 2560 001621* 3773 DCA I (MDELIM) /SAVE AS TEST DELIMITER CHARACTER 2561 001622* 4257 JMS CTCSETUP /SETUP FOR <^C> 2562 001623* 2026 ISZ GETNDX /BUMP TO NEXT CHARACTER 2563 001624* 1026 TAD GETNDX /GET CURRENT INDEX 2564 001625* 3772 DCA I (FRESET) /SAVE FOR STRING SEARCH 2565 001626* 4504 JMS I GETHAF/[XGETHAF] /GET NEXT CHARACTER 2566 001627* 7440 SZA /SKIP IF CHARACTER 2567 001630* 1773 TAD I (MDELIM) /ELSE GET DELIMITER VALUE 2568 001631* 7650 SNA CLA /SKIP IF NEITHER OR NULL STRING 2569 001632* 3771 DCA I (NULZAP) /SETUP SPECIAL NULL STRING HANDLING 2570 001633* 3120 DCA SEQSW /CLEAR SEQUENCE MODE 2571 001634* 3121 DCA SWAPSW /PREVENT BEING SWAPPED 2572 001635* 1465 TAD I L7756/[SPARM] /GET EQUALS PARAMETER 2573 001636* 7040 CMA /IS IT 7777? 2574 001637* 7450 SNA /SKIP IF NOT 2575 001640* 5245 JMP ALLDO /DON'T RESTRICT FILE SEARCH 2576 001641* 7040 CMA /RESTORE VALUE 2577 001642* 4506 JMS I LNSRCH/[XLNSRCH] /FIND THAT LINE IN THE FILE 2578 001643* 7000 NOP /DON'T CARE IF WE PASSED IT 2579 001644* 7410 SKP /DON'T 2580 001645* 1022 ALLDO, TAD BUFINFO/[FILBEG+3774] /DO USE LOWEST 2581 001646* 3770 DCA I (SCRPTR) /STORE INITIAL ADDRESS 2582 001647* 1367 TAD (INPBUF&177+7600) /GET INPUT BUFFER LENGTH 2583 001650* 4527 JMS I PMOVE/[XMOVE] /MOVE THE ENTIRE COMMAND 2584 001651* 2477 INPBUF /FROM HERE 2585 001652* 1400 STRBUFFER /TO HERE 2586 001653* 5766 JMP I (FCNEXT) /CONTINUE THERE 2587 001654* 4112 NOSTRIN,JMS MESSAGE /TELL THEM 2588 001655* 1730 NSTMSG /THEY FORGOT THE FIRST DELIMITER 2589 001656* 5457 JMP I WHATMORE/XWHATMORE /KEEP GOING 2590 2591 001657* 0000 CTCSETU,.-. /<^C> SETUP ROUTINE 2592 001660* 1765 TAD I (CTCZAP) /GET CURRENT <^C> VALUE 2593 001661* 1364 TAD (-SRINST) /COMPARE TO POSSIBLE VALUE 2594 001662* 7640 SZA CLA /SKIP IF IT MATCHES 2595 001663* 5273 JMP CTCBAT /JUMP IF BATCH IS IN CONTROL HERE 2596 001664* 1214 TAD JMPIL76/(JMP I L7600/[SBOOT]) /GET BOOTSTRAPPING INSTRUCTION 2597 001665* 3765 DCA I (CTCZAP) /RIG <^C> HANDLER TO BOOTSTRAP 2598 001666* 7326 NL0002 /SETUP "C" BIT 2599 001667* 0570 AND I PSCRSIZE/[SCRSIZE] /GET THE BIT 2600 001670* 7640 SZA CLA /SKIP IF NO OVERLAY PRESENT 2601 001671* 3763 DCA I (CTCPZAP) /ELSE PREVENT EXTRA ^C 2602 001672* 7410 SKP /DON'T DO OTHER! 2603 001673* 3762 CTCBAT, DCA I (CTCBZAP) /PREVENT RESTORATION 2604 001674* 5657 JMP I CTCSETUP /RETURN 2605 2606 SRINST= JMP I PBEGIN/[XBEGIN] /INSTRUCTION VALUE 2607 001675* 2324 BATFU, TEXT "STRING OPERATIONS NOT ALLOWED FROM BATCH WITHOUT /E!";0 001676* 2211 001677* 1607 001700* 4017 001701* 2005 001702* 2201 001703* 2411 001704* 1716 001705* 2340 001706* 1617 001707* 2440 001710* 0114 001711* 1417 001712* 2705 001713* 0440 001714* 0622 001715* 1715 001716* 4002 001717* 0124 001720* 0310 001721* 4027 001722* 1124 001723* 1017 001724* 2524 001725* 4057 001726* 0541 001727* 0000 2608 001730* 1617 NSTMSG, TEXT "NO STRING GIVEN!";0 001731* 4023 001732* 2422 001733* 1116 001734* 0740 001735* 0711 001736* 2605 001737* 1641 001740* 0000 2609 2610 001762* 1532 PAGE 001763* 2363 001764* 2307 001765* 2365 001766* 1501 001767* 7677 001770* 1524 001771* 1366 001772* 1325 001773* 1273 001774* 6364 001775* 1201 001776* 1301 001777* 1243 2611 2612 RELOC /TURN OFF RELOCATION 2613 / EXTENDED COMMAND OVERLAY; COMES IN WITH SYSTEMS CATALOGUE. 2614 2615 FIELD XCMGEN&70%10 /WHERE IT GENERATES 2616 2617 *XCMGEN&7600 /GENERATION ADDRESS 2618 2619 XCMCORE,NOPUNCH /FOOL THE ASSEMBLER 2620 2621 FIELD 0 /WHERE IT LOADS 2622 2623 *XCMCORE /RESTORE ORIGIN 2624 2625 ENPUNCH /UN-FOOL THE ASSEMBLER 2626 2627 RELOC SWAPIN /WHERE IT EXECUTES 2628 2629 / THE FOLLOWING TWO PAGES OF CODE AND THE FIRST TWO PAGES OF THE 2630 / SYSTEMS CATALOGUE ARE READ IN TOGETHER FROM THE BOOTSTRAPPED UNIT DEVICE. 2631 / ALL CODE NORMALLY IN THESE FOUR PAGES OF THE KEYBOARD MONITOR 2632 / MUST NOT BE REFERENCED BY ANY PART OF THIS OVERLAY! 2633 2634 001200* 7240 XGLINE, NL7777 /SETUP THE 2635 001201* 3121 DCA SWAPSW /SWAP SWITCH 2636 001202* 1000 TAD UNIT /GET CURRENT UNIT 2637 001203* 3070 DCA OLDUNIT /SAVE IT 2638 001204* 1015 TAD RADXSW /GET CURRENT RADIX 2639 001205* 3067 DCA OLDRADIX /SAVE IT 2640 001206* 1567 TAD I PSBTFUN/[SBTFUN] /GET BOOTSTRAP UNIT WORD 2641 001207* 0177 AND L7/[7] /JUST UNIT BITS 2642 001210* 3000 DCA UNIT /STORE NEW UNIT 2643 001211* 4476 JMS I TUNIT/[XTUNIT] /TEST FOR ":UNIT" 2644 001212* 5217 JMP SCATLOADED /WASN'T ANY 2645 001213* 4037 JMS UNITIO /READ IN A NEW CATALOG HEAD 2646 001214* 1600 CATPT, SWAPCAT /CATALOG ADDRESS IS JUST PAST OUR CODE 2647 001215* 0200 2^100+.-. /TWO BLOCKS ONLY; UNIT BITS WILL BE FILLED IN 2648 001216* 0063 SYSCAT /SYSTEM CATALOG BLOCK 2649 001217* 3747 SCATLOA,DCA I CATSTP/(SWAPCAT+374) /DELIMIT SHORT END OF CATALOG 2650 001220* 1157 TAD L6/[6] /SETUP THE 2651 001221* 3122 DCA TCNT1 /BUMP FACTOR 2652 001222* 3077 DCA LOOKSW /DON'T ATTEMPT TO CREATE SYSTEM PROGRAM NAMES! 2653 001223* 1214 TAD CATPT/(SWAPCAT) /POINT AT SYSTEMS CATALOG 2654 001224* 4554 JMS I LOOKUP/[XLOOKUP] /LOOKUP THE NAME 2655 001225* 7200 CLA /CLEAN UP 2656 001226* 1416 TAD I XR1 /GET THE BLOCK NUMBER 2657 001227* 3344 DCA SBLOCK+RP-SLOAD /STORE IN LIST 2658 001230* 1416 TAD I XR1 /GET LOAD-LENGTH WORD 2659 001231* 3756 DCA I PSCANF/(SCANF) /SAVE IT 2660 001232* 1756 TAD I PSCANF/(SCANF) /GET IT BACK 2661 001233* 0046 AND L40/[40] /JUST RADIX SAVE BIT 2662 001234* 7640 SZA CLA /SKIP IF NOT ON 2663 001235* 5240 JMP .+3 /JUST LEAVE RADIX ALONE 2664 001236* 1040 TAD L7770/[-10] /SETUP FOR 2665 001237* 3015 DCA RADXSW /OCTAL RADIX 2666 001240* 1756 TAD I PSCANF/(SCANF) /GET LOAD-LENGTH WORD BACK 2667 001241* 0064 AND L37/[37] /JUST LENGTH BITS 2668 001242* 7106 CLL RTL;RTL;RTL /MOVE UP TO PAGE BITS 001243* 7006 001244* 7006 2669 001245* 1000 TAD UNIT /ADD ON UNIT BITS 2670 001246* 3343 DCA SFUN+RP-SLOAD /STORE FUNCTION WORD 2671 001247* 1416 TAD I XR1 /GET STARTING ADDRESS WORD 2672 001250* 3757 DCA I PSCANIF/(SCANIF) /SAVE IT 2673 001251* 1026 TAD GETNDX /GET CURRENT INDEX VALUE 2674 001252* 3753 DCA I PLINDEX/(LINDEX) /SAVE FOR LATER 2675 001253* 1756 TAD I PSCANF/(SCANF) /GET LOAD-LENGTH WORD 2676 001254* 0006 AND L100/[NOSCAN] /JUST FILE-SCAN BIT 2677 001255* 7640 SZA CLA /SKIP IF OFF 2678 001256* 5367 JMP NOFILES /PREVENT ANY FILE PRESCAN AND SCAN 2679 2680 / IF FILES ARE ALLOWED, A PRESCAN MUST BE MADE TO ESTABLISH THE 2681 / ORDER OF FILE NAME SCANNING. THE SCAN CAN BE EITHER: 2682 2683 / A) OUTPUTOUTPUT 2685 2686 / IF A) IS CHOSEN, THEN OUTPUT FILE CREATION IS ASSUMED FIRST AND 2687 / SCANNING IS LEFT TO RIGHT ENDING ON . 2688 2689 / IF B) IS CHOSEN, THEN OUTPUT FILE CREATION IS ASSUMED FIRST BUT 2690 / SCANNING STARTS JUST RIGHT OF THE ">". WHEN IS REACHED, THE 2691 / SCAN POINTER IS RESET TO THE LEFT AND SCANNING OCCURS LEFT TO RIGHT 2692 / UNTIL THE ">" IS REACHED. 2693 2694 / IF NEITHER SCANNING CHARACTER IS FOUND, THEN NO OUTPUT FILE LIST EXISTS AND 2695 / EXISTENT INPUT FILE NAMES ARE ASSUMED. SCANNING WILL OCCUR LEFT TO RIGHT. 2696 2697 001257* 4504 PRSCNLP,JMS I GETHAF/[XGETHAF] /GET A CHARACTER 2698 001260* 7450 SNA /? 2699 001261* 5360 JMP ENDPRSCAN /YES, WE'RE DONE 2700 001262* 1276 TAD SWITCH/(-">!200) /IS IT ">"? 2701 001263* 7440 SZA /SKIP IF SO 2702 001264* 5271 JMP TRYLFT /JUMP IF NOT 2703 001265* 2346 ISZ RSCAN /INDICATE ">" FOUND 2704 001266* 1026 TAD GETNDX /GET CURRENT INDEX 2705 001267* 7001 IAC /PLACE IT PAST THE ">" 2706 001270* 3755 DCA I PRINDEX/(RINDEX) /THIS WILL INDICATE RIGHT-TO-LEFT SCANNING LATER 2707 001271* 1010 TRYLFT, TAD L2/[-"<+">] /IS IT "<"? 2708 001272* 7650 SNA CLA /SKIP IF NOT 2709 001273* 2342 ISZ LSCAN /INDICATE ">" FOUND 2710 001274* 2026 ISZ GETNDX /BUMP TO NEXT CHARACTER 2711 001275* 5257 JMP PRSCNLP /GO BACK FOR MORE 2712 / OPTION SWITCH PROCESSING ROUTINE. 2713 2714 001276* 7702 SWITCH, -">!200 /SWITCH OPTION ROUTINE 2715 001277* 1354 TAD PPARMS/(PARMS-1) /POINT AT THE 2716 001300* 3001 DCA TPTR1 /SWITCH PARAMETER LIST 2717 001301* 4504 JMS I GETHAF/[XGETHAF] /GET A CHARACTER 2718 001302* 7450 SNA /? 2719 001303* 5336 JMP BADSW /YES, GO COMPLAIN 2720 001304* 1351 TAD L7745/(-"[!300] /COMPARE TO ALPHABETIC LIMIT 2721 001305* 7510 SPA /SKIP IF NOT ALPHABETIC 2722 001306* 5314 JMP SWITOK /JUMP IF ALPHABETIC 2723 001307* 1011 TAD L7741/[-":+"[-100] /COMPARE TO NUMERIC LIMIT 2724 001310* 7120 STL /SET LINK FOR TEST 2725 001311* 1063 TAD L12/[":-"0] /ADD ON RANGE 2726 001312* 7430 SZL /SKIP IF VALID NUMERIC 2727 001313* 5336 JMP BADSW /ELSE GO COMPLAIN 2728 001314* 1350 SWITOK, TAD L32/("Z&77) /ADJUST TO RANGE 0-43 2729 001315* 2001 SWSUBTR,ISZ TPTR1 /BUMP TO NEXT SWITCH WORD 2730 001316* 1352 TAD L7764/(-14) /SUBTRACT TWELVE BITS WORTH 2731 001317* 7500 SMA /SKIP IF FAR ENOUGH 2732 001320* 5315 JMP SWSUBTR /ELSE GO DO IT AGAIN 2733 001321* 3122 DCA TCNT1 /SAVE BIT SHIFT COUNT 2734 001322* 7120 STL /SET THE BIT 2735 001323* 7004 RAL /MOVE UP 2736 001324* 2122 ISZ TCNT1 /DONE YET? 2737 001325* 5323 JMP .-2 /NO, KEEP GOING 2738 001326* 3122 DCA TCNT1 /SAVE THE NEW BIT 2739 001327* 1122 TAD TCNT1 /GET IT BACK 2740 001330* 7040 CMA /INVERT THE BIT PATTERN 2741 001331* 0401 AND I TPTR1 /KEEP OTHER BITS 2742 001332* 1122 TAD TCNT1 /OR IN LATEST BIT 2743 001333* 3401 DCA I TPTR1 /STORE ALL BITS BACK 2744 001334* 2026 ISZ GETNDX /BUMP TO NEXT CHARACTER 2745 001335* 5676 JMP I SWITCH /RETURN 2746 2747 001336* 4112 BADSW, JMS MESSAGE /TELL THEM 2748 001337* 1562 BSWMSG /THEY GOOFED 2749 001340* 5457 JMP I WHATMORE/[XWHATMORE] /CONTINUE THERE 2750 2751 RP, RELOC SLOAD /RELOCATE TO WHERE THE FOLLOWING IS MOVED TO 2752 2753 007632* 4240 SLOAD, JMS SYSIO /CALL I/O ROUTINES TO LOAD THE PROGRAM 2754 007633* 0000 SCORE, 0 /LOADING ADDRESS; MUST BE ZERO NOW! 2755 007634* 0000 SFUN, .-. /FUNCTION WORD 2756 007635* 0000 SBLOCK, .-. /BLOCK NUMBER 2757 007636* 5637 JMP I SYSTART /GO START IT UP 2758 007637* 0000 SYSTART,0 /STARTING ADDRESS; MUST BE ZERO NOW! 2759 2760 RELOC RP+.-SLOAD /BACK TO WHERE WE WERE 2761 2762 LSCAN= SCORE+RP-SLOAD /"<" SCAN COUNTER 2763 RSCAN= SYSTART+RP-SLOAD /">" SCAN COUNTER 2764 001347* 2174 CATSTP, SWAPCAT+374 /POINTER TO WHERE TO END THE CATALOGUE 2765 001350* 0032 L32, 32 /CONSTANT 0032 2766 001351* 7745 L7745, 7745 /CONSTANT 7745 2767 001352* 7764 L7764, 7764 /CONSTANT 7764 2768 001353* 1551 PLINDEX,LINDEX /POINTER TO LINDEX 2769 001354* 1552 PPARMS, PARMS-1 /POINTER TO SWITCH PARAMETER LIST 2770 001355* 1557 PRINDEX,RINDEX /POINTER TO RINDEX 2771 001356* 1560 PSCANF, SCANF /POINTER TO SCANF 2772 001357* 1561 PSCANIF,SCANIF /POINTER TO SCANIF 2773 2774 / THE PRESCAN IS NOW FINISHED; CHECK FOR AT MOST EXACTLY ONE FILE SEPARATOR. 2775 / THE NATURE OF THE SEPARATOR WILL DETERMINE THE ORDER OF SCANNING. 2776 2777 001360* 7240 ENDPRSC,NL7777 /SET -1 2778 001361* 1342 TAD LSCAN /ADD ON "<" COUNT 2779 001362* 1346 TAD RSCAN /ADD ON ">" COUNT 2780 001363* 7540 SMA SZA /SKIP IF NONE OR ONE 2781 001364* 5511 JMP I WHAT/[XWHAT] /COMPLAIN IF TOO MANY 2782 001365* 7700 SMA CLA /SKIP IF NONE 2783 001366* 7240 NL7777 /ELSE SET CREATE VALUE FOR OUTPUT FILES 2784 001367* 3754 NOFILES,DCA I PPARMS/(OUTLSW) /SET OUTPUT FILE CREATION SWITCH FOR LATER 2785 2786 / SINCE "LSCAN" AND "RSCAN" ARE NO LONGER NEEDED, WE NOW CAN USE THEM FOR THEIR 2787 / ALTERNATE PURPOSES AS LIST ELEMENTS FOR THE SYSTEM LOADER IMAGE. 2788 2789 001370* 1756 TAD I PSCANF/(SCANF) /GET LOAD-LENGTH WORD 2790 001371* 0113 AND L7600/[7600] /JUST ON-PAGE BITS 2791 001372* 3342 DCA SCORE+RP-SLOAD /STORE IN LOADING ADDRESS WORD 2792 001373* 1757 TAD I PSCANIF/(SCANIF)/GET STARTING ADDRESS WORD 2793 001374* 0113 AND L7600/[7600] /JUST PAGE BITS 2794 001375* 3346 DCA SYSTART+RP-SLOAD/STORE IN STARTING ADDRESS WORD 2795 001376* 1070 TAD OLDUNIT /GET PREVIOUS UNIT 2796 001377* 3000 DCA UNIT /RESTORE IT 2797 / JMP I (SCNSET) /FALL THROUGH AND CONTINUE THERE 2798 PAGE 2799 2800 001400* 1357 SCNSET, TAD RINDEX /DOING RIGHT-TO-LEFT SCAN? 2801 001401* 7450 SNA /SKIP IF SO 2802 001402* 1351 TAD LINDEX /ELSE USE LEFT-TO-RIGHT SCAN POINTER 2803 001403* 3026 DCA GETNDX /STORE EITHER WAY 2804 001404* 1151 TAD DOLLSW /GET WRITE "$" WORD 2805 001405* 7650 SNA CLA /SKIP IF SET 2806 001406* 5213 JMP NOSAVE /ELSE FORGET IT 2807 001407* 4561 JMS I PBUTIO/[BUTIO] /CALL I/O ROUTINES 2808 001410* 3000 FILBEG /TO WRITE THE ACTIVE FILE 2809 001411* 6000 FILSIZE^100+WRITE /IN $:[BOOTSTRAP UNIT] 2810 001412* 0040 DOLBLK /BEFORE STARTING IT UP 2811 001413* 5473 NOSAVE, JMP I RST /NOW GO DO (BATCH AND THEN) NEXT PART 2812 2813 / COMES HERE AFTER POSSIBLY PERFORMING BATCH SAVE OPERATIONS. 2814 2815 001414* 7240 SCMORE, NL7777 /SETUP THE 2816 001415* 3465 DCA I L7756/[SPARM] /DEFAULT "=" VALUE 2817 001416* 4510 SCNLUP, JMS I TSPACE/[XTSPACE]/ELIMINATE ANY 2818 001417* 4504 JMS I GETHAF/[XGETHAF]/GET A CHARACTER 2819 001420* 7450 SNA /? 2820 001421* 5274 JMP ENDLINE /YES 2821 001422* 1377 TAD (-",!200) /IS IT ","? 2822 001423* 7450 SNA /SKIP IF NOT 2823 001424* 5254 JMP SCNEXT /IGNORE "," 2824 001425* 1065 TAD L7756/[-">+",] /IS IT ">"? 2825 001426* 7450 SNA /SKIP IF NOT 2826 001427* 5311 JMP GOTGT /JUMP IF SO 2827 001430* 7001 IAC/TAD (-"=+">) /IS IT "="? 2828 001431* 7450 SNA /SKIP IF NOT 2829 001432* 5336 JMP GOTEQ /JUMP IF SO 2830 001433* 7001 IAC/TAD (-"<"+=) /IS IT "<"? 2831 001434* 7450 SNA /SKIP IF NOT 2832 001435* 5334 JMP GOTLT /JUMP IF SO 2833 001436* 1041 TAD L15/[-"/+"<] /IS IT "/"? 2834 001437* 7450 SNA /SKIP IF NOT 2835 001440* 5345 JMP GOTSLSH /JUMP IF SO 2836 001441* 1177 TAD L7/[-"(+"/] /IS IT "("? 2837 001442* 7640 SZA CLA /SKIP IF SO 2838 001443* 5256 JMP SCNFILE /JUMP IF NOT 2839 001444* 2026 ISZ GETNDX /BUMP PAST "(" 2840 001445* 4776 MORESW, JMS I (SWITCH) /PROCESS NEXT AS SWITCH 2841 001446* 4504 JMS I GETHAF/[XGETHAF]/GET NEXT CHARACTER 2842 001447* 7450 SNA /SKIP IF NOT 2843 001450* 5274 JMP ENDLINE /JUMP IF 2844 001451* 1375 TAD (-")!200) /COMPARE TO ")" 2845 001452* 7640 SZA CLA /SKIP IF IT MATCHES 2846 001453* 5245 JMP MORESW /ELSE GO PROCESS ANOTHER SWITCH 2847 001454* 2026 SCNEXT, ISZ GETNDX /BUMP TO NEXT 2848 001455* 5216 JMP SCNLUP /KEEP GOING 2849 001456* 1360 SCNFILE,TAD SCANF /GET LOAD-LENGTH WORD 2850 001457* 0006 AND L100/[NOSCAN] /JUST FILE-SCAN BIT 2851 001460* 7640 SZA CLA /SKIP IF FILE-SCAN ALLOWED 2852 001461* 5311 JMP GOTGT /JUMP IF NOT 2853 001462* 1352 TAD OUTLSW /GET LOOKUP CREATE SWITCH 2854 001463* 4564 JMS I PFILNAM/[FILNAM]/TRY TO LOCATE FILE 2855 001464* 7410 TMNYZAP,SKP /**** TOO MANY FILES **** 0000 2856 001465* 5511 JMP I WHAT/[XWHAT] /JUMP IF TOO MANY FILES 2857 001466* 1000 TAD UNIT /ADD ON UNIT BITS 2858 001467* 3750 DCA I FILPTR /STORE A FILE SPECIFICATION 2859 001470* 2350 ISZ FILPTR /BUMP TO NEXT FILE 2860 001471* 7410 SKP /SKIP IF NOT AT END OF LIST 2861 001472* 3264 DCA TMNYZAP /PREVENT EXTRA FILES IF WE GET HERE 2862 001473* 5216 JMP SCNLUP /KEEP GOING 2863 2864 001474* 1357 ENDLINE,TAD RINDEX /GET RIGHT-TO-LEFT SCAN INDICATOR 2865 001475* 7650 SNA CLA /SKIP IF SET 2866 001476* 5311 JMP GOTGT /ELSE WE'RE DONE 2867 001477* 1351 TAD LINDEX /RESET THE SCAN 2868 001500* 3026 DCA GETNDX /TO PARSE THE LEFT PORTION 2869 001501* 3352 LTENTRY,DCA OUTLSW /EXISTENT INPUT FILES FROM NOW ON 2870 001502* 1350 TAD FILPTR /GET THE POINTER 2871 001503* 1374 TAD (21) /UPDATE TO OUTPUT FILE COUNT 2872 001504* 3356 DCA PARMS+3 /STORE IN LIST 2873 001505* 1361 TAD SCANIF /LOOK AT STARTING ADDRESS WORD 2874 001506* 0006 AND L100/[NOSCAN] /JUST INPUT FILE-SCAN BIT 2875 001507* 7650 SNA CLA /SKIP IF INPUT FILE SCAN NOT ALLOWED 2876 001510* 5216 JMP SCNLUP /ELSE KEEP GOING 2877 001511* 3750 GOTGT, DCA I FILPTR /DELIMIT FILE LIST 2878 001512* 1070 TAD OLDUNIT /GET PREVIOUS UNIT 2879 001513* 3000 DCA UNIT /RESTORE IT 2880 001514* 1014 TAD L7774/[-4] /SETUP MOVE COUNT 2881 001515* 4527 JMS I PMOVE/[MOVE] /MOVE DOWN THE SWITCH PARAMETERS 2882 001516* 1553 PARMS /FROM OUR LIST 2883 001517* 7604 SWAL /TO PERMANENT LIST 2884 001520* 1013 TAD L7772/[-6] /SET MOVE COUNT 2885 001521* 4527 JMS I PMOVE/[MOVE] /MOVE DOWN THE SYSTEM LOADER 2886 001522* 1341 RP /FROM OUR LIST 2887 001523* 7632 SLOAD /TO PERMANENT LIST 2888 001524* 7326 NL0002 /SETUP "C" BIT MASK 2889 001525* 0570 AND I PSCRSIZ/[SCRSIZ]/GET THE "C" BIT 2890 001526* 7640 SZA CLA /SKIP IF OFF 2891 001527* 5472 JMP I PSLOAD/[SLOAD] /ELSE JUST GO START IT UP 2892 001530* 6041 TSFIOT /WAIT FOR 2893 001531* 5330 JMP .-1 /FLAG TO COME UP 2894 001532* 6040 TFLIOT /JUST IN CASE DECMATE 2895 001533* 5472 JMP I PSLOAD/[SLOAD] /GO START IT UP 2896 2897 001534* 2026 GOTLT, ISZ GETNDX /BUMP PAST "<" 2898 001535* 5301 JMP LTENTRY /CONTINUE THERE 2899 001536* 2026 GOTEQ, ISZ GETNDX /BUMP PAST "=" 2900 001537* 2465 ISZ I L7756/[SPARM] /"=" FOUND EARLIER? 2901 001540* 7410 SKP /SKIP IF SO 2902 001541* 4462 JMS I LINENO/[XLINENO]/NO, LOOK FOR ONE NOW 2903 001542* 5511 JMP I WHAT/[XWHAT] /COMPLAIN ON BAD "=" 2904 001543* 3465 DCA I L7756/[SPARM] /STORE NEW "=" PARAMETER VALUE 2905 001544* 5216 JMP SCNLUP /KEEP GOING 2906 2907 001545* 2026 GOTSLSH,ISZ GETNDX /BUMP PAST "/" 2908 001546* 4776 JMS I (SWITCH) /PROCESS NEXT AS SWITCH 2909 001547* 5216 JMP SCNLUP /KEEP GOING 2910 2911 001550* 7757 FILPTR, SFILES /FILE LIST POINTER 2912 001551* 0000 LINDEX, .-. /LEFT TO RIGHT SCAN INDEX TEMPORARY 2913 001552* 0000 OUTLSW, .-. /OUTPUT FILES CREATE SWITCH 2914 001553* 0000 PARMS, 0000 /A-/L 2915 001554* 0000 0000 /M-/X 2916 001555* 0000 0000 /Y-/9 2917 001556* 0000 0 /OUTPUT FILE COUNT 2918 2919 IFNZRO PARMS-1-OUTLSW 2920 2921 001557* 0000 RINDEX, 0 /RIGHT TO LEFT SCAN INDEX AND INDICATOR 2922 001560* 0000 SCANF, .-. /LOAD-LENGTH WORD STORED HERE 2923 001561* 0000 SCANIF, .-. /STARTING ADDRESS WORD STORED HERE 2924 001562* 0201 BSWMSG, TEXT "BAD SWITCH!" 001563* 0440 001564* 2327 001565* 1124 001566* 0310 001567* 4100 2925 2926 001574* 0021 PAGE 001575* 7727 001576* 1276 001577* 7724 2927 2928 SWAPCAT=. /FIRST TWO PAGES OF CATALOGUE GO HERE 2929 2930 RELOC /TURN OFF RELOCATION 2931 / "R" COMMAND PROCESSOR. 2932 2933 FIELD RUNGEN&70%10 /GENERATION FIELD 2934 2935 *RUNGEN&7600 /GENERATION ADDRESS 2936 2937 RUNCORE,NOPUNCH /FOOL THE ASSEMBLER 2938 2939 FIELD 0 /WHERE IT LOADS 2940 2941 *RUNCORE /RESTORE ORIGIN 2942 2943 ENPUNCH /UN-FOOL THE ASSEMBLER 2944 2945 RELOC SYSLEN+EXTLEN^200+FILBEG/WHERE IT EXECUTES 2946 2947 / THE FOLLOWING CODE IS READ INTO THE FILE AREA ALONG WITH THE 2948 / SYSTEMS CATALOGUE AND EXTENDED USER'S CATALOGUE FROM THE 2949 / BOOTSTRAP UNIT DEVICE. 2950 2951 004600* 3457 RSTART, DCA I WHATMORE/[XWHATMORE] /ALL ERRORS ULTIMATELY BOOTSTRAP 2952 2953 / THE CURRENT FILE UNIT MAY NOT BE THE SAME AS THE SYSTEM BOOTSTRAP UNIT, 2954 / SO WE SAVE IT FIRST THEN ASSUME THE BOOTSTRAP UNIT FOR OUR SYSTEM PROGRAM. 2955 2956 004601* 1000 TAD UNIT /GET CURRENT UNIT 2957 004602* 3070 DCA OLDUNIT /SAVE IT 2958 004603* 1015 TAD RADXSW /GET CURRENT RADIX 2959 004604* 3067 DCA OLDRADIX /SAVE IT 2960 004605* 1567 TAD I PSBTFUN/[SBTFUN] /GET BOOTSTRAP UNIT WORD 2961 004606* 0177 AND L7/[7] /JUST UNIT BITS 2962 004607* 3000 DCA UNIT /USE AS CURRENT UNIT 2963 2964 / WE CHECK FOR BATCH RUNNING NOW, BEFORE ANY ERRORS (WHICH ULTIMATELY 2965 / BOOTSTRAP) OCCUR. BATCH WILL BE MODIFIED TO COME BACK TO US BEFORE WE 2966 / BRANCH TO IT. 2967 2968 004610* 1073 TAD RST /GET EXTENDED COMMAND BREAK ADDRESS 2969 004611* 1377 TAD (-EBRK) /COMPARE TO BATCH VALUE 2970 004612* 7640 SZA CLA /SKIP IF IT MATCHES 2971 004613* 5221 JMP RSNAME /JUMP IF NOT 2972 004614* 1376 TAD (RFIX) /MAKE IT COME BACK TO US 2973 004615* 3775 DCA I (ERST) /AFTER IT'S DONE ITS STUFF 2974 004616* 5473 JMP I RST /GO DO THE BATCH STUFF 2975 2976 / COMES BACK HERE AFTER BATCH PREAKPOINT OPERATIONS HAVE BEEN DONE. 2977 2978 004617* 1374 RFIX, TAD (SCMORE) /RESET THE 2979 004620* 3775 DCA I (ERST) /PREVIOUS VALUE 2980 004621* 4454 RSNAME, JMS I NAME/[XNAME] /TRY TO FIND A SYSTEM NAME 2981 004622* 5334 JMP TRYPERCENT /NOT A NAME, TRY % OR $ 2982 / IF A :UNIT CONSTRUCTION WAS SPECIFIED AND IS DIFFERENT FROM THE 2983 / BOOTSTRAP UNIT NUMBER THEN THE SYSTEMS CATALOGUE FROM THE NEW UNIT IS USED. 2984 2985 004623* 4476 JMS I TUNIT/[XTUNIT] /LOOK FOR :UNIT 2986 004624* 5237 JMP SAMUNIT /FORGET IT 2987 004625* 1567 TAD I PSBTFUN/SBTFUN] /GET BOOTSTRAP UNIT WORD 2988 004626* 0177 AND L7/[7] /JUST UNIT BITS 2989 004627* 7041 CIA /INVERT FOR TEST 2990 004630* 1000 TAD UNIT /COMPARE TO DESIRED UNIT 2991 004631* 7650 SNA CLA /SKIP IF DIFFERENT 2992 004632* 5237 JMP SAMUNIT /JUMP IF THIS UNIT'S CATALOGUE AVAILABLE 2993 004633* 4037 JMS UNITIO /CALL I/O ROUTINES 2994 004634* 3000 SCATPT, FILBEG /READ IN NEW SYSTEMS CATALOGUE 2995 004635* 0400 SYSLEN^100 /FROM NEW UNIT 2996 004636* 0063 SYSCAT /BLOCK NUMBER 2997 004637* 1157 SAMUNIT,TAD L6/[6] /SETUP THE 2998 004640* 3122 DCA TCNT1 /BUMP FACTOR 2999 004641* 3077 DCA LOOKSW /PREVENT CREATION! 3000 004642* 1234 TAD SCATPT/(FILBEG) /POINT AT CATALOGUE 3001 004643* 4554 JMS I LOOKUP/[XLOOKUP] /LOOKUP SYSTEM NAME 3002 004644* 7200 CLA /CLEAN UP 3003 004645* 1416 PERCIN, TAD I XR1 /GET BLOCK NUMBER 3004 004646* 3361 DCA SBLOCK+RA-SLOAD /STASH IT IN LIST 3005 004647* 1416 TAD I XR1 /GET LOAD/LENGTH WORD 3006 004650* 3354 DCA LODLEN /STASH IT 3007 004651* 1354 TAD LODLEN /GET IT BACK 3008 004652* 0046 AND L40/[40] /JUST RADIX SAVE BIT 3009 004653* 7640 SZA CLA /SKIP IF OFF 3010 004654* 5257 JMP .+3 /JUMP IF ON 3011 004655* 1040 TAD L7770/[-10] /SETUP FOR 3012 004656* 3015 DCA RADXSW /OCTAL RADIX 3013 004657* 1354 TAD LODLEN /GET LOAD/LENGTH WORD 3014 004660* 0113 AND L7600/[7600] /JUST PAGE BITS 3015 004661* 3357 DCA SCORE+RA-SLOAD /STORE IN LIST 3016 004662* 1354 TAD LODLEN /GET LOAD/LENGTH WORD 3017 004663* 0064 AND L37/[37] /JUST LENGTH BITS 3018 004664* 7106 CLL RTL;RTL;RTL /MOVE UP TO PAGE BITS 004665* 7006 004666* 7006 3019 004667* 1000 TAD UNIT /ADD ON SYSTEM UNIT 3020 004670* 3360 DCA SFUN+RA-SLOAD /STORE IN LIST 3021 004671* 1416 TAD I XR1 /GET STARTING ADDRESS WORD 3022 004672* 3355 DCA STARTADDRESS /STASH IT 3023 004673* 1355 TAD STARTADDRESS /GET IT BACK 3024 004674* 0113 AND L7600/[7600] /JUST PAGE BITS 3025 004675* 3363 DCA SYSTART+RA-SLOAD /STORE IN LIST 3026 004676* 1026 TAD GETNDX /GET CURRENT SCAN INDEX 3027 004677* 3347 DCA LINDX /SAVE IT FOR LEFT TO RIGHT SCAN LATER 3028 004700* 1354 TAD LODLEN /GET LOAD/LENGTH WORD 3029 004701* 0006 AND L100/[NOSCAN] /JUST FILE-SCAN BIT 3030 004702* 7640 SZA CLA /SKIP IF FILES ALLOWED 3031 004703* 5332 JMP NOFILS /JUMP IF NOT 3032 / SINCE FILES ARE ALLOWED, A PRESCAN MUST BE MADE TO ESTABLISH THE ORDER OF THE 3033 / FILE NAME SCANNING. SEE EXTENDED COMMAND CODE ABOVE FOR FURTHER EXPLANATION. 3034 3035 004704* 4504 PSCNLP, JMS I GETHAF/[XGETHAF] /GET A CHARACTER 3036 004705* 7450 SNA /? 3037 004706* 5323 JMP ENDPSCN /YES, WE'RE DONE 3038 004707* 1373 TAD (-">!200) /IS IT ">"? 3039 004710* 7440 SZA /SKIP IF SO 3040 004711* 5316 JMP TRLEFT /JUMP IF NOT 3041 004712* 2352 ISZ RSCN /INDICATE ">" FOUND 3042 004713* 1026 TAD GETNDX /GET CURRENT INDEX 3043 004714* 7001 IAC /BUMP PAST ">" 3044 004715* 3351 DCA RINDX /STORE FOR RIGHT TO LEFT SCAN 3045 004716* 1010 TRLEFT, TAD L2/[-"<+">] /IS IT "<"? 3046 004717* 7650 SNA CLA /SKIP IF NOT 3047 004720* 2350 ISZ LSCN /INDICATE "<" FOUND 3048 004721* 2026 ISZ GETNDX /BUMP TO NEXT CHARACTER 3049 004722* 5304 JMP PSCNLP /KEEP GOING 3050 3051 / AT THIS POINT THERE BETTER BE AT MOST EXACTLY ONE FILE SEPARATOR. 3052 / IF NONE ARE FOUND, THEN ASSUME ONLY INPUT FILE NAMES ARE ALLOWED. 3053 3054 004723* 7240 ENDPSCN,NL7777 /SET -1 3055 004724* 1350 TAD LSCN /ADD ON LEFT SCAN DETECT 3056 004725* 1352 TAD RSCN /ADD ON RIGHT SCAN DETECT 3057 004726* 7540 SMA SZA /SKIP IF ONE OR NONE 3058 004727* 5772 JMP I (BADSCAN) /ELSE COMPLAIN 3059 004730* 7700 SMA CLA /SKIP IF NONE 3060 004731* 7240 NL7777 /SETUP FOR OUTPUT FILE CREATION 3061 004732* 3771 NOFILS, DCA I (OUTLOOK) /STORE EITHER WAY 3062 004733* 5770 JMP I (SEQSET) /KEEP GOING 3063 3064 / IF % OR $ ARE GIVEN AS THE SYSTEM NAME, THEN SUPPLY DEFAULT ARGUMENTS 3065 / TO RUN THE DEFAULT CORE IMAGE AS A PROGRAM. 3066 3067 004734* 4504 TRYPERC,JMS I GETHAF/[XGETHAF] /GET THE CHARACTER 3068 004735* 1367 TAD (-"$!200) /COMPARE TO "$" 3069 004736* 7110 CLL RAR /ALLOW "$" OR "%" 3070 004737* 7640 SZA CLA /SKIP IF EITHER 3071 004740* 5766 JMP I (BADNAME) /JUMP IF NEITHER 3072 004741* 2026 ISZ GETNDX /BUMP PAST % OR $ 3073 004742* 4476 JMS I TUNIT /TEST FOR :UNIT 3074 004743* 7000 NOP /DON'T CARE 3075 004744* 1365 TAD (PERLIST-1) /POINT AT 3076 004745* 3016 DCA XR1 /DEFAULT LIST 3077 004746* 5245 JMP PERCIN /CONTINUE THERE 3078 004747* 0000 LINDX, .-. /LEFT SCAN INDEX 3079 004750* 0000 LSCN, 0 /LEFT SCAN COUNTER 3080 004751* 0000 RINDX, 0 /RIGHT SCAN INDEX AND FLAG 3081 004752* 0000 RSCN, 0 /RIGHT SCAN COUNTER 3082 3083 / DEFAULT PROGRAM PARAMETER LIST. 3084 3085 004753* 0020 PERLIST,BINADR /BLOCK 0020 3086 004754* 0037 LODLEN, 37 /LOADS INTO 0-7577 3087 004755* 0200 STARTAD,0200 /STARTS AT 0200 3088 3089 / SYSTEM LOADER ARGUMENT LIST. 3090 3091 RA, RELOC SLOAD /WHERE THIS GOES 3092 3093 007632* 4240 SLOAD, JMS SYSIO /CALL I/O ROUTINES 3094 007633* 0000 SCORE, .-. /TRANSFER ADDRESS 3095 007634* 0000 SFUN, .-. /FUNCTION WORD 3096 007635* 0000 SBLOCK, .-. /BLOCK NUMBER 3097 007636* 5637 JMP I SYSTART /GO START IT UP 3098 007637* 0000 SYSTART,.-. /STARTING ADDRESS 3099 3100 RELOC RA+.-SLOAD /BACK TO WHERE WE WERE 3101 004765* 4752 PAGE 004766* 5231 004767* 7734 004770* 5000 004771* 5141 004772* 5237 004773* 7702 004774* 1414 004775* 2755 004776* 4617 004777* 5050 3102 3103 005000* 7240 SEQSET, NL7777 /SETUP THE DEFAULT 3104 005001* 3465 DCA I L7756/[SPARM] /EQUALS PARAMETER 3105 3106 / IF ">" WAS FOUND, THEN SCANNING OCCURS LEFT TO RIGHT. 3107 / IF "<" WAS FOUND, THEN SCANNING OCCURS RIGHT TO LEFT. 3108 / SINCE OUTPUT FILES ARE ALWAYS SCANNED FIRST, SET THE SCAN POINTER TO 3109 / THE OUTPUT SECTION FIRST. 3110 3111 005002* 1777 TAD I (RINDX) /GET RIGHT SCAN INDICATOR 3112 005003* 7450 SNA /SKIP IF GOING RIGHT TO LEFT 3113 005004* 1776 TAD I (LINDX) /ELSE USE LEFT TO RIGHT SCAN NOW 3114 005005* 3026 DCA GETNDX /RESTORE EITHER WAY 3115 3116 / THE UNIT ASSOCIATED WITH THE SYSTEM PROGRAM IS NOT RELATED TO THE 3117 / UNIT OF THE PREVAILING DIRECTORIES. THEREFORE, THE UNIT IS RESET TO ITS 3118 / PRIOR VALUE BEFORE THE COMMAND. 3119 3120 005006* 1070 TAD OLDUNIT /RESTORE PREVIOUS UNIT AS IT WAS 3121 005007* 3000 DCA UNIT /BEFORE SYSTEM NAME WAS PARSED 3122 3123 / CHECK IF THE PREVIOUS UNIT MATCHES THE BOOTSTRAP UNIT; IF NOT THEN 3124 / READ IN THE CORRESPONDING EXTENDED USER DIRECTORY. 3125 3126 005010* 1567 TAD I PSBTFUN/[SBTFUN] /GET BOOTSTRAP UNIT WORD 3127 005011* 0177 AND L7/[7] /JUST UNIT BITS 3128 005012* 7041 CIA /INVERT FOR TESTING 3129 005013* 1000 TAD UNIT /COMPARE TO PREVIOUS UNIT 3130 005014* 7650 SNA CLA /SKIP IF DIFFERENT 3131 005015* 5222 JMP ZAPFULL /JUMP IF IT MATCHES 3132 005016* 4037 JMS UNITIO /CALL I/O ROUTINES 3133 005017* 4000 SYSLEN^200+FILBEG /EXTENDED USER DIRECTORY BUFFER ADDRESS 3134 005020* 0300 EXTLEN^100 /FUNCTION WORD 3135 005021* 0067 EXTCAT /BLOCK 3136 3137 / BEFORE POSSIBLY SCANNING FILE NAMES, ENSURE "CATALOG FULL!" ERRORS WILL 3138 / ULTIMATELY BOOTSTRAP. 3139 3140 005022* 1375 ZAPFULL,TAD (JMP I WHATMORE/[XWHATMORE]) /GET BOOTSTRAPPING INSTRUCTION 3141 005023* 3774 DCA I (FULLZAP) /PATCH CATALOG FULL ROUTINE 3142 / NOW SCAN CURRENT HALF OF COMMAND LINE FOR ALL POSSIBLE OPTION ELEMENTS 3143 / AS WELL AS (INPUT OR OUTPUT) FILE NAMES. 3144 3145 005024* 4510 SCANLP, JMS I TSPACE/[XTSPACE] /IGNORE AND 3146 005025* 4504 JMS I GETHAF/[XGETHAF] /GET A CHARACTER 3147 005026* 7450 SNA /? 3148 005027* 5304 JMP EOLINE /YES 3149 005030* 1373 TAD (-",!200) /COMPARE TO "," 3150 005031* 7450 SNA /SKIP IF OTHER 3151 005032* 5262 JMP SCNNXT /IGNORE "," 3152 005033* 1065 TAD L7756/[-">+",] /COMPARE TO ">" 3153 005034* 7450 SNA /SKIP IF OTHER 3154 005035* 5321 JMP SCANGT /JUMP IF IT MATCHES 3155 005036* 7001 IAC/TAD (-"=+">) /COMPARE TO "=" 3156 005037* 7450 SNA /SKIP IF OTHER 3157 005040* 5326 JMP SCANEQ /JUMP IF IT MATCHES 3158 005041* 7001 IAC/TAD (-"<+"=) /COMPARE TO "<" 3159 005042* 7450 SNA /SKIP IF OTHER 3160 005043* 5302 JMP SCANLT /JUMP IF IT MATCHES 3161 005044* 1041 TAD L15/[-"/+"<] /COMPARE TO "/" 3162 005045* 7450 SNA /SKIP IF OTHER 3163 005046* 5335 JMP SCANSLSH /JUMP IF IT MATCHES 3164 005047* 1177 TAD L7/[-"(+"/] /COMPARE TO "(" 3165 005050* 7640 SZA CLA /SKIP IF IT MATCHES 3166 005051* 5264 JMP SCANFILES /JUMP IF FILE NAME ONLY THING LEFT 3167 005052* 2026 ISZ GETNDX /BUMP PAST "(" 3168 005053* 4772 SWMORE, JMS I (PROCSW) /PROCESS LATEST SWITCH CHARACTER 3169 005054* 4504 JMS I GETHAF/[XGETHAF] /GET NEXT CHARACTER 3170 005055* 7450 SNA /? 3171 005056* 5304 JMP EOLINE /YES 3172 005057* 1371 TAD (-")!200) /COMPARE TO ")" 3173 005060* 7640 SZA CLA /SKIP IF END OF GROUP 3174 005061* 5253 JMP SWMORE /ELSE GO DO ANOTHER SWITCH 3175 005062* 2026 SCNNXT, ISZ GETNDX /BUMP PAST LATEST CHARACTER 3176 005063* 5224 JMP SCANLP /KEEP GOING 3177 3178 005064* 1770 SCANFIL,TAD I (LODLEN) /GET LOAD/LENGTH WORD 3179 005065* 0006 AND L100/[NOSCAN] /JUST FILE-SCAN BIT 3180 005066* 7640 SZA CLA /SKIP IF FILES ARE ALLOWED 3181 005067* 5321 JMP SCANGT /JUMP IF NOT 3182 005070* 1341 TAD OUTLOOK /GET CREATION SWITCH 3183 005071* 4564 JMS I PFILNAME/[FILNAME] /TRY TO LOCATE FILE 3184 005072* 7410 TOOMNY, SKP /**** TOO MANY FILES **** 0000 3185 005073* 5767 JMP I (MANYFILES) /COMPLAIN OF TOO MANY FILES 3186 005074* 1000 TAD UNIT /ADD ON UNIT BITS 3187 005075* 3740 DCA I FILEPTR /STORE A FILE SPECIFICATION 3188 005076* 2340 ISZ FILEPTR /BUMP TO NEXXT FILE SLOT 3189 005077* 7410 SKP /SKIP IF NOT AT END OF LIST 3190 005100* 3272 DCA TOOMNY /PREVENT ADDITIONAL FILES 3191 005101* 5224 JMP SCANLP /KEEP GOING 3192 3193 005102* 2026 SCANLT, ISZ GETNDX /BUMP TO NEXT 3194 005103* 5311 JMP LTCONTINUE /KEEP GOING 3195 005104* 1777 EOLINE, TAD I (RINDX) /GET RIGHT SCAN INDICATOR 3196 005105* 7650 SNA CLA /SKIP IF SET 3197 005106* 5321 JMP SCANGT /ELSE WE'RE DONE 3198 005107* 1776 TAD I (LINDX) /RESET THE SCAN POINTER 3199 005110* 3026 DCA GETNDX /FOR LEFT PORTION OF COMMAND LINE 3200 005111* 3341 LTCONTI,DCA OUTLOOK /CLEAR CREATION SWITCH 3201 005112* 1340 TAD FILEPTR /GET THE FILE POINTER 3202 005113* 1366 TAD (21) /UPDATE TO FILE COUNT 3203 005114* 3765 DCA I (RPARMS+3) /STORE IN LIST 3204 005115* 1764 TAD I (STARTADDRESS) /GET STARTING ADDRESS WORD 3205 005116* 0006 AND L100/[NOSCAN] /JUST INPUT FILE SCAN BIT 3206 005117* 7650 SNA CLA /SKIP IF SET 3207 005120* 5224 JMP SCANLP /KEEP GOING IF INPUT FILES ALLOWED 3208 005121* 3740 SCANGT, DCA I FILEPTR /DELIMIT THE FILE LIST 3209 005122* 1070 TAD OLDUNIT /GET PREVIOUS UNIT 3210 005123* 3000 FILZERO,DCA UNIT /MAKE IT THE CURRENT UNIT 3211 005124* 3723 DCA I FILZERO/(FILBEG) /MAKE FILE EMPTY 3212 005125* 5763 JMP I (RENDIT) /CONTINUE THERE 3213 3214 / EQUALS PROCESSOR. 3215 3216 005126* 2026 SCANEQ, ISZ GETNDX /BUMP PAST "=" 3217 005127* 2465 ISZ I L7756/[SPARM] /DID WE SEE ONE ALREADY? 3218 005130* 7410 SKP /SKIP IF SO 3219 005131* 4462 JMS I LINENO/[XLINENO] /GET THE VALUE IF NOT 3220 005132* 5762 JMP I (BADEQ) /COMPLAIN IF BAD OR REPEAT 3221 005133* 3465 DCA I L7756/[SPARM] /STORE THE VALUE 3222 005134* 5224 JMP SCANLP /KEEP GOING 3223 3224 / SLASH PROCESSOR. 3225 3226 005135* 2026 SCANSLS,ISZ GETNDX /BUMP PAST "/" 3227 005136* 4772 JMS I (PROCSW) /PROCESS THE SWITCH 3228 005137* 5224 JMP SCANLP /KEEP GOING 3229 3230 005140* 7757 FILEPTR,SFILES /FILE POINTER 3231 005141* 0000 OUTLOOK,.-. /LOOKUP CREATION SWITCH 3232 3233 005162* 5226 PAGE 005163* 5200 005164* 4755 005165* 5314 005166* 0021 005167* 5242 005170* 4754 005171* 7727 005172* 5245 005173* 7724 005174* 0771 005175* 5457 005176* 4747 005177* 4751 3234 / COMES HERE TO FINISH UP AND START UP THE PROGRAM. 3235 3236 005200* 7240 RENDIT, NL7777 /INDICATE THE 3237 005201* 3121 DCA SWAPSW /NEED TO SWAP 3238 005202* 1014 TAD L7774/[-4] /SET THE MOVE COUNT 3239 005203* 4527 JMS I PMOVE/[MOVE] /MOVE THE END OF FILE 3240 005204* 5305 FILCLR /FROM HERE 3241 005205* 6774 FILBEG+3774 /TO HERE 3242 005206* 1014 TAD L7774/[-4] /SET THE MOVE COUNT 3243 005207* 4527 JMS I PMOVE/[MOVE] /MOVE THE SWITCH OPTIONS AND OUTPUT FILE COUNT 3244 005210* 5311 RPARMS /FROM HERE 3245 005211* 7604 SWAL /TO HERE 3246 005212* 1013 TAD L7772/[-6] /SET THE MOVE COUNT 3247 005213* 4527 JMS I PMOVE/[MOVE] /MOVE THE SYSTEM LOADER IMAGE 3248 005214* 4756 RA /FROM HERE 3249 005215* 7632 SLOAD /TO HERE 3250 005216* 7326 NL0002 /SET THE "C" BIT 3251 005217* 0570 AND I PSCRSIZE/[SCRSIZE] /GET THE BIT 3252 005220* 7640 SZA CLA /SKIP IF NORMAL MODE 3253 005221* 5472 JMP I PSLOAD/[SLOAD] /START IT UP IF "C" BIT SET 3254 005222* 6041 TSFIOT /WAIT FOR 3255 005223* 5222 JMP .-1 /THE FLAG 3256 005224* 6040 TFLIOT /IN CASE DECMATE 3257 005225* 5472 JMP I PSLOAD/[SLOAD] /GO START IT UP 3258 3259 / ERROR ROUTINES. 3260 3261 005226* 4112 BADEQ, JMS MESSAGE /COMPLAIN OF 3262 005227* 5334 BEQMSG /BAD "=" 3263 005230* 5457 JMP I WHATMORE/[XWHATMORE] /FORGET IT 3264 3265 005231* 4112 BADNAME,JMS MESSAGE /COMPLAIN OF 3266 005232* 5315 BDNMSG /IMPROPER PROGRAM NAME 3267 005233* 5457 JMP I WHATMORE/[XWHATMORE] /FORGET IT 3268 3269 005234* 4112 BADOSW, JMS MESSAGE /COMPLAIN OF 3270 005235* 5326 BDSWMSG /BAD SWITCH 3271 005236* 5457 JMP I WHATMORE/[XWHATMORE] /FORGET IT 3272 3273 005237* 4112 BADSCAN,JMS MESSAGE /COMPLAIN OF 3274 005240* 5347 BFSMSG /BAD < OR > 3275 005241* 5457 JMP I WHATMORE/[XWHATMORE] /FORGET IT 3276 3277 005242* 4112 MANYFIL,JMS MESSAGE /COMPLAIN OF 3278 005243* 5361 TMFMSG /TOO MANY FILES 3279 005244* 5457 JMP I WHATMORE/[XWHATMORE] /FORGET IT 3280 / SWITCH PROCESSING ROUTINE. 3281 3282 005245* 0000 PROCSW, .-. /SWITCH PROCESSING ROUTINE 3283 005246* 1377 TAD (RPARMS-1) /POINT AT 3284 005247* 3001 DCA TPTR1 /SWITCH LIST 3285 005250* 4504 JMS I GETHAF/[XGETHAF] /GET THE CHARACTER 3286 005251* 7450 SNA /? 3287 005252* 5234 JMP BADOSW /YES, COMPLAIN 3288 005253* 1376 TAD (-"[!300) /COMPARE TO ALPHABETIC LIMIT 3289 005254* 7510 SPA /SKIP IF NOT ALPHABETIC 3290 005255* 5263 JMP SWOK /JUMP IF IT IS 3291 005256* 1011 TAD L7741/[-":+"[-100] /COMPARE TO NUMERIC LIMIT 3292 005257* 7120 STL /SET LINK FOR TEST 3293 005260* 1063 TAD L12/[":-"0] /ADD ON RANGE 3294 005261* 7430 SZL /SKIP IF VALID NUMERIC 3295 005262* 5234 JMP BADOSW /JUMP IF NOT 3296 005263* 1375 SWOK, TAD ("Z&77) /ADJUST TO RANGE 0-43 3297 005264* 2001 SWSUB, ISZ TPTR1 /BUMP TO NEXT WORD 3298 005265* 1374 TAD (-14) /SUBTRACT TWELVE BITS WORTH 3299 005266* 7500 SMA /SKIP IF NOW AT RIGHT WORD 3300 005267* 5264 JMP SWSUB /ELSE KEEP GOING 3301 005270* 3122 DCA TCNT1 /SAVE REMAINDER AS SHIFT COUNT 3302 005271* 7120 STL /SET THE BIT 3303 005272* 7004 RAL /MOVE IT OVER 3304 005273* 2122 ISZ TCNT1 /DONE YET? 3305 005274* 5272 JMP .-2 /NO, KEEP GOING 3306 005275* 3122 DCA TCNT1 /SAVE THE BIT 3307 005276* 1122 TAD TCNT1 /GET IT BACK 3308 005277* 7040 CMA /INVERT IT 3309 005300* 0401 AND I TPTR1 /PRESERVE OTHER BITS 3310 005301* 1122 TAD TCNT1 /OR IN OUR BIT 3311 005302* 3401 DCA I TPTR1 /STORE EVERYONE BACK 3312 005303* 2026 ISZ GETNDX /BUMP TO NEXT CHARACTER 3313 005304* 5645 JMP I PROCSW /RETURN 3314 3315 / IMAGE OF END OF EMPTY FILE. 3316 3317 005305* 3000 FILCLR, FILBEG /DUMMY - POINTER TO START OF THIS LINE 3318 005306* 7777 7777 /DUMMY - LINE NUMBER 3319 005307* 3000 FILBEG /POINTER TO FIRST AVAILABLE SPACE 3320 005310* 6774 FILBEG+3774 /POINTER TO DUMMY PAIR OF POINTERS 3321 3322 / IMAGE OF SWITCH OPTIONS AND OUTPUT FILE COUNT. 3323 3324 005311* 0000 RPARMS, 0000 /SWITCHES /A-/L 3325 005312* 0000 0000 /SWITCHES /M-/X 3326 005313* 0000 0000 /SWITCHES /Y-/9 3327 005314* 0000 0 /OUTPUT FILE COUNT 3328 / ERROR MESSAGES. 3329 3330 005315* 0201 BDNMSG, TEXT "BAD SYSTEM NAME!";0 005316* 0440 005317* 2331 005320* 2324 005321* 0515 005322* 4016 005323* 0115 005324* 0541 005325* 0000 3331 005326* 0201 BDSWMSG,TEXT "BAD SWITCH!" 005327* 0440 005330* 2327 005331* 1124 005332* 0310 005333* 4100 3332 005334* 0201 BEQMSG, TEXT "BAD EQUALS PARAMETER!" 005335* 0440 005336* 0521 005337* 2501 005340* 1423 005341* 4020 005342* 0122 005343* 0115 005344* 0524 005345* 0522 005346* 4100 3333 005347* 0201 BFSMSG, TEXT "BAD FILE SEPARATOR!" 005350* 0440 005351* 0611 005352* 1405 005353* 4023 005354* 0520 005355* 0122 005356* 0124 005357* 1722 005360* 4100 3334 005361* 2417 TMFMSG, TEXT "TOO MANY FILES!" 005362* 1740 005363* 1501 005364* 1631 005365* 4006 005366* 1114 005367* 0523 005370* 4100 3335 3336 005374* 7764 PAGE 005375* 0032 005376* 7745 005377* 5310 3337 005400* 0000 ZBLOCK 200 /RESERVED FOR EXPANSION 005401* 0000 005402* 0000 005403* 0000 005404* 0000 005405* 0000 005406* 0000 005407* 0000 005410* 0000 005411* 0000 005412* 0000 005413* 0000 005414* 0000 005415* 0000 005416* 0000 005417* 0000 005420* 0000 005421* 0000 005422* 0000 005423* 0000 005424* 0000 005425* 0000 005426* 0000 005427* 0000 005430* 0000 005431* 0000 005432* 0000 005433* 0000 005434* 0000 005435* 0000 005436* 0000 005437* 0000 005440* 0000 005441* 0000 005442* 0000 005443* 0000 005444* 0000 005445* 0000 005446* 0000 005447* 0000 005450* 0000 005451* 0000 005452* 0000 005453* 0000 005454* 0000 005455* 0000 005456* 0000 005457* 0000 005460* 0000 005461* 0000 005462* 0000 005463* 0000 005464* 0000 005465* 0000 005466* 0000 005467* 0000 005470* 0000 005471* 0000 005472* 0000 005473* 0000 005474* 0000 005475* 0000 005476* 0000 005477* 0000 005500* 0000 005501* 0000 005502* 0000 005503* 0000 005504* 0000 005505* 0000 005506* 0000 005507* 0000 005510* 0000 005511* 0000 005512* 0000 005513* 0000 005514* 0000 005515* 0000 005516* 0000 005517* 0000 005520* 0000 005521* 0000 005522* 0000 005523* 0000 005524* 0000 005525* 0000 005526* 0000 005527* 0000 005530* 0000 005531* 0000 005532* 0000 005533* 0000 005534* 0000 005535* 0000 005536* 0000 005537* 0000 005540* 0000 005541* 0000 005542* 0000 005543* 0000 005544* 0000 005545* 0000 005546* 0000 005547* 0000 005550* 0000 005551* 0000 005552* 0000 005553* 0000 005554* 0000 005555* 0000 005556* 0000 005557* 0000 005560* 0000 005561* 0000 005562* 0000 005563* 0000 005564* 0000 005565* 0000 005566* 0000 005567* 0000 005570* 0000 005571* 0000 005572* 0000 005573* 0000 005574* 0000 005575* 0000 005576* 0000 005577* 0000 3338 3339 RELOC /TURN OFF RELOCATION 3340 / IMAGE OF SLURP LOADER BLOCK. 3341 3342 FIELD SLPGEN&70%10 /GENERATION FIELD 3343 3344 *SLPGEN&7600 /GENERATION ADDRESS 3345 3346 SLPCORE,NOPUNCH /FOOL THE ASSEMBLER 3347 3348 FIELD 0 /WHERE IT LOADS 3349 3350 *SLPCORE /RESET ORIGIN 3351 3352 ENPUNCH /UN-FOOL THE ASSEMBLER 3353 3354 RELOC SBOOT /WHERE IT EXECUTES 3355 3356 007600* 0000 SBOOT, ZBLOCK BBLEN /PORTION OF LOADER WHICH IS ALSO BOOTSTRAP 007601* 0000 007602* 0000 007603* 0000 007604* 0000 007605* 0000 007606* 0000 007607* 0000 007610* 0000 007611* 0000 007612* 0000 007613* 0000 007614* 0000 007615* 0000 007616* 0000 007617* 0000 007620* 0000 007621* 0000 007622* 0000 007623* 0000 007624* 0000 007625* 0000 007626* 0000 007627* 0000 007630* 0000 007631* 0000 007632* 0000 007633* 0000 007634* 0000 007635* 0000 007636* 0000 007637* 0000 007640* 0000 007641* 0000 007642* 0000 3357 3358 007643* 0000 ZBLOCK BCIF-. /PORTION OF LOADER 007644* 0000 007645* 0000 007646* 0000 007647* 0000 007650* 0000 007651* 0000 007652* 0000 007653* 0000 007654* 0000 007655* 0000 007656* 0000 007657* 0000 007660* 0000 007661* 0000 007662* 0000 007663* 0000 007664* 0000 007665* 0000 007666* 0000 007667* 0000 007670* 0000 007671* 0000 007672* 0000 007673* 0000 007674* 0000 007675* 0000 007676* 0000 007677* 0000 007700* 0000 007701* 0000 007702* 0000 007703* 0000 007704* 0000 007705* 0000 007706* 0000 007707* 0000 007710* 0000 007711* 0000 007712* 0000 007713* 0000 007714* 0000 007715* 0000 007716* 0000 007717* 0000 007720* 0000 007721* 0000 007722* 0000 007723* 0000 007724* 0000 007725* 0000 007726* 0000 007727* 0000 007730* 0000 007731* 0000 007732* 0000 007733* 0000 007734* 0000 007735* 0000 007736* 0000 007737* 0000 007740* 0000 007741* 0000 007742* 0000 007743* 0000 007744* 0000 007745* 0000 3359 3360 007746* 0000 BCIF, ZBLOCK SPARM-. /CIF CDF STARTUP FIELD GOES HERE 007747* 0000 007750* 0000 007751* 0000 007752* 0000 007753* 0000 007754* 0000 007755* 0000 3361 3362 007756* 7742 SPARM, BERR /DEFAULT START TO SAFE LOADER HALT GOES HERE 3363 3364 SFILES, RELOC BINIT2 /FILES WILL BE PASSED HERE 3365 3366 000031* 0000 BINIT2, ZBLOCK BINITLN /BOOTSTRAP UNIT SETUP CODE WILL GO HERE 000032* 0000 000033* 0000 000034* 0000 000035* 0000 000036* 0000 000037* 0000 000040* 0000 000041* 0000 000042* 0000 000043* 0000 000044* 0000 000045* 0000 000046* 0000 000047* 0000 000050* 0000 3367 3368 RELOC SFILES+BINITLN /RESET ORIGIN RELATIVE TO SBOOT 3369 3370 007777* 7665 SLPSA, BREAD /STARTING ADDRESS OF LOADER; 0 MEANS USE /V 3371 3372 / TYPICAL VALUES. 3373 3374 BERR= 7742 /DEFAULT SAFE HALT ADDRESS 3375 BREAD= 7665 /STARTING ADDRESS OF LOADER 3376 3377 RELOC /TURN OFF RELOCATION 3378 / DEFAULT EXTENSION DEFINITIONS. 3379 3380 / TO BE USED IN SYSTEMS CATALOG ENTRIES FOR EXTENDED EXECUTION. 3381 3382 TYPE0= 0 /NO OUTPUT, NO INPUT 3383 TYPE1= 1 /GENERAL OUTPUT, GENERAL INPUT 3384 TYPE2= 2 /NO OUTPUT, BINARY INPUT 3385 TYPE3= 3 /BINARY INPUT, BINARY OUTPUT 3386 TYPE4= 4 /BINARY OUTPUT, NO INPUT 3387 TYPE5= 5 /ASCII OUTPUT, ASCII INPUT 3388 TYPE6= 6 /ASCII OUTPUT, NO INPUT 3389 TYPE7= 7 /BINARY OUTPUT, PAL INPUT 3390 TYPE10= 10 /PAL OUTPUT, PAL INPUT 3391 TYPE11= 11 /NO OUTPUT, BATCH INPUT 3392 TYPE12= 12 /NO OUTPUT, DUMP INPUT 3393 TYPE13= 13 /NO OUTPUT, FOCAL INPUT 3394 TYPE14= 14 /PAL OUTPUT, NO INPUT 3395 TYPE15= 15 /NO OUTPUT, PAL INPUT 3396 3397 / DEFINE ADDITIONAL TYPES AS NECESSARY. 3398 / IMAGE OF SYSTEMS CATALOG. 3399 3400 / EXTENDED COMMAND PROCESSOR CANNOT ACCESS ANY SYSTEM PROGRAM PAST FIRST PAGE. 3401 3402 FIELD SYSCGEN&70%10 /WHERE IT GENERATES 3403 3404 *SYSCGEN&7600 /WHERE IT LOADS 3405 3406 025000 1704 SYSCADR,TEXT "ODT";0 /OCTAL DEBUGGING TECHNIQUE 025001 2400 025002 0000 3407 025003 0163 ODTBLK /BLOCK NUMBER 3408 025004 0016 0000+ODTLEN /LOAD ADDRESS+LENGTH 3409 025005 3001 ODSTRT+TYPE1 /STARTING ADDRESS 3410 025006 0201 TEXT "BATCH" /BATCH SYSTEM 025007 2403 025010 1000 3411 025011 0201 BATBLK /BLOCK NUMBER 3412 025012 7401 BATMEM+BATLEN /LOAD ADDRESS+LENGTH 3413 025013 7411 BATSTRT+TYPE11 /STARTING ADDRESS 3414 025014 0211 TEXT "BIN";0 /BINARY LOADER 025015 1600 025016 0000 3415 025017 0203 BINBLK /BLOCK NUMBER 3416 025020 0013 0000+BINLEN /LOAD ADDRESS+LENGTH 3417 025021 0203 BSTART+TYPE3 /STARTING ADDRESS 3418 025022 0705 TEXT "GET";0 /GET COMMAND (SYSTEM) 025023 2400 025024 0000 3419 025025 0203 BINBLK /BLOCK NUMBER 3420 025026 0013 0000+BINLEN /LOAD ADDRESS+LENGTH 3421 025027 0603 GET+TYPE3 /STARTING ADDRESS 3422 025030 2324 TEXT "START" /START COMMAND (SYSTEM) 025031 0122 025032 2400 3423 025033 0203 BINBLK /BLOCK NUMBER 3424 025034 0013 0000+BINLEN /LOAD ADDRESS+LENGTH 3425 025035 0401 START+TYPE1 /STARTING ADDRESS 3426 025036 0425 TEXT "DUMP";0 /DUMP SYSTEM 025037 1520 025040 0000 3427 025041 0232 DUMBLK /BLOCK NUMBER 3428 025042 0007 0000+DUMLEN /LOAD ADDRESS+LENGTH 3429 025043 1412 DUMSTRT+TYPE12 /STARTING ADDRESS 3430 025044 0310 TEXT "CHANGE" /CHANGE SYSTEM 025045 0116 025046 0705 3431 025047 0241 CHNGBLK /BLOCK NUMBER 3432 025050 1343 XGLINE+CHNGLEN+KEPRADX+NOSCAN /LOAD ADDRESS+LENGTH 3433 025051 1600 CHANGE+TYPE0 /STARTING ADDRESS 3434 025052 0611 TEXT "FIND";0 /FIND SYSTEM 025053 1604 025054 0000 3435 025055 0241 CHNGBLK /BLOCK NUMBER 3436 025056 1343 XGLINE+CHNGLEN+KEPRADX+NOSCAN /LOAD ADDRESS+LENGTH 3437 025057 1200 FIND+TYPE0 /STARTING ADDRESS 3438 025060 0000 0000 /THIS ENDS THE CATALOGUE 3439 3440 025061 0000 ZBLOCK SYSLEN^200-1+SYSCADR-. /ZERO OUT REST OF TABLE 025062 0000 025063 0000 025064 0000 025065 0000 025066 0000 025067 0000 025070 0000 025071 0000 025072 0000 025073 0000 025074 0000 025075 0000 025076 0000 025077 0000 025100 0000 025101 0000 025102 0000 025103 0000 025104 0000 025105 0000 025106 0000 025107 0000 025110 0000 025111 0000 025112 0000 025113 0000 025114 0000 025115 0000 025116 0000 025117 0000 025120 0000 025121 0000 025122 0000 025123 0000 025124 0000 025125 0000 025126 0000 025127 0000 025130 0000 025131 0000 025132 0000 025133 0000 025134 0000 025135 0000 025136 0000 025137 0000 025140 0000 025141 0000 025142 0000 025143 0000 025144 0000 025145 0000 025146 0000 025147 0000 025150 0000 025151 0000 025152 0000 025153 0000 025154 0000 025155 0000 025156 0000 025157 0000 025160 0000 025161 0000 025162 0000 025163 0000 025164 0000 025165 0000 025166 0000 025167 0000 025170 0000 025171 0000 025172 0000 025173 0000 025174 0000 025175 0000 025176 0000 025177 0000 025200 0000 025201 0000 025202 0000 025203 0000 025204 0000 025205 0000 025206 0000 025207 0000 025210 0000 025211 0000 025212 0000 025213 0000 025214 0000 025215 0000 025216 0000 025217 0000 025220 0000 025221 0000 025222 0000 025223 0000 025224 0000 025225 0000 025226 0000 025227 0000 025230 0000 025231 0000 025232 0000 025233 0000 025234 0000 025235 0000 025236 0000 025237 0000 025240 0000 025241 0000 025242 0000 025243 0000 025244 0000 025245 0000 025246 0000 025247 0000 025250 0000 025251 0000 025252 0000 025253 0000 025254 0000 025255 0000 025256 0000 025257 0000 025260 0000 025261 0000 025262 0000 025263 0000 025264 0000 025265 0000 025266 0000 025267 0000 025270 0000 025271 0000 025272 0000 025273 0000 025274 0000 025275 0000 025276 0000 025277 0000 025300 0000 025301 0000 025302 0000 025303 0000 025304 0000 025305 0000 025306 0000 025307 0000 025310 0000 025311 0000 025312 0000 025313 0000 025314 0000 025315 0000 025316 0000 025317 0000 025320 0000 025321 0000 025322 0000 025323 0000 025324 0000 025325 0000 025326 0000 025327 0000 025330 0000 025331 0000 025332 0000 025333 0000 025334 0000 025335 0000 025336 0000 025337 0000 025340 0000 025341 0000 025342 0000 025343 0000 025344 0000 025345 0000 025346 0000 025347 0000 025350 0000 025351 0000 025352 0000 025353 0000 025354 0000 025355 0000 025356 0000 025357 0000 025360 0000 025361 0000 025362 0000 025363 0000 025364 0000 025365 0000 025366 0000 025367 0000 025370 0000 025371 0000 025372 0000 025373 0000 025374 0000 025375 0000 025376 0000 025377 0000 025400 0000 025401 0000 025402 0000 025403 0000 025404 0000 025405 0000 025406 0000 025407 0000 025410 0000 025411 0000 025412 0000 025413 0000 025414 0000 025415 0000 025416 0000 025417 0000 025420 0000 025421 0000 025422 0000 025423 0000 025424 0000 025425 0000 025426 0000 025427 0000 025430 0000 025431 0000 025432 0000 025433 0000 025434 0000 025435 0000 025436 0000 025437 0000 025440 0000 025441 0000 025442 0000 025443 0000 025444 0000 025445 0000 025446 0000 025447 0000 025450 0000 025451 0000 025452 0000 025453 0000 025454 0000 025455 0000 025456 0000 025457 0000 025460 0000 025461 0000 025462 0000 025463 0000 025464 0000 025465 0000 025466 0000 025467 0000 025470 0000 025471 0000 025472 0000 025473 0000 025474 0000 025475 0000 025476 0000 025477 0000 025500 0000 025501 0000 025502 0000 025503 0000 025504 0000 025505 0000 025506 0000 025507 0000 025510 0000 025511 0000 025512 0000 025513 0000 025514 0000 025515 0000 025516 0000 025517 0000 025520 0000 025521 0000 025522 0000 025523 0000 025524 0000 025525 0000 025526 0000 025527 0000 025530 0000 025531 0000 025532 0000 025533 0000 025534 0000 025535 0000 025536 0000 025537 0000 025540 0000 025541 0000 025542 0000 025543 0000 025544 0000 025545 0000 025546 0000 025547 0000 025550 0000 025551 0000 025552 0000 025553 0000 025554 0000 025555 0000 025556 0000 025557 0000 025560 0000 025561 0000 025562 0000 025563 0000 025564 0000 025565 0000 025566 0000 025567 0000 025570 0000 025571 0000 025572 0000 025573 0000 025574 0000 025575 0000 025576 0000 025577 0000 025600 0000 025601 0000 025602 0000 025603 0000 025604 0000 025605 0000 025606 0000 025607 0000 025610 0000 025611 0000 025612 0000 025613 0000 025614 0000 025615 0000 025616 0000 025617 0000 025620 0000 025621 0000 025622 0000 025623 0000 025624 0000 025625 0000 025626 0000 025627 0000 025630 0000 025631 0000 025632 0000 025633 0000 025634 0000 025635 0000 025636 0000 025637 0000 025640 0000 025641 0000 025642 0000 025643 0000 025644 0000 025645 0000 025646 0000 025647 0000 025650 0000 025651 0000 025652 0000 025653 0000 025654 0000 025655 0000 025656 0000 025657 0000 025660 0000 025661 0000 025662 0000 025663 0000 025664 0000 025665 0000 025666 0000 025667 0000 025670 0000 025671 0000 025672 0000 025673 0000 025674 0000 025675 0000 025676 0000 025677 0000 025700 0000 025701 0000 025702 0000 025703 0000 025704 0000 025705 0000 025706 0000 025707 0000 025710 0000 025711 0000 025712 0000 025713 0000 025714 0000 025715 0000 025716 0000 025717 0000 025720 0000 025721 0000 025722 0000 025723 0000 025724 0000 025725 0000 025726 0000 025727 0000 025730 0000 025731 0000 025732 0000 025733 0000 025734 0000 025735 0000 025736 0000 025737 0000 025740 0000 025741 0000 025742 0000 025743 0000 025744 0000 025745 0000 025746 0000 025747 0000 025750 0000 025751 0000 025752 0000 025753 0000 025754 0000 025755 0000 025756 0000 025757 0000 025760 0000 025761 0000 025762 0000 025763 0000 025764 0000 025765 0000 025766 0000 025767 0000 025770 0000 025771 0000 025772 0000 025773 0000 025774 0000 025775 0000 025776 0000 3441 3442 025777 0201 LOWBLK /FIRST FREE BLOCK (WORST CASE) 3443 / P?S MONITOR GENERATOR (CONSTANT VOLTAGE TYPE). 3444 3445 FIELD 0 /WHERE THIS GOES 3446 3447 *6600 /AS GOOD A PLACE AS ANY 3448 3449 GENASYS=. /START MONGENNING HERE 3450 3451 006600 1177 G1177, TAD L7/["G&37] /\ 3452 006601 6046 GTEMP, TLSIOT / >RING THE AND HALT 3453 006602 7402 GTEMP0, HLT // 3454 006603 7604 LAS /GET THE CONSOLE SWITCHES 3455 006604 7040 CMA /INVERT THEM 3456 006605 7650 SNA CLA /SKIP IF THEY WEREN'T ALL SET 3457 006606 5224 JMP GENTHIS /JUMP IF THEY WERE 3458 006607 1725 GLOOP, TAD I GTEM/(GENAD1) /\ 3459 006610 3711 DCA I GCLEAR/(SBOOT) / \ 3460 006611 2325 ISZ GTEM/(GENAD1) / >MOVE THE I/O ROUTINES UP 3461 006612 2311 ISZ GCLEAR/(SBOOT) / / 3462 006613 5207 JMP GLOOP // 3463 006614 6211 GLOOP2, CDF EXHGFLD /WHERE HELPER CODE IS NOW 3464 006615 1723 TAD I GHSTRT/(EXHGEN&7600) /GET A WORD 3465 006616 3724 DCA I GHFNSH/(EXHRUN&7600) /PUT A WORD 3466 006617 2323 ISZ GHSTRT/(EXHGEN&7600) /BUMP TO NEXT 3467 006620 2324 ISZ GHFNSH/(EXHRUN&7600) /DONE YET? 3468 006621 5214 JMP GLOOP2 /NO, GO BACK 3469 006622 6201 CDF 00 /BACK TO FIELD 0 3470 006623 4777 JMS I (STHFIX) /FIXUP ANY HANDLER PROBLEMS NOW 3471 006624 4572 GENTHIS,JMS I SSYSIO/[SYSIO] /WRITE OUT I/O ROUTINE (WORKING COPY) 3472 006625 7400 GENAD1 /WHERE ROUTINES ARE 3473 006626 4100 1^100+WRITE /ONE ONLY 3474 006627 0000 0 /ONTO BLOCK ZERO 3475 006630 4572 JMS I SSYSIO/[SYSIO] /WRITE SOME MORE 3476 006631 0000 0 /FROM PAGE ZERO 3477 006632 5400 14^100+WRITE /EDITOR AND EDIT COMMAND 3478 006633 0001 1 /STARTING AT BLOCK ONE 3479 006634 4311 JMS GCLEAR /CLEAR 1000-1777 3480 006635 1363 TAD GLOW /GET LOWEST BLOCK 3481 006636 7041 CIA /INVERT 3482 006637 1360 TAD DEVSIZE /NOW HAVE USER BLOCKS AVAILABLE 3483 006640 7110 CLL RAR;CLL RAR;CLL RAR;CLL RAR /DIVIDE BY 20 006641 7110 006642 7110 006643 7110 3484 006644 1376 TAD (-124) /COMPARE TO MAXIMUM 3485 006645 7500 SMA /SKIP IF LESS 3486 006646 7200 CLA /ELSE IGNORE EXCESS 3487 006647 1375 TAD (124) /RESTORE VALUE 3488 006650 3202 DCA GTEMP0 /SAVE USER FILE COUNT 3489 006651 1202 TAD GTEMP0 /GET IT BACK 3490 006652 7104 CLL RAL /*2 3491 006653 1202 TAD GTEMP0 /*3 3492 006654 1150 TAD CATCORE/[CATADR]/UFILES^3+CATADR 3493 006655 7041 CIA /INVERT FOR LIMIT 3494 006656 3361 DCA GTEMP1 /SAVE IT 3495 006657 1202 TAD GTEMP0 /GET COUNT 3496 006660 7106 CLL RTL;RTL /*20 006661 7006 3497 006662 1363 TAD GLOW /ADD ON FIRST USER BLOCK 3498 006663 3362 DCA GTEMP2 /SAVE UPPER LIMIT 3499 006664 7346 NL7775 /MOVE 3500 006665 4527 JMS I PMOVE/[MOVE] /CATALOG 3501 006666 6761 GTEMP1 /POINTERS 3502 006667 1375 1375 /DOWN 3503 006670 4572 JMS I SSYSIO/[SYSIO] /WRITE ON 3504 006671 1000 G1000, 1000 /EMPTY CATALOG CORE 3505 006672 4200 2^100+WRITE /TWO ONLY 3506 006673 0015 DIR /FIRST DIRECTORY BLOCK 3507 006674 4311 JMS GCLEAR /CLEAR OUT BUFFER 3508 006675 7240 NL7777 /BACKUP 3509 006676 1360 TAD DEVSIZE /NOW HAVE HIGHEST BLOCK 3510 006677 3361 DCA GTEMP1 /STASH IT 3511 006700 7344 NL7776 /SET TO MOVE 2 WORDS 3512 006701 4527 JMS I PMOVE/[MOVE] /CALL THE MOVE ROUTINE 3513 006702 6761 GTEMP1 /PARAMETERS FOR EXTENDED FILES 3514 006703 1576 1576 /MOVED TO I/O AREA 3515 006704 4572 JMS I SSYSIO/[SYSIO] /\ 3516 006705 1000 1000 / \WRITE OUT THE ENTIRE 3517 006706 4300 EXTLEN^100+WRITE / /EXTENDED USER CATALOG 3518 006707 0067 EXTCAT // 3519 006710 5774 JMP I (GNSYS2) /GO TO REST OF GENERATION CODE 3520 3521 006711 7600 GCLEAR, SBOOT /CLEAR ROUTINE; INITIALIZED FOR I/O MOVE 3522 006712 1271 TAD G1000/(1000) /START OF BUFFER 3523 006713 3325 DCA GTEM /TO POINTER 3524 006714 1150 TAD CATCORE/[-1000] /BUFFER COUNT 3525 006715 3201 DCA GTEMP /TO COUNTER 3526 006716 3725 DCA I GTEM /CLEAR A WORD 3527 006717 2325 ISZ GTEM /BUMP POINTER 3528 006720 2201 ISZ GTEMP /ANOTHER? 3529 006721 5316 JMP .-3 /GO BACK 'TIL DONE 3530 006722 5711 JMP I GCLEAR /RETURN 3531 3532 006723 4000 GHSTRT, EXHGEN&7600 /WHERE HELPER CODE IS 3533 006724 6000 GHFNSH, EXHRUN&7600 /WHERE IT SHOULD BE WHEN USED 3534 006725 7400 GTEM, GENAD1 /TEMPORARY; INITIALIZED FOR I/O MOVE 3535 3536 006726 0000 ZBLOCK .&7600+160-. /EMPTY SPACE 006727 0000 006730 0000 006731 0000 006732 0000 006733 0000 006734 0000 006735 0000 006736 0000 006737 0000 006740 0000 006741 0000 006742 0000 006743 0000 006744 0000 006745 0000 006746 0000 006747 0000 006750 0000 006751 0000 006752 0000 006753 0000 006754 0000 006755 0000 006756 0000 006757 0000 3537 3538 006760 2702 DEVSIZE,TCSIZE /DEVICE SIZE WORD 3539 006761 0000 GTEMP1, .-. /TEMPORARY; DON'T MOVE THIS 3540 006762 0000 GTEMP2, .-. /TEMPORARY; DON'T MOVE THIS 3541 006763 0300 GLOW, 0300 /LOWEST USER BLOCK; DON'T MOVE THIS 3542 006774 7000 PAGE 006775 0124 006776 7654 006777 7300 3543 GNSYS2, EXIFLD= EXIGEN&70 /ISOLATE FIELD DEFINITION 3544 3545 007000 4572 JMS I SSYSIO/[SYSIO] /\ 3546 007001 3400 EXIGEN&7600 / \WRITE OUT THE EXTENDED 3547 007002 4210 2^100+EXIFLD+WRITE / /HANDLER INITIALIZATION CODE 3548 007003 0101 HBLOCK // 3549 3550 EXHGFLD=EXHGEN&70 /ISOLATE FIELD DEFINITION 3551 3552 007004 4572 JMS I SSYSIO/[SYSIO] /\ 3553 007005 4000 EXHGEN&7600 / \WRITE OUT THE I/O 3554 007006 5010 10^100+EXHGFLD+WRITE / /INITIALIZATION CODE 3555 007007 0103 HBLOCK+2 // 3556 3557 TRPFLD= TRPGEN&70 /ISOLATE FIELD DEFINITION 3558 3559 007010 4572 JMS I SSYSIO/[SYSIO] /\ 3560 007011 1000 TRPGEN&7600 / \WRITE OUT THE I/O 3561 007012 4220 2^100+TRPFLD+WRITE / /HANDLER TRAP CODE 3562 007013 0113 TRPBLK // 3563 3564 SYSCFLD=SYSCGEN&70 /ISOLATE FIELD DEFINITION 3565 3566 007014 4572 JMS I SSYSIO/[SYSIO] /\ 3567 007015 5000 SYSCADR / \WRITE OUT THE 3568 007016 4420 SYSLEN^100+SYSCFLD+WRITE / /SYSTEMS CATALOGUE 3569 007017 0063 SYSCAT // 3570 3571 XCMFLD= XCMGEN&70 /ISOLATE FIELD DEFINITION 3572 3573 007020 4572 JMS I SSYSIO/[SYSIO] /\ 3574 007021 1400 XCMCORE / \WRITE OUT THE EXTENDED 3575 007022 4220 SWPLEN-2^100+XCMFLD+WRITE / /COMMAND PROCESSOR 3576 007023 0061 XCMBLK // 3577 3578 RUNCFLD=RUNGEN&70 /ISOLATE FIELD DEFINITION 3579 3580 007024 4572 JMS I SSYSIO/[SYSIO] /\ 3581 007025 0000 RUNCORE / \WRITE OUT THE "R", "RU", 3582 007026 4420 RUNLEN^100+RUNCFLD+WRITE / /AND "RUN" COMMAND SYSTEM 3583 007027 0072 RUNBLK // 3584 3585 SLPGFLD=SLPGEN&70 /ISOLATE FIELD DEFINITION 3586 3587 007030 4572 JMS I SSYSIO/[SYSIO] /\ 3588 007031 4400 SLPCORE / \WRITE OUT THE 3589 007032 4120 1^100+SLPGFLD+WRITE / /SLURP LOADER 3590 007033 0100 SLPBLK // 3591 3592 DUMFLD= DUMGEN&70 /ISOLATE FIELD DEFINITION 3593 3594 007034 4572 JMS I SSYSIO/[SYSIO] /\ 3595 007035 6000 DUMGEN&7600 / \WRITE OUT THE 3596 007036 4720 DUMLEN^100+DUMFLD+WRITE / /DUMP SYSTEM 3597 007037 0232 DUMBLK // 3598 007040 4572 JMS I SSYSIO/[SYSIO] /\ 3599 007041 4000 BINGEN / \WRITE OUT THE 3600 007042 5300 BINLEN^100+WRITE / /BINARY LOADER 3601 007043 0203 BINBLK // 3602 3603 IGNFLD= IGEN&70 /ISOLATE FIELD DEFINITION 3604 3605 007044 4572 JMS I SSYSIO/[SYSIO] /\ 3606 007045 4000 IGEN&7600 / \WRITE OUT 3607 007046 4120 1^100+IGNFLD+WRITE / /I BLOCK 3608 007047 0060 IBLOCK // 3609 007050 4572 JMS I SSYSIO/[SYSIO] /\ 3610 007051 3000 FILBEG / \WRITE OUT 3611 007052 4100 1^100+WRITE / /EDIT FEATURES 3612 007053 0017 RUBBLK // 3613 3614 ODTFLD= ODTGEN&70 /ISOLATE FIELD DEFINITION 3615 3616 007054 4572 JMS I SSYSIO/[SYSIO] /\ 3617 007055 0000 ODTGEN&7600 / \WRITE OUT 3618 007056 5610 ODTLEN^100+ODTFLD+WRITE / /ODT SYSTEM 3619 007057 0163 ODTBLK // 3620 3621 FNDFLD= FNDGEN&70 /ISOLATE FIELD DEFINITION 3622 3623 007060 4572 JMS I SSYSIO/[SYSIO] /\ 3624 007061 2000 FNDCORE / \WRITE OUT THE FIND 3625 007062 4320 CHNGLEN^100+FNDFLD+WRITE/ /AND CHANGE SYSTEM 3626 007063 0241 CHNGBLK // 3627 007064 4572 JMS I SSYSIO/[SYSIO] /\ 3628 007065 3400 BATSGA / \WRITE OUT THE 3629 007066 4200 2^100+WRITE / /BATCH SYSTEM 3630 007067 0201 BATBLK // 3631 3632 BRLFLD= BRLGEN&70 /ISOLATE FIELD DEFINITION 3633 3634 007070 4572 JMS I SSYSIO/[SYSIO] /\ 3635 007071 4200 BRLCORE / \WRITE OUT THE BATCH 3636 007072 4120 1^100+BRLFLD+WRITE / /INITIAL RECOVERY BLOCK 3637 007073 0115 BTRLBLK // 3638 007074 5777 JMP I (GNSYS3) /CONTINUE THERE 3639 3640 007177 7200 PAGE 3641 / AND IN THE END: THE TAPE OXIDE YOU MAKE, IS EQUAL TO THE RED DUST YOU TAKE, 3642 / (OFF THE TAPE GUIDES). 3643 3644 / MARIO DENOBILI, 1972 3645 3646 007200 7604 GNSYS3, LAS /GET SWITCHES AGAIN 3647 007201 7040 CMA /INVERT FOR TEST 3648 007202 7650 SNA CLA /SKIP IF WEREN'T ALL SET 3649 007203 5236 JMP GLEAVE /JUMP IF THEY WERE ALL SET 3650 007204 6221 GBLOOP, CDF SLPGFLD /GOTO DATA FIELD 3651 007205 1647 TAD I GBPPTR/(SLPCORE) /GET A SLURP WORD 3652 007206 2247 ISZ GBPPTR/(SLPCORE) /BUMP TO NEXT 3653 007207 6201 CDF 00 /BACK TO OUR FIELD 3654 007210 3645 DCA I GBBPTR/(SLUPAGE) /PUT INTO SLURP PAGE 3655 007211 2245 ISZ GBBPTR/(SLUPAGE) /BUMP TO NEXT 3656 007212 1652 TAD I GBZPTR/(BINGEN) /GET BIN PAGE ZERO WORD 3657 007213 2252 ISZ GBZPTR/(BINGEN) /BUMP INPUT POINTER 3658 007214 3000 DCA BZIP /STORE IT 3659 007215 2214 ISZ .-1 /BUMP TO NEXT 3660 007216 2246 ISZ GBCNT/(-200) /DONE ENOUGH? 3661 007217 5204 JMP GBLOOP /NO, GO BACK 3662 007220 6221 CDF SLPGFLD /GOTO DATA FIELD 3663 007221 1656 GILOOP, TAD I GIFPTR/(SFILES&177+SLPCORE) /GET INITIALIZE WORD 3664 007222 2256 ISZ GIFPTR/(SFILES&177+SLPCORE) /BUMP TO NEXT 3665 007223 3031 DCA BINIT2 /PUT IT WHERE IT BELONGS 3666 007224 2223 ISZ .-1 /BUMP TO NEXT 3667 007225 2255 ISZ GICNT/(-BINITLN) /DONE ENOUGH? 3668 007226 5221 JMP GILOOP /NO, KEEP GOING 3669 007227 6201 CDF 00 /BACK TO OUR FIELD 3670 007230 4020 JMS BINIT /INITIALIZE SLURP BOOTSTRAP 3671 007231 1650 GBLUP2, TAD I GBSPTR/(SLUPAGE) /GET A SLURP WORD 3672 007232 2250 ISZ GBSPTR/(SLUPAGE) /BUMP TO NEXT 3673 007233 3651 DCA I GBTPTR/(SBOOT) /PUT INTO SLURP AREA 3674 007234 2251 ISZ GBTPTR/(SBOOT) /DONE ENOUGH? 3675 007235 5231 JMP GBLUP2 /NO, GO BACK 3676 007236 1253 GLEAVE, TAD GG7/("G&37) /GET A 3677 007237 6046 TLSIOT /BANG ON IT 3678 007240 7360 NL7777 STL /TURN ON THE LIGHTS 3679 007241 7421 MQL /HERE TOO! 3680 007242 7501 MQA /BACK INTO AC 3681 007243 7402 HLT /LAST CHANCE... 3682 007244 5654 JMP I GG7600/(SBOOT) /BOOTSTRAP! 3683 3684 007245 2600 GBBPTR, SLUPAGE /WHERE TO PUT SLURP BOOTSTRAP 3685 007246 7600 GBCNT, -200 /COUNT OF WORDS TO MOVE 3686 007247 4400 GBPPTR, SLPCORE /WHERE SLURP LOADER IS NOW 3687 007250 2600 GBSPTR, SLUPAGE /WHERE INITIALIZED SLURP LOADER IS 3688 007251 7600 GBTPTR, SBOOT /WHERE TO EXECUTE IT 3689 007252 4000 GBZPTR, BINGEN /WHERE BIN PAGE ZERO IS 3690 007253 0007 GG7, 7 /CONSTANT 0007 3691 007254 7600 GG7600, SBOOT /CONSTANT 7600 3692 007255 7760 GICNT, -BINITLN /SLURP INITIALIZE MOVE COUNTER 3693 007256 4557 GIFPTR, SFILES&177+SLPCORE /WHERE SLURP INITIALIZE CODE IS NOW 3694 007257 0000 ZBLOCK 7300-. /EMPTY SPACE 007260 0000 007261 0000 007262 0000 007263 0000 007264 0000 007265 0000 007266 0000 007267 0000 007270 0000 007271 0000 007272 0000 007273 0000 007274 0000 007275 0000 007276 0000 007277 0000 3695 3696 / SYSGEN TIME HANDLER FIXUP ROUTINE. 3697 3698 / MERELY MOVING THE HANDLER'S CODE TO WHERE IT BELONGS IN FIELD ZERO (AND ONE) 3699 / DOES NOT NECESSARILY MEAN IT WILL BE USABLE FOR GENASYS PURPOSES! 3700 3701 / THIS ROUTINE SPACE IS PROVIDED TO ALLOW THE HANDLER TO MODIFY ITSELF FOR 3702 / GENASYS PURPOSES ONLY; THE PURE COPY WILL BE WRITTEN OUT INDEPENDENTLY. 3703 3704 007300 0000 STHFIX, .-. /FIXUP ROUTINE 3705 007301 0000 ZBLOCK 7377-. /EMPTY SPACE 007302 0000 007303 0000 007304 0000 007305 0000 007306 0000 007307 0000 007310 0000 007311 0000 007312 0000 007313 0000 007314 0000 007315 0000 007316 0000 007317 0000 007320 0000 007321 0000 007322 0000 007323 0000 007324 0000 007325 0000 007326 0000 007327 0000 007330 0000 007331 0000 007332 0000 007333 0000 007334 0000 007335 0000 007336 0000 007337 0000 007340 0000 007341 0000 007342 0000 007343 0000 007344 0000 007345 0000 007346 0000 007347 0000 007350 0000 007351 0000 007352 0000 007353 0000 007354 0000 007355 0000 007356 0000 007357 0000 007360 0000 007361 0000 007362 0000 007363 0000 007364 0000 007365 0000 007366 0000 007367 0000 007370 0000 007371 0000 007372 0000 007373 0000 007374 0000 007375 0000 007376 0000 3706 007377 5700 JMP I STHFIX /RETURN 3707 3708 / HANDLERS MAY PATCH THIS AS NECESSARY! 3709 / P?S/8 SYSTEM I/O ROUTINES. 3710 3711 / THE NEW IMPROVED P?S/8 MONITOR SYSTEM'S I/O ROUTINES FOR ALL SUPPORTED MASS 3712 / STORAGE DEVICES. INCLUDES SYSTEM I/O, BOOTSTRAP RECORD, SYSTEM LOADER, FILE 3713 / AND PARAMETER AREA. 3714 3715 / ALL I/O ROUTINES ARE PATTERNED AFTER THE RL (ROTH-LASNER) ROUTINES. 3716 3717 / CALLING SEQUENCE: 3718 3719 / CDF MYFLD /IF NECESSARY 3720 / CIF 00 /IF NECESSARY 3721 / JMS I (7640) /SZA CLA IS CONVENIENT 3722 / CORE /CORE ADDRESS 3723 / FUNCTION /FUNCTION WORD 3724 / BLOCK /STARTING BLOCK NUMBER 3725 / RETURNS WITH AC CLEAR AND MYFLD DATA FIELD 3726 3727 / FUNCTION WORD BREAKDOWN: 3728 3729 / 3730 / READ NUMBER FIELD DEVICE 3731 / OR OF OF LOGICAL 3732 / WRITE BLOCKS TRANSFER UNIT 3733 3734 / IF THE NUMBER OF BLOCKS INDICATED IS 0, THEN THE TRANSFER IS TAKEN AS A 3735 / COMPLETE FIELD TRANSFER (40 BLOCKS). 3736 3737 / BOOTSTRAPPING IS PERFORMED BY BRANCHING TO FIELD 0 LOCATION 7600. 3738 / CONTENTS OF AC, LINK, MQ, INTERRUPT REGISTERS ARE UNIMPORTANT WHEN CALLING 3739 / THE I/O ROUTINES FOR ANY PURPOSE (INCLUDING BOOTSTRAPPING). 3740 / IF INTERRUPT IS ON, IT MAY BE IN AN ARBITRARY STATE AFTER THE CALL, AS 3741 / CERTAIN IMPLEMENTATIONS OF I/O ROUTINES MAY TURN INTERRUPTS OFF EITHER DURING 3742 / THE CALL ONLY, OR AT THE BEGINNING OF THE CALL PERMANENTLY, OR LEAVE THE 3743 / INTERRUPT SYSTEM ALONE AT THE DISCRETION OF THE HANDLER. 3744 3745 / ERROR RECOVERY IS USUALLY PROVIDED BY A PROGRAMMED HALT WITH ERROR BITS IN 3746 / THE AC IN A DEVICE-DEPENDENT MANNER. MANUALLY PRESSING CONTINUE RETRIES THE 3747 / I/O OPERATION. (THIS IS KNOWN AS "SET SYSTEM HALT") 3748 3749 / AT THE USER'S OPTION, THE I/O ROUTINES CAN BE MADE TO HANG BY INFINITELY 3750 / RETRYING THE OPERATION UPON AN ERROR. (THIS IS KNOWN AS "SET SYSTEM RETRY") 3751 3752 / CERTAIN SYSTEMS WILL IMPLEMENT AN OVERLAY TO THEIR I/O ROUTINES TO PROVIDE 3753 / AN INTERACTIVE ERROR RECOVERY (SEE "CONSOLE", ETC.). 3754 FIELD 0 /ENSURE FIELD 0 3755 3756 *7400 /GENERATE THE HANDLERS HERE 3757 3758 IFNZRO 7400-. 3759 3760 GENAD1, RELOC SBOOT /WHERE THIS EXECUTES 3761 3762 007600* 0000 SBOOT, ZBLOCK SBTFUN-. /BEGINNING OF BOOTSTRAP CODE 007601* 0000 3763 3764 007602* 0000 SBTFUN, ZBLOCK SWAL-. /BOOTSTRAP UNIT FOUND HERE 007603* 0000 3765 3766 007604* 0000 SWAL, .-. /SWITCHES /A-/L 3767 007605* 0000 SWMX, .-. /SWITCHES /M-/X 3768 007606* 0000 SWY9, .-. /SWITCHES /Y-/9 3769 007607* 0000 SOUTFLS,.-. /OUTPUT FILE COUNT 3770 007610* 0000 SDATE, .-. /SYSTEM DATE WORD 3771 007611* 0000 SCRSIZE,.-. /SYSTEM CORE SIZE WORD 3772 3773 007612* 0000 ZBLOCK SLOAD-. /ADDITIONAL HANDLER CODE 007613* 0000 007614* 0000 007615* 0000 007616* 0000 007617* 0000 007620* 0000 007621* 0000 007622* 0000 007623* 0000 007624* 0000 007625* 0000 007626* 0000 007627* 0000 007630* 0000 007631* 0000 3774 3775 007632* 4240 SLOAD, JMS SYSIO /CALL I/O ROUTINES TO SAVE CORE 3776 007633* 0000 SCORE, 0000 /STARTING FROM 000000 3777 007634* 4000 SFUN, WRITE+.-. /WRITE 40 PAGES FROM FIELD ZERO; UNIT BIT WILL BE ADDED 3778 007635* 0020 SBLOCK, BINADR /STARTING BLOCK NUMBER 3779 007636* 5637 JMP I SYSTART /NOW START IT UP 3780 007637* 7600 SYSTART,SBOOT /STARTING ADDRESS 3781 3782 / I/O ENTRY HERE. 3783 3784 007640* 0353 SYSIO, MONSTRT /I/O ENTRY; OFTEN INITIALIZED FOR KEYBOARD MONITOR 3785 3786 007641* 0000 ZBLOCK 7750-. /REST OF HANDLER CODE 007642* 0000 007643* 0000 007644* 0000 007645* 0000 007646* 0000 007647* 0000 007650* 0000 007651* 0000 007652* 0000 007653* 0000 007654* 0000 007655* 0000 007656* 0000 007657* 0000 007660* 0000 007661* 0000 007662* 0000 007663* 0000 007664* 0000 007665* 0000 007666* 0000 007667* 0000 007670* 0000 007671* 0000 007672* 0000 007673* 0000 007674* 0000 007675* 0000 007676* 0000 007677* 0000 007700* 0000 007701* 0000 007702* 0000 007703* 0000 007704* 0000 007705* 0000 007706* 0000 007707* 0000 007710* 0000 007711* 0000 007712* 0000 007713* 0000 007714* 0000 007715* 0000 007716* 0000 007717* 0000 007720* 0000 007721* 0000 007722* 0000 007723* 0000 007724* 0000 007725* 0000 007726* 0000 007727* 0000 007730* 0000 007731* 0000 007732* 0000 007733* 0000 007734* 0000 007735* 0000 007736* 0000 007737* 0000 007740* 0000 007741* 0000 007742* 0000 007743* 0000 007744* 0000 007745* 0000 007746* 0000 007747* 0000 3787 3788 / THE NEXT GROUP OF WORDS ARE ONLY ALLOWED TO BE TEMPORARIES OTHER THAN AT 3789 / BOOTSTRAP TIME, AS THEY ARE THE 3-CYCLE DATA BREAK LOCATIONS FOR 3790 / SEVERAL COMMON DEVICES (INCLUDING SOME USED BY THE HANDLERS!). 3791 3792 007750* 0000 ZBLOCK SPARM-. /HANDLER TEMPORARIES 007751* 0000 007752* 0000 007753* 0000 007754* 0000 007755* 0000 3793 3794 007756* 0000 SPARM, .-. /EQUALS PARAMETER STORED HERE 3795 3796 007757* 0000 SFILES, ZBLOCK -. /FILE SPECIFICATION PASSED HERE 007760* 0000 007761* 0000 007762* 0000 007763* 0000 007764* 0000 007765* 0000 007766* 0000 007767* 0000 007770* 0000 007771* 0000 007772* 0000 007773* 0000 007774* 0000 007775* 0000 007776* 0000 007777* 0000 3797 / ALL WORDS FROM 7750-7777 ARE AVAILABLE AT BOOTSTRAP TIME FOR 3798 / HANDLER INITIALIZATION AS WELL AS 7600-7607 AND 7632-7640. 3799 / IT IS THE RESPONSIBILIY OF THE HANDLER TO GET 7602 (SBTFUN) PROPERLY 3800 / FORMATTED AS THE BOOTSTRAP UNIT WORD AND 7632-7637 (SLOAD-SYSTART) 3801 / PROPERLY FORMATTED AS THE SYSTEM LOADER TO THE CORRECT UNIT TO SAVE CORE IN 3802 / %:[BOOTSTRAP UNIT] AND $:[BOOTSTRAP UNIT]. 3803 3804 / OPERATION OF THE SYSTEM WILL STORE INTO 7604-7607 (SWAL-SOUTFLS), 3805 / 7632-7637 (SLOAD-SYSTART), AND 7756-7777 (SPARM-SFILES+20). 3806 3807 / THE SYSTEM DATE AND CORE SIZE WORDS (7610-7611) WILL BE UPDATED ALSO AND ARE 3808 / EXPECTED TO BE AVAILABLE AS IS. 3809 3810 RELOC /RESTORE ORIGIN 3811 3812 $*$*$*$*$*$*$*$*$*$*$*$ /THAT'S ALL FOLK! ADRLST 7603 unreferenced ALLDO 1645 ASWAL 1264 BABTMS 3133 BACKSP 7421 BADEQ 5226 BADNAM 5231 BADOSW 5234 BADSCA 5237 BADSW 1336 BATBLK 0201 BATCOR 2600 BATFU 1675 BATLEN 0001 BATMEM 7400 BATRL 3000 BATRLD 2540 BATSGA 3400 BATSTR 7400 BATSW 3127 BATUPC 3143 BBLEN 0043 BCIF 7746 BDNMSG 5315 BDSWMS 5326 BEDMSG 2761 BEGIN 0440 BEGIN0 2000 BEGIN1 2001 BEGLIN 0052 BEQMSG 5334 BERR 7742 BFILBE 7470 BFNMSG 2757 BFSMSG 5347 BINADR 0020 BINBLK 0203 BINGEN 4000 BINIT 0020 BINIT2 0031 BINITL 0020 BINLEN 0013 BISTRT 7776 unreferenced BMBLK 7421 BMFUN 7420 BREAD 7665 BRLCOR 4200 BRLFLD 0020 BRLGEN 4220 BSFMSG 7522 BSGRP 0003 unreferenced BSTART 0200 BSTMSG 7531 BSWMSG 1562 BTCHEK 3067 BTFROM 3130 BTRLBL 0115 BTRLCN 3131 BTRLEN 0005 BTTO 3132 BUFBEG 0424 BUFEND 0021 BUFINF 0022 BUTIO 1156 BYPASS 1342 BZIP 0000 CALADR 0020 unreferenced CALFLD 0021 unreferenced CAT 1600 CATADR 7000 CATCOR 0150 CATEND 1633 CATGO 1615 CATHOL 1630 CATLUP 1603 CATPT 1214 CATPTR 1614 CATSTP 1347 CATTOP 0772 CCHECK 2343 CDFNXT 7537 CHANG2 1210 CHANGE 1600 CHAR 0020 CHBASE 1265 CHKCNT 0043 unreferenced CHKPTR 0044 unreferenced CHLOOP 1221 CHNGAG 1525 CHNGBL 0241 CHNGFN 1330 CHNGLE 0003 CHTBL 1246 CLEAR 0467 CMDLUP 1555 CMDSUB 1553 CMNDS 2420 CNTLST 7615 unreferenced COLUMN 0123 COMAND 2136 COMN 1246 CONINT 0000 unreferenced CONOFF 0100 unreferenced CONTIN 1226 CTCBAT 1673 CTCBZA 1532 CTCPZA 2363 CTCSET 1657 CTCZAP 2365 CTLC 2360 CTLKRE 1217 CTRLA 2656 CTRLK 2670 CTRLPR 2400 DELETE 1676 DELETL 2143 DEVSIZ 6760 DEVWRD 0104 unreferenced DIR 0015 DIREND 0023 DIVLP2 0213 DIVLUP 0207 DOLBLK 0040 DOLLSW 0151 DSPBLB 0024 unreferenced DUMBLK 0232 DUMFLD 0020 DUMGEN 6020 DUMLEN 0007 DUMSTR 1400 E177 2701 unreferenced E60 2707 E7400 2663 EBACK 2644 EBLOCK 2665 EBRK 2730 ECHFLP 1534 ECHO 1527 ECHOFL 0654 ECHOSW 0024 ECTLC 2607 EDCANC 2745 EDCMND 2425 EDCOM 2602 EDENAB 1276 EDITIT 2600 EDLIN 0053 EEOSEQ 2752 EEXIT 2715 unreferenced EFILE 2753 EFIXIT 2666 EFUN 2664 EJMPBG 2603 EMOR 7473 EMORE 7501 ENDLIN 1474 ENDPRS 1360 ENDPSC 4723 ENOPRO 2705 ENTER 1716 EOB 2662 EOF 2672 EOL 2636 EOLINE 5104 EOSEQ 1547 EOT 2705 EPTR 2754 EREAD 2605 EREST 2631 ERESTO 2737 ERRTRP 0046 unreferenced ERSET 2655 ERST 2755 ESTATU 0077 unreferenced ETEST 2756 ETESTA 7446 ETRIM 2615 EWHAT 2641 EXHGEN 4010 EXHGFL 0010 EXHRUN 6010 EXIFLD 0010 EXIGEN 3410 EXIRUN 5400 unreferenced EXTCAT 0067 EXTLEN 0003 EZ 2642 EZAP 7455 FCJMPB 1505 FCNEXT 1501 FDONE 1530 FILBEG 3000 FILBLB 0023 unreferenced FILCLR 5305 FILEPT 5140 FILNAM 0602 FILPTR 1550 FILSIZ 0020 FILZER 5123 FIND 1200 FINDEN 1602 FINISH 1371 FIZZ1 0025 FIZZ2 0027 FLIPEC 0030 FNAME 0002 FNDCOR 2000 FNDFLD 0020 FNDFLG 1243 FNDFND 1513 FNDGEN 2020 FREMSG 1770 FRESET 1325 FUDGE 2156 FUDWRD 0105 unreferenced FULL 0767 FULLZA 0771 FULMSG 2370 G1000 6671 G1177 6600 unreferenced GBBPTR 7245 GBCNT 7246 GBLOOP 7204 GBLUP2 7231 GBPPTR 7247 GBSPTR 7250 GBTPTR 7251 GBZPTR 7252 GCLEAR 6711 GENAD1 7400 GENASY 6600 GENTHI 6624 GET 0600 GETBAS 0031 GETHAF 0104 GETNDX 0026 GG7 7253 GG7600 7254 GHFNSH 6724 GHSTRT 6723 GICNT 7255 GIFPTR 7256 GILOOP 7221 GL60 1203 GLEAVE 7236 GLINE 0032 GLINGO 1325 GLOOP 6607 GLOOP2 6614 GLOW 6763 GNSYS2 7000 GNSYS3 7200 GOTCR 1241 GOTEQ 1536 GOTESC 7407 GOTGT 1511 GOTLT 1534 GOTSLS 1545 GOTUC 3110 GOTUPC 2531 GTBASS 1266 GTEM 6725 GTEMP 6601 GTEMP0 6602 GTEMP1 6761 GTEMP2 6762 GTNDX1 1267 GTNDX2 1270 GTNDX3 1271 HALT 0600 HANDBL 0122 unreferenced HANDMA 0040 unreferenced HARDEN 7561 HBLOCK 0101 HIDWRD 7600 unreferenced IBLOCK 0060 IGEN 4020 IGNFLD 0020 INCHAR 0124 INCON 0031 unreferenced INFLAG 0025 unreferenced INIT77 2745 INPBUF 2477 INPPUT 1317 INPUT 0033 INSERT 1305 INSRT1 2055 INSRT2 2106 INSRT3 2124 INTFLG 0002 unreferenced INTLST 0003 unreferenced IOTRAP 0045 unreferenced IOWAIT 0047 unreferenced JMPIC 5600 JMPIL7 1614 KEPRAD 0040 KEYCOD 6030 KRBIOT 6036 KSFIOT 6031 L10 0174 L100 0006 L1000 0047 L101 1243 L11 0156 L12 0063 L136 2413 L144 1567 L15 0041 L177 1026 unreferenced L2 0010 L20 0774 L200 0105 L3 0005 L32 1350 L37 0064 L40 0046 L6 0157 L60I 0204 L7 0177 L7440 1001 L7600 0113 L7640 1205 L77 0103 L7700A 0235 L7700B 0735 L7706 1100 L7706A 0775 L7720 1101 L7723 1766 L7734 0776 L7740 0136 L7741 0011 L7745 1351 L7756 0065 L7757 0034 L7760 0777 L7761 0160 L7764 1352 L7766 0012 L7770 0040 L7772 0013 L7773 1570 L7774 0014 LAST 1433 LASTCR 1444 LCMODE 0006 unreferenced LEFMSG 1572 LEFT 1536 LF7764 1571 LFVIEW 2674 LIMIT1 1752 LIMIT2 1757 LIMITS 0061 LINDEX 1551 LINDX 4747 LINENO 0062 LINFLA 0030 unreferenced LINGO 1301 LINLEN 0152 LINST 2760 LINUM1 0263 LINUM2 0304 LISLUP 1464 LIST 1461 LISTPT 1475 LLINE 1272 LNFEED 2153 unreferenced LNO 0153 LNOPRT 0105 LNSRCH 0106 LOAD 1634 LODBLK 1641 LODCAT 0461 LODLEN 4754 LOOKMT 0732 LOOKNG 0761 LOOKPT 0755 LOOKSW 0077 LOOKUP 0154 LOWBLK 0201 LOWLIM 0155 LPMODE 0004 unreferenced LPTFLA 0027 unreferenced LSCAN 1342 LSCN 4750 LSRFND 1153 LSRLUP 1135 LTCONT 5111 LTENTR 1501 MANYFI 5242 MDELIM 1273 MESSAG 0112 MNUM 0234 MONSTR 0353 MORESW 1445 MOVBLB 0022 unreferenced MOVE 0341 MSCHAR 2737 NAME 0054 NAMLUP 2243 NAMNG 2220 NAMOK 2214 NAMPRT 0066 NAMTST 2203 NEWBUF 0400 NEWCAT 0134 NEWLIN 2017 NEWSCH 2647 NFMSG 1172 NL0001 7201 NL0002 7326 NL2000 7332 NL3777 7350 unreferenced NL4000 7330 NL5777 7352 unreferenced NL7775 7346 NL7776 7344 NL7777 7240 NOEPUN 2702 unreferenced NOFILE 1367 NOFILS 4732 NOLNUM 1474 NOPRMP 1215 NOSAVE 1413 NOSCAN 0100 NOSTRI 1654 NOTFND 0722 NOTHIS 0714 NOTUPC 2533 NOUNPR 1211 unreferenced NSTMSG 1730 NULZAP 1366 NUMNUM 1400 NXTADR 2574 NXTHNG 1274 NXTLIN 1205 NXTLN2 1212 ODSTRT 3000 ODTBLK 0163 ODTFLD 0010 ODTGEN 0010 ODTLEN 0016 OFF 0001 OFLIP 2332 OLDRAD 0067 OLDUNI 0070 ON 0000 OUTCON 0033 unreferenced OUTFLA 0026 unreferenced OUTLOO 5141 OUTLPT 0035 unreferenced OUTLSW 1552 OVID 0106 unreferenced OVRBLK 2571 unreferenced OVRCHK 2555 OVRCNT 2575 OVRCOM 2511 OVRFUN 2570 unreferenced OVRLOA 2572 OVRPTR 2576 OVRSUM 2577 OVRWRD 0111 unreferenced P7JMP 2337 unreferenced P7OUT 2335 P7TLS 2340 unreferenced P7TSF 2336 unreferenced PARMS 1553 PBATRL 2542 PBEGIN 0071 PBEGN0 0576 PBUTIO 0161 PCHLOO 0162 PCHTBL 1244 PCMDSU 0035 PCMNDS 2157 PCTRLP 0163 PECTLC 2366 PERCIN 4645 PERLIS 4753 PFDONE 1275 PFILNA 0164 PFNDFN 1276 PINSER 0125 PLEASE 1706 PLFLAG 1277 PLINDE 1353 PLODCA 0165 PLRST 0126 PLRTN 0411 PLWAIT 2160 PMOVE 0127 PNEXT 1245 PP7OUT 2414 PPARMS 1354 PPLRTN 2161 PPUTIT 1300 PR6BIT 0047 PR6BT1 1011 PR6TAB 1021 PR6TB1 1040 PRELIO 0130 PREMOV 2162 PRINDE 1355 PRINT 0107 PRMPCN 7444 unreferenced PROCSW 5245 PROMPT 0166 PRSCNL 1257 PRTCOD 6040 PRTDIG 0225 PRUBPA 2721 PSAVCA 1767 PSBTFU 0167 PSCANF 1356 PSCANI 1357 PSCFLA 2367 PSCNLP 4704 PSCRSI 0170 PSETPC 0003 PSLOAD 0072 PTEMP1 0006 PTTYR 0055 PUNCH 1460 PUTBAS 0131 PUTCH 1317 PUTHAF 0132 PUTNDX 0060 R 1446 RA 4756 RADFLP 1661 RADIX 1643 RADXSW 0015 RAGN 7437 RALTCH 7417 RCHLP2 7457 RDELIM 7420 REMOV1 0552 REMOVE 0521 REMOVP 0535 RENDIT 5200 RESEND 0145 RESEQ 1412 RESET 0141 RESLUP 1414 RESMOR 0147 REVISI 0032 REW 2146 REWIND 1335 REXIT 7475 RFIX 4617 RINDEX 1557 RINDX 4751 RNOMOR 7506 ROVFLO 7404 RP 1341 RPARMS 5311 RSCAN 1346 RSCN 4752 RSNAME 4621 RST 0073 RSTART 4600 RTEMP1 7401 unreferenced RTEMP2 7402 RTEMP3 7403 RUBBLK 0017 RUBFLG 7400 RUBPAG 7400 RUNBLK 0072 RUNCFL 0020 RUNCOR 0000 RUNGEN 0020 RUNGO 0334 RUNLEN 0004 SAMUNI 4637 SAVBLK 1674 SAVCAT 0661 SAVE 1666 SAVNAM 0752 SAVSEQ 2601 SAVSLI 2600 SBLOCK 7635 SBOOT 7600 SBTFUN 7602 SCAN1 1223 SCAN2 1230 SCANEQ 5126 SCANF 1560 SCANFI 5064 SCANGT 5121 SCANIF 1561 SCANLP 5024 SCANLT 5102 SCANSL 5135 SCATLO 1217 SCATPT 4634 SCMORE 1414 SCNEXT 1454 SCNFIL 1456 SCNLUP 1416 SCNNXT 5062 SCNSET 1400 unreferenced SCORE 7633 SCRATC 0414 SCRIB1 0115 SCRIBE 0171 SCRIBG 1126 SCRIBR 1117 SCRPTR 1524 SCRSIZ 7611 SDATE 7610 unreferenced SEQ 1410 SEQSET 5000 SEQSW 0120 SETPCS 2732 SETPMO 2722 SFILES 7757 SFUN 7634 SLINUM 0036 SLOAD 7632 SLPBLK 0100 SLPCOR 4400 SLPGEN 4420 SLPGFL 0020 SLPSA 7777 unreferenced SLUPAG 2600 SOUTFL 7607 SPARM 7756 SRCHAG 1541 SRCHX 2652 SRINST 5471 SSYSIO 0172 START 0400 STARTA 4755 STHFIX 7300 STRBUF 1400 STROK 1615 SWAL 7604 SWAPCA 1600 SWAPIN 1200 SWAPIT 0423 SWAPSW 0121 SWITCH 1276 SWITOK 1314 SWMORE 5053 SWMX 7605 SWOK 5263 SWPLEN 0004 SWSUB 5264 SWSUBT 1315 SWY9 7606 unreferenced SYS 0435 SYSCAD 5000 SYSCAT 0063 SYSCFL 0020 SYSCGE 5020 SYSIO 7640 SYSLEN 0004 SYSTAR 7637 TAB 1507 TAB35 1523 TABCH 1234 TABCNT 0056 TABNO 1522 TABOFF 1524 TABSET 1525 TABSW 0074 TAPREC 0075 TBMSG 1773 TCHECK 2310 TCLEAR 2330 TCNT1 0122 TCNT2 0133 TCSIZE 2702 TEMP01 1326 TEMP1 0100 TEMP2 0101 TEMP3 0102 TFLIOT 6040 TLSIOT 6046 TMFMSG 5361 TMNYZA 1464 TOOMNY 5072 TPTR 1327 TPTR1 0001 TPTR2 0007 TRAPIO 1041 unreferenced TRLEFT 4716 TRPBLK 0113 TRPERR 1200 unreferenced TRPFLD 0020 TRPGEN 1020 TRYDOL 0622 TRYLFT 1271 TRYNXT 7536 TRYOLD 0642 TRYPER 4734 TSFIOT 6041 TSPACE 0110 TSTINT 0315 TTIMOU 2547 TTY 0003 TTYR 2302 TTYRLP 2303 TTYTST 2506 TUNIT 0076 TYPE0 0000 TYPE1 0001 TYPE10 0010 unreferenced TYPE11 0011 TYPE12 0012 TYPE13 0013 unreferenced TYPE14 0014 unreferenced TYPE15 0015 unreferenced TYPE2 0002 unreferenced TYPE3 0003 TYPE4 0004 unreferenced TYPE5 0005 unreferenced TYPE6 0006 unreferenced TYPE7 0007 unreferenced UNIT 0000 UNITIO 0037 UPCDON 3112 UPCMSG 0773 UPLIM 0173 UPU2MS 2164 unreferenced UPUMSG 2163 VERSIO 0070 VTMODE 0005 unreferenced WAITIO 1110 unreferenced WHAT 0111 WHATMG 2415 WHATMO 0057 WRITE 4000 XCMBLK 0061 XCMCOR 1400 XCMFLD 0020 XCMGEN 1420 XGETHA 0444 XGLIN1 2740 XGLIN2 1201 XGLINE 1200 XIOMON 0102 XLIMIT 1722 XLINEN 0257 XLNOPR 0200 XLNSRC 1131 XLOOKU 0667 XNAME 2200 XNXTHN 1506 XPR6BI 1000 XPRAGN 2264 XPRINT 2262 XPROFF 2273 XPRTNA 1102 XPUTHA 0360 XPUTIT 1546 XR1 0016 XR2 0017 XSCRIB 1111 XTSPAC 0505 XTUNIT 1056 XWHAT 0330 XWHATM 0332 ZAPFUL 5022 ZAPLST 7627 unreferenced ZAPMSG 2172 ZP2MSG 2173 unreferenced ZROFIL 0241 unreferenced