File: EDIT50.LS of Disk: V50/Source/Source-Listing-PAL-1
(Source file text)
/OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 1 /OS/8 SYMBOLIC EDITOR, V50 / / / / / / / / / / / / /COPYRIGHT (C) 1977 BY DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. / AND 1979 BY DATAPLAN GMBH / AND 2015 W. VAN DER MARK / / / / / / /THIS SOFTWARE IS FURNISHED UNDER A LICENSE FOR USE ONLY ON A /SINGLE COMPUTER SYSTEM AND MAY BE COPIED ONLY WITH THE INCLU- /SION OF THE ABOVE COPYRIGHT NOTICE. THIS SOFTWARE, OR ANT OTHER /COPIES THEREOF, MAY NOT BR PROVIDED OR OTHERWISE MADE AVAILABLE /TO ANY OTHER PERSON EXCEPT FOR USE ON SUCH SYSTEM AND TO ONE WHO /AGREES TO THESE LICENSE TERMS. TITLE TO AND OWNERSHIP OF THE /SOFTWARE SHALL AT ALL TIMES REMAIN IN DEC. / / /THE INFORMATION IN THIS SOFTWARE IS SUBJECT TO CHANGE WITHOUT /NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL /EQUIPMRNT COROPATION. / /DEC ASSUMES NO RESPONSIBILITY FOR THE USE OR RELIABILITY OF ITS /SOFTWARE ON EQUIPMENT WHICH IS NOT SUPPLIED BY DEC. / / / / / / /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 2 /5 JULY 1972 EF /COPYRIGHT 1971,1972 DIGITAL EQUIPMENT CORPORATION / MAYNARD, MASSACHUSSETTS 01754 /THE SYMBOLIC EDITOR IS A LINE-ORIENTED /TEXT EDITOR WITH CHARACTER AND STRING /SEARCH CAPABILITIES. IT IS DESIGNED /TO BE COMPATIBLE WITH THE OS/8 SYSTEM. /THE DESIGN OF THE EDITOR IS SIMILAR /TO THAT OF THE PAPER TAPE SYMBOLIC /EDITOR AND THE DISK MONITOR SYSTEM /EDITOR. / OS/8 V3 CHANGES S.R. /1. ?5 ERROR REMOVED /2. ALLOW CHAINING TO EDIT /3. ADDED VERSION # COMMAND (#) /4. COMBINED ^C ROUTINES, TAKING OUT BRANCH THRU 17667 /5. ALLOWED PARITY CHARACTERS EVERYWHERE / / / FIX FOR V10 J.K. 1975 / / THE CLOSE ERROR MESAGE 2? WAS BEING / GIVEN INSTEAD OF FILE FULL MESSAGE / WHEN THE INPUT FILE FIT INTO THE EDIT BUFFER / BUT WAS TOO LARGE FOR THE AVAILIBLE SPACE ON THE / OUTPUT DEVICE. / V11 CHANGES 25-MAY-77 DAVID SPECTOR /1. ESCAPE KEY NO LONGER ECHOED /2. SCOPE MODE SUPPORTED /3. ONCE-ONLY CODE MOVED TO INPUT HANDLER / AREA IN ORDER TO FREE LOCS 3000-3177 / V12 CHANGES 27-JUN-77 EDWARD P. STEINBERGER / /ALLOWED ESCAPE(233) TO BE AN INPUT CHARACTER IN TEXT MODE. /ECHOS AS "$" ON TERMINAL OR LINEPRINTER (IF V), OUTPUT /TO FILE AS ESCAPE / V 40 CHANGES 1-JUL-79 W.V.D.MARK / /1. DEC PATCH FOR TAB /2. MULTI8 ADAPTED /3. SETS ADAPTED /4. LOWER CASE COMMANDS /5. SYMBIONT /6. # COMMAND IMMEDIATE /7. UPARROW CNTRL'S /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 2-1 /8. XON/XOF FOR VT100 /9. TEXT ERROR MESSAGES /10. BACKSPACE KEEPS TABS CORRECT /11. ALL THIS IN SAME SPACE / GERMAN=1 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 3 /THE LOADING AND SAVING PROCEDURE FROM PAPER TAPE IS: / .R ABSLDR / *PTR:/9/P$ / .SAVE SYS EDIT / /THE STARTING ADDRESS IS 00200. /COMMAND DECODER RULES: /*OUTPUT FILE<UP TO 9 INPUT FILES/OPTIONS /OPTIONS: /A RETURN CONTROL TO EDITOR AFTER FILE CLOSE / (CALLS COMMAND DECODER FOR NEW FILES) / (DEFAULT IS RETURN TO MONITOR) /B CONVERT 2 OR MORE SPACES TO TAB ON INPUT /D DELETE OLD COPY OF OUTPUT FILE BEFORE / STORING NEW FILE /ERROR CODES: / 0 FAILURE IN INPUT DEVICE HANDLER / 1 FAILURE IN OUTPUT DEVICE HANDER / 2 COULD NOT CLOSE FILE / 3 COULD NOT OPEN FILE / 4 DEVICE HANDLER COULD NOT BE LOADED DECIMAL 0062 VERSION=50 0330 PATCH="X /PATCH LEVEL X OCTAL /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 4 /COMMANDS: /A APPEND TEXT TO BUFFER /I INSERT TEXT INTO BUFFER /C CHANGE TEXT IN BUFFER /L LIST TEXT IN BUFFER /D DELETE TEXT IN BUFFER /K KILL BUFFER /M MOVE TEXT WITHIN BUFFER /G GET AND LIST TAGGED LINE IN BUFFER /B LIST # OF CORE LOCATIONS LEFT IN BUFFER /S CHARACTER SEARCH /J INTER-BUFFER STRING SEARCH /F AFTER J, SEARCH FOR NEXT OCCURRANCE / OF SAME STRING /$ INTRA-BUFFER STRING SEARCH /R READ TEXT INTO BUFFER FROM INPUT DEVICE /N WRITE BUFFER, KILL, AND READ NEXT PAGE /Y INPUT TEXT PAGE, NO OUTPUT /P WRITE TEXT BUFFER TO OUTPUT DEVICE /T PUNCH TRAILER TAPE /E OUTPUT BUFFER, TRANSFER REST OF / INPUT FILE TO OUTPUT FILE / CLOSE OUTPUT FILE /Q IMMEDIATE END OF FILE /V PRINT ON LP08 /# TYPE VERSION NUMBER /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 5 /ABBREVIATIONS /.LT. LESS THAN /.LE. LESS THAN OR EQUAL TO /.GT. GREATER THAN /.GE. GREATER THAN OR EQUAL TO / R RIGHT / L LEFT /SPECIAL COMMENTS /SINCE THE EDITOR IS CODED ACROSS PAGE BOUNDARIES, IT IS /NECESSARY TO BE AWARE OF THE EFFECTS OF THE INSERTION /OR DELETION OF CODE. FOR THIS REASON, THE LIMITS /OF PERMISSABLE PAGE BOUNDARY WANDERING /ARE INDICATED WITH THE FOLLOWING CONSTRUCTION: /----------------------------------------------------------------------- /SOMEWHERE BETWEEN LINES, THE PAGE BOUNDARY MUST OCCUR /----------------------------------------------------------------------- /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 6 0000 *0 000000 3144 LPT /*WM* FOR SETS 000001 6232 CIF 30 000002 5001 JMP 1 /SYMBIONT 000003 0243 SIGN, "# /V40 000004 0000 ZBLOCK 3 /FOR ODT 000007 0077 C77, 77 NONE, /V40 000010 7737 M41, NOP-CIA /=-41 000011 0100 C100, 100 000012 0277 C277, 277 /QUESTION MARK /AUTO-INDEX REGISTERS 000013 0000 AXOUT, 0 /OUTPUT INDEX 000014 0000 AXCOMB, 0 /COMBINE POINTER 000015 0000 AXTEM, 0 /TEMPORARY INDEX 000016 0000 AXIN, 0 /STORAGE INDEX /CONSTANTS 000017 7774 M4, -4 /LETTER COUNT 000020 0177 P177, 177 000021 7563 MCR, -215 000022 7540 M240, -240 000023 0040 P40, 40 000024 0200 C200, 200 /(START & RESTART) 000025 6100 BUFEND, 6100 /WARNING FOR END OF BUFFER 000026 7700 P7700, 7700 /MONITOR CALL LOCATION 000027 7701 M77, -77 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 7 /LISTS /TAG SEARCH LIST- 0030 LIST7=. 000030 0240 C240, 240 /SPACE 000031 0257 257 /COMMENT DELIMITER (/) /OUTPUT LIST 0032 LIST4=. 000032 0233 ESC, 233 /ESC-V12 000033 0211 CTAB, 211 /TAB 000034 0215 C215, 215 /CARRIAGE RETURN 000035 0212 212 /LINE FEED 000036 0214 214 /FORM FEED 000037 0377 377 /RUBOUT 000040 0207 207 / ^G BELL 000041 0210 210 / ^H BACKSPACE 000042 7751 M27, -27 /LIST DELIMITER /SPECIAL CHARACTER LIST FOR /INPUT IN TEXT MODE 0043 LIST5=. /USED AT AONE 000043 0240 240 /SPACE 0044 LIST6=. /USED AT SFOUND 000044 0225 CTU, 225 / ^U 000045 0214 C214, 214 /FORM FEED 000046 0207 BELL, 207 / ^G (BELL) 000047 0212 C212, 212 /LINE FEED 000050 0377 CRO, 377 /RUBOUT 0051 LIST3=. 000051 0215 215 /LIST BRANCHER 000052 0000 000 /(SEARCH CHARACTER) 000053 1707 RST3I, RESET3 /RESET AND SAVE BUFFER 000054 4645 MCHIN1, -CHIN-1 /LIST DELIMITER /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 8 /CONSTANTS AND POINTERS 0034 CCR=C215 /CARRIAGE RETURN 0047 CLF=C212 /LINE FEED 000055 7770 MTABS, -10 /TAB COUNTER 000056 0635 DELT, DELP 000057 3132 CHI1, CHIN 000060 3133 IGNORE, CHIN+1 000061 0200 END, 200 000062 1641 KEYBD, I33 000063 5414 CCON, JMP I AXCOMB 000064 1327 COM1-1 000065 0531 UTR1, UTRA 000066 1015 FIN1, FIND 000067 0677 LIS1, LIST 000070 0704 LIS, LISTER 000071 0012 NINE, 12 000072 7506 NUMB, -272 000073 3027 OUT1, OUT 0074 OUTL1=. 000074 1651 LOW, OUTL 000075 7000 CZ, NOP /CONTENTS OF START 000076 0224 ONUM, GTOP 000077 0337 SORTJ, SORTB 000100 0457 PACK1, PACBUF 000101 1110 SXS1, TAD CHAR /CONTENTS OF L3 000102 5364 SXS2, SLOOK&177+5200 /JMP SLOOK 000103 0747 L3I, L3 /PATCH POINTER 000104 0745 L2I, L2 /CONTINUE SEARCH - LETTERS 000105 1610 ENDLNI, ENDLN 000106 0455 SPCNO, MOR+4 /PACK 000107 0452 SPCGO, MOR+1 /SORT /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 9 /CHAR IS ALWAYS SET BY OUT, SOMETIMES BY SORTB; /IT IS ALWAYS USED BY PACK AND SORTB. 000110 0000 CHAR, 0 0111 MOV1=. 000111 0000 COUNTP, 0 /NUMBER OF PAGES 0112 CNT=. /PRINT COUNTER 000112 0000 XCT, 0 /UNPACK SWITCH 000113 0000 XCTIN, 0 /PACK SWITCH 000114 0001 ECHOSW, 1 /NON-ZERO TO PRINT 000115 0000 SAVE, 0 000116 0000 TABIND, 0 /TABS OR SPACES SWITCH 000117 0000 TEMP, 0 /V3 000120 0000 THIS, 0 /LINE POINTER. 000121 1651 OUTDEV, OUTL /POINTER TO OUTPUT SUBROUTINE 000122 2600 GRBAGE, GARBAG /GARBAGE COLLECTOR 000123 0000 MARK, 0 /OBJECT LINE IN G.C. 000124 0000 XSAV, 0 /HOLD INPUT POINTER. 000125 0200 BUFR, 200 000126 0174 CFRS, FRST 000127 1547 KILL1, KILL+3 000130 1501 CHKARG, CHKARX 000131 4143 ERSW, ERROR /ERROR ROUTINE 000132 0723 L1I, L1 000133 0000 EKILLL, 0 /E CMD SWITCH 1 IF E NOT ALLOWED /I-O RELATED POINTERS AND WORDS 000134 0232 P232, 232 /V3 000135 2031 BUFRDI, BUFRD /OR CHIN...IN DEVICE POINTER 000136 2062 BUFWTI, BUFWT /WRITE OUTPUT TO DEVICE 000137 2006 CLFLI, FLCLOS /SET TO CLOSE FILE 000140 0037 P37, 37 /V3 000141 5250 JMPCH, PUNCH&177+5200 /DESTROYED BY YANK /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 10 /ERROR ROUTINE POINTERS 000142 2721 PRERR, DEVERR 0143 GTEM=. /NEXT 6-BITS OF UNPACK 0143 DTEM=. /NEXT POINTER IN DELETE CHAIN /ERROR ROUTINE /REJECTS ILLEGAL COMMAND /AND TYPES ? 4143 ERROR=JMS . 000143 0000 0 /ALSO TEMP 000144 7600 ELIM, 7600 /GRP2-CLA 000145 1012 TAD C277 000146 4474 JMS I OUTL1 /PRINT "?" 000147 1075 CZONE, TAD CZ /RESET PATCHES 000150 3555 DCA I TE1 000151 5555 JMPTE1, JMP I TE1 /*RETURN TO COMMAND MODE* 000152 1753 MONITOR, MONIT /MONITOR EXIT ROUTINE 000153 0000 STRIND, 0 000154 2400 STRFIN, SFIND1 000155 0203 TE1, START /VARIABLES 000156 0000 THSN, 0 /CURRENT LINE NUMBER 000157 0000 LSTN, 0 /LAST LINE NUMBER 000160 0000 TCNT, 0 /TAB COUNT 000161 0000 ADD, 0 000162 0000 ARG0, 0 000163 0240 ARG1, 0240 000164 7777 ARG2, -1 000165 7110 POTYPE, OTYPE 000166 1336 COMM5, COM5 000167 7600 K7600, 7600 000170 0000 TEMPO, 0 000171 1210 K1210, 1210 000172 7575 X203, -203 000173 1320 K1320, 1320 000174 0000 FRST, 0 /FIRST LINE ADDRESS 0170 MOV2=TEMPO 000175 0000 LSTCHK, 0 /DIGIT ACCEPTED FLAG /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 11 0177 *177 000177 3000 INIT /INITIALIZATION CODE /EITHER 3000 OR VALUE OF RESET 0200 *200 000200 7240 STA /V3 NORMAL START OR RESTART ADDR 000201 3117 DCA TEMP /V3 CHAIN START ADDR 000202 5577 JMP I 177 /START AT 3000 OR RESET /HANDLER FOR ^U (IF IN COMMAND MODE) 000203 7000 START, NOP /V3 MAY BE MODIFIED 000204 1074 TAD LOW /ENTER COMMAND MODE 000205 3121 DCA OUTDEV /INITIALIZE KEYBOARD 000206 3116 DCA TABIND /CLEAR TAB INDICATOR 000207 2114 ISZ ECHOSW /SET UP FOR ECHO 000210 3052 DCA LIST3+1 000211 1101 TAD SXS1 000212 3503 DCA I L3I 000213 1131 TAD ERSW /RESET ERROR SWITCH AT L1 000214 3532 DCA I L1I 000215 1147 TAD CZONE 000216 3566 DCA I COMM5 000217 3175 DCA LSTCHK /CLEAR DIGIT ACCEPTED 000220 1034 TAD CCR /OUTPUT CARRIAGE RETURN 000221 4473 JMS I OUT1 /HANDLER FOR CARRIAGE RETURN (COMMAND MODE) 000222 1003 TAD SIGN /OUTPUT # 000223 4473 JMS I OUT1 000224 3162 GTOP, DCA ARG0 /CLEAR ARGUMENTS 000225 3164 DCA ARG2 /HANDLER FOR SPACE OR + 000226 1010 GEXP, TAD NONE /HANDLER FOR - 000227 1350 GMIN, TAD CMPT 000230 3242 DCA G2 /SET SIGN TO + OR - 000231 3117 DBCV2, DCA TEMP 000232 4457 CMCHK, JMS I CHI1 /INPUT ONE CHARACTER 000233 1072 TAD NUMB 000234 7100 CLL 000235 1071 TAD NINE 000236 7430 SZL /WAS IT A DIGIT? 000237 5327 JMP COUNT /YES - CONTINUE ACCEPTING NUMBERS /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 12 000240 7200 GLOM, CLA /NO 000241 1117 TAD TEMP /GET ACCUMULATED NUMBER 000242 7402 G2, HLT /(NOP) OR (CIA) TO HANDLE SIGN 000243 1164 TAD ARG2 000244 3164 DCA ARG2 /STORE NEW ARGUMENT 000245 4337 JMS SORTB /WAS LAST CHARACTER SPECIAL? 000246 1342 LIST1-1 /YES - COMPARE TO LIST 000247 0214 OPS1-LIST1 /AND BRANCH TO HANDLER 000250 1110 TAD CHAR /NO - SAVE COMMAND CHARACTER 000251 0260 AND P337 /ACCEPT LOWER CASE IN 'SAVE' 000252 3115 DCA SAVE 000253 4457 JMS I CHI1 /INPUT ONE CHARACTER 000254 4337 JMS SORTB /IS IT CARRIAGE RETURN, ^C, OR ^U? 000255 1365 LIST1A-1 /YES - EXIT TO HANDLER 000256 0217 OPS1A-LIST1A 000257 4143 ERROR /NO - TRY AGAIN 000260 0337 P337, 337 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 13 /CHECK LEGALITY OF ARGUMENTS /ARG0 CONTAINS FIRST ARGUMENT /ARG2 CONTAINS SECOND ARGUMENT 000261 1162 RETRN, TAD ARG0 000262 7450 SNA /IS ARG0=0? 000263 1164 TAD ARG2 /YES - ARG0=ARG2 000264 3162 DCA ARG0 /NO 000265 1164 TAD ARG2 000266 7040 CMA 000267 1162 TAD ARG0 000270 7500 SMA /IS ARG0 .LE. ARG2? 000271 4143 ERROR /NO 000272 3163 DCA ARG1 /YES - ARG1=ARG0-ARG2-1 000273 1162 TAD ARG0 000274 7710 SPA CLA /IS ARG0 .GE. 0? 000275 4143 ERROR /NO 000276 1115 TAD SAVE /YES - GET COMMAND CHARACTER 000277 4337 JMS SORTB /IS IT A LEGAL COMMAND? 000300 0302 LIST2-1 /YES - MATCH TO LIST 000301 0062 OPS2-LIST2 /AND BRANCH TO ITS HANDLER 000302 4143 ERROR /NO - TRY AGAIN /COMMAND IDENTIFICATION LIST 0303 LIST2=. /COMMAND LETTERS 000303 0305 305 /E 000304 0301 301 /A 000305 0311 311 /I 000306 0303 303 /C 000307 0313 313 /K 000310 0304 304 /D 000311 0314 314 /L 000312 0316 316 /N 000313 0320 320 /P 000314 0322 322 /R 000315 0312 312 /J 000316 0306 306 /F 000317 0324 324 /T 000320 0315 315 /M 000321 0307 307 /G 000322 0323 323 /S 000323 0331 331 /Y 000324 0321 321 /Q 000325 0302 302 /B 000326 0326 326 /V /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 14 /DECIMAL ADDITION ROUTINE /FOR NUMERIC ARGUMENTS OF COMMANDS /ENTER WITH INPUT DIGIT IN SORTB /EXIT WITH ACCUMULATED NUMBER IN AC 000327 3337 COUNT, DCA SORTB 000330 2175 ISZ LSTCHK /GOT A DIGIT NOW 000331 1117 TAD TEMP 000332 7106 RTL CLL /V40 ** IS END OF LIST2 000333 1117 TAD TEMP 000334 7004 RAL 000335 1337 TAD SORTB 000336 5231 JMP DBCV2 /RETURN TO MAIN SEQUENCE /SORT AND BRANCH ROUTINE /LOOKS FOR MATCH BETWEEN CHAR /AND ELEMENTS OF TABLE 1 SPECIFIED /CALLING SEQUENCE: / JMS I (SORTB / TABLE1-1 / TABLE2-TABLE1 / RETURN IF NO MATCH /DISPATCHES TO CORRESPONDING ADDRESS IN TABLE 2 000337 0000 SORTB, 0 000340 7440 SZA /IS CHARACTER STORED YET? 000341 3110 DCA CHAR /NO - STORE IT 000342 1737 TAD I SORTB /YES 000343 2337 ISZ SORTB 000344 3015 DCA AXTEM /STORE TABLE 1 ADDRESS 000345 1415 TAD I AXTEM /GET TABLE ENTRY 000346 7510 SPA /DONE YET? 000347 5362 JMP SEX /YES - EXIT 000350 7041 CMPT, CIA /NO 000351 1110 TAD CHAR /GET CHARACTER 000352 7640 SZA CLA /DO THEY MATCH? 000353 5345 JMP .-6 /NO - KEEP TRYING 000354 1015 TAD AXTEM /YES - THEY MATCH 000355 1737 TAD I SORTB /GET DISPATCH TABLE ADDRESS 000356 3337 DCA SORTB 000357 1737 TAD I SORTB 000360 3337 DCA SORTB /SET RETURN ADDRESS 000361 5737 JMP I SORTB /--RETURN--VIA DISPATCH TABLE 000362 2337 SEX, ISZ SORTB /MATCH NOT FOUND 000363 7200 CLA 000364 5737 JMP I SORTB /-- /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 15 /----------------------------------------------------------------- /DISPATCH LIST FOR COMMAND HANDLERS 000365 1461 OPS2, ENDFIL /E 000366 1231 APP /A 000367 1230 XNS /I 000370 1227 CNGE /C 000371 1544 KILL /K 000372 1742 DELE /D 000373 0677 LIST /L 000374 1310 COMBO /N 000375 1250 PUNCH /P 000376 1300 TELE /R 000377 2243 JERK /J 000400 2271 BARROW /F 000401 1256 PUNCT /T 000402 1413 MOVEM /M 000403 1371 GETTAG /G 000404 1173 XCRET /S 000405 1306 YANK /Y 000406 2000 Q /Q 000407 1042 CORSPC /B 000410 2703 VIEW /V /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 16 /END OF INPUT TEXT LINE ROUTINE 000411 4505 EOL, JMS I ENDLNI /RESET LINK CELLS 000412 2157 ISZ LSTN /INCREMENT LINE POINTERS 000413 2156 ISZ THSN 000414 1025 TAD BUFEND 000415 7141 CLL CIA 000416 1016 TAD AXIN 000417 7620 SNL CLA /IS THE BUFFER FULL? /------------------------------------------------------------ 000420 5251 JMP MOR /NO - KEEP FILLING 000421 1046 TAD BELL /YES - RING WARNING BELL 000422 4474 JMS I OUTL1 000423 5555 JMP I TE1 /*RETURN TO COMMAND MODE* /CONTINUATION OF HANDLERS FOR A, C, AND I COMMANDS 000424 1157 APP1, TAD LSTN /APPEND 000425 3162 DCA ARG0 /RESET ARG0 TO END OF TEXT 000426 5232 JMP INS 000427 4456 CNGE1, JMS I DELT /CHANGE - DELETE LINES AND 000430 1162 XNS1, TAD ARG0 /INSERT 000431 7650 SNA CLA /ANY ARGUMENTS? 000432 2162 INS, ISZ ARG0 /NO - INSERT AT BEGINNING OF TEXT 000433 1162 TAD ARG0 000434 4466 JMS I FIN1 /FIND THE POINTER 000435 3120 DCA THIS 000436 2116 ISZ TABIND /SET TAB INDICATOR 000437 6211 CDF 10 000440 1520 TAD I THIS /GET LINK TO BUFFER 000441 6201 CDF 0 000442 3124 DCA XSAV 000443 7040 CMA 000444 1162 TAD ARG0 000445 3156 DCA THSN /SET LINE POINTER 000446 1125 AONE, TAD BUFR /BEGIN LINE 000447 3016 DCA AXIN 000450 3113 DCA XCTIN 000451 4535 MOR, JMS I BUFRDI /GET A CHARACTER 000452 4477 JMS I SORTJ /IS IT SPECIAL? (SEE LIST) 000453 0042 LIST5-1 000454 0534 INLIST-LIST5 /YES - GO TO ITS HANDLER 000455 4257 JMS PACBUF /NO - PACK IT 000456 5251 JMP MOR /FETCH ANOTHER /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 17 /CHARACTER PACKING ROUTINE /CONVERTS CHARACTER IN CHAR TO INTERNAL CODE /AND CALLS PCK1 TO PACK IT INTO BUFFER /ENTER AND EXIT WITH AC CLEAR 000457 0000 PACBUF, 0 000460 7100 CLL 000461 1016 TAD AXIN /DON'T ADD CHARACTERS 000462 1171 TAD K1210 /IF AXIN ABOVE 6570 000463 7630 SZL CLA /IS THERE ROOM FOR THIS ONE? 000464 4143 ERROR /NO 000465 1110 TAD CHAR /YES 000466 1022 TAD M240 000467 7510 SPA /IS IT 200-237? 000470 5303 JMP ESCA /YES - ATTACH 77 000471 1027 TAD M77 000472 7540 SMA SZA /IS IT 337 OR LESS? 000473 5303 JMP ESCA /NO - ATTACH 77 000474 1023 TAD P40 /YES - IS IT 277? 000475 7650 SNA CLA 000476 5303 JMP ESCA /YES - ATTACH 77 000477 1110 TR1, TAD CHAR /240-337 EXCEPT 277 000500 0007 AND C77 /MASK OUT LEFT 6 BITS 000501 4307 JMS PCK1 /PACK IT 000502 5657 JMP I PACBUF /--RETURN-- 000503 7200 ESCA, CLA /200-237, 277,340-377 000504 1007 TAD C77 /PACK A 77 000505 4307 JMS PCK1 000506 5277 JMP TR1 /PACK THE CHARACTER /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 18 /PACK CHARACTERS INTO TEXT BUFFER /ENTER WITH 6-BIT CODE IN AC 000507 0000 PCK1, 0 000510 2113 ISZ XCTIN /LEFT HALF OR RIGHT HALF? 000511 5322 JMP ROT /LEFT HALF 000512 3331 DCA UTRA /RIGHT HALF - STORE CHARACTER 000513 1331 TAD UTRA /GET CHARACTER 000514 1161 TAD ADD /GET PREVIOUS CHARACTER 000515 6211 CDF 10 000516 3416 DCA I AXIN /STORE IN FIELD 1 BUFFER 000517 6201 CDF 0 000520 3161 DCA ADD 000521 5707 JMP I PCK1 /--RETURN-- 000522 7106 ROT, CLL RTL /LEFT HALF 000523 7006 RTL 000524 7006 RTL /ROTATE 6 LEFT 000525 3161 DCA ADD /RETAIN UNTIL NEXT CHARACTER 000526 7040 CMA /IS READY 000527 3113 DCA XCTIN /RESET L OR R SWITCH 000530 5707 JMP I PCK1 /--RETURN-- 0457 UTEST=PACBUF /TEMPORARY /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 19 /CHARACTER UNPACKING ROUTINE /CONVERTS ONE CHARACTER FROM /BUFFER FORMAT TO 8-BIT ASCII /EXIT WITH CHARACTER IN AC 000531 0000 UTRA, 0 000532 7240 CLA CMA /INITIALIZE TO -1 000533 3257 DCA UTEST 000534 2112 EXTR, ISZ XCT /LEFT HALF OR RIGHT HALF? 000535 5347 JMP GET3 /RIGHT HALF 000536 6211 CDF 10 /LEFT HALF 000537 1413 TAD I AXOUT /GET BUFFER WORD 000540 6201 CDF 0 000541 3143 DCA GTEM 000542 1143 TAD GTEM 000543 7012 RTR /ROTATE 6 RIGHT 000544 7012 RTR 000545 7012 RTR 000546 5352 JMP GET4 /SKIP TO GETA 000547 7240 GET3, CLA CMA /RESET L - R SWITCH 000550 3112 DCA XCT 000551 1143 TAD GTEM 000552 0007 GET4, AND C77 /MASK OUT LEFT 6 BITS 000553 1027 TAD M77 000554 7100 CLL 000555 7450 SNA /WAS IT 77? 000556 2257 ISZ UTEST /YES - WAS IT LEFT HALF? 000557 5361 JMP GET5 /NO - CONTINUE 000560 5334 JMP EXTR /YES - GET OTHER HALF 000561 1140 GET5, TAD P37 000562 2257 ISZ UTEST /RESTORE THE CHARACTER 000563 7020 CML 000564 7420 SNL 000565 1011 TAD C100 000566 1030 TAD C240 000567 1172 TAD X203 /IS IT A ^C? 000570 7450 SNA 000571 5332 JMP UTRA+1 /YES - IGNORE IT 000572 1042 TAD M27 /NO - IS IT A ^Z? 000573 7450 SNA 000574 5332 JMP UTRA+1 /YES - IGNORE IT 000575 1134 TAD P232 /NO - RESTORE CHARACTER 000576 5731 JMP I UTRA /--RETURN-- /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 20 /------------------------------------------------------------- /INPUT LIST FOR SPECIAL CHARACTERS IN TEXT MODE 0577 INLIST=. 000577 1522 SPACES /SPCS 000600 1476 CTRLU /^U 000601 0606 FULL /FORM 000602 0606 FULL /BELL 000603 1154 RUB4+1 /LINE FEED 000604 1103 RUB1 /RUBOUT 000605 0411 EOL /CARRIAGE RETURN /HANDLER FOR FORM FEED OR ^G 000606 1060 FULL, TAD IGNORE / 000607 1054 TAD MCHIN1 / 000610 7650 SNA CLA /IN APPEND MODE? 000611 5555 JMP I TE1 /YES*RETURN TO COMMAND MODE* 000612 1157 TAD LSTN /NO - IS BUFFER EMPTY? 000613 7650 SNA CLA / /-------------------------------------------------------------- 000614 5616 JMP I MORI /YES - IGNORE FORM FEED 000615 5555 JMP I TE1 /NO*RETURN TO COMMAND MODE* 000616 0451 MORI, MOR /SET UP TO READ FROM INPUT DEVICE /USED BY C AND R COMMANDS /CALLED WITH SEQUENCE / JMS I PSETUP / INPUT ROUTINE / CONTINUATION OF HANDLER /EXITS TO CONTINUATION OF HANDLER 000617 0000 SETUP, 0 000620 1617 TAD I SETUP /GET READ AREA FROM ARGS 000621 3135 DCA BUFRDI 000622 1617 TAD I SETUP /LOCATION FOR IGNORED CHARACTERS 000623 7101 IAC CLL /V12 000624 3060 DCA IGNORE 000625 2217 ISZ SETUP /SETUP PROPER RETURN POINT 000626 1617 TAD I SETUP 000627 3217 DCA SETUP 000630 1125 TAD BUFR 000631 1173 TAD K1320 000632 7630 SZL CLA /IS BUFFER FULL? 000633 4143 ERROR /YES - DON'T READ 000634 5617 JMP I SETUP /--RETURN-- /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 21 /SUPERVISOR FOR DELETION OF TEXT LINES 000635 0000 DELP, 0 000636 4530 JMS I CHKARG /CHECK ARGUMENT VALIDITY 000637 1162 TAD ARG0 000640 3156 DCA THSN /SET CURRENT LINE # 000641 1163 TAD ARG1 /SAVE # DELETED 000642 3304 DCA LISTER 000643 1162 TAD ARG0 /GET POINTER TO LINE 000644 4466 JMS I FIN1 /TO BE DELETED 000645 3120 DCA THIS /STORE IT 000646 6211 DELP1, CDF 10 000647 1520 TAD I THIS 000650 3123 DCA MARK /CORE ADDRESS OF OBJECT LINE 000651 1523 TAD I MARK 000652 3520 DCA I THIS /CHAIN NEW POINTERS TO DELETE LINE 000653 1123 TAD MARK 000654 6201 CDF 0 000655 4522 JMS I GRBAGE /PHYSICALLY DELETE THE LINE 000656 2163 ISZ ARG1 /ALL SPECIFIED LINES DELETED? 000657 5246 JMP DELP1 /NO - CONTINUE 000660 1157 TAD LSTN /IF 1,/D..MAKE CURRENT=0 000661 7650 SNA CLA 000662 3156 DCA THSN 000663 1304 TAD LISTER /BUMP TOTAL DOWN 000664 1157 TAD LSTN 000665 3157 DCA LSTN 000666 5635 JMP I DELP /YES--RETURN-- /HANDLER FOR < 000667 7344 EXLAS, CLA CLL CMA RAL /PRINT LAST LINE - AC=7776=-2 /HANDLER FOR > OR LINE FEED 000670 1156 EXNEX, TAD THSN /PRINT NEXT LINE 000671 7001 IAC 000672 7450 SNA /IS IT AN EXISTING LINE? 000673 4143 ERROR /NO 000674 3162 DCA ARG0 /YES SAVE EFFECTIVE ARGUMENTS 000675 7040 CMA 000676 3163 DCA ARG1 /HANDLER FOR L COMMAND 000677 1074 LIST, TAD LOW /SET KEYBOARD AS OUTPUT 000700 3121 DCA OUTDEV 000701 2116 ISZ TABIND /SET TAB INDICATOR 000702 4304 JMS LISTER /OUTPUT LINE(S) 000703 5555 JMP I TE1 /*RETURN TO COMMAND MODE* /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 22 /LISTING OUTPUT ROUTINE /OUTPUTS LINES INDICATED BY ARG0,ARG1 000704 0000 LISTER, 0 000705 1162 TAD ARG0 000706 7640 SZA CLA /ANY ARGUMENTS? 000707 5317 JMP L0 /YES - SET THEM UP 000710 1175 TAD LSTCHK /ALLOW 0L? 000711 7640 SZA CLA 000712 4143 ERROR /NOPE 000713 1157 TAD LSTN /NO - SET TO LIST BUFFER 000714 7041 CIA 000715 3163 DCA ARG1 000716 2162 ISZ ARG0 /SET TO LINE 1 000717 1162 L0, TAD ARG0 000720 7041 CIA 000721 1157 TAD LSTN 000722 7710 SPA CLA /ARGUMENTS IN RIGHT RANGE? 000723 4143 L1, ERROR /NO -( OR JMP I TE1) 000724 1162 TAD ARG0 000725 4466 JMS I FIN1 /GET POINTERS 000726 3120 DCA THIS /SAVE POINTER 000727 7040 CMA 000730 6211 CDF 10 000731 1520 TAD I THIS /GET START 000732 3013 DCA AXOUT 000733 1413 TAD I AXOUT /SAVE POINTER FOR SEARCH 000734 3124 DCA XSAV 000735 1013 TAD AXOUT /SAVE OBJECT LINE FOR GARBAGE COLLECT 000736 3123 DCA MARK 000737 6201 CDF 0 000740 7040 CMA 000741 3112 DCA XCT 000742 1162 TAD ARG0 /SET POINTER 000743 3156 DCA THSN 000744 2162 ISZ ARG0 /SET FOR NEXT LINE /(HANDLER FOR FORM FEED DURING CHARACTER SEARCH) 000745 4465 L2, JMS I UTR1 /UNPACK A CHARACTER 000746 4473 JMS I OUT1 /PRINT A CHARACTER 000747 1110 L3, TAD CHAR /OR (JMP SLOOK) ** 000750 1021 TAD MCR 000751 7640 SZA CLA /WAS IT END OF LINE? 000752 5345 JMP L2 /NO - KEEP UNPACKING 000753 2163 ISZ ARG1 /YES - DONE YET? 000754 5317 JMP L0 /NO - GET NEXT LINE 000755 5704 JMP I LISTER /YES --RETURN-- /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 23 /SEARCH ROUTINES /HANDLER FOR CARRIAGE RETURN 000756 4505 SRETN, JMS I ENDLNI /TERMINATE THIS LINE 000757 1123 TAD MARK /AND NOW GARBAGE COLLECT 000760 4522 JMS I GRBAGE 000761 2163 ISZ ARG1 /DONE YET? 000762 5467 JMP I LIS1 /NO - GET NEXT LINE 000763 5555 JMP I TE1 /YES*RETURN TO COMMAND MODE* IFNZRO SLOOK&1000 <PGERR,XXX> 000764 4477 SLOOK, JMS I SORTJ /SEARCH DONE? /------------------------------------------------------------ 000765 0050 LIST3-1 /(CARRIAGE RETURN OR SEARCH CHARACTER) 000766 1406 LISTGO-LIST3 /YES - GO TO ITS HANDLER 000767 4500 JMS I PACK1 /NO-PACK SEARCHED CHARACTERS 000770 5504 JMP I L2I /CONTINUE SEARCH /HANDLER FOR ^G DURING CHARACTER SEARCH /CHANGE SEARCH CHARACTER 000771 4462 SCONT, JMS I KEYBD /FETCH NEW SEARCH CHARACTER 000772 3052 DCA LIST3+1 /STORE IT IN LIST 000773 5504 JMP I L2I /CONTINUE SEARCH /HANDLER FOR LINE FEED DURING SEARCH 000774 1034 SLINE, TAD CCR 000775 3110 DCA CHAR 000776 4505 JMS I ENDLNI 000777 2162 ISZ ARG0 /MOVE POINT 001000 2156 ISZ THSN /BUMP CURRENT LINE COUNT 001001 2157 ISZ LSTN /ADD A LINE. /HANDLER FOR _ DURING SEARCH 001002 1034 SBAR, TAD CCR /CTRL-U 001003 4473 JMS I OUT1 /OUTPUT CARRIAGE RETURN 001004 1125 TAD BUFR /RESTART PACK BUFFER 001005 3016 DCA AXIN 001006 3113 DCA XCTIN /------------------------------------------------------------------- 001007 4457 SFOUND, JMS I CHI1 /GET A CHARACTER 001010 4477 JMS I SORTJ /SPECIAL SEARCH COMMAND? 001011 0043 LIST6-1 001012 1406 SRNLST-LIST6 /YES - GO TO HANDLER /HANDLER FOR SEARCH CHARACTER FOUND 001013 4500 SGOT, JMS I PACK1 /NO-PACK INSERTS 001014 5207 JMP SFOUND /CONTINUE INPUT /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 24 /SEARCH TEXT BUFFER FOR LINE /WHOSE NUMBER IS ONE LESS THAN /THE CONTENTS OF THE AC /EXIT WITH ADDRESS OF LINK CELL IN AC 001015 0000 FIND, 0 /LOCATE LINE BUFFER 001016 7041 CIA 001017 7500 SMA /IS LINE NUMBER TOO SMALL? 001020 4143 ERROR /YES 001021 3117 DCA TEMP /NO - STORE NEGATIVE OF LINE # 001022 1117 TAD TEMP 001023 7001 IAC 001024 1157 TAD LSTN 001025 7710 SPA CLA /IS LINE NUMBER TOO LARGE? 001026 4143 ERROR /YES 001027 1126 TAD CFRS /NO 001030 5235 JMP FIND1 001031 6211 FIND2, CDF 10 001032 1515 TAD I SAVE /CHAIN THROUGH LIST 001033 6201 CDF 0 001034 7440 SZA /FAILSAFE 001035 3115 FIND1, DCA SAVE 001036 2117 ISZ TEMP /DONE YET? 001037 5231 JMP FIND2 /NO - KEEP CHAINING 001040 1115 TAD SAVE /YES - GET LINE NUMBER 001041 5615 JMP I FIND /--RETURN-- /HANDLER FOR B COMMAND 001042 1125 CORSPC, TAD BUFR /SET UP NUMBER OF LOCATIONS 001043 7161 STL CIA /IN ARG2 001044 1025 TAD BUFEND 001045 1302 TAD K360 001046 7430 SZL /IS ANY CORE LEFT? 001047 7300 CLA CLL /NO - WRITE 0 001050 3164 DCA ARG2 /FALL INTO 'PRNT' /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 25 0111 BOX=COUNTP 0162 VAL=ARG0 /HANDLER FOR : OR = /PRINTS REQUESTED LINE NUMBER /WHICH IS FOUND IN ARG2 ON ENTRY 001051 1164 PRNT, TAD ARG2 001052 3162 DCA VAL /SET NUMBER TO BE PRINTED 001053 1017 TAD M4 001054 3112 DCA CNT /SET CHARACTER COUNT 001055 1301 TAD ADDR 001056 3215 DCA FIND /SET ADDRESS OF PWRS OF TEN 001057 7240 FLOOZ, STA /SET TO -1 001060 3111 DCA BOX 001061 7100 ADDXYZ, CLL 001062 2111 ISZ BOX /FIRST TIME: BOX=0 AND SKIP 001063 3162 DCA VAL 001064 1162 TAD VAL 001065 1615 TAD I FIND /TAD I (ADDR) +() SOME DISPLACEMENT 001066 7430 SZL 001067 5261 JMP ADDXYZ /KEEP ADDING THE SAME CONSTANT 001070 7200 CLA 001071 1111 TAD BOX /BOX HAS THE NUMBER COUNT 001072 1300 TAD C260 /MAKE ASCII DIGIT 001073 4474 JMS I OUTL1 /OUTPUT THE DIGIT 001074 2215 ISZ FIND /ADD IN NEXT CONVERSION CONSTANT LATER 001075 2112 ISZ CNT /DONE ALL FOUR? 001076 5257 JMP FLOOZ /NO - KEEP CONVERTING 001077 5555 JMP I TE1 /YES*RETURN TO COMMAND MODE* 001100 0260 C260, 260 001101 1167 ADDR, CON 001102 0360 K360, 360 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 26 /HANDLER FOR RUBOUT IN TEXT OR SEARCH 001103 1016 RUB1, TAD AXIN 001104 7041 CIA 001105 1125 TAD BUFR 001106 1113 TAD XCTIN 001107 7640 SZA CLA /IS THERE ANYTHING ON THIS LINE? 001110 1114 TAD ECHOSW /OR ECHO INHIBITED? 001111 7650 SNA CLA 001112 5460 JMP I IGNORE /YES-IGNORE RUBOUT 001113 6211 CDF 10 /LOOK AT "SCOPE" BIT IN 001114 1766 TAD I P7726 /RESIDENT MONITOR 001115 6201 CDF 00 001116 0024 AND C200 001117 7640 SZA CLA 001120 5323 JMP RP1 001121 1364 TAD SPLAT /NO SCOPE, PRINT BACKSLASH 001122 5330 JMP RP2 001123 1365 RP1, TAD P210 /SCOPE, PRINT BACK SPACE 001124 4473 JMS I OUT1 001125 1030 TAD C240 /THEN A SPACE 001126 4473 JMS I OUT1 001127 1365 TAD P210 /THEN ANOTHER BACK SPACE 001130 4473 RP2, JMS I OUT1 /DELETE CHAR FROM BUFFER 001131 1016 TAD AXIN /GET LAST WORD OF INPUT 001132 3111 DCA MOV1 001133 6211 CDF 10 001134 3525 DCA I BUFR /PREVENTS INFINITE RUBOUTS 001135 1511 TAD I MOV1 001136 2113 ISZ XCTIN /WHICH HALF OF WORD? 001137 5356 JMP RUB2 001140 0007 AND C77 001141 1027 TAD M77 001142 7640 SZA CLA /TEST EXTENSION 001143 5353 JMP RUB4 001144 7040 RUB3, CMA 001145 3113 DCA XCTIN 001146 7040 CMA 001147 1016 TAD AXIN 001150 3016 DCA AXIN 001151 1511 TAD I MOV1 001152 0026 AND P7700 001153 3161 RUB4, DCA ADD 001154 6201 CDF 0 001155 5460 JMP I IGNORE /CHIN+1 001156 0026 RUB2, AND P7700 001157 1011 TAD C100 001160 7640 SZA CLA 001161 5344 JMP RUB3 001162 3511 DCA I MOV1 001163 5345 JMP RUB3+1 001164 0334 SPLAT, 334 /ACKNOWLEDGE RUBOUT 001165 0210 P210, 210 001166 7726 P7726, 7726 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 27 /----------------------------------------------------------------------- 001167 6030 CON, 6030 /CONVERSION CONSTANTS 001170 7634 7634 001171 7766 7766 001172 7777 7777 /I-O SUBROUTINES /HANDLER FOR S COMMAND 001173 4462 XCRET, JMS I KEYBD /GET THE SEARCH CHARACTER 001174 3052 DCA LIST3+1 /SAVE IT IN LIST 001175 1102 TAD SXS2 001176 3503 DCA I L3I /MAKE LISTER JUMP TO SLOOK 001177 1125 TAD BUFR 001200 3016 DCA AXIN /BUILD NEW TEXT IMAGE HERE 001201 3113 DCA XCTIN 001202 1057 TAD CHI1 /READ POINT IS CHIN 001203 7001 IAC 001204 3060 DCA IGNORE 001205 5467 JMP I LIS1 /LIST OF SPECIAL CHARACTERS FOR G COMMAND 1206 TAGLIST=. 001206 1377 GTAG2 /SPACE 001207 1377 GTAG2 // 001210 1377 GTAG2 /ESC 001211 1377 GTAG2 /TAB 001212 1377 GTAG2 /CARRIAGE RETURN /HANDLER FOR $ (PART OF M COMMAND) 001213 1162 MOVE, TAD ARG0 /ARG2 .GE. ARG0 001214 7041 CIA 001215 1164 TAD ARG2 001216 7710 SPA CLA /ARE LINES TO BE MOVED LEGITIMATE 001217 4143 ERROR /NO 001220 1162 TAD ARG0 /YES- 001221 3111 DCA MOV1 /SET POINTER TO FIRST LINE 001222 1164 TAD ARG2 001223 3170 DCA MOV2 /SET POINTER TO LAST LINE 001224 5476 JMP I ONUM /CONTINUE COMMAND INPUT /----------------------------------------------------------------------- /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 28 /SET UP APPEND, CHANGE, INSERT TO WORK /EACH READS KEYBOARD, NOT DEVICE 001225 7777 CNGEL, CNGE1-XNS1 001226 0004 XNSL, XNS1-APP1 /HANDLER FOR C COMMAND 001227 1225 CNGE, TAD CNGEL /HANDLER FOR I COMMAND 001230 1226 XNS, TAD XNSL /HANDLER FOR A COMMAND 001231 1305 APP, TAD APPL 001232 3236 DCA DEST /RETURN POINT 001233 2114 ISZ ECHOSW 001234 4742 JMS I PSETUP 001235 3132 CHIN /KEYBOARD INPUT 001236 0424 DEST, APP1 /SPECIAL OUTPUT LIST 1237 OUTLIS=. 001237 3056 ESCOUT /233 - ESC - V12 001240 3115 OUTTAB /211 - TAB 001241 3100 OUTCRL /215 - CARRIAGE RETURN 001242 3050 OUTX+1 /212 - LINE FEED 001243 3050 OUTX+1 /214 - FORM FEED 001244 3050 OUTX+1 /377 - RUBOUT 001245 3046 OUTX-1 /207 - CNTRL G - BELL 001246 3074 BCKSPC /210 - CNTRL H - BACKSPACE /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 29 /HANDLER FOR P COMMAND 001247 3116 PUNCHQ, DCA TABIND /ORIGINAL DEC PATCH 001250 2114 PUNCH, ISZ ECHOSW 001251 1136 TAD BUFWTI /SETUP TO WRITE INTO OUTPUT BUFFER 001252 3121 DCA OUTDEV 001253 4470 PUNC, JMS I LIS /WRITE THE EDITOR BUFFER 001254 1045 TAD C214 /OUTPUT FORM FEED 001255 4521 JMS I OUTDEV /HANDLER FOR T COMMAND 001256 6211 PUNCT, CDF 10 001257 1567 TAD I K7600 001260 6201 CDF 0 001261 7650 SNA CLA /IS THERE AN OUTPUT DEVICE? 001262 5555 JMP I TE1 /NO*RETURN TO COMMAND MODE* 001263 1136 TAD BUFWTI /YES - SET UP TO WRITE INTO 001264 3121 DCA OUTDEV /OUTPUT BUFFER 001265 1010 TAD M41 /V40 001266 3170 DCA TEMPO /SET TRAILER COUNTER 001267 6212 CIF 10 001270 4565 JMS I POTYPE / 001271 7700 SMA CLA /DIRECTORY DEVICE FOR OUTPUT? 001272 4521 JMS I OUTDEV /NO - OUTPUT LEADER TRAILER 001273 2170 ISZ TEMPO /DONE YET? 001274 5267 JMP .-5 /NO - CONTINUE 001275 6041 TSF /YES - RESET FLAG 001276 5275 JMP .-1 001277 5555 JMP I TE1 /*RETURN TO COMMAND MODE* /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 30 /HANDLER FOR R COMMAND 1300 TELE=. 001300 6041 TELEN, TSF 001301 5300 JMP .-1 001302 3114 DCA ECHOSW /INHIBIT ECHO 001303 4742 JMS I PSETUP /SETUP TO READ FROM 001304 2031 BUFRD /INPUT DEVICE 001305 0424 APPL, APP1 /APPEND TEXT TO BUFFER /HANDLER FOR Y COMMAND 001306 1330 YANK, TAD COM1 /YANK KILLS 'P' PART OF N 001307 5311 JMP COMBOA /HANDLER FOR N COMMAND 001310 1141 COMBO, TAD JMPCH /YANK WIPES COM1-1 001311 3464 COMBOA, DCA I CCON+1 001312 1162 TAD ARG0 001313 7450 SNA /ANY ARGUMENTS 001314 7001 IAC /NO - ASSUME 1 001315 7041 CIA 001316 3111 DCA COUNTP /SET NUMBER OF PAGES TO YANK 001317 1063 TAD CCON /(JMP I AXCOMB) 001320 3555 DCA I TE1 /SET TE1 TO ALLOW LOOPING 001321 1064 COMB, TAD CCON+1 /THROUGH PUNCH, KILL, READ 001322 3014 DCA AXCOMB /CYCLE 001323 3162 DCA ARG0 /CLEAR ARGUMENTS 001324 3164 DCA ARG2 001325 3175 DCA LSTCHK /DON'T INHIBIT LISTER! 001326 3116 DCA TABIND /CLEAR IN CASE OF MULTIPLE N 001327 5253 JMP PUNC /OUTPUT BUFFER 001330 5527 COM1, JMP I KILL1 /KILL BUFFER 001331 5300 JMP TELEN /READ NEW BUFFER FULL 001332 2111 ISZ COUNTP /DONE YET? 001333 5321 JMP COMB /NO - CONTINUE 001334 7324 CLA CLL CML RAL /YES-AC=1 - RESET CURRENT LINE NUMBER 001335 3156 DCA THSN /.=1 ON RETURN 001336 1075 COM5, TAD CZ /RESTORE TE1 001337 3555 DCA I TE1 001340 5555 JMP I TE1 /*RETURN TO COMMAND MODE* /IT IS VITAL TO KEEP DUMB1 AND COM5 ON THE SAME PAGE 001341 2244 DUMB1, JERK1 001342 0617 PSETUP, SETUP /V3 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 31 /----------------------------------------------------------------------- 1343 LIST1=. 001343 0212 212 /LINE FEED 001344 0240 240 /SPACE 001345 0253 253 /PLUS (+) 001346 0254 254 /COMMA (,) 001347 0255 255 /MINUS (-) 001350 0256 256 /PERIOD (.) 001351 0257 257 /SLASH (/) 001352 0274 274 /< 001353 0275 275 /= 001354 0276 276 /> 001355 0000 000 /DUMMY FOR . AND / 001356 0243 "# /FOR VERSION V40 001357 0375 375 /ALTMODE ASR-33 001360 0376 376 /ALTMODE ASR-35 001361 0233 233 /ESCAPE KEY 001362 0242 242 /DOUBLE QUOTE (") 001363 0244 244 /DOLLAR SIGN ($) 001364 0377 377 /RUBOUT 001365 0272 272 /COLON (:) 001366 0215 LIST1A, 215 /CARRIAGE RETURN 001367 0225 225 /^U 001370 0203 203 /^C /HANDLER FOR G COMMAND 001371 2156 GETTAG, ISZ THSN 001372 1162 TAD ARG0 001373 7450 SNA /ANY ARGUMENTS 001374 1156 TAD THSN /NO - BEGIN WITH NEXT LINE (.+1) 001375 3162 DCA ARG0 /YES - SET ARGUMENTS 001376 7410 SKP 001377 2162 GTAG2, ISZ ARG0 001400 7001 IAC 001401 1162 TAD ARG0 001402 4466 JMS I FIN1 /GET NEXT LINE 001403 3013 DCA AXOUT 001404 7040 CMA 001405 3112 DCA XCT 001406 4465 JMS I UTR1 /UNPACK FIRST CHARACTER 001407 4477 JMS I SORTJ /DOES IT BEGIN A TAG? 001410 0027 LIST7-1 /NO - TAGLIST EXITS 001411 1156 TAGLIST-LIST7 /TO GTAG2 001412 5467 JMP I LIS1 /YES - PRINT LINE /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 32 0163 MP1=ARG1 0162 MP2=ARG0 0164 MP3=ARG2 /HANDLER FOR M COMMAND /ENTER WITH FIRST LINE TO MOVE IN MOV1 /LAST LINE TO MOVE IN MOV2 /MOV2 .GT. MOV1 /DESTINATION LINE IN ARG2 001413 1111 MOVEM, TAD MOV1 001414 7041 CIA /ARG2 MAY NOT BE BETWEEN 001415 1164 TAD ARG2 /MOV1 AND MOV2 001416 7710 SPA CLA /IS MOV1 .GT. ARG2? /----------------------------------------------------------------------- 001417 5225 JMP .+6 /YES - O.K. 001420 1170 TAD MOV2 001421 7040 CMA 001422 1164 TAD ARG2 001423 7750 SPA SNA CLA /IS MOV2 .LT. ARG2? 001424 4143 ERROR /NO-FAULTY LOGIC IN COMMAND 001425 1111 TAD MOV1 /YES 001426 4466 JMS I FIN1 001427 3163 DCA MP1 /STORE FIRST LINE POINTER 001430 7001 IAC 001431 1170 TAD MOV2 001432 4466 JMS I FIN1 001433 3162 DCA MP2 /STORE LAST LINE POINTER 001434 1164 TAD ARG2 001435 4466 JMS I FIN1 001436 3164 DCA MP3 /STORE DESTINATION LINE POINTER 001437 6211 CDF 10 /ALL FOUND 001440 1563 TAD I MP1 /SWAP POINTERS- 001441 3117 DCA TEMP /RESET THE LINK COORDS 001442 1562 TAD I MP2 001443 3563 DCA I MP1 001444 1564 TAD I MP3 001445 3562 DCA I MP2 001446 1117 TAD TEMP 001447 3564 DCA I MP3 001450 6201 CDF 0 001451 5555 JMP I TE1 /*RETURN TO COMMAND MODE* 1452 SRNLST=. 001452 1002 SBAR /BACK ARROW (_) 001453 0745 L2 /FORM FEED 001454 0771 SCONT /BELL 001455 0774 SLINE /LINE FEED 001456 1103 RUB1 /RUB OUT 1457 LISTGO=. 001457 0756 SRETN /CARRIAGE RETURN /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 32-1 001460 1013 SGOT /SEARCH CHARACTER FOUND /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 33 /HANDLER FOR E COMMAND 001461 1133 ENDFIL, TAD EKILLL /IS E COMMAND ALLOWED? 001462 7640 SZA CLA 001463 4143 ERROR /NO-NO INPUT SPECIFIED 001464 7240 CLA CMA /YES-RESET ARGUMENTS 001465 3162 DCA ARG0 001466 1151 TAD JMPTE1 /SKIP LISTER IF EMPTY BUFFER 001467 3532 DCA I L1I 001470 1274 TAD FLCLSI /CLOSE FILE SETUP 001471 3144 DCA ELIM /CLOSES FILE ON READ FAILURE 001472 5673 JMP I COMBOP 001473 1310 COMBOP, COMBO 001474 5537 FLCLSI, JMP I CLFLI 001475 0446 AONEI, AONE /HANDLER FOR ^U IN TEXT MODE 001476 1034 CTRLU, TAD CCR /AND A CR/LF 001477 4473 JMS I OUT1 001500 5675 JMP I AONEI /AND CONTINUE /CHECK VALIDITY OF ARGUMENTS /FOR D COMMAND 001501 0000 CHKARX, 0 001502 1162 TAD ARG0 001503 7041 CIA 001504 7001 IAC 001505 1163 TAD ARG1 001506 1157 TAD LSTN 001507 7710 SPA CLA /DO LINES EXIST? 001510 4143 ERROR /NO 001511 5701 JMP I CHKARX /YES--RETURN-- /HANDLER FOR . 001512 1156 PERI, TAD THSN 001513 7410 SKP /HANDLER FOR / 001514 1157 SLAS, TAD LSTN 001515 3117 DCA TEMP /SAVE LINE NUMBER 001516 3110 DCA CHAR 001517 2175 ISZ LSTCHK /GOT EITHE . OR / IN ARGS 001520 5721 JMP I .+1 /FETCH REST OF ARGUMENT 001521 0240 GLOM /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 34 /HANDLER FOR SPACE IN TEXT MODE 001522 1114 SPACES, TAD ECHOSW 001523 7200 CLA /OR SZA CLA IF B OPTION 001524 5506 JMP I SPCNO /PACK IT - (MOR+4) 001525 7040 CMA /SET COUNTER 001526 3112 SP2, DCA CNT 001527 4535 JMS I BUFRDI /GET LAST CHARACTER 001530 1022 TAD M240 001531 7650 SNA CLA /WAS IT SPACE? 001532 5326 JMP SP2 /YES-IGNORE EXTRA SPACES /----------------------------------------------------------------------- 001533 1110 TAD CHAR /NO 001534 3115 DCA SAVE /SAVE NON-SPACE 001535 2112 ISZ CNT /WAS THERE MORE THAN 1 SPACE? 001536 1042 TAD M27 /YES- STORE TAB 001537 1030 TAD C240 /NO-STORE SPACES 001540 3110 DCA CHAR 001541 4500 JMS I PACK1 001542 1115 TAD SAVE 001543 5507 JMP I SPCGO /SORT - (MOR+1) /HANDLER FOR K COMMAND 001544 1162 KILL, TAD ARG0 /IN CASE HE TYPED N,MK 001545 7640 SZA CLA /INSTEAD OF N,ML. SAVE HIM!! 001546 4143 ERROR 001547 1061 TAD END /RESET BUFFER POINTERS 001550 3125 DCA BUFR /TO REFLECT EMPTY BUFFER 001551 3157 DCA LSTN 001552 3156 DCA THSN 001553 6211 CDF 10 /ZERO FIELD 1 POINTER 001554 3526 DCA I CFRS 001555 6201 CDF 0 001556 5555 JMP I TE1 /*RETURN TO COMMAND MODE* /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 35 001557 0670 OPS1, EXNEX /LINE FEED 001560 0226 GEXP /SPACE 001561 0226 GEXP /PLUS 001562 2716 FIRS /COMMA 001563 0227 GMIN /MINUS 001564 1512 PERI /POINT(.) 001565 1514 SLAS /SLASH 001566 0667 EXLAS /BACKUP(<) 001567 1051 PRNT /= 001570 0670 EXNEX /ALT(>) 001571 0231 DBCV2 /DUMMY FOR . AND / 001572 2326 VERSN /# VERSION 001573 2235 AMODE /ALTMODE ASR-33 001574 2235 AMODE /ALTMODE ASR-35 001575 2235 AMODE /ESCAPE KEY 001576 2275 DBLQUO /" 001577 1213 MOVE /DOLLAR SIGN 001600 0144 ELIM /COMMAND RUBOUT 001601 1051 PRNT /: 001602 0222 GTOP-2 /CARRIAGE RETURN 001603 0203 START /^U 001604 1753 MONIT /^C (MONITOR RESTART) 001605 0261 OPS1A, RETRN /RETURN /----------------------------------------------------------------------- 001606 0203 OLDTE1, START /^U 001607 1753 MONIT /^C /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 36 /END OF A NEW TEXT LINE /PACK CARRIAGE RETURN INTO BUFFER /SET LINK CELLS AROUND NEW LINE /ENTER WITH: / CHAR CONTAINS CARRIAGE RETURN / THIS CONTAINS ADDRESS OF LINK / CELL OF PRECEDING TEXT LINE / XSAV CONTAINS ADDRESS OF LINK / CELL OF FOLLOWING TEXT LINE / BUFR CONTAINS ADDRESS OF LINK / CELL OF NEW TEXT LINE 001610 0000 ENDLN, 0 001611 4500 JMS I PACK1 /PACK CARRIAGE RETURN 001612 6211 CDF 10 001613 1161 TAD ADD 001614 7440 SZA 001615 3416 DCA I AXIN 001616 1125 TAD BUFR /RESET LINK CELL 001617 3520 DCA I THIS /OF PREVIOUS LINE 001620 1124 TAD XSAV 001621 3525 DCA I BUFR /RESET LINK CELL OF NEW LINE 001622 1125 TAD BUFR 001623 3120 DCA THIS /RESET POINTER TO LINK CELL 001624 2016 ISZ AXIN 001625 1016 TAD AXIN 001626 3125 DCA BUFR /RESET FOR NEXT LINE 001627 3113 DCA XCTIN /CR CHARACTER SWITCH 001630 6201 CDF 0 001631 5610 JMP I ENDLN /--RETURN-- /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 37 /CHECK FOR CONTROL C 001632 0000 CTCK, 0 001633 1024 TAD C200 001634 6034 KRS 001635 1172 TAD X203 001636 7450 SNA 001637 5552 JMP I MONITOR 001640 5632 JMP I CTCK /LOW SPEED INPUT ROUTINE /CHECKS FOR ^C /EXIT WITH CHARACTER IN AC 001641 0000 I33, 0 001642 6031 KSF 001643 5242 JMP .-1 001644 4232 JMS CTCK 001645 6036 KRB 001646 0020 AND P177 001647 1024 TAD C200 001650 5641 JMP I I33 /NO--RETURN-- /LOW SPEED OUTPUT ROUTINE /ENTER WITH CHARACTER IN AC 001651 0000 OUTL, 0 001652 6046 TLS 001653 6041 TSF 001654 5253 JMP .-1 001655 4257 JMS COPSQ /CHECK ^COPSQ 001656 5651 JMP I OUTL /NO, --RETURN-- /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 38 001657 0000 COPSQ, 0 001660 7200 CLA 001661 6031 KSF /IS KEYBOARD ACTIVE? 001662 5657 JMP I COPSQ /NO 001663 4232 CHKAGA, JMS CTCK /GET CHAR, CHECK ^C 001664 1377 TAD (-20+3 /WAS IT ^P? 001665 7440 SZA 001666 7001 IAC /NO, WAS IT ^O? 001667 7450 SNA 001670 5305 JMP CLRCOP /CLEAR EITHER ^O OR ^P 001671 1376 TAD (-23+17 /FINALLY, WAS IT ^S? 001672 7450 SNA 001673 5301 JMP CTRLS /YES, HANG UP 001674 7001 IAC 001675 7001 IAC 001676 7650 SNA CLA /OR WAS IT ^Q? 001677 6032 KCC /YES, THROW AWAY 001700 5657 JMP I COPSQ /NOW GO ON 001701 6032 CTRLS, KCC /CLEAR ^S 001702 6031 KSF 001703 5302 JMP .-1 /WAIT FOR ^Q HOPEFULLY 001704 5263 JMP CHKAGA /INVESTIGATE NEW CHAR 001705 6032 CLRCOP, KCC 001706 5555 JMP I TE1 /*RETURN TO COMMAND MODE* /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 39 /RESET POINTERS AND SAVE BUFFERS 001707 4346 RESET3, JMS FXSTWD 001710 6212 CIFTEN, CIF 10 /CLEAR BIT 11 OF JSW 001711 4426 JMS I P7700 /CALL USER SERVICE ROUTINES 001712 0010 10 /*LOCK USR IN CORE* 001713 1310 TAD CIFTEN /RESET POINTERS 001714 3741 DCA I BUFRD1 001715 3133 DCA EKILLL 001716 1206 TAD OLDTE1 001717 3155 DCA TE1 001720 1075 TAD CZ 001721 3555 DCA I TE1 001722 1167 TAD K7600 001723 3144 DCA ELIM 001724 1167 TAD K7600 001725 3740 DCA I SPCP1A 001726 1074 TAD LOW 001727 3121 DCA OUTDEV 001730 2114 ISZ ECHOSW 001731 1141 TAD JMPCH 001732 3464 DCA I CCON+1 001733 2346 ISZ FXSTWD /WASTE TIME FOR TTY FLAG 001734 5331 JMP .-3 001735 6213 CIF CDF 10 001736 5737 JMP I .+1 /GO CALL COMMAND DECODER 001737 6606 START1 001740 1523 SPCP1A, SPACES+1 001741 2032 BUFRD1, BUFRD+1 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 40 001742 4456 DELE, JMS I DELT /DELETE THE LINES 001743 6041 TSF 001744 5343 JMP .-1 001745 5555 JMP I TE1 /CLEAR BIT 11 OF JOB STATUS WORD 001746 0000 FXSTWD, 0 001747 6212 CIF 10 001750 4752 JMS I JSWSET /IF NONZERO TEXT,SAVE BUFFER 001751 5746 JMP I FXSTWD /--RETURN-- 001752 7126 JSWSET, INSET /HANDLER FOR ^C /AND OTHER EXITS TO MONITOR 001753 4346 MONIT, JMS FXSTWD /SET JOB STATUS TO SAVE CORE 001754 6041 TSF /MAKE SURE TTY FLAG IS SET 001755 5354 JMP .-1 001756 5567 JMP I K7600 /****EXIT TO MONITOR**** IFNDEF GERMAN < 001757 0311 REDMES, "I; "n; "p; "u; "t; 0 001760 0356 001761 0360 001762 0365 001763 0364 001764 0000 001765 0304 DEVMES, "D; "e; "v; "i; "c; "e; 0 001766 0345 001767 0366 001770 0351 001771 0343 001772 0345 001773 0000 > IFDEF GERMAN < REDMES, "L; "e; "s; "e; 0 DEVMES, "G; "e; "r; "a; "e; "t; 0 > 001776 7774 001777 7763 2000 PAGE /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 41 /----------------------------------------------------------------------- /----------------------------------------------------------------------- /READ,WRITE,AND RELATED ROUTINES 0004 OURECS=4 /SIZE OF OUTPUT BUFFER /HANDLER FOR Q COMMAND 002000 4741 Q, JMS I FXSWDI /CLEAR BIT 11 OF JSW 002001 6211 CDF 10 002002 1567 TAD I K7600 002003 6201 CDF 0 002004 7650 SNA CLA /WAS AN OUTPUT DEVICE SPECIFIED? 002005 4143 ERROR /NO- 002006 1157 FLCLOS, TAD LSTN 002007 7650 SNA CLA /IS BUFFER EMPTY? 002010 5215 JMP FLCLS1 /YES-CLOSE FILE 002011 1261 TAD FLCLI /NO- 002012 3155 DCA TE1 /SET UP RETURN FROM P COMMAND 002013 5614 JMP I .+1 002014 1247 PUNCHQ /CLOSE FILE ON E OR Q COMMAND 002015 6212 FLCLS1, CIF 10 002016 4763 JMS I OCLSI /CLOSE FILE 002017 5225 JMP CLERR /WAS ERROR 002020 7240 CLA CMA /TELL SYSTEM I/O MONITOR IS IN CORE 002021 6211 CDF 10 002022 3426 DCA I P7700 002023 6201 CDF 0 002024 5567 JMP I K7600 /****EXIT TO MONITOR*** 002025 7710 CLERR, SPA CLA 002026 4542 JMS I PRERR /**FILE CLOSE FAILED**2* 002027 0002 2 002030 5273 JMP ERWT+2 /RAN OUT OF SPACE WHILE CLOSING /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 42 /INPUT ROUTINE FROM DEVICE /VIA INPUT DEVICE HANDLER 002031 0000 BUFRD, 0 002032 6212 CIF 10 002033 4660 JMS I ICHARI /FETCH A CHARACTER 002034 5244 JMP ERRD /ERROR IN READING FROM BUFFER 002035 3110 DCA CHAR /INTERFACE LOCATION 002036 1110 TAD CHAR 002037 0020 AND P177 002040 7450 SNA /IS IT L/T? 002041 5232 JMP BUFRD+1 /YES-GET NEXT CHARACTER 002042 1024 TAD C200 /NO RESTORE CHARACTER 002043 5631 JMP I BUFRD /--RETURN-- 002044 7710 ERRD, SPA CLA /FATAL OR EOF? 002045 4542 JMS I PRERR /FATAL-OUTPUT ERROR MESSAGE 002046 0000 0 /*FAILED IN READIN DEVICE*0* 002047 1131 TAD ERSW /DISABLE FURTHER READS 002050 3232 DCA BUFRD+1 002051 1566 TAD I COMM5 /IF THIS IS NEGATIVE, DO ONE 002052 7700 SMA CLA /MORE SEARCH (POSSIBLY) IN THE CASE 002053 5232 JMP BUFRD+1 /THAT NO FINAL FORM FEED EXISTS 002054 7201 CLA IAC /SET CURRENT LINE TO 1 AND SEARCH 002055 3156 DCA THSN /ONCE MORE 002056 5657 JMP I .+1 002057 2440 SFIND2 002060 7412 ICHARI, ICHAR /CHARACTER ROUTINES 002061 2015 FLCLI, FLCLS1 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 43 /OUTPUT ROUTINE TO DEVICE /VIA OUTPUT DEVICE HANDLER 002062 0000 BUFWT, 0 002063 6212 CIF 10 002064 4744 JMS I OCHARI /OUTPUT A CHARACTER 002065 5271 JMP ERWT /OUTPUT FAILED 002066 1136 BUFRTN, TAD BUFWTI /RESET OUTPUT DEVICE HANDLER POINTER 002067 3121 DCA OUTDEV 002070 5662 JMP I BUFWT /--RETURN-- 002071 7710 ERWT, SPA CLA /FATAL, OR NO MORE ROOM? 002072 4542 JMS I PRERR /FATAL-OUTPUT ERROR MESSAGE 002073 0001 1 /*FATAL WRITE ERROR*1* 002074 4741 JMS I FXSWDI /FIX JOB STATUS WORD-NO MORE ROOM 002075 1555 TAD I TE1 /STORE POINTERS 002076 3362 DCA PTE1 002077 1144 TAD ELIM 002100 3361 DCA PELIM 002101 1155 TAD TE1 002102 3360 DCA PPTE1 002103 6211 CDF 10 002104 2743 ISZ I PANICI /SET PANIC DUMP 002105 1345 TAD MORECS /PREPARE TO CLOSE PRESENT OUT FILE 002106 1742 TAD I OCNTI /THIS GIVES OPTIMUM CLOSE LENGTH 002107 7510 SPA 002110 5334 JMP OVRFLW 002111 3742 DCA I OCNTI 002112 1747 TAD I OREC /WRITE A ^Z 002113 3322 DCA CLSREC /DIRECTLY TO THE DEVICE 002114 1750 TAD I OHNDL /HANDLER ENTRY POINT 002115 3170 DCA TEMPO 002116 6201 CDF 0 002117 4570 JMS I TEMPO /CALL OUTPUT DEVICE HANDLER 002120 4110 4110 /THE BUFFER IS A PAGE OF THE EDITOR 002121 7000 7000 /WITH A 232 IN THE FIRST LOCATION 002122 0000 CLSREC, 0 /RECORD NUMBER HERE 002123 4542 JMS I PRERR /**WRITE FAILURE** 1* 002124 0001 1 002125 6213 CDF CIF 10 002126 4763 JMS I OCLSI /CLOSE THE FILE IN PANIC MODE 002127 4542 JMS I PRERR /**FILE CLOSE FAILED**2* 002130 0002 2 002131 6212 CIF 10 002132 4424 JMS I C200 /CALL USER SERVICE ROUTINES 002133 0011 11 /*DISMISS USR FROM CORE* 002134 6201 OVRFLW, CDF 0 002135 7200 CLA 002136 4746 JMS I POINT /PRINT 'FULL' 002137 2164 FULMES 002140 5453 JMP I RST3I /-RESET & CALL COMMAND DECODER /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 44 002141 1746 FXSWDI, FXSTWD 002142 7344 OCNTI, OUCCNT 002143 6746 PANICI, PANIC 002144 7015 OCHARI, OCHAR 002145 7775 MORECS, -OURECS+1 /THIS ALLOWS US TO 'MANUALLY' WRITE /A FORM FEED AND A ^Z. 002146 2331 POINT, PRINT 002147 7270 OREC, OUREC 002150 7215 OHNDL, OUHNDL /RESET POINTERS STORED PREVIOUSLY 002151 1360 BUFRET, TAD PPTE1 002152 3155 DCA TE1 002153 1362 TAD PTE1 002154 3555 DCA I TE1 002155 1361 TAD PELIM 002156 3144 DCA ELIM 002157 5266 JMP BUFRTN 002160 0000 PPTE1, 0 002161 0000 PELIM, 0 002162 0000 PTE1, 0 002163 7277 OCLSI, OCLOSE /V3 FILE CLOSE ROUTINE /----------------------------------------------------------------------- IFNDEF GERMAN < 002164 0306 FULMES, "F; "u; "l; "l; 240; "!; "!; 215; 212; 0 002165 0365 002166 0354 002167 0354 002170 0240 002171 0241 002172 0241 002173 0215 002174 0212 002175 0000 > IFDEF GERMAN < FULMES, "V; "o; "l; "l; 240; "!; "!; 215; 212; 0 > /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 45 002176 0000 SRCBUF, ZBLOCK 24 /SEARCH BUFFER /SPECIAL CHARACTER LIST FOR STRING SEARCH 2222 SLST=. 002222 0247 247 /" 002223 0242 242 /' 002224 0377 377 /RUBOUT 002225 0203 203 /^C 002226 0225 225 /^U /----------------------------------------------------------------------- 002227 5741 NEXBUF, DUMB1&177+5600 /JMP I DUMB1 /DISPATCH LIST FOR STRING SEARCH 002230 2431 OSLST, QUO1 /" 002231 2430 QUO2 /' 002232 2573 FORGET /RUBOUT 002233 1753 MONIT /^C 002234 0203 START /^U IN STRING SEARCH /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 46 /HANDLER FOR ALTMODE 002235 3153 AMODE, DCA STRIND /NEED SETUP 002236 4554 JMS I STRFIN /SEARCH FOR STRING 002237 4143 ERROR 002240 1156 TAD THSN /RESULT IS LINE NUMBER 002241 5642 JMP I .+1 /LINK TO COMMAND STRUCTURE 002242 0225 GTOP+1 /HANDLER FOR J COMMAND 002243 3153 JERK, DCA STRIND /SETUP FOR SEARCH 002244 4554 JERK1, JMS I STRFIN /SEARCH FOR STRING 002245 5253 JMP GMOR /GET NEXT BUFFER 002246 6041 TSF 002247 5246 JMP .-1 /JUST TO BE SURE 002250 1075 TAD CZ /RESTORE MONITOR EXIT 002251 3555 DCA I TE1 002252 5555 JMP I TE1 /*POSSIBLE RETURN TO COMMAND MODE* /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 47 /GET NEXT BUFFER FOR S SEARCH 002253 1674 GMOR, TAD I CNTRI 002254 7650 SNA CLA /IS BUFFER EMPTY? 002255 4143 ERROR /NO 002256 2153 ISZ STRIND /YES-BYPASS SETUP 002257 1227 TAD NEXBUF 002260 3566 DCA I COMM5 /SET UP READ OF ONE BUFFER 002261 7001 IAC 002262 3162 DCA ARG0 002263 1133 TAD EKILLL 002264 7640 SZA CLA /IS THERE AN OUTPUT DEVICE? 002265 5667 JMP I .+2 /NO 002266 5670 JMP I .+2 /YES 002267 1306 YANK /NO OUTPUT 002270 1310 COMBO /THERE IS OUTPUT /HANDLER FOR F COMMAND 002271 2153 BARROW, ISZ STRIND /CONTINUES LOOKING FOR EXISTING STRING 002272 2156 ISZ THSN /INCREMENT FOR NEXT LINE 002273 5244 JMP JERK1 002274 2564 CNTRI, CNTR /HANDLER FOR " 002275 2156 DBLQUO, ISZ THSN /USES STRING NOW IN BUFFER 002276 2153 ISZ STRIND /NO SETUP REQUIRED 002277 5236 JMP AMODE+1 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 48 /ROUTINE TO REASSIGN INPUT HANDLER /AFTER A PANIC DUMP AND RESTART 002300 6213 PIASGN, CDF CIF 10 002301 1725 TAD I PINEOF 002302 7640 SZA CLA /IS THERE A HANDLER TO RESTORE? 002303 5721 JMP I PIRETN /NO - BACK TO FIELD 1 002304 1723 TAD I IHPAGE /YES - 002305 3312 DCA PIHND /GET HANDLER PAGE 002306 1724 TAD I IDVNO 002307 6201 CDF 0 /I/O MONITOR IS IN CORE AT THIS POINT 002310 4424 JMS I C200 /CALL USER SERVICE ROUTINES 002311 0001 1 /*FETCH HANDLER* 002312 0000 PIHND, 0 002313 4542 JMS I PRERR /**DEVICE HANDLER ERROR**4** 002314 0004 4 002315 1312 TAD PIHND 002316 6213 CDF CIF 10 002317 3722 DCA I PIHNDL /PUT NEW HANDLER ADDRESS BACK 002320 5721 JMP I PIRETN /AND RETURN 002321 6665 PIRETN, PANOPN /GO OPEN OUTPUT FILES 002322 7436 PIHNDL, INHNDL 002323 7564 IHPAGE, I1 /I1 CONTAINS "INDEVH+1" 002324 7411 IDVNO, INDEV 002325 7561 PINEOF, INEOF /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 49 /HANDLER FOR # COMMAND 002326 4331 VERSN, JMS PRINT 002327 2344 VERMES 002330 5555 JMP I TE1 /PRINT VERSION MESSAGE AND RESTART 002331 0000 PRINT, 0 002332 1731 TAD I PRINT /GET ADD OF MESS 002333 2331 ISZ PRINT 002334 3170 DCA TEMPO 002335 7410 SKP 002336 4474 JMS I OUTL1 /ON TTY: 002337 1570 TAD I TEMPO /FETCH CHARACTER 002340 2170 ISZ TEMPO 002341 7440 SZA /DONE YET? 002342 5336 JMP .-4 002343 5731 JMP I PRINT /YES 0005 VV1=VERSION%12 0062 VV2=VV1^12 002344 0326 VERMES, "V; "0+VV1; "0+VERSION-VV2; PATCH; 0 002345 0265 002346 0260 002347 0330 002350 0000 IFNDEF GERMAN < 002351 0317 WRTMES, "O; "u; "t; "p; "u; "t; 0 002352 0365 002353 0364 002354 0360 002355 0365 002356 0364 002357 0000 002360 0305 OPNMES, "E; "n; "t; "e; "r; 0 002361 0356 002362 0364 002363 0345 002364 0362 002365 0000 > IFDEF GERMAN < WRTMES, "S; "c; "h; "r; "e; "i; "b; 0 OPNMES, "E; "i; "n; "t; "r; "a; "g; "u; "n; "g; "s; 0 > 2400 PAGE /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 50 /----------------------------------------------------------------------- /----------------------------------------------------------------------- /STRING SEARCH ROUTINE /CALLED BY $(ALTMODE) AND J COMMAND HANDLERS 002400 0000 SFIND1, 0 002401 2114 ISZ ECHOSW 002402 1153 TAD STRIND /IS SETUP NECESSARY 002403 7640 SZA CLA 002404 5240 JMP SFIND2 /NO. 002405 1372 TAD MSCNT 002406 3366 DCA BUFCNT /SET COUNTER 002407 1371 TAD SBUF 002410 3016 DCA AXIN /BEGIN SEARCH BUFFER 002411 1361 TAD ATSIGN 002412 4474 JMS I OUTL1 /OUTPUT $ 002413 2116 ISZ TABIND 002414 4457 RLOOP, JMS I CHI1 /FETCH CHARACTER FROM TTY 002415 4477 JMS I SORTJ /IS IT SPECIAL FOR SEARCH STRING? 002416 2221 SLST-1 /YES-HANDLE IT 002417 0006 OSLST-SLST 002420 2366 ISZ BUFCNT /NO-SEARCH BUFFER FULL? 002421 5225 JMP STORE /NO-STORE THIS CHARACTER 002422 7240 CLA CMA 002423 3366 DCA BUFCNT /YES-DON'T ALLOW ANY MORE 002424 5213 JMP RLOOP-1 /BUT KEEP ECHOING HIS 002425 1110 STORE, TAD CHAR /STORE CHARACTER IN SEARCH BUFFER 002426 3416 DCA I AXIN 002427 5214 JMP RLOOP /HANDLER FOR " 002430 1156 QUO2, TAD THSN /START AT .+1 /HANDLER FOR ' 002431 7001 QUO1, IAC /START AT .=1 002432 3156 DCA THSN 002433 1016 TAD AXIN 002434 7041 CIA /MAKE UP COUNT OF NO. CHARS NOW IN 002435 1371 TAD SBUF /SEARCH BUFFER 002436 3364 DCA CNTR 002437 3416 DCA I AXIN /END STRING WITH A 0 002440 1364 SFIND2, TAD CNTR 002441 7650 SNA CLA /IS BUFFER EMPTY? 002442 5335 JMP ER1 /YES-PREPARE TO EXIT 002443 4350 JMS NUCHAR /NO GET FIRST STRING CHARACTER 002444 1156 TAD THSN 002445 4466 JMS I FIN1 /GET APPROPRIATE POINTER 002446 3120 DCA THIS /THE TRICK IS TO GET THE NEXT 002447 3370 DCA CHFND 002450 6211 CDF 10 /POINTER SO THAT WE NEVER HAVE TO GO 002451 1520 TAD I THIS /BACK TO THE FIND ROUTINE /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 51 002452 3363 COMBAK, DCA TMP2 002453 1763 TAD I TMP2 002454 3367 DCA NEXTPT 002455 6201 CDF 0 002456 1156 TAD THSN 002457 7041 CIA 002460 1157 TAD LSTN 002461 7710 SPA CLA /LAST LINE? 002462 5335 JMP ER1 /YES-FINISHED WITH BUFFER 002463 1363 TAD TMP2 /NO 002464 3013 DCA AXOUT /SET TO UNPACK CHARACTERS 002465 7040 CMA 002466 3112 DCA XCT 002467 4465 UPK1, JMS I UTR1 /UNPACK A CHARACTER 002470 3363 DCA TMP2 002471 1363 TAD TMP2 002472 1021 TAD MCR 002473 7640 SZA CLA /END OF LINE? 002474 5303 JMP NOCR /NO 002475 2156 ISZ THSN /YES-INCREMENT LINE COUNTER 002476 4350 JMS NUCHAR /FORGET PREVIOUS MATCHES ON NEW LINE 002477 3370 DCA CHFND 002500 6211 CDF 10 002501 1367 TAD NEXTPT /AND GET NEXT LINE 002502 5252 JMP COMBAK 002503 1363 NOCR, TAD TMP2 /CHARACTER OTHER THAN CARRIAGE RETURN 002504 1362 TAD TMP1 /GET A CHARACTER FROM SEARCH BUFFER 002505 7640 SZA CLA /DO THEY MATCH 002506 5314 JMP UPK /NO 002507 2370 ISZ CHFND /YES-BUMP A RANDOM POINTER 002510 7240 CLA CMA 002511 3365 DCA FMATCH /SIGNIFY FIRST MATCH 002512 4344 JMS NUCHA /GET NEXT SEARCH CHARACTERR 002513 5267 JMP UPK1 /AND ANOTHER BUFFER CHARACTER 002514 2365 UPK, ISZ FMATCH /WAS THIS FIRST MATCH? 002515 5326 JMP NOTSO /NO-NO PROBLEM 002516 1112 TAD XCT /YES-DON'T LET THE POINTERS BE 002517 7710 SPA CLA /BE CHANGED 002520 5325 JMP WREK 002521 7040 CMA 002522 1013 TAD AXOUT 002523 3013 DCA AXOUT 002524 7040 CMA 002525 3112 WREK, DCA XCT 002526 4350 NOTSO, JMS NUCHAR /GET FIRST CHARACTER OF SEARCH STRING 002527 3370 DCA CHFND 002530 5267 JMP UPK1 /TRY AGAIN /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 52 002531 1370 STFIN, TAD CHFND /END OF STRING-DO COUNTS MATCH? 002532 1364 TAD CNTR 002533 7650 SNA CLA 002534 5342 JMP GOOD /YES-SEARCH SUCCESSFUL 002535 1157 ER1, TAD LSTN /IF BUFFER EMPTY, SET .=0 002536 7640 SZA CLA 002537 7001 IAC 002540 3156 DCA THSN 002541 7410 SKP /CAUSE ERROR RETURN (?) 002542 2200 GOOD, ISZ SFIND1 /INCREMENT RETURN 002543 5600 JMP I SFIND1 /--RETURN-- /GET NEXT SEARCH CHARACTER 002544 0000 NUCHA, 0 002545 1344 TAD .-1 /SET TO RETURN FROM NUCHAR 002546 3350 DCA NUCHAR 002547 5353 JMP NEXX /GET FIRST CHARACTER OF SEARCH STRING 002550 0000 NUCHAR, 0 002551 1371 TAD SBUF 002552 3016 DCA AXIN 002553 1416 NEXX, TAD I AXIN 002554 7450 SNA /END OF STRING? 002555 5331 JMP STFIN /YES 002556 7041 CIA /NO - NEGATE SEARCH CHARACTER 002557 3362 DCA TMP1 /AND STORE IT 002560 5750 JMP I NUCHAR /--RETURN-- 2175 ENDA=SRCBUF-1 002561 0244 ATSIGN, 244 002562 0000 TMP1, 0 002563 0000 TMP2, 0 002564 0000 CNTR, 0 002565 0000 FMATCH, 0 002566 0000 BUFCNT, 0 002567 0000 NEXTPT, 0 002570 0001 CHFND, 1 /MUST BE NONZERO INITIALLY 002571 2175 SBUF, ENDA 002572 7754 MSCNT, -24 /HANDLER FOR RUBOUT IN SEARCH STRING 002573 1034 FORGET, TAD CCR 002574 4473 JMS I OUT1 /OUTPUT CARRIAGE RETURN 002575 5201 JMP SFIND1+1 2600 PAGE /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 53 /----------------------------------------------------------------------- /----------------------------------------------------------------------- 0111 THISX=COUNTP 0143 THISX2=DTEM /GARBAGE COLLECTION ROUTINE /ENTER WITH NUMBER OF LINE TO BE DELETED /IN AC 002600 0000 GARBAG, 0 002601 3267 DCA LINPTR /SAVE OBJECT LINE ADDRESS 002602 1267 TAD LINPTR 002603 3014 DCA AXCOMB /SCAN LINE LOOKING FOR 7715 OR 1500 (CR) 002604 7001 IAC /CNT HOLDS 002605 3112 DCA CNT /TOTAL # LOCS IN THIS LINE 002606 6211 CDF 10 002607 2112 COLECT, ISZ CNT 002610 1414 TAD I AXCOMB /GET A WORD 002611 1270 TAD K63 002612 7450 SNA /IS IT 7715? 002613 5217 JMP FINONE /YES-END OF LINE 002614 1320 TAD K6215 002615 7640 SZA CLA /NO-IS IT 1500? 002616 5207 JMP COLECT /NO-TRY NEXT WORD 002617 1112 FINONE, TAD CNT /YES MINUS CNT GIVES AMOUNT 002620 7041 CIA /TO REDUCE CERTAIN POINTERS 002621 3315 DCA RELCNT 002622 6201 CDF 0 002623 7001 IAC /GO THROUGH LIST OF POINTERS 002624 4466 JMS I FIN1 /& OFFSET POINTERS WHICH WILL BE MOVED 002625 6211 CDF 10 /MOVED ALONG WITH TEXT 002626 3111 GBG2, DCA THISX /SAVE POINTER 002627 1511 TAD I THISX /GET ADDRESS OF THIS LINE 002630 7450 SNA /DONE WITH STRING? 002631 5236 JMP GBGEND /YES 002632 4271 JMS CGEPTR /DECREASE POINTER IF NECESSARY 002633 3511 DCA I THISX /STORE NEW POINTER 002634 1143 TAD THISX2 002635 5226 JMP GBG2 /DO NEXT LINE /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 54 002636 6201 GBGEND, CDF 0 /ALL POINTERS ARE REDUCED. NOW, 002637 7120 CLL CML 002640 1125 TAD BUFR /PHYSICALLY MOVE CORE TO 002641 7041 CIA /CORRESPOND WITH POINTERS 002642 1014 TAD AXCOMB /AXCOMB POINTS TO FIRST LOC. TO GO 002643 7520 SMA SNL /POINTERS O.K.? 002644 4143 ERROR /NO 002645 3112 DCA XCT /YES-SET UP OTHER POINTERS 002646 6211 CDF 10 002647 7040 CMA 002650 1267 TAD LINPTR 002651 3013 DCA AXOUT 002652 1414 TAD I AXCOMB /MOVE TEXT 002653 3413 DCA I AXOUT 002654 2112 ISZ XCT /ALL TEXT MOVED? 002655 5252 JMP .-3 /NO-CONTINUE MOVING 002656 6201 CDF 0 /YES 002657 1013 TAD AXOUT 002660 3125 DCA BUFR /RESET TOP OF BUFFER 002661 1125 TAD BUFR /REDUCE AXIN FOR CHARACTER SEARCH 002662 3016 DCA AXIN 002663 1120 TAD THIS /NOW DECREASE THIS IF IT IS NECESSARY 002664 4271 JMS CGEPTR 002665 3120 DCA THIS 002666 5600 JMP I GARBAG /--RETURN-- 002667 0000 LINPTR, 0 002670 0063 K63, 63 002671 0000 CGEPTR, 0 /THIS ROUTINE DETERMINES IF THE 002672 3143 DCA THISX2 /OF THE AC MUST BE DECREASED BY RELCNT. 002673 7100 CLL /IF THISX2 IS GREATER THAN LINPTR 002674 1143 TAD THISX2 /DECREASE THISX2 BY RELCNT. 002675 7041 CIA 002676 1267 TAD LINPTR /THIS EFFECTIVELY DECREASE ALL POINTERS 002677 7620 SNL CLA /WHICH HAVE TO BE RELOCATED 002700 1315 TAD RELCNT 002701 1143 TAD THISX2 002702 5671 JMP I CGEPTR /HANDLER FOR V COMMAND 002703 1377 VIEW, TAD (LPT /SET UP LISTER TO EXIT TO LPT 002704 3121 DCA OUTDEV 002705 2116 ISZ TABIND 002706 4470 JMS I LIS /LIST BUFFER 002707 6254 6254 /SKIP ON MULTI8 002710 1314 TAD XFFCTZ /NORMAL IS FF 002711 1134 TAD P232 /MULTI8 EOF, FF FROM MULTI8 002712 4521 JMS I OUTDEV 002713 5555 JMP I TE1 /*RETURN TO COMMAND MODE* 002714 7762 XFFCTZ, 214-232 002715 0000 RELCNT, 0 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 55 /HANDLER FOR , 002716 1164 FIRS, TAD ARG2 002717 5476 JMP I ONUM 002720 6215 K6215, 6215 /THE FOLLOWING GIVES ERROR MESSAGES FOR I/O RELATED ERRORS /EACH IS A FATAL ERROR AND WILL ALWAYS EXIT THROUGH /7600, SAVING THE TEXT BUFFER. /N IS THE ERROR IDENTIFICATION CODE /N=0=> FAILED IN READING DEVICE /N=1=> FATAL WRITE ERROR /N=2=> FILE CLOSE ERROR /N=3=> FILE OPEN ERROR /N=4=> DEVICE HANDLER ERROR 002721 0000 DEVERR, 0 002722 1721 TAD I DEVERR 002723 6201 CDF 0 002724 1376 TAD (ERRLIS 002725 3334 DCA ERRARG 002726 1734 TAD I ERRARG 002727 3334 DCA ERRARG 002730 6046 TLS 002731 6041 TSF 002732 5331 JMP .-1 002733 4775 JMS I (PRINT /SEND ERROR CODE 002734 0000 ERRARG, 0 /GETS ADDRESS OF MESSAGE 002735 4775 JMS I (PRINT 002736 2745 ERRERR /PRINT "error" 002737 5552 JMP I MONITO /****EXIT TO MONITOR**** 002740 1757 ERRLIS, REDMES /0 002741 2351 WRTMES /1 002742 2757 CLSMES /2 002743 2360 OPNMES /3 002744 1765 DEVMES /4 IFNDEF GERMAN < 002745 0240 ERRERR, 240; "E; "r; "r; "o; "r; 240; "^; "C; 0 002746 0305 002747 0362 002750 0362 002751 0357 002752 0362 002753 0240 002754 0336 002755 0303 002756 0000 002757 0303 CLSMES, "C; "l; "o; "s; "e; 0 002760 0354 002761 0357 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 55-1 002762 0363 002763 0345 002764 0000 > IFDEF GERMAN < ERRERR, "-; "F; "e; "h; "l; "e; "r; 240; "^; "C; 0 CLSMES, "A; "b; "s; "c; "h; "l; "u; "s; "s; 0 > 002775 2331 002776 2740 002777 3144 3000 PAGE /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 56 /----------------------------------------------------------------------- /----------------------------------------------------------------------- /THE CODE AT 3000 IS ONCE ONLY CODE. IT TAKES THE FIELD 1 /PART OF THE CODE WHICH IS INITIALLY IN FIELD 0 AND MOVES /IT UP TO THE PROPER LOCATIONS IN FIELD 1. 3177 XYZTUV=(LPT /IDENTIFIER FOR SET 003000 1376 INIT, TAD (3177 /COLD LOAD STARTS AT 3200 003001 3016 DCA AXIN 003002 1375 TAD (6577 /CODE SHOULD BE IN 6600 OF FIELD 1 003003 3013 DCA AXOUT 003004 1374 TAD (7000 /MOVE 1000 LOCATIONS UP 003005 3226 DCA COUNTA 003006 6201 LOOP, CDF 0 003007 1416 TAD I AXIN /MOVE CODE 003010 6211 CDF 10 003011 3413 DCA I AXOUT 003012 2226 ISZ COUNTA /DONE YET? 003013 5206 JMP LOOP /NO 003014 3016 DCA AXIN /YES-RESET COUNTERS 003015 3013 DCA AXOUT 003016 6201 CDF 0 /PUT A NOP INTO LOC. 203 003017 1374 TAD (NOP 003020 3773 DCA I (START 003021 1053 TAD RST3I /CHANGE START ADDRESS TO SAVE BUFFER 003022 3177 DCA 177 003023 6213 CIF CDF 10 003024 5625 JMP I K6600 /STARTING ADDRESS IS 16600 003025 6600 K6600, 6600 /FIELD 1 STARTING ADDRESS 003026 0000 COUNTA, 0 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 57 /CHARACTER OUTPUT ROUTINE 003027 0000 OUT, 0 003030 3110 DCA CHAR 003031 1114 TAD ECHOSW /IS ECHO SUPPRESSED? 003032 7650 SNA CLA 003033 5627 JMP I OUT /YES--RETURN-- 003034 4477 JMS I SORTJ /NO - IS IT A FORMAT CHARACTER? 003035 0031 LIST4-1 /YES - EXIT TO ITS HANDLER 003036 1205 OUTLIS-LIST4 003037 1110 TAD CHAR /SOME OTHER CONTROL CHAR? 003040 1372 TAD (-240 003041 7710 SPA CLA 003042 4266 JMS TERLIN /IS OUTPUT TO OS/8? 003043 7410 SKP 003044 5251 JMP UPARO /YES OUTPUT ^X FORM IF NOT OS/8 003045 2160 ISZ TCNT /NO - COUNT ONE LETTER 003046 1110 TAD CHAR 003047 4521 OUTX, JMS I OUTDEV /OUTPUT THE CHARACTER 003050 5627 JMP I OUT /--RETURN-- 003051 2160 UPARO, ISZ TCNT 003052 1371 TAD (336 /PRINT ^ 003053 4521 JMS I OUTDEV 003054 1011 TAD C100 /PRINT X 003055 5245 JMP OUTX-2 /ROUTINE TO HANDLE ESCAPE OUTPUT 003056 1457 ESCOUT, TAD I CHI1 /V12 - TAD CHIN 003057 1370 TAD (-CMCHK-1 003060 7650 SNA CLA /COMMAND MODE? 003061 5627 JMP I OUT /YES, DON'T OUTPUT IT NOW 003062 4266 JMS TERLIN /TO TERMINAL OR LPT? 003063 1367 TAD (233-"$ /NO, OUTPUT ESC 003064 1366 TAD ("$ /YES, OUTPUT "$" 003065 5247 JMP OUTX /DO IT 003066 0000 TERLIN, 0 /TEST IF OUTPUT TO FILE 003067 1121 TAD OUTDEV 003070 1365 TAD (-BUFWT 003071 7640 SZA CLA /OUTPUT TO OS/8 DEVICE? 003072 2266 ISZ TERLIN /NO, TO TERMINAL OR LPT 003073 5666 JMP I TERLIN /YES, TO OS8 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 58 /BACKSPACE DECREMENTS TAB COUNTER 003074 7240 BCKSPC, STA 003075 1160 TAD TCNT 003076 3160 DCA TCNT 003077 5246 JMP OUTX-1 /CARRIAGE RETURN HANDLER 003100 1034 OUTCRL, TAD CCR 003101 4521 JMS I OUTDEV /OUTPUT CARRIAGE RETURN 003102 3160 DCA TCNT /CLEAR TAB COUNTER 003103 1047 TAD CLF /OUTPUT LINE FEED 003104 5247 JMP OUTX /TAB HANDLER - TAB/RUBOUT 003105 1033 OUTRT, TAD CTAB 003106 4521 JMS I OUTDEV /OUTPUT TAB 003107 6212 CIF 10 003110 4565 JMS I POTYPE /TEST TYPE OF OUTPUT 003111 7710 SPA CLA /IS IT DIRECTORY DEVICE? 003112 5627 JMP I OUT /YES--RETURN-- 003113 1050 TAD CRO /NO - OUTPUT RUBOUT 003114 5247 JMP OUTX /TAB HANDLER - SPACES 003115 1116 OUTTAB, TAD TABIND 003116 7650 SNA CLA /OUTPUT TAB/RUBOUT INSTEAD? 003117 5305 JMP OUTRT /YES - GO TO OTHER TAB HANDLER 003120 1160 TAD TCNT /NO - 003121 1055 TAD MTABS /REDUCE SPACE COUNT TO 8 OR LESS 003122 7500 SMA 003123 5321 JMP .-2 003124 3160 DCA TCNT 003125 1030 TAD C240 /OUTPUT SPACES 003126 4521 JMS I OUTDEV 003127 2160 ISZ TCNT /DONE YET? 003130 5325 JMP .-3 /NO - CONTINUE 003131 5627 JMP I OUT /YES--RETURN-- /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 59 /TELETYPE CHARACTER FETCH ROUTINE /ENTER WITH AC CLEAR /EXIT WITH CHARACTER IN CHAR AND AC /FORCE CHANNEL 8 /BLANK TAPE & LEADER TRAILER IGNORED 003132 0000 CHIN, 0 003133 3110 DCA CHAR /CLEAR CHARACTER 003134 4462 JMS I KEYBD 003135 0020 AND P177 /MASK PARITY 003136 7450 SNA /IGNORE BLANK AND L/T 003137 5333 JMP CHIN+1 003140 1024 TAD C200 /RESTORE CHARACTER 003141 4473 JMS I OUT1 /ECHO INPUT 003142 1110 TAD CHAR 003143 5732 JMP I CHIN /--RETURN-- /LPT MUST! BE ON THIS PAGE FOR SET(ADDRESS OF LPT IN 3177) 003144 0000 LPT, 0 /*WM* NEW LPT ROUTINE FOR SETS 003145 7040 CMA /NOP OR CMA 003146 6574 6574 /OR OTHER PRINTING IOT 003147 6577 6577 /STROBE FOR PRINTRONIX 003150 7200 CLA 003151 6570 6570 /OR OTHER SKIP IOT 003152 5351 JMP .-1 003153 4764 JMS I (COPSQ /CHECK KEYBOARD 003154 5744 JMP I LPT /MORE STUFF MAY BE INSERTED HERE /LITERALS 003164 1657 003165 5716 003166 0244 003167 7767 003170 7545 003171 0336 003172 7540 003173 0203 003174 7000 003175 6577 003176 3177 003177 3144 3200 PAGE /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 60 3200 *3200 /******************************************************************** /CODE MOVED TO 16600-16762 NOPUNC 6600 *6600 ENPUNC /OURECS=4 /SETUP FOR USING GENERAL INPUT, OUTPUT ROUTINES 4200 INBUF=4200 /INPUT BUFFER AT 04200 0600 INCTL=0600 /INPUT CONTROL - 6 PAGES 0003 INRECS=3 /3 RECORDS INTO FIELD 0 3200 INDEVH=3200 /INPUT HANDLER AT 03200 5600 OUBUF=5600 /OUTPUT BUFFER AT 05600 5000 OUCTL=5000 /OUTPUT CONTROL - 8 PAGES 3600 OUDEVH=3600 /OUTPUT HANDLER AT 03600 7643 MPARAM=7643 /OPTION SWITCHES 006600 4757 JMS I L7700 /CALL USER SERVICE ROUTINES 006601 0010 10 /*LOCK USR IN CORE* 006602 6201 CDF 0 /V3 006603 2764 ISZ I PTEMP /V3 WERE WE CHAINED TO? 006604 5211 JMP CHN /V3 YES 006605 6211 CDF 10 /V3 NO 006606 4744 START1, JMS I L200 /CALL USER SERVICE ROUTINES 006607 0005 5 /*COMMAND DECODER* 006610 0000 0 006611 6211 CHN, CDF 10 006612 1363 TAD K7620 /RESET OUTDMP 006613 3762 DCA I THOLE 006614 1631 TAD I P7600A /OUTPUT LIST 006615 0355 AND C17 006616 7640 SZCL, SZA CLA /IS THERE AN OUTPUT DEVICE? 006617 5223 JMP NXTOP /YES 006620 6201 CDF 0 /NO-DISALLOW E COMMAND 006621 2752 ISZ I EKILSW 006622 6211 CDF 10 006623 1756 NXTOP, TAD I PARAM 006624 7004 RAL /B BIT TO BIT 0 006625 3247 DCA DVHAND /SAVE PARAM. SWITCH 006626 1247 TAD DVHAND 006627 7700 SMA CLA /WAS /B OPTION SPECIFIED? 006630 5236 JMP NEWOP /NO 006631 7600 P7600A, 7600 /YES- 006632 1216 TAD SZCL /SET UP TO CONVERT SPACES TO TABS 006633 6201 CDF 0 006634 3747 DCA I SPCP1 006635 6211 CDF 10 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 61 006636 1247 NEWOP, TAD DVHAND 006637 7006 RTL 006640 7700 SMA CLA /WAS /D OPTION SPECIFIED? 006641 5260 JMP FILOP /NO 006642 1754 TAD I OHANDL /YES-HANDLER BROUGHT IN FOR D OPTION 006643 3247 DCA DVHAND 006644 1631 TAD I P7600A /DEVICE NUMBER 006645 4744 JMS I L200 /CALL USER SERVICE ROUTINES 006646 0001 1 /*ASSIGN* 006647 0000 DVHAND, 0 006650 4332 JMS HGHERR /**DEVICE HANDLER ERROR**4** 006651 0004 4 006652 1631 TAD I P7600A /GET DEVICE NUMBER 006653 4744 JMS I L200 /CALL USER SERVICE ROUTINES 006654 0004 4 /*CLOSE* 006655 7601 7601 006656 0000 0 006657 0157 JLSTN, LSTN /PAGE ZERO. 'AND' SOME ADDRESS 006660 1346 FILOP, TAD PANIC /PANIC CASE? 006661 7450 SNA 006662 4750 JMS I IOPENI /SET BUFFER POINTERS OR RESTORE HANDLER 006663 7640 SZA CLA /YES- 006664 5327 JMP GINDVH /RESTORE INPUT DEVICE HANDLER IN PANIC MODE 006665 4751 PANOPN, JMS I OOPENI /OPEN OUTPUT FILES 006666 7700 SMA CLA /ERROR RETURN 006667 7410 SKP /NORMAL RETURN 006670 4332 JMS HGHERR /**FILE OPEN ERROR**3** 006671 0003 3 006672 1346 TAD PANIC /PANIC CASE? 006673 7650 SNA CLA 006674 5305 JMP NOPAN /NO 006675 1631 TAD I P7600A /YES IF NO OUTPUT,DON'T ALLOW HIM 006676 7650 SNA CLA /TO DESTROY HIS TEXT 006677 5206 JMP START1 006700 1360 TAD K5000 /SET TO WRITE BUFFER 006701 4753 JMS I ODMP /DUMP IT 006702 4332 JMS HGHERR /**FATAL WRITE ERROR**1** 006703 0001 1 006704 7201 CLA IAC /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 62 006705 3247 NOPAN, DCA DVHAND 006706 3346 DCA PANIC /CLEAR PANIC SWITCH 006707 4744 JMS I L200 /CALL USER SERVICE ROUTINES 006710 0011 11 /*DISMISS USR FROM CORE* 006711 4761 JMS I OUSTPI /RE-INITIALIZE OUTPUT POINTERS 006712 7201 CLA IAC 006713 4743 JMS I SETJSI 006714 6201 CDF 0 /IF LSTN#0, CLEAR FRST 006715 1657 TAD I JLSTN /BUT IN FIELD 1 006716 7650 SNA CLA 006717 3174 DCA FRST 006720 6203 CIF CDF 0 006721 1247 TAD DVHAND 006722 7650 SNA CLA /PANIC MODE? 006723 5745 JMP I STRTUP /NO-START THE EDITOR 006724 6046 TLS 006725 5726 JMP I .+1 /YES - RESUME OUTPUT 006726 2151 BUFRET 006727 6203 GINDVH, CDF CIF 0 006730 5731 JMP I .+1 006731 2300 PIASGN 006732 0000 HGHERR, 0 006733 1732 TAD I HGHERR 006734 3341 DCA HGHARG 006735 4744 JMS I L200 /CALL USER SERVICE ROUTINES 006736 0011 11 /*DISMISS USR FROM CORE* 006737 6202 CIF 0 006740 4742 JMS I LOWERR /CALL FIELD 0 ERROR ROUTINE 006741 0000 HGHARG, 0 006742 2721 LOWERR, DEVERR /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 63 006743 7144 SETJSI, SETJSB 006744 0200 L200, 200 006745 0203 STRTUP, START 006746 0000 PANIC, 0 006747 1523 SPCP1, SPACES+1 006750 7401 IOPENI, IOPEN 006751 7201 OOPENI, OOPEN 006752 0133 EKILSW, EKILLL 006753 7251 ODMP, OUTDMP 006754 7362 OHANDL, O1 006755 0017 C17, 17 006756 7643 PARAM, MPARAM 006757 7700 L7700, 7700 006760 5000 K5000, 5000 /OUTPUT BUFF CONTROL WORD 006761 7001 OUSTPI, OUSETP 006762 7261 THOLE, TSTHOL 006763 7620 K7620, 7620 006764 0117 PTEMP, TEMP /*********************************************************************** /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 64 3400 *3400 /*********************************************************************** /CODE MOVED TO 17000-17173 NOPUNC 7000 *7000 ENPUNC 007000 0232 232 /THIS PAGE IS ^Z BUFFER /SET UP ROUTINE FOR OUTPUT /INITIALIZES CHARACTERS POINTERS 007001 0000 OUSETP, 0 007002 1774 TAD I PANICJ /IS IT PANIC DUMP TIME? 007003 7640 SZA CLA /IF YES, DONT RESET POINTERS 007004 5601 JMP I OUSETP /--RETURN-- 007005 1360 TAD C1 /GET SIZE OF BUFFER IN DOUBLEWORDS 007006 7041 CIA /NEGATE IT 007007 3306 DCA OUDWCT 007010 1361 TAD C2 007011 3304 DCA OUPTR /INITIALIZE WORD POINTER 007012 1305 TAD OUJMPE 007013 3240 DCA OUJMP /INITIALIZE THREE-WAY CHARACTER SWITCH 007014 5601 JMP I OUSETP /--RETURN-- /OUTPUT A CHARACTER /ENTER WITH CHARACTER IN 8-BIT ASCII /IN AC 007015 0000 OCHAR, 0 007016 0362 AND C377 /MASK OUT EXTRA BITS 007017 3302 DCA OUTEMP 007020 1363 TAD PAR200 /MASK PARITY 007021 6034 KRS 007022 1364 TAD M203 007023 7650 SNA CLA 007024 6031 KSF 007025 5230 JMP .+3 007026 6203 CIF CDF 0 007027 5770 JMP I C7600 007030 6214 RDF /NO- 007031 1365 TAD CDIF0 007032 3300 DCA OUCRET 007033 1307 TAD OUTINH /IS OUTPUT INHIBITED? 007034 7640 SZA CLA 007035 5324 JMP PSTOP /NO 007036 6201 CDF OUFLD /YES-SET DATA FIELD TO BUFFER'S FIELD 007037 2240 ISZ OUJMP /BUMP THE CHARACTER SWITCH 007040 7402 OUJMP, HLT /3 WAY CHARACTER SWITCH 007041 5275 JMP OCHAR1 007042 5272 JMP OCHAR2 007043 1302 OCHAR3, TAD OUTEMP 007044 7106 CLL RTL 007045 7006 RTL 007046 0366 AND K7400 007047 1703 TAD I OUPOLD /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 64-1 007050 3703 DCA I OUPOLD /UPDATE FIRST WORD OF TWO WITH HIGH /ORDER 4 BITS OF 3RD CHAR /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 65 007051 1302 TAD OUTEMP 007052 7112 CLL RTR 007053 7012 RTR 007054 7010 RAR 007055 0366 AND K7400 007056 1704 TAD I OUPTR 007057 3704 DCA I OUPTR /UPDATE SECOND WORD FROM LOW ORDER 4 BITS 007060 1305 TAD OUJMPE 007061 3240 DCA OUJMP /RESET SWITCH 007062 2304 ISZ OUPTR 007063 2306 ISZ OUDWCT /BUMP DOUBLEWORD COUNTER EVERY 3 CHARS 007064 5277 JMP OUCOMN 007065 1367 TAD OUCT /LOAD CONTROL WORD FOR A FULL WRITE 007066 4773 JMS I DMPO /DUMP THE BUFFER 007067 5300 JMP OUCRET /OUTPUT ERROR - GIVE ERROR RETURN 007070 4201 JMS OUSETP /RE-INITIALIZE THE POINTERS 007071 5277 JMP OUCOMN 007072 1304 OCHAR2, TAD OUPTR 007073 3303 DCA OUPOLD /SAVE POINTER TO FIRST WORD OF TWO 007074 2304 ISZ OUPTR /BUMP WORD POINTER TO SECOND WORD 007075 1302 OCHAR1, TAD OUTEMP 007076 3704 DCA I OUPTR 007077 2215 OUCOMN, ISZ OCHAR 007100 7402 OUCRET, HLT /RESTORE CALLING FIELDS 007101 5615 JMP I OCHAR /--RETURN-- 007102 0000 OUTEMP, 0 007103 0000 OUPOLD, 0 007104 0000 OUPTR, 0 007105 5240 OUJMPE, JMP OUJMP 007106 0000 OUDWCT, 0 007107 0000 OUTINH, 0 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 66 /FETCH OUTPUT DEVICE CONTROL WORD 007110 0000 OTYPE, 0 007111 6214 RDF 007112 1365 TAD CDIF0 007113 3322 DCA OTRTN 007114 6211 CDF 10 007115 1770 TAD I C7600 /FETCH OUTPUT DEVICE NUMBER 007116 0371 AND P17 007117 1372 TAD DCBM1 /+DCB-1 007120 3302 DCA OUTEMP /FETCH DEVICE CONTROL WORD 007121 1702 TAD I OUTEMP 007122 7402 OTRTN, HLT /RESTORE CALLING FIELDS 007123 5710 JMP I OTYPE /--RETURN-- 007124 6202 PSTOP, CIF 0 /PRINTS ? WHEN NO OUTPUT DEV 007125 4143 ERROR 007126 0000 INSET, 0 007127 3310 DCA OTYPE /SAVE AC 007130 6214 RDF 007131 1365 TAD CDIF0 007132 3342 DCA INSTRT /SET RETURN FIELDS 007133 6201 CDF 0 007134 1757 TAD I PLASTN 007135 6211 CDF 10 007136 7650 SNA CLA /IS THERE ANYTHING IN BUFFER? 007137 7001 IAC /NO-NO NEED TO SAVE USR AREA 007140 4344 JMS SETJSB /YES- 007141 1310 TAD OTYPE /RESTORE AC 007142 6203 INSTRT, CIF CDF 0 /RESTORE CALLING FIELDS 007143 5726 JMP I INSET /--RETURN-- /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 67 /SET JOB STATUS BIT 11 TO SAVE OR NOT SAVE /ENTER WITH AC=0 OR 1, DEPENDING ON BUFFER 007144 0000 SETJSB, 0 007145 3355 DCA JSBTM /SAVE AC 007146 6201 CDF 0 007147 7344 CLA CLL CMA RAL 007150 0756 AND I PJSBTS /CLEAR BIT 11 OF JSW 007151 1355 TAD JSBTM /SET ACCORDING TO AC 007152 3756 DCA I PJSBTS 007153 6211 CDF 10 007154 5744 JMP I SETJSB /--RETURN-- 007155 0000 JSBTM, 0 007156 7746 PJSBTS, 7746 007157 0157 PLASTN, LSTN 7760 DCB=7760 007160 1000 C1, OUCTL&3700 007161 5600 C2, OUBUF 007162 0377 C377, 377 007163 0200 PAR200, 200 007164 7575 M203, -203 007165 6203 CDIF0, CDF CIF 0 007166 7400 K7400, 7400 007167 5000 OUCT, OUCTL 007170 7600 C7600, 7600 007171 0017 P17, 17 007172 7757 DCBM1, DCB-1 007173 7251 DMPO, OUTDMP 007174 6746 PANICJ, PANIC /*********************************************************************** /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 68 3600 *3600 /*********************************************************************** /CODE MOVED TO 17200-17376 NOPUNC 7200 *7200 ENPUNC /OPEN OUTPUT FILE 007200 0017 O17, 17 007201 0000 OOPEN, 0 007202 7600 OU7600, 7600 007203 1343 TAD OU7601 007204 3223 DCA OUBLK 007205 1362 TAD O1 007206 3215 DCA OUHNDL /SET OUTPUT HANDLER ENTRY 007207 6211 CDF 10 007210 1602 TAD I OU7600 /GET DEVICE NUMBER WORD OF OUTPUT FILE ENTRY 007211 7450 SNA /IS THERE AN OUTPUT DEVICE? 007212 5247 JMP ONOFIL /NO - INHIBIT OUTPUT 007213 4642 JMS I O200 /CALL USER SERVICE ROUTINES 007214 0001 1 /*ASSIGN,FETCH HANDLER* 007215 2600 OUHNDL, 2600 /OUTPUT DEVICE HANDLER ENTRY 007216 4777 JMS I SERRA /**DEVICE HANDLER ERROR**4** 007217 0004 4 007220 1602 OUENTR, TAD I OU7600 007221 4642 JMS I O200 /CALL USER SERVICE ROUTINES 007222 0003 3 /*ENTER OUTPUT FILE* 007223 7601 OUBLK, 7601 /REPLACED WITH STARTING BLOCK 007224 0000 OUELEN, 0 /REPLACED WITH LENGTH OF HOLE 007225 5235 JMP OEFAIL /FAILED - MAYBE WE ASKED TOO MUCH 007226 3344 DCA OUCCNT 007227 3764 DCA I O2 /ZERO OUTPUT INHIBIT FLAG 007230 1223 TAD OUBLK 007231 3270 DCA OUREC /INITIALIZE OUTPUT RECORD NUMBER 007232 4765 JMS I O3 007233 2201 ISZ OOPEN 007234 5601 OORETN, JMP I OOPEN 007235 1602 OEFAIL, TAD I OU7600 007236 0366 AND O7760 /GET REQUESTED LENGTH 007237 7650 SNA CLA /WAS IT AN INDEFINITE REQUEST 007240 5245 JMP ONTERR /YES - CANNOT ENTER THE FILE 007241 1602 TAD I OU7600 007242 0200 O200, AND O17 /MAKE THE REQUESTED LENGTH ZERO 007243 3602 DCA I OU7600 007244 5220 JMP OUENTR /TRY, TRY AGAIN 007245 7330 ONTERR, CLA CLL CML RAR /AC=2 007246 5234 JMP OORETN /TAKE THE ERROR RETURN WITH AC<0 007247 2764 ONOFIL, ISZ I O2 007250 5234 JMP OORETN /TAKE THE ERROR RETURN WITH AC=0 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 69 007251 0000 OUTDMP, 0 007252 3266 DCA OUCTLW /STORE THE CONTROL WORD 007253 4352 JMS OUNREC /COMPUTE NO. OF RECORDS 007254 1344 TAD OUCCNT 007255 3344 DCA OUCCNT 007256 1344 TAD OUCCNT 007257 7120 CLL CML 007260 1224 TAD OUELEN 007261 7620 TSTHOL, SNL CLA /IF ZERO OR POSITIVE,GIVE ERROR 007262 5276 JMP OUERR 007263 6203 CDF CIF 0 007264 6211 CDF 10 007265 4615 JMS I OUHNDL /CALL OUTPUT DEVICE HANDLER 007266 0000 OUCTLW, 0 /CONTROL WORD 007267 5600 OUBUF /BUFFER ADDRESS 007270 0000 OUREC, 0 /RECORD NUMBER 007271 5276 JMP OUERR /THERE ARE NO SOFT OUTPUT HANDLER ERRORS 007272 4352 JMS OUNREC 007273 1270 TAD OUREC 007274 3270 DCA OUREC /UPDATE OUTPUT RECORD NUMBER 007275 2251 ISZ OUTDMP /BUMP OUTDMP TO NORMAL RETURN 007276 5651 OUERR, JMP I OUTDMP /--RETURN-- /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 70 /CLOSE OUTPUT FILE 007277 0000 OCLOSE, 0 007300 1361 TAD K7660 /SET UP SNL SZA CLA FOR CLOSE 007301 3261 DCA TSTHOL 007302 6211 CDF 10 007303 1751 TAD I PANICC 007304 7640 SZA CLA 007305 5336 JMP NODUMP 007306 1764 TAD I O2 007307 7640 SZA CLA /IS OUTPUT INHIBITED? 007310 5346 JMP OCISZ /YES - CLOSE IS A NOP 007311 1367 TAD O232 /OUTPUT A ^Z 007312 4770 JMS I O4 007313 5347 JMP OCRET /AND SOME 0'S 007314 4770 JMS I O4 007315 5347 JMP OCRET 007316 4770 FILLLP, JMS I O4 007317 5347 JMP OCRET 007320 4771 JMS I O5 /GET TYPE OF OUTPUT DEVICE 007321 7710 SPA CLA 007322 1372 TAD O100 /IF ITS A DIRECTORY DEVICE FORCE A RECORD 007323 1373 TAD O77 /BOUNDARY-OTHERWISE HALF RECORD 007324 0774 AND I O6 007325 7640 SZA CLA /UP TO THE BOUNDARY YET? 007326 5316 JMP FILLLP /NO - FILL WITH ZEROS 007327 1774 TAD I O6 /GET DOUBLEWORD COUNT LEFT 007330 1375 TAD O7 007331 7450 SNA /A FULL WRITE LEFT? 007332 5336 JMP NODUMP /YES - DON'T DO IT - ^Z IS ALREADY OUT 007333 1376 TAD O8 /PUT IN FIELD BITS AND WRITE BIT 007334 4251 JMS OUTDMP 007335 5347 JMP OCRET /ERROR OCCURRED WHILE DUMPING THE BUFFER 007336 4763 NODUMP, JMS I O7700 /CALL USER SERVICE ROUTINES 007337 0010 10 /*LOCK USR IN CORE* 007340 1602 TAD I OU7600 /DEVICE NUMBER 007341 4642 JMS I O200 /CALL USER SERVICE ROUTINES 007342 0004 4 /*CLOSE OUTPUT FILE* 007343 7601 OU7601, 7601 /POINTER TO THE OUTPUT FILE NAME 007344 0000 OUCCNT, 0 007345 7410 SKP /ERROR WHILE CLOSING THE FILE 007346 2277 OCISZ, ISZ OCLOSE 007347 6203 OCRET, CIF CDF 0 /RESTORE CALLING FIELDS 007350 5677 JMP I OCLOSE /--RETURN-- 007351 6746 PANICC, PANIC /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 71 /CONVERT OUTPUT CONTROL WORD /TO NUMBER OF RECORDS 007352 0000 OUNREC, 0 007353 1266 TAD OUCTLW 007354 7106 CLL RTL 007355 7006 RTL 007356 7006 RTL 007357 0200 AND O17 007360 5752 JMP I OUNREC /--RETURN-- 007361 7660 K7660, SNL SZA CLA 007362 3601 O1, OUDEVH+1 007363 7700 O7700, 7700 007364 7107 O2, OUTINH 007365 7001 O3, OUSETP 007366 7760 O7760, 7760 007367 0232 O232, 232 007370 7015 O4, OCHAR 007371 7110 O5, OTYPE 007372 0100 O100, 100 007373 0077 O77, 77 007374 7106 O6, OUDWCT 007375 1000 O7, OUCTL&3700 007376 4000 O8, 4000+OUFLD 007377 6732 SERRA, HGHERR /*********************************************************************** /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 72 0000 INFLD=INCTL&70 /FIELD OF INPUT BUFFER 0000 OUFLD=OUCTL&70 /FIELD OF OUTPUT BUFFER /*********************************************************************** /CODE MOVED TO 17400 -17574 4000 *4000 NOPUNC 7400 *7400 ENPUNC /PREPARE TO OPEN NEW INPUT FILE 007400 7400 IN7400, 7400 007401 0000 IOPEN, 0 007402 7240 CLA CMA 007403 3357 DCA INCHCT /SET INCHCT TO FORCE A READ 007404 2361 ISZ INEOF /SET END-OF-FILE FLAG TO FORCE A NEW FILE 007405 1363 TAD I7617 007406 3360 DCA INFPTR /RESET FILE POINTER 007407 5601 JMP I IOPEN /--RETURN-- 007410 0000 INPTR, 0 007411 0000 INDEV, 0 /INPUT A CHARACTER 007412 0000 ICHAR, 0 007413 7600 IN7600, 7600 007414 6201 INCHAR, CDF INFLD 007415 2324 ISZ INJMP /BUMP THREE-WAY UNPACK SWITCH 007416 2357 ISZ INCHCT 007417 5324 INJMPP, JMP INJMP 007420 1361 TAD INEOF 007421 7650 SNA CLA /DID LAST READ YIELD END-OF-FILE? 007422 5255 JMP INGBUF /NO-DO ANOTHER 007423 6211 INNEWF, CDF 10 007424 1364 TAD I1 007425 3236 DCA INHNDL /INITIALIZE HANDLER ADDRESS 007426 1760 TAD I INFPTR /GET NEXT CD INPUT FILE ENTRY 007427 3211 DCA INDEV /SAVE IT FOR PANIC 007430 1211 TAD INDEV 007431 7450 SNA /ANY MORE? 007432 5323 JMP EOFERR /NO - OUT OF INPUT 007433 4762 JMS I PINSET /YES-SAVE BUFFER IF NECESSARY 007434 4774 JMS I I7700 /CALL USER SERVICE ROUTINE 007435 0001 1 /*ASSIGN, FETCH HANDLER* 007436 0000 INHNDL, 0 007437 4775 JMS I SERRB /**DEVICE HANDLER ERROR**+** 007440 0004 4 007441 1760 TAD I INFPTR 007442 0365 AND I7760 /GET LENGTH PART OF WORD 007443 7440 SZA /LENGTH OF 0 MEANS LENGTH >=256 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 73 007444 1366 TAD I17 /ADD HIGH ORDER BITS 007445 7132 CLL CML RTR 007446 7012 RTR 007447 3201 DCA INCTR /STORE LENGTH OF FILE 007450 2360 ISZ INFPTR 007451 1760 TAD I INFPTR 007452 3276 DCA INREC /STORE STARTING RECORD NUMBER OF FILE 007453 2360 ISZ INFPTR 007454 3361 DCA INEOF /ZERO END-OF-FILE FLAG 007455 1201 INGBUF, TAD INCTR 007456 7100 CLL 007457 1367 TAD I2 007460 7420 SNL 007461 3201 DCA INCTR /RESTORE INCTR IF IT HASN'T OVERFLOWED 007462 7430 SZL /IS THIS THE LAST READ? 007463 2361 ISZ INEOF /YES - SET END-OF-FILE FLAG 007464 7172 CLL CML CMA RTR /CONSTRUCT A CONTROL WORD FOR THE READ 007465 7012 RTR /FROM THE AMOUNT OF THE OVERFLOW 007466 7012 RTR /(IF ANY) AND THE STANDARD CONTROL WORD 007467 1370 TAD I3 007470 3274 DCA INCTLW 007471 6203 CDF CIF 0 007472 6211 CDF 10 007473 4636 JMS I INHNDL /CALL INPUT DEVICE HANDLER 007474 0000 INCTLW, 0 /CONTROL WORD 007475 4200 INBUFP, INBUF /INPUT BUFFER 007476 0000 INREC, 0 /NUMBER OF RECORDS 007477 5317 JMP INERRX /SOME KIND OF HANDLER ERROR 007500 1276 INBREC, TAD INREC 007501 1367 TAD I2 007502 3276 DCA INREC /UPDATE THE RECORD NUMBER 007503 1274 TAD INCTLW 007504 0213 AND IN7600 007505 7104 CLL RAL 007506 1274 TAD INCTLW 007507 0213 AND IN7600 007510 7040 CMA 007511 3357 DCA INCHCT /COMPUTE THE NEW CHARACTER COUNT 007512 1217 TAD INJMPP 007513 3324 DCA INJMP /RESET THE CHARACTER SWITCH 007514 1275 TAD INBUFP 007515 3210 DCA INPTR /AND THE WORD POINTER 007516 5214 JMP INCHAR /GO BACK AND MAKE BELIEVE THIS NEVER HAPPENED 007517 2361 INERRX, ISZ INEOF /EITHER AN END-OF-FILE OR A ERROR 007520 7700 SMA CLA /WHICH TYPE WAS IT? 007521 5300 JMP INBREC /END OF FILE - RESUME PROCESSING 007522 7330 INERR, CLA CLL CML RAR /BAD - GIVE ERROR RETURN WITH NEGATIVE AC 007523 5355 EOFERR, JMP INRTRN /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 74 007524 7402 INJMP, HLT /3 WAY CHARACTER SWITCH 007525 5346 JMP ICHAR1 007526 5342 JMP ICHAR2 007527 1217 ICHAR3, TAD INJMPP 007530 3324 DCA INJMP 007531 1610 TAD I INPTR 007532 0200 AND IN7400 007533 7112 CLL RTR 007534 7012 RTR /COMBINE THE HIGH-ORDER FOUR BITS OF 007535 1274 TAD INCTLW 007536 7012 RTR /THE TWO WORD TO FORM THE THIRD CHARACTER 007537 7012 RTR 007540 2210 ISZ INPTR 007541 5347 JMP INCOMN 007542 1610 ICHAR2, TAD I INPTR 007543 0200 AND IN7400 007544 3274 DCA INCTLW /SAVE THE HIGH-ORDER BITS FOR THE THIRD CHAR 007545 2210 ISZ INPTR /BUMP THE WORD POINTER 007546 1610 ICHAR1, TAD I INPTR 007547 0371 INCOMN, AND I377 007550 1372 TAD IM232 007551 7450 SNA /IS THE CHARACTER A ^Z? 007552 5223 JMP INNEWF /YES - GET A NEW FILE 007553 1373 TAD I232 /RESTORE THE CHARACTER 007554 2212 ISZ ICHAR /BUMP RETURN TO NORMAL RETURN 007555 6203 INRTRN, CDF CIF 0 /RESTORE CALLING FIELDS 007556 5612 JMP I ICHAR /--RETURN-- 007557 7777 INCHCT, -1 007560 7617 INFPTR, 7617 007561 0001 INEOF, 1 7401 INCTR=IOPEN 007562 7126 PINSET, INSET 007563 7617 I7617, 7617 007564 3201 I1, INDEVH+1 007565 7760 I7760, 7760 007566 0017 I17, 17 007567 0003 I2, INRECS 007570 0601 I3, INCTL+1 007571 0377 I377, 377 007572 7546 IM232, -232 007573 0232 I232, 232 007574 7700 I7700, 7700 007575 6732 SERRB, HGHERR $ /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 75 ADD 0161 CNGE1 0427 DVHAND 6647 GLOM 0240 ADDR 1101 CNT 0112 ECHOSW 0114 GMIN 0227 ADDXYZ 1061 CNTR 2564 EKILLL 0133 GMOR 2253 AMODE 2235 CNTRI 2274 EKILSW 6752 GOOD 2542 AONE 0446 COLECT 2607 ELIM 0144 GRBAGE 0122 AONEI 1475 COMB 1321 END 0061 GTAG2 1377 APP 1231 COMBAK 2452 ENDA 2175 GTEM 0143 APPL 1305 COMBO 1310 ENDFIL 1461 GTOP 0224 APP1 0424 COMBOA 1311 ENDLN 1610 G2 0242 ARG0 0162 COMBOP 1473 ENDLNI 0105 HGHARG 6741 ARG1 0163 COMM5 0166 EOFERR 7523 HGHERR 6732 ARG2 0164 COM1 1330 EOL 0411 ICHAR 7412 ATSIGN 2561 COM5 1336 ERRARG 2734 ICHARI 2060 AXCOMB 0014 CON 1167 ERRD 2044 ICHAR1 7546 AXIN 0016 COPSQ 1657 ERRERR 2745 ICHAR2 7542 AXOUT 0013 CORSPC 1042 ERRLIS 2740 ICHAR3 7527 AXTEM 0015 COUNT 0327 ERROR 4143 IDVNO 2324 BARROW 2271 COUNTA 3026 ERSW 0131 IGNORE 0060 BCKSPC 3074 COUNTP 0111 ERWT 2071 IHPAGE 2323 BELL 0046 CRO 0050 ER1 2535 IM232 7572 BOX 0111 CTAB 0033 ESC 0032 INBREC 7500 BUFCNT 2566 CTCK 1632 ESCA 0503 INBUF 4200 BUFEND 0025 CTRLS 1701 ESCOUT 3056 INBUFP 7475 BUFR 0125 CTRLU 1476 EXLAS 0667 INCHAR 7414 BUFRD 2031 CTU 0044 EXNEX 0670 INCHCT 7557 BUFRDI 0135 CZ 0075 EXTR 0534 INCOMN 7547 BUFRD1 1741 CZONE 0147 FILLLP 7316 INCTL 0600 BUFRET 2151 C1 7160 FILOP 6660 INCTLW 7474 BUFRTN 2066 C100 0011 FIND 1015 INCTR 7401 BUFWT 2062 C17 6755 FIND1 1035 INDEV 7411 BUFWTI 0136 C2 7161 FIND2 1031 INDEVH 3200 CCON 0063 C200 0024 FINONE 2617 INEOF 7561 CCR 0034 C212 0047 FIN1 0066 INERR 7522 CDIF0 7165 C214 0045 FIRS 2716 INERRX 7517 CFRS 0126 C215 0034 FLCLI 2061 INFLD 0000 CGEPTR 2671 C240 0030 FLCLOS 2006 INFPTR 7560 CHAR 0110 C260 1100 FLCLSI 1474 INGBUF 7455 CHFND 2570 C277 0012 FLCLS1 2015 INHNDL 7436 CHIN 3132 C377 7162 FLOOZ 1057 INIT 3000 CHI1 0057 C7600 7170 FMATCH 2565 INJMP 7524 CHKAGA 1663 C77 0007 FORGET 2573 INJMPP 7417 CHKARG 0130 DBCV2 0231 FRST 0174 INLIST 0577 CHKARX 1501 DBLQUO 2275 FULL 0606 INNEWF 7423 CHN 6611 DCB 7760 FULMES 2164 INPTR 7410 CIFTEN 1710 DCBM1 7172 FXSTWD 1746 INREC 7476 CLERR 2025 DELE 1742 FXSWDI 2141 INRECS 0003 CLF 0047 DELP 0635 GARBAG 2600 INRTRN 7555 CLFLI 0137 DELP1 0646 GBGEND 2636 INS 0432 CLRCOP 1705 DELT 0056 GBG2 2626 INSET 7126 CLSMES 2757 DEST 1236 GETTAG 1371 INSTRT 7142 CLSREC 2122 DEVERR 2721 GET3 0547 IN7400 7400 CMCHK 0232 DEVMES 1765 GET4 0552 IN7600 7413 CMPT 0350 DMPO 7173 GET5 0561 IOPEN 7401 CNGE 1227 DTEM 0143 GEXP 0226 IOPENI 6750 CNGEL 1225 DUMB1 1341 GINDVH 6727 I1 7564 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 75-1 I17 7566 L200 6744 OHNDL 2150 OVRFLW 2134 I2 7567 L3 0747 OLDTE1 1606 O1 7362 I232 7573 L3I 0103 ONOFIL 7247 O100 7372 I3 7570 L7700 6757 ONTERR 7245 O17 7200 I33 1641 MARK 0123 ONUM 0076 O2 7364 I377 7571 MCHIN1 0054 OOPEN 7201 O200 7242 I7617 7563 MCR 0021 OOPENI 6751 O232 7367 I7700 7574 MONIT 1753 OORETN 7234 O3 7365 I7760 7565 MONITO 0152 OPNMES 2360 O4 7370 JERK 2243 MOR 0451 OPS1 1557 O5 7371 JERK1 2244 MORECS 2145 OPS1A 1605 O6 7374 JLSTN 6657 MORI 0616 OPS2 0365 O7 7375 JMPCH 0141 MOVE 1213 OREC 2147 O77 7373 JMPTE1 0151 MOVEM 1413 OSLST 2230 O7700 7363 JSBTM 7155 MOV1 0111 OTRTN 7122 O7760 7366 JSWSET 1752 MOV2 0170 OTYPE 7110 O8 7376 KEYBD 0062 MPARAM 7643 OUBLK 7223 PACBUF 0457 KILL 1544 MP1 0163 OUBUF 5600 PACK1 0100 KILL1 0127 MP2 0162 OUCCNT 7344 PANIC 6746 K1210 0171 MP3 0164 OUCOMN 7077 PANICC 7351 K1320 0173 MSCNT 2572 OUCRET 7100 PANICI 2143 K360 1102 MTABS 0055 OUCT 7167 PANICJ 7174 K5000 6760 M203 7164 OUCTL 5000 PANOPN 6665 K6215 2720 M240 0022 OUCTLW 7266 PARAM 6756 K63 2670 M27 0042 OUDEVH 3600 PAR200 7163 K6600 3025 M4 0017 OUDWCT 7106 PATCH 0330 K7400 7166 M41 0010 OUELEN 7224 PCK1 0507 K7600 0167 M77 0027 OUENTR 7220 PELIM 2161 K7620 6763 NEWOP 6636 OUERR 7276 PERI 1512 K7660 7361 NEXBUF 2227 OUFLD 0000 PIASGN 2300 LINPTR 2667 NEXTPT 2567 OUHNDL 7215 PIHND 2312 LIS 0070 NEXX 2553 OUJMP 7040 PIHNDL 2322 LIST 0677 NINE 0071 OUJMPE 7105 PINEOF 2325 LISTER 0704 NOCR 2503 OUNREC 7352 PINSET 7562 LISTGO 1457 NODUMP 7336 OUPOLD 7103 PIRETN 2321 LIST1 1343 NONE 0010 OUPTR 7104 PJSBTS 7156 LIST1A 1366 NOPAN 6705 OUREC 7270 PLASTN 7157 LIST2 0303 NOTSO 2526 OURECS 0004 POINT 2146 LIST3 0051 NUCHA 2544 OUSETP 7001 POTYPE 0165 LIST4 0032 NUCHAR 2550 OUSTPI 6761 PPTE1 2160 LIST5 0043 NUMB 0072 OUT 3027 PRERR 0142 LIST6 0044 NXTOP 6623 OUTCRL 3100 PRINT 2331 LIST7 0030 OCHAR 7015 OUTDEV 0121 PRNT 1051 LIS1 0067 OCHARI 2144 OUTDMP 7251 PSETUP 1342 LOOP 3006 OCHAR1 7075 OUTEMP 7102 PSTOP 7124 LOW 0074 OCHAR2 7072 OUTINH 7107 PTEMP 6764 LOWERR 6742 OCHAR3 7043 OUTL 1651 PTE1 2162 LPT 3144 OCISZ 7346 OUTLIS 1237 PUNC 1253 LSTCHK 0175 OCLOSE 7277 OUTL1 0074 PUNCH 1250 LSTN 0157 OCLSI 2163 OUTRT 3105 PUNCHQ 1247 L0 0717 OCNTI 2142 OUTTAB 3115 PUNCT 1256 L1 0723 OCRET 7347 OUTX 3047 P17 7171 L1I 0132 ODMP 6753 OUT1 0073 P177 0020 L2 0745 OEFAIL 7235 OU7600 7202 P210 1165 L2I 0104 OHANDL 6754 OU7601 7343 P232 0134 /OS/8 SYMBOLIC EDITOR, V50 PAL8-V50X 18-JUN-87 PAGE 75-2 P337 0260 STFIN 2531 P37 0140 STORE 2425 P40 0023 STRFIN 0154 P7600A 6631 STRIND 0153 P7700 0026 STRTUP 6745 P7726 1166 SXS1 0101 Q 2000 SXS2 0102 QUO1 2431 SZCL 6616 QUO2 2430 TABIND 0116 REDMES 1757 TAGLIS 1206 RELCNT 2715 TCNT 0160 RESET3 1707 TELE 1300 RETRN 0261 TELEN 1300 RLOOP 2414 TEMP 0117 ROT 0522 TEMPO 0170 RP1 1123 TERLIN 3066 RP2 1130 TE1 0155 RST3I 0053 THIS 0120 RUB1 1103 THISX 0111 RUB2 1156 THISX2 0143 RUB3 1144 THOLE 6762 RUB4 1153 THSN 0156 SAVE 0115 TMP1 2562 SBAR 1002 TMP2 2563 SBUF 2571 TR1 0477 SCONT 0771 TSTHOL 7261 SERRA 7377 UPARO 3051 SERRB 7575 UPK 2514 SETJSB 7144 UPK1 2467 SETJSI 6743 UTEST 0457 SETUP 0617 UTRA 0531 SEX 0362 UTR1 0065 SFIND1 2400 VAL 0162 SFIND2 2440 VERMES 2344 SFOUND 1007 VERSIO 0062 SGOT 1013 VERSN 2326 SIGN 0003 VIEW 2703 SLAS 1514 VV1 0005 SLINE 0774 VV2 0062 SLOOK 0764 WREK 2525 SLST 2222 WRTMES 2351 SORTB 0337 XCRET 1173 SORTJ 0077 XCT 0112 SPACES 1522 XCTIN 0113 SPCGO 0107 XFFCTZ 2714 SPCNO 0106 XNS 1230 SPCP1 6747 XNSL 1226 SPCP1A 1740 XNS1 0430 SPLAT 1164 XSAV 0124 SP2 1526 XYZTUV 3177 SRCBUF 2176 X203 0172 SRETN 0756 YANK 1306 SRNLST 1452 START 0203 START1 6606 ERRORS DETECTED: 0 LINKS GENERATED: 0