Annotation of researchv10no/cmd/spitbol/4.3/diff.pr, revision 1.1

1.1     ! root        1: 
        !             2: 
        !             3: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 1
        !             4: 
        !             5: 
        !             6: 1,4c1,6
        !             7: <        TTL  S P I T B O L - REVISION HISTORY
        !             8: <        EJC
        !             9: < *      R E V I S I O N   H I S T O R Y
        !            10: < *      -------------------------------
        !            11: ---
        !            12: > *      CHANGES [SGD]
        !            13: > *      -------------
        !            14: > *      1. COMMENTED OUT DEFAULT .DEF, .UNDEF AS THESE MACHINE-
        !            15: > *         DEPENDENT.  I SUGGEST AGAIN THAT THESE DO NOT BELONG
        !            16: > *         IN MINIMAL SOURCE, UNLESS SOMETHING OF THE FORM .*DEF
        !            17: > *         IS TO BE INCORPORTATED INTO MINIMAL LANGUAGE DEFN.
        !            18: 5a8,11
        !            19: > *      2. NOTED THAT DESCRIPTION OF BEV, BOD MISSING FROM
        !            20: > *         SBL42.CMT MINIMAL DESCRIPTION, AND DISCUSSION OF
        !            21: > *         "ODD"/"EVEN" AND REQUIREMENTS PERTAINING THERETO
        !            22: > *         SEEMS INSUFFICIENT.
        !            23: 7,8c13,21
        !            24: < *      VERSION 3.5B (FEB 81... - SGD PATCHES)
        !            25: < *      -----------------------------------
        !            26: ---
        !            27: > *      3. PERMIT CODE KEYWORD TO CONTAIN ANY INTEGER VALUE.
        !            28: > *         THIS CONSISTS OF REMOVING THE ENFORCED RESTRICTION
        !            29: > *         IN ASIGN (SEE ASG24), SINCE CODE CONTAINS NO RELOC.
        !            30: > *         USE OF KEYWORD VALUE (AS IT SHOULDNT).  SBL DOC.
        !            31: > *         MUST BE UPDATED.  ADDRESS OF CODE VALUE NOW PASSED TO
        !            32: > *         OSINT (KVCOD), INSTEAD OF VALUE ITSELF.  HENCE OSINT
        !            33: > *         DOCUMENTATION MUST LIKEWISE BE REVISED.  CHANGES
        !            34: > *         MADE IN KEYWORD DEFINITION TABLES, PROCEDURES ACESS
        !            35: > *         AND ASIGN SINCE CODE NOW SPECIAL KEYWORD.
        !            36: 10,42c23,24
        !            37: < *      SGD03 - ADDITION OF .CNCI AND SYSCI (INT->STRING
        !            38: < *              SYSTEM ROUTINE OPTION)
        !            39: < *      SGD04 - (06-MAY-1981) MODIFIED INILN TO 132
        !            40: < *      SGD05 - (13-MAY-1981) INSERTED MISSING WTB AFTER SYSMM
        !            41: < *              CALLS
        !            42: < *      SGD06 - (25-MAY-1981) MERGED IN PROFILER PATCHES
        !            43: < *              (NOT MARKED)
        !            44: < *      SGD07 - (25-MAY-1981) MUCHO PATCHES TO PROFILER (MARKED,
        !            45: < *              BUT BEST JUST TO EXTRACT ENMASSE)
        !            46: < *      SGD08 - (25-MAY-1981) USE STRING LENGTH IN HASHS
        !            47: < *      SGD09 - (25-MAY-1981) FIXED SERIOUS PARSER PROBLEM
        !            48: < *              RELATING TO (X Y) ON LINE BEING VIEWED AS PATTERN
        !            49: < *              MATCH.  FIXED BY ADDITION OF NEW CMTYP VALUE
        !            50: < *              C$CNP (CONCATENATION - NOT PATTERN MATCH)
        !            51: < *      SGD10 - (01-AUG-1981) FIXED EXIT(N) RESPECIFICATION CODE
        !            52: < *              TO PROPERLY OBSERVE HEADER SEMANTICS ON RETURN.
        !            53: < *      SGD11 - (07-AUG-1981) BYPASS PRTPG CALL AT INITIALIZATION
        !            54: < *              FOLLOWING COMPILATION IF NO OUTPUT GENERATED.
        !            55: < *              THIS PREVENTS OUTPUT FILES CONSISTING OF THE
        !            56: < *              HEADERS AND A FEW BLANK LINES WHEN THERE IS NO
        !            57: < *              SOURCE LISTING AND NO COMPILATION STATS.
        !            58: < *              ALSO FIX TIMSX INITIALIZATION IN SAME CODE.
        !            59: < *      SGD12 - (17-AUG-1981) B$EFC CODE DID NOT CHECK FOR
        !            60: < *              UNCONVERTED RESULT RETURNING NULL STRING.  FIXED.
        !            61: < *      SGDBF - (   NOV-1981) ADDED BUFFER TYPE AND SYMBOL CNBF
        !            62: 
        !            63: 
        !            64: 
        !            65: 
        !            66: 
        !            67: 
        !            68: 
        !            69: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 2
        !            70: 
        !            71: 
        !            72: < *      SGD13 - (03-MAR-1982) LOAD PFVBL FIELD IN RETRN FOR
        !            73: < *              RETURN TRACING. THIS WAS CAUSING BUG ON RETURN
        !            74: < *              TRACES THAT TRIED TO ACCESS THE VARIABLE NAME
        !            75: < *      SGD14 - ADDED CHAR FUNCTION.  CHAR(N) RETURNS NTH
        !            76: < *              CHARACTER OF HOST MACHINE CHARACTER SET.
        !            77: < *              NOT CONDITIONALIZED OR MARKED.
        !            78: < *      SGD15 - FIXED PROBLEM RELATING TO COMPILATION OF GOTO
        !            79: < *              FIELDS CONTAINING SMALL INTEGERS (IN CONST SEC).
        !            80: ---
        !            81: > *         EROSI RETURNS NOW CONTAIN NEW CODE KEYWORD VALUE IN
        !            82: > *         IA. OSINT DOCUMENTATION MUST BE REVISED.
        !            83: 44,48c26,29
        !            84: < *      REG01 - (XX-AUG-82)
        !            85: < *              ADDED CFP$U TO EASE TRANSLATION ON SMALLER
        !            86: < *              SYSTEMS                  - CONDITIONAL .CUCF
        !            87: < *              ADDED LOWER CASE SUPPORT - CONDITIONAL .CULC
        !            88: < *              ADDED SET I/O FUNCTION   - CONDITIONAL .CUST
        !            89: ---
        !            90: > *         INTERESTINGLY, THIS SHOULD PERMIT THE SPITBOL PROGRAM
        !            91: > *         TO INTERROGATE THE CODE KEYWORD AT THE START OF
        !            92: > *         EXECUTION TO DETERMINE IF COMPILATION ERRORS
        !            93: > *         OCCURRED.
        !            94: 50,51c31,46
        !            95: < *      REG02 - (XX-SEP-82)
        !            96: < *              CHANGED INILN AND AND INILS TO 258
        !            97: ---
        !            98: > *      4. ADD -COPY "FILETAG" CONTROL CARD.  -COPY PERMITTED IN
        !            99: > *         CODE STRINGS.  NESTING IS PERMITTED TO ANY LEVEL,
        !           100: > *         THOUGH OSINT IS FREE TO RESTRICT THE MAXIMUM LEVEL.
        !           101: > *         NOTE REQUIREMENT FOR FILETAG SPECIFIED AS
        !           102: > *         STRING CONSTANT SINCE FILETAGS MAY CONTAIN SEMICOLONS.
        !           103: > *         I HAVE TRIED TO MAKE THIS ENHANCEMENT WITH MINIMUM
        !           104: > *         (MINIMAL?) AMOUNT OF NEW CODE, SO THE FEATURE IS
        !           105: > *         NOT CONDITIONALIZED.  THE SOLUTION
        !           106: > *         REQUIRED THE ADDITION OF A NEW BLOCK TYPE (COBLK) TO
        !           107: > *         BUILD THE INPUT CONTEXT SAVE STACK AS A CHAIN OF
        !           108: > *         COBLKS.  A RECUSIVE SOLUTION ON CMPIL/READR/NEXTS
        !           109: > *         WOULD HAVE REQUIRED EXTENSIVE MODIFICATIONS AND
        !           110: > *         SUBSTANTIAL NEW CODE.  NOTE THAT FORMS SUCH AS
        !           111: > *         CODE('-COPY "FILE.SBL"') ARE ACCEPTABLE, WHICH IS
        !           112: > *         VIEWED AS SIGNIFICANT ENHANCEMENT IN ADDITION TO
        !           113: > *         COMPILE-TIME INCLUDE.
        !           114: 53,59c48,50
        !           115: < *      REG03 - (XX-OCT-82)
        !           116: < *              CONDITIONALIZED THE PAGE EJECT AFTER CALL TO SYSBX
        !           117: < *              AND ADDED ANOTHER BEFORE CALL TO SYSBX, SO THAT,
        !           118: < *              IF DESIRED BY THE IMPLEMENTOR, STANDARD OUTPUT
        !           119: < *              WILL REFLECT ASSIGNMENTS MADE BY EXECUTING PROGRAM
        !           120: < *              ONLY. CONDITIONAL .CUEJ CONTROLS - IF DEFINED
        !           121: < *              EJECT IS BEFORE CALL TO SYSBX.
        !           122: ---
        !           123: > *         TO SUPPORT THIS FEATURE, TWO NEW OSINT ROUTINES ARE
        !           124: > *         DEFINED, SYSSC (START COPY) AND SYSEC (END COPY) WITH
        !           125: > *         LOGICS DESCRIBED IN THE .CMT FILE.
        !           126: 61,63c52,57
        !           127: < *      REG04 - (XX-NOV-82)
        !           128: 
        !           129: 
        !           130: 
        !           131: 
        !           132: 
        !           133: 
        !           134: 
        !           135: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 3
        !           136: 
        !           137: 
        !           138: < *              FIXED DIFFICULTIES WITH LISTINGS DURING EXECUTION
        !           139: < *              WHEN NO LISTING GENERATED DURING COMPILATION.
        !           140: ---
        !           141: > *         BECAUSE OF ANNOYANCE FACTOR, SOURCE LISTING OF
        !           142: > *         CODE() INFO VIA -LIST, INCLUDING -COPY INPUT, IS
        !           143: > *         NO LONGER POSSIBLE.  IF THIS IS PERMITTED, THEN
        !           144: > *         ONE FINDS -COPY INPUT BEING PRINTED ON STD.
        !           145: > *         OUTPUT CHANNEL (DEPENDING ON STATE OF -LIST),
        !           146: > *         UNLESS EXPLICIT -NOLIST IS GIVEN.
        !           147: 65,67c59,63
        !           148: < *              -LIST TO CODE() CAUSED BOMB. FIX IS TO RESET
        !           149: < *              R$TTL AND R$STL TO NULLS NOT 0 AFTER COMPILATION.
        !           150: < *              (LISTR AND LISTT EXPECT NULLS)
        !           151: ---
        !           152: > *      5. THE DOCUMENTATION FOR SYSIO IS INCONSISTENT.  IT
        !           153: > *         SHOWS 0,1,2,3 BEING POSSIBLE INPUTS DEPENDING ON
        !           154: > *         INPUT/OUTPUT, STD/NONSTD.  HOWEVER, IT ALSO APPEARS
        !           155: > *         (AND IS STATED) THAT SYSIO IS NOT CALLED FOR STD
        !           156: > *         INPUT/OUTPUT.
        !           157: 69,224c65,67
        !           158: < *              WHEN LISTING AND STATISTICS ROUTED TO DIFFERENT
        !           159: < *              FILE THAN EXECUTION OUTPUT, ERROR MESSAGE IS SENT
        !           160: < *              TO EXECUTION OUTPUT (AND GETS SEPARATED FROM
        !           161: < *              ... IN STATEMENT ... MSG). LABO1 CALLS SYSAX AND
        !           162: < *              STOPR DOES NOT CALL SYSAX IF ENTERED FROM LABO1.
        !           163: < *
        !           164: < *      REG05 - (XX-NOV-82)
        !           165: < *              PREVENT CLEAR() FROM CLOBBERING PROTECTED VARIABLES
        !           166: < *              AT LABEL SCLR5.
        !           167: < *
        !           168: < *      REG06 - (XX-NOV-82)
        !           169: < *              FIXED GTEXP FROM ACCEPTING TRAILING SEMICOLON OR
        !           170: < *              COLON. NOT LEGAL WAY TO END AN EXPRESSION.
        !           171: < *
        !           172: < *      VERSION 3.5A (OCT 79 - SGD PATCHES)
        !           173: < *      -----------------------------------
        !           174: < *
        !           175: < *      SGD01 - PATCH IN ASIGN TO FIX MULTIPLE TRAP BLOCK PROBLEM
        !           176: < *              (ASG10+2)
        !           177: < *      SGD02 - PATCH IN GTARR TO FIX NULL CONVERT (GTAR9+0)
        !           178: < *
        !           179: <        TTL  S P I T B O L  -- BASIC INFORMATION
        !           180: <        EJC
        !           181: < *
        !           182: < *      GENERAL STRUCTURE
        !           183: < *      -----------------
        !           184: < *
        !           185: < *      THIS PROGRAM IS A TRANSLATOR FOR A VERSION OF THE SNOBOL4
        !           186: < *      PROGRAMMING LANGUAGE. LANGUAGE DETAILS ARE CONTAINED IN
        !           187: < *      THE MANUAL MACRO SPITBOL BY DEWAR AND MCCANN, TECHNICAL
        !           188: < *      REPORT 90, UNIVERSITY OF LEEDS 1976.  THE LANGUAGE
        !           189: < *      IS IDENTICAL TO THAT IMPLEMENTED BY THE BTL TRANSLATOR
        !           190: < *      (R. E. GRISWOLD ET AL.) WITH THE FOLLOWING EXCEPTIONS.
        !           191: < *
        !           192: < *      1)   REDEFINITION OF STANDARD SYSTEM FUNCTIONS AND
        !           193: < *           OPERATORS IS NOT PERMITTED.
        !           194: 
        !           195: 
        !           196: 
        !           197: 
        !           198: 
        !           199: 
        !           200: 
        !           201: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 4
        !           202: 
        !           203: 
        !           204: < *
        !           205: < *      2)   THE VALUE FUNCTION IS NOT PROVIDED.
        !           206: < *
        !           207: < *      3)   ACCESS TRACING IS PROVIDED IN ADDITION TO THE
        !           208: < *           OTHER STANDARD TRACE MODES.
        !           209: < *
        !           210: < *      4)   THE KEYWORD STFCOUNT IS NOT PROVIDED.
        !           211: < *
        !           212: < *      5)   THE KEYWORD FULLSCAN IS NOT PROVIDED AND ALL PATTERN
        !           213: < *           MATCHING TAKES PLACE IN FULLSCAN MODE (I.E. WITH NO
        !           214: < *           HEURISTICS APPLIED).
        !           215: < *
        !           216: < *      6)   A SERIES OF EXPRESSIONS SEPARATED BY COMMAS MAY
        !           217: < *           BE GROUPED WITHIN PARENTHESES TO PROVIDE A SELECTION
        !           218: < *           CAPABILITY. THE SEMANTICS ARE THAT THE SELECTION
        !           219: < *           ASSUMES THE VALUE OF THE FIRST EXPRESSION WITHIN IT
        !           220: < *           WHICH SUCCEEDS AS THEY ARE EVALUATED FROM THE LEFT.
        !           221: < *           IF NO EXPRESSION SUCCEEDS THE ENTIRE STATEMENT FAILS
        !           222: < *
        !           223: < *      7)   AN EXPLICIT PATTERN MATCHING OPERATOR IS PROVIDED.
        !           224: < *           THIS IS THE BINARY QUERY (SEE GIMPEL SIGPLAN OCT 74)
        !           225: < *
        !           226: < *      8)   THE ASSIGNMENT OPERATOR IS INTRODUCED AS IN THE
        !           227: < *           GIMPEL REFERENCE.
        !           228: < *
        !           229: < *      9)   THE EXIT FUNCTION IS PROVIDED FOR GENERATING LOAD
        !           230: < *           MODULES - CF. GIMPELS SITBOL.
        !           231: < *
        !           232: < *
        !           233: < *      THE METHOD USED IN THIS PROGRAM IS TO TRANSLATE THE
        !           234: < *      SOURCE CODE INTO AN INTERNAL PSEUDO-CODE (SEE FOLLOWING
        !           235: < *      SECTION). AN INTERPRETOR IS THEN USED TO EXECUTE THIS
        !           236: < *      GENERATED PSEUDO-CODE. THE NATURE OF THE SNOBOL4 LANGUAGE
        !           237: < *      IS SUCH THAT THE LATTER TASK IS MUCH MORE COMPLEX THAN
        !           238: < *      THE ACTUAL TRANSLATION PHASE. ACCORDINGLY, NEARLY ALL THE
        !           239: < *      CODE IN THE PROGRAM SECTION IS CONCERNED WITH THE ACTUAL
        !           240: < *      EXECUTION OF THE SNOBOL4 PROGRAM.
        !           241: <        EJC
        !           242: < *
        !           243: < *      INTERPRETIVE CODE FORMAT
        !           244: < *      ------------------------
        !           245: < *
        !           246: < *      THE INTERPRETIVE PSEUDO-CODE CONSISTS OF A SERIES OF
        !           247: < *      ADDRESS POINTERS. THE EXACT FORMAT OF THE CODE IS
        !           248: < *      DESCRIBED IN CONNECTION WITH THE CDBLK FORMAT. THE
        !           249: < *      PURPOSE OF THIS SECTION IS TO GIVE GENERAL INSIGHT INTO
        !           250: < *      THE INTERPRETIVE APPROACH INVOLVED.
        !           251: < *
        !           252: < *      THE BASIC FORM OF THE CODE IS RELATED TO REVERSE POLISH.
        !           253: < *      IN OTHER WORDS, THE OPERANDS PRECEDE THE OPERATORS WHICH
        !           254: < *      ARE ZERO ADDRESS OPERATORS. THERE ARE SOME EXCEPTIONS TO
        !           255: < *      THESE RULES, NOTABLY THE UNARY NOT OPERATOR AND THE
        !           256: < *      SELECTION CONSTRUCTION WHICH CLEARLY REQUIRE ADVANCE
        !           257: < *      KNOWLEDGE OF THE OPERATOR INVOLVED.
        !           258: < *
        !           259: < *      THE OPERANDS ARE MOVED TO THE TOP OF THE MAIN STACK AND
        !           260: 
        !           261: 
        !           262: 
        !           263: 
        !           264: 
        !           265: 
        !           266: 
        !           267: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 5
        !           268: 
        !           269: 
        !           270: < *      THE OPERATORS ARE APPLIED TO THE TOP STACK ENTRIES. LIKE
        !           271: < *      OTHER VERSIONS OF SPITBOL, THIS PROCESSOR DEPENDS ON
        !           272: < *      KNOWING WHETHER OPERANDS ARE REQUIRED BY NAME OR BY VALUE
        !           273: < *      AND MOVES THE APPROPRIATE OBJECT TO THE STACK. THUS NO
        !           274: < *      NAME/VALUE CHECKS ARE INCLUDED IN THE OPERATOR CIRCUITS.
        !           275: < *
        !           276: < *      THE ACTUAL POINTERS IN THE CODE POINT TO A BLOCK WHOSE
        !           277: < *      FIRST WORD IS THE ADDRESS OF THE INTERPRETOR ROUTINE
        !           278: < *      TO BE EXECUTED FOR THE CODE WORD.
        !           279: < *
        !           280: < *      IN THE CASE OF OPERATORS, THE POINTER IS TO A WORD WHICH
        !           281: < *      CONTAINS THE ADDRESS OF THE OPERATOR TO BE EXECUTED. IN
        !           282: < *      THE CASE OF OPERANDS SUCH AS CONSTANTS, THE POINTER IS TO
        !           283: < *      THE OPERAND ITSELF. ACCORDINGLY, ALL OPERANDS CONTAIN
        !           284: < *      A FIELD WHICH POINTS TO THE ROUTINE TO LOAD THE VALUE OF
        !           285: < *      THE OPERAND ONTO THE STACK. IN THE CASE OF A VARIABLE,
        !           286: < *      THERE ARE THREE SUCH POINTERS. ONE TO LOAD THE VALUE,
        !           287: < *      ONE TO STORE THE VALUE AND A THIRD TO JUMP TO THE LABEL.
        !           288: < *
        !           289: < *      THE HANDLING OF FAILURE RETURNS DESERVES SPECIAL COMMENT.
        !           290: < *      THE LOCATION FLPTR CONTAINS THE POINTER TO THE LOCATION
        !           291: < *      ON THE MAIN STACK WHICH CONTAINS THE FAILURE RETURN
        !           292: < *      WHICH IS IN THE FORM OF A BYTE OFFSET IN THE CURRENT
        !           293: < *      CODE BLOCK (CDBLK OR EXBLK). WHEN A FAILURE OCCURS, THE
        !           294: < *      STACK IS POPPED AS INDICATED BY THE SETTING OF FLPTR AND
        !           295: < *      CONTROL IS PASSED TO THE APPROPRIATE LOCATION IN THE
        !           296: < *      CURRENT CODE BLOCK WITH THE STACK POINTER POINTING TO THE
        !           297: < *      FAILURE OFFSET ON THE STACK AND FLPTR UNCHANGED.
        !           298: <        EJC
        !           299: < *
        !           300: < *      INTERNAL DATA REPRESENTATIONS
        !           301: < *      -----------------------------
        !           302: < *
        !           303: < *      REPRESENTATION OF VALUES
        !           304: < *
        !           305: < *      A VALUE IS REPRESENTED BY A POINTER TO A BLOCK WHICH
        !           306: < *      DESCRIBES THE TYPE AND PARTICULARS OF THE DATA VALUE.
        !           307: < *      IN GENERAL, A VARIABLE IS A LOCATION CONTAINING SUCH A
        !           308: < *      POINTER (ALTHOUGH IN THE CASE OF TRACE ASSOCIATIONS THIS
        !           309: < *      IS MODIFIED, SEE DESCRIPTION OF TRBLK).
        !           310: < *
        !           311: < *      THE FOLLOWING IS A LIST OF POSSIBLE DATATYPES SHOWING THE
        !           312: < *      TYPE OF BLOCK USED TO HOLD THE VALUE. THE DETAILS OF
        !           313: < *      EACH BLOCK FORMAT ARE GIVEN LATER.
        !           314: < *
        !           315: < *      DATATYPE              BLOCK TYPE
        !           316: < *      --------              ----------
        !           317: < *
        !           318: < *
        !           319: < *      ARRAY                 ARBLK OR VCBLK
        !           320: < *
        !           321: < *      CODE                  CDBLK
        !           322: < *
        !           323: < *      EXPRESSION            EXBLK OR SEBLK
        !           324: < *
        !           325: < *      INTEGER               ICBLK
        !           326: 
        !           327: 
        !           328: 
        !           329: 
        !           330: 
        !           331: 
        !           332: 
        !           333: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 6
        !           334: 
        !           335: 
        !           336: < *
        !           337: < *      NAME                  NMBLK
        !           338: < *
        !           339: < *      PATTERN               P0BLK OR P1BLK OR P2BLK
        !           340: < *
        !           341: < *      REAL                  RCBLK
        !           342: < *
        !           343: < *      STRING                SCBLK
        !           344: ---
        !           345: > *      6. SINCE -PRINT,-NOPRINT REMOVED IN V4, I HAVE
        !           346: > *         REINSTATED THE CIRCUIT IN NEXTS TO AVOID LISTING
        !           347: > *         CONTROL CARDS (-COPY FORCES LIST IN CNCRD THOUGH).
        !           348: 226c69,70
        !           349: < *      TABLE                 TBBLK
        !           350: ---
        !           351: > *      7. WA NOW CONTAINS THE INITIAL VALUE OF &CODE ON ENTRY
        !           352: > *         TO SPITBOL.
        !           353: 228,229c72,77
        !           354: < *      PROGRAM DATATYPE      PDBLK
        !           355: <        EJC
        !           356: ---
        !           357: > *      8. ADDED DDC (DEFINE DISPLAY CONSTANT).  IS IDENTICAL
        !           358: > *         TO DTC EXCEPT THAT ON SYSTEMS SUPPORTING LOWER CASE,
        !           359: > *         THE DISPLAY TEXT CAN BE TRANSLATED WITH A
        !           360: > *         CASE MIX.  FOR EXAMPLE, CAPITALIZE ONLY THE FIRST
        !           361: > *         LETTER, OR THE FIRST LETTER OF EVERY WORD, OR NO
        !           362: > *         UPPER CASE (FOR EUNICHS), ETC.
        !           363: 231,232c79,81
        !           364: < *      REPRESENTATION OF VARIABLES
        !           365: < *      ---------------------------
        !           366: ---
        !           367: > *      9. FIX MINOR OVERSIGHT IN FAILING TO CLEAR R$PMB AT
        !           368: > *         END OF PATTERN MATCH, THUS LEAVING PTR TO BCBLK
        !           369: > *         THAT CANNOT BE COLLECTED.
        !           370: 234,238c83,92
        !           371: < *      DURING THE COURSE OF EVALUATING EXPRESSIONS, IT IS
        !           372: < *      NECESSARY TO GENERATE NAMES OF VARIABLES (FOR EXAMPLE
        !           373: < *      ON THE LEFT SIDE OF A BINARY EQUALS OPERATOR). THESE ARE
        !           374: < *      NOT TO BE CONFUSED WITH OBJECTS OF DATATYPE NAME WHICH
        !           375: < *      ARE IN FACT VALUES.
        !           376: ---
        !           377: > *     10. AFTER CONSULTATION WITH DAVE SHIELDS, IT WAS AGREED
        !           378: > *         TO REINSTATE ARG,FIELD,ITEM AND LOCAL FUNCTIONS.
        !           379: > *         COMMENTS WERE RECEIVED THAT REMOVING THEM BREAKS
        !           380: > *         EXISTING CODE IN DIFFICULT-TO-FIX WAYS, INCLUDING
        !           381: > *         A NUMBER OF THE UTILITY ROUTINES IN GIMPELS BOOK.
        !           382: > *         IN ANY EVENT, THESE ARE SNOBOL4 COMPATIBILITY
        !           383: > *         FUNCTIONS THAT TAKE LITTLE CODE SPACE.  AS A
        !           384: > *         RESULT OF THIS, AND -COPY, ERROR NUMBERS HAVE
        !           385: > *         BEEN PUSHED BACK OVER THE 255 THRESHOLD, WHICH
        !           386: > *         SEEMS UNAVOIDABLE UNLESS MAJOR SURGERY IS DONE.
        !           387: 240,250c94,95
        !           388: < *      FROM A LOGICAL POINT OF VIEW, SUCH NAMES COULD BE SIMPLY
        !           389: < *      REPRESENTED BY A POINTER TO THE APPROPRIATE VALUE CELL.
        !           390: < *      HOWEVER IN THE CASE OF ARRAYS AND PROGRAM DEFINED
        !           391: < *      DATATYPES, THIS WOULD VIOLATE THE RULE THAT THERE MUST BE
        !           392: 
        !           393: 
        !           394: 
        !           395: 
        !           396: 
        !           397: 
        !           398: 
        !           399: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 7
        !           400: 
        !           401: 
        !           402: < *      NO POINTERS INTO THE MIDDLE OF A BLOCK IN DYNAMIC STORE.
        !           403: < *      ACCORDINGLY, A NAME IS ALWAYS REPRESENTED BY A BASE AND
        !           404: < *      OFFSET. THE BASE POINTS TO THE START OF THE BLOCK
        !           405: < *      CONTAINING THE VARIABLE VALUE AND THE OFFSET IS THE
        !           406: < *      OFFSET WITHIN THIS BLOCK IN BYTES. THUS THE ADDRESS
        !           407: < *      OF THE ACTUAL VARIABLE IS DETERMINED BY ADDING THE BASE
        !           408: < *      AND OFFSET VALUES.
        !           409: ---
        !           410: > *     11. VERSION ID CHANGED TO V4.3 DUE TO SUBSTANTIAL
        !           411: > *         CHANGES.
        !           412: 252,253c97,98
        !           413: < *      THE FOLLOWING ARE THE INSTANCES OF VARIABLES REPRESENTED
        !           414: < *      IN THIS MANNER.
        !           415: ---
        !           416: > *     12. PERMIT DOLLAR SIGN IN VARIABLE NAMES.  MINOR
        !           417: > *         CHANGE TO OPERATOR TABLE AND SCANE.
        !           418: 255,256c100,103
        !           419: < *      1)   NATURAL VARIABLE BASE IS PTR TO VRBLK
        !           420: < *                            OFFSET IS *VRVAL
        !           421: ---
        !           422: > *     13. PERMIT BUFFER TYPE FOR LOAD SPECIFICATION.  AS
        !           423: > *         A SIDE-EFFECT, THE CODE FOR BUFFER CONVERSION HAS
        !           424: > *         BEEN CENTRALIZED IN GTBUF.  ALSO FIXED PADDING
        !           425: > *         BUG IN INSBF RELATED TO ZERO PADDING.
        !           426: 258,259c105,108
        !           427: < *      2)   TABLE ELEMENT    BASE IS PTR TO TEBLK
        !           428: < *                            OFFSET IS *TEVAL
        !           429: ---
        !           430: > *     14. DOCUMENT THAT SYSIL MUST NEVER REQUEST ZERO BYTES.
        !           431: > *         DOING SO CAUSES ACESS TO POTENTIALLY CREATE
        !           432: > *         INVALID MEMORY CAUSING LATER GARBAGE COLLECTOR
        !           433: > *         PROBLEMS OR MISADJUSTMENTS OF DNAMP, ETC.
        !           434: 261,262c110,112
        !           435: < *      3)   ARRAY ELEMENT    BASE IS PTR TO ARBLK
        !           436: < *                            OFFSET IS OFFSET TO ELEMENT
        !           437: ---
        !           438: > *     15. VDIFFER FUNCTION ADDED.  VDIFFER(X,Y) RETURNS X
        !           439: > *         IF DIFFERENT FROM Y.  IN MOST CASES IT IS EXPECTED
        !           440: > *         THAT Y WOULD BE NULL.
        !           441: 264,281c114
        !           442: < *      4)   VECTOR ELEMENT   BASE IS PTR TO VCBLK
        !           443: < *                            OFFSET IS OFFSET TO ELEMENT
        !           444: < *
        !           445: < *      5)   PROG DEF DTP     BASE IS PTR TO PDBLK
        !           446: < *                            OFFSET IS OFFSET TO FIELD VALUE
        !           447: < *
        !           448: < *      IN ADDITION THERE ARE TWO CASES OF OBJECTS WHICH ARE
        !           449: < *      LIKE VARIABLES BUT CANNOT BE HANDLED IN THIS MANNER.
        !           450: < *      THESE ARE CALLED PSEUDO-VARIABLES AND ARE REPRESENTED
        !           451: < *      WITH A SPECIAL BASE POINTER AS FOLLOWS=
        !           452: < *
        !           453: < *      EXPRESSION VARIABLE   PTR TO EVBLK (SEE EVBLK)
        !           454: < *
        !           455: < *      KEYWORD VARIABLE      PTR TO KVBLK (SEE KVBLK)
        !           456: < *
        !           457: < *      PSEUDO-VARIABLES ARE HANDLED AS SPECIAL CASES BY THE
        !           458: 
        !           459: 
        !           460: 
        !           461: 
        !           462: 
        !           463: 
        !           464: 
        !           465: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 8
        !           466: 
        !           467: 
        !           468: < *      ACCESS PROCEDURE (ACESS) AND THE ASSIGNMENT PROCEDURE
        !           469: < *      (ASIGN). SEE THESE TWO PROCEDURES FOR DETAILS.
        !           470: ---
        !           471: >        SEC                   FORMAL START OF PROCEDURES SECTION
        !           472: 284,411d116
        !           473: < *      ORGANIZATION OF DATA AREA
        !           474: < *      -------------------------
        !           475: < *
        !           476: < *
        !           477: < *      THE DATA AREA IS DIVIDED INTO TWO REGIONS.
        !           478: < *
        !           479: < *      STATIC AREA
        !           480: < *
        !           481: < *      THE STATIC AREA BUILDS UP FROM THE BOTTOM AND CONTAINS
        !           482: < *      DATA AREAS WHICH ARE ALLOCATED DYNAMICALLY BUT ARE NEVER
        !           483: < *      DELETED OR MOVED AROUND. THE MACRO-PROGRAM ITSELF
        !           484: < *      USES THE STATIC AREA FOR THE FOLLOWING.
        !           485: < *
        !           486: < *      1)   ALL VARIABLE BLOCKS (VRBLK).
        !           487: < *
        !           488: < *      2)   THE HASH TABLE FOR VARIABLE BLOCKS.
        !           489: < *
        !           490: < *      3)   MISCELLANEOUS BUFFERS AND WORK AREAS (SEE PROGRAM
        !           491: < *           INITIALIZATION SECTION).
        !           492: < *
        !           493: < *      IN ADDITION, THE SYSTEM PROCEDURES MAY USE THIS AREA FOR
        !           494: < *      INPUT/OUTPUT BUFFERS, EXTERNAL FUNCTIONS ETC. SPACE IN
        !           495: < *      THE STATIC REGION IS ALLOCATED BY CALLING PROCEDURE ALOST
        !           496: < *
        !           497: < *      THE FOLLOWING GLOBAL VARIABLES DEFINE THE CURRENT
        !           498: < *      LOCATION AND SIZE OF THE STATIC AREA.
        !           499: < *
        !           500: < *      STATB                 ADDRESS OF START OF STATIC AREA
        !           501: < *      STATE                 ADDRESS+1 OF LAST WORD IN AREA.
        !           502: < *
        !           503: < *      THE MINIMUM SIZE OF STATIC IS GIVEN APPROXIMATELY BY
        !           504: < *           12 + *E$HNB + *E$STS + SPACE FOR ALPHABET STRING
        !           505: < *           AND STANDARD PRINT BUFFER.
        !           506: <        EJC
        !           507: < *
        !           508: < *      DYNAMIC AREA
        !           509: < *
        !           510: < *      THE DYNAMIC AREA IS BUILT UPWARDS IN MEMORY AFTER THE
        !           511: < *      STATIC REGION. DATA IN THIS AREA MUST ALL BE IN STANDARD
        !           512: < *      BLOCK FORMATS SO THAT IT CAN BE PROCESSED BY THE GARBAGE
        !           513: < *      COLLECTOR (PROCEDURE GBCOL). GBCOL COMPACTS BLOCKS DOWN
        !           514: < *      IN THIS REGION AS REQUIRED BY SPACE EXHAUSTION AND CAN
        !           515: < *      ALSO MOVE ALL BLOCKS UP TO ALLOW FOR EXPANSION OF THE
        !           516: < *      STATIC REGION.
        !           517: < *      WITH THE EXCEPTION OF TABLES AND ARRAYS, NO SPITBOL
        !           518: < *      OBJECT ONCE BUILT IN DYNAMIC MEMORY IS EVER SUBSEQUENTLY
        !           519: < *      MODIFIED. OBSERVING THIS RULE NECESSITATES A COPYING
        !           520: < *      ACTION DURING STRING AND PATTERN CONCATENATION.
        !           521: < *
        !           522: < *      GARBAGE COLLECTION IS FUNDAMENTAL TO THE ALLOCATION OF
        !           523: < *      SPACE FOR VALUES. SPITBOL USES A VERY EFFICIENT GARBAGE
        !           524: 
        !           525: 
        !           526: 
        !           527: 
        !           528: 
        !           529: 
        !           530: 
        !           531: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 9
        !           532: 
        !           533: 
        !           534: < *      COLLECTOR WHICH INSISTS THAT POINTERS INTO DYNAMIC STORE
        !           535: < *      SHOULD BE IDENTIFIABLE WITHOUT USE OF BIT TABLES,
        !           536: < *      MARKER BITS ETC. TO SATISFY THIS REQUIREMENT, DYNAMIC
        !           537: < *      MEMORY MUST NOT START AT TOO LOW AN ADDRESS AND LENGTHS
        !           538: < *      OF ARRAYS, TABLES, STRINGS, CODE AND EXPRESSION BLOCKS
        !           539: < *      MAY NOT EXCEED THE NUMERICAL VALUE OF THE LOWEST DYNAMIC
        !           540: < *      ADDRESS. TO AVOID EITHER PENALIZING USERS WITH MODEST
        !           541: < *      REQUIREMENTS OR RESTRICTING THOSE WITH GREATER NEEDS ON
        !           542: < *      HOST SYSTEMS WHERE DYNAMIC MEMORY IS ALLOCATED IN LOW
        !           543: < *      ADDRESSES, THE MINIMUM DYNAMIC ADDRESS MAY BE SPECIFIED
        !           544: < *      SUFFICIENTLY HIGH TO PERMIT ARBITRARILY LARGE SPITBOL
        !           545: < *      OBJECTS TO BE CREATED ( WITH THE POSSIBILITY IN EXTREME
        !           546: < *      CASES OF WASTING LARGE AMOUNTS OF MEMORY BELOW THE
        !           547: < *      START ADDRESS). THIS MINIMUM VALUE IS MADE AVAILABLE
        !           548: < *      IN VARIABLE MXLEN BY A SYSTEM ROUTINE, SYSMX.
        !           549: < *      ALTERNATIVELY SYSMX MAY INDICATE THAT A
        !           550: < *      DEFAULT MAY BE USED IN WHICH DYNAMIC IS PLACED
        !           551: < *      AT THE LOWEST POSSIBLE ADDRESS FOLLOWING STATIC.
        !           552: < *
        !           553: < *      THE FOLLOWING GLOBAL WORK CELLS DEFINE THE LOCATION AND
        !           554: < *      LENGTH OF THE DYNAMIC AREA.
        !           555: < *
        !           556: < *      DNAMB                 START OF DYNAMIC AREA
        !           557: < *      DNAMP                 NEXT AVAILABLE LOCATION
        !           558: < *      DNAME                 LAST AVAILABLE LOCATION + 1
        !           559: < *
        !           560: < *      DNAMB IS ALWAYS HIGHER THAN STATE SINCE THE ALOST
        !           561: < *      PROCEDURE MAINTAINS SOME EXPANSION SPACE ABOVE STATE.
        !           562: < *      *** DNAMB MUST NEVER BE PERMITTED TO HAVE A VALUE LESS
        !           563: < *      THAN THAT IN MXLEN ***
        !           564: < *
        !           565: < *      SPACE IN THE DYNAMIC REGION IS ALLOCATED BY THE ALLOC
        !           566: < *      PROCEDURE. THE DYNAMIC REGION MAY BE USED BY SYSTEM
        !           567: < *      PROCEDURES PROVIDED THAT ALL THE RULES ARE OBEYED.
        !           568: <        EJC
        !           569: < *
        !           570: < *      REGISTER USAGE
        !           571: < *      --------------
        !           572: < *
        !           573: < *      (CP)                  CODE POINTER REGISTER. USED TO
        !           574: < *                            HOLD A POINTER TO THE CURRENT
        !           575: < *                            LOCATION IN THE INTERPRETIVE PSEUDO
        !           576: < *                            CODE (I.E. PTR INTO A CDBLK).
        !           577: < *
        !           578: < *      (XL,XR)               GENERAL INDEX REGISTERS. USUALLY
        !           579: < *                            USED TO HOLD POINTERS TO BLOCKS IN
        !           580: < *                            DYNAMIC STORAGE. AN IMPORTANT
        !           581: < *                            RESTRICTION IS THAT THE VALUE IN
        !           582: < *                            XL MUST BE COLLECTABLE FOR
        !           583: < *                            A GARBAGE COLLECT CALL. A VALUE
        !           584: < *                            IS COLLECTABLE IF IT EITHER POINTS
        !           585: < *                            OUTSIDE THE DYNAMIC AREA, OR IF IT
        !           586: < *                            POINTS TO THE START OF A BLOCK IN
        !           587: < *                            THE DYNAMIC AREA.
        !           588: < *
        !           589: < *      (XS)                  STACK POINTER. USED TO POINT TO
        !           590: 
        !           591: 
        !           592: 
        !           593: 
        !           594: 
        !           595: 
        !           596: 
        !           597: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 10
        !           598: 
        !           599: 
        !           600: < *                            THE STACK FRONT. THE STACK MAY
        !           601: < *                            BUILD UP OR DOWN AND IS USED
        !           602: < *                            TO STACK SUBROUTINE RETURN POINTS
        !           603: < *                            AND OTHER RECURSIVELY SAVED DATA.
        !           604: < *
        !           605: < *      (XT)                  AN ALTERNATIVE NAME FOR XL DURING
        !           606: < *                            ITS USE IN ACCESSING STACKED ITEMS.
        !           607: < *
        !           608: < *      (WA,WB,WC)            GENERAL WORK REGISTERS. CANNOT BE
        !           609: < *                            USED FOR INDEXING, BUT MAY HOLD
        !           610: < *                            VARIOUS TYPES OF DATA.
        !           611: < *
        !           612: < *      (IA)                  USED FOR ALL SIGNED INTEGER
        !           613: < *                            ARITHMETIC, BOTH THAT USED BY THE
        !           614: < *                            TRANSLATOR AND THAT ARISING FROM
        !           615: < *                            USE OF SNOBOL4 ARITHMETIC OPERATORS
        !           616: < *
        !           617: < *      (RA)                  REAL ACCUMULATOR. USED FOR ALL
        !           618: < *                            FLOATING POINT ARITHMETIC.
        !           619: <        EJC
        !           620: < *
        !           621: 416,422c121,134
        !           622: < *      ASSEMBLY SYMBOLS ARE REFERRED TO. TO INCORPORATE THE
        !           623: < *      FEATURES REFERRED TO, THE MINIMAL SOURCE SHOULD BE
        !           624: < *      PREFACED BY SUITABLE CONDITIONAL ASSEMBLY SYMBOL
        !           625: < *      DEFINITIONS.
        !           626: < *      IN ALL CASES IT IS PERMISSIBLE TO DEFAULT THE DEFINITIONS
        !           627: < *      IN WHICH CASE THE ADDITIONAL FEATURES WILL BE OMITTED
        !           628: < *      FROM THE TARGET CODE.
        !           629: ---
        !           630: > *      ASSEMBLY SYMBOLS ARE REFERRED TO.
        !           631: > *      A PARTICULAR SET OF DEFAULT SETTINGS IS GIVEN IN THIS
        !           632: > *      SOURCE BY USE OF .DEF AND .UNDEF PSEUDO OPS.
        !           633: > *      A DIFFERENT SELECTION MAY BE MADE BY VARYING THE
        !           634: > *      DEFINITIONS. AS AN ALTERNATIVE, THIS SECTION MAY BE
        !           635: > *      COMMENTED OUT AND THE MINIMAL TRANSLATOR PRELOADED WITH
        !           636: > *      THE SELECTED DEFINITIONS, THUS ALLOWING A MORE DYNAMIC
        !           637: > *      CHOICE TO BE MADE.
        !           638: > *      SOME OF THE CONDITIONAL FEATURES CHOOSE AMONGST A VARIETY
        !           639: > *      OF OPTIONS. OTHERS ARE DEFINED PRINCIPALLY TO ALLOW
        !           640: > *      OMISSION OF A FEATURE WHICH IS NOT WANTED IN ORDER TO
        !           641: > *      SAVE MEMORY OR BECAUSE IT CANNOT BE SUPPORTED.
        !           642: > *      NOTE THAT IF .CPLC OPTION IS CHOSEN, TRANSLATION OF DTC,
        !           643: > *      ERR, ERB ARGUMENTS SHOULD BE TO LOWER CASE.
        !           644: 424,505c136,158
        !           645: < *      .CASL                 DEFINE TO INCLUDE 26 SHIFTED LETTRS
        !           646: < *      .CAHT                 DEFINE TO INCLUDE HORIZONTAL TAB
        !           647: < *      .CAVT                 DEFINE TO INCLUDE VERTICAL TAB
        !           648: < *      .CIOD                 IF DEFINED, DEFAULT DELIMITER IS
        !           649: < *                            NOT USED IN PROCESSING 3RD ARG OF
        !           650: < *                            INPUT() AND OUTPUT()
        !           651: < *      .CNBT                 DEFINE TO OMIT BATCH INITIALISATION
        !           652: < *      .CNCI                 DEFINE TO ENABLE SYSCI ROUTINE
        !           653: < *      .CNEX                 DEFINE TO OMIT EXIT() CODE.
        !           654: < *      .CNLD                 DEFINE TO OMIT LOAD() CODE.
        !           655: < *      .CNPF                 DEFINE TO OMIT PROFILE STUFF
        !           656: 
        !           657: 
        !           658: 
        !           659: 
        !           660: 
        !           661: 
        !           662: 
        !           663: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 11
        !           664: 
        !           665: 
        !           666: < *      .CNRA                 DEFINE TO OMIT ALL REAL ARITHMETIC
        !           667: < *      .CNSR                 DEFINE TO OMIT SORT, RSORT
        !           668: < *      .CSAX                 DEFINE IF SYSAX IS TO BE CALLED
        !           669: < *      .CSN6                 DEFINE TO PAD STMT NOS TO 6 CHARS
        !           670: < *      .CSN8                 DEFINE TO PAD STMT NOS TO 8 CHARS
        !           671: < *      .CUCF                 DEFINE TO INCLUDE CFP$U
        !           672: < *      .CULC                 DEFINE TO INCLUDE &CASE (LC NAMES)
        !           673: < *      .CUST                 DEFINE TO INCLUDE SET() CODE
        !           674: < .DEF   .CASL
        !           675: < .DEF   .CAHT
        !           676: < .DEF   .CIOD
        !           677: < .DEF   .CSAX
        !           678: < .DEF   .CSN8
        !           679: < .DEF   .CUCF
        !           680: < .DEF   .CUEJ
        !           681: < .DEF   .CULC
        !           682: < .DEF   .CUST
        !           683: <        TTL  S P I T B O L -- PROCEDURES SECTION
        !           684: < *
        !           685: < *      THIS SECTION STARTS WITH DESCRIPTIONS OF THE OPERATING
        !           686: < *      SYSTEM DEPENDENT PROCEDURES WHICH ARE USED BY THE SPITBOL
        !           687: < *      TRANSLATOR. ALL SUCH PROCEDURES HAVE FIVE LETTER NAMES
        !           688: < *      BEGINNING WITH SYS. THEY ARE LISTED IN ALPHABETICAL
        !           689: < *      ORDER.
        !           690: < *      ALL PROCEDURES HAVE A  SPECIFICATION CONSISTING OF A
        !           691: < *      MODEL CALL, PRECEDED BY A POSSIBLY EMPTY LIST OF REGISTER
        !           692: < *      CONTENTS GIVING PARAMETERS AVAILABLE TO THE PROCEDURE AND
        !           693: < *      FOLLOWED BY A POSSIBLY EMPTY LIST OF REGISTER CONTENTS
        !           694: < *      REQUIRED ON RETURN FROM THE CALL OR WHICH MAY HAVE HAD
        !           695: < *      THEIR CONTENTS DESTROYED. ONLY THOSE REGISTERS EXPLICITLY
        !           696: < *      MENTIONED IN THE LIST AFTER THE CALL MAY HAVE THEIR
        !           697: < *      VALUES CHANGED.
        !           698: < *      THE SEGMENT OF CODE PROVIDING THE EXTERNAL PROCEDURES IS
        !           699: < *      CONVENIENTLY REFERRED TO AS OSINT (OPERATING SYSTEM
        !           700: < *      INTERFACE). THE SYSXX PROCEDURES IT CONTAINS PROVIDE
        !           701: < *      FACILITIES NOT USUALLY AVAILABLE AS PRIMITIVES IN
        !           702: < *      ASSEMBLY LANGUAGES. FOR PARTICULAR TARGET MACHINES,
        !           703: < *      IMPLEMENTORS MAY CHOOSE FOR SOME MINIMAL OPCODES WHICH
        !           704: < *      DO NOT HAVE REASONABLY DIRECT TRANSLATIONS, TO USE CALLS
        !           705: < *      OF ADDITIONAL PROCEDURES WHICH THEY PROVIDE IN OSINT.
        !           706: < *      E.G. MWB OR TRC MIGHT BE TRANSLATED AS JSR SYSMB,
        !           707: < *      JSR SYSTC IN SOME IMPLEMENTATIONS.
        !           708: < *
        !           709: < *      IN THE DESCRIPTIONS, REFERENCE IS MADE TO --BLK
        !           710: < *      FORMATS (-- = A PAIR OF LETTERS). SEE THE SPITBOL
        !           711: < *      DEFINITIONS SECTION FOR DETAILED DESCRIPTIONS OF ALL
        !           712: < *      SUCH BLOCK FORMATS EXCEPT FCBLK FOR WHICH SYSFC SHOULD
        !           713: < *      BE CONSULTED.
        !           714: < *
        !           715: < *      SECTION 0 CONTAINS INP,INR SPECIFICATIONS OF INTERNAL
        !           716: < *      PROCEDURES,ROUTINES. THIS GIVES A SINGLE PASS TRANSLATOR
        !           717: < *      INFORMATION MAKING IT EASY TO GENERATE ALTERNATIVE CALLS
        !           718: < *      IN THE TRANSLATION OF JSR-S FOR PROCEDURES OF DIFFERENT
        !           719: < *      TYPES IF THIS PROVES NECESSARY.
        !           720: < *
        !           721: <        SEC                   START OF PROCEDURES SECTION
        !           722: 
        !           723: 
        !           724: 
        !           725: 
        !           726: 
        !           727: 
        !           728: 
        !           729: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 12
        !           730: 
        !           731: 
        !           732: < .IF    .CSAX
        !           733: <        EJC
        !           734: < *
        !           735: < *      SYSAX -- AFTER EXECUTION
        !           736: < *
        !           737: < SYSAX  EXP                   DEFINE EXTERNAL ENTRY POINT
        !           738: < *
        !           739: < *      IF THE CONDITIONAL ASSEMBLY SYMBOL .CSAX IS DEFINED,
        !           740: < *      THIS ROUTINE IS CALLED IMMEDIATELY AFTER EXECUTION AND
        !           741: < *      BEFORE PRINTING OF EXECUTION STATISTICS OR DUMP OUTPUT.
        !           742: < *      PURPOSE OF CALL IS FOR IMPLEMENTOR TO DETERMINE AND
        !           743: < *      IF THE CALL IS NOT REQUIRED IT WILL BE OMITTED IF .CSAX
        !           744: < *      IS UNDEFINED. IN THIS CASE SYSAX NEED NOT BE CODED.
        !           745: < *
        !           746: < *      JSR  SYSAX            CALL AFTER EXECUTION
        !           747: ---
        !           748: > *.DEF   .CAHT                 DEFINE TO INCLUDE HORIZONTAL TAB
        !           749: > *.DEF   .CASL                 DEFINE TO INCLUDE 26 SHIFTED LETTRS
        !           750: > *.DEF   .CAVT                 DEFINE TO INCLUDE VERTICAL TAB
        !           751: > *.UNDEF .CEPP                 DEFINE FOR ODD PARITY ENTRY POINTS
        !           752: > *.UNDEF .CNBF                 DEFINE TO OMIT BUFFER EXTENSION
        !           753: > *.UNDEF .CNBT                 DEFINE TO OMIT BATCH INITIALISATION
        !           754: > *.UNDEF .CNEX                 DEFINE TO OMIT EXIT() CODE
        !           755: > *.UNDEF .CNFN                 DEFINE TO OMIT FENCE() CODE
        !           756: > *.UNDEF .CNLD                 DEFINE TO OMIT LOAD() CODE
        !           757: > *.UNDEF .CNPF                 DEFINE TO OMIT PROFILE CODE
        !           758: > *.UNDEF .CNRA                 DEFINE TO OMIT ALL REAL ARITHMETIC
        !           759: > *.UNDEF .CNSR                 DEFINE TO OMIT SORT, RSORT CODE
        !           760: > *.DEF   .CPLC                 DEFINE IF HOST PREFERS LOWER CASE
        !           761: > *.UNDEF .CRPP                 DEFINE FOR ODD PARITY RETURN POINTS
        !           762: > *.UNDEF .CS16                 DEFINE TO INITIALIZE STLIM TO 32767
        !           763: > *.UNDEF .CSAX                 DEFINE IF SYSAX IS TO BE CALLED
        !           764: > *.UNDEF .CSCI                 DEFINE TO ENABLE SYSCI ROUTINE
        !           765: > *.UNDEF .CSCV                 DEFINE FOR CLU, CUL CASE CONVERSION
        !           766: > *.DEF   .CSIG                 DEFINE TO IGNORE CASE OF LETTERS
        !           767: > *.UNDEF .CSN6                 DEFINE TO PAD STMT NOS TO 6 CHARS
        !           768: > *.DEF   .CSN8                 DEFINE TO PAD STMT NOS TO 8 CHARS
        !           769: > *.UNDEF .CTMD                 DEFINE IF SYSTM UNIT IS DECISECOND
        !           770: > .IF    .CASL
        !           771: 506a160,161
        !           772: > .UNDEF .CSIG                 .CSIG USELESS WITHOUT LC LETTERS
        !           773: > .UNDEF .CPLC                 .CPLC ERRONEOUS WITHOUT LC LETTERS
        !           774: 510c165
        !           775: < *      SYSBX -- BEFORE EXECUTION
        !           776: ---
        !           777: > *      ACTUAL PROCESSABLE EXP PROCEDURE DEFINITIONS
        !           778: 512,547c167,169
        !           779: < SYSBX  EXP                   DEFINE EXTERNAL ENTRY POINT
        !           780: < *
        !           781: < *      CALLED AFTER INITIAL SPITBOL COMPILATION AND BEFORE
        !           782: < *      COMMENCING EXECUTION IN CASE OSINT NEEDS
        !           783: < *      TO ASSIGN FILES OR PERFORM OTHER NECESSARY SERVICES.
        !           784: < *      OSINT MAY ALSO CHOOSE TO SEND A MESSAGE TO ONLINE
        !           785: < *      TERMINAL (IF ANY) INDICATING THAT EXECUTION IS STARTING.
        !           786: < *
        !           787: < *      JSR  SYSBX            CALL BEFORE EXECUTION STARTS
        !           788: 
        !           789: 
        !           790: 
        !           791: 
        !           792: 
        !           793: 
        !           794: 
        !           795: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 13
        !           796: 
        !           797: 
        !           798: <        EJC
        !           799: < .IF    .CNCI
        !           800: < *
        !           801: < *      SYSCI -- CONVERT INTEGER
        !           802: < *
        !           803: < SYSCI  EXP
        !           804: < *
        !           805: < *      SYSCI IS AN OPTIONAL OSINT ROUTINE THAT CAUSES SPITBOL TO
        !           806: < *      CALL SYSCI TO CONVERT INTEGER VALUES TO STRINGS, RATHER
        !           807: < *      THAN USING SPITBOL'S OWN INTERNAL CONVERSION CODE.  THIS
        !           808: < *      CODE MAY BE LESS EFFICIENT ON MACHINES WITH HARDWARE
        !           809: < *      CONVERSION INSTRUCTIONS AND IN SUCH CASES, IT MAY BE AN
        !           810: < *      ADVANTAGE TO INCLUDE SYSCI.  THE SYMBOL .CNCI MUST BE
        !           811: < *      DEFINED IF THIS ROUTINE IS TO BE USED.
        !           812: < *
        !           813: < *      THE RULES FOR CONVERTING INTEGERS TO STRINGS ARE THAT
        !           814: < *      POSITIVE VALUES ARE REPRESENTED WITHOUT ANY SIGN, AND
        !           815: < *      THERE ARE NEVER ANY LEADING BLANKS OR ZEROS, EXCEPT IN
        !           816: < *      THE CASE OF ZERO ITSELF WHICH IS REPRESENTED AS A SINGLE
        !           817: < *      ZERO DIGIT.  NEGATIVE NUMBERS ARE REPRESENTED WITH A
        !           818: < *      PRECEEDING MINUS SIGN.  THERE ARE NEVER ANY TRAILING
        !           819: < *      BLANKS, AND CONVERSION CANNOT FAIL.
        !           820: < *
        !           821: < *      (IA)                  VALUE TO BE CONVERTED
        !           822: < *      JSR  SYSCI            CALL TO CONVERT INTEGER VALUE
        !           823: < *      (XL)                  POINTER TO PSEUDO-SCBLK WITH STRING
        !           824: <        EJC
        !           825: ---
        !           826: > .IF    .CSAX
        !           827: > SYSAX  EXP  E,0
        !           828: > .ELSE
        !           829: 549,1250c171,203
        !           830: < *
        !           831: < *      SYSDC -- DATE CHECK
        !           832: < *
        !           833: < SYSDC  EXP                   DEFINE EXTERNAL ENTRY POINT
        !           834: < *
        !           835: < *      SYSDC IS CALLED TO CHECK THAT THE EXPIRY DATE FOR A TRIAL
        !           836: < *      VERSION OF SPITBOL IS UNEXPIRED.
        !           837: < *
        !           838: < *      JSR  SYSDC            CALL TO CHECK DATE
        !           839: < *      RETURN ONLY IF DATE IS OK
        !           840: <        EJC
        !           841: < *
        !           842: < *      SYSDM  -- DUMP CORE
        !           843: < *
        !           844: < SYSDM  EXP                   DEFINE EXTERNAL ENTRY POINT
        !           845: < *
        !           846: < *      SYSDM IS CALLED BY A SPITBOL PROGRAM CALL OF DUMP(N) WITH
        !           847: < *      N GE 3.  ITS PURPOSE IS TO PROVIDE A CORE DUMP.
        !           848: < *      N COULD HOLD AN ENCODING OF THE START ADRS FOR DUMP AND
        !           849: < *      AMOUNT TO BE DUMPED E.G.  N = 256*A + S , S = START ADRS
        !           850: < *      IN KILOWORDS,  A = KILOWORDS TO DUMP
        !           851: < *
        !           852: < *      (XR)                  PARAMETER N OF CALL DUMP(N)
        !           853: < *      JSR  SYSDM            CALL TO ENTER ROUTINE
        !           854: 
        !           855: 
        !           856: 
        !           857: 
        !           858: 
        !           859: 
        !           860: 
        !           861: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 14
        !           862: 
        !           863: 
        !           864: <        EJC
        !           865: < *
        !           866: < *      SYSDT -- GET CURRENT DATE
        !           867: < *
        !           868: < SYSDT  EXP                   DEFINE EXTERNAL ENTRY POINT
        !           869: < *
        !           870: < *      SYSDT IS USED TO OBTAIN THE CURRENT DATE. THE DATE IS
        !           871: < *      RETURNED AS A CHARACTER STRING IN ANY FORMAT APPROPRIATE
        !           872: < *      TO THE OPERATING SYSTEM IN USE. IT MAY ALSO CONTAIN THE
        !           873: < *      CURRENT TIME OF DAY. SYSDT IS USED TO IMPLEMENT THE
        !           874: < *      SNOBOL4 FUNCTION DATE.
        !           875: < *
        !           876: < *      JSR  SYSDT            CALL TO GET DATE
        !           877: < *      (XL)                  POINTER TO BLOCK CONTAINING DATE
        !           878: < *
        !           879: < *      THE FORMAT OF THE BLOCK IS LIKE AN SCBLK EXCEPT THAT
        !           880: < *      THE FIRST WORD NEED NOT BE SET. THE RESULT IS COPIED
        !           881: < *      INTO SPITBOL DYNAMIC MEMORY ON RETURN.
        !           882: <        EJC
        !           883: < *
        !           884: < *      SYSEF -- EJECT FILE
        !           885: < *
        !           886: < SYSEF  EXP                   DEFINE EXTERNAL ENTRY POINT
        !           887: < *
        !           888: < *      SYSEF IS USED TO WRITE A PAGE EJECT TO A NAMED FILE. IT
        !           889: < *      MAY ONLY BE USED FOR FILES WHERE THIS CONCEPT MAKES
        !           890: < *      SENSE. NOTE THAT SYSEF IS NOT NORMALLY USED FOR THE
        !           891: < *      STANDARD OUTPUT FILE (SEE SYSEP).
        !           892: < *
        !           893: < *      (WA)                  PTR TO FCBLK OR ZERO
        !           894: < *      (XR)                  EJECT ARGUMENT (SCBLK PTR)
        !           895: < *      JSR  SYSEF            CALL TO EJECT FILE
        !           896: < *      PPM  LOC              RETURN HERE IF FILE DOES NOT EXIST
        !           897: < *      PPM  LOC              RETURN HERE IF INAPPROPRIATE FILE
        !           898: < *      PPM  LOC              RETURN HERE IF I/O ERROR
        !           899: <        EJC
        !           900: < *
        !           901: < *      SYSEJ -- END OF JOB
        !           902: < *
        !           903: < SYSEJ  EXP                   DEFINE EXTERNAL ENTRY POINT
        !           904: < *
        !           905: < *      SYSEJ IS CALLED ONCE AT THE END OF EXECUTION TO
        !           906: < *      TERMINATE THE RUN. THE SIGNIFICANCE OF THE ABEND AND
        !           907: < *      CODE VALUES IS SYSTEM DEPENDENT. IN GENERAL, THE CODE
        !           908: < *      VALUE SHOULD BE MADE AVAILABLE FOR TESTING, AND THE
        !           909: < *      ABEND VALUE SHOULD CAUSE SOME POST-MORTEM ACTION SUCH AS
        !           910: < *      A DUMP. NOTE THAT SYSEJ DOES NOT RETURN TO ITS CALLER.
        !           911: < *      SEE SYSXI FOR DETAILS OF FCBLK CHAIN
        !           912: < *
        !           913: < *      (WA)                  VALUE OF ABEND KEYWORD
        !           914: < *      (WB)                  VALUE OF CODE KEYWORD
        !           915: < *      (XL)                  O OR PTR TO HEAD OF FCBLK CHAIN
        !           916: < *      JSR  SYSEJ            CALL TO END JOB
        !           917: < *
        !           918: < *      THE FOLLOWING SPECIAL VALUES ARE USED AS CODES IN (WB)
        !           919: < *      999  EXECUTION SUPPRESSED
        !           920: 
        !           921: 
        !           922: 
        !           923: 
        !           924: 
        !           925: 
        !           926: 
        !           927: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 15
        !           928: 
        !           929: 
        !           930: < *      998  STANDARD OUTPUT FILE FULL OR UNAVAILABLE IN A SYSXI
        !           931: < *           LOAD MODULE. IN THESE CASES (WA) CONTAINS THE NUMBER
        !           932: < *           OF THE STATEMENT CAUSING PREMATURE TERMINATION.
        !           933: <        EJC
        !           934: < *
        !           935: < *      SYSEM -- GET ERROR MESSAGE TEXT
        !           936: < *
        !           937: < SYSEM  EXP                   DEFINE EXTERNAL ENTRY POINT
        !           938: < *
        !           939: < *      SYSEM IS USED TO OBTAIN THE TEXT OF ERR, ERB CALLS IN THE
        !           940: < *      SOURCE PROGRAM GIVEN THE ERROR CODE NUMBER. IT IS ALLOWED
        !           941: < *      TO RETURN A NULL STRING IF THIS FACILITY IS UNAVAILABLE.
        !           942: < *
        !           943: < *      (WA)                  ERROR CODE NUMBER
        !           944: < *      JSR  SYSEM            CALL TO GET TEXT
        !           945: < *      (XR)                  TEXT OF MESSAGE
        !           946: < *
        !           947: < *      THE RETURNED VALUE IS A POINTER TO A BLOCK IN SCBLK
        !           948: < *      FORMAT EXCEPT THAT THE FIRST WORD NEED NOT BE SET. THE
        !           949: < *      STRING IS COPIED INTO DYNAMIC MEMORY ON RETURN.
        !           950: < *      IF THE NULL STRING IS RETURNED EITHER BECAUSE SYSEM DOES
        !           951: < *      NOT PROVIDE ERROR MESSAGE TEXTS OR BECAUSE WA IS OUT OF
        !           952: < *      RANGE, SPITBOL WILL PRINT THE STRING STORED IN ERRTEXT
        !           953: < *      KEYWORD.
        !           954: <        EJC
        !           955: < *
        !           956: < *      SYSEN -- ENDFILE
        !           957: < *
        !           958: < SYSEN  EXP                   DEFINE EXTERNAL ENTRY POINT
        !           959: < *
        !           960: < *      SYSEN IS USED TO IMPLEMENT THE SNOBOL4 FUNCTION ENDFILE.
        !           961: < *      THE MEANING IS SYSTEM DEPENDENT. IN GENERAL, ENDFILE
        !           962: < *      IMPLIES THAT NO FURTHER I/O OPERATIONS WILL BE PERFORMED,
        !           963: < *      BUT DOES NOT GUARANTEE THIS TO BE THE CASE. THE FILE
        !           964: < *      SHOULD BE CLOSED AFTER THE CALL, A SUBSEQUENT READ
        !           965: < *      OR WRITE MAY REOPEN THE FILE AT THE START OR IT MAY BE
        !           966: < *      NECESSARY TO REOPEN THE FILE VIA SYSIO.
        !           967: < *
        !           968: < *      (WA)                  PTR TO FCBLK OR ZERO
        !           969: < *      (XR)                  ENDFILE ARGUMENT (SCBLK PTR)
        !           970: < *      JSR  SYSEN            CALL TO ENDFILE
        !           971: < *      PPM  LOC              RETURN HERE IF FILE DOES NOT EXIST
        !           972: < *      PPM  LOC              RETURN HERE IF ENDFILE NOT ALLOWED
        !           973: < *      PPM  LOC              RETURN HERE IF I/O ERROR
        !           974: < *      (WA,WB)               DESTROYED
        !           975: < *
        !           976: < *      THE SECOND ERROR RETURN IS USED FOR FILES FOR WHICH
        !           977: < *      ENDFILE IS NOT PERMITTED. FOR EXAMPLE, IT MAY BE EXPECTED
        !           978: < *      THAT THE STANDARD INPUT AND OUTPUT FILES ARE IN THIS
        !           979: < *      CATEGORY.
        !           980: <        EJC
        !           981: < *
        !           982: < *      SYSEP -- EJECT PRINTER PAGE
        !           983: < *
        !           984: < SYSEP  EXP                   DEFINE EXTERNAL ENTRY POINT
        !           985: < *
        !           986: 
        !           987: 
        !           988: 
        !           989: 
        !           990: 
        !           991: 
        !           992: 
        !           993: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 16
        !           994: 
        !           995: 
        !           996: < *      SYSEP IS CALLED TO PERFORM A PAGE EJECT ON THE STANDARD
        !           997: < *      PRINTER OUTPUT FILE (CORRESPONDING TO SYSPR OUTPUT).
        !           998: < *
        !           999: < *      JSR  SYSEP            CALL TO EJECT PRINTER OUTPUT
        !          1000: <        EJC
        !          1001: < *
        !          1002: < *      SYSEX -- CALL EXTERNAL FUNCTION
        !          1003: < *
        !          1004: < SYSEX  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1005: < *
        !          1006: < *      SYSEX IS CALLED TO PASS CONTROL TO AN EXTERNAL FUNCTION
        !          1007: < *      PREVIOUSLY LOADED WITH A CALL TO SYSLD.
        !          1008: < *
        !          1009: < *      (XS)                  POINTER TO ARGUMENTS ON STACK
        !          1010: < *      (XL)                  POINTER TO CONTROL BLOCK (EFBLK)
        !          1011: < *      (WA)                  NUMBER OF ARGUMENTS ON STACK
        !          1012: < *      JSR  SYSEX            CALL TO PASS CONTROL TO FUNCTION
        !          1013: < *      PPM  LOC              RETURN HERE IF FUNCTION CALL FAILS
        !          1014: < *      (XS)                  POPPED PAST ARGUMENTS
        !          1015: < *      (XR)                  RESULT RETURNED
        !          1016: < *
        !          1017: < *      THE ARGUMENTS ARE STORED ON THE STACK WITH
        !          1018: < *      THE LAST ARGUMENT AT 0(XS). ON RETURN, XS
        !          1019: < *      IS POPPED PAST THE ARGUMENTS.
        !          1020: < *
        !          1021: < *      THE FORM OF THE ARGUMENTS AS PASSED IS THAT USED IN THE
        !          1022: < *      SPITBOL TRANSLATOR (SEE DEFINITIONS AND DATA STRUCTURES
        !          1023: < *      SECTION). THE CONTROL BLOCK FORMAT IS ALSO DESCRIBED
        !          1024: < *      (UNDER EFBLK) IN THIS SECTION.
        !          1025: < *
        !          1026: < *      THERE ARE TWO WAYS OF RETURNING A RESULT.
        !          1027: < *
        !          1028: < *      1)   RETURN A POINTER TO A BLOCK IN DYNAMIC STORAGE. THIS
        !          1029: < *           BLOCK MUST BE IN EXACTLY CORRECT FORMAT, INCLUDING
        !          1030: < *           THE FIRST WORD. ONLY FUNCTIONS WRITTEN WITH INTIMATE
        !          1031: < *           KNOWLEDGE OF THE SYSTEM WILL RETURN IN THIS WAY.
        !          1032: < *
        !          1033: < *      2)   STRING, INTEGER AND REAL RESULTS MAY BE RETURNED BY
        !          1034: < *           POINTING TO A PSEUDO-BLOCK OUTSIDE DYNAMIC MEMORY.
        !          1035: < *           THIS BLOCK IS IN ICBLK, RCBLK OR SCBLK FORMAT EXCEPT
        !          1036: < *           THAT THE FIRST WORD WILL BE OVERWRITTEN
        !          1037: < *           BY A TYPE WORD ON RETURN AND SO NEED NOT
        !          1038: < *           BE CORRECTLY SET. SUCH A RESULT IS
        !          1039: < *           COPIED INTO MAIN STORAGE BEFORE PROCEEDING.
        !          1040: < *           UNCONVERTED RESULTS MAY SIMILARLY BE RETURNED IN A
        !          1041: < *           PSEUDO-BLOCK WHICH IS IN CORRECT FORMAT INCLUDING
        !          1042: < *           TYPE WORD RECOGNISABLE BY GARBAGE COLLECTOR SINCE
        !          1043: < *           BLOCK IS COPIED INTO DYNAMIC MEMORY.
        !          1044: <        EJC
        !          1045: < *
        !          1046: < *      SYSFC -- FILE CONTROL BLOCK ROUTINE
        !          1047: < *
        !          1048: < SYSFC  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1049: < *
        !          1050: < *      SEE ALSO SYSIO
        !          1051: < *      INPUT AND OUTPUT HAVE 3 ARGUMENTS REFERRED TO AS SHOWN
        !          1052: 
        !          1053: 
        !          1054: 
        !          1055: 
        !          1056: 
        !          1057: 
        !          1058: 
        !          1059: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 17
        !          1060: 
        !          1061: 
        !          1062: < *           INPUT(VARIABLE NAME,FILE ARG1,FILE ARG2)
        !          1063: < *           OUTPUT(VARIABLE NAME,FILE ARG1,FILE ARG2)
        !          1064: < *      FILE ARG1 MAY BE AN INTEGER OR STRING USED TO IDENTIFY
        !          1065: < *      AN I/O CHANNEL. IT IS CONVERTED TO A STRING FOR CHECKING.
        !          1066: < *      THE EXACT SIGNIFICANCE OF FILE ARG2
        !          1067: < *      IS NOT RIGOROUSLY PRESCRIBED BUT TO IMPROVE PORTABILITY,
        !          1068: < *      THE SCHEME DESCRIBED IN THE SPITBOL USER MANUAL
        !          1069: < *      SHOULD BE ADOPTED WHEN POSSIBLE. THE PREFERRED FORM IS
        !          1070: < *      A STRING $F$,R$R$,C$C$,I$I$,...,Z$Z$  WHERE
        !          1071: < *      $F$ IS AN OPTIONAL FILE NAME WHICH IS PLACED FIRST.
        !          1072: < *       REMAINING ITEMS MAY BE OMITTED OR INCLUDED IN ANY ORDER.
        !          1073: < *      $R$ IS MAXIMUM RECORD LENGTH
        !          1074: < *      $C$ IS A CARRIAGE CONTROL CHARACTER OR CHARACTER STRING
        !          1075: < *      $I$ IS SOME FORM OF CHANNEL IDENTIFICATION USED IN THE
        !          1076: < *         ABSENCE OF $F$ TO ASSOCIATE THE VARIABLE
        !          1077: < *         WITH A FILE ALLOCATED DYNAMICALLY BY JCL COMMANDS AT
        !          1078: < *         SPITBOL LOAD TIME.
        !          1079: < *      ,...,Z$Z$ ARE ADDITIONAL FIELDS.
        !          1080: < *      IF , (COMMA) CANNOT BE USED AS A DELIMITER, .CIOD
        !          1081: < *      SHOULD BE DEFINED TO INTRODUCE BY CONDITIONAL ASSEMBLY
        !          1082: < *      ANOTHER DELIMITER (SEE
        !          1083: < *        IODEL  EQU  *
        !          1084: < *      EARLY IN DEFINITIONS SECTION).
        !          1085: < *      SYSFC IS CALLED WHEN A VARIABLE IS INPUT OR OUTPUT
        !          1086: < *      ASSOCIATED TO CHECK FILE ARG1 AND FILE ARG2 AND
        !          1087: < *      TO  REPORT WHETHER AN FCBLK (FILE CONTROL
        !          1088: < *      BLOCK) IS NECESSARY AND IF SO WHAT SIZE IT SHOULD BE.
        !          1089: < *      THIS MAKES IT POSSIBLE FOR SPITBOL RATHER THAN OSINT TO
        !          1090: < *      ALLOCATE SUCH A BLOCK IN DYNAMIC MEMORY IF REQUIRED
        !          1091: < *      OR ALTERNATIVELY IN STATIC MEMORY.
        !          1092: < *      THE SIGNIFICANCE OF AN FCBLK , IF ONE IS REQUESTED, IS
        !          1093: < *      ENTIRELY UP TO THE SYSTEM INTERFACE. THE ONLY RESTRICTION
        !          1094: < *      IS THAT IF THE FCBLK SHOULD APPEAR TO LIE IN DYNAMIC
        !          1095: < *      MEMORY , POINTERS TO IT SHOULD BE PROPER POINTERS TO
        !          1096: < *      THE START OF A RECOGNISABLE AND GARBAGE COLLECTABLE
        !          1097: < *      BLOCK (THIS CONDITION WILL BE MET IF SYSFC REQUESTS
        !          1098: < *      SPITBOL TO PROVIDE AN FCBLK).
        !          1099: < *      AN OPTION IS PROVIDED FOR OSINT TO RETURN A POINTER IN
        !          1100: < *      XL TO AN FCBLK WHICH IT PRIVATELY ALLOCATED. THIS PTR
        !          1101: < *      WILL BE MADE AVAILABLE WHEN I/O OCCURS LATER.
        !          1102: < *      PRIVATE FCBLKS MAY HAVE ARBITRARY CONTENTS AND SPITBOL
        !          1103: < *      STORES NOTHING IN THEM.
        !          1104: <        EJC
        !          1105: < *      THE REQUESTED SIZE FOR AN FCBLK IN DYNAMIC MEMORY
        !          1106: < *      SHOULD ALLOW A 2 WORD OVERHEAD FOR BLOCK TYPE AND
        !          1107: < *      LENGTH FIELDS. INFORMATION SUBSEQUENTLY STORED IN THE
        !          1108: < *      REMAINING WORDS MAY BE ARBITRARY IF AN XNBLK (EXTERNAL
        !          1109: < *      NON-RELOCATABLE BLOCK) IS REQUESTED. IF THE REQUEST IS
        !          1110: < *      FOR AN XRBLK (EXTERNAL RELOCATABLE BLOCK) THE
        !          1111: < *      CONTENTS OF WORDS SHOULD BE COLLECTABLE (I.E. ANY
        !          1112: < *      APPARENT POINTERS INTO DYNAMIC SHOULD BE GENUINE BLOCK
        !          1113: < *      POINTERS). THESE RESTRICTIONS DO NOT APPLY IF AN FCBLK
        !          1114: < *      IS ALLOCATED OUTSIDE DYNAMIC OR IS NOT ALLOCATED AT ALL.
        !          1115: < *      IF AN FCBLK IS REQUESTED, ITS FIELDS WILL BE INITIALISED
        !          1116: < *      TO ZERO BEFORE ENTRY TO SYSIO WITH THE EXCEPTION OF
        !          1117: < *      WORDS 0 AND 1 IN WHICH THE BLOCK TYPE AND LENGTH
        !          1118: 
        !          1119: 
        !          1120: 
        !          1121: 
        !          1122: 
        !          1123: 
        !          1124: 
        !          1125: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 18
        !          1126: 
        !          1127: 
        !          1128: < *      FIELDS ARE PLACED FOR FCBLKS IN DYNAMIC MEMORY ONLY.
        !          1129: < *      FOR THE POSSIBLE USE OF SYSEJ AND SYSXI, IF FCBLKS
        !          1130: < *      ARE USED, A CHAIN IS BUILT SO THAT THEY MAY ALL BE
        !          1131: < *      FOUND - SEE SYSXI FOR DETAILS.
        !          1132: < *      IF BOTH FILE ARG1 AND FILE ARG2 ARE NULL, CALLS OF SYSFC
        !          1133: < *      AND SYSIO ARE OMITTED.
        !          1134: < *      IF FILE ARG1 IS NULL (STANDARD INPUT/OUTPUT FILE), SYSFC
        !          1135: < *      IS CALLED TO CHECK NON-NULL FILE ARG2 BUT ANY REQUEST
        !          1136: < *      FOR AN FCBLK WILL BE IGNORED, SINCE SPITBOL HANDLES THE
        !          1137: < *      STANDARD FILES SPECIALLY AND CANNOT READILY KEEP FCBLK
        !          1138: < *      POINTERS FOR THEM.
        !          1139: < *      FILEARG1 IS TYPE CHECKED BY SPITBOL SO FURTHER CHECKING
        !          1140: < *      MAY BE UNNECCESSARY IN MANY IMPLEMENTATIONS.
        !          1141: < *      FILE ARG2 IS PASSED SO THAT SYSFC MAY ANALYSE AND
        !          1142: < *      CHECK IT. HOWEVER TO ASSIST IN THIS, SPITBOL ALSO PASSES
        !          1143: < *      ON THE STACK THE COMPONENTS OF THIS ARGUMENT WITH
        !          1144: < *      FILE NAME, $F$ (OTHERWISE NULL) EXTRACTED AND STACKED
        !          1145: < *      FIRST.
        !          1146: < *      THE OTHER FIELDS, IF ANY, ARE EXTRACTED AS SUBSTRINGS,
        !          1147: < *      POINTERS TO THEM ARE STACKED AND A COUNT OF ALL ITEMS
        !          1148: < *      STACKED IS PLACED IN WC. IF AN FCBLK WAS EARLIER
        !          1149: < *      ALLOCATED AND POINTED TO VIA FILE ARG1, SYSFC IS ALSO
        !          1150: < *      PASSED A POINTER TO THIS FCBLK.
        !          1151: < *
        !          1152: < *      (XL)                  FILE ARG1 SCBLK PTR (2ND ARG)
        !          1153: < *      (XR)                  FILEARG2 (3RD ARG) OR NULL
        !          1154: < *      -(XS)...-(XS)         SCBLKS FOR $F$,$R$,$C$,...
        !          1155: < *      (WC)                  NO. OF STACKED SCBLKS ABOVE
        !          1156: < *      (WA)                  EXISTING FILE ARG1 FCBLK PTR OR 0
        !          1157: < *      (WB)                  0/3 FOR INPUT/OUTPUT ASSOCN
        !          1158: < *      JSR  SYSFC            CALL TO CHECK NEED FOR FCBLK
        !          1159: < *      PPM  LOC              INVALID FILE ARGUMENT
        !          1160: < *      (XS)                  POPPED (WC) TIMES
        !          1161: < *      (WA NON ZERO)         BYTE SIZE OF REQUESTED FCBLK
        !          1162: < *      (WA=0,XL NON ZERO)    PRIVATE FCBLK PTR IN XL
        !          1163: < *      (WA=XL=0)             NO FCBLK WANTED, NO PRIVATE FCBLK
        !          1164: < *      (WC)                  0/1/2 REQUEST ALLOC OF XRBLK/XNBLK
        !          1165: < *                            /STATIC BLOCK FOR USE AS FCBLK
        !          1166: < *      (WB)                  DESTROYED
        !          1167: <        EJC
        !          1168: < *
        !          1169: < *      SYSHS -- GIVE ACCESS TO HOST COMPUTER FEATURES
        !          1170: < *
        !          1171: < SYSHS  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1172: < *
        !          1173: < *      PROVIDES MEANS FOR IMPLEMENTING SPECIAL FEATURES
        !          1174: < *      ON DIFFERENT HOST COMPUTERS. THE ONLY DEFINED ENTRY IS
        !          1175: < *      THAT WHERE ALL ARGUMENTS ARE NULL IN WHICH CASE SYSHS
        !          1176: < *      RETURNS AN SCBLK CONTAINING NAME OF COMPUTER,
        !          1177: < *      NAME OF OPERATING SYSTEM AND NAME OF SITE SEPARATED BY
        !          1178: < *      COLONS. THE SCBLK NEED NOT HAVE A CORRECT FIRST FIELD
        !          1179: < *      AS THIS IS SUPPLIED ON COPYING STRING TO DYNAMIC MEMORY.
        !          1180: < *      SPITBOL DOES NO ARGUMENT CHECKING BUT DOES PROVIDE A
        !          1181: < *      SINGLE ERROR RETURN FOR ARGUMENTS CHECKED AS ERRONEOUS
        !          1182: < *      BY OSINT. IT ALSO PROVIDES A SINGLE EXECUTION ERROR
        !          1183: < *      RETURN. IF THESE ARE INADEQUATE, USE MAY BE MADE OF THE
        !          1184: 
        !          1185: 
        !          1186: 
        !          1187: 
        !          1188: 
        !          1189: 
        !          1190: 
        !          1191: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 19
        !          1192: 
        !          1193: 
        !          1194: < *      MINIMAL ERROR SECTION DIRECT AS DESCRIBED IN MINIMAL
        !          1195: < *      DOCUMENTATION, SECTION 10.
        !          1196: < *      SEVERAL NON-ERROR RETURNS ARE PROVIDED. THE FIRST
        !          1197: < *      CORRESPONDS TO THE DEFINED ENTRY OR, FOR IMPLEMENTATION
        !          1198: < *      DEFINED ENTRIES, ANY STRING MAY BE RETURNED. THE OTHERS
        !          1199: < *      PERMIT RESPECTIVELY,  RETURN A NULL RESULT, RETURN WITH A
        !          1200: < *      RESULT TO BE STACKED WHICH IS POINTED AT BY XR, AND A
        !          1201: < *      RETURN CAUSING SPITBOL STATEMENT FAILURE. IF A RETURNED
        !          1202: < *      RESULT IS IN DYNAMIC MEMORY IT MUST OBEY GARBAGE
        !          1203: < *      COLLECTOR RULES. THE ONLY RESULTS COPIED ON RETURN
        !          1204: < *      ARE STRINGS RETURNED VIA PPM LOC3 RETURN.
        !          1205: < *
        !          1206: < *      (WA)                  ARGUMENT 1
        !          1207: < *      (XL)                  ARGUMENT 2
        !          1208: < *      (XR)                  ARGUMENT 3
        !          1209: < *      JSR  SYSHS            CALL TO GET HOST INFORMATION
        !          1210: < *      PPM  LOC1             ERRONEOUS ARG
        !          1211: < *      PPM  LOC2             EXECUTION ERROR
        !          1212: < *      PPM  LOC3             SCBLK PTR IN XL OR 0 IF UNAVAILABLE
        !          1213: < *      PPM  LOC4             RETURN A NULL RESULT
        !          1214: < *      PPM  LOC5             RETURN RESULT IN XR
        !          1215: < *      PPM  LOC6             CAUSE STATEMENT FAILURE
        !          1216: <        EJC
        !          1217: < *
        !          1218: < *      SYSID -- RETURN SYSTEM IDENTIFICATION
        !          1219: < *
        !          1220: < SYSID  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1221: < *
        !          1222: < *      THIS ROUTINE SHOULD RETURN STRINGS TO HEAD THE STANDARD
        !          1223: < *      PRINTER OUTPUT. THE FIRST STRING WILL BE APPENDED TO
        !          1224: < *      A HEADING LINE OF THE FORM
        !          1225: < *           MACRO SPITBOL VERSION V.V
        !          1226: < *      SUPPLIED BY SPITBOL ITSELF. V.V ARE DIGITS GIVING THE
        !          1227: < *      MAJOR VERSION NUMBER AND GENERALLY AT LEAST A MINOR
        !          1228: < *      VERSION NUMBER RELATING TO OSINT SHOULD BE SUPPLIED TO
        !          1229: < *      GIVE SAY
        !          1230: < *           MACRO SPITBOL VERSION V.V(M.M)
        !          1231: < *      THE SECOND STRING SHOULD IDENTIFY AT LEAST THE MACHINE
        !          1232: < *      AND OPERATING SYSTEM.  PREFERABLY IT SHOULD INCLUDE
        !          1233: < *      THE DATE AND TIME OF THE RUN.
        !          1234: < *      OPTIONALLY THE STRINGS MAY INCLUDE SITE NAME OF THE
        !          1235: < *      THE IMPLEMENTOR AND/OR MACHINE ON WHICH RUN TAKES PLACE,
        !          1236: < *      UNIQUE SITE OR COPY NUMBER AND OTHER INFORMATION AS
        !          1237: < *      APPROPRIATE WITHOUT MAKING IT SO LONG AS TO BE A
        !          1238: < *      NUISANCE TO USERS.
        !          1239: < *      THE FIRST WORDS OF THE SCBLKS POINTED AT NEED NOT BE
        !          1240: < *      CORRECTLY SET.
        !          1241: < *
        !          1242: < *      JSR  SYSID            CALL FOR SYSTEM IDENTIFICATION
        !          1243: < *      (XR)                  SCBLK PTR FOR ADDITION TO HEADER
        !          1244: < *      (XL)                  PTR TO SECOND HEADER SCBLK
        !          1245: <        EJC
        !          1246: < *
        !          1247: < *      SYSIL -- GET INPUT RECORD LENGTH
        !          1248: < *
        !          1249: < SYSIL  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1250: 
        !          1251: 
        !          1252: 
        !          1253: 
        !          1254: 
        !          1255: 
        !          1256: 
        !          1257: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 20
        !          1258: 
        !          1259: 
        !          1260: < *
        !          1261: < *      SYSIL IS USED TO GET THE LENGTH OF THE NEXT INPUT RECORD
        !          1262: < *      FROM A FILE PREVIOUSLY INPUT ASSOCIATED WITH A SYSIO
        !          1263: < *      CALL. THE LENGTH RETURNED IS USED TO ESTABLISH A BUFFER
        !          1264: < *      FOR A SUBSEQUENT SYSIN CALL.
        !          1265: < *
        !          1266: < *      (WA)                  PTR TO FCBLK OR ZERO
        !          1267: < *      JSR  SYSIL            CALL TO GET RECORD LENGTH
        !          1268: < *      (WA)                  LENGTH OR ZERO IF FILE CLOSED
        !          1269: < *
        !          1270: < *      NO HARM IS DONE IF THE VALUE RETURNED IS TOO LONG SINCE
        !          1271: < *      UNUSED SPACE WILL BE RECLAIMED AFTER THE SYSIN CALL.
        !          1272: < *
        !          1273: < *      NOTE THAT IT IS THE SYSIL CALL (NOT THE SYSIO CALL) WHICH
        !          1274: < *      CAUSES THE FILE TO BE OPENED AS REQUIRED FOR THE FIRST
        !          1275: < *      RECORD INPUT FROM THE FILE.
        !          1276: <        EJC
        !          1277: < *
        !          1278: < *      SYSIN -- READ INPUT RECORD
        !          1279: < *
        !          1280: < SYSIN  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1281: < *
        !          1282: < *      SYSIN IS USED TO READ A RECORD FROM THE FILE WHICH WAS
        !          1283: < *      REFERENCED IN A PRIOR CALL TO SYSIL (I.E. THESE CALLS
        !          1284: < *      ALWAYS OCCUR IN PAIRS). THE BUFFER PROVIDED IS AN
        !          1285: < *      SCBLK FOR A STRING OF LENGTH SET FROM THE SYSIL CALL.
        !          1286: < *      IF THE ACTUAL LENGTH READ IS LESS THAN THIS, THE LENGTH
        !          1287: < *      FIELD OF THE SCBLK MUST BE MODIFIED BEFORE RETURNING
        !          1288: < *      UNLESS BUFFER IS RIGHT PADDED WITH ZEROES.
        !          1289: < *      IT IS ALSO PERMISSIBLE TO TAKE ANY OF THE ALTERNATIVE
        !          1290: < *      RETURNS AFTER SCBLK LENGTH HAS BEEN MODIFIED.
        !          1291: < *
        !          1292: < *      (WA)                  PTR TO FCBLK OR ZERO
        !          1293: < *      (XR)                  POINTER TO BUFFER (SCBLK PTR)
        !          1294: < *      JSR  SYSIN            CALL TO READ RECORD
        !          1295: < *      PPM  LOC              ENDFILE OR NO I/P FILE AFTER SYSXI
        !          1296: < *      PPM  LOC              RETURN HERE IF I/O ERROR
        !          1297: < *      PPM  LOC              RETURN HERE IF RECORD FORMAT ERROR
        !          1298: < *      (WA,WB,WC)            DESTROYED
        !          1299: <        EJC
        !          1300: < *
        !          1301: < *      SYSIO -- INPUT/OUTPUT FILE ASSOCIATION
        !          1302: < *
        !          1303: < SYSIO  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1304: < *
        !          1305: < *      SEE ALSO SYSFC.
        !          1306: < *      SYSIO IS CALLED IN RESPONSE TO A SNOBOL4 INPUT OR OUTPUT
        !          1307: < *      FUNCTION CALL EXCEPT WHEN FILE ARG1 AND FILE ARG2
        !          1308: < *      ARE BOTH NULL.
        !          1309: < *      ITS CALL ALWAYS FOLLOWS IMMEDIATELY AFTER A CALL
        !          1310: < *      OF SYSFC. IF SYSFC REQUESTED ALLOCATION
        !          1311: < *      OF AN FCBLK, ITS ADDRESS WILL BE IN WA.
        !          1312: < *      FOR INPUT FILES, NON-ZERO VALUES OF $R$ SHOULD BE
        !          1313: < *      COPIED TO WC FOR USE IN ALLOCATING INPUT BUFFERS. IF $R$
        !          1314: < *      IS DEFAULTED OR NOT IMPLEMENTED, WC SHOULD BE ZEROISED.
        !          1315: < *      ONCE A FILE HAS BEEN OPENED, SUBSEQUENT INPUT(),OUTPUT()
        !          1316: 
        !          1317: 
        !          1318: 
        !          1319: 
        !          1320: 
        !          1321: 
        !          1322: 
        !          1323: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 21
        !          1324: 
        !          1325: 
        !          1326: < *      CALLS IN WHICH THE SECOND ARGUMENT IS IDENTICAL WITH THAT
        !          1327: < *      IN A PREVIOUS CALL, MERELY ASSOCIATE THE ADDITIONAL
        !          1328: < *      VARIABLE NAME (FIRST ARGUMENT) TO THE FILE AND DO NOT
        !          1329: < *      RESULT IN RE-OPENING THE FILE.
        !          1330: < *      IN SUBSEQUENT ASSOCIATED ACCESSES TO THE FILE A POINTER
        !          1331: < *      TO ANY FCBLK ALLOCATED WILL BE MADE AVAILABLE.
        !          1332: < *
        !          1333: < *      (XL)                  FILE ARG1 SCBLK PTR (2ND ARG)
        !          1334: < *      (XR)                  FILE ARG2 SCBLK PTR (3RD ARG)
        !          1335: < *      (WA)                  FCBLK PTR (0 IF NONE)
        !          1336: < *      (WB)                  0 FOR INPUT, 3 FOR OUTPUT
        !          1337: < *      JSR  SYSIO            CALL TO ASSOCIATE FILE
        !          1338: < *      PPM  LOC              RETURN HERE IF FILE DOES NOT EXIST
        !          1339: < *      PPM  LOC              RETURN IF INPUT/OUTPUT NOT ALLOWED
        !          1340: < *      (XL)                  FCBLK POINTER (0 IF NONE)
        !          1341: < *      (WC)                  0 (FOR DEFAULT) OR MAX RECORD LNGTH
        !          1342: < *      (WA,WB)               DESTROYED
        !          1343: < *
        !          1344: < *      THE SECOND ERROR RETURN IS USED IF THE FILE NAMED EXISTS
        !          1345: < *      BUT INPUT/OUTPUT FROM THE FILE IS NOT ALLOWED. FOR
        !          1346: < *      EXAMPLE, THE STANDARD OUTPUT FILE MAY BE IN THIS CATEGORY
        !          1347: < *      AS REGARDS INPUT ASSOCIATION.
        !          1348: <        EJC
        !          1349: < *
        !          1350: < *      SYSLD -- LOAD EXTERNAL FUNCTION
        !          1351: < *
        !          1352: < SYSLD  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1353: < *
        !          1354: < *      SYSLD IS CALLED IN RESPONSE TO THE USE OF THE SNOBOL4
        !          1355: < *      LOAD FUNCTION. THE NAMED FUNCTION IS LOADED (WHATEVER
        !          1356: < *      THIS MEANS), AND A POINTER IS RETURNED. THE POINTER WILL
        !          1357: < *      BE USED ON SUBSEQUENT CALLS TO THE FUNCTION (SEE SYSEX).
        !          1358: < *
        !          1359: < *      (XR)                  POINTER TO FUNCTION NAME (SCBLK)
        !          1360: < *      (XL)                  POINTER TO LIBRARY NAME (SCBLK)
        !          1361: < *      JSR  SYSLD            CALL TO LOAD FUNCTION
        !          1362: < *      PPM  LOC              RETURN HERE IF FUNC DOES NOT EXIST
        !          1363: < *      PPM  LOC              RETURN HERE IF I/O ERROR
        !          1364: < *      (XR)                  POINTER TO LOADED CODE
        !          1365: < *
        !          1366: < *      THE SIGNIFICANCE OF THE POINTER RETURNED IS UP TO THE
        !          1367: < *      SYSTEM INTERFACE ROUTINE. THE ONLY RESTRICTION IS THAT
        !          1368: < *      IF THE POINTER IS WITHIN DYNAMIC STORAGE, IT MUST BE
        !          1369: < *      A PROPER BLOCK POINTER.
        !          1370: <        EJC
        !          1371: < *
        !          1372: < *      SYSMM -- GET MORE MEMORY
        !          1373: < *
        !          1374: < SYSMM  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1375: < *
        !          1376: < *      SYSMM IS CALLED IN AN ATTEMPT TO ALLOCATE MORE DYNAMIC
        !          1377: < *      MEMORY. THIS MEMORY MUST BE ALLOCATED CONTIGUOUSLY WITH
        !          1378: < *      THE CURRENT DYNAMIC DATA AREA.
        !          1379: < *
        !          1380: < *      THE AMOUNT ALLOCATED IS UP TO THE SYSTEM TO DECIDE. ANY
        !          1381: < *      VALUE IS ACCEPTABLE INCLUDING ZERO IF ALLOCATION IS
        !          1382: 
        !          1383: 
        !          1384: 
        !          1385: 
        !          1386: 
        !          1387: 
        !          1388: 
        !          1389: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 22
        !          1390: 
        !          1391: 
        !          1392: < *      IMPOSSIBLE.
        !          1393: < *
        !          1394: < *      JSR  SYSMM            CALL TO GET MORE MEMORY
        !          1395: < *      (XR)                  NUMBER OF ADDITIONAL WORDS OBTAINED
        !          1396: <        EJC
        !          1397: < *
        !          1398: < *      SYSMX -- SUPPLY MXLEN
        !          1399: < *
        !          1400: < SYSMX  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1401: < *
        !          1402: < *      BECAUSE OF THE METHOD OF GARBAGE COLLECTION, NO SPITBOL
        !          1403: < *      OBJECT IS ALLOWED TO OCCUPY MORE BYTES OF MEMORY THAN
        !          1404: < *      THE INTEGER GIVING THE LOWEST ADDRESS OF DYNAMIC
        !          1405: < *      (GARBAGE COLLECTABLE) MEMORY. MXLEN IS THE NAME USED TO
        !          1406: < *      REFER TO THIS MAXIMUM LENGTH OF AN OBJECT AND FOR MOST
        !          1407: < *      USERS OF MOST IMPLEMENTATIONS, PROVIDED DYNAMIC MEMORY
        !          1408: < *      STARTS AT AN ADDRESS OF AT LEAST A FEW THOUSAND WORDS,
        !          1409: < *      THERE IS NO PROBLEM.
        !          1410: < *      IF THE DEFAULT STARTING ADDRESS IS LESS THAN SAY 10000 OR
        !          1411: < *      20000, THEN A LOAD TIME OPTION SHOULD BE PROVIDED WHERE A
        !          1412: < *      USER CAN REQUEST THAT HE BE ABLE TO CREATE LARGER
        !          1413: < *      OBJECTS. THIS ROUTINE INFORMS SPITBOL OF THIS REQUEST IF
        !          1414: < *      ANY. THE VALUE RETURNED IS EITHER AN INTEGER
        !          1415: < *      REPRESENTING THE DESIRED VALUE OF MXLEN (AND HENCE THE
        !          1416: < *      MINIMUM DYNAMIC STORE ADDRESS WHICH MAY RESULT IN
        !          1417: < *      NON-USE OF SOME STORE) OR ZERO IF A DEFAULT IS ACCEPTABLE
        !          1418: < *      IN WHICH MXLEN IS SET TO THE LOWEST ADDRESS ALLOCATED
        !          1419: < *      TO DYNAMIC STORE BEFORE COMPILATION STARTS.
        !          1420: < *      IF A NON-ZERO VALUE IS RETURNED, THIS IS USED FOR KEYWORD
        !          1421: < *      MAXLNGTH. OTHERWISE THE INITIAL LOW ADDRESS OF DYNAMIC
        !          1422: < *      MEMORY IS USED FOR THIS KEYWORD.
        !          1423: < *
        !          1424: < *      JSR  SYSMX            CALL TO GET MXLEN
        !          1425: < *      (WA)                  EITHER MXLEN OR 0 FOR DEFAULT
        !          1426: <        EJC
        !          1427: < *
        !          1428: < *      SYSOU -- OUTPUT RECORD
        !          1429: < *
        !          1430: < SYSOU  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1431: < *
        !          1432: < *      SYSOU IS USED TO WRITE A RECORD TO A FILE PREVIOUSLY
        !          1433: < *      ASSOCIATED WITH A SYSIO CALL.
        !          1434: < *
        !          1435: < *      (WA)                  PTR TO FCBLK OR ZERO
        !          1436: < *      (XR)                  RECORD TO BE WRITTEN (SCBLK)
        !          1437: < *      JSR  SYSOU            CALL TO OUTPUT RECORD
        !          1438: < *      PPM  LOC              FILE FULL OR NO FILE AFTER SYSXI
        !          1439: < *      PPM  LOC              RETURN HERE IF I/O ERROR
        !          1440: < *      (WA,WB,WC)            DESTROYED
        !          1441: < *
        !          1442: < *      NOTE THAT IT IS THE SYSOU CALL (NOT THE SYSIO CALL) WHICH
        !          1443: < *      CAUSES THE FILE TO BE OPENED AS REQUIRED FOR THE FIRST
        !          1444: < *      RECORD OUTPUT TO THE FILE.
        !          1445: <        EJC
        !          1446: < *
        !          1447: < *      SYSPI -- PRINT ON INTERACTIVE CHANNEL
        !          1448: 
        !          1449: 
        !          1450: 
        !          1451: 
        !          1452: 
        !          1453: 
        !          1454: 
        !          1455: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 23
        !          1456: 
        !          1457: 
        !          1458: < *
        !          1459: < SYSPI  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1460: < *
        !          1461: < *      IF SPITBOL IS RUN FROM AN ONLINE TERMINAL, OSINT CAN
        !          1462: < *      REQUEST THAT MESSAGES SUCH AS COPIES OF COMPILATION
        !          1463: < *      ERRORS BE SENT TO THE TERMINAL (SEE SYSPP). IF RELEVANT
        !          1464: < *      REPLY WAS MADE BY SYSPP THEN SYSPI IS CALLED TO SEND SUCH
        !          1465: < *      MESSAGES TO THE INTERACTIVE CHANNEL.
        !          1466: < *      SYSPI IS ALSO USED FOR SENDING OUTPUT TO THE TERMINAL
        !          1467: < *      THROUGH THE SPECIAL VARIABLE NAME, TERMINAL.
        !          1468: < *
        !          1469: < *      (XR)                  PTR TO LINE BUFFER (SCBLK)
        !          1470: < *      (WA)                  LINE LENGTH
        !          1471: < *      JSR  SYSPI            CALL TO PRINT LINE
        !          1472: < *      PPM  LOC              FAILURE RETURN
        !          1473: < *      (WA,WB)               DESTROYED
        !          1474: <        EJC
        !          1475: < *
        !          1476: < *      SYSPP -- OBTAIN PRINT PARAMETERS
        !          1477: < *
        !          1478: < SYSPP  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1479: < *
        !          1480: < *      SYSPP IS CALLED ONCE DURING COMPILATION TO OBTAIN
        !          1481: < *      PARAMETERS REQUIRED FOR CORRECT PRINTED OUTPUT FORMAT
        !          1482: < *      AND TO SELECT OTHER OPTIONS. IT MAY ALSO BE CALLED AGAIN
        !          1483: < *      AFTER SYSXI WHEN A LOAD MODULE IS RESUMED. IN THIS
        !          1484: < *      CASE THE VALUE RETURNED IN WA MAY BE LESS THAN OR EQUAL
        !          1485: < *      TO THAT RETURNED IN INITIAL CALL BUT MAY NOT BE
        !          1486: < *      GREATER.
        !          1487: < *      THE INFORMATION RETURNED IS -
        !          1488: < *      1.   LINE LENGTH IN CHARS FOR STANDARD PRINT FILE
        !          1489: < *      2.   NO OF LINES/PAGE. 0 IS PREFERABLE FOR A NON-PAGED
        !          1490: < *           DEVICE (E.G. ONLINE TERMINAL) IN WHICH CASE LISTING
        !          1491: < *           PAGE THROWS ARE SUPPRESSED AND PAGE HEADERS
        !          1492: < *           RESULTING FROM -TITLE,-STITL LINES ARE KEPT SHORT.
        !          1493: < *      3.   AN INITIAL -NOLIST OPTION TO SUPPRESS LISTING UNLESS
        !          1494: < *           THE PROGRAM CONTAINS AN EXPLICIT -LIST.
        !          1495: < *      4.   OPTIONS TO SUPPRESS LISTING OF COMPILATION AND/OR
        !          1496: < *           EXECUTION STATS (USEFUL FOR ESTABLISHED PROGRAMS) -
        !          1497: < *           COMBINED WITH 3. GIVES POSSIBILITY OF LISTING
        !          1498: < *           FILE NEVER BEING OPENED.
        !          1499: < *      5.   OPTION TO HAVE COPIES OF ERRORS SENT TO AN
        !          1500: < *           INTERACTIVE CHANNEL IN ADDITION TO STANDARD PRINTER.
        !          1501: < *      6.   OPTION TO KEEP PAGE HEADERS SHORT (E.G. IF LISTING
        !          1502: < *           TO AN ONLINE TERMINAL).
        !          1503: < *      7.   AN OPTION TO CHOOSE EXTENDED OR COMPACT LISTING
        !          1504: < *           FORMAT. IN THE FORMER A PAGE EJECT AND IN THE LATTER
        !          1505: < *           A FEW LINE FEEDS PRECEDE THE PRINTING OF EACH
        !          1506: < *           OF-- LISTING, COMPILATION STATISTICS, EXECUTION
        !          1507: < *           OUTPUT AND EXECUTION STATISTICS.
        !          1508: < *      8.   AN OPTION TO SUPPRESS EXECUTION AS THOUGH A
        !          1509: < *           -NOEXECUTE CARD WERE SUPPLIED.
        !          1510: < *      9.   AN OPTION TO REQUEST THAT NAME /TERMINAL/  BE PRE-
        !          1511: < *           ASSOCIATED TO AN ONLINE TERMINAL VIA SYSPI AND SYSRI
        !          1512: < *      10.  AN INTERMEDIATE (STANDARD) LISTING OPTION REQUIRING
        !          1513: < *           THAT PAGE EJECTS OCCUR IN SOURCE LISTINGS. REDUNDANT
        !          1514: 
        !          1515: 
        !          1516: 
        !          1517: 
        !          1518: 
        !          1519: 
        !          1520: 
        !          1521: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 24
        !          1522: 
        !          1523: 
        !          1524: < *           IF EXTENDED OPTION CHOSEN BUT PARTIALLY EXTENDS
        !          1525: < *           COMPACT OPTION.
        !          1526: < *      11.  OPTION TO SUPPRESS SYSID IDENTIFICATION.
        !          1527: < *
        !          1528: < *      JSR  SYSPP            CALL TO GET PRINT PARAMETERS
        !          1529: < *      (WA)                  PRINT LINE LENGTH IN CHARS
        !          1530: < *      (WB)                  NUMBER OF LINES/PAGE
        !          1531: < *      (WC)                  BITS VALUE ...JIHGFEDCBA WHERE
        !          1532: < *                            A = 1 TO SEND ERROR COPY TO INT.CH.
        !          1533: < *                            B = 1 MEANS STD PRINTER IS INT. CH.
        !          1534: < *                            C = 1 FOR -NOLIST OPTION
        !          1535: < *                            D = 1 TO SUPPRESS COMPILN. STATS
        !          1536: < *                            E = 1 TO SUPPRESS EXECN. STATS
        !          1537: < *                            F = 1/0 FOR EXTNDED/COMPACT LISTING
        !          1538: < *                            G = 1 FOR -NOEXECUTE
        !          1539: < *                            H = 1 PRE-ASSOCIATE /TERMINAL/
        !          1540: < *                            I = 1 FOR STANDARD LISTING OPTION.
        !          1541: < *                            J = 1 SUPPRESSES LISTING HEADER
        !          1542: <        EJC
        !          1543: < *
        !          1544: < *      SYSPR -- PRINT LINE ON STANDARD OUTPUT FILE
        !          1545: < *
        !          1546: < SYSPR  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1547: < *
        !          1548: < *      SYSPR IS USED TO PRINT A SINGLE LINE ON THE STANDARD
        !          1549: < *      OUTPUT FILE.
        !          1550: < *
        !          1551: < *      (XR)                  POINTER TO LINE BUFFER (SCBLK)
        !          1552: < *      (WA)                  LINE LENGTH
        !          1553: < *      JSR  SYSPR            CALL TO PRINT LINE
        !          1554: < *      PPM  LOC              TOO MUCH O/P OR NO FILE AFTER SYSXI
        !          1555: < *      (WA,WB)               DESTROYED
        !          1556: < *
        !          1557: < *      THE BUFFER POINTED TO IS THE LENGTH OBTAINED FROM THE
        !          1558: < *      SYSPP CALL AND IS FILLED OUT WITH TRAILING BLANKS. THE
        !          1559: < *      VALUE IN WA IS THE ACTUAL LINE LENGTH WHICH MAY BE LESS
        !          1560: < *      THAN THE MAXIMUM LINE LENGTH POSSIBLE. THERE IS NO SPACE
        !          1561: < *      CONTROL ASSOCIATED WITH THE LINE, ALL LINES ARE PRINTED
        !          1562: < *      SINGLE SPACED. NOTE THAT NULL LINES (WA=0) ARE POSSIBLE
        !          1563: < *      IN WHICH CASE A BLANK LINE IS TO BE PRINTED.
        !          1564: < *
        !          1565: < *      THE ERROR EXIT IS USED FOR SYSTEMS WHICH LIMIT THE AMOUNT
        !          1566: < *      OF PRINTED OUTPUT. IF POSSIBLE, PRINTING SHOULD BE
        !          1567: < *      PERMITTED AFTER THIS CONDITION HAS BEEN SIGNALLED ONCE TO
        !          1568: < *      ALLOW FOR DUMP AND OTHER DIAGNOSTIC INFORMATION.
        !          1569: < *      ASSUMING THIS TO BE POSSIBLE, SPITBOL MAY MAKE MORE SYSPR
        !          1570: < *      CALLS. IF THE ERROR RETURN OCCURS ANOTHER TIME, EXECUTION
        !          1571: < *      IS TERMINATED BY A CALL OF SYSEJ WITH ENDING CODE 998.
        !          1572: <        EJC
        !          1573: < *
        !          1574: < *      SYSRD -- READ RECORD FROM STANDARD INPUT FILE
        !          1575: < *
        !          1576: < SYSRD  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1577: < *
        !          1578: < *      SYSRD IS USED TO READ A RECORD FROM THE STANDARD INPUT
        !          1579: < *      FILE. THE BUFFER PROVIDED IS AN SCBLK FOR A STRING THE
        !          1580: 
        !          1581: 
        !          1582: 
        !          1583: 
        !          1584: 
        !          1585: 
        !          1586: 
        !          1587: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 25
        !          1588: 
        !          1589: 
        !          1590: < *      LENGTH OF WHICH IN CHARACTERS IS GIVEN IN WC, THIS
        !          1591: < *      CORRESPONDING TO THE MAXIMUM LENGTH OF STRING WHICH
        !          1592: < *      SPITBOL IS PREPARED TO RECEIVE. AT COMPILE TIME IT
        !          1593: < *      CORRESPONDS TO XXX IN THE MOST RECENT -INXXX CARD
        !          1594: < *      (DEFAULT 72) AND AT EXECUTION TIME TO THE MOST RECENT
        !          1595: < *      ,R$R$ (RECORD LENGTH) IN THE THIRD ARG OF AN INPUT()
        !          1596: < *      STATEMENT FOR THE STANDARD INPUT FILE (DEFAULT 80).
        !          1597: < *      IF FEWER THAN (WC) CHARACTERS ARE READ, THE LENGTH
        !          1598: < *      FIELD OF THE SCBLK MUST BE ADJUSTED BEFORE RETURNING
        !          1599: < *      UNLESS THE BUFFER IS RIGHT PADDED WITH ZEROES.
        !          1600: < *      IT IS ALSO PERMISSIBLE TO TAKE THE ALTERNATIVE RETURN
        !          1601: < *      AFTER SUCH AN ADJUSTMENT HAS BEEN MADE.
        !          1602: < *      SPITBOL MAY CONTINUE TO MAKE CALLS AFTER AN ENDFILE
        !          1603: < *      RETURN SO THIS ROUTINE SHOULD BE PREPARED TO MAKE
        !          1604: < *      REPEATED ENDFILE RETURNS.
        !          1605: < *
        !          1606: < *      (XR)                  POINTER TO BUFFER (SCBLK PTR)
        !          1607: < *      (WC)                  LENGTH OF BUFFER IN CHARACTERS
        !          1608: < *      JSR  SYSRD            CALL TO READ LINE
        !          1609: < *      PPM  LOC              ENDFILE OR NO I/P FILE AFTER SYSXI
        !          1610: < *      (WA,WB,WC)            DESTROYED
        !          1611: <        EJC
        !          1612: < *
        !          1613: < *      SYSRI -- READ RECORD FROM INTERACTIVE CHANNEL
        !          1614: < *
        !          1615: < SYSRI  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1616: < *
        !          1617: < *      READS A RECORD FROM ONLINE TERMINAL FOR SPITBOL VARIABLE,
        !          1618: < *      TERMINAL. IF ONLINE TERMINAL IS UNAVAILABLE THEN CODE THE
        !          1619: < *      ENDFILE RETURN ONLY.
        !          1620: < *      THE BUFFER PROVIDED IS OF LENGTH 120 CHARACTERS. SYSRI
        !          1621: < *      SHOULD REPLACE THE COUNT IN THE SECOND WORD OF THE SCBLK
        !          1622: < *      BY THE ACTUAL CHARACTER COUNT UNLESS BUFFER IS RIGHT
        !          1623: < *      PADDED WITH ZEROES.
        !          1624: < *      IT IS ALSO PERMISSIBLE TO TAKE THE ALTERNATIVE
        !          1625: < *      RETURN AFTER ADJUSTING THE COUNT.
        !          1626: < *      THE END OF FILE RETURN MAY BE USED IF THIS MAKES
        !          1627: < *      SENSE ON THE TARGET MACHINE (E.G. IF THERE IS AN
        !          1628: < *      EOF CHARACTER.)
        !          1629: < *
        !          1630: < *      (XR)                  PTR TO 120 CHAR BUFFER (SCBLK PTR)
        !          1631: < *      JSR  SYSRI            CALL TO READ LINE FROM TERMINAL
        !          1632: < *      PPM  LOC              END OF FILE RETURN
        !          1633: < *      (WA,WB,WC)            MAY BE DESTROYED
        !          1634: <        EJC
        !          1635: < *
        !          1636: < *      SYSRW -- REWIND FILE
        !          1637: < *
        !          1638: < SYSRW  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1639: < *
        !          1640: < *      SYSRW IS USED TO REWIND A FILE I.E. REPOSITION THE FILE
        !          1641: < *      AT THE START BEFORE THE FIRST RECORD. THE FILE SHOULD BE
        !          1642: < *      CLOSED AND THE NEXT READ OR WRITE CALL WILL OPEN THE
        !          1643: < *      FILE AT THE START.
        !          1644: < *
        !          1645: < *      (WA)                  PTR TO FCBLK OR ZERO
        !          1646: 
        !          1647: 
        !          1648: 
        !          1649: 
        !          1650: 
        !          1651: 
        !          1652: 
        !          1653: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 26
        !          1654: 
        !          1655: 
        !          1656: < *      (XR)                  REWIND ARG (SCBLK PTR)
        !          1657: < *      JSR  SYSRW            CALL TO REWIND FILE
        !          1658: < *      PPM  LOC              RETURN HERE IF FILE DOES NOT EXIST
        !          1659: < *      PPM  LOC              RETURN HERE IF REWIND NOT ALLOWED
        !          1660: < *      PPM  LOC              RETURN HERE IF I/O ERROR
        !          1661: <        EJC
        !          1662: ---
        !          1663: > SYSBX  EXP  E,0
        !          1664: > .IF    .CSCI
        !          1665: > SYSCI  EXP  E,0
        !          1666: > .FI
        !          1667: > SYSDT  EXP  E,0
        !          1668: > SYSEC  EXP  E,2
        !          1669: > SYSEF  EXP  E,2
        !          1670: > SYSEJ  EXP  E,0
        !          1671: > SYSEM  EXP  E,0
        !          1672: > SYSEN  EXP  E,2
        !          1673: > SYSEP  EXP  E,2
        !          1674: > .IF    .CNLD
        !          1675: > .ELSE
        !          1676: > SYSEX  EXP  E,1
        !          1677: > .FI
        !          1678: > SYSHS  EXP  E,2
        !          1679: > SYSID  EXP  E,0
        !          1680: > SYSIL  EXP  E,0
        !          1681: > SYSIN  EXP  E,2
        !          1682: > SYSIO  EXP  E,2
        !          1683: > .IF    .CNLD
        !          1684: > .ELSE
        !          1685: > SYSLD  EXP  E,2
        !          1686: > .FI
        !          1687: > SYSMM  EXP  E,0
        !          1688: > SYSMX  EXP  E,0
        !          1689: > SYSOU  EXP  E,2
        !          1690: > SYSPI  EXP  E,2
        !          1691: > SYSPP  EXP  E,0
        !          1692: > SYSPR  EXP  E,2
        !          1693: > SYSRD  EXP  E,2
        !          1694: > SYSRI  EXP  E,2
        !          1695: > SYSSC  EXP  E,2
        !          1696: 1252,1272c205
        !          1697: < *
        !          1698: < *      SYSST -- SET FILE POINTER
        !          1699: < *
        !          1700: < SYSST  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1701: < *
        !          1702: < *      SYSST IS CALLED TO CHANGE THE POSITION OF A FILE
        !          1703: < *      POINTER. THIS IS ACCOMPLISHED IN A SYSTEM DEPENDENT
        !          1704: < *      MANNER, AND THUS THE 2ND AND 3RD ARGUMENTS ARE PASSED
        !          1705: < *      UNCONVERTED.
        !          1706: < *
        !          1707: < *      (WA)                  FCBLK POINTER
        !          1708: < *      (WB)                  2ND ARGUMENT
        !          1709: < *      (WC)                  3RD ARGUMENT
        !          1710: < *      JSR  SYSST            CALL TO SET FILE POINTER
        !          1711: < *      PPM  LOC              RETURN HERE IF INVALID 2ND ARG
        !          1712: 
        !          1713: 
        !          1714: 
        !          1715: 
        !          1716: 
        !          1717: 
        !          1718: 
        !          1719: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 27
        !          1720: 
        !          1721: 
        !          1722: < *      PPM  LOC              RETURN HERE IF INVALID 3RD ARG
        !          1723: < *      PPM  LOC              RETURN HERE IF FILE DOES NOT EXIST
        !          1724: < *      PPM  LOC              RETURN HERE IF SET NOT ALLOWED
        !          1725: < *      PPM  LOC              RETURN HERE IF I/O ERROR
        !          1726: < *
        !          1727: <        EJC
        !          1728: ---
        !          1729: > SYSST  EXP  E,2
        !          1730: 1274,1316c207,212
        !          1731: < *
        !          1732: < *      SYSTM -- GET EXECUTION TIME SO FAR
        !          1733: < *
        !          1734: < SYSTM  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1735: < *
        !          1736: < *      SYSTM IS USED TO OBTAIN THE AMOUNT OF EXECUTION TIME
        !          1737: < *      USED SO FAR SINCE SPITBOL WAS GIVEN CONTROL. THE UNITS
        !          1738: < *      ARE DESCRIBED AS MILLISECONDS IN THE SPITBOL OUTPUT, BUT
        !          1739: < *      THE EXACT MEANING IS SYSTEM DEPENDENT. WHERE APPROPRIATE,
        !          1740: < *      THIS VALUE SHOULD RELATE TO PROCESSOR RATHER THAN CLOCK
        !          1741: < *      TIMING VALUES.
        !          1742: < *
        !          1743: < *      JSR  SYSTM            CALL TO GET TIMER VALUE
        !          1744: < *      (IA)                  TIME SO FAR IN MILLISECONDS
        !          1745: <        EJC
        !          1746: < *
        !          1747: < *      SYSTT -- TRACE TOGGLE
        !          1748: < *
        !          1749: < SYSTT  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1750: < *
        !          1751: < *      CALLED BY SPITBOL FUNCTION TRACE() WITH NO ARGS TO
        !          1752: < *      TOGGLE THE SYSTEM TRACE SWITCH.  THIS PERMITS TRACING OF
        !          1753: < *      LABELS IN SPITBOL CODE TO BE TURNED ON OR OFF.
        !          1754: < *
        !          1755: < *      JSR  SYSTT            CALL TO TOGGLE TRACE SWITCH
        !          1756: <        EJC
        !          1757: < *
        !          1758: < *      SYSUL -- UNLOAD EXTERNAL FUNCTION
        !          1759: < *
        !          1760: < SYSUL  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1761: < *
        !          1762: < *      SYSUL IS USED TO UNLOAD A FUNCTION PREVIOUSLY
        !          1763: < *      LOADED WITH A CALL TO SYSLD.
        !          1764: < *
        !          1765: < *      (XR)                  PTR TO CONTROL BLOCK (EFBLK)
        !          1766: < *      JSR  SYSUL            CALL TO UNLOAD FUNCTION
        !          1767: < *
        !          1768: < *      THE FUNCTION CANNOT BE CALLED FOLLOWING A SYSUL CALL
        !          1769: < *      UNTIL ANOTHER SYSLD CALL IS MADE FOR THE SAME FUNCTION.
        !          1770: < *
        !          1771: < *      THE EFBLK CONTAINS THE FUNCTION CODE POINTER AND ALSO A
        !          1772: < *      POINTER TO THE VRBLK CONTAINING THE FUNCTION NAME (SEE
        !          1773: < *      DEFINITIONS AND DATA STRUCTURES SECTION).
        !          1774: ---
        !          1775: > SYSTM  EXP  E,0
        !          1776: > SYSTT  EXP  E,0
        !          1777: > .IF    .CNLD
        !          1778: 
        !          1779: 
        !          1780: 
        !          1781: 
        !          1782: 
        !          1783: 
        !          1784: 
        !          1785: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 28
        !          1786: 
        !          1787: 
        !          1788: > .ELSE
        !          1789: > SYSUL  EXP  E,0
        !          1790: > .FI
        !          1791: 1319,1405c215
        !          1792: <        EJC
        !          1793: < *
        !          1794: < *      SYSXI -- EXIT TO PRODUCE LOAD MODULE
        !          1795: < *
        !          1796: < SYSXI  EXP                   DEFINE EXTERNAL ENTRY POINT
        !          1797: < *
        !          1798: < *      WHEN SYSXI IS CALLED, XL CONTAINS EITHER A STRING POINTER
        !          1799: < *      OR ZERO. IN THE FORMER CASE, THE STRING GIVES THE
        !          1800: < *      CHARACTER NAME OF A PROGRAM. THE INTENTION IS THAT
        !          1801: < *      SPITBOL EXECUTION SHOULD BE TERMINATED FORTHWITH AND
        !          1802: < *      THE NAMED PROGRAM LOADED AND EXECUTED. THIS TYPE OF CHAIN
        !          1803: < *      EXECUTION IS VERY SYSTEM DEPENDENT AND IMPLEMENTORS MAY
        !          1804: < *      CHOOSE TO OMIT IT OR FIND IT IMPOSSIBLE TO PROVIDE.
        !          1805: < *      IF (XL) IS ZERO,IA CONTAINS ONE OF THE FOLLOWING INTEGERS
        !          1806: < *
        !          1807: < *      -1, -2, -3
        !          1808: < *           CREATE IF POSSIBLE A LOAD MODULE CONTAINING ONLY THE
        !          1809: < *           IMPURE AREA OF MEMORY WHICH NEEDS TO BE LOADED WITH
        !          1810: < *           A COMPATIBLE PURE SEGMENT FOR SUBSEQUENT EXECUTIONS.
        !          1811: < *           VERSION NUMBERS TO CHECK COMPATIBILITY SHOULD BE
        !          1812: < *           KEPT IN BOTH SEGMENTS AND CHECKED ON LOADING.
        !          1813: < *           TO ASSIST WITH THIS CHECK, (XR) ON ENTRY IS A
        !          1814: < *           POINTER TO AN SCBLK CONTAINING THE SPITBOL MAJOR
        !          1815: < *           VERSION NUMBER V.V (SEE SYSID).
        !          1816: < *
        !          1817: < *      0    IF POSSIBLE, RETURN CONTROL TO JOB CONTROL
        !          1818: < *           COMMAND LEVEL. THE EFFECT IF AVAILABLE WILL BE
        !          1819: < *           SYSTEM DEPENDENT.
        !          1820: < *
        !          1821: < *      +1, +2, +3
        !          1822: < *           CREATE IF POSSIBLE A LOAD MODULE FROM ALL OF
        !          1823: < *           MEMORY. IT SHOULD BE POSSIBLE TO LOAD AND EXECUTE
        !          1824: < *           THIS MODULE DIRECTLY.
        !          1825: < *
        !          1826: < *      IN THE CASE OF SAVED LOAD MODULES, THE STATUS OF OPEN
        !          1827: < *      FILES IS NOT PRESERVED AND IMPLEMENTORS MAY CHOOSE TO
        !          1828: < *      OFFER MEANS OF ATTACHING FILES BEFORE EXECUTION OF LOAD
        !          1829: < *      MODULES STARTS OR LEAVE IT TO THE USER TO INCLUDE
        !          1830: < *      SUITABLE INPUT(), OUTPUT() CALLS IN HIS PROGRAM.
        !          1831: < *      SYSXI SHOULD MAKE A NOTE THAT NO I/O CHANNELS,
        !          1832: < *      INCLUDING STANDARD FILES, HAVE FILES ATTACHED SO THAT
        !          1833: < *      CALLS OF SYSIN, SYSOU, SYSPR, SYSRD SHOULD FAIL UNLESS
        !          1834: < *      NEW ASSOCIATIONS ARE MADE FOR THE LOAD MODULE.
        !          1835: < *      AT LEAST IN THE CASE OF THE STANDARD OUTPUT FILE, IT IS
        !          1836: < *      RECOMMENDED THAT EITHER THE USER BE REQUIRED TO ATTACH
        !          1837: < *      A FILE OR THAT A DEFAULT FILE IS ATTACHED, SINCE THE
        !          1838: < *      PROBLEM OF ERROR MESSAGES GENERATED BY THE LOAD MODULE
        !          1839: < *      IS OTHERWISE SEVERE. AS A LAST RESORT, IF SPITBOL
        !          1840: < *      ATTEMPTS TO WRITE TO THE STANDARD OUTPUT FILE AND GETS A
        !          1841: < *      REPLY INDICATING THAT SUCH OUPUT IS UNACCEPTABLE IT STOPS
        !          1842: < *      BY USING AN ENTRY TO SYSEJ WITH ENDING CODE 998.
        !          1843: < *      AS DESCRIBED BELOW, PASSING OF SOME ARGUMENTS MAKES IT
        !          1844: 
        !          1845: 
        !          1846: 
        !          1847: 
        !          1848: 
        !          1849: 
        !          1850: 
        !          1851: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 29
        !          1852: 
        !          1853: 
        !          1854: < *      CLEAR THAT LOAD MODULE WILL USE A STANDARD OUTPUT FILE.
        !          1855: < *
        !          1856: < *      IF USE IS MADE OF FCBLKS FOR I/O ASSOCIATION, SPITBOL
        !          1857: < *      BUILDS A CHAIN SO THAT THOSE IN USE MAY BE FOUND IN SYSXI
        !          1858: < *      AND SYSEJ. THE NODES ARE 4 WORDS LONG. THIRD WORD
        !          1859: < *      CONTAINS LINK TO NEXT NODE OR 0, FOURTH WORD CONTAINS
        !          1860: < *      FCBLK POINTER.
        !          1861: <        EJC
        !          1862: < *
        !          1863: < *      SYSXI (CONTINUED)
        !          1864: < *
        !          1865: < *      (XL)                  ZERO OR SCBLK PTR
        !          1866: < *      (XR)                  PTR TO V.V SCBLK
        !          1867: < *      (IA)                  SIGNED INTEGER ARGUMENT
        !          1868: < *      (WB)                  0 OR PTR TO HEAD OF FCBLK CHAIN
        !          1869: < *      JSR  SYSXI            CALL TO EXIT
        !          1870: < *      PPM  LOC              REQUESTED ACTION NOT POSSIBLE
        !          1871: < *      PPM  LOC              ACTION CAUSED IRRECOVERABLE ERROR
        !          1872: < *      (REGISTERS)           SHOULD BE PRESERVED OVER CALL
        !          1873: < *
        !          1874: < *      LOADING AND RUNNING THE LOAD MODULE OR RETURNING FROM
        !          1875: < *      JCL COMMAND LEVEL CAUSES EXECUTION TO RESUME AT THE POINT
        !          1876: < *      AFTER THE ERROR RETURNS WHICH FOLLOW THE CALL OF SYSXI.
        !          1877: < *      THE VALUE PASSED AS EXIT ARGUMENT IS USED TO INDICATE
        !          1878: < *      OPTIONS REQUIRED ON RESUMPTION OF LOAD MODULE.
        !          1879: < *      +1 OR -1 REQUIRE THAT ON RESUMPTION, SYSID AND SYSPP BE
        !          1880: < *      CALLED AND A HEADING PRINTED ON THE STANDARD OUTPUT FILE.
        !          1881: < *      +2 OR -2 INDICATE THAT SYSPP WILL BE CALLED BUT NOT SYSID
        !          1882: < *      AND NO HEADING WILL BE PUT ON STANDARD OUTPUT FILE.
        !          1883: < *      ABOVE OPTIONS HAVE THE OBVIOUS IMPLICATION THAT A
        !          1884: < *      STANDARD O/P FILE MUST BE PROVIDED FOR THE LOAD MODULE.
        !          1885: < *      +3 OR -3 INDICATE CALLS OF NEITHER SYSID NOR SYSPP
        !          1886: < *      AND NO HEADING WILL BE PLACED ON STANDARD OUTPUT FILE.
        !          1887: < *      NO RETURN FROM SYSXI IS POSSIBLE IF ANOTHER PROGRAM
        !          1888: < *      IS LOADED AND ENTERED.
        !          1889: ---
        !          1890: > SYSXI  EXP  E,2
        !          1891: 1407a218
        !          1892: > *      NAME GLOBAL LABELS, INTERNAL PROCEDURES AND ROUTINES.
        !          1893: 1409,1410c220,228
        !          1894: < *      INTRODUCE THE INTERNAL PROCEDURES.
        !          1895: < *
        !          1896: ---
        !          1897: > CMPCE  GLB
        !          1898: > CMPEL  GLB
        !          1899: > CMPLE  GLB
        !          1900: > CMPSE  GLB
        !          1901: > EVLXF  GLB
        !          1902: > EVLXN  GLB
        !          1903: > EVLXV  GLB
        !          1904: > LCNXE  GLB
        !          1905: > TRXQR  GLB
        !          1906: 1420d237
        !          1907: < APNDB  INP  E,2
        !          1908: 1428a246
        !          1909: > CBLCK  INP  N,1
        !          1910: 
        !          1911: 
        !          1912: 
        !          1913: 
        !          1914: 
        !          1915: 
        !          1916: 
        !          1917: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 30
        !          1918: 
        !          1919: 
        !          1920: 1437c255
        !          1921: < COPYB  INP  N,1
        !          1922: ---
        !          1923: > COPND  INP  E,0
        !          1924: 1439d256
        !          1925: < DTACH  INP  E,0
        !          1926: 1444c261
        !          1927: < EVALI  INP  R,4
        !          1928: ---
        !          1929: > EVALI  INP  R,3
        !          1930: 1446c263
        !          1931: < EVALS  INP  R,3
        !          1932: ---
        !          1933: > EVALS  INP  R,2
        !          1934: 1453,1455d269
        !          1935: < .IF    .CULC
        !          1936: < FLSTG  INP  R,0
        !          1937: < .FI
        !          1938: 1458a273,276
        !          1939: > .IF    .CNBF
        !          1940: > .ELSE
        !          1941: > GTBUF  INP  E,1
        !          1942: > .FI
        !          1943: 1481,1483c299,300
        !          1944: < IOFCB  INP  N,2
        !          1945: < IOPPF  INP  N,0
        !          1946: < IOPUT  INP  N,6
        !          1947: ---
        !          1948: > IOFTG  INP  N,1
        !          1949: > IOPUT  INP  N,4
        !          1950: 1500a318
        !          1951: > PRTCF  INP  E,0
        !          1952: 1502,1503c320,321
        !          1953: < PRTIC  INP  E,0
        !          1954: < PRTIS  INP  E,0
        !          1955: ---
        !          1956: > PRTFB  INP  E,0
        !          1957: > PRTFH  INP  R,0
        !          1958: 1506,1507d323
        !          1959: < PRTMX  INP  E,0
        !          1960: < PRTNL  INP  R,0
        !          1961: 1511a328
        !          1962: > PRTSF  INP  E,0
        !          1963: 1515c332
        !          1964: < PRTTR  INP  E,0
        !          1965: ---
        !          1966: > PRTVF  INP  E,0
        !          1967: 1517a335,336
        !          1968: > PTTFH  INP  E,0
        !          1969: > PTTST  INP  E,0
        !          1970: 1522a342,345
        !          1971: > .IF    .CASL
        !          1972: > SBSCC  INP  E,0
        !          1973: > SBSTG  INP  E,0
        !          1974: > .FI
        !          1975: 1529c352
        !          1976: 
        !          1977: 
        !          1978: 
        !          1979: 
        !          1980: 
        !          1981: 
        !          1982: 
        !          1983: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 31
        !          1984: 
        !          1985: 
        !          1986: < SORTA  INP  N,0
        !          1987: ---
        !          1988: > SORTA  INP  N,1
        !          1989: 1532c355
        !          1990: < SORTH  INP  E,0
        !          1991: ---
        !          1992: > SORTH  INP  N,0
        !          1993: 1535c358
        !          1994: < TRACE  INP  N,2
        !          1995: ---
        !          1996: > TRACE  INP  N,3
        !          1997: 1536a360
        !          1998: > TRCHN  INP  E,1
        !          1999: 1541,1543d364
        !          2000: < *
        !          2001: < *      INTRODUCE THE INTERNAL ROUTINES
        !          2002: < *
        !          2003: 1545a367,368
        !          2004: > EROSI  INR
        !          2005: > ERROR  INR
        !          2006: 1560a384
        !          2007: > INITL  INR
        !          2008: 1562a387
        !          2009: > STAKV  INR
        !          2010: 1567,1568d391
        !          2011: < SYSAB  INR
        !          2012: < SYSTU  INR
        !          2013: 1569a393,395
        !          2014: > *      THIS SECTION CONTAINS ALL SYMBOL DEFINITIONS AND ALSO
        !          2015: > *      PICTURES OF ALL DATA STRUCTURES USED IN THE SYSTEM.
        !          2016: > *
        !          2017: 1577a404,407
        !          2018: > *      NOTE THAT EVEN IF CONDITIONAL ASSEMBLY IS USED TO OMIT
        !          2019: > *      SOME FEATURE (E.G. REAL ARITHMETIC) A FULL SET OF CFP$-
        !          2020: > *      VALUES MUST BE SUPPLIED. USE DUMMY VALUES IF GENUINE
        !          2021: > *      ONES ARE NOT NEEDED.
        !          2022: 1581c411
        !          2023: < CFP$B  EQU  *                BYTES/WORD ADDRESSING FACTOR
        !          2024: ---
        !          2025: > CFP$B  EQU  *                BAUS/WORD ADDRESSING FACTOR
        !          2026: 1585c415
        !          2027: < CFP$F  EQU  *                OFFSET IN BYTES TO CHARS IN
        !          2028: ---
        !          2029: > CFP$F  EQU  *                OFFSET IN BAUS TO CHARS IN
        !          2030: 1594,1601d423
        !          2031: < *      THE FOLLOWING DEFINITIONS REQUIRE THE SUPPLY OF EITHER
        !          2032: < *      A SINGLE PARAMETER IF REAL ARITHMETIC IS OMITTED OR
        !          2033: < *      THREE PARAMETERS IF REAL ARITHMETIC IS INCLUDED.
        !          2034: < *
        !          2035: < .IF    .CNRA
        !          2036: < NSTMX  EQU  *                NO. OF DECIMAL DIGITS IN CFP$M
        !          2037: < .ELSE
        !          2038: < *
        !          2039: 1606,1613d427
        !          2040: < CFP$X  EQU  *                MAX DIGITS IN REAL EXPONENT
        !          2041: < *
        !          2042: 
        !          2043: 
        !          2044: 
        !          2045: 
        !          2046: 
        !          2047: 
        !          2048: 
        !          2049: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 32
        !          2050: 
        !          2051: 
        !          2052: < MXDGS  EQU  CFP$S+CFP$X      MAX DIGITS IN REAL NUMBER
        !          2053: < *
        !          2054: < NSTMX  EQU  MXDGS+5          MAX SPACE FOR REAL (FOR +0.E+)
        !          2055: < .FI
        !          2056: < .IF    .CUCF
        !          2057: < *
        !          2058: 1620c434,439
        !          2059: < .FI
        !          2060: ---
        !          2061: > *
        !          2062: > CFP$X  EQU  *                MAX DIGITS IN REAL EXPONENT
        !          2063: > *
        !          2064: > MXDGS  EQU  CFP$S+CFP$X      MAX DIGITS IN REAL NUMBER
        !          2065: > *
        !          2066: > NSTMX  EQU  MXDGS+5          MAX SPACE FOR REAL (FOR +0.E+)
        !          2067: 1759a579
        !          2068: > *      THEY ARE ALL UNDER CONDITIONAL ASSEMBLY.
        !          2069: 1798a619,620
        !          2070: > .IF    .CASL
        !          2071: > DFA$A  EQU  CH$$A-CH$LA      DIFF BETWEEN LC AND UC LETTERS
        !          2072: 1800,1807d621
        !          2073: < *      IF A DELIMITER OTHER THAN CH$CM MUST BE USED IN
        !          2074: < *      THE THIRD ARGUMENT OF INPUT(),OUTPUT() THEN .CIOD SHOULD
        !          2075: < *      BE DEFINED AND A PARAMETER SUPPLIED FOR IODEL.
        !          2076: < *
        !          2077: < .IF    .CIOD
        !          2078: < IODEL  EQU  *
        !          2079: < .ELSE
        !          2080: < IODEL  EQU  CH$CM
        !          2081: 1927c741,742
        !          2082: < BL$CT  EQU  BL$CM+1          CTBLK
        !          2083: ---
        !          2084: > BL$CO  EQU  BL$CM+1          COBLK
        !          2085: > BL$CT  EQU  BL$CO+1          CTBLK
        !          2086: 2030,2033d844
        !          2087: < .IF    .CNBF
        !          2088: < .ELSE
        !          2089: < *      BCBLK                 BUFFER CONTROL BLOCK
        !          2090: < .FI
        !          2091: 2079c890
        !          2092: < ARLEN  EQU  IDVAL+1          LENGTH OF ARBLK IN BYTES
        !          2093: ---
        !          2094: > ARLEN  EQU  IDVAL+1          LENGTH OF ARBLK IN BAUS
        !          2095: 2096c907
        !          2096: < *      THE LENGTH OF AN ARBLK IN BYTES MAY NOT EXCEED MXLEN.
        !          2097: ---
        !          2098: > *      THE LENGTH OF AN ARBLK IN BAUS MAY NOT EXCEED MXLEN.
        !          2099: 2103c914
        !          2100: < *
        !          2101: ---
        !          2102: >        EJC
        !          2103: 2197,2198c1008,1009
        !          2104: < CCLEN  EQU  CCTYP+1          LENGTH OF CCBLK IN BYTES
        !          2105: < CCUSE  EQU  CCLEN+1          OFFSET PAST LAST USED WORD (BYTES)
        !          2106: ---
        !          2107: > CCLEN  EQU  CCTYP+1          LENGTH OF CCBLK IN BAUS
        !          2108: 
        !          2109: 
        !          2110: 
        !          2111: 
        !          2112: 
        !          2113: 
        !          2114: 
        !          2115: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 33
        !          2116: 
        !          2117: 
        !          2118: > CCUSE  EQU  CCLEN+1          OFFSET PAST LAST USED WORD (BAUS)
        !          2119: 2227c1038
        !          2120: < CDLEN  EQU  OFFS2            LENGTH OF CDBLK IN BYTES
        !          2121: ---
        !          2122: > CDLEN  EQU  OFFS2            LENGTH OF CDBLK IN BAUS
        !          2123: 2564c1375
        !          2124: < CMLEN  EQU  CMIDN+1          LENGTH OF CMBLK IN BYTES
        !          2125: ---
        !          2126: > CMLEN  EQU  CMIDN+1          LENGTH OF CMBLK IN BAUS
        !          2127: 2626a1438,1477
        !          2128: > *      COPY FILE BLOCK (COBLK)
        !          2129: > *
        !          2130: > *      A CHAIN STACK OF COPY BLOCKS IS BUILT FOR EVERY NESTED
        !          2131: > *      -COPY CONTROL CARD.  THE CONTROL BLOCK IS USED TO PRESERVE
        !          2132: > *      THE INPUT CONTEXT OF THE FILE CONTAINING THE -COPY.
        !          2133: > *      AS -COPYS ARE ENDED, THESE BLOCKS ARE POPPED OFF THE CHAIN
        !          2134: > *      AND THE STATE RESTORED.  SEE ROUTINES CNCRD, COPND.
        !          2135: > *
        !          2136: > *           +------------------------------------+
        !          2137: > *           I                COTYP               I
        !          2138: > *           +------------------------------------+
        !          2139: > *           I                CONXT               I
        !          2140: > *           +------------------------------------+
        !          2141: > *           I                COIOT               I
        !          2142: > *           +------------------------------------+
        !          2143: > *           I                COTTI               I
        !          2144: > *           +------------------------------------+
        !          2145: > *           I                COCIM               I
        !          2146: > *           +------------------------------------+
        !          2147: > *           I                COSPT               I
        !          2148: > *           +------------------------------------+
        !          2149: > *           I                COSLS               I
        !          2150: > *           +------------------------------------+
        !          2151: > *           I                COSIN               I
        !          2152: > *           +------------------------------------+
        !          2153: > *           I                COSTL               I
        !          2154: > *           +------------------------------------+
        !          2155: > *
        !          2156: > COTYP  EQU  0                POINTER TO DUMMY ROUTINE B$COP
        !          2157: > CONXT  EQU  COTYP+1          POINT TO NEXT (OUTER -COPY) COBLK
        !          2158: > COIOT  EQU  CONXT+1          RECORD IOTAG FOR OSINT
        !          2159: > COTTI  EQU  COIOT+1          RECORD TTINS FLAG
        !          2160: > COCIM  EQU  COTTI+1          RECORD R$CIM COMPILER IMAGE
        !          2161: > COSPT  EQU  COCIM+1          RECORD SCNPT SCAN POINTER
        !          2162: > COSLS  EQU  COSPT+1          RECORD CSWLS LISTING FLAG
        !          2163: > COSIN  EQU  COSLS+1          RECORD CSWIN -INXXX VALUE
        !          2164: > COSTL  EQU  COSIN+1          RECORD R$STL -STITL STRING PTR
        !          2165: > COSI$  EQU  COSTL+1          SIZE OF COBLK
        !          2166: >        EJC
        !          2167: > *
        !          2168: 2688c1539
        !          2169: < DFLEN  EQU  FARGS+1          LENGTH OF DFBLK IN BYTES
        !          2170: ---
        !          2171: > DFLEN  EQU  FARGS+1          LENGTH OF DFBLK IN BAUS
        !          2172: 2798a1650,1651
        !          2173: > .IF    .CNLD
        !          2174: 
        !          2175: 
        !          2176: 
        !          2177: 
        !          2178: 
        !          2179: 
        !          2180: 
        !          2181: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 34
        !          2182: 
        !          2183: 
        !          2184: > .ELSE
        !          2185: 2826c1679
        !          2186: < EFLEN  EQU  FARGS+1          LENGTH OF EFBLK IN BYTES
        !          2187: ---
        !          2188: > EFLEN  EQU  FARGS+1          LENGTH OF EFBLK IN BAUS
        !          2189: 2845a1699,1700
        !          2190: > *           4                TYPE IS BUFFER
        !          2191: > .FI
        !          2192: 2901c1756
        !          2193: < EXLEN  EQU  EXSTM+1          LENGTH OF EXBLK IN BYTES
        !          2194: ---
        !          2195: > EXLEN  EQU  EXSTM+1          LENGTH OF EXBLK IN BAUS
        !          2196: 2941c1796
        !          2197: < FFOFS  EQU  FFNXT+1          OFFSET (BYTES) TO FIELD IN PDBLK
        !          2198: ---
        !          2199: > FFOFS  EQU  FFNXT+1          OFFSET (BAUS) TO FIELD IN PDBLK
        !          2200: 3022c1877
        !          2201: < *      IS FOUND NMOFS BYTES PAST THE ADDRESS IN NMBAS.
        !          2202: ---
        !          2203: > *      IS FOUND NMOFS BAUS PAST THE ADDRESS IN NMBAS.
        !          2204: 3135c1990
        !          2205: < *      CONTAINS THE LENGTH OF THE PDBLK IN BYTES (FIELD DFPDL).
        !          2206: ---
        !          2207: > *      CONTAINS THE LENGTH OF THE PDBLK IN BAUS (FIELD DFPDL).
        !          2208: 3169c2024
        !          2209: < PFLEN  EQU  FARGS+1          LENGTH OF PFBLK IN BYTES
        !          2210: ---
        !          2211: > PFLEN  EQU  FARGS+1          LENGTH OF PFBLK IN BAUS
        !          2212: 3176c2031
        !          2213: < PFAGB  EQU  PFARG-1          OFFSET BEHIND PFARG FOR ARG, LOCAL
        !          2214: ---
        !          2215: > PFAGB  EQU  PFARG-1          OFFSET BEHIND PFARG FOR ARG,LOCAL
        !          2216: 3237c2092
        !          2217: < *      IS GIVEN IN BYTES BY CFP$F AND THAT THIS VALUE IS
        !          2218: ---
        !          2219: > *      IS GIVEN IN BAUS BY CFP$F AND THAT THIS VALUE IS
        !          2220: 3278c2133
        !          2221: < *           I                SVCHS               I
        !          2222: ---
        !          2223: > *           /                SVCHS               /
        !          2224: 3323c2178,2181
        !          2225: < SVFPK  EQU  SVFNP+SVKVC      PREEVAL FCN + CONST KEYWD + VAL
        !          2226: ---
        !          2227: > .IF    .CNFN
        !          2228: > .ELSE
        !          2229: > SVFPK  EQU  SVFNP+SVKVC      PREEVAL FUNC + CONST KEYWD+VAL
        !          2230: > .FI
        !          2231: 3333c2191
        !          2232: < *      THE ITEM AND APPLY FUNCTIONS FALL OUTSIDE THIS CATEGORY.
        !          2233: ---
        !          2234: > *      THE APPLY FUNCTION FALLS OUTSIDE THIS CATEGORY.
        !          2235: 3373c2231
        !          2236: < *           PREDEFINED FUNCTIONS USING THIS ARE APPLY AND ITEM.
        !          2237: ---
        !          2238: > *           PREDEFINED FUNCTION USING THIS IS APPLY.
        !          2239: 3401,3409c2259,2260
        !          2240: 
        !          2241: 
        !          2242: 
        !          2243: 
        !          2244: 
        !          2245: 
        !          2246: 
        !          2247: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 35
        !          2248: 
        !          2249: 
        !          2250: < K$ABE  EQU  0                ABEND
        !          2251: < K$ANC  EQU  K$ABE+CFP$B      ANCHOR
        !          2252: < .IF    .CULC
        !          2253: < K$CAS  EQU  K$ANC+CFP$B      CASE
        !          2254: < K$COD  EQU  K$CAS+CFP$B      CODE
        !          2255: < .ELSE
        !          2256: < K$COD  EQU  K$ANC+CFP$B      CODE
        !          2257: < .FI
        !          2258: < K$DMP  EQU  K$COD+CFP$B      DUMP
        !          2259: ---
        !          2260: > K$ANC  EQU  0                ANCHOR
        !          2261: > K$DMP  EQU  K$ANC+CFP$B      DUMP
        !          2262: 3447c2298,2299
        !          2263: < K$STC  EQU  K$RTN+1          STCOUNT
        !          2264: ---
        !          2265: > K$COD  EQU  K$RTN+1          CODE
        !          2266: > K$STC  EQU  K$COD+1          STCOUNT
        !          2267: 3454a2307
        !          2268: > K$$CD  EQU  K$COD-K$ALP      CODE
        !          2269: 3478d2330
        !          2270: < *           +------------------------------------+
        !          2271: 3487c2339
        !          2272: < TBLEN  EQU  OFFS2            LENGTH OF TBBLK IN BYTES
        !          2273: ---
        !          2274: > TBLEN  EQU  OFFS2            LENGTH OF TBBLK IN BAUS
        !          2275: 3546c2398
        !          2276: < *           I       TRTAG OR TRTER OR TRTRF      I
        !          2277: ---
        !          2278: > *           I            TRTAG OR TRTER          I
        !          2279: 3548c2400
        !          2280: < *           I            TRFNC OR TRFPT          I
        !          2281: ---
        !          2282: > *           I            TRFNC OR TRTRI          I
        !          2283: 3557c2409
        !          2284: < TRTAG  EQU  TRVAL+1          TRACE TAG
        !          2285: ---
        !          2286: > TRTAG  EQU  TRVAL+1          TRACE TAG OR IOTAG
        !          2287: 3559d2410
        !          2288: < TRTRF  EQU  TRTAG            PTR TO TRBLK HOLDING FCBLK PTR
        !          2289: 3561c2412
        !          2290: < TRFPT  EQU  TRFNC            FCBLK PTR FOR SYSIO
        !          2291: ---
        !          2292: > TRTRI  EQU  TRFNC            PTR TO TRACE BLOCK HOLDING IOTAG
        !          2293: 3567,3568c2418,2419
        !          2294: < TRTOU  EQU  TRTVL+1          TRACE TYPE FOR OUTPUT ASSOCIATION
        !          2295: < TRTFC  EQU  TRTOU+1          TRACE TYPE FOR FCBLK IDENTIFICATION
        !          2296: ---
        !          2297: > TRTIO  EQU  TRTVL+1          TRACE TYPE FOR IOTAG TRACE BLOCK
        !          2298: > TRTOU  EQU  TRTIO+1          TRACE TYPE FOR OUTPUT ASSOCIATION
        !          2299: 3584,3586c2435
        !          2300: < *           TRTRF POINTS TO THE TRAP BLOCK WHICH IN TURN POINTS
        !          2301: < *           TO AN FCBLK USED FOR I/O ASSOCIATION.
        !          2302: < *           TRFPT IS THE FCBLK PTR RETURNED BY SYSIO.
        !          2303: ---
        !          2304: > *           TRTRI IS A PTR TO IOTAG TRBLK FROM SYSIO OR ZERO.
        !          2305: 3625,3627c2474
        !          2306: 
        !          2307: 
        !          2308: 
        !          2309: 
        !          2310: 
        !          2311: 
        !          2312: 
        !          2313: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 36
        !          2314: 
        !          2315: 
        !          2316: < *           TRTRF POINTS TO THE TRAP BLOCK WHICH IN TURN POINTS
        !          2317: < *           TO AN FCBLK USED FOR I/O ASSOCIATION.
        !          2318: < *           TRFPT IS THE FCBLK PTR RETURNED BY SYSIO.
        !          2319: ---
        !          2320: > *           TRTRI IS A PTR TO IOTAG TRBLK FROM SYSIO OR ZERO.
        !          2321: 3681c2528
        !          2322: < *      INPUT/OUTPUT FILE ARG1 TRAP BLOCK
        !          2323: ---
        !          2324: > *      INPUT/OUTPUT FILETAG TRAP BLOCK (TRTIO)
        !          2325: 3683c2530
        !          2326: < *           THE VALUE FIELD OF THE VARIABLE POINTS TO A TRBLK
        !          2327: ---
        !          2328: > *           THE VALUE FIELD OF THE FILETAG VBL POINTS TO A TRBLK
        !          2329: 3687,3689c2534
        !          2330: < *           TO HOLD A POINTER TO THE FCBLK WHICH AN
        !          2331: < *           IMPLEMENTATION MAY REQUEST TO HOLD INFORMATION
        !          2332: < *           ABOUT A FILE.
        !          2333: ---
        !          2334: > *           TO HOLD THE IOTAG RETURNED BY A SYSIO CALL
        !          2335: 3691,3694c2536,2538
        !          2336: < *           TRTYP IS SET TO TRTFC
        !          2337: < *           TRNEXT POINTS TO NEXT TRBLK OR TRVAL IS VARIABLE VAL
        !          2338: < *           TRFNM IS 0
        !          2339: < *           TRFPT IS THE FCBLK POINTER.
        !          2340: ---
        !          2341: > *           TRTYP IS SET TO TRTIO
        !          2342: > *           TRNXT POINTS TO NEXT TRBLK OR TRVAL IS VARIABLE VAL
        !          2343: > *           TRTAG HOLDS THE IOTAG.
        !          2344: 3701a2546
        !          2345: > *      FILETAG ASSOCIATION (IF PRESENT)
        !          2346: 3729c2574
        !          2347: < VCLEN  EQU  OFFS2            LENGTH OF VCBLK IN BYTES
        !          2348: ---
        !          2349: > VCLEN  EQU  OFFS2            LENGTH OF VCBLK IN BAUS
        !          2350: 3832c2677
        !          2351: < *      VRCHS IS THE NAME (LJRZ) IF VRLEN IS NON-ZERO.
        !          2352: ---
        !          2353: > *      VRCHS IS THE NAME IF VRLEN IS NON-ZERO.
        !          2354: 3843,3844d2687
        !          2355: < *      THIS TYPE OF BLOCK MAY BE USED AS A FILE CONTROL BLOCK.
        !          2356: < *      SEE SYSFC,SYSIN,SYSOU,S$INP,S$OUP FOR DETAILS.
        !          2357: 3857c2700
        !          2358: < XNLEN  EQU  XNTYP+1          LENGTH OF XNBLK IN BYTES
        !          2359: ---
        !          2360: > XNLEN  EQU  XNTYP+1          LENGTH OF XNBLK IN BAUS
        !          2361: 3873,3874d2715
        !          2362: < *      THIS TYPE OF BLOCK MAY BE USED AS A FILE CONTROL BLOCK.
        !          2363: < *      SEE SYSFC,SYSIN,SYSOU,S$INP,S$OUP FOR DETAILS.
        !          2364: 3887c2728
        !          2365: < XRLEN  EQU  XRTYP+1          LENGTH OF XRBLK IN BYTES
        !          2366: ---
        !          2367: > XRLEN  EQU  XRTYP+1          LENGTH OF XRBLK IN BAUS
        !          2368: 3911,3912c2752
        !          2369: < INILN  EQU  132              DEFAULT IMAGE LENGTH FOR COMPILER
        !          2370: < INILS  EQU  80               IMAGE LENGTH IF -SEQU IN EFFECT
        !          2371: ---
        !          2372: 
        !          2373: 
        !          2374: 
        !          2375: 
        !          2376: 
        !          2377: 
        !          2378: 
        !          2379: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 37
        !          2380: 
        !          2381: 
        !          2382: > INILN  EQU  160              DEFAULT IMAGE LENGTH FOR COMPILER
        !          2383: 3914,3916d2753
        !          2384: < IONMB  EQU  2                NAME BASE USED FOR IOCHN IN SYSIO
        !          2385: < IONMO  EQU  4                NAME OFFSET USED FOR IOCHN IN SYSIO
        !          2386: < *
        !          2387: 3931d2767
        !          2388: < NINI8  EQU  998
        !          2389: 3934d2769
        !          2390: <        EJC
        !          2391: 3945c2780
        !          2392: < RILEN  EQU  120              BUFFER LENGTH FOR SYSRI
        !          2393: ---
        !          2394: > RILEN  EQU  160              BUFFER LENGTH FOR SYSRI
        !          2395: 4051,4053c2886,2888
        !          2396: < .IF    .CULC
        !          2397: < CC$CA  EQU  0                -CASE
        !          2398: < CC$DO  EQU  CC$CA+1          -DOUBLE
        !          2399: ---
        !          2400: > .IF    .CASL
        !          2401: > CC$CI  EQU  0                -CASEIG
        !          2402: > CC$CO  EQU  CC$CI+1          -COPY
        !          2403: 4055c2890
        !          2404: < CC$DO  EQU  0                -DOUBLE
        !          2405: ---
        !          2406: > CC$CO  EQU  0                -COPY
        !          2407: 4057,4061c2892,2893
        !          2408: < CC$DU  EQU  CC$DO+1          -DUMP
        !          2409: < CC$EJ  EQU  CC$DU+1          -EJECT
        !          2410: < CC$ER  EQU  CC$EJ+1          -ERRORS
        !          2411: < CC$EX  EQU  CC$ER+1          -EXECUTE
        !          2412: < CC$FA  EQU  CC$EX+1          -FAIL
        !          2413: ---
        !          2414: > CC$EJ  EQU  CC$CO+1          -EJECT
        !          2415: > CC$FA  EQU  CC$EJ+1          -FAIL
        !          2416: 4063,4065c2895,2900
        !          2417: < CC$NR  EQU  CC$LI+1          -NOERRORS
        !          2418: < CC$NX  EQU  CC$NR+1          -NOEXECUTE
        !          2419: < CC$NF  EQU  CC$NX+1          -NOFAIL
        !          2420: ---
        !          2421: > .IF    .CASL
        !          2422: > CC$NC  EQU  CC$LI+1          -NOCASEIG
        !          2423: > CC$NF  EQU  CC$NC+1          -NOFAIL
        !          2424: > .ELSE
        !          2425: > CC$NF  EQU  CC$LI+1          -NOFAIL
        !          2426: > .FI
        !          2427: 4067,4073c2902
        !          2428: < CC$NO  EQU  CC$NL+1          -NOOPT
        !          2429: < CC$NP  EQU  CC$NO+1          -NOPRINT
        !          2430: < CC$OP  EQU  CC$NP+1          -OPTIMISE
        !          2431: < CC$PR  EQU  CC$OP+1          -PRINT
        !          2432: < CC$SI  EQU  CC$PR+1          -SINGLE
        !          2433: < CC$SP  EQU  CC$SI+1          -SPACE
        !          2434: < CC$ST  EQU  CC$SP+1          -STITL
        !          2435: ---
        !          2436: > CC$ST  EQU  CC$NL+1          -STITL
        !          2437: 4076c2905
        !          2438: 
        !          2439: 
        !          2440: 
        !          2441: 
        !          2442: 
        !          2443: 
        !          2444: 
        !          2445: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 38
        !          2446: 
        !          2447: 
        !          2448: < CC$NC  EQU  CC$TR+1          NUMBER OF CONTROL CARDS
        !          2449: ---
        !          2450: > CC$CT  EQU  CC$TR+1          NUMBER OF CONTROL CARDS
        !          2451: 4079d2907
        !          2452: <        EJC
        !          2453: 4108d2935
        !          2454: < *
        !          2455: 4157c2984
        !          2456: < .IF    .CULC
        !          2457: ---
        !          2458: > .IF    .CASL
        !          2459: 4159c2986
        !          2460: <        DTC  /DOUB/
        !          2461: ---
        !          2462: >        DTC  /COPY/
        !          2463: 4161c2988
        !          2464: < CCNMS  DTC  /DOUB/
        !          2465: ---
        !          2466: > CCNMS  DTC  /COPY/
        !          2467: 4163d2989
        !          2468: <        DTC  /DUMP/
        !          2469: 4165,4166d2990
        !          2470: <        DTC  /ERRO/
        !          2471: <        DTC  /EXEC/
        !          2472: 4169,4170c2993,2995
        !          2473: <        DTC  /NOER/
        !          2474: <        DTC  /NOEX/
        !          2475: ---
        !          2476: > .IF    .CASL
        !          2477: >        DTC  /NOCA/
        !          2478: > .FI
        !          2479: 4173,4178d2997
        !          2480: <        DTC  /NOOP/
        !          2481: <        DTC  /NOPR/
        !          2482: <        DTC  /OPTI/
        !          2483: <        DTC  /PRIN/
        !          2484: <        DTC  /SING/
        !          2485: <        DTC  /SPAC/
        !          2486: 4185c3004
        !          2487: < DMHDK  DAC  B$SCL            DUMP OF KEYWORD VALUES
        !          2488: ---
        !          2489: > DMHDK  DAC  B$SCL
        !          2490: 4187c3006
        !          2491: <        DTC  /DUMP OF KEYWORD VALUES/
        !          2492: ---
        !          2493: >        DDC  /DUMP OF KEYWORD VALUES/
        !          2494: 4189c3008
        !          2495: < DMHDV  DAC  B$SCL            DUMP OF NATURAL VARIABLES
        !          2496: ---
        !          2497: > DMHDV  DAC  B$SCL
        !          2498: 4191,4192c3010
        !          2499: <        DTC  /DUMP OF NATURAL VARIABLES/
        !          2500: <        EJC
        !          2501: ---
        !          2502: >        DDC  /DUMP OF NATURAL VARIABLES/
        !          2503: 4198c3016
        !          2504: 
        !          2505: 
        !          2506: 
        !          2507: 
        !          2508: 
        !          2509: 
        !          2510: 
        !          2511: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 39
        !          2512: 
        !          2513: 
        !          2514: <        DTC  /STORE USED/
        !          2515: ---
        !          2516: >        DDC  /STORE USED/
        !          2517: 4202c3020
        !          2518: <        DTC  /STORE LEFT/
        !          2519: ---
        !          2520: >        DDC  /STORE LEFT/
        !          2521: 4206c3024
        !          2522: <        DTC  /COMP ERRORS/
        !          2523: ---
        !          2524: >        DDC  /COMP ERRORS/
        !          2525: 4210c3028,3032
        !          2526: <        DTC  /COMP TIME-MSEC/
        !          2527: ---
        !          2528: > .IF    .CTMD
        !          2529: >        DDC  /COMP TIME-DSEC/
        !          2530: > .ELSE
        !          2531: >        DDC  /COMP TIME-MSEC/
        !          2532: > .FI
        !          2533: 4212c3034
        !          2534: < ENCM5  DAC  B$SCL            EXECUTION SUPPRESSED
        !          2535: ---
        !          2536: > ENCM5  DAC  B$SCL
        !          2537: 4214c3036,3037
        !          2538: <        DTC  /EXECUTION SUPPRESSED/
        !          2539: ---
        !          2540: >        DDC  /EXECUTION SUPPRESSED/
        !          2541: >        EJC
        !          2542: 4216c3039
        !          2543: < *      STRING CONSTANT FOR ABNORMAL END
        !          2544: ---
        !          2545: > *      FOR TERMINATION IN COMPILATION
        !          2546: 4218,4221c3041,3043
        !          2547: < ENDAB  DAC  B$SCL
        !          2548: <        DAC  12
        !          2549: <        DTC  /ABNORMAL END/
        !          2550: <        EJC
        !          2551: ---
        !          2552: > ENDIC  DAC  B$SCL
        !          2553: >        DAC  14
        !          2554: >        DDC  /IN COMPILATION/
        !          2555: 4227c3049
        !          2556: <        DTC  /MEMORY OVERFLOW/
        !          2557: ---
        !          2558: >        DDC  /MEMORY OVERFLOW/
        !          2559: 4233c3055
        !          2560: <        DTC  /NORMAL END/
        !          2561: ---
        !          2562: >        DDC  /NORMAL END/
        !          2563: 4237c3059
        !          2564: < ENDSO  DAC  B$SCL            STACK OVERFLOW IN GARBAGE COLLECTOR
        !          2565: ---
        !          2566: > ENDSO  DAC  B$SCL
        !          2567: 4239,4245c3061
        !          2568: <        DTC  /STACK OVERFLOW IN GARBAGE COLLECTION/
        !          2569: < *
        !          2570: 
        !          2571: 
        !          2572: 
        !          2573: 
        !          2574: 
        !          2575: 
        !          2576: 
        !          2577: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 40
        !          2578: 
        !          2579: 
        !          2580: < *      STRING CONSTANT FOR TIME UP
        !          2581: < *
        !          2582: < ENDTU  DAC  B$SCL
        !          2583: <        DAC  15
        !          2584: <        DTC  /ERROR - TIME UP/
        !          2585: ---
        !          2586: >        DDC  /STACK OVERFLOW IN GARBAGE COLLECTION/
        !          2587: 4250c3066
        !          2588: < ERMMS  DAC  B$SCL            ERROR
        !          2589: ---
        !          2590: > ERMMS  DAC  B$SCL
        !          2591: 4252c3068
        !          2592: <        DTC  /ERROR/
        !          2593: ---
        !          2594: >        DDC  /ERROR/
        !          2595: 4254c3070
        !          2596: < ERMNS  DAC  B$SCL            STRING / -- /
        !          2597: ---
        !          2598: > ERMNS  DAC  B$SCL
        !          2599: 4257a3074,3076
        !          2600: > *
        !          2601: > ERRTF  DAC  251              FATAL ERROR CODE - SEE LABEL ERRAF
        !          2602: > *
        !          2603: 4260c3079
        !          2604: < LSTMS  DAC  B$SCL            PAGE
        !          2605: ---
        !          2606: > LSTMS  DAC  B$SCL
        !          2607: 4262c3081
        !          2608: <        DTC  /PAGE /
        !          2609: ---
        !          2610: >        DDC  /PAGE /
        !          2611: 4268c3087
        !          2612: <        DTC  /MACRO SPITBOL VERSION 3.5/
        !          2613: ---
        !          2614: >        DDC  /MACRO SPITBOL VERSION 4.3/
        !          2615: 4272c3091
        !          2616: <        DTC  /3.5/
        !          2617: ---
        !          2618: >        DTC  /4.3/
        !          2619: 4301a3121,3123
        !          2620: > NDEXC  DAC  P$EXC            EXPRESSION
        !          2621: > .IF    .CNFN
        !          2622: > .ELSE
        !          2623: 4304c3126
        !          2624: < NDEXC  DAC  P$EXC            EXPRESSION
        !          2625: ---
        !          2626: > .FI
        !          2627: 4351,4353c3173,3175
        !          2628: < *      OPDVS IS USED WHEN SCANNING BELOW THE TOP LEVEL TO
        !          2629: < *      INSURE THAT THE CONCATENATION WILL NOT BE LATER
        !          2630: < *      MISTAKEN FOR PATTERN MATCHING
        !          2631: ---
        !          2632: > *      OPDVP IS USED WHEN SCANNING BELOW TOP LEVEL TO ENSURE
        !          2633: > *      THE CONCATENATION WILL NOT LATER BE MISTAKEN FOR
        !          2634: > *      PATTERN MATCHING
        !          2635: 4355c3177
        !          2636: 
        !          2637: 
        !          2638: 
        !          2639: 
        !          2640: 
        !          2641: 
        !          2642: 
        !          2643: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 41
        !          2644: 
        !          2645: 
        !          2646: < OPDVP  DAC  O$CNC            CONCATENATION - NOT PATTERN MATCH
        !          2647: ---
        !          2648: > OPDVP  DAC  O$CNC            PROVEN CONCATENATION
        !          2649: 4459,4467d3280
        !          2650: <        DAC  O$IMA            IMMEDIATE ASSIGNMENT
        !          2651: <        DAC  C$BVN
        !          2652: <        DAC  LLDLD
        !          2653: <        DAC  RRDLD
        !          2654: < *
        !          2655: <        DAC  O$INV            INDIRECTION
        !          2656: <        DAC  C$IND
        !          2657: <        DAC  LLUNO
        !          2658: < *
        !          2659: 4497a3311,3319
        !          2660: >        DAC  O$IMA            IMMEDIATE ASSIGNMENT
        !          2661: >        DAC  C$BVN
        !          2662: >        DAC  LLDLD
        !          2663: >        DAC  RRDLD
        !          2664: > *
        !          2665: >        DAC  O$INV            INDIRECTION
        !          2666: >        DAC  C$IND
        !          2667: >        DAC  LLUNO
        !          2668: > *
        !          2669: 4580c3402
        !          2670: <        DTC  /PROGRAM PROFILE/
        !          2671: ---
        !          2672: >        DDC  /PROGRAM PROFILE/
        !          2673: 4583c3405
        !          2674: <        DTC  /STMT    NUMBER OF     -- EXECUTION TIME --/
        !          2675: ---
        !          2676: >        DDC  /STMT    NUMBER OF     -- EXECUTION TIME --/
        !          2677: 4586c3408
        !          2678: <        DTC  /NUMBER  EXECUTIONS  TOTAL(MSEC) PER EXCN(MCSEC)/
        !          2679: ---
        !          2680: >        DDC  /NUMBER  EXECUTIONS  TOTAL(MSEC) PER EXCN(MCSEC)/
        !          2681: 4588d3409
        !          2682: < *
        !          2683: 4616a3438,3439
        !          2684: > .IF    .CNBF
        !          2685: > .ELSE
        !          2686: 4618c3441
        !          2687: < SCBUF  DAC  B$SCL            BUFFER
        !          2688: ---
        !          2689: > SCBUF  DAC  B$SCL
        !          2690: 4620a3444
        !          2691: > .FI
        !          2692: 4717a3542,3544
        !          2693: > .IF    .CS16
        !          2694: > STLIM  DIC  +32767           DEFAULT STATEMENT LIMIT
        !          2695: > .ELSE
        !          2696: 4718a3546
        !          2697: > .FI
        !          2698: 4749c3577
        !          2699: < STPM1  DAC  B$SCL            IN STATEMENT
        !          2700: ---
        !          2701: > STPM1  DAC  B$SCL
        !          2702: 
        !          2703: 
        !          2704: 
        !          2705: 
        !          2706: 
        !          2707: 
        !          2708: 
        !          2709: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 42
        !          2710: 
        !          2711: 
        !          2712: 4751c3579
        !          2713: <        DTC  /IN STATEMENT/
        !          2714: ---
        !          2715: >        DDC  /IN STATEMENT/
        !          2716: 4755c3583
        !          2717: <        DTC  /STMTS EXECUTED/
        !          2718: ---
        !          2719: >        DDC  /STMTS EXECUTED/
        !          2720: 4759c3587,3591
        !          2721: <        DTC  /RUN TIME-MSEC/
        !          2722: ---
        !          2723: > .IF    .CTMD
        !          2724: >        DDC  /RUN TIME-DSEC/
        !          2725: > .ELSE
        !          2726: >        DDC  /RUN TIME-MSEC/
        !          2727: > .FI
        !          2728: 4763c3595
        !          2729: <        DTC  $MCSEC / STMT$
        !          2730: ---
        !          2731: >        DDC  $MCSEC / STMT$
        !          2732: 4767c3599
        !          2733: <        DTC  /REGENERATIONS/
        !          2734: ---
        !          2735: >        DDC  /REGENERATIONS/
        !          2736: 4769,4772d3600
        !          2737: < *      CHARS FOR /TU/ ENDING CODE
        !          2738: < *
        !          2739: < STRTU  DTC  /TU/
        !          2740: < *
        !          2741: 4800c3628
        !          2742: < TMASB  DAC  B$SCL            ASTERISKS FOR TRACE STATEMENT NO
        !          2743: ---
        !          2744: > TMASB  DAC  B$SCL
        !          2745: 4803d3630
        !          2746: <
        !          2747: 4805c3632
        !          2748: < TMBEB  DAC  B$SCL            BLANK-EQUAL-BLANK
        !          2749: ---
        !          2750: > TMBEB  DAC  B$SCL
        !          2751: 4891a3719,3724
        !          2752: > V$CTI  DBC  SVFNP            CTI
        !          2753: >        DAC  3
        !          2754: >        DTC  /CTI/
        !          2755: >        DAC  S$CTI
        !          2756: >        DAC  1
        !          2757: > *
        !          2758: 4896a3730,3735
        !          2759: > V$ITC  DBC  SVFNN            ITC
        !          2760: >        DAC  3
        !          2761: >        DTC  /ITC/
        !          2762: >        DAC  S$ITC
        !          2763: >        DAC  1
        !          2764: > *
        !          2765: 4967d3805
        !          2766: < .IF    .CULC
        !          2767: 4969,4980d3806
        !          2768: 
        !          2769: 
        !          2770: 
        !          2771: 
        !          2772: 
        !          2773: 
        !          2774: 
        !          2775: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 43
        !          2776: 
        !          2777: 
        !          2778: < V$CAS  DBC  SVKNM            CASE
        !          2779: <        DAC  4
        !          2780: <        DTC  /CASE/
        !          2781: <        DAC  K$CAS
        !          2782: < .FI
        !          2783: < *
        !          2784: < V$CHR  DBC  SVFNP            CHAR
        !          2785: <        DAC  4
        !          2786: <        DTC  /CHAR/
        !          2787: <        DAC  S$CHR
        !          2788: <        DAC  1
        !          2789: < *
        !          2790: 5077a3904
        !          2791: >        EJC
        !          2792: 5078a3906,3908
        !          2793: > *      STANDARD VARIABLE BLOCKS (CONTINUED)
        !          2794: > *
        !          2795: > *
        !          2796: 5133,5137d3962
        !          2797: < V$ABE  DBC  SVKNM            ABEND
        !          2798: <        DAC  5
        !          2799: <        DTC  /ABEND/
        !          2800: <        DAC  K$ABE
        !          2801: < *
        !          2802: 5183a4009,4011
        !          2803: > .IF    .CNFN
        !          2804: > V$FEN  DBC  SVKVC            FENCE
        !          2805: > .ELSE
        !          2806: 5184a4013
        !          2807: > .FI
        !          2808: 5187a4017,4018
        !          2809: > .IF    .CNFN
        !          2810: > .ELSE
        !          2811: 5189a4021
        !          2812: > .FI
        !          2813: 5217d4048
        !          2814: < *
        !          2815: 5257a4089,4092
        !          2816: >        EJC
        !          2817: > *
        !          2818: > *      STANDARD VARIABLE BLOCKS (CONTINUED)
        !          2819: > *
        !          2820: 5260,5261c4095
        !          2821: < *
        !          2822: < V$APN  DBC  SVFNN
        !          2823: ---
        !          2824: > V$APN  DBC  SVFNN            APPEND
        !          2825: 5273d4106
        !          2826: < *
        !          2827: 5286c4119
        !          2828: <        DAC  S$DEF
        !          2829: ---
        !          2830: >        DAC  S$DFN
        !          2831: 5294d4126
        !          2832: <        EJC
        !          2833: 5296,5297d4127
        !          2834: 
        !          2835: 
        !          2836: 
        !          2837: 
        !          2838: 
        !          2839: 
        !          2840: 
        !          2841: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 44
        !          2842: 
        !          2843: 
        !          2844: < *      STANDARD VARIABLE BLOCKS (CONTINUED)
        !          2845: < *
        !          2846: 5308c4138
        !          2847: < *
        !          2848: ---
        !          2849: >        EJC
        !          2850: 5310a4141
        !          2851: > *
        !          2852: 5316d4146
        !          2853: < *
        !          2854: 5317a4148
        !          2855: > *
        !          2856: 5341,5346d4171
        !          2857: < V$REW  DBC  SVFNN            REWIND
        !          2858: <        DAC  6
        !          2859: <        DTC  /REWIND/
        !          2860: <        DAC  S$REW
        !          2861: <        DAC  1
        !          2862: < *
        !          2863: 5377c4202
        !          2864: <        DAC  S$CNV
        !          2865: ---
        !          2866: >        DAC  S$CVT
        !          2867: 5384c4209
        !          2868: <        DAC  1
        !          2869: ---
        !          2870: >        DAC  2
        !          2871: 5414d4238
        !          2872: < *
        !          2873: 5423a4248
        !          2874: > *
        !          2875: 5462a4288,4293
        !          2876: > V$VDF  DBC  SVFPR            VDIFFER
        !          2877: >        DAC  7
        !          2878: >        DTC  /VDIFFER/
        !          2879: >        DAC  S$VDF
        !          2880: >        DAC  2
        !          2881: > *
        !          2882: 5466a4298
        !          2883: >        EJC
        !          2884: 5467a4300,4301
        !          2885: > *      STANDARD VARIABLE BLOCKS (CONTINUED)
        !          2886: > *
        !          2887: 5472d4305
        !          2888: <        EJC
        !          2889: 5474,5475d4306
        !          2890: < *      STANDARD VARIABLE BLOCKS (CONTINUED)
        !          2891: < *
        !          2892: 5516,5518d4346
        !          2893: < .IF    .CULC
        !          2894: <        DAC  V$CAS            CCASE
        !          2895: < .FI
        !          2896: 5548,5553c4376,4377
        !          2897: < .IF    .CULC
        !          2898: <        DAC  V$CAS            START OF 4 CHAR VARIABLES
        !          2899: < .ELSE
        !          2900: 
        !          2901: 
        !          2902: 
        !          2903: 
        !          2904: 
        !          2905: 
        !          2906: 
        !          2907: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 45
        !          2908: 
        !          2909: 
        !          2910: <        DAC  V$CHR            START OF 4 CHAR VARIABLES
        !          2911: < .FI
        !          2912: <        DAC  V$ABE            START OF 5 CHAR VARIABLES
        !          2913: ---
        !          2914: >        DAC  V$COD            START OF 4 CHAR VARIABLES
        !          2915: >        DAC  V$ABO            START OF 5 CHAR VARIABLES
        !          2916: 5598c4422
        !          2917: < *      LABEL TO MARK START OF WORK AREA
        !          2918: ---
        !          2919: > *      LABEL TO MARK START OF WORK AREA WHICH IS CLEARED
        !          2920: 5663,5665c4487,4489
        !          2921: < CSWDB  DAC  0                0/1 FOR -SINGLE/-DOUBLE
        !          2922: < CSWER  DAC  0                0/1 FOR -ERRORS/-NOERRORS
        !          2923: < CSWEX  DAC  0                0/1 FOR -EXECUTE/-NOEXECUTE
        !          2924: ---
        !          2925: > .IF    .CASL
        !          2926: > CSWCI  DAC  0                0/1 FOR -NOCASEIG/CASEIG
        !          2927: > .FI
        !          2928: 5669,5670c4493
        !          2929: < CSWNO  DAC  0                0/1 FOR -OPTIMISE/-NOOPT
        !          2930: < CSWPR  DAC  0                0/1 FOR -NOPRINT/-PRINT
        !          2931: ---
        !          2932: >        EJC
        !          2933: 5676d4498
        !          2934: <        EJC
        !          2935: 5711,5715d4532
        !          2936: < *      WORK AREA FOR DTACH
        !          2937: < *
        !          2938: < DTCNB  DAC  0                NAME BASE
        !          2939: < DTCNM  DAC  0                NAME PTR
        !          2940: < *
        !          2941: 5726,5727c4543
        !          2942: < ERICH  DAC  0                COPY ERROR REPORTS TO INT.CHAN IF 1
        !          2943: < ERLST  DAC  0                FOR LISTR WHEN ERRORS GO TO INT.CH.
        !          2944: ---
        !          2945: > EROSN  DAC  0                FLAG FOR SPECIAL EROSI RETURN
        !          2946: 5741a4558
        !          2947: > *
        !          2948: 5798a4616
        !          2949: > GTNSV  DIC  +0               SAVE IA
        !          2950: 5821a4640
        !          2951: >        EJC
        !          2952: 5827c4646
        !          2953: < *      FLAG FOR HEADER PRINTING
        !          2954: ---
        !          2955: > *      FLAGS FOR HEADER PRINTING
        !          2956: 5828a4648
        !          2957: > HEADN  DAC  0                NON-ZERO IF HDRS NOT TO BE PRINTED
        !          2958: 5838a4659
        !          2959: > INICD  DIC  +0               CODE KWD VAL (NEEDED FOR BATCH)
        !          2960: 5846c4667,4669
        !          2961: < INSAB  DAC  0                ENTRY WA + ENTRY WB
        !          2962: ---
        !          2963: > INSAB  DAC  0                ENTRY WA PLUS ENTRY WB
        !          2964: > INSBB  DAC  0                BFBLK POINTER
        !          2965: > INSBC  DAC  0                BCBLK POINTER
        !          2966: 
        !          2967: 
        !          2968: 
        !          2969: 
        !          2970: 
        !          2971: 
        !          2972: 
        !          2973: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 46
        !          2974: 
        !          2975: 
        !          2976: 5849d4671
        !          2977: < INSSC  DAC  0                SAVE ENTRY WC
        !          2978: 5854c4676,4680
        !          2979: < IOPTT  DAC  0                TYPE OF ASSOCIATION
        !          2980: ---
        !          2981: > IOPNF  DAC  0                NAME OFFSET
        !          2982: > IOPVR  DAC  0                FILETAG VRBLK
        !          2983: > IOPWA  DAC  0                KEEP WA
        !          2984: > IOPWB  DAC  0                KEEP WB
        !          2985: > IOPWC  DAC  0                KEEP WC
        !          2986: 5861d4686
        !          2987: < KVABE  DAC  0                ABEND
        !          2988: 5863,5866d4687
        !          2989: < .IF    .CULC
        !          2990: < KVCAS  DAC  0                CASE
        !          2991: < .FI
        !          2992: < KVCOD  DAC  0                CODE
        !          2993: 5887a4709,4713
        !          2994: > KVCOD  DIC  0                CODE
        !          2995: > .IF    .CS16
        !          2996: > KVSTL  DIC  +32767           STLIMIT
        !          2997: > KVSTC  DIC  +32767           STCOUNT (COUNTS DOWN FROM STLIMIT)
        !          2998: > .ELSE
        !          2999: 5889a4716
        !          3000: > .FI
        !          3001: 5897a4725
        !          3002: >        EJC
        !          3003: 5920c4748
        !          3004: < PFDMP  DAC  0                SET NON-0 IF &PROFILE SET NON-0
        !          3005: ---
        !          3006: > PFDMP  DAC  0                SET NON-0 IF PROFILE SET NON-0
        !          3007: 5927c4755
        !          3008: < PFSTE  DIC  +0               GETS INT REP OF TABLE ENTRY SIZE
        !          3009: ---
        !          3010: > PFSTE  DIC  +0               TABLE ENTRY SIZE IN BAUS
        !          3011: 5929d4756
        !          3012: < *
        !          3013: 5938,5943d4764
        !          3014: < *      FLAGS USED FOR STANDARD FILE LISTING OPTIONS
        !          3015: < *
        !          3016: < PRICH  DAC  0                PRINTER ON INTERACTIVE CHANNEL
        !          3017: < PRSTD  DAC  0                TESTED BY PRTPG
        !          3018: < PRSTO  DAC  0                STANDARD LISTING OPTION FLAG
        !          3019: < *
        !          3020: 5957a4779,4780
        !          3021: > PRAVL  DAC  0                SET IF PRINT FILE AVAILABLE
        !          3022: > PRBLK  DAC  0                ADDRESS OF BUFFER BLANKING STRING
        !          3023: 5958a4782,4783
        !          3024: > PRCHS  DAC  0                ADDRESS OF CHARS IN PRINT BUFFER
        !          3025: > PRCMV  DAC  0                NO. OF BAUS TO MOVE IN BFR CLEARING
        !          3026: 5961d4785
        !          3027: < PRLNW  DAC  0                LENGTH OF PRINT BUFFER IN WORDS
        !          3028: 5962a4787,4789
        !          3029: > PRPUT  DAC  0                SET IF CHARS TO BE PUT IN BFR
        !          3030: > PRSTD  DAC  0                TESTED BY PRTPG
        !          3031: > PRSTO  DAC  0                STANDARD LISTING OPTION FLAG
        !          3032: 
        !          3033: 
        !          3034: 
        !          3035: 
        !          3036: 
        !          3037: 
        !          3038: 
        !          3039: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 47
        !          3040: 
        !          3041: 
        !          3042: 5965c4792
        !          3043: < *      WORK AREAS FOR PRTST PROCEDURE
        !          3044: ---
        !          3045: > *      WORK AREAS FOR PRTST, PTTST PROCEDURES
        !          3046: 5969c4796,4797
        !          3047: < PRSVC  DAC  0                SAVE CHAR COUNTER
        !          3048: ---
        !          3049: > PRTVA  DAC  0                SAVE WA
        !          3050: > PRTVB  DAC  0                SAVE WB
        !          3051: 5971,5975d4798
        !          3052: < *      WORK AREA FOR PRTNL
        !          3053: < *
        !          3054: < PRTSA  DAC  0                SAVE WA
        !          3055: < PRTSB  DAC  0                SAVE WB
        !          3056: < *
        !          3057: 5985a4809,4812
        !          3058: > *      FLAG TO TELL ERROR THAT WE ARE READING SOURCE LINE
        !          3059: > *
        !          3060: > RDRER  DAC  0                READ-SOURCE-LINE IN PROGRESS FLAG
        !          3061: > *
        !          3062: 6009a4837
        !          3063: > R$COP  DAC  0                PTR TO -COPY CHAIN STACK
        !          3064: 6014d4841
        !          3065: < R$FCB  DAC  0                FCBLK CHAIN HEAD
        !          3066: 6017,6022c4844,4847
        !          3067: < R$IO1  DAC  0                FILE ARG1 FOR IOPUT
        !          3068: < R$IO2  DAC  0                FILE ARG2 FOR IOPUT
        !          3069: < R$IOF  DAC  0                FCBLK PTR OR 0
        !          3070: < R$ION  DAC  0                NAME BASE PTR
        !          3071: < R$IOP  DAC  0                PREDECESSOR BLOCK PTR FOR IOPUT
        !          3072: < R$IOT  DAC  0                TRBLK PTR FOR IOPUT
        !          3073: ---
        !          3074: > R$IO1  DAC  0                FIRST ARGUMENT
        !          3075: > R$IOL  DAC  0                SECOND ARGUMENT (FILETAG) SCBLK PTR
        !          3076: > R$IOR  DAC  0                FILEPROPS SCBLK PTR
        !          3077: > R$IOT  DAC  0                TRTIO TRACE BLK PTR
        !          3078: 6077a4903,4910
        !          3079: > *
        !          3080: > *      WORK AREA FOR DETACH PROCEDURE
        !          3081: > *
        !          3082: > SDETF  DAC  0                TRACE BLOCK FLAG
        !          3083: > *
        !          3084: > *      WORK AREA FOR ENDFILE PROCEDURE
        !          3085: > *
        !          3086: > SENFR  DAC  0                SAVE XR
        !          3087: 6102c4935
        !          3088: < *      GLOBAL VALUE FOR INDICATING STAGE (SEE ERROR SECTION)
        !          3089: ---
        !          3090: > *      VALUES FOR INDICATING COMPILATION/EXECUTION STAGE
        !          3091: 6104a4938
        !          3092: > STAGX  DAC  0                NON-ZERO IF EXECUTING
        !          3093: 6119a4954
        !          3094: > STPXR  DAC  0                SAVE XR
        !          3095: 6133d4967
        !          3096: < TIMUP  DAC  0                SET WHEN TIME UP OCCURS
        !          3097: 6134a4969,4981
        !          3098: 
        !          3099: 
        !          3100: 
        !          3101: 
        !          3102: 
        !          3103: 
        !          3104: 
        !          3105: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 48
        !          3106: 
        !          3107: 
        !          3108: > *      TERMINAL BUFFER ADDRESSES, FLAGS ETC
        !          3109: > *
        !          3110: > TTBLK  DAC  0                BLANKING STRING ADRS
        !          3111: > TTBUF  DAC  0                BUFFER ADRS
        !          3112: > TTCHS  DAC  0                START OF BUFFER CHARACTERS
        !          3113: > TTCMV  DAC  0                COUNT OF BLANKING CHARS TO MOVE
        !          3114: > TTERL  DAC  0                ERROR FLAG
        !          3115: > TTINS  DAC  0                NON-ZERO IF STD INPUT FROM TERML
        !          3116: > TTLEN  DAC  0                LENGTH OF TERMINAL BUFFER
        !          3117: > TTLST  DAC  0                COPY STD O/P TO TERML IF SET
        !          3118: > TTOFS  DAC  0                OFFSET TO POSITION IN TERML BFR
        !          3119: > TTOUS  DAC  0                SET IF STD OUTPUT TO TERMINAL
        !          3120: > *
        !          3121: 6136a4984,4985
        !          3122: > XSCBL  DAC  0                COUNT OF TRAILING BLANKS
        !          3123: > XSCNB  DAC  0                NON-ZERO IF NON-BLANKS SEEN
        !          3124: 6155a5005
        !          3125: > *      (WA)                  INITIAL &CODE VALUE
        !          3126: 6158c5008,5010
        !          3127: <        JSR  SYSTM            INITIALISE TIMER
        !          3128: ---
        !          3129: > *
        !          3130: > INITL  RTN                   INITIALISATION CODE
        !          3131: >        MOV  WA,INICD         SAVE INITIAL CODE KYWD VALUE
        !          3132: 6160d5011
        !          3133: <        STI  TIMSX            STORE TIME
        !          3134: 6196c5047
        !          3135: <        MOV  WA,CSWIN         -IN72
        !          3136: ---
        !          3137: >        MOV  WA,CSWIN         STORE FOR LATER USE
        !          3138: 6206d5056
        !          3139: <        STI  TIMSX            STORE TIME IN CORRECT PLACE
        !          3140: 6211a5062,5068
        !          3141: > .IF    .CSIG
        !          3142: >        MNZ  CSWCI            -CASEIG
        !          3143: > .FI
        !          3144: >        JSR  SYSTM            INITIALISE TIMER
        !          3145: >        STI  TIMSX            STORE TIME
        !          3146: >        LDI  INICD            LOAD INITIAL CODE KWD VALUE
        !          3147: >        STI  KVCOD            STORE
        !          3148: 6247a5105,5106
        !          3149: >        ADD  TTLEN,WA         ADD TERMINAL BUFFER LENGTH
        !          3150: >        ADD  WA,WA            ALLOW FOR EQUALLY BIG BLANK STRINGS
        !          3151: 6250c5109
        !          3152: <        CTB  WA,8             CONVERT TO BYTES, ALLOWING A MARGIN
        !          3153: ---
        !          3154: >        CTB  WA,8             CONVERT TO BAUS, ALLOWING A MARGIN
        !          3155: 6258c5117
        !          3156: <        BGT  XR,WA,INI06      SKIP IF STATIC HI EXCEEDS MXLEN
        !          3157: ---
        !          3158: >        BGT  XR,WA,INI05      SKIP IF STATIC HI EXCEEDS MXLEN
        !          3159: 6265c5124
        !          3160: < INI06  MOV  XR,DNAMB         DYNAMIC BASE ADRS
        !          3161: ---
        !          3162: > INI05  MOV  XR,DNAMB         DYNAMIC BASE ADRS
        !          3163: 6267c5126
        !          3164: 
        !          3165: 
        !          3166: 
        !          3167: 
        !          3168: 
        !          3169: 
        !          3170: 
        !          3171: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 49
        !          3172: 
        !          3173: 
        !          3174: <        BNZ  WA,INI07         SKIP IF NON-ZERO MXLEN
        !          3175: ---
        !          3176: >        BNZ  WA,INI06         SKIP IF NON-ZERO MXLEN
        !          3177: 6271d5129
        !          3178: <        EJC
        !          3179: 6276,6277c5134,5135
        !          3180: < INI07  MOV  XL,DNAME         STORE DYNAMIC END ADDRESS
        !          3181: <        BLT  DNAMB,XL,INI09   SKIP IF HIGH ENOUGH
        !          3182: ---
        !          3183: > INI06  MOV  XL,DNAME         STORE DYNAMIC END ADDRESS
        !          3184: >        BLT  DNAMB,XL,INI08   SKIP IF HIGH ENOUGH
        !          3185: 6279c5137
        !          3186: <        WTB  XR               GET AS BAUS (SGD05)
        !          3187: ---
        !          3188: >        WTB  XR               CONVERT TO BAUS
        !          3189: 6281c5139
        !          3190: <        BNZ  XR,INI07         TRY AGAIN
        !          3191: ---
        !          3192: >        BNZ  XR,INI06         TRY AGAIN
        !          3193: 6283c5141
        !          3194: <        MOV  ENDML,WA         MESSAGE LENGTH
        !          3195: ---
        !          3196: >        MOV  ENDML,WC         MESSAGE LENGTH
        !          3197: 6285c5143,5148
        !          3198: <        PPM                   SHOULD NOT FAIL
        !          3199: ---
        !          3200: >        PPM  INI07
        !          3201: >        PPM  INI07
        !          3202: > *
        !          3203: > *      EMERGENCY SHUTDOWN
        !          3204: > *
        !          3205: > INI07  MOV  =KVCOD,WA        CODE KEYWORD
        !          3206: 6286a5150
        !          3207: >        EJC
        !          3208: 6290c5154
        !          3209: < INI09  MOV  PRLEN,WC         NO. OF CHARS IN PRINT BFR
        !          3210: ---
        !          3211: > INI08  MOV  PRLEN,WA         NO. OF CHARS IN PRINT BFR
        !          3212: 6294,6297c5158,5169
        !          3213: <        MOV  WC,(XR)+         AND STRING LENGTH
        !          3214: <        CTW  WC,0             GET NUMBER OF WORDS IN BUFFER
        !          3215: <        MOV  WC,PRLNW         STORE FOR BUFFER CLEAR
        !          3216: <        LCT  WC,WC            WORDS TO CLEAR
        !          3217: ---
        !          3218: >        MOV  WA,(XR)+         AND STRING LENGTH
        !          3219: >        MOV  XR,PRCHS         KEEP ADRS OF BUFFER PROPER
        !          3220: >        MOV  XR,XL            COPY IT
        !          3221: >        CTB  WA,0             WORDS NEEDED EXPRESSED IN BAUS
        !          3222: >        MOV  WA,PRCMV         KEEP FOR CLEARING BUFFER
        !          3223: >        MOV  XR,PRBLK         CONSTRUCT ADRS OF BLANKING STRING
        !          3224: >        ADD  WA,PRBLK         ADD OFFSET TO BLANKING STRING
        !          3225: >        ADD  WA,WA            CLEAR BOTH BFR AND BLANKING STRING
        !          3226: >        MOV  NULLW,(XR)+      CLEAR FIRST WORD
        !          3227: >        BZE  WA,INI09         SKIP IF NO PRINT BUFFER
        !          3228: >        DCA  WA               ADJUST FOR FIRST WORD
        !          3229: >        MVW                   PERFORM BLANKING
        !          3230: 
        !          3231: 
        !          3232: 
        !          3233: 
        !          3234: 
        !          3235: 
        !          3236: 
        !          3237: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 50
        !          3238: 
        !          3239: 
        !          3240: 6299c5171
        !          3241: < *      LOOP TO CLEAR BUFFER
        !          3242: ---
        !          3243: > *      SET UP TERMINAL BUFFER
        !          3244: 6301,6302c5173,5187
        !          3245: < INI10  MOV  NULLW,(XR)+      STORE BLANK
        !          3246: <        BCT  WC,INI10         LOOP
        !          3247: ---
        !          3248: > INI09  MOV  TTLEN,WA         LENGTH OF TERMINAL BUFFER
        !          3249: >        MOV  XR,TTBUF         ADRS OF TERMINAL STRING BUFFER
        !          3250: >        MOV  =B$SCL,(XR)+     STRING TYPE CODE
        !          3251: >        MOV  WA,(XR)+         STRING LENGTH
        !          3252: >        MOV  XR,TTCHS         KEEP ADRS OF BUFFER PROPER
        !          3253: >        MOV  XR,XL            COPY IT
        !          3254: >        CTB  WA,0             WORDS NEEDED EXPRESSED IN BAUS
        !          3255: >        MOV  WA,TTCMV         KEEP FOR CLEARING BUFFER
        !          3256: >        MOV  XR,TTBLK         CONSTRUCT ADRS OF BLANKING STRING
        !          3257: >        ADD  WA,TTBLK         ADD OFFSET TO BLANKING STRING
        !          3258: >        ADD  WA,WA            CLEAR BOTH BFR AND BLANKING STRING
        !          3259: >        MOV  NULLW,(XR)+      CLEAR FIRST WORD
        !          3260: >        BZE  WA,INI10         SKIP IF NO PRINT BUFFER
        !          3261: >        DCA  WA               ADJUST FOR FIRST WORD
        !          3262: >        MVW                   PERFORM BLANKING
        !          3263: 6306c5191
        !          3264: <        MOV  =E$HNB,WA        GET NUMBER OF HASH HEADERS
        !          3265: ---
        !          3266: > INI10  MOV  =E$HNB,WA        GET NUMBER OF HASH HEADERS
        !          3267: 6321c5206
        !          3268: <        CTB  WA,SCSI$         NO OF BYTES NEEDED
        !          3269: ---
        !          3270: >        CTB  WA,SCSI$         NO OF BAUS NEEDED
        !          3271: 6333c5218
        !          3272: <        CTB  WB,SCSI$         NO. OF BYTES NEEDED
        !          3273: ---
        !          3274: >        CTB  WB,SCSI$         NO. OF BAUS NEEDED
        !          3275: 6347c5232
        !          3276: < *      INITIALIZE VARIABLE BLOCKS FOR INPUT AND OUTPUT
        !          3277: ---
        !          3278: > *      INITIALIZE VARIABLE BLOCKS FOR INPUT OUTPUT TERMINAL
        !          3279: 6355,6357c5240,5246
        !          3280: <        MOV  INITR,WC         TERMINAL FLAG
        !          3281: <        BZE  WC,INI13         SKIP IF NO TERMINAL
        !          3282: <        JSR  PRPAR            ASSOCIATE TERMINAL
        !          3283: ---
        !          3284: >        BZE  TTLEN,INI13      SKIP IF NO TERMINAL I/O
        !          3285: >        MOV  =V$TER,XL        POINT TO STRING /TERMINAL/
        !          3286: >        MOV  =TRTOU,WB        TRTYP FOR OUTPUT
        !          3287: >        JSR  INOUT            PERFORM ASSOCIATION
        !          3288: >        MOV  =V$TER,XL
        !          3289: >        MOV  =TRTIN,WB        TRTYP FOR INPUT
        !          3290: >        JSR  INOUT            PERFORM ASSOCIATION
        !          3291: 6360d5248
        !          3292: < *      CHECK FOR EXPIRY DATE
        !          3293: 6362,6363c5250
        !          3294: < INI13  JSR  SYSDC            CALL DATE CHECK
        !          3295: <        MOV  XS,FLPTR         IN CASE STACK OVERFLOWS IN COMPILER
        !          3296: 
        !          3297: 
        !          3298: 
        !          3299: 
        !          3300: 
        !          3301: 
        !          3302: 
        !          3303: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 51
        !          3304: 
        !          3305: 
        !          3306: ---
        !          3307: > *      PREPARE FOR COMPILATION
        !          3308: 6364a5252,5253
        !          3309: > INI13  MOV  XS,FLPTR         IN CASE STACK OVERFLOWS IN COMPILER
        !          3310: > *
        !          3311: 6369,6370c5258,5259
        !          3312: <        MOV  =NULLS,R$TTL     FORGET TITLE      (REG04)
        !          3313: <        MOV  =NULLS,R$STL     FORGET SUB-TITLE  (REG04)
        !          3314: ---
        !          3315: >        MOV  =NULLS,R$TTL     FORGET TITLE
        !          3316: >        MOV  =NULLS,R$STL     FORGET SUB-TITLE
        !          3317: 6375c5264
        !          3318: <        BNZ  CPSTS,INIX0      SKIP IF NO LISTING OF COMP STATS
        !          3319: ---
        !          3320: >        BNZ  CPSTS,INIX1      SKIP IF NO LISTING OF COMP STATS
        !          3321: 6404,6407d5292
        !          3322: < .IF    .CUEJ
        !          3323: <        BZE  HEADP,INIX0      NO EJECT IF NOTHING PRINTED (SDG11)
        !          3324: <        JSR  PRTPG            EJECT PRINTER
        !          3325: < .FI
        !          3326: 6412d5296
        !          3327: < *      SET DEFAULT INPUT RECORD LENGTH
        !          3328: 6414,6415c5298
        !          3329: < INIX0  BGT  CSWIN,=INILN,INIX1 SKIP IF NOT DEFAULT -IN72 USED
        !          3330: <        MOV  =INILS,CSWIN     ELSE USE DEFAULT RECORD LENGTH
        !          3331: ---
        !          3332: > *      CHECK FOR NOEXECUTE
        !          3333: 6417,6422c5300
        !          3334: < *      RESET TIMER
        !          3335: < *
        !          3336: < INIX1  JSR  SYSTM            GET TIME AGAIN
        !          3337: <        STI  TIMSX            STORE FOR END RUN PROCESSING
        !          3338: <        ADD  CSWEX,NOXEQ      ADD -NOEXECUTE FLAG
        !          3339: <        BNZ  NOXEQ,INIX2      JUMP IF EXECUTION SUPPRESSED
        !          3340: ---
        !          3341: > INIX1  BNZ  NOXEQ,INIX3      JUMP IF EXECUTION SUPPRESSED
        !          3342: 6424,6429c5302,5303
        !          3343: <        JSR  SYSBX            CALL BEFORE STARTING EXECUTION
        !          3344: < .IF    .CUEJ
        !          3345: < .ELSE
        !          3346: <        BZE  HEADP,INIY0      NO EJECT IF NOTHING PRINTED (SGD11)
        !          3347: <        JSR  PRTPG            EJECT PRINTER
        !          3348: < .FI
        !          3349: ---
        !          3350: >        BZE  HEADP,INIX2      SKIP IF NO PRTPG CALLS IN COMPILN
        !          3351: >        JSR  PRTPG            EJECT STANDARD PRINTER FILE
        !          3352: 6431c5305
        !          3353: < *      MERGE WHEN LISTING FILE SET FOR EXECUTION
        !          3354: ---
        !          3355: > *      INFORM OSINT OF STAGE
        !          3356: 6433c5307
        !          3357: < INIY0  MNZ  HEADP            MARK HEADERS OUT REGARDLESS
        !          3358: ---
        !          3359: > INIX2  JSR  SYSBX            CALL BEFORE STARTING EXECUTION
        !          3360: 6437a5312,5313
        !          3361: >        JSR  SYSTM            GET TIME
        !          3362: 
        !          3363: 
        !          3364: 
        !          3365: 
        !          3366: 
        !          3367: 
        !          3368: 
        !          3369: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 52
        !          3370: 
        !          3371: 
        !          3372: >        STI  TIMSX            STORE FOR END RUN PROCESSING
        !          3373: 6440,6442c5316,5317
        !          3374: <        MOV  CMPSN,PFNTE      COPY STMTS COMPILED COUNT IN CASE
        !          3375: <        JSR  SYSTM            TIME YET AGAIN
        !          3376: <        STI  PFSTM
        !          3377: ---
        !          3378: >        STI  PFSTM            STORE TIME FOR PROFILER
        !          3379: >        MOV  CMPSN,PFNTE      COPY STATEMENTS COMPILED COUNT
        !          3380: 6448c5323
        !          3381: < INIX2  JSR  PRTNL            PRINT A BLANK LINE
        !          3382: ---
        !          3383: > INIX3  JSR  PRTFH            PRINT A BLANK LINE
        !          3384: 6450,6453c5325,5327
        !          3385: <        JSR  PRTST            PRINT STRING
        !          3386: <        JSR  PRTNL            OUTPUT LINE
        !          3387: <        ZER  WA               SET ABEND VALUE TO ZERO
        !          3388: <        MOV  =NINI9,WB        SET SPECIAL CODE VALUE
        !          3389: ---
        !          3390: >        MOV  TTERL,TTLST      TO FORCE MSG TO TERMINAL
        !          3391: >        JSR  PRTSF            PRINT NOEXECUTE MESSAGE
        !          3392: >        MOV  =KVCOD,WA        ENDING CODE
        !          3393: 6500c5374
        !          3394: <        ERB  261,ADDITION CAUSED REAL OVERFLOW
        !          3395: ---
        !          3396: >        ERB  004,ADDITION CAUSED REAL OVERFLOW
        !          3397: 6509c5383
        !          3398: <        ERR  004,AFFIRMATION OPERAND IS NOT NUMERIC
        !          3399: ---
        !          3400: >        ERR  005,AFFIRMATION OPERAND IS NOT NUMERIC
        !          3401: 6518c5392
        !          3402: <        ERR  005,ALTERNATION RIGHT OPERAND IS NOT PATTERN
        !          3403: ---
        !          3404: >        ERR  006,ALTERNATION RIGHT OPERAND IS NOT PATTERN
        !          3405: 6527c5401
        !          3406: <        ERR  006,ALTERNATION LEFT OPERAND IS NOT PATTERN
        !          3407: ---
        !          3408: >        ERR  007,ALTERNATION LEFT OPERAND IS NOT PATTERN
        !          3409: 6551d5424
        !          3410: <        EJC
        !          3411: 6559d5431
        !          3412: <        EJC
        !          3413: 6583c5455
        !          3414: <        WTB  WA               CONVERT TO BYTES
        !          3415: ---
        !          3416: >        WTB  WA               CONVERT TO BAUS
        !          3417: 6622c5494
        !          3418: <        WTB  WA               CONVERT TO BYTES
        !          3419: ---
        !          3420: >        WTB  WA               CONVERT TO BAUS
        !          3421: 6636c5508
        !          3422: < *      ASSIGNMENT
        !          3423: ---
        !          3424: > *      ASSIGNMENT (O$RPL MERGES)
        !          3425: 6639,6642c5511
        !          3426: < *
        !          3427: < *      O$RPL (PATTERN REPLACEMENT) MERGES HERE
        !          3428: 
        !          3429: 
        !          3430: 
        !          3431: 
        !          3432: 
        !          3433: 
        !          3434: 
        !          3435: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 53
        !          3436: 
        !          3437: 
        !          3438: < *
        !          3439: < OASS0  MOV  (XS)+,WB         LOAD VALUE TO BE ASSIGNED
        !          3440: ---
        !          3441: >        MOV  (XS)+,WB         LOAD VALUE TO BE ASSIGNED
        !          3442: 6649d5517
        !          3443: <        EJC
        !          3444: 6654,6655c5522
        !          3445: <        ERB  007,COMPILATION ERROR ENCOUNTERED DURING EXECUTION
        !          3446: <        EJC
        !          3447: ---
        !          3448: >        ERB  008,COMPILATION ERROR ENCOUNTERED DURING EXECUTION
        !          3449: 6729c5596
        !          3450: <        ERR  008,CONCATENATION LEFT OPND IS NOT STRING OR PATTERN
        !          3451: ---
        !          3452: >        ERR  009,CONCATENATION LEFT OPND IS NOT STRING OR PATTERN
        !          3453: 6733c5600
        !          3454: <        ERR  009,CONCATENATION RIGHT OPD IS NOT STRING OR PATTERN
        !          3455: ---
        !          3456: >        ERR  010,CONCATENATION RIGHT OPD IS NOT STRING OR PATTERN
        !          3457: 6754c5621
        !          3458: <        ERR  010,COMPLEMENTATION OPERAND IS NOT NUMERIC
        !          3459: ---
        !          3460: >        ERR  011,COMPLEMENTATION OPERAND IS NOT NUMERIC
        !          3461: 6762c5629
        !          3462: <        ERB  011,COMPLEMENTATION CAUSED INTEGER OVERFLOW
        !          3463: ---
        !          3464: >        ERB  012,COMPLEMENTATION CAUSED INTEGER OVERFLOW
        !          3465: 6778,6779c5645,5646
        !          3466: <        ERR  012,DIVISION LEFT OPERAND IS NOT NUMERIC
        !          3467: <        ERR  013,DIVISION RIGHT OPERAND IS NOT NUMERIC
        !          3468: ---
        !          3469: >        ERR  013,DIVISION LEFT OPERAND IS NOT NUMERIC
        !          3470: >        ERR  014,DIVISION RIGHT OPERAND IS NOT NUMERIC
        !          3471: 6789c5656
        !          3472: <        ERB  014,DIVISION CAUSED INTEGER OVERFLOW
        !          3473: ---
        !          3474: >        ERB  015,DIVISION CAUSED INTEGER OVERFLOW
        !          3475: 6797c5664
        !          3476: <        ERB  262,DIVISION CAUSED REAL OVERFLOW
        !          3477: ---
        !          3478: >        ERB  016,DIVISION CAUSED REAL OVERFLOW
        !          3479: 6806c5673
        !          3480: <        ERR  015,EXPONENTIATION RIGHT OPERAND IS NOT NUMERIC
        !          3481: ---
        !          3482: >        ERR  017,EXPONENTIATION RIGHT OPERAND IS NOT NUMERIC
        !          3483: 6814c5681
        !          3484: <        ERR  016,EXPONENTIATION LEFT OPERAND IS NOT NUMERIC
        !          3485: ---
        !          3486: >        ERR  018,EXPONENTIATION LEFT OPERAND IS NOT NUMERIC
        !          3487: 6840c5707
        !          3488: < OEXP2  ERB  017,EXPONENTIATION CAUSED INTEGER OVERFLOW
        !          3489: ---
        !          3490: > OEXP2  ERB  019,EXPONENTIATION CAUSED INTEGER OVERFLOW
        !          3491: 6858c5725
        !          3492: < OEXP4  ERB  018,EXPONENTIATION RESULT IS UNDEFINED
        !          3493: ---
        !          3494: 
        !          3495: 
        !          3496: 
        !          3497: 
        !          3498: 
        !          3499: 
        !          3500: 
        !          3501: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 54
        !          3502: 
        !          3503: 
        !          3504: > OEXP4  ERB  020,EXPONENTIATION RESULT IS UNDEFINED
        !          3505: 6871c5738
        !          3506: < OEXP6  ERB  266,EXPONENTIATION CAUSED REAL OVERFLOW
        !          3507: ---
        !          3508: > OEXP6  ERB  021,EXPONENTIATION CAUSED REAL OVERFLOW
        !          3509: 6875c5742
        !          3510: < OEXP7  ERB  267,EXPONENTIATION RIGHT OPERAND IS REAL NOT INTEGER
        !          3511: ---
        !          3512: > OEXP7  ERB  022,EXPONENTIATION RIGHT OPERAND IS REAL NOT INTEGER
        !          3513: 6880c5747
        !          3514: < OEXP8  ERB  019,EXPONENTIATION RIGHT OPERAND IS NEGATIVE
        !          3515: ---
        !          3516: > OEXP8  ERB  023,EXPONENTIATION RIGHT OPERAND IS NEGATIVE
        !          3517: 6890,6891c5757
        !          3518: <        BRN  EVLX6            JUMP TO FAILURE LOC IN EVALX
        !          3519: <        EJC
        !          3520: ---
        !          3521: >        JMG  EVLXF            JUMP TO FAILURE LOC IN EVALX
        !          3522: 6896,6897c5762
        !          3523: <        ERB  020,GOTO EVALUATION FAILURE
        !          3524: <        EJC
        !          3525: ---
        !          3526: >        ERB  024,GOTO EVALUATION FAILURE
        !          3527: 6907d5771
        !          3528: <        EJC
        !          3529: 6914c5778,5779
        !          3530: <        BZE  2(XS),EVLX3      OK IF EXPR. WAS WANTED BY VALUE
        !          3531: ---
        !          3532: >        BNZ  2(XS),OFNE1      FAIL UNLESS EXPRN WANTED BY VALUE
        !          3533: >        JMG  EVLXV            JOIN EXPRESSION BY VALUE CODE
        !          3534: 6918,6919c5783
        !          3535: < OFNE1  ERB  021,FUNCTION CALLED BY NAME RETURNED A VALUE
        !          3536: <        EJC
        !          3537: ---
        !          3538: > OFNE1  ERB  025,FUNCTION CALLED BY NAME RETURNED A VALUE
        !          3539: 6933,6934c5797
        !          3540: <        ERB  022,UNDEFINED FUNCTION CALLED
        !          3541: <        EJC
        !          3542: ---
        !          3543: >        ERB  026,UNDEFINED FUNCTION CALLED
        !          3544: 6946,6947c5809
        !          3545: < OGOC1  ERB  023,GOTO OPERAND IS NOT A NATURAL VARIABLE
        !          3546: <        EJC
        !          3547: ---
        !          3548: > OGOC1  ERB  027,GOTO OPERAND IS NOT A NATURAL VARIABLE
        !          3549: 6954,6957c5816,5818
        !          3550: <        BEQ  WA,=B$CDS,BCDS0  JUMP IF CODE BLOCK TO CODE ROUTINE
        !          3551: <        BEQ  WA,=B$CDC,BCDC0  JUMP IF CODE BLOCK TO CODE ROUTINE
        !          3552: <        ERB  024,GOTO OPERAND IN DIRECT GOTO IS NOT CODE
        !          3553: <        EJC
        !          3554: ---
        !          3555: >        BEQ  WA,=B$CDC,OGOD1  JUMP IF CODE BLOCK
        !          3556: >        BEQ  WA,=B$CDS,OGOD2  JUMP IF CODE BLOCK
        !          3557: >        ERB  028,GOTO OPERAND IN DIRECT GOTO IS NOT CODE
        !          3558: 6958a5820,5831
        !          3559: > *      CASE OF COMPLEX FAILURE CODE
        !          3560: 
        !          3561: 
        !          3562: 
        !          3563: 
        !          3564: 
        !          3565: 
        !          3566: 
        !          3567: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 55
        !          3568: 
        !          3569: 
        !          3570: > *
        !          3571: > OGOD1  MOV  FLPTR,XS         POP GARBAGE OFF STACK
        !          3572: >        MOV  CDFAL(XR),(XS)   SET NEW FAILURE OFFSET
        !          3573: >        BRN  STMGO            JUMP TO EXECUTE CODE
        !          3574: > *
        !          3575: > *      CASE OF SIMPLE FAILURE CODE
        !          3576: > *
        !          3577: > OGOD2  MOV  FLPTR,XS         POP GARBAGE OFF STACK
        !          3578: >        MOV  *CDFAL,(XS)      SET NEW FAILURE OFFSET
        !          3579: >        BRN  STMGO            JUMP TO EXECUTE CODE
        !          3580: > *
        !          3581: 6985c5858
        !          3582: <        ERR  025,IMMEDIATE ASSIGNMENT LEFT OPERAND IS NOT PATTERN
        !          3583: ---
        !          3584: >        ERR  029,IMMEDIATE ASSIGNMENT LEFT OPERAND IS NOT PATTERN
        !          3585: 6992d5864
        !          3586: <        EJC
        !          3587: 6999d5870
        !          3588: <        EJC
        !          3589: 7006d5876
        !          3590: <        EJC
        !          3591: 7020d5889
        !          3592: <        EJC
        !          3593: 7030d5898
        !          3594: <        EJC
        !          3595: 7044d5911
        !          3596: <        EJC
        !          3597: 7060d5926
        !          3598: <        EJC
        !          3599: 7066,7067c5932,5933
        !          3600: <        ERR  026,MULTIPLICATION LEFT OPERAND IS NOT NUMERIC
        !          3601: <        ERR  027,MULTIPLICATION RIGHT OPERAND IS NOT NUMERIC
        !          3602: ---
        !          3603: >        ERR  030,MULTIPLICATION LEFT OPERAND IS NOT NUMERIC
        !          3604: >        ERR  031,MULTIPLICATION RIGHT OPERAND IS NOT NUMERIC
        !          3605: 7077c5943
        !          3606: <        ERB  028,MULTIPLICATION CAUSED INTEGER OVERFLOW
        !          3607: ---
        !          3608: >        ERB  032,MULTIPLICATION CAUSED INTEGER OVERFLOW
        !          3609: 7085c5951
        !          3610: <        ERB  263,MULTIPLICATION CAUSED REAL OVERFLOW
        !          3611: ---
        !          3612: >        ERB  033,MULTIPLICATION CAUSED REAL OVERFLOW
        !          3613: 7087d5952
        !          3614: <        EJC
        !          3615: 7123d5987
        !          3616: <        EJC
        !          3617: 7128,7129c5992
        !          3618: <        ERB  029,UNDEFINED OPERATOR REFERENCED
        !          3619: <        EJC
        !          3620: ---
        !          3621: >        ERB  034,UNDEFINED OPERATOR REFERENCED
        !          3622: 7145c6008
        !          3623: <        ERR  030,PATTERN ASSIGNMENT LEFT OPERAND IS NOT PATTERN
        !          3624: ---
        !          3625: >        ERR  035,PATTERN ASSIGNMENT LEFT OPERAND IS NOT PATTERN
        !          3626: 
        !          3627: 
        !          3628: 
        !          3629: 
        !          3630: 
        !          3631: 
        !          3632: 
        !          3633: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 56
        !          3634: 
        !          3635: 
        !          3636: 7159d6021
        !          3637: <        EJC
        !          3638: 7170d6031
        !          3639: <        EJC
        !          3640: 7177d6037
        !          3641: <        EJC
        !          3642: 7184d6043
        !          3643: <        EJC
        !          3644: 7189,7190c6048,6050
        !          3645: <        BRN  LEND0            JUMP TO END CIRCUIT
        !          3646: <        EJC
        !          3647: ---
        !          3648: >        MOV  =ENDMS,XR        ENDING MESSAGE
        !          3649: >        ZER  WA               NO ERROR CODE
        !          3650: >        BRN  STOPR            STOP THE RUN
        !          3651: 7198c6058
        !          3652: <        BRN  EVLX4            RETURN TO EVALX PROCEDURE
        !          3653: ---
        !          3654: >        JMG  EVLXN            RETURN TO EVALX PROCEDURE
        !          3655: 7210c6070
        !          3656: < *                            SUBJECT POINTER
        !          3657: ---
        !          3658: > *                            SUBJECT STRING POINTER
        !          3659: 7215c6075
        !          3660: <        ERR  031,PATTERN REPLACEMENT RIGHT OPERAND IS NOT STRING
        !          3661: ---
        !          3662: >        ERR  036,PATTERN REPLACEMENT RIGHT OPERAND IS NOT STRING
        !          3663: 7222c6082
        !          3664: <        BEQ  (XL),=B$BCT,ORPL4 BRANCH IF BUFFER ASSIGNMENT
        !          3665: ---
        !          3666: >        BEQ  (XL),=B$BCT,ORPL5 BRANCH IF BUFFER ASSIGNMENT
        !          3667: 7257c6117
        !          3668: <        BZE  WA,OASS0         JUMP TO ASSIGN IF PART 3 IS NULL
        !          3669: ---
        !          3670: >        BZE  WA,ORPL4         JUMP TO ASSIGN IF PART 3 IS NULL
        !          3671: 7260c6120
        !          3672: <        BRN  OASS0            JUMP TO PERFORM ASSIGNMENT
        !          3673: ---
        !          3674: >        BRN  ORPL4            JUMP TO PERFORM ASSIGNMENT
        !          3675: 7266c6126,6130
        !          3676: <        BRN  OASS0            JUMP TO ASSIGN NULL VALUE
        !          3677: ---
        !          3678: > *
        !          3679: > *      MERGE WITH ASSIGNMENT ROUTINE
        !          3680: > *
        !          3681: > ORPL4  MOV  =O$ASS,XL        CONTINUATION ROUTINE
        !          3682: >        BRI  XL               ENTER ROUTINE
        !          3683: 7272c6136
        !          3684: < ORPL4  MOV  XR,XL            COPY SCBLK REPLACEMENT PTR
        !          3685: ---
        !          3686: > ORPL5  MOV  XR,XL            COPY SCBLK REPLACEMENT PTR
        !          3687: 7292c6156
        !          3688: <        BRN  EVLX3            RETURN TO EVALX PROCEDURE
        !          3689: ---
        !          3690: >        BRN  EVLXV            RETURN TO EVALX PROCEDURE
        !          3691: 7337,7338c6201,6202
        !          3692: 
        !          3693: 
        !          3694: 
        !          3695: 
        !          3696: 
        !          3697: 
        !          3698: 
        !          3699: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 57
        !          3700: 
        !          3701: 
        !          3702: <        ERR  032,SUBTRACTION LEFT OPERAND IS NOT NUMERIC
        !          3703: <        ERR  033,SUBTRACTION RIGHT OPERAND IS NOT NUMERIC
        !          3704: ---
        !          3705: >        ERR  037,SUBTRACTION LEFT OPERAND IS NOT NUMERIC
        !          3706: >        ERR  038,SUBTRACTION RIGHT OPERAND IS NOT NUMERIC
        !          3707: 7348c6212
        !          3708: <        ERB  034,SUBTRACTION CAUSED INTEGER OVERFLOW
        !          3709: ---
        !          3710: >        ERB  039,SUBTRACTION CAUSED INTEGER OVERFLOW
        !          3711: 7356c6220
        !          3712: <        ERB  264,SUBTRACTION CAUSED REAL OVERFLOW
        !          3713: ---
        !          3714: >        ERB  040,SUBTRACTION CAUSED REAL OVERFLOW
        !          3715: 7358d6221
        !          3716: <        EJC
        !          3717: 7363,7364c6226
        !          3718: <        BRN  TRXQ1            JUMP INTO TRXEQ PROCEDURE
        !          3719: <        EJC
        !          3720: ---
        !          3721: >        JMG  TRXQR            JUMP INTO TRXEQ PROCEDURE
        !          3722: 7375c6237
        !          3723: <        ERB  035,UNEXPECTED FAILURE IN -NOFAIL MODE
        !          3724: ---
        !          3725: >        ERB  041,UNEXPECTED FAILURE IN -NOFAIL MODE
        !          3726: 7387d6248
        !          3727: <        EJC
        !          3728: 7391a6253,6255
        !          3729: >        MOV  KVERT,WA         LOAD ERROR CODE
        !          3730: >        ZER  XR               INDICATE NO ENDING MESSAGE
        !          3731: >        BNZ  WA,STOPR         STOP RUN
        !          3732: 7393d6256
        !          3733: < *      MERGE HERE IF EXECUTION TERMINATES IN ERROR
        !          3734: 7395,7404c6258
        !          3735: < LABO1  MOV  KVERT,WA         LOAD ERROR CODE
        !          3736: <        BZE  WA,LABO2         JUMP IF NO ERROR HAS OCCURED
        !          3737: < .IF    .CSAX
        !          3738: <        JSR  SYSAX            CALL AFTER EXECUTION PROC (REG04)
        !          3739: < .ELSE
        !          3740: < .FI
        !          3741: <        JSR  PRTPG            ELSE EJECT PRINTER
        !          3742: <        JSR  ERMSG            PRINT ERROR MESSAGE
        !          3743: <        ZER  XR               INDICATE NO MESSAGE TO PRINT
        !          3744: <        BRN  STOPR            JUMP TO ROUTINE TO STOP RUN
        !          3745: ---
        !          3746: > *      FAIL IF NO ERROR HAD OCCURED
        !          3747: 7406c6260
        !          3748: < *      HERE IF NO ERROR HAD OCCURED
        !          3749: ---
        !          3750: >        ERB  042,GOTO ABORT WITH NO PRECEDING ERROR
        !          3751: 7408,7410d6261
        !          3752: < LABO2  ERB  036,GOTO ABORT WITH NO PRECEDING ERROR
        !          3753: <        EJC
        !          3754: < *
        !          3755: 7417,7418c6268,6269
        !          3756: < LCNT1  MOV  R$CNT,XR         LOAD CONTINUATION CODE BLOCK PTR
        !          3757: <        BZE  XR,LCNT2         JUMP IF NO PREVIOUS ERROR
        !          3758: 
        !          3759: 
        !          3760: 
        !          3761: 
        !          3762: 
        !          3763: 
        !          3764: 
        !          3765: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 58
        !          3766: 
        !          3767: 
        !          3768: ---
        !          3769: > LCNXE  MOV  R$CNT,XR         LOAD CONTINUATION CODE BLOCK PTR
        !          3770: >        BZE  XR,LCNT1         JUMP IF NO PREVIOUS ERROR
        !          3771: 7428c6279
        !          3772: < LCNT2  ERB  037,GOTO CONTINUE WITH NO PRECEDING ERROR
        !          3773: ---
        !          3774: > LCNT1  ERB  043,GOTO CONTINUE WITH NO PRECEDING ERROR
        !          3775: 7434,7437c6285,6286
        !          3776: < *
        !          3777: < *      MERGE HERE FROM END CODE CIRCUIT
        !          3778: < *
        !          3779: < LEND0  MOV  =ENDMS,XR        POINT TO MESSAGE /NORMAL TERM../
        !          3780: ---
        !          3781: >        MOV  =ENDMS,XR        POINT TO MESSAGE /NORMAL TERM../
        !          3782: >        ZER  WA               NO ERROR CODE
        !          3783: 7439d6287
        !          3784: <        EJC
        !          3785: 7446d6293
        !          3786: <        EJC
        !          3787: 7453d6299
        !          3788: <        EJC
        !          3789: 7460d6305
        !          3790: <        EJC
        !          3791: 7465c6310
        !          3792: <        ERB  038,GOTO UNDEFINED LABEL
        !          3793: ---
        !          3794: >        ERB  044,GOTO UNDEFINED LABEL
        !          3795: 7523d6367
        !          3796: <        EJC
        !          3797: 7536d6379
        !          3798: <        EJC
        !          3799: 7547d6389
        !          3800: <        EJC
        !          3801: 7565d6406
        !          3802: <        EJC
        !          3803: 7582d6422
        !          3804: <        EJC
        !          3805: 7594c6434
        !          3806: < BCDC0  MOV  FLPTR,XS         POP GARBAGE OFF STACK
        !          3807: ---
        !          3808: >        MOV  FLPTR,XS         POP GARBAGE OFF STACK
        !          3809: 7597d6436
        !          3810: <        EJC
        !          3811: 7599,7600d6437
        !          3812: < *      CDBLK (CONTINUED)
        !          3813: < *
        !          3814: 7606c6443
        !          3815: < BCDS0  MOV  FLPTR,XS         POP GARBAGE OFF STACK
        !          3816: ---
        !          3817: >        MOV  FLPTR,XS         POP GARBAGE OFF STACK
        !          3818: 7609d6445
        !          3819: <        EJC
        !          3820: 7616d6451
        !          3821: <        EJC
        !          3822: 7617a6453,6458
        !          3823: > *      COBLK
        !          3824: 
        !          3825: 
        !          3826: 
        !          3827: 
        !          3828: 
        !          3829: 
        !          3830: 
        !          3831: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 59
        !          3832: 
        !          3833: 
        !          3834: > *
        !          3835: > *      THE ROUTINE FOR A COBLK IS NEVER EXECUTED
        !          3836: > *
        !          3837: > B$COP  ENT  BL$CO            ENTRY POINT (COBLK)
        !          3838: > *
        !          3839: 7646a6488,6489
        !          3840: > .IF    .CNLD
        !          3841: > .ELSE
        !          3842: 7657,7658d6499
        !          3843: < .IF    .CNLD
        !          3844: < .ELSE
        !          3845: 7671,7676c6512
        !          3846: < .IF    .CNRA
        !          3847: <        BSW  XR,3             SWITCH ON TYPE
        !          3848: < .ELSE
        !          3849: <        BSW  XR,4             SWITCH ON TYPE
        !          3850: < .FI
        !          3851: <        IFF  0,BEFC7          NO CONVERSION NEEDED
        !          3852: ---
        !          3853: >        BSW  XR,5,BEFC7       SWITCH ON EFTAR TYPE
        !          3854: 7682a6519,6522
        !          3855: > .IF    .CNBF
        !          3856: > .ELSE
        !          3857: >        IFF  4,BEFCA          BUFFER
        !          3858: > .FI
        !          3859: 7689c6529
        !          3860: <        ERR  039,EXTERNAL FUNCTION ARGUMENT IS NOT STRING
        !          3861: ---
        !          3862: >        ERR  045,EXTERNAL FUNCTION ARGUMENT IS NOT STRING
        !          3863: 7700c6540
        !          3864: <        ERR  040,EXTERNAL FUNCTION ARGUMENT IS NOT INTEGER
        !          3865: ---
        !          3866: >        ERR  046,EXTERNAL FUNCTION ARGUMENT IS NOT INTEGER
        !          3867: 7710,7711c6550
        !          3868: <        ERR  265,EXTERNAL FUNCTION ARGUMENT IS NOT REAL
        !          3869: < .FI
        !          3870: ---
        !          3871: >        ERR  047,EXTERNAL FUNCTION ARGUMENT IS NOT REAL
        !          3872: 7714a6554,6570
        !          3873: > .FI
        !          3874: > .IF    .CNBF
        !          3875: > .ELSE
        !          3876: >        BRN  BEFC5            MERGE
        !          3877: > *
        !          3878: > *      HERE TO CONVERT BUFFER
        !          3879: > *
        !          3880: > BEFCA  MOV  (XT),XR          LOAD ARGUMENT
        !          3881: >        MOV  WC,BEFOF         SAVE OFFSET
        !          3882: >        MOV  XL,-(XS)         SAVE EFBLK PTR
        !          3883: >        JSR  GTBUF            GET A BUFFER
        !          3884: >        ERR  259,EXTERNAL FUNCTION ARGUMENT IS NOT BUFFER
        !          3885: >        MOV  (XS)+,XL         RESTORE EFBLK PTR
        !          3886: > *
        !          3887: > *      INTEGER AND REAL CASE MERGES HERE
        !          3888: > *
        !          3889: > .FI
        !          3890: 
        !          3891: 
        !          3892: 
        !          3893: 
        !          3894: 
        !          3895: 
        !          3896: 
        !          3897: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 60
        !          3898: 
        !          3899: 
        !          3900: 7739c6595
        !          3901: <        MOV  EFRSL(XL),WB     GET RESULT TYPE ID
        !          3902: ---
        !          3903: >        MOV  EFRSL(XL),WB     GET RESULT TYPE
        !          3904: 7764a6621
        !          3905: >        BEQ  WB,=NUM03,BEF10  YES JUMP
        !          3906: 7765a6623,6627
        !          3907: > .IF    .CNBF
        !          3908: > .ELSE
        !          3909: >        MOV  =B$BCT,WA        BUFFER
        !          3910: >        BEQ  WB,=NUM04,BEF10  YES JUMP
        !          3911: > .FI
        !          3912: 7780d6641
        !          3913: <        EJC
        !          3914: 7811,7812c6672
        !          3915: < BFFC2  ERB  041,FIELD FUNCTION ARGUMENT IS WRONG DATATYPE
        !          3916: <        EJC
        !          3917: ---
        !          3918: > BFFC2  ERB  048,FIELD FUNCTION ARGUMENT IS WRONG DATATYPE
        !          3919: 7814,7815d6673
        !          3920: < *      FFBLK (CONTINUED)
        !          3921: < *
        !          3922: 7851d6708
        !          3923: <        EJC
        !          3924: 7858d6714
        !          3925: <        EJC
        !          3926: 7871d6726
        !          3927: <        EJC
        !          3928: 7924c6779
        !          3929: <        WTB  WA               CONVERT NO. OF ARGS TO BYTES OFFSET
        !          3930: ---
        !          3931: >        WTB  WA               CONVERT NO. OF ARGS TO BAUS OFFSET
        !          3932: 7989c6844
        !          3933: < *      HERE IF &PROFILE = 1
        !          3934: ---
        !          3935: > *      HERE IF PROFILE = 1
        !          3936: 7998c6853
        !          3937: < *       HERE IF &PROFILE = 2
        !          3938: ---
        !          3939: > *      HERE IF PROFILE = 2
        !          3940: 8007a6863
        !          3941: >        EJC
        !          3942: 8008a6865,6866
        !          3943: > *      PFBLK (CONTINUED)
        !          3944: > *
        !          3945: 8078c6936
        !          3946: <        WTB  WB               CONVERT TO BYTE OFFSET
        !          3947: ---
        !          3948: >        WTB  WB               CONVERT TO BAU OFFSET
        !          3949: 8095,8096c6953
        !          3950: <        JSR  PRTCH            PRINT TO TERMINATE OUTPUT
        !          3951: <        JSR  PRTNL            TERMINATE PRINT LINE
        !          3952: ---
        !          3953: >        JSR  PRTCF            PRINT TO TERMINATE OUTPUT
        !          3954: 8122d6978
        !          3955: <        EJC
        !          3956: 
        !          3957: 
        !          3958: 
        !          3959: 
        !          3960: 
        !          3961: 
        !          3962: 
        !          3963: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 61
        !          3964: 
        !          3965: 
        !          3966: 8133d6988
        !          3967: <        EJC
        !          3968: 8140d6994
        !          3969: <        EJC
        !          3970: 8147d7000
        !          3971: <        EJC
        !          3972: 8176d7028
        !          3973: <        EJC
        !          3974: 8178,8179d7029
        !          3975: < *      VRBLK (CONTINUED)
        !          3976: < *
        !          3977: 8185,8186c7035
        !          3978: <        ERB  042,ATTEMPT TO CHANGE VALUE OF PROTECTED VARIABLE
        !          3979: <        EJC
        !          3980: ---
        !          3981: >        ERB  049,ATTEMPT TO CHANGE VALUE OF PROTECTED VARIABLE
        !          3982: 8188,8189d7036
        !          3983: < *      VRBLK (CONTINUED)
        !          3984: < *
        !          3985: 8199d7045
        !          3986: <        EJC
        !          3987: 8201,8202d7046
        !          3988: < *      VRBLK (CONTINUED)
        !          3989: < *
        !          3990: 8223d7066
        !          3991: <        EJC
        !          3992: 8225,8226d7067
        !          3993: < *      VRBLK (CONTINUED)
        !          3994: < *
        !          3995: 8252,8253c7093
        !          3996: <        JSR  PRTCH            PRINT IT
        !          3997: <        JSR  PRTNL            TERMINATE LINE
        !          3998: ---
        !          3999: >        JSR  PRTCF            PRINT IT
        !          4000: 8286d7125
        !          4001: <        EJC
        !          4002: 8593a7433,7434
        !          4003: > .IF    .CNFN
        !          4004: > .ELSE
        !          4005: 8596,8597d7436
        !          4006: < *      COMPOUNT PATTERN STRUCTURES (CONTINUED)
        !          4007: < *
        !          4008: 8627c7466,7467
        !          4009: < *      STACK BACK PAST THE INNTER STACK BASE CREATED BY P$FNA
        !          4010: ---
        !          4011: > *      STACK BACK PAST THE INNER STACK BASE CREATED BY P$FNA
        !          4012: > .FI
        !          4013: 8734d7573
        !          4014: <        EJC
        !          4015: 8743d7581
        !          4016: <        EJC
        !          4017: 8767d7604
        !          4018: <        EJC
        !          4019: 8784d7620
        !          4020: <        EJC
        !          4021: 8809d7644
        !          4022: 
        !          4023: 
        !          4024: 
        !          4025: 
        !          4026: 
        !          4027: 
        !          4028: 
        !          4029: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 62
        !          4030: 
        !          4031: 
        !          4032: <        EJC
        !          4033: 8811a7647
        !          4034: > *      EXPRESSION ARGUMENT CASE MERGES
        !          4035: 8817,8820c7653
        !          4036: < *
        !          4037: < *      EXPRESSION ARGUMENT CASE MERGES HERE
        !          4038: < *
        !          4039: < PANY1  BEQ  WB,PMSSL,FAILP   FAIL IF NO CHARACTERS LEFT
        !          4040: ---
        !          4041: >        BEQ  WB,PMSSL,FAILP   FAIL IF NO CHARACTERS LEFT
        !          4042: 8825c7658
        !          4043: <        WTB  WA               CHANGE TO BYTE OFFSET
        !          4044: ---
        !          4045: >        WTB  WA               CHANGE TO BAU OFFSET
        !          4046: 8832d7664
        !          4047: <        EJC
        !          4048: 8838a7671
        !          4049: >        MOV  =P$ANY,WA        PCODE FOR NEW NODE
        !          4050: 8840c7673
        !          4051: <        ERR  043,ANY EVALUATED ARGUMENT IS NOT STRING
        !          4052: ---
        !          4053: >        ERR  050,ANY EVALUATED ARGUMENT IS NOT STRING
        !          4054: 8842c7675
        !          4055: <        PPM  PANY1            MERGE MULTI-CHAR CASE IF OK
        !          4056: ---
        !          4057: >        BRI  XL               MERGE MULTI-CHAR CASE IF OK
        !          4058: 8859d7691
        !          4059: <        EJC
        !          4060: 8922a7755
        !          4061: >        MOV  =P$BRK,WA        PCODE FOR NEW NODE
        !          4062: 8924c7757
        !          4063: <        ERR  044,BREAK EVALUATED ARGUMENT IS NOT STRING
        !          4064: ---
        !          4065: >        ERR  051,BREAK EVALUATED ARGUMENT IS NOT STRING
        !          4066: 8926,8927c7759
        !          4067: <        PPM  PBRK1            MERGE WITH MULTI-CHAR CASE IF OK
        !          4068: <        EJC
        !          4069: ---
        !          4070: >        BRI  XL               MERGE WITH MULTI-CHAR CASE IF OK
        !          4071: 8950a7783
        !          4072: > *      EXPRESSION ARGUMENT CASE MERGES
        !          4073: 8956,8959c7789
        !          4074: < *
        !          4075: < *      EXPRESSION ARGUMENT MERGES HERE
        !          4076: < *
        !          4077: < PBRK1  MOV  PMSSL,WC         LOAD SUBJECT STRING LENGTH
        !          4078: ---
        !          4079: >        MOV  PMSSL,WC         LOAD SUBJECT STRING LENGTH
        !          4080: 8971c7801
        !          4081: <        WTB  WA               CONVERT TO BYTE OFFSET
        !          4082: ---
        !          4083: >        WTB  WA               CONVERT TO BAU OFFSET
        !          4084: 8993d7822
        !          4085: <        EJC
        !          4086: 9004a7834
        !          4087: >        MOV  =P$BRK,WA        PCODE FOR NEW NODE
        !          4088: 
        !          4089: 
        !          4090: 
        !          4091: 
        !          4092: 
        !          4093: 
        !          4094: 
        !          4095: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 63
        !          4096: 
        !          4097: 
        !          4098: 9006c7836
        !          4099: <        ERR  045,BREAKX EVALUATED ARGUMENT IS NOT STRING
        !          4100: ---
        !          4101: >        ERR  052,BREAKX EVALUATED ARGUMENT IS NOT STRING
        !          4102: 9008,9009c7838
        !          4103: <        PPM  PBRK1            MERGE WITH BREAK IF ALL OK
        !          4104: <        EJC
        !          4105: ---
        !          4106: >        BRI  XL               MERGE WITH BREAK IF ALL OK
        !          4107: 9060c7889
        !          4108: <        ERR  046,EXPRESSION DOES NOT EVALUATE TO PATTERN
        !          4109: ---
        !          4110: >        ERR  053,EXPRESSION DOES NOT EVALUATE TO PATTERN
        !          4111: 9068c7897,7908
        !          4112: <        BRN  PSTR1            ELSE MERGE WITH STRING CIRCUIT
        !          4113: ---
        !          4114: >        MOV  XR,PSAVE         SAVE NODE PTR
        !          4115: >        MOV  R$PMS,XR         LOAD SUBJECT STRING PTR
        !          4116: >        PLC  XR,WB            POINT TO CURRENT CHAR
        !          4117: >        ADD  SCLEN(XL),WB     COMPUTE NEW CURSOR POSITION
        !          4118: >        BGT  WB,PMSSL,FAILP   FAIL IF PAST END OF STRING
        !          4119: >        MOV  WB,PSAVC         SAVE UPDATED CURSOR
        !          4120: >        MOV  SCLEN(XL),WA     NUMBER OF CHARS TO COMPARE
        !          4121: >        PLC  XL               POINT TO TEST STRING CHARS
        !          4122: >        CMC  FAILP,FAILP      COMPARE, FAIL IF UNEQUAL
        !          4123: >        MOV  PSAVE,XR         IF ALL MATCHED, RESTORE NODE PTR
        !          4124: >        MOV  PSAVC,WB         RESTORE UPDATED CURSOR
        !          4125: >        BRN  SUCCP            AND SUCCEED
        !          4126: 9093d7932
        !          4127: <        EJC
        !          4128: 9102d7940
        !          4129: < *
        !          4130: 9114c7952,7953
        !          4131: <        EJC
        !          4132: ---
        !          4133: > .IF    .CNFN
        !          4134: > .ELSE
        !          4135: 9128d7966
        !          4136: <        EJC
        !          4137: 9137d7974
        !          4138: <        EJC
        !          4139: 9155d7991
        !          4140: <        EJC
        !          4141: 9163a8000
        !          4142: > .FI
        !          4143: 9180d8016
        !          4144: <        EJC
        !          4145: 9232d8067
        !          4146: <        EJC
        !          4147: 9251,9254c8086
        !          4148: < *
        !          4149: < *      EXPRESSION ARGUMENT CASE MERGES HERE
        !          4150: < *
        !          4151: < PLEN1  ADD  PARM1(XR),WB     PUSH CURSOR INDICATED AMOUNT
        !          4152: ---
        !          4153: >        ADD  PARM1(XR),WB     PUSH CURSOR INDICATED AMOUNT
        !          4154: 
        !          4155: 
        !          4156: 
        !          4157: 
        !          4158: 
        !          4159: 
        !          4160: 
        !          4161: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 64
        !          4162: 
        !          4163: 
        !          4164: 9257d8088
        !          4165: <        EJC
        !          4166: 9265,9266c8096,8097
        !          4167: <        ERR  047,LEN EVALUATED ARGUMENT IS NOT INTEGER
        !          4168: <        ERR  048,LEN EVALUATED ARGUMENT IS NEGATIVE OR TOO LARGE
        !          4169: ---
        !          4170: >        ERR  054,LEN EVALUATED ARGUMENT IS NOT INTEGER
        !          4171: >        ERR  055,LEN EVALUATED ARGUMENT IS NEGATIVE OR TOO LARGE
        !          4172: 9268c8099,8101
        !          4173: <        PPM  PLEN1            MERGE WITH NORMAL CIRCUIT IF OK
        !          4174: ---
        !          4175: >        ADD  PARM1(XR),WB     PUSH CURSOR INDICATED AMOUNT
        !          4176: >        BLE  WB,PMSSL,SUCCP   SUCCEED IF NOT OFF END
        !          4177: >        BRN  FAILP            ELSE FAIL
        !          4178: 9275a8109
        !          4179: >        MOV  =P$NAY,WA        PCODE FOR NEW NODE
        !          4180: 9277c8111
        !          4181: <        ERR  049,NOTANY EVALUATED ARGUMENT IS NOT STRING
        !          4182: ---
        !          4183: >        ERR  056,NOTANY EVALUATED ARGUMENT IS NOT STRING
        !          4184: 9279c8113
        !          4185: <        PPM  PNAY1            MERGE WITH MULTI-CHAR CASE IF OK
        !          4186: ---
        !          4187: >        BRI  XL               MERGE WITH MULTI-CHAR CASE IF OK
        !          4188: 9296a8131
        !          4189: > *      EXPRESSION ARGUMENT CASE MERGES
        !          4190: 9302,9305c8137
        !          4191: < *
        !          4192: < *      EXPRESSION ARGUMENT CASE MERGES HERE
        !          4193: < *
        !          4194: < PNAY1  BEQ  WB,PMSSL,FAILP   FAIL IF NO CHARACTERS LEFT
        !          4195: ---
        !          4196: >        BEQ  WB,PMSSL,FAILP   FAIL IF NO CHARACTERS LEFT
        !          4197: 9309c8141
        !          4198: <        WTB  WA               CONVERT TO BYTE OFFSET
        !          4199: ---
        !          4200: >        WTB  WA               CONVERT TO BAU OFFSET
        !          4201: 9405a8238
        !          4202: >        ZER  R$PMB            CLEAR POSSIBLE BCBLK PTR FOR GBCOL
        !          4203: 9418a8252
        !          4204: >        MOV  XL,-(XS)         STACK SUBJECT STRING POINTER
        !          4205: 9422c8256
        !          4206: < .FI
        !          4207: ---
        !          4208: >        ZER  R$PMB            CLEAR BCBLK PTR FOR GBCOL
        !          4209: 9426a8261
        !          4210: > .FI
        !          4211: 9435,9438c8270
        !          4212: < *
        !          4213: < *      EXPRESSION ARGUMENT CASE MERGES HERE
        !          4214: < *
        !          4215: < PPOS1  BEQ  WB,PARM1(XR),SUCCP SUCCEED IF AT RIGHT LOCATION
        !          4216: ---
        !          4217: >        BEQ  WB,PARM1(XR),SUCCP SUCCEED IF AT RIGHT LOCATION
        !          4218: 9440d8271
        !          4219: <        EJC
        !          4220: 
        !          4221: 
        !          4222: 
        !          4223: 
        !          4224: 
        !          4225: 
        !          4226: 
        !          4227: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 65
        !          4228: 
        !          4229: 
        !          4230: 9448,9449c8279,8280
        !          4231: <        ERR  050,POS EVALUATED ARGUMENT IS NOT INTEGER
        !          4232: <        ERR  051,POS EVALUATED ARGUMENT IS NEGATIVE OR TOO LARGE
        !          4233: ---
        !          4234: >        ERR  057,POS EVALUATED ARGUMENT IS NOT INTEGER
        !          4235: >        ERR  058,POS EVALUATED ARGUMENT IS NEGATIVE OR TOO LARGE
        !          4236: 9451c8282,8283
        !          4237: <        PPM  PPOS1            MERGE WITH NORMAL CASE IF OK
        !          4238: ---
        !          4239: >        BEQ  WB,PARM1(XR),SUCCP SUCCEED IF AT RIGHT LOCATION
        !          4240: >        BRN  FAILP            ELSE FAIL
        !          4241: 9465d8296
        !          4242: <        EJC
        !          4243: 9476d8306
        !          4244: <        EJC
        !          4245: 9493d8322
        !          4246: <        EJC
        !          4247: 9513d8341
        !          4248: <        EJC
        !          4249: 9521,9522c8349,8350
        !          4250: <        ERR  052,RPOS EVALUATED ARGUMENT IS NOT INTEGER
        !          4251: <        ERR  053,RPOS EVALUATED ARGUMENT IS NEGATIVE OR TOO LARGE
        !          4252: ---
        !          4253: >        ERR  059,RPOS EVALUATED ARGUMENT IS NOT INTEGER
        !          4254: >        ERR  060,RPOS EVALUATED ARGUMENT IS NEGATIVE OR TOO LARGE
        !          4255: 9524,9525c8352,8353
        !          4256: <        PPM  PRPS1            MERGE WITH NORMAL CASE IF OK
        !          4257: <        EJC
        !          4258: ---
        !          4259: >        MOV  =P$RPS,XL        CONTINUATION ROUTINE
        !          4260: >        BRI  XL               ENTER ROUTINE
        !          4261: 9527a8356
        !          4262: > *      EXPRESSION ARGUMENT CASE MERGES
        !          4263: 9532,9535c8361
        !          4264: < *
        !          4265: < *      EXPRESSION ARGUMENT CASE MERGES HERE
        !          4266: < *
        !          4267: < PRPS1  MOV  PMSSL,WC         GET LENGTH OF STRING
        !          4268: ---
        !          4269: >        MOV  PMSSL,WC         GET LENGTH OF STRING
        !          4270: 9541a8368
        !          4271: > *      EXPRESSION ARGUMENT CASE MERGES
        !          4272: 9546,9549c8373
        !          4273: < *
        !          4274: < *      EXPRESSION ARGUMENT CASE MERGES HERE
        !          4275: < *
        !          4276: < PRTB1  MOV  WB,WC            SAVE INITIAL CURSOR
        !          4277: ---
        !          4278: >        MOV  WB,WC            SAVE INITIAL CURSOR
        !          4279: 9555d8378
        !          4280: <        EJC
        !          4281: 9563,9564c8386,8387
        !          4282: <        ERR  054,RTAB EVALUATED ARGUMENT IS NOT INTEGER
        !          4283: <        ERR  055,RTAB EVALUATED ARGUMENT IS NEGATIVE OR TOO LARGE
        !          4284: ---
        !          4285: >        ERR  061,RTAB EVALUATED ARGUMENT IS NOT INTEGER
        !          4286: 
        !          4287: 
        !          4288: 
        !          4289: 
        !          4290: 
        !          4291: 
        !          4292: 
        !          4293: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 66
        !          4294: 
        !          4295: 
        !          4296: >        ERR  062,RTAB EVALUATED ARGUMENT IS NEGATIVE OR TOO LARGE
        !          4297: 9566c8389,8390
        !          4298: <        PPM  PRTB1            MERGE WITH NORMAL CASE IF SUCCESS
        !          4299: ---
        !          4300: >        MOV  =P$RTB,XL        CONTINUATION ROUTINE
        !          4301: >        BRI  XL               ENTER ROUTINE
        !          4302: 9573a8398
        !          4303: >        MOV  =P$SPN,WA        PCODE FOR NEW NODE
        !          4304: 9575c8400
        !          4305: <        ERR  056,SPAN EVALUATED ARGUMENT IS NOT STRING
        !          4306: ---
        !          4307: >        ERR  063,SPAN EVALUATED ARGUMENT IS NOT STRING
        !          4308: 9577,9578c8402
        !          4309: <        PPM  PSPN1            MERGE WITH MULTI-CHAR CASE IF OK
        !          4310: <        EJC
        !          4311: ---
        !          4312: >        BRI  XL               MERGE WITH MULTI-CHAR CASE IF OK
        !          4313: 9580a8405
        !          4314: > *      EXPRESSION ARGUMENT CASE MERGES
        !          4315: 9586,9589c8411
        !          4316: < *
        !          4317: < *      EXPRESSION ARGUMENT CASE MERGES HERE
        !          4318: < *
        !          4319: < PSPN1  MOV  PMSSL,WC         COPY SUBJECT STRING LENGTH
        !          4320: ---
        !          4321: >        MOV  PMSSL,WC         COPY SUBJECT STRING LENGTH
        !          4322: 9601c8423
        !          4323: <        WTB  WA               CONVERT TO BYTE OFFSET
        !          4324: ---
        !          4325: >        WTB  WA               CONVERT TO BAU OFFSET
        !          4326: 9641d8462
        !          4327: <        EJC
        !          4328: 9643c8464
        !          4329: < *      MULTI-CHARACTER STRING
        !          4330: ---
        !          4331: > *      MULTI-CHARACTER STRING (MERGE FROM P$EXA)
        !          4332: 9652,9655c8473
        !          4333: < *
        !          4334: < *      MERGE HERE AFTER EVALUATING EXPRESSION WITH STRING VALUE
        !          4335: < *
        !          4336: < PSTR1  MOV  XR,PSAVE         SAVE NODE POINTER
        !          4337: ---
        !          4338: >        MOV  XR,PSAVE         SAVE NODE POINTER
        !          4339: 9682a8501
        !          4340: > *      EXPRESSION CASE MERGES
        !          4341: 9687,9690c8506
        !          4342: < *
        !          4343: < *      EXPRESSION ARGUMENT CASE MERGES HERE
        !          4344: < *
        !          4345: < PTAB1  BGT  WB,PARM1(XR),FAILP FAIL IF TOO FAR ALREADY
        !          4346: ---
        !          4347: >        BGT  WB,PARM1(XR),FAILP FAIL IF TOO FAR ALREADY
        !          4348: 9694d8509
        !          4349: <        EJC
        !          4350: 9702,9703c8517,8518
        !          4351: <        ERR  057,TAB EVALUATED ARGUMENT IS NOT INTEGER
        !          4352: 
        !          4353: 
        !          4354: 
        !          4355: 
        !          4356: 
        !          4357: 
        !          4358: 
        !          4359: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 67
        !          4360: 
        !          4361: 
        !          4362: <        ERR  058,TAB EVALUATED ARGUMENT IS NEGATIVE OR TOO LARGE
        !          4363: ---
        !          4364: >        ERR  064,TAB EVALUATED ARGUMENT IS NOT INTEGER
        !          4365: >        ERR  065,TAB EVALUATED ARGUMENT IS NEGATIVE OR TOO LARGE
        !          4366: 9705,9706c8520,8521
        !          4367: <        PPM  PTAB1            MERGE WITH NORMAL CASE IF OK
        !          4368: <        EJC
        !          4369: ---
        !          4370: >        MOV  =P$TAB,XL        CONTINUATION ROUTINE
        !          4371: >        BRI  XL               ENTER ROUTINE
        !          4372: 9721d8535
        !          4373: <        EJC
        !          4374: 9764c8578
        !          4375: <        ERR  059,ANY ARGUMENT IS NOT STRING OR EXPRESSION
        !          4376: ---
        !          4377: >        ERR  066,ANY ARGUMENT IS NOT STRING OR EXPRESSION
        !          4378: 9766d8579
        !          4379: <        EJC
        !          4380: 9768a8582
        !          4381: >        EJC
        !          4382: 9776c8590
        !          4383: <        ERB  275,APPEND FIRST ARGUMENT IS NOT BUFFER
        !          4384: ---
        !          4385: >        ERB  067,APPEND FIRST ARGUMENT IS NOT BUFFER
        !          4386: 9780,9781c8594,8597
        !          4387: < SAPN1  JSR  APNDB            DO THE APPEND
        !          4388: <        ERR  276,APPEND SECOND ARGUMENT IS NOT STRING
        !          4389: ---
        !          4390: > SAPN1  MOV  BCLEN(XR),WA     OFFSET TO BUFFER END
        !          4391: >        ZER  WB               NO CHARS TO BE REPLACED
        !          4392: >        JSR  INSBF            DO THE APPEND
        !          4393: >        ERR  068,APPEND SECOND ARGUMENT IS NOT STRING
        !          4394: 9784d8599
        !          4395: <        EJC
        !          4396: 9785a8601
        !          4397: >        EJC
        !          4398: 9796c8612
        !          4399: <        WTB  WB               CONVERT TO BYTES
        !          4400: ---
        !          4401: >        WTB  WB               CONVERT TO BAUS
        !          4402: 9819c8635
        !          4403: < SAPP3  ERB  060,APPLY FIRST ARG IS NOT NATURAL VARIABLE NAME
        !          4404: ---
        !          4405: > SAPP3  ERB  069,APPLY FIRST ARG IS NOT NATURAL VARIABLE NAME
        !          4406: 9841c8657
        !          4407: <        ERR  061,ARBNO ARGUMENT IS NOT PATTERN
        !          4408: ---
        !          4409: >        ERR  070,ARBNO ARGUMENT IS NOT PATTERN
        !          4410: 9857c8673
        !          4411: <        ERR  062,ARG SECOND ARGUMENT IS NOT INTEGER
        !          4412: ---
        !          4413: >        ERR  253,ARG SECOND ARGUMENT IS NOT INTEGER
        !          4414: 9874c8690
        !          4415: < SARG1  ERB  063,ARG FIRST ARGUMENT IS NOT PROGRAM FUNCTION NAME
        !          4416: ---
        !          4417: > SARG1  ERB  252,ARG FIRST ARGUMENT IS NOT PROGRAM FUNCTION NAME
        !          4418: 
        !          4419: 
        !          4420: 
        !          4421: 
        !          4422: 
        !          4423: 
        !          4424: 
        !          4425: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 68
        !          4426: 
        !          4427: 
        !          4428: 9892c8708
        !          4429: <        WTB  WA               CONVERT LENGTH TO BYTES
        !          4430: ---
        !          4431: >        WTB  WA               CONVERT LENGTH TO BAUS
        !          4432: 9914c8730
        !          4433: <        ERR  064,ARRAY FIRST ARGUMENT IS NOT INTEGER OR STRING
        !          4434: ---
        !          4435: >        ERR  071,ARRAY FIRST ARGUMENT IS NOT INTEGER OR STRING
        !          4436: 9938c8754
        !          4437: <        ERR  065,ARRAY FIRST ARGUMENT LOWER BOUND IS NOT INTEGER
        !          4438: ---
        !          4439: >        ERR  072,ARRAY FIRST ARGUMENT LOWER BOUND IS NOT INTEGER
        !          4440: 9950,9951c8766,8772
        !          4441: < SAR04  JSR  GTINT            CONVERT HIGH BOUND TO INTEGER
        !          4442: <        ERR  066,ARRAY FIRST ARGUMENT UPPER BOUND IS NOT INTEGER
        !          4443: ---
        !          4444: > SAR04  BNZ  WA,SAR4A         SKIP IF DELIMITER 1 OR 2
        !          4445: >        BNZ  XSCNB,SAR10      JUMP IF ILLEGALLY PLACED BLANK
        !          4446: > *
        !          4447: > *      CHECK FOR INTEGER BOUND
        !          4448: > *
        !          4449: > SAR4A  JSR  GTINT            CONVERT HIGH BOUND TO INTEGER
        !          4450: >        ERR  073,ARRAY FIRST ARGUMENT UPPER BOUND IS NOT INTEGER
        !          4451: 9989c8810
        !          4452: <        WTB  WB               ELSE CONVERT TO LENGTH IN BYTES
        !          4453: ---
        !          4454: >        WTB  WB               ELSE CONVERT TO LENGTH IN BAUS
        !          4455: 10007c8828
        !          4456: <        MOV  WA,WC            SAVE LENGTH IN BYTES
        !          4457: ---
        !          4458: >        MOV  WA,WC            SAVE LENGTH IN BAUS
        !          4459: 10024c8845
        !          4460: <        MOV  WC,ARLEN(XR)     STORE LENGTH IN BYTES
        !          4461: ---
        !          4462: >        MOV  WC,ARLEN(XR)     STORE LENGTH IN BAUS
        !          4463: 10044c8865
        !          4464: < SAR10  ERB  067,ARRAY DIMENSION IS ZERO,NEGATIVE OR OUT OF RANGE
        !          4465: ---
        !          4466: > SAR10  ERB  074,BAD DIMENSION, ZERO, NEGATIVE OR OUT OF RANGE
        !          4467: 10048c8869
        !          4468: < SAR11  ERB  068,ARRAY SIZE EXCEEDS MAXIMUM PERMITTED
        !          4469: ---
        !          4470: > SAR11  ERB  075,ARRAY SIZE EXCEEDS MAXIMUM PERMITTED
        !          4471: 10050,10051d8870
        !          4472: < .IF    .CNBF
        !          4473: < .ELSE
        !          4474: 10053,10078d8871
        !          4475: < *      BUFFER
        !          4476: < *
        !          4477: < S$BUF  ENT                   ENTRY POINT
        !          4478: <        MOV  (XS)+,XL         GET INITIAL VALUE
        !          4479: <        MOV  (XS)+,XR         GET REQUESTED ALLOCATION
        !          4480: <        JSR  GTINT            CONVERT TO INTEGER
        !          4481: <        ERR  269,BUFFER FIRST ARGUMENT IS NOT INTEGER
        !          4482: <        LDI  ICVAL(XR)        GET VALUE
        !          4483: <        ILE  SBF01            BRANCH IF NEGATIVE OR ZERO
        !          4484: 
        !          4485: 
        !          4486: 
        !          4487: 
        !          4488: 
        !          4489: 
        !          4490: 
        !          4491: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 69
        !          4492: 
        !          4493: 
        !          4494: <        MFI  WA,SBF02         MOVE WITH OVERFLOW CHECK
        !          4495: <        JSR  ALOBF            ALLOCATE THE BUFFER
        !          4496: <        JSR  APNDB            COPY IT IN
        !          4497: <        ERR  270,BUFFER SECOND ARGUMENT IS NOT STRING OR BUFFER
        !          4498: <        ERR  271,BUFFER INITIAL VALUE TOO BIG FOR ALLOCATION
        !          4499: <        BRN  EXSID            EXIT SETTING IDVAL
        !          4500: < *
        !          4501: < *      HERE FOR INVALID ALLOCATION SIZE
        !          4502: < *
        !          4503: < SBF01  ERB  272,BUFFER FIRST ARGUMENT IS NOT POSITIVE
        !          4504: < *
        !          4505: < *      HERE FOR ALLOCATION SIZE INTEGER OVERFLOW
        !          4506: < *
        !          4507: < SBF02  ERB  273,BUFFER SIZE IS TOO BIG
        !          4508: <        EJC
        !          4509: < .FI
        !          4510: < *
        !          4511: 10086c8879
        !          4512: <        ERR  069,BREAK ARGUMENT IS NOT STRING OR EXPRESSION
        !          4513: ---
        !          4514: >        ERR  076,BREAK ARGUMENT IS NOT STRING OR EXPRESSION
        !          4515: 10100c8893
        !          4516: <        ERR  070,BREAKX ARGUMENT IS NOT STRING OR EXPRESSION
        !          4517: ---
        !          4518: >        ERR  077,BREAKX ARGUMENT IS NOT STRING OR EXPRESSION
        !          4519: 10113a8907,8908
        !          4520: > .IF    .CNBF
        !          4521: > .ELSE
        !          4522: 10116c8911
        !          4523: < *      CHAR
        !          4524: ---
        !          4525: > *      BUFFER
        !          4526: 10118,10130c8913,8923
        !          4527: < S$CHR  ENT                   ENTRY POINT
        !          4528: <        JSR  GTSMI            CONVERT ARG TO INTEGER
        !          4529: <        ERR  281,CHAR ARGUMENT NOT INTEGER
        !          4530: <        PPM  SCHR1            TOO BIG ERROR EXIT
        !          4531: <        BGE  WC,=CFP$A,SCHR1  SEE IF OUT OF RANGE OF HOST SET
        !          4532: <        MOV  =NUM01,WA        IF NOT SET SCBLK ALLOCATION
        !          4533: <        MOV  WC,WB            SAVE CHAR CODE
        !          4534: <        JSR  ALOCS            ALLOCATE 1 BAU SCBLK
        !          4535: <        MOV  XR,XL            COPY SCBLK POINTER
        !          4536: <        PSC  XL               GET SET TO STUFF CHAR
        !          4537: <        SCH  WB,(XL)+         STUFF IT
        !          4538: <        ZER  XL               CLEAR SLOP IN XL
        !          4539: <        BRN  EXIXR            EXIT WITH SCBLK POINTER
        !          4540: ---
        !          4541: > S$BUF  ENT                   ENTRY POINT
        !          4542: >        MOV  (XS)+,XL         GET INITIAL STRING
        !          4543: >        JSR  GTSMI            CONVERT MEMORY REQUEST TO INTEGER
        !          4544: >        ERR  078,BUFFER FIRST ARGUMENT IS NOT INTEGER
        !          4545: >        PPM  SBF01            FAIL IF OUT OF RANGE
        !          4546: >        MOV  WC,WA            MOVE LENGTH TO CORRECT REGISTER
        !          4547: >        JSR  ALOBF            ALLOCATE THE BUFFER
        !          4548: >        JSR  INSBF            COPY INITIAL ARG IN
        !          4549: >        ERR  079,BUFFER SECOND ARGUMENT IS NOT STRING OR BUFFER
        !          4550: 
        !          4551: 
        !          4552: 
        !          4553: 
        !          4554: 
        !          4555: 
        !          4556: 
        !          4557: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 70
        !          4558: 
        !          4559: 
        !          4560: >        ERR  080,BUFFER INITIAL VALUE TOO BIG FOR ALLOCATION
        !          4561: >        BRN  EXSID            EXIT SETTING IDVAL
        !          4562: 10132c8925
        !          4563: < *      HERE IF CHAR ARGUMENT IS OUT OF RANGE
        !          4564: ---
        !          4565: > *      HERE FOR INVALID ALLOCATION SIZE
        !          4566: 10134c8927,8928
        !          4567: < SCHR1  ERB  282,CHAR ARGUMENT NOT IN RANGE
        !          4568: ---
        !          4569: > SBF01  ERB  081,BUFFER FIRST ARGUMENT IS OUT OF RANGE
        !          4570: > .FI
        !          4571: 10141c8935
        !          4572: <        ERR  071,CLEAR ARGUMENT IS NOT STRING
        !          4573: ---
        !          4574: >        ERR  082,CLEAR ARGUMENT IS NOT STRING
        !          4575: 10145c8939
        !          4576: < *      THE LIST ARE FALGGED BY SETTING VRGET OF VRBLK TO ZERO.
        !          4577: ---
        !          4578: > *      THE LIST ARE FLAGGED BY SETTING VRGET OF VRBLK TO ZERO.
        !          4579: 10151c8945
        !          4580: <        ERR  072,CLEAR ARGUMENT HAS NULL VARIABLE NAME
        !          4581: ---
        !          4582: >        PPM  SCLR7            ERRONEOUS NAME
        !          4583: 10153a8948
        !          4584: >        BNZ  XSCNB,SCLR7      BADLY PLACED BLANK
        !          4585: 10181c8976
        !          4586: < *      PRROTECTED VARIABLES (ARB, ETC) ARE EXEMPT
        !          4587: ---
        !          4588: > *      PROTECTED VARIABLES (ARB ETC) ARE EXEMPT
        !          4589: 10183,10184c8978,8979
        !          4590: < SCLR5  BEQ  VRSTO(XR),=B$VRE,SCLR4 CHECK FOR PROTECTED VARIABLE (REG05)
        !          4591: <        MOV  XR,XL            COPY VRBLK POINTER (REG05)
        !          4592: ---
        !          4593: > SCLR5  BEQ  VRSTO(XR),=B$VRE,SCLR4 CHECK FOR PROTECTED VARIABLE
        !          4594: >        MOV  XR,XL            COPY VRBLK POINTER
        !          4595: 10196a8992,8995
        !          4596: > *
        !          4597: > *      ERROR POINT
        !          4598: > *
        !          4599: > SCLR7  ERB  083,NULL VARIABLE NAME OR ILLEGAL BLANK IN CLEAR ARG
        !          4600: 10213c9012
        !          4601: <        ERR  073,COLLECT ARGUMENT IS NOT INTEGER
        !          4602: ---
        !          4603: >        ERR  084,COLLECT ARGUMENT IS NOT INTEGER
        !          4604: 10220c9019
        !          4605: <        BTW  WA               CONVERT BYTES TO WORDS
        !          4606: ---
        !          4607: >        BTW  WA               CONVERT BAUS TO WORDS
        !          4608: 10231c9030
        !          4609: < S$CNV  ENT                   ENTRY POINT
        !          4610: ---
        !          4611: > S$CVT  ENT                   ENTRY POINT
        !          4612: 10233,10235c9032,9036
        !          4613: <        ERR  074,CONVERT SECOND ARGUMENT IS NOT STRING
        !          4614: < .IF    .CULC
        !          4615: <        JSR  FLSTG            FOLD LOWER CASE TO UPPER CASE
        !          4616: 
        !          4617: 
        !          4618: 
        !          4619: 
        !          4620: 
        !          4621: 
        !          4622: 
        !          4623: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 71
        !          4624: 
        !          4625: 
        !          4626: ---
        !          4627: >        ERR  085,CONVERT SECOND ARGUMENT IS NOT STRING
        !          4628: > .IF    .CASL
        !          4629: >        MOV  XR,XL            COPY STRING PTR TO XL
        !          4630: >        ZER  WB               ZERO OFFSET
        !          4631: >        JSR  SBSTG            CONVERT CASE OF ARG IF NECESSARY
        !          4632: 10253c9054
        !          4633: <        MOV  WA,WC            SAVE LENGTH OF ARGUMENT STRING
        !          4634: ---
        !          4635: >        MOV  SCLEN(XR),WC     SAVE LENGTH OF ARGUMENT STRING
        !          4636: 10287c9088
        !          4637: <        IFF  CNVRT,SCV08      REAL
        !          4638: ---
        !          4639: >        IFF  9,SCV08          REAL
        !          4640: 10371c9172
        !          4641: <        WTB  WA               CONVERT LENGTH TO BYTES
        !          4642: ---
        !          4643: >        WTB  WA               CONVERT LENGTH TO BAUS
        !          4644: 10441,10442c9242
        !          4645: < SCV28  MOV  XR,-(XS)         STACK STRING FOR PROCEDURE
        !          4646: <        JSR  GTSTG            CONVERT TO STRING
        !          4647: ---
        !          4648: > SCV28  JSR  GTBUF            CONVERT TO BUFFER
        !          4649: 10444,10448d9243
        !          4650: <        MOV  XR,XL            SAVE STRING POINTER
        !          4651: <        JSR  ALOBF            ALLOCATE BUFFER OF SAME SIZE
        !          4652: <        JSR  APNDB            COPY IN THE STRING
        !          4653: <        PPM                   ALREADY STRING - CANT FAIL TO CNV
        !          4654: <        PPM                   MUST BE ENOUGH ROOM
        !          4655: 10450d9244
        !          4656: <        EJC
        !          4657: 10451a9246
        !          4658: >        EJC
        !          4659: 10456c9251
        !          4660: <        JSR  COPYB            COPY THE BLOCK
        !          4661: ---
        !          4662: >        JSR  CBLCK            COPY THE BLOCK
        !          4663: 10458a9254,9270
        !          4664: > *
        !          4665: > *      CTI
        !          4666: > *
        !          4667: > S$CTI  ENT
        !          4668: >        LDI  INTV0            ZERO IN CASE NULL STRING
        !          4669: >        JSR  GTSTG            GET ARG AS A STRING
        !          4670: >        ERR  086,CTI ARGUMENT IS NOT A STRING
        !          4671: >        BZE  WA,SCT01         SKIP IF NULL
        !          4672: >        PLC  XR               PREPARE TO READ THE CHARACTER
        !          4673: >        LCH  WB,(XR)          GET THE CHARACTER
        !          4674: >        MTI  WB               CONVERT TO INTEGER
        !          4675: >        ZER  XR               CLEAR GARBAGE
        !          4676: > *
        !          4677: > *      MAKE ICBLK AND RETURN
        !          4678: > *
        !          4679: > SCT01  JSR  ICBLD            BUILD ICBLK
        !          4680: >        BRN  EXIXR            RETURN INTEGER RESULT
        !          4681: 10465,10466c9277,9278
        !          4682: 
        !          4683: 
        !          4684: 
        !          4685: 
        !          4686: 
        !          4687: 
        !          4688: 
        !          4689: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 72
        !          4690: 
        !          4691: 
        !          4692: <        ERR  075,DATA ARGUMENT IS NOT STRING
        !          4693: <        ERR  076,DATA ARGUMENT IS NULL
        !          4694: ---
        !          4695: >        ERR  087,DATA ARGUMENT IS NOT STRING
        !          4696: >        ERR  088,DATA ARGUMENT IS NULL
        !          4697: 10474c9286
        !          4698: <        ERB  077,DATA ARGUMENT IS MISSING A LEFT PAREN
        !          4699: ---
        !          4700: >        ERB  089,DATA ARGUMENT IS MISSING A LEFT PAREN
        !          4701: 10478,10482d9289
        !          4702: < .IF    .CULC
        !          4703: < SDAT1  MOV  SCLEN(XR),WA     GET LENGTH
        !          4704: <        JSR  FLSTG            FOLD LOWER CASE TO UPPER CASE
        !          4705: <        MOV  XR,XL            SAVE NAME PTR
        !          4706: < .ELSE
        !          4707: 10484d9290
        !          4708: < .FI
        !          4709: 10493c9299
        !          4710: <        ERR  078,DATA ARGUMENT HAS NULL DATATYPE NAME
        !          4711: ---
        !          4712: >        ERR  090,DATA ARGUMENT HAS NULL DATATYPE NAME
        !          4713: 10504c9310
        !          4714: <        ERB  079,DATA ARGUMENT IS MISSING A RIGHT PAREN
        !          4715: ---
        !          4716: >        ERB  091,BAD BLANK OR MISSING RIGHT PAREN IN DATA ARG
        !          4717: 10509c9315
        !          4718: <        ERR  080,DATA ARGUMENT HAS NULL FIELD NAME
        !          4719: ---
        !          4720: >        ERR  092,DATA ARGUMENT HAS NULL FIELD NAME
        !          4721: 10521c9327
        !          4722: <        WTB  WA               CONVERT LENGTH TO BYTES
        !          4723: ---
        !          4724: >        WTB  WA               CONVERT LENGTH TO BAUS
        !          4725: 10608c9414
        !          4726: < S$DEF  ENT                   ENTRY POINT
        !          4727: ---
        !          4728: > S$DFN  ENT                   ENTRY POINT
        !          4729: 10619,10620c9425,9426
        !          4730: <        ERR  081,DEFINE FIRST ARGUMENT IS NOT STRING
        !          4731: <        ERR  082,DEFINE FIRST ARGUMENT IS NULL
        !          4732: ---
        !          4733: >        ERR  093,DEFINE FIRST ARGUMENT IS NOT STRING
        !          4734: >        ERR  094,DEFINE FIRST ARGUMENT IS NULL
        !          4735: 10625c9431
        !          4736: <        ERB  083,DEFINE FIRST ARGUMENT IS MISSING A LEFT PAREN
        !          4737: ---
        !          4738: >        ERB  095,DEFINE FIRST ARGUMENT IS MISSING A LEFT PAREN
        !          4739: 10630c9436
        !          4740: <        ERR  084,DEFINE FIRST ARGUMENT HAS NULL FUNCTION NAME
        !          4741: ---
        !          4742: >        ERR  096,DEFINE FIRST ARGUMENT HAS NULL FUNCTION NAME
        !          4743: 10642,10643c9448,9454
        !          4744: <        BNZ  WA,SDF04         SKIP IF DELIMITER FOUND
        !          4745: <        ERB  085,NULL ARG NAME OR MISSING ) IN DEFINE FIRST ARG.
        !          4746: ---
        !          4747: >        BZE  WA,SDF14         FAIL IF RUNOUT
        !          4748: 
        !          4749: 
        !          4750: 
        !          4751: 
        !          4752: 
        !          4753: 
        !          4754: 
        !          4755: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 73
        !          4756: 
        !          4757: 
        !          4758: >        JSR  GTNVR            GET VRBLK POINTER
        !          4759: >        PPM  SDF04            IGNORE NULL NAME
        !          4760: >        MOV  XR,-(XS)         STACK ARGUMENT VRBLK POINTER
        !          4761: >        ICV  WB               INCREMENT COUNTER
        !          4762: >        BEQ  WA,=NUM02,SDF03  LOOP BACK IF STOPPED BY A COMMA
        !          4763: >        BRN  SDF05            JUMP FOR RIGHT PAREN
        !          4764: 10648c9459
        !          4765: < *      HERE AFTER SCANNING AN ARGUMENT NAME
        !          4766: ---
        !          4767: > *      NULL ARG FOUND. CONTINUE IF STOPPED BY COMMA
        !          4768: 10650,10651c9461
        !          4769: < SDF04  BNE  XR,=NULLS,SDF05  SKIP IF NON-NULL
        !          4770: <        BZE  WB,SDF06         IGNORE NULL IF CASE OF NO ARGUMENTS
        !          4771: ---
        !          4772: > SDF04  BEQ  WA,=NUM02,SDF03  LOOP IF COMMA
        !          4773: 10653,10660d9462
        !          4774: < *      HERE AFTER DEALING WITH THE CASE OF NO ARGUMENTS
        !          4775: < *
        !          4776: < SDF05  JSR  GTNVR            GET VRBLK POINTER
        !          4777: <        PPM  SDF03            LOOP BACK TO IGNORE NULL NAME
        !          4778: <        MOV  XR,-(XS)         STACK ARGUMENT VRBLK POINTER
        !          4779: <        ICV  WB               INCREMENT COUNTER
        !          4780: <        BEQ  WA,=NUM02,SDF03  LOOP BACK IF STOPPED BY A COMMA
        !          4781: < *
        !          4782: 10663c9465
        !          4783: < SDF06  MOV  WB,DEFNA         SAVE NUMBER OF ARGUMENTS
        !          4784: ---
        !          4785: > SDF05  MOV  WB,DEFNA         SAVE NUMBER OF ARGUMENTS
        !          4786: 10668c9470
        !          4787: < SDF07  MOV  =CH$CM,WC        SET DELIMITER ONE = COMMA
        !          4788: ---
        !          4789: > SDF06  MOV  =CH$CM,WC        SET DELIMITER ONE = COMMA
        !          4790: 10671,10672c9473,9474
        !          4791: <        BNE  XR,=NULLS,SDF08  SKIP IF NON-NULL
        !          4792: <        BZE  WB,SDF09         IGNORE NULL IF CASE OF NO LOCALS
        !          4793: ---
        !          4794: >        BNZ  WA,SDF07         SKIP IF COMMA FOUND
        !          4795: >        BNZ  XSCNB,SDF14      FAIL IF BAD BLANK, OK IF LAST LOC
        !          4796: 10676,10677c9478,9479
        !          4797: < SDF08  JSR  GTNVR            GET VRBLK POINTER
        !          4798: <        PPM  SDF07            LOOP BACK TO IGNORE NULL NAME
        !          4799: ---
        !          4800: > SDF07  JSR  GTNVR            GET VRBLK POINTER
        !          4801: >        PPM  SDF08            IGNORE NULL NAME
        !          4802: 10680c9482,9487
        !          4803: <        BNZ  WA,SDF07         LOOP BACK IF STOPPED BY A COMMA
        !          4804: ---
        !          4805: >        BNZ  WA,SDF06         LOOP BACK IF STOPPED BY A COMMA
        !          4806: >        BRN  SDF09            JUMP FOR END OF STRING
        !          4807: > *
        !          4808: > *      NULL LOCAL
        !          4809: > *
        !          4810: > SDF08  BNZ  WA,SDF06         LOOP IF COMMA AFTER NULL LOCAL
        !          4811: 10691c9498
        !          4812: <        WTB  WA               CONVERT LENGTH TO BYTES
        !          4813: ---
        !          4814: 
        !          4815: 
        !          4816: 
        !          4817: 
        !          4818: 
        !          4819: 
        !          4820: 
        !          4821: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 74
        !          4822: 
        !          4823: 
        !          4824: >        WTB  WA               CONVERT LENGTH TO BAUS
        !          4825: 10734c9541,9545
        !          4826: < SDF13  ERB  086,DEFINE FUNCTION ENTRY POINT IS NOT DEFINED LABEL
        !          4827: ---
        !          4828: > SDF13  ERB  097,DEFINE FUNCTION ENTRY POINT IS NOT DEFINED LABEL
        !          4829: > *
        !          4830: > *      ERRONEOUS ARG OR LOCAL
        !          4831: > *
        !          4832: > SDF14  ERB  098,BAD BLANK OR MISSING RIGHT PAREN IN DEFINE ARG
        !          4833: 10742,10744c9553,9573
        !          4834: <        ERR  087,DETACH ARGUMENT IS NOT APPROPRIATE NAME
        !          4835: <        JSR  DTACH            DETACH I/O ASSOCIATION FROM NAME
        !          4836: <        BRN  EXNUL            RETURN NULL RESULT
        !          4837: ---
        !          4838: >        ERR  099,DETACH ARGUMENT IS NOT APPROPRIATE NAME
        !          4839: >        MOV  WA,-(XS)         KEEP OFFSET
        !          4840: >        ZER  SDETF            CLEAR FAIL FLAG
        !          4841: >        MOV  =TRTIN,WB        TRACE TYPE
        !          4842: >        ZER  XR               REMOVE TRBLK
        !          4843: >        JSR  TRCHN            REMOVE ANY INPUT ASSOCIATION
        !          4844: >        PPM  SDET1            SKIP IF NO INPUT TRBLK
        !          4845: >        MNZ  SDETF            NOTE TRBLK REMOVED
        !          4846: > *
        !          4847: > *      REPEAT FOR OUTPUT TRBLK
        !          4848: > *
        !          4849: > SDET1  MOV  (XS)+,WA         RECOVER OFFSET
        !          4850: >        MOV  =TRTOU,WB        TRTYP
        !          4851: >        JSR  TRCHN            REMOVE ANY OUTPUT ASSOCIATION
        !          4852: >        PPM  SDET2            SKIP IF NO TRBLK
        !          4853: >        BRN  EXNUL            SUCCEED
        !          4854: > *
        !          4855: > *      CHECK AT LEAST ONE TRBLK REMOVED
        !          4856: > *
        !          4857: > SDET2  BNZ  SDETF,EXNUL      SUCCEED IF SO
        !          4858: >        BRN  EXFAL            ELSE FAIL
        !          4859: 10761,10762c9590,9591
        !          4860: <        ERR  088,DUMP ARGUMENT IS NOT INTEGER
        !          4861: <        ERR  089,DUMP ARGUMENT IS NEGATIVE OR TOO LARGE
        !          4862: ---
        !          4863: >        ERR  100,DUMP ARGUMENT IS NOT INTEGER
        !          4864: >        ERR  101,DUMP ARGUMENT IS NEGATIVE OR TOO LARGE
        !          4865: 10771c9600
        !          4866: <        ERR  090,DUPL SECOND ARGUMENT IS NOT INTEGER
        !          4867: ---
        !          4868: >        ERR  102,DUPL SECOND ARGUMENT IS NOT INTEGER
        !          4869: 10816c9645
        !          4870: <        ERR  091,DUPL FIRST ARGUMENT IS NOT STRING OR PATTERN
        !          4871: ---
        !          4872: >        ERR  103,DUPL FIRST ARGUMENT IS NOT STRING OR PATTERN
        !          4873: 10848,10850c9677,9685
        !          4874: <        JSR  IOFCB            CALL FCBLK ROUTINE
        !          4875: <        ERR  092,EJECT ARGUMENT IS NOT A SUITABLE NAME
        !          4876: <        PPM  SEJC1            NULL ARGUMENT
        !          4877: ---
        !          4878: >        MOV  (XS)+,WB         GET ARGUMENT
        !          4879: >        MOV  WB,-(XS)         RESTACK IT
        !          4880: 
        !          4881: 
        !          4882: 
        !          4883: 
        !          4884: 
        !          4885: 
        !          4886: 
        !          4887: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 75
        !          4888: 
        !          4889: 
        !          4890: >        JSR  GTSTG            CONVERT TO STRING
        !          4891: >        PPM  SEJC2            FAIL IF CANT
        !          4892: >        BZE  WA,SEJC1         SKIP IF NULL STRING
        !          4893: >        MOV  WB,-(XS)         RESTACK ORIGINAL ARG
        !          4894: >        JSR  IOFTG            CALL FILETAG ROUTINE
        !          4895: >        PPM  SEJC2            FAIL
        !          4896: >        BZE  WA,EXFAL         FAIL IF NOT ASSOCIATED
        !          4897: 10852,10854c9687,9688
        !          4898: <        ERR  093,EJECT FILE DOES NOT EXIST
        !          4899: <        ERR  094,EJECT FILE DOES NOT PERMIT PAGE EJECT
        !          4900: <        ERR  095,EJECT CAUSED NON-RECOVERABLE OUTPUT ERROR
        !          4901: ---
        !          4902: >        PPM  EXFAL            FAIL RETURN
        !          4903: >        PPM  EROSI            ERROR RETURN
        !          4904: 10859a9694,9695
        !          4905: >        PPM  EXFAL            FAIL RETURN
        !          4906: >        PPM  EROSI            ERROR RETURN
        !          4907: 10860a9697,9700
        !          4908: > *
        !          4909: > *      ERROR POINT
        !          4910: > *
        !          4911: > SEJC2  ERB  104,EJECT ARGUMENT IS NOT A SUITABLE FILETAG
        !          4912: 10866,10873c9706,9709
        !          4913: <        JSR  IOFCB            CALL FCBLK ROUTINE
        !          4914: <        ERR  096,ENDFILE ARGUMENT IS NOT A SUITABLE NAME
        !          4915: <        ERR  097,ENDFILE ARGUMENT IS NULL
        !          4916: <        JSR  SYSEN            CALL ENDFILE ROUTINE
        !          4917: <        ERR  098,ENDFILE FILE DOES NOT EXIST
        !          4918: <        ERR  099,ENDFILE FILE DOES NOT PERMIT ENDFILE
        !          4919: <        ERR  100,ENDFILE CAUSED NON-RECOVERABLE OUTPUT ERROR
        !          4920: <        MOV  XL,WB            REMEMBER VRBLK PTR FROM IOFCB CALL
        !          4921: ---
        !          4922: >        JSR  GTSTG            CONVERT SECOND ARG TO STRING
        !          4923: >        ERR  105,ENDFILE SECOND ARGUMENT IS NOT A STRING
        !          4924: >        BNZ  WA,SENF1         SKIP IF NON NULL SECOND ARG
        !          4925: >        ZER  XR               0 IF NULL
        !          4926: 10875c9711
        !          4927: < *      LOOP TO FIND TRTRF BLOCK
        !          4928: ---
        !          4929: > *      NOW PROCESS FILETAG
        !          4930: 10877,10909c9713,9728
        !          4931: < SENF1  MOV  XL,XR            COPY POINTER
        !          4932: <        MOV  TRVAL(XR),XR     CHAIN ALONG
        !          4933: <        BNE  (XR),=B$TRT,EXNUL SKIP OUT IF CHAIN END
        !          4934: <        BNE  TRTYP(XR),=TRTFC,SENF1 LOOP IF NOT FOUND
        !          4935: <        MOV  TRVAL(XR),TRVAL(XL) REMOVE TRTRF
        !          4936: <        MOV  TRTRF(XR),ENFCH  POINT TO HEAD OF IOCHN
        !          4937: <        MOV  TRFPT(XR),WC     POINT TO FCBLK
        !          4938: <        MOV  WB,XR            FILEARG1 VRBLK FROM IOFCB
        !          4939: <        JSR  SETVR            RESET IT
        !          4940: <        MOV  =R$FCB,XL        PTR TO HEAD OF FCBLK CHAIN
        !          4941: <        SUB  *NUM02,XL        ADJUST READY TO ENTER LOOP
        !          4942: < *
        !          4943: < *      FIND FCBLK
        !          4944: < *
        !          4945: < SENF2  MOV  XL,XR            COPY PTR
        !          4946: 
        !          4947: 
        !          4948: 
        !          4949: 
        !          4950: 
        !          4951: 
        !          4952: 
        !          4953: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 76
        !          4954: 
        !          4955: 
        !          4956: <        MOV  2(XL),XL         GET NEXT LINK
        !          4957: <        BZE  XL,SENF4         STOP IF CHAIN END
        !          4958: <        BEQ  3(XL),WC,SENF3   JUMP IF FCBLK FOUND
        !          4959: <        BRN  SENF2            LOOP
        !          4960: < *
        !          4961: < *      REMOVE FCBLK
        !          4962: < *
        !          4963: < SENF3  MOV  2(XL),2(XR)      DELETE FCBLK FROM CHAIN
        !          4964: < *
        !          4965: < *      LOOP WHICH DETACHES ALL VBLS ON IOCHN CHAIN
        !          4966: < *
        !          4967: < SENF4  MOV  ENFCH,XL         GET CHAIN HEAD
        !          4968: <        BZE  XL,EXNUL         FINISHED IF CHAIN END
        !          4969: <        MOV  TRTRF(XL),ENFCH  CHAIN ALONG
        !          4970: <        MOV  IONMO(XL),WA     NAME OFFSET
        !          4971: <        MOV  IONMB(XL),XL     NAME BASE
        !          4972: <        JSR  DTACH            DETACH NAME
        !          4973: <        BRN  SENF4            LOOP TILL DONE
        !          4974: ---
        !          4975: > SENF1  MOV  XR,SENFR         KEEP SECOND ARG
        !          4976: >        JSR  IOFTG            CALL FILETAG PROC (WB = VRBLK PTR)
        !          4977: >        ERR  106,ENDFILE FIRST ARGUMENT IS NOT A SUITABLE FILETAG
        !          4978: >        BZE  WA,EXFAL         FAIL IF NO IOTAG
        !          4979: >        MOV  SENFR,XR         RECOVER SECOND ARG
        !          4980: >        JSR  SYSEN            CALL ENDFILE ROUTINE
        !          4981: >        PPM  EXFAL            FAIL RETURN
        !          4982: >        PPM  EROSI            ERROR RETURN
        !          4983: >        BNZ  WA,EXNUL         RETURN NULL IF NO FILE CLOSURE
        !          4984: >        MOV  WB,XL            POINT TO FILETAG VRBLK
        !          4985: >        MOV  *VRVAL,WA        OFFSET TO VALUE FIELD
        !          4986: >        ZER  XR               FOR TRBLK REMOVAL
        !          4987: >        MOV  =TRTIO,WB        TRTYP
        !          4988: >        JSR  TRCHN            REMOVE TRBLK
        !          4989: >        PPM  EXFAL            (CANT FAIL HERE)
        !          4990: >        BRN  EXNUL            RETURN NULL
        !          4991: 10916,10917c9735,9736
        !          4992: <        ERR  101,EQ FIRST ARGUMENT IS NOT NUMERIC
        !          4993: <        ERR  102,EQ SECOND ARGUMENT IS NOT NUMERIC
        !          4994: ---
        !          4995: >        ERR  107,EQ FIRST ARGUMENT IS NOT NUMERIC
        !          4996: >        ERR  108,EQ SECOND ARGUMENT IS NOT NUMERIC
        !          4997: 10928c9747
        !          4998: <        ERR  103,EVAL ARGUMENT IS NOT EXPRESSION
        !          4999: ---
        !          5000: >        ERR  109,EVAL ARGUMENT IS NOT EXPRESSION
        !          5001: 10963c9782
        !          5002: <        ERR  104,EXIT ARGUMENT IS NOT SUITABLE INTEGER OR STRING
        !          5003: ---
        !          5004: >        ERR  110,EXIT ARGUMENT IS NOT SUITABLE INTEGER OR STRING
        !          5005: 10969d9787
        !          5006: <        MOV  R$FCB,WB         GET FCBLK CHAIN HEADER
        !          5007: 10973a9792
        !          5008: >        MOV  =KVCOD,WA        VALUE OF CODE KEYWORD
        !          5009: 10975,10976c9794,9795
        !          5010: <        ERR  105,EXIT ACTION NOT AVAILABLE IN THIS IMPLEMENTATION
        !          5011: <        ERR  106,EXIT ACTION CAUSED IRRECOVERABLE ERROR
        !          5012: 
        !          5013: 
        !          5014: 
        !          5015: 
        !          5016: 
        !          5017: 
        !          5018: 
        !          5019: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 77
        !          5020: 
        !          5021: 
        !          5022: ---
        !          5023: >        PPM  EXFAL            FAIL RETURN
        !          5024: >        PPM  EROSI            ERROR RETURN
        !          5025: 10978c9797
        !          5026: <        ZER  GBCNT            RESUMING EXECUTION SO RESET
        !          5027: ---
        !          5028: >        ZER  GBCNT            RESUMING EXECUTION SO.
        !          5029: 10984c9803
        !          5030: < SEXT2  MFI  WC               GET VALUE IN WORK REG
        !          5031: ---
        !          5032: > SEXT2  MFI  WC               GET VALUE IN WORK REGISTER
        !          5033: 10989c9808
        !          5034: <        MOV  (XS)+,WC         RESTORE VALUE
        !          5035: ---
        !          5036: >        MOV  (XS)+,WA         RESTORE VALUE
        !          5037: 10991c9810
        !          5038: < *      DEAL WITH HEADER OPTION (FIDDLED BY PRPAR)
        !          5039: ---
        !          5040: > *      DEAL WITH HEADER OPTIONS (FIDDLED BY PRPAR)
        !          5041: 10999c9818
        !          5042: < SEXT4  JSR  SYSTM            GET EXECUTION TIME START (SGD11)
        !          5043: ---
        !          5044: > SEXT4  JSR  SYSTM            GET RECOMMENCEMENT TIME
        !          5045: 11004a9824,9825
        !          5046: > .IF    .CNFN
        !          5047: > .ELSE
        !          5048: 11006a9828,9848
        !          5049: > *      FENCE
        !          5050: > *
        !          5051: > S$FNC  ENT                   ENTRY POINT
        !          5052: >        MOV  =P$FNC,WB        SET PCODE FOR P$FNC
        !          5053: >        ZER  XR               P0BLK
        !          5054: >        JSR  PBILD            BUILD P$FNC NODE
        !          5055: >        MOV  XR,XL            SAVE POINTER TO IT
        !          5056: >        MOV  (XS)+,XR         GET ARGUMENT
        !          5057: >        JSR  GTPAT            CONVERT TO PATTERN
        !          5058: >        ERR  180,FENCE ARGUMENT IS NOT PATTERN
        !          5059: >        JSR  PCONC            CONCATENATE TO P$FNC NODE
        !          5060: >        MOV  XR,XL            SAVE PTR TO CONCATENATED PATTERN
        !          5061: >        MOV  =P$FNA,WB        SET FOR P$FNA PCODE
        !          5062: >        ZER  XR               P0BLK
        !          5063: >        JSR  PBILD            CONSTRUCT P$FNA NODE
        !          5064: >        MOV  XL,PTHEN(XR)     SET PATTERN AS PTHEN
        !          5065: >        MOV  XR,-(XS)         SET AS RESULT
        !          5066: >        BRN  EXITS            DO NEXT CODE WORD
        !          5067: >        EJC
        !          5068: > .FI
        !          5069: > *
        !          5070: 11011c9853
        !          5071: <        ERR  107,FIELD SECOND ARGUMENT IS NOT INTEGER
        !          5072: ---
        !          5073: >        ERR  255,FIELD SECOND ARGUMENT IS NOT INTEGER
        !          5074: 11031c9873
        !          5075: < SFLD1  ERB  108,FIELD FIRST ARGUMENT IS NOT DATATYPE NAME
        !          5076: ---
        !          5077: > SFLD1  ERB  254,FIELD FIRST ARGUMENT IS NOT DATATYPE NAME
        !          5078: 
        !          5079: 
        !          5080: 
        !          5081: 
        !          5082: 
        !          5083: 
        !          5084: 
        !          5085: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 78
        !          5086: 
        !          5087: 
        !          5088: 11034,11053d9875
        !          5089: < *      FENCE
        !          5090: < *
        !          5091: < S$FNC  ENT                   ENTRY POINT
        !          5092: <        MOV  =P$FNC,WB        SET PCODE FOR P$FNC
        !          5093: <        ZER  XR               P0BLK
        !          5094: <        JSR  PBILD            BUILD P$FNC NODE
        !          5095: <        MOV  XR,XL            SAVE POINTER TO IT
        !          5096: <        MOV  (XS)+,XR         GET ARGUMENT
        !          5097: <        JSR  GTPAT            CONVERT TO PATTERN
        !          5098: <        ERR  259,FENCE ARGUMENT IS NOT PATTERN
        !          5099: <        JSR  PCONC            CONCATENATE TO P$FNC NODE
        !          5100: <        MOV  XR,XL            SAVE PTR TO CONCATENATED PATTERN
        !          5101: <        MOV  =P$FNA,WB        SET FOR P$FNA PCODE
        !          5102: <        ZER  XR               P0BLK
        !          5103: <        JSR  PBILD            CONSTRUCT P$FNA NODE
        !          5104: <        MOV  XL,PTHEN(XR)     SET PATTERN AS PTHEN
        !          5105: <        MOV  XR,-(XS)         SET AS RESULT
        !          5106: <        BRN  EXITS            DO NEXT CODE WORD
        !          5107: <        EJC
        !          5108: < *
        !          5109: 11058,11059c9880,9881
        !          5110: <        ERR  109,GE FIRST ARGUMENT IS NOT NUMERIC
        !          5111: <        ERR  110,GE SECOND ARGUMENT IS NOT NUMERIC
        !          5112: ---
        !          5113: >        ERR  111,GE FIRST ARGUMENT IS NOT NUMERIC
        !          5114: >        ERR  112,GE SECOND ARGUMENT IS NOT NUMERIC
        !          5115: 11063d9884
        !          5116: <        EJC
        !          5117: 11069,11070c9890,9891
        !          5118: <        ERR  111,GT FIRST ARGUMENT IS NOT NUMERIC
        !          5119: <        ERR  112,GT SECOND ARGUMENT IS NOT NUMERIC
        !          5120: ---
        !          5121: >        ERR  113,GT FIRST ARGUMENT IS NOT NUMERIC
        !          5122: >        ERR  114,GT SECOND ARGUMENT IS NOT NUMERIC
        !          5123: 11079,11087c9900,9913
        !          5124: <        MOV  (XS)+,XR         GET THIRD ARG
        !          5125: <        MOV  (XS)+,XL         GET SECOND ARG
        !          5126: <        MOV  (XS)+,WA         GET FIRST ARG
        !          5127: <        JSR  SYSHS            ENTER SYSHS ROUTINE
        !          5128: <        ERR  254,ERRONEOUS ARGUMENT FOR HOST
        !          5129: <        ERR  255,ERROR DURING EXECUTION OF HOST
        !          5130: <        PPM  SHST1            STORE HOST STRING
        !          5131: <        PPM  EXNUL            RETURN NULL RESULT
        !          5132: <        PPM  EXIXR            RETURN XR
        !          5133: ---
        !          5134: >        JSR  GTSTG            CONVERT ARG TO STRING
        !          5135: >        ERR  115,ERRONEOUS THIRD ARGUMENT FOR HOST
        !          5136: >        MOV  WA,WB            KEEP LENGTH
        !          5137: >        MOV  XR,WC            KEEP THIRD ARG
        !          5138: >        JSR  GTSTG            CONVERT ARG TO STRING
        !          5139: >        ERR  116,ERRONEOUS SECOND ARGUMENT FOR HOST
        !          5140: >        ORB  WA,WB            NON ZERO UNLESS TWO ARGS NULL
        !          5141: >        MOV  XR,XL            KEEP SECOND ARG
        !          5142: >        JSR  GTSTG            CONVERT ARG TO STRING
        !          5143: >        ERR  117,ERRONEOUS FIRST ARGUMENT FOR HOST
        !          5144: 
        !          5145: 
        !          5146: 
        !          5147: 
        !          5148: 
        !          5149: 
        !          5150: 
        !          5151: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 79
        !          5152: 
        !          5153: 
        !          5154: >        ORB  WA,WB            NON ZERO UNLESS ALL ARGS NULL
        !          5155: >        MOV  XR,WA            KEEP FIRST ARG
        !          5156: >        MOV  WC,XR            GET THIRD ARG
        !          5157: >        JSR  SYSHS            CALL SYSHS ROUTINE
        !          5158: 11089,11093c9915,9916
        !          5159: < *
        !          5160: < *      RETURN HOST STRING
        !          5161: < *
        !          5162: < SHST1  BZE  XL,EXNUL         NULL STRING IF SYSHS UNCOOPERATIVE
        !          5163: <        MOV  SCLEN(XL),WA     LENGTH
        !          5164: ---
        !          5165: >        PPM  EROSI            ERROR RETURN
        !          5166: >        MOV  SCLEN(XL),WA     LENGTH OF RETURNED STRING
        !          5167: 11115,11120c9938,9941
        !          5168: <        ERR  113,INPUT THIRD ARGUMENT IS NOT A STRING
        !          5169: <        ERR  114,INAPPROPRIATE SECOND ARGUMENT FOR INPUT
        !          5170: <        ERR  115,INAPPROPRIATE FIRST ARGUMENT FOR INPUT
        !          5171: <        ERR  116,INAPPROPRIATE FILE SPECIFICATION FOR INPUT
        !          5172: <        PPM  EXFAL            FAIL IF FILE DOES NOT EXIST
        !          5173: <        ERR  117,INPUT FILE CANNOT BE READ
        !          5174: ---
        !          5175: >        ERR  118,INPUT THIRD ARGUMENT (FILEPROPS) IS NOT A STRING
        !          5176: >        ERR  119,INAPPROPRIATE SECOND ARGUMENT (FILETAG) FOR INPUT
        !          5177: >        ERR  120,INAPPROPRIATE FIRST ARGUMENT FOR INPUT
        !          5178: >        PPM  EXFAL            FAIL RETURN
        !          5179: 11122d9942
        !          5180: <        EJC
        !          5181: 11124a9945
        !          5182: >        EJC
        !          5183: 11131c9952
        !          5184: <        ERR  277,INSERT THIRD ARGUMENT NOT INTEGER
        !          5185: ---
        !          5186: >        ERR  121,INSERT THIRD ARGUMENT NOT INTEGER
        !          5187: 11135c9956
        !          5188: <        ERR  278,INSERT SECOND ARGUMENT NOT INTEGER
        !          5189: ---
        !          5190: >        ERR  122,INSERT SECOND ARGUMENT NOT INTEGER
        !          5191: 11142c9963
        !          5192: <        ERB  279,INSERT FIRST ARGUMENT NOT BUFFER
        !          5193: ---
        !          5194: >        ERB  123,INSERT FIRST ARGUMENT NOT BUFFER
        !          5195: 11147c9968
        !          5196: <        ERR  280,INSERT FOURTH ARGUMENT NOT A STRING
        !          5197: ---
        !          5198: >        ERR  124,INSERT FOURTH ARGUMENT NOT A STRING
        !          5199: 11150d9970
        !          5200: <        EJC
        !          5201: 11151a9972
        !          5202: >        EJC
        !          5203: 11162a9984,10000
        !          5204: > *      ITC
        !          5205: > *
        !          5206: > S$ITC  ENT
        !          5207: >        JSR  GTSMI            OBTAIN ARG AS AN INTEGER
        !          5208: >        ERR  125,ITC ARGUMENT IS NOT A SMALL INTEGER
        !          5209: >        PPM  EXFAL            FAIL IF OUT OF RANGE
        !          5210: 
        !          5211: 
        !          5212: 
        !          5213: 
        !          5214: 
        !          5215: 
        !          5216: 
        !          5217: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 80
        !          5218: 
        !          5219: 
        !          5220: >        BGE  WC,=CFP$A,EXFAL  FURTHER RANGE CHECK
        !          5221: >        MOV  WC,WB            PRESERVE WC
        !          5222: >        MOV  =NUM01,WA        FOR SCBLK REQUEST
        !          5223: >        JSR  ALOCS            BUILD STRING BLOCK
        !          5224: >        MOV  XR,XL            COPY STRING PTR
        !          5225: >        PSC  XL               READY TO STORE CHAR
        !          5226: >        SCH  WB,(XL)          STORE IT
        !          5227: >        ZER  XL               CLEAR GARBAGE
        !          5228: >        BRN  EXIXR            RETURN STRING RESULT
        !          5229: >        EJC
        !          5230: > *
        !          5231: 11200,11201c10038,10039
        !          5232: <        ERR  118,LE FIRST ARGUMENT IS NOT NUMERIC
        !          5233: <        ERR  119,LE SECOND ARGUMENT IS NOT NUMERIC
        !          5234: ---
        !          5235: >        ERR  126,LE FIRST ARGUMENT IS NOT NUMERIC
        !          5236: >        ERR  127,LE SECOND ARGUMENT IS NOT NUMERIC
        !          5237: 11213,11214c10051,10052
        !          5238: <        ERR  120,LEN ARGUMENT IS NOT INTEGER OR EXPRESSION
        !          5239: <        ERR  121,LEN ARGUMENT IS NEGATIVE OR TOO LARGE
        !          5240: ---
        !          5241: >        ERR  128,LEN ARGUMENT IS NOT INTEGER OR EXPRESSION
        !          5242: >        ERR  129,LEN ARGUMENT IS NEGATIVE OR TOO LARGE
        !          5243: 11222,11223c10060,10061
        !          5244: <        ERR  122,LEQ FIRST ARGUMENT IS NOT STRING
        !          5245: <        ERR  123,LEQ SECOND ARGUMENT IS NOT STRING
        !          5246: ---
        !          5247: >        ERR  130,LEQ FIRST ARGUMENT IS NOT STRING
        !          5248: >        ERR  131,LEQ SECOND ARGUMENT IS NOT STRING
        !          5249: 11233,11234c10071,10072
        !          5250: <        ERR  124,LGE FIRST ARGUMENT IS NOT STRING
        !          5251: <        ERR  125,LGE SECOND ARGUMENT IS NOT STRING
        !          5252: ---
        !          5253: >        ERR  132,LGE FIRST ARGUMENT IS NOT STRING
        !          5254: >        ERR  133,LGE SECOND ARGUMENT IS NOT STRING
        !          5255: 11244,11245c10082,10083
        !          5256: <        ERR  126,LGT FIRST ARGUMENT IS NOT STRING
        !          5257: <        ERR  127,LGT SECOND ARGUMENT IS NOT STRING
        !          5258: ---
        !          5259: >        ERR  134,LGT FIRST ARGUMENT IS NOT STRING
        !          5260: >        ERR  135,LGT SECOND ARGUMENT IS NOT STRING
        !          5261: 11255,11256c10093,10094
        !          5262: <        ERR  128,LLE FIRST ARGUMENT IS NOT STRING
        !          5263: <        ERR  129,LLE SECOND ARGUMENT IS NOT STRING
        !          5264: ---
        !          5265: >        ERR  136,LLE FIRST ARGUMENT IS NOT STRING
        !          5266: >        ERR  137,LLE SECOND ARGUMENT IS NOT STRING
        !          5267: 11266,11267c10104,10105
        !          5268: <        ERR  130,LLT FIRST ARGUMENT IS NOT STRING
        !          5269: <        ERR  131,LLT SECOND ARGUMENT IS NOT STRING
        !          5270: ---
        !          5271: >        ERR  138,LLT FIRST ARGUMENT IS NOT STRING
        !          5272: >        ERR  139,LLT SECOND ARGUMENT IS NOT STRING
        !          5273: 11277,11278c10115,10116
        !          5274: <        ERR  132,LNE FIRST ARGUMENT IS NOT STRING
        !          5275: <        ERR  133,LNE SECOND ARGUMENT IS NOT STRING
        !          5276: 
        !          5277: 
        !          5278: 
        !          5279: 
        !          5280: 
        !          5281: 
        !          5282: 
        !          5283: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 81
        !          5284: 
        !          5285: 
        !          5286: ---
        !          5287: >        ERR  140,LNE FIRST ARGUMENT IS NOT STRING
        !          5288: >        ERR  141,LNE SECOND ARGUMENT IS NOT STRING
        !          5289: 11282,11309d10119
        !          5290: <        EJC
        !          5291: < *
        !          5292: < *      LOCAL
        !          5293: < *
        !          5294: < S$LOC  ENT                   ENTRY POINT
        !          5295: <        JSR  GTSMI            GET SECOND ARGUMENT (LOCAL NUMBER)
        !          5296: <        ERR  134,LOCAL SECOND ARGUMENT IS NOT INTEGER
        !          5297: <        PPM  EXFAL            FAIL IF OUT OF RANGE
        !          5298: <        MOV  XR,WB            SAVE LOCAL NUMBER
        !          5299: <        MOV  (XS)+,XR         LOAD FIRST ARGUMENT
        !          5300: <        JSR  GTNVR            POINT TO VRBLK
        !          5301: <        PPM  SLOC1            JUMP IF NOT VARIABLE NAME
        !          5302: <        MOV  VRFNC(XR),XR     ELSE LOAD FUNCTION POINTER
        !          5303: <        BNE  (XR),=B$PFC,SLOC1 JUMP IF NOT PROGRAM DEFINED
        !          5304: < *
        !          5305: < *      HERE IF WE HAVE A PROGRAM DEFINED FUNCTION NAME
        !          5306: < *
        !          5307: <        BZE  WB,EXFAL         FAIL IF SECOND ARG IS ZERO
        !          5308: <        BGT  WB,PFNLO(XR),EXFAL OR TOO LARGE
        !          5309: <        ADD  FARGS(XR),WB     ELSE ADJUST OFFSET TO INCLUDE ARGS
        !          5310: <        WTB  WB               CONVERT TO BYTES
        !          5311: <        ADD  WB,XR            POINT TO LOCAL POINTER
        !          5312: <        MOV  PFAGB(XR),XR     LOAD VRBLK POINTER
        !          5313: <        BRN  EXVNM            EXIT BUILDING NMBLK
        !          5314: < *
        !          5315: < *      HERE IF FIRST ARGUMENT IS NO GOOD
        !          5316: < *
        !          5317: < SLOC1  ERB  135,LOCAL FIRST ARG IS NOT A PROGRAM FUNCTION NAME
        !          5318: 11318c10128
        !          5319: <        ERR  136,LOAD SECOND ARGUMENT IS NOT STRING
        !          5320: ---
        !          5321: >        ERR  142,LOAD SECOND ARGUMENT IS NOT STRING
        !          5322: 11321,11322c10131,10132
        !          5323: <        ERR  137,LOAD FIRST ARGUMENT IS NOT STRING
        !          5324: <        ERR  138,LOAD FIRST ARGUMENT IS NULL
        !          5325: ---
        !          5326: >        ERR  143,LOAD FIRST ARGUMENT IS NOT STRING
        !          5327: >        ERR  144,LOAD FIRST ARGUMENT IS NULL
        !          5328: 11329c10139
        !          5329: <        ERB  139,LOAD FIRST ARGUMENT IS MISSING A LEFT PAREN
        !          5330: ---
        !          5331: >        ERB  145,LOAD FIRST ARGUMENT IS MISSING A LEFT PAREN
        !          5332: 11334c10144
        !          5333: <        ERR  140,LOAD FIRST ARGUMENT HAS NULL FUNCTION NAME
        !          5334: ---
        !          5335: >        ERR  146,LOAD FIRST ARGUMENT HAS NULL FUNCTION NAME
        !          5336: 11345c10155
        !          5337: <        ERB  141,LOAD FIRST ARGUMENT IS MISSING A RIGHT PAREN
        !          5338: ---
        !          5339: >        ERB  147,BAD BLANK OR MISSING RIGHT PAREN IN LOAD ARG
        !          5340: 11355c10165
        !          5341: <        MOV  =NUM01,WB        SET STRING CODE IN CASE
        !          5342: 
        !          5343: 
        !          5344: 
        !          5345: 
        !          5346: 
        !          5347: 
        !          5348: 
        !          5349: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 82
        !          5350: 
        !          5351: 
        !          5352: ---
        !          5353: >        MOV  =NUM01,WB        SET STRING CODE IN CASE (1)
        !          5354: 11363a10174
        !          5355: >        ICV  WB               ELSE SET CODE FOR REAL (3)
        !          5356: 11366,11367c10177
        !          5357: <        MOV  (XS),XR          ELSE RELOAD STRING POINTER
        !          5358: <        ICV  WB               SET CODE FOR REAL (3)
        !          5359: ---
        !          5360: >        MOV  (XS),XR          RELOAD STRING POINTER
        !          5361: 11371a10182,10189
        !          5362: >        ICV  WB               SET CODE FOR BUFFER (4)
        !          5363: > .IF    .CNBF
        !          5364: > .ELSE
        !          5365: >        MOV  (XS),XR          RELOAD STRING POINTER
        !          5366: >        MOV  =SCBUF,XL        POINT TO /BUFFER/
        !          5367: >        JSR  IDENT            CHECK FOR MATCH
        !          5368: >        PPM  SLOD4            JUMP IF MATCH
        !          5369: > .FI
        !          5370: 11395c10213
        !          5371: <        WTB  WA               CONVERT LENGTH TO BYTES
        !          5372: ---
        !          5373: >        WTB  WA               CONVERT LENGTH TO BAUS
        !          5374: 11420,11421c10238,10239
        !          5375: <        ERR  142,LOAD FUNCTION DOES NOT EXIST
        !          5376: <        ERR  143,LOAD FUNCTION CAUSED INPUT ERROR DURING LOAD
        !          5377: ---
        !          5378: >        PPM  EXFAL            FAIL RETURN
        !          5379: >        PPM  EROSI            ERROR RETURN
        !          5380: 11429a10248,10275
        !          5381: > *      LOCAL
        !          5382: > *
        !          5383: > S$LOC  ENT                   ENTRY POINT
        !          5384: >        JSR  GTSMI            GET SECOND ARGUMENT (LOCAL NUMBER)
        !          5385: >        ERR  256,LOCAL SECOND ARGUMENT IS NOT INTEGER
        !          5386: >        PPM  EXFAL            FAIL IF OUT OF RANGE
        !          5387: >        MOV  XR,WB            SAVE LOCAL NUMBER
        !          5388: >        MOV  (XS)+,XR         LOAD FIRST ARGUMENT
        !          5389: >        JSR  GTNVR            POINT TO VRBLK
        !          5390: >        PPM  SLOC1            JUMP IF NOT VARIABLE NAME
        !          5391: >        MOV  VRFNC(XR),XR     ELSE LOAD FUNCTION POINTER
        !          5392: >        BNE  (XR),=B$PFC,SLOC1 JUMP IF NOT PROGRAM DEFINED
        !          5393: > *
        !          5394: > *      HERE IF WE HAVE A PROGRAM DEFINED FUNCTION NAME
        !          5395: > *
        !          5396: >        BZE  WB,EXFAL         FAIL IF SECOND ARG IS ZERO
        !          5397: >        BGT  WB,PFNLO(XR),EXFAL OR TOO LARGE
        !          5398: >        ADD  FARGS(XR),WB     ELSE ADJUST OFFSET TO INCLUDE ARGS
        !          5399: >        WTB  WB               CONVERT TO BYTES
        !          5400: >        ADD  WB,XR            POINT TO LOCAL POINTER
        !          5401: >        MOV  PFAGB(XR),XR     LOAD VRBLK POINTER
        !          5402: >        BRN  EXVNM            EXIT BUILDING NMBLK
        !          5403: > *
        !          5404: > *      HERE IF FIRST ARGUMENT IS NO GOOD
        !          5405: > *
        !          5406: > SLOC1  ERB  257,LOCAL FIRST ARG IS NOT A PROGRAM FUNCTION NAME
        !          5407: >        EJC
        !          5408: 
        !          5409: 
        !          5410: 
        !          5411: 
        !          5412: 
        !          5413: 
        !          5414: 
        !          5415: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 83
        !          5416: 
        !          5417: 
        !          5418: > *
        !          5419: 11434c10280
        !          5420: <        ERR  144,LPAD THIRD ARGUMENT NOT A STRING
        !          5421: ---
        !          5422: >        ERR  148,LPAD THIRD ARGUMENT NOT A STRING
        !          5423: 11438c10284
        !          5424: <        ERR  145,LPAD SECOND ARGUMENT IS NOT INTEGER
        !          5425: ---
        !          5426: >        ERR  149,LPAD SECOND ARGUMENT IS NOT INTEGER
        !          5427: 11444c10290
        !          5428: <        ERR  146,LPAD FIRST ARGUMENT IS NOT STRING
        !          5429: ---
        !          5430: >        ERR  150,LPAD FIRST ARGUMENT IS NOT STRING
        !          5431: 11485,11486c10331,10332
        !          5432: <        ERR  147,LT FIRST ARGUMENT IS NOT NUMERIC
        !          5433: <        ERR  148,LT SECOND ARGUMENT IS NOT NUMERIC
        !          5434: ---
        !          5435: >        ERR  151,LT FIRST ARGUMENT IS NOT NUMERIC
        !          5436: >        ERR  152,LT SECOND ARGUMENT IS NOT NUMERIC
        !          5437: 11496,11497c10342,10343
        !          5438: <        ERR  149,NE FIRST ARGUMENT IS NOT NUMERIC
        !          5439: <        ERR  150,NE SECOND ARGUMENT IS NOT NUMERIC
        !          5440: ---
        !          5441: >        ERR  153,NE FIRST ARGUMENT IS NOT NUMERIC
        !          5442: >        ERR  154,NE SECOND ARGUMENT IS NOT NUMERIC
        !          5443: 11510c10356
        !          5444: <        ERR  151,NOTANY ARGUMENT IS NOT STRING OR EXPRESSION
        !          5445: ---
        !          5446: >        ERR  155,NOTANY ARGUMENT IS NOT STRING OR EXPRESSION
        !          5447: 11518,11519c10364,10365
        !          5448: <        ERR  152,OPSYN THIRD ARGUMENT IS NOT INTEGER
        !          5449: <        ERR  153,OPSYN THIRD ARGUMENT IS NEGATIVE OR TOO LARGE
        !          5450: ---
        !          5451: >        ERR  156,OPSYN THIRD ARGUMENT IS NOT INTEGER
        !          5452: >        ERR  157,OPSYN THIRD ARGUMENT IS NEGATIVE OR TOO LARGE
        !          5453: 11523c10369
        !          5454: <        ERR  154,OPSYN SECOND ARG IS NOT NATURAL VARIABLE NAME
        !          5455: ---
        !          5456: >        ERR  158,OPSYN SECOND ARG IS NOT NATURAL VARIABLE NAME
        !          5457: 11531c10377
        !          5458: <        ERR  155,OPSYN FIRST ARG IS NOT NATURAL VARIABLE NAME
        !          5459: ---
        !          5460: >        ERR  159,OPSYN FIRST ARG IS NOT NATURAL VARIABLE NAME
        !          5461: 11574c10420
        !          5462: < SOPS5  ERB  156,OPSYN FIRST ARG IS NOT CORRECT OPERATOR NAME
        !          5463: ---
        !          5464: > SOPS5  ERB  160,OPSYN FIRST ARG IS NOT CORRECT OPERATOR NAME
        !          5465: 11586c10432
        !          5466: <        MOV  =NUM03,WB        OUTPUT FLAG
        !          5467: ---
        !          5468: >        MOV  =NUM02,WB        OUTPUT FLAG
        !          5469: 11588,11593c10434,10437
        !          5470: <        ERR  157,OUTPUT THIRD ARGUMENT IS NOT A STRING
        !          5471: <        ERR  158,INAPPROPRIATE SECOND ARGUMENT FOR OUTPUT
        !          5472: <        ERR  159,INAPPROPRIATE FIRST ARGUMENT FOR OUTPUT
        !          5473: <        ERR  160,INAPPROPRIATE FILE SPECIFICATION FOR OUTPUT
        !          5474: 
        !          5475: 
        !          5476: 
        !          5477: 
        !          5478: 
        !          5479: 
        !          5480: 
        !          5481: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 84
        !          5482: 
        !          5483: 
        !          5484: <        PPM  EXFAL            FAIL IF FILE DOES NOT EXIST
        !          5485: <        ERR  161,OUTPUT FILE CANNOT BE WRITTEN TO
        !          5486: ---
        !          5487: >        ERR  161,OUTPUT THIRD ARGUMENT (FILEPROPS) IS NOT A STRING
        !          5488: >        ERR  162,INAPPROPRIATE SECOND ARGUMENT (FILETAG) FOR OUTPUT
        !          5489: >        ERR  163,INAPPROPRIATE FIRST ARGUMENT FOR OUTPUT
        !          5490: >        PPM  EXFAL            FAIL RETURN
        !          5491: 11603,11604c10447,10448
        !          5492: <        ERR  162,POS ARGUMENT IS NOT INTEGER OR EXPRESSION
        !          5493: <        ERR  163,POS ARGUMENT IS NEGATIVE OR TOO LARGE
        !          5494: ---
        !          5495: >        ERR  164,POS ARGUMENT IS NOT INTEGER OR EXPRESSION
        !          5496: >        ERR  165,POS ARGUMENT IS NEGATIVE OR TOO LARGE
        !          5497: 11617a10462,10463
        !          5498: > .IF    .CNBF
        !          5499: > .ELSE
        !          5500: 11619c10465,10466
        !          5501: <        ERB  164,PROTOTYPE ARGUMENT IS NOT VALID OBJECT
        !          5502: ---
        !          5503: > .FI
        !          5504: >        ERB  166,PROTOTYPE ARGUMENT IS NOT TABLE OR ARRAY
        !          5505: 11657c10504
        !          5506: <        ERR  165,REMDR SECOND ARGUMENT IS NOT INTEGER
        !          5507: ---
        !          5508: >        ERR  167,REMDR SECOND ARGUMENT IS NOT INTEGER
        !          5509: 11668c10515
        !          5510: <        ERB  167,REMDR CAUSED INTEGER OVERFLOW
        !          5511: ---
        !          5512: >        ERB  168,REMDR CAUSED INTEGER OVERFLOW
        !          5513: 11672c10519
        !          5514: < SRM01  ERB  166,REMDR FIRST ARGUMENT IS NOT INTEGER
        !          5515: ---
        !          5516: > SRM01  ERB  169,REMDR FIRST ARGUMENT IS NOT INTEGER
        !          5517: 11684c10531
        !          5518: <        ERR  168,REPLACE THIRD ARGUMENT IS NOT STRING
        !          5519: ---
        !          5520: >        ERR  170,REPLACE THIRD ARGUMENT IS NOT STRING
        !          5521: 11687c10534
        !          5522: <        ERR  169,REPLACE SECOND ARGUMENT IS NOT STRING
        !          5523: ---
        !          5524: >        ERR  171,REPLACE SECOND ARGUMENT IS NOT STRING
        !          5525: 11749c10596
        !          5526: <        ERR  170,REPLACE FIRST ARGUMENT IS NOT STRING
        !          5527: ---
        !          5528: >        ERR  172,REPLACE FIRST ARGUMENT IS NOT STRING
        !          5529: 11768c10615
        !          5530: < SRPL5  ERB  171,NULL OR UNEQUALLY LONG 2ND, 3RD ARGS TO REPLACE
        !          5531: ---
        !          5532: > SRPL5  ERB  173,NULL OR UNEQUALLY LONG 2ND, 3RD ARGS TO REPLACE
        !          5533: 11771,11783d10617
        !          5534: < *      REWIND
        !          5535: < *
        !          5536: < S$REW  ENT                   ENTRY POINT
        !          5537: <        JSR  IOFCB            CALL FCBLK ROUTINE
        !          5538: <        ERR  172,REWIND ARGUMENT IS NOT A SUITABLE NAME
        !          5539: <        ERR  173,REWIND ARGUMENT IS NULL
        !          5540: 
        !          5541: 
        !          5542: 
        !          5543: 
        !          5544: 
        !          5545: 
        !          5546: 
        !          5547: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 85
        !          5548: 
        !          5549: 
        !          5550: <        JSR  SYSRW            CALL SYSTEM REWIND FUNCTION
        !          5551: <        ERR  174,REWIND FILE DOES NOT EXIST
        !          5552: <        ERR  175,REWIND FILE DOES NOT PERMIT REWIND
        !          5553: <        ERR  176,REWIND CAUSED NON-RECOVERABLE ERROR
        !          5554: <        BRN  EXNUL            EXIT WITH NULL RESULT IF NO ERROR
        !          5555: <        EJC
        !          5556: < *
        !          5557: 11788c10622
        !          5558: <        ERR  177,REVERSE ARGUMENT IS NOT STRING
        !          5559: ---
        !          5560: >        ERR  174,REVERSE ARGUMENT IS NOT STRING
        !          5561: 11810c10644
        !          5562: <        ERR  178,RPAD THIRD ARGUMENT IS NOT STRING
        !          5563: ---
        !          5564: >        ERR  175,RPAD THIRD ARGUMENT IS NOT STRING
        !          5565: 11814c10648
        !          5566: <        ERR  179,RPAD SECOND ARGUMENT IS NOT INTEGER
        !          5567: ---
        !          5568: >        ERR  176,RPAD SECOND ARGUMENT IS NOT INTEGER
        !          5569: 11820c10654
        !          5570: <        ERR  180,RPAD FIRST ARGUMENT IS NOT STRING
        !          5571: ---
        !          5572: >        ERR  177,RPAD FIRST ARGUMENT IS NOT STRING
        !          5573: 11863,11864c10697,10698
        !          5574: <        ERR  181,RTAB ARGUMENT IS NOT INTEGER OR EXPRESSION
        !          5575: <        ERR  182,RTAB ARGUMENT IS NEGATIVE OR TOO LARGE
        !          5576: ---
        !          5577: >        ERR  178,RTAB ARGUMENT IS NOT INTEGER OR EXPRESSION
        !          5578: >        ERR  179,RTAB ARGUMENT IS NEGATIVE OR TOO LARGE
        !          5579: 11872c10706
        !          5580: <        MOV  (XS)+,R$IO2      SAVE THIRD ARG
        !          5581: ---
        !          5582: >        MOV  (XS)+,R$IOL      SAVE THIRD ARG
        !          5583: 11874,11876c10708,10710
        !          5584: <        JSR  IOFCB            CALL FCBLK ROUTINE
        !          5585: <        ERR  291,SET FIRST ARGUMENT IS NOT A SUITABLE NAME
        !          5586: <        ERR  292,SET FIRST ARGUMENT IS NULL
        !          5587: ---
        !          5588: >        JSR  IOFTG            CALL IOTAG ROUTINE
        !          5589: >        ERR  180,SET FIRST ARGUMENT IS NOT A SUITABLE NAME
        !          5590: >        BZE  WA,EXFAL         FAIL IF NO IOTAG
        !          5591: 11878c10712
        !          5592: <        MOV  R$IO2,WC         LOAD THIRD ARG
        !          5593: ---
        !          5594: >        MOV  R$IOL,WC         LOAD THIRD ARG
        !          5595: 11880,11885c10714,10716
        !          5596: <        ERR  293,INAPPROPRIATE SECOND ARGUMENT TO SET
        !          5597: <        ERR  294,INAPPROPRIATE THIRD ARGUMENT TO SET
        !          5598: <        ERR  295,SET FILE DOES NOT EXIST
        !          5599: <        ERR  296,SET FILE DOES NOT PERMIT SETTING FILE POINTER
        !          5600: <        ERR  297,SET CAUSED NON-RECOVERABLE I/O ERROR
        !          5601: <        BRN  EXNUL            OTHERWISEW RETURN NULL
        !          5602: ---
        !          5603: >        PPM  EXFAL            FAILURE RETURN
        !          5604: >        PPM  EROSI            ERROR RETURN
        !          5605: >        BRN  EXNUL            OTHERWISE RETURN NULL
        !          5606: 
        !          5607: 
        !          5608: 
        !          5609: 
        !          5610: 
        !          5611: 
        !          5612: 
        !          5613: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 86
        !          5614: 
        !          5615: 
        !          5616: 11889,11899d10719
        !          5617: < *      TAB
        !          5618: < *
        !          5619: < S$TAB  ENT                   ENTRY POINT
        !          5620: <        MOV  =P$TAB,WB        SET PCODE FOR INTEGER ARG CASE
        !          5621: <        MOV  =P$TBD,WA        SET PCODE FOR EXPRESSION ARG CASE
        !          5622: <        JSR  PATIN            CALL COMMON ROUTINE TO BUILD NODE
        !          5623: <        ERR  183,TAB ARGUMENT IS NOT INTEGER OR EXPRESSION
        !          5624: <        ERR  184,TAB ARGUMENT IS NEGATIVE OR TOO LARGE
        !          5625: <        BRN  EXIXR            RETURN PATTERN NODE
        !          5626: <        EJC
        !          5627: < *
        !          5628: 11906,11907c10726,10727
        !          5629: <        ERR  185,RPOS ARGUMENT IS NOT INTEGER OR EXPRESSION
        !          5630: <        ERR  186,RPOS ARGUMENT IS NEGATIVE OR TOO LARGE
        !          5631: ---
        !          5632: >        ERR  181,RPOS ARGUMENT IS NOT INTEGER OR EXPRESSION
        !          5633: >        ERR  182,RPOS ARGUMENT IS NEGATIVE OR TOO LARGE
        !          5634: 11917a10738
        !          5635: >        PPM  EXFAL            FAIL EMPTY TABLE
        !          5636: 11946c10767
        !          5637: < SSTX2  ERB  187,SETEXIT ARGUMENT IS NOT LABEL NAME OR NULL
        !          5638: ---
        !          5639: > SSTX2  ERB  183,SETEXIT ARGUMENT IS NOT LABEL NAME OR NULL
        !          5640: 11955a10777
        !          5641: >        PPM  EXFAL            FAIL EMPTY TABLE
        !          5642: 11967c10789
        !          5643: <        ERR  188,SPAN ARGUMENT IS NOT STRING OR EXPRESSION
        !          5644: ---
        !          5645: >        ERR  184,SPAN ARGUMENT IS NOT STRING OR EXPRESSION
        !          5646: 11974a10797
        !          5647: >        JSR  GTSTG            LOAD STRING ARGUMENT
        !          5648: 11981d10803
        !          5649: < .FI
        !          5650: 11986c10808,10809
        !          5651: <        ERR  189,SIZE ARGUMENT IS NOT STRING
        !          5652: ---
        !          5653: > .FI
        !          5654: >        ERR  185,SIZE ARGUMENT IS NOT STRING
        !          5655: 11996,11997c10819,10821
        !          5656: <        ERR  190,STOPTR FIRST ARGUMENT IS NOT APPROPRIATE NAME
        !          5657: <        ERR  191,STOPTR SECOND ARGUMENT IS NOT TRACE TYPE
        !          5658: ---
        !          5659: >        ERR  186,STOPTR FIRST ARGUMENT IS NOT APPROPRIATE NAME
        !          5660: >        ERR  187,STOPTR SECOND ARGUMENT IS NOT TRACE TYPE
        !          5661: >        PPM  EXFAL            FAIL RETURN
        !          5662: 12005c10829
        !          5663: <        ERR  192,SUBSTR THIRD ARGUMENT IS NOT INTEGER
        !          5664: ---
        !          5665: >        ERR  188,SUBSTR THIRD ARGUMENT IS NOT INTEGER
        !          5666: 12009c10833
        !          5667: <        ERR  193,SUBSTR SECOND ARGUMENT IS NOT INTEGER
        !          5668: ---
        !          5669: >        ERR  189,SUBSTR SECOND ARGUMENT IS NOT INTEGER
        !          5670: 12014a10839
        !          5671: >        JSR  GTSTG            LOAD FIRST ARGUMENT
        !          5672: 
        !          5673: 
        !          5674: 
        !          5675: 
        !          5676: 
        !          5677: 
        !          5678: 
        !          5679: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 87
        !          5680: 
        !          5681: 
        !          5682: 12024d10848
        !          5683: < .FI
        !          5684: 12026c10850,10855
        !          5685: <        ERR  194,SUBSTR FIRST ARGUMENT IS NOT STRING
        !          5686: ---
        !          5687: > .FI
        !          5688: >        ERR  190,SUBSTR FIRST ARGUMENT IS NOT STRING
        !          5689: >        MOV  XR,XL            COPY POINTER TO FIRST ARG
        !          5690: > .IF    .CNBF
        !          5691: >        MOV  SBSSV,WC         RELOAD THIRD ARGUMENT
        !          5692: > .ELSE
        !          5693: 12028c10857
        !          5694: < *      MERGE WITH BFBLK OR SCBLK PTR IN XR.  WA HAS LENGTH
        !          5695: ---
        !          5696: > *      MERGE WITH BFBLK OR SCBLK IN XR, LENGTH IN WA
        !          5697: 12030a10860
        !          5698: > .FI
        !          5699: 12032c10862
        !          5700: <        MOV  WA,WC            ELSE GET STRING LENGTH
        !          5701: ---
        !          5702: >        MOV  SCLEN(XL),WC     ELSE GET STRING LENGTH
        !          5703: 12038,12039c10868
        !          5704: < SSUB1  MOV  WA,XL            SAVE STRING LENGTH
        !          5705: <        MOV  WC,WA            SET LENGTH OF SUBSTRING
        !          5706: ---
        !          5707: > SSUB1  MOV  WC,WA            SET LENGTH OF SUBSTRING
        !          5708: 12041,12042c10870
        !          5709: <        BGT  WC,XL,EXFAL      JUMP IF IMPROPER SUBSTRING
        !          5710: <        MOV  XR,XL            COPY POINTER TO FIRST ARG
        !          5711: ---
        !          5712: >        BGT  WC,SCLEN(XL),EXFAL JUMP IF IMPROPER SUBSTRING
        !          5713: 12046a10875,10885
        !          5714: > *      TAB
        !          5715: > *
        !          5716: > S$TAB  ENT                   ENTRY POINT
        !          5717: >        MOV  =P$TAB,WB        SET PCODE FOR INTEGER ARG CASE
        !          5718: >        MOV  =P$TBD,WA        SET PCODE FOR EXPRESSION ARG CASE
        !          5719: >        JSR  PATIN            CALL COMMON ROUTINE TO BUILD NODE
        !          5720: >        ERR  191,TAB ARGUMENT IS NOT INTEGER OR EXPRESSION
        !          5721: >        ERR  192,TAB ARGUMENT IS NEGATIVE OR TOO LARGE
        !          5722: >        BRN  EXIXR            RETURN PATTERN NODE
        !          5723: >        EJC
        !          5724: > *
        !          5725: 12053,12054c10892,10893
        !          5726: <        ERR  195,TABLE ARGUMENT IS NOT INTEGER
        !          5727: <        ERR  196,TABLE ARGUMENT IS OUT OF RANGE
        !          5728: ---
        !          5729: >        ERR  193,TABLE ARGUMENT IS NOT INTEGER
        !          5730: >        ERR  194,TABLE ARGUMENT IS OUT OF RANGE
        !          5731: 12062c10901
        !          5732: <        WTB  WA               CONVERT LENGTH TO BYTES
        !          5733: ---
        !          5734: >        WTB  WA               CONVERT LENGTH TO BAUS
        !          5735: 12101c10940
        !          5736: < STR01  ERB  197,TRACE FOURTH ARG IS NOT FUNCTION NAME OR NULL
        !          5737: ---
        !          5738: 
        !          5739: 
        !          5740: 
        !          5741: 
        !          5742: 
        !          5743: 
        !          5744: 
        !          5745: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 88
        !          5746: 
        !          5747: 
        !          5748: > STR01  ERB  195,TRACE FOURTH ARG IS NOT FUNCTION NAME OR NULL
        !          5749: 12110,12111c10949,10951
        !          5750: <        ERR  198,TRACE FIRST ARGUMENT IS NOT APPROPRIATE NAME
        !          5751: <        ERR  199,TRACE SECOND ARGUMENT IS NOT TRACE TYPE
        !          5752: ---
        !          5753: >        ERR  196,TRACE FIRST ARGUMENT IS NOT APPROPRIATE NAME
        !          5754: >        ERR  197,TRACE SECOND ARGUMENT IS NOT TRACE TYPE
        !          5755: >        PPM                   UNUSED RETURN
        !          5756: 12125c10965
        !          5757: <        ERR  200,TRIM ARGUMENT IS NOT STRING
        !          5758: ---
        !          5759: >        ERR  198,TRIM ARGUMENT IS NOT STRING
        !          5760: 12142c10982
        !          5761: <        ERR  201,UNLOAD ARGUMENT IS NOT NATURAL VARIABLE NAME
        !          5762: ---
        !          5763: >        ERR  199,UNLOAD ARGUMENT IS NOT NATURAL VARIABLE NAME
        !          5764: 12145a10986,10995
        !          5765: >        EJC
        !          5766: > *
        !          5767: > *      VDIFFER
        !          5768: > *
        !          5769: > S$VDF  ENT                   ENTRY POINT
        !          5770: >        MOV  (XS)+,XR         LOAD SECOND ARGUMENT
        !          5771: >        MOV  (XS),XL          LOAD FIRST ARGUMENT
        !          5772: >        JSR  IDENT            CALL IDENT COMPARISON ROUTINE
        !          5773: >        PPM  EXFAL            FAIL IF IDENT
        !          5774: >        BRN  EXITS            RETURN FIRST ARG IF DIFFER
        !          5775: 12255c11105
        !          5776: <        MOV  TRFPT(XR),XL     GET FILE CTRL BLK PTR OR ZERO
        !          5777: ---
        !          5778: >        MOV  TRTRI(XR),XL     GET TRTIO BLOCK PTR OR 0
        !          5779: 12263c11113,11121
        !          5780: <        JSR  SYSRD            READ NEXT STANDARD INPUT IMAGE
        !          5781: ---
        !          5782: >        BZE  TTINS,ACSA5      SKIP IF NOT TERML STD INPUT
        !          5783: >        JSR  SYSRI            READ FROM TERMINAL
        !          5784: >        PPM  ACS03            END FILE
        !          5785: >        PPM  EROSI            ERROR
        !          5786: >        BRN  ACS07            MERGE
        !          5787: > *
        !          5788: > *      GENUINE STD INPUT FILE
        !          5789: > *
        !          5790: > ACSA5  JSR  SYSRD            READ NEXT STANDARD INPUT IMAGE
        !          5791: 12264a11123
        !          5792: >        PPM  EROSI            ERROR RETURN
        !          5793: 12269c11128,11129
        !          5794: < ACS06  MOV  XL,WA            FCBLK PTR
        !          5795: ---
        !          5796: > ACS06  MOV  TRTAG(XL),WA     OBTAIN IOTAG
        !          5797: >        BZE  WA,ACS03         FAIL IF ENDFILE DONE
        !          5798: 12272c11132
        !          5799: <        MOV  XL,WA            FCBLK PTR
        !          5800: ---
        !          5801: >        MOV  TRTAG(XL),WA     GET IOTAG
        !          5802: 12275,12276c11135
        !          5803: <        PPM  ACS22            ERROR
        !          5804: 
        !          5805: 
        !          5806: 
        !          5807: 
        !          5808: 
        !          5809: 
        !          5810: 
        !          5811: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 89
        !          5812: 
        !          5813: 
        !          5814: <        PPM  ACS23            ERROR
        !          5815: ---
        !          5816: >        PPM  ACS22            ERROR RETURN
        !          5817: 12328c11187
        !          5818: <        MTI  KVABE(XR)        ELSE LOAD VALUE AS INTEGER
        !          5819: ---
        !          5820: >        MTI  KVANC(XR)        ELSE LOAD VALUE AS INTEGER
        !          5821: 12338a11198
        !          5822: >        WTB  XR               CONVERT TO OFFSET IN BAUS
        !          5823: 12347c11207
        !          5824: <        BSW  XR,5             SWITCH ON KEYWORD NUMBER
        !          5825: ---
        !          5826: >        BSW  XR,6             SWITCH ON KEYWORD NUMBER
        !          5827: 12349a11210
        !          5828: >        IFF  K$$CD,ACS23      CODE
        !          5829: 12385a11247
        !          5830: >        PPM  EROSI            ERROR RETURN
        !          5831: 12388c11250
        !          5832: < *      ERROR RETURNS
        !          5833: ---
        !          5834: > *      ERROR RETURN
        !          5835: 12391c11253
        !          5836: <        ERB  202,INPUT FROM FILE CAUSED NON-RECOVERABLE ERROR
        !          5837: ---
        !          5838: >        BRN  EROSI            GENERATE ERROR MESSAGE
        !          5839: 12393,12394c11255,11258
        !          5840: < ACS23  MOV  XR,DNAMP         POP UNUSED SCBLK
        !          5841: <        ERB  203,INPUT FILE RECORD HAS INCORRECT FORMAT
        !          5842: ---
        !          5843: > *      ACCESS CODE KEYWORD
        !          5844: > *
        !          5845: > ACS23  LDI  KVCOD            GET CODE VALUE
        !          5846: >        BRN  ACS13            EXIT
        !          5847: 12480c11344
        !          5848: < *      (WA)                  LENGTH REQUIRED IN BYTES
        !          5849: ---
        !          5850: > *      (WA)                  LENGTH REQUIRED IN BAUS
        !          5851: 12514c11378
        !          5852: <        WTB  XR               CONVERT TO BAUS (SGD05)
        !          5853: ---
        !          5854: >        WTB  XR               CONVERT TO BAUS
        !          5855: 12520c11384
        !          5856: <        ERB  204,MEMORY OVERFLOW
        !          5857: ---
        !          5858: >        ERB  200,MEMORY OVERFLOW
        !          5859: 12528c11392
        !          5860: <        BTW  WB               CONVERT BYTES TO WORDS
        !          5861: ---
        !          5862: >        BTW  WB               CONVERT BAUS TO WORDS
        !          5863: 12539c11403
        !          5864: <        WTB  XR               CONVERT TO BAUS (SGD05)
        !          5865: ---
        !          5866: >        WTB  XR               CONVERT TO BAUS
        !          5867: 12561a11426,11427
        !          5868: > *      (WA)                  0 (INITIAL OFFSET TO BFBLK CHARS)
        !          5869: > *      (WB)                  0 (INITIAL BCLEN)
        !          5870: 
        !          5871: 
        !          5872: 
        !          5873: 
        !          5874: 
        !          5875: 
        !          5876: 
        !          5877: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 90
        !          5878: 
        !          5879: 
        !          5880: 12563d11428
        !          5881: < *      (WA,WB)               DESTROYED
        !          5882: 12580c11445,11446
        !          5883: <        ZER  BFCHR(XL)        CLEAR FIRST WORD (NULL PAD)
        !          5884: ---
        !          5885: >        ZER  WB               CLEAR FOR RETURN
        !          5886: >        MOV  WB,BFCHR(XL)     CLEAR FIRST WORD (NULL PAD)
        !          5887: 12581a11448
        !          5888: >        ZER  WA               CLEAR FOR RETURN
        !          5889: 12586c11453
        !          5890: < ALB01  ERB  274,REQUESTED BUFFER ALLOCATION EXCEEDS MXLEN
        !          5891: ---
        !          5892: > ALB01  ERB  201,REQUESTED BUFFER ALLOCATION EXCEEDS MAXLNGTH
        !          5893: 12611c11478
        !          5894: <        CTB  WA,SCSI$         COMPUTE LENGTH OF SCBLK IN BYTES
        !          5895: ---
        !          5896: >        CTB  WA,SCSI$         COMPUTE LENGTH OF SCBLK IN BAUS
        !          5897: 12634c11501
        !          5898: < ALCS2  ERB  205,STRING LENGTH EXCEEDS VALUE OF MAXLNGTH KEYWORD
        !          5899: ---
        !          5900: > ALCS2  ERB  202,STRING LENGTH EXCEEDS VALUE OF MAXLNGTH KEYWORD
        !          5901: 12640c11507
        !          5902: < *      (WA)                  LENGTH REQUIRED IN BYTES
        !          5903: ---
        !          5904: > *      (WA)                  LENGTH REQUIRED IN BAUS
        !          5905: 12676,12677d11542
        !          5906: < .IF    .CNBF
        !          5907: < .ELSE
        !          5908: 12679,12712d11543
        !          5909: < *      APNDB -- APPEND STRING TO BUFFER
        !          5910: < *
        !          5911: < *      THIS ROUTINE IS USED BY BUFFER HANDLING ROUTINES TO
        !          5912: < *      APPEND DATA TO AN EXISTING BFBLK.
        !          5913: < *
        !          5914: < *      (XR)                  EXISTING BCBLK TO BE APPENDED
        !          5915: < *      (XL)                  CONVERTABLE TO STRING
        !          5916: < *      JSR  APNDB            CALL TO APPEND TO BUFFER
        !          5917: < *      PPM  LOC              THREAD IF (XL) CANT BE CONVERTED
        !          5918: < *      PPM  LOC              IF NOT ENOUGH ROOM
        !          5919: < *      (WA,WB)               DESTROYED
        !          5920: < *
        !          5921: < *      IF MORE CHARACTERS ARE SPECIFIED THAN CAN BE INSERTED,
        !          5922: < *      THEN NO ACTION IS TAKEN AND THE SECOND RETURN IS TAKEN.
        !          5923: < *
        !          5924: < APNDB  PRC  E,2              ENTRY POINT
        !          5925: <        MOV  BCLEN(XR),WA     LOAD OFFSET TO INSERT
        !          5926: <        ZER  WB               REPLACE SECTION IS NULL
        !          5927: <        JSR  INSBF            CALL TO INSERT AT END
        !          5928: <        PPM  APN01            CONVERT ERROR
        !          5929: <        PPM  APN02            NO ROOM
        !          5930: <        EXI                   RETURN TO CALLER
        !          5931: < *
        !          5932: < *      HERE TO TAKE CONVERT FAILURE EXIT
        !          5933: < *
        !          5934: < APN01  EXI  1                RETURN TO CALLER ALTERNATE
        !          5935: < *
        !          5936: 
        !          5937: 
        !          5938: 
        !          5939: 
        !          5940: 
        !          5941: 
        !          5942: 
        !          5943: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 91
        !          5944: 
        !          5945: 
        !          5946: < *      HERE FOR NO FIT EXIT
        !          5947: < *
        !          5948: < APN02  EXI  2                ALTERNATE EXIT TO CALLER
        !          5949: <        ENP                   END PROCEDURE APNDB
        !          5950: <        EJC
        !          5951: < .FI
        !          5952: < *
        !          5953: 12882c11713
        !          5954: < *      HERE FOR FAILURE DURING EXPRESSION EVALUATION
        !          5955: ---
        !          5956: > *      HERE FOR FAILURE RETURNS
        !          5957: 12885d11715
        !          5958: <        EXI  1                TAKE FAILURE EXIT
        !          5959: 12886a11717,11718
        !          5960: > ASG3A  EXI  1                TAKE FAILURE EXIT
        !          5961: > *
        !          5962: 12933c11765
        !          5963: <        MOV  TRVAL(WC),-(XS)  STACK VALUE TO OUTPUT (SGD01)
        !          5964: ---
        !          5965: >        MOV  TRVAL(XR),-(XS)  STACK VALUE TO OUTPUT
        !          5966: 12939c11771
        !          5967: < ASG11  MOV  TRFPT(XL),WA     FCBLK PTR
        !          5968: ---
        !          5969: > ASG11  MOV  TRTRI(XL),WA     TRTIO BLK PTR
        !          5970: 12943a11776,11779
        !          5971: >        MOV  WA,XL            COPY TRTIO BLOCK PTR TO XL
        !          5972: >        MOV  TRTAG(XL),WA     GET IOTAG
        !          5973: >        BZE  WA,ASG3A         FAIL IF ENDFILE DONE
        !          5974: >        MOV  SCLEN(XR),WC     STRING LENGTH
        !          5975: 12945,12946c11781,11782
        !          5976: <        ERR  206,OUTPUT CAUSED FILE OVERFLOW
        !          5977: <        ERR  207,OUTPUT CAUSED NON-RECOVERABLE ERROR
        !          5978: ---
        !          5979: >        PPM  ASG3A            FAIL RETURN
        !          5980: >        PPM  EROSI            ERROR RETURN
        !          5981: 12954c11790
        !          5982: < *      HERE TO PRINT A STRING ON THE PRINTER
        !          5983: ---
        !          5984: > *      HERE TO PRINT A STRING
        !          5985: 12956,12958c11792,11793
        !          5986: < ASG13  JSR  PRTST            PRINT STRING VALUE
        !          5987: <        BEQ  TRTER(XL),=V$TER,ASG20 JUMP IF TERMINAL OUTPUT
        !          5988: <        JSR  PRTNL            END OF LINE
        !          5989: ---
        !          5990: > ASG13  BEQ  TRTER(XL),=V$TER,ASG20 JUMP IF TERMINAL OUTPUT
        !          5991: >        JSR  PRTSF            PRINT STRING AND FLUSH BUFFER
        !          5992: 12970c11805
        !          5993: <        ERR  208,KEYWORD VALUE ASSIGNED IS NOT INTEGER
        !          5994: ---
        !          5995: >        ERR  203,KEYWORD VALUE ASSIGNED IS NOT INTEGER
        !          5996: 12972a11808
        !          5997: >        BEQ  XL,=K$COD,ASG24  JUMP IF SPECIAL CASE OF CODE
        !          5998: 12981c11817
        !          5999: <        ERB  209,KEYWORD IN ASSIGNMENT IS PROTECTED
        !          6000: ---
        !          6001: >        ERB  204,KEYWORD IN ASSIGNMENT IS PROTECTED
        !          6002: 
        !          6003: 
        !          6004: 
        !          6005: 
        !          6006: 
        !          6007: 
        !          6008: 
        !          6009: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 92
        !          6010: 
        !          6011: 
        !          6012: 12985c11821
        !          6013: < ASG15  MOV  WA,KVABE(XL)     STORE NEW VALUE
        !          6014: ---
        !          6015: > ASG15  MOV  WA,KVANC(XL)     STORE NEW VALUE
        !          6016: 12998a11835
        !          6017: >        EJC
        !          6018: 12999a11837,11838
        !          6019: > *      ASIGN (CONTINUED)
        !          6020: > *
        !          6021: 13006c11845
        !          6022: < ASG18  ERB  210,KEYWORD VALUE ASSIGNED IS NEGATIVE OR TOO LARGE
        !          6023: ---
        !          6024: > ASG18  ERB  205,KEYWORD VALUE ASSIGNED IS NEGATIVE OR TOO LARGE
        !          6025: 13012c11851
        !          6026: <        ERR  211,VALUE ASSIGNED TO KEYWORD ERRTEXT NOT A STRING
        !          6027: ---
        !          6028: >        ERR  206,VALUE ASSIGNED TO KEYWORD ERRTEXT NOT A STRING
        !          6029: 13018c11857,11858
        !          6030: < ASG20  JSR  PRTTR            PRINT
        !          6031: ---
        !          6032: > ASG20  JSR  PTTST            PRINT STRING TO TERMINAL
        !          6033: >        JSR  PTTFH            FLUSH TERMINAL BUFFER
        !          6034: 13020d11859
        !          6035: < *
        !          6036: 13029c11868
        !          6037: <        ERB  268,INCONSISTENT VALUE ASSIGNED TO KEYWORD PROFILE
        !          6038: ---
        !          6039: >        ERB  207,INCONSISTENT VALUE ASSIGNED TO KEYWORD PROFILE
        !          6040: 13031c11870
        !          6041: < ASG22  MOV  WA,PFDMP          NOTE VALUE ON FIRST ASSIGNMENT
        !          6042: ---
        !          6043: > ASG22  MOV  WA,PFDMP         NOTE VALUE ON FIRST ASSIGNMENT
        !          6044: 13035a11875,11879
        !          6045: > *
        !          6046: > *      HERE FOR KEYWORD ASSIGNMENT TO CODE
        !          6047: > *
        !          6048: > ASG24  STI  KVCOD            STORE VALUE
        !          6049: >        EXI                   RETURN TO CALLER
        !          6050: 13093c11937
        !          6051: < *      (WA)                  LENGTH OF BLOCK IN BYTES
        !          6052: ---
        !          6053: > *      (WA)                  LENGTH OF BLOCK IN BAUS
        !          6054: 13107,13111d11950
        !          6055: < .IF    .CNBF
        !          6056: < .ELSE
        !          6057: <        IFF  BL$BC,BLN04      BCBLK
        !          6058: <        IFF  BL$BF,BLN11      BFBLK
        !          6059: < .FI
        !          6060: 13112a11952
        !          6061: >        IFF  BL$CO,BLN12      COBLK
        !          6062: 13131a11972,11976
        !          6063: > .IF    .CNBF
        !          6064: > .ELSE
        !          6065: >        IFF  BL$BC,BLN04      BCBLK
        !          6066: >        IFF  BL$BF,BLN11      BFBLK
        !          6067: > .FI
        !          6068: 
        !          6069: 
        !          6070: 
        !          6071: 
        !          6072: 
        !          6073: 
        !          6074: 
        !          6075: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 93
        !          6076: 
        !          6077: 
        !          6078: 13162c12007
        !          6079: < *      HERE FOR FOUR WORD BLOCKS (P2,TE,BC)
        !          6080: ---
        !          6081: > *      HERE FOR FOUR WORD BLOCKS (P2,TE)
        !          6082: 13202c12047
        !          6083: <        CTB  WA,SCSI$         CALCULATE LENGTH IN BYTES
        !          6084: ---
        !          6085: >        CTB  WA,SCSI$         CALCULATE LENGTH IN BAUS
        !          6086: 13209,13210c12054,12055
        !          6087: < BLN11  MOV  BFALC(XR),WA     GET ALLOCATION IN BYTES
        !          6088: <        CTB  WA,BFSI$         CALCULATE LENGTH IN BYTES
        !          6089: ---
        !          6090: > BLN11  MOV  BFALC(XR),WA     GET ALLOCATION IN BAUS
        !          6091: >        CTB  WA,BFSI$         CALCULATE LENGTH IN BAUS
        !          6092: 13212a12058,12062
        !          6093: > *
        !          6094: > *      HERE FOR COBLK
        !          6095: > *
        !          6096: > BLN12  MOV  *COSI$,WA        GET SIZE IN BAUS
        !          6097: >        EXI                   RETURN TO BLKLN CALLER
        !          6098: 13216c12066
        !          6099: < *      COPYB -- COPY A BLOCK
        !          6100: ---
        !          6101: > *      CBLCK -- COPY A BLOCK
        !          6102: 13219c12069
        !          6103: < *      JSR  COPYB            CALL TO COPY BLOCK
        !          6104: ---
        !          6105: > *      JSR  CBLCK            CALL TO COPY BLOCK
        !          6106: 13226c12076
        !          6107: < COPYB  PRC  N,1              ENTRY POINT
        !          6108: ---
        !          6109: > CBLCK  PRC  N,1              ENTRY POINT
        !          6110: 13228c12078
        !          6111: <        BEQ  XR,=NULLS,COP10  RETURN ARGUMENT IF IT IS NULL
        !          6112: ---
        !          6113: >        BEQ  XR,=NULLS,CBL10  RETURN ARGUMENT IF IT IS NULL
        !          6114: 13237,13239c12087,12089
        !          6115: <        BEQ  WB,=B$TBT,COP05  JUMP IF TABLE
        !          6116: <        BEQ  WB,=B$VCT,COP01  JUMP IF VECTOR
        !          6117: <        BEQ  WB,=B$PDT,COP01  JUMP IF PROGRAM DEFINED
        !          6118: ---
        !          6119: >        BEQ  WB,=B$TBT,CBL05  JUMP IF TABLE
        !          6120: >        BEQ  WB,=B$VCT,CBL01  JUMP IF VECTOR
        !          6121: >        BEQ  WB,=B$PDT,CBL01  JUMP IF PROGRAM DEFINED
        !          6122: 13242c12092
        !          6123: <        BEQ  WB,=B$BCT,COP11  JUMP IF BUFFER
        !          6124: ---
        !          6125: >        BEQ  WB,=B$BCT,CBL11  JUMP IF BUFFER
        !          6126: 13244c12094
        !          6127: <        BNE  WB,=B$ART,COP10  RETURN COPY IF NOT ARRAY
        !          6128: ---
        !          6129: >        BNE  WB,=B$ART,CBL10  RETURN COPY IF NOT ARRAY
        !          6130: 13249c12099
        !          6131: <        BRN  COP02            JUMP TO MERGE
        !          6132: ---
        !          6133: >        BRN  CBL02            JUMP TO MERGE
        !          6134: 
        !          6135: 
        !          6136: 
        !          6137: 
        !          6138: 
        !          6139: 
        !          6140: 
        !          6141: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 94
        !          6142: 
        !          6143: 
        !          6144: 13253c12103
        !          6145: < COP01  ADD  *PDFLD,XR        POINT TO PDFLD = VCVLS
        !          6146: ---
        !          6147: > CBL01  ADD  *PDFLD,XR        POINT TO PDFLD = VCVLS
        !          6148: 13258c12108
        !          6149: < COP02  MOV  (XR),XL          LOAD NEXT POINTER
        !          6150: ---
        !          6151: > CBL02  MOV  (XR),XL          LOAD NEXT POINTER
        !          6152: 13262c12112
        !          6153: < COP03  BNE  (XL),=B$TRT,COP04 JUMP IF NOT TRAPPED
        !          6154: ---
        !          6155: > CBL03  BNE  (XL),=B$TRT,CBL04 JUMP IF NOT TRAPPED
        !          6156: 13264c12114
        !          6157: <        BRN  COP03            AND LOOP BACK
        !          6158: ---
        !          6159: >        BRN  CBL03            AND LOOP BACK
        !          6160: 13267c12117
        !          6161: < *      COPYB (CONTINUED)
        !          6162: ---
        !          6163: > *      CBLCK (CONTINUED)
        !          6164: 13271,13273c12121,12123
        !          6165: < COP04  MOV  XL,(XR)+         STORE REAL VALUE, BUMP POINTER
        !          6166: <        BNE  XR,DNAMP,COP02   LOOP BACK IF MORE TO GO
        !          6167: <        BRN  COP09            ELSE JUMP TO EXIT
        !          6168: ---
        !          6169: > CBL04  MOV  XL,(XR)+         STORE REAL VALUE, BUMP POINTER
        !          6170: >        BNE  XR,DNAMP,CBL02   LOOP BACK IF MORE TO GO
        !          6171: >        BRN  CBL09            ELSE JUMP TO EXIT
        !          6172: 13277c12127
        !          6173: < COP05  ZER  IDVAL(XR)        ZERO ID TO STOP DUMP BLOWING UP
        !          6174: ---
        !          6175: > CBL05  ZER  IDVAL(XR)        ZERO ID TO STOP DUMP BLOWING UP
        !          6176: 13283,13284c12133,12134
        !          6177: < COP06  MOV  (XS),XR          LOAD TABLE POINTER
        !          6178: <        BEQ  WC,TBLEN(XR),COP09 JUMP TO EXIT IF ALL DONE
        !          6179: ---
        !          6180: > CBL06  MOV  (XS),XR          LOAD TABLE POINTER
        !          6181: >        BEQ  WC,TBLEN(XR),CBL09 JUMP TO EXIT IF ALL DONE
        !          6182: 13291c12141
        !          6183: < COP07  MOV  TENXT(XR),XL     LOAD POINTER TO NEXT TEBLK
        !          6184: ---
        !          6185: > CBL07  MOV  TENXT(XR),XL     LOAD POINTER TO NEXT TEBLK
        !          6186: 13293c12143
        !          6187: <        BEQ  (XL),=B$TBT,COP06 BACK FOR NEXT BUCKET IF CHAIN END
        !          6188: ---
        !          6189: >        BEQ  (XL),=B$TBT,CBL06 BACK FOR NEXT BUCKET IF CHAIN END
        !          6190: 13306,13307c12156,12157
        !          6191: < COP08  MOV  TEVAL(XL),XL     LOAD VALUE
        !          6192: <        BEQ  (XL),=B$TRT,COP08 LOOP BACK IF TRAPPED
        !          6193: ---
        !          6194: > CBL08  MOV  TEVAL(XL),XL     LOAD VALUE
        !          6195: >        BEQ  (XL),=B$TRT,CBL08 LOOP BACK IF TRAPPED
        !          6196: 13309c12159
        !          6197: <        BRN  COP07            BACK FOR NEXT TEBLK
        !          6198: ---
        !          6199: >        BRN  CBL07            BACK FOR NEXT TEBLK
        !          6200: 
        !          6201: 
        !          6202: 
        !          6203: 
        !          6204: 
        !          6205: 
        !          6206: 
        !          6207: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 95
        !          6208: 
        !          6209: 
        !          6210: 13313c12163
        !          6211: < COP09  MOV  (XS)+,XR         LOAD POINTER TO BLOCK
        !          6212: ---
        !          6213: > CBL09  MOV  (XS)+,XR         LOAD POINTER TO BLOCK
        !          6214: 13318,13319c12168
        !          6215: < COP10  EXI  1                RETURN
        !          6216: <        EJC
        !          6217: ---
        !          6218: > CBL10  EXI  1                RETURN
        !          6219: 13321a12171
        !          6220: >        EJC
        !          6221: 13325c12175
        !          6222: < COP11  MOV  BCBUF(XR),XL     GET BFBLK PTR
        !          6223: ---
        !          6224: > CBL11  MOV  BCBUF(XR),XL     GET BFBLK PTR
        !          6225: 13335c12185
        !          6226: <        BRN  COP09            BRANCH TO EXIT
        !          6227: ---
        !          6228: >        BRN  CBL09            BRANCH TO EXIT
        !          6229: 13337c12187,12188
        !          6230: <        ENP                   END PROCEDURE COPYB
        !          6231: ---
        !          6232: >        ENP                   END PROCEDURE CBLCK
        !          6233: >        EJC
        !          6234: 13455c12306
        !          6235: < CGN01  ERB  212,SYNTAX ERROR. VALUE USED WHERE NAME IS REQUIRED
        !          6236: ---
        !          6237: > CGN01  ERB  208,SYNTAX ERROR. VALUE USED WHERE NAME IS REQUIRED
        !          6238: 13586,13592d12436
        !          6239: <        BNZ  VRLEN(XR),CGVL0  JUMP IF NOT SYSTEM VARIABLE
        !          6240: <        MOV  XR,-(XS)         STACK XR
        !          6241: <        MOV  VRSVP(XR),XR     POINT TO SVBLK
        !          6242: <        MOV  SVBIT(XR),WA     GET SVBLK PROPERTY BITS
        !          6243: <        MOV  (XS)+,XR         RECOVER XR
        !          6244: <        ANB  BTCKW,WA         CHECK IF CONSTANT KEYWORD
        !          6245: <        NZB  WA,CGV00         JUMP IF CONSTANT KEYWORD
        !          6246: 13616,13617c12460
        !          6247: < *      PREPARE TO GENERATE CODE FOR CMBLK. WC IS SET TO THE
        !          6248: < *      VALUE OF CSWNO (ZERO IF -OPTIMISE, 1 IF -NOOPT) TO
        !          6249: ---
        !          6250: > *      PREPARE TO GENERATE CODE FOR CMBLK. WC IS CLEARED TO
        !          6251: 13624c12467
        !          6252: <        MOV  CSWNO,WC         RESET CONSTANT FLAG
        !          6253: ---
        !          6254: >        ZER  WC               CLEAR OPTIMISE FLAG
        !          6255: 13644d12486
        !          6256: <        IFF  C$CNP,CGV24      CONCATENATION (NOT PATTERN MATCH)
        !          6257: 13645a12488
        !          6258: >        IFF  C$CNP,CGV24      CONCAT. NOT PATTERN
        !          6259: 13688,13689c12531,12532
        !          6260: < CGV07  SUB  *CMVLS,WB        GET NUMBER OF ARG PTRS (BYTES)
        !          6261: <        BTW  WB               CONVERT BYTES TO WORDS
        !          6262: ---
        !          6263: > CGV07  SUB  *CMVLS,WB        GET NUMBER OF ARG PTRS (BAUS)
        !          6264: >        BTW  WB               CONVERT BAUS TO WORDS
        !          6265: 13968c12811
        !          6266: 
        !          6267: 
        !          6268: 
        !          6269: 
        !          6270: 
        !          6271: 
        !          6272: 
        !          6273: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 96
        !          6274: 
        !          6275: 
        !          6276: <        WTB  XR               CONVERT WORD OFFSET TO BYTES
        !          6277: ---
        !          6278: >        WTB  XR               CONVERT WORD OFFSET TO BAUS
        !          6279: 14105c12948
        !          6280: < CDWD5  ERB  213,SYNTAX ERROR. STATEMENT IS TOO COMPLICATED.
        !          6281: ---
        !          6282: > CDWD5  ERB  209,SYNTAX ERROR. STATEMENT IS TOO COMPLICATED.
        !          6283: 14258,14260c13101,13107
        !          6284: <        BNE  STAGE,=STGIC,CMP02 SKIP UNLESS INITIAL COMPILE
        !          6285: <        JSR  READR            READ NEXT INPUT IMAGE
        !          6286: <        BZE  XR,CMP09         JUMP IF NO INPUT AVAILABLE
        !          6287: ---
        !          6288: >        BEQ  STAGE,=STGIC,CMPC1 READ IF INITIAL COMPILE
        !          6289: >        BZE  R$COP,CMP02      ELSE SKIP IF NO -COPY IN FORCE
        !          6290: > *
        !          6291: > *      HERE TO ATTEMPT READ (STGIC OR -COPY)
        !          6292: > *
        !          6293: > CMPC1  JSR  READR            READ NEXT INPUT IMAGE
        !          6294: >        BZE  XR,CMPC2         JUMP IF NO INPUT AVAILABLE
        !          6295: 14265a13113,13119
        !          6296: > *      HERE IF READR HAD NOTHING TO RETURN.  IF NOT DURING
        !          6297: > *      INITIAL COMPILE, THEN MUST BE AT OUTER LEVEL OF -COPY
        !          6298: > *      IN CODE().  R$CIM HAS BEEN RESTORED TO CODE STRING
        !          6299: > *      BY COPND SO WE CONTINUE FROM THE -COPY STMT.
        !          6300: > *
        !          6301: > CMPC2  BEQ  STAGE,=STGIC,CMP09 JUMP IF INITIAL COMPILE
        !          6302: > *
        !          6303: 14296c13150
        !          6304: <        BEQ  WC,=CH$MN,CMP32  JUMP IF CONTROL CARD
        !          6305: ---
        !          6306: >        BEQ  WC,=CH$MN,CMP33  JUMP IF CONTROL CARD
        !          6307: 14324c13178
        !          6308: <        ERB  214,BAD LABEL OR MISPLACED CONTINUATION LINE
        !          6309: ---
        !          6310: >        ERB  210,BAD LABEL OR MISPLACED CONTINUATION LINE
        !          6311: 14363c13217
        !          6312: <        BEQ  XL,=T$SMC,CMP10  JUMP IF END OF IMAGE
        !          6313: ---
        !          6314: >        BEQ  XL,=T$SMC,CMPEE  JUMP IF END OF IMAGE
        !          6315: 14371c13225
        !          6316: <        BEQ  XL,=T$SMC,CMP10  JUMP IF OK (END OF IMAGE)
        !          6317: ---
        !          6318: >        BEQ  XL,=T$SMC,CMPEE  JUMP IF OK (END OF IMAGE)
        !          6319: 14375c13229
        !          6320: < CMP08  ERB  215,SYNTAX ERROR. UNDEFINED OR ERRONEOUS ENTRY LABEL
        !          6321: ---
        !          6322: > CMP08  ERB  211,SYNTAX ERROR. UNDEFINED OR ERRONEOUS ENTRY LABEL
        !          6323: 14380,14381c13234,13235
        !          6324: <        BEQ  STAGE,=STGXE,CMP10 JUMP IF CODE CALL (OK)
        !          6325: <        ERB  216,SYNTAX ERROR. MISSING END LINE
        !          6326: ---
        !          6327: >        BEQ  STAGE,=STGXE,CMPEE JUMP IF CODE CALL (OK)
        !          6328: >        ERB  212,SYNTAX ERROR. MISSING END LINE
        !          6329: 14385c13239
        !          6330: < CMP10  MOV  =OSTP$,WA        SET STOP CALL POINTER
        !          6331: ---
        !          6332: 
        !          6333: 
        !          6334: 
        !          6335: 
        !          6336: 
        !          6337: 
        !          6338: 
        !          6339: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 97
        !          6340: 
        !          6341: 
        !          6342: > CMPEE  MOV  =OSTP$,WA        SET STOP CALL POINTER
        !          6343: 14397c13251
        !          6344: <        ERB  217,SYNTAX ERROR. DUPLICATE LABEL
        !          6345: ---
        !          6346: >        ERB  213,SYNTAX ERROR. DUPLICATE LABEL
        !          6347: 14414c13268
        !          6348: <        BEQ  XL,=T$SMC,CMP31  JUMP IF NO FIELDS LEFT
        !          6349: ---
        !          6350: >        BEQ  XL,=T$SMC,CMP32  JUMP IF NO FIELDS LEFT
        !          6351: 14450c13304
        !          6352: < CMP17  ERB  218,SYNTAX ERROR. DUPLICATED GOTO FIELD
        !          6353: ---
        !          6354: > CMP17  ERB  214,SYNTAX ERROR. DUPLICATED GOTO FIELD
        !          6355: 14599d13452
        !          6356: <        EXI                   AND RETURN TO CMPIL CALLER
        !          6357: 14600a13454,13459
        !          6358: > *      LOOP TO UNNEST ANY OUTSTANDING -COPY LEVELS
        !          6359: > *
        !          6360: > CMP31  JSR  COPND            CALL TO UNNEST -COPY
        !          6361: >        BNZ  R$COP,CMP31      LOOP IF NOT ALL -COPYS CLOSED
        !          6362: >        EXI                   RETURN TO CMPIL CALLER
        !          6363: > *
        !          6364: 14603c13462
        !          6365: < CMP31  MOV  CMFGO(XS),WB     GET FAIL GOTO
        !          6366: ---
        !          6367: > CMP32  MOV  CMFGO(XS),WB     GET FAIL GOTO
        !          6368: 14606c13465
        !          6369: <        ERB  219,SYNTAX ERROR. EMPTY GOTO FIELD
        !          6370: ---
        !          6371: >        ERB  215,SYNTAX ERROR. EMPTY GOTO FIELD
        !          6372: 14610c13469
        !          6373: < CMP32  ICV  WB               POINT PAST CH$MN
        !          6374: ---
        !          6375: > CMP33  ICV  WB               POINT PAST CH$MN
        !          6376: 14634c13493
        !          6377: < CNC01  BGE  SCNPT,SCNIL,CNC09 RETURN IF END OF IMAGE
        !          6378: ---
        !          6379: > CNC01  BGE  SCNPT,SCNIL,CNC10 RETURN IF END OF IMAGE
        !          6380: 14638,14640d13496
        !          6381: < .IF    .CULC
        !          6382: <        FLC  WA               FOLD TO UPPER CASE
        !          6383: < .FI
        !          6384: 14641a13498,13500
        !          6385: > .IF    .CASL
        !          6386: >        BEQ  WA,=CH$$I,CNC07  DITTO (LC)
        !          6387: > .FI
        !          6388: 14649a13509,13511
        !          6389: > .IF    .CASL
        !          6390: >        JSR  SBSCC            CONVERT CASE BEFORE COMPARISON
        !          6391: > .ELSE
        !          6392: 14651,14653d13512
        !          6393: < .IF    .CULC
        !          6394: <        MOV  SCLEN(XR),WA     RELOAD LENGTH
        !          6395: <        JSR  FLSTG            FOLD TO UPPER CASE
        !          6396: 14658c13517
        !          6397: <        LCT  WC,=CC$NC        NUMBER OF STANDARD NAMES
        !          6398: 
        !          6399: 
        !          6400: 
        !          6401: 
        !          6402: 
        !          6403: 
        !          6404: 
        !          6405: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 98
        !          6406: 
        !          6407: 
        !          6408: ---
        !          6409: >        LCT  WC,=CC$CT        NUMBER OF STANDARD NAMES
        !          6410: 14682,14684c13541,13543
        !          6411: <        BSW  XL,CC$NC         SWITCH
        !          6412: < .IF    .CULC
        !          6413: <        IFF  CC$CA,CNC37      -CASE
        !          6414: ---
        !          6415: >        BSW  XL,CC$CT         SWITCH
        !          6416: > .IF    .CASL
        !          6417: >        IFF  CC$CI,CNC11      -CASEIG
        !          6418: 14686,14687c13545
        !          6419: <        IFF  CC$DO,CNC10      -DOUBLE
        !          6420: <        IFF  CC$DU,CNC11      -DUMP
        !          6421: ---
        !          6422: >        IFF  CC$CO,CNC23      -COPY
        !          6423: 14689,14705c13547,13556
        !          6424: <        IFF  CC$ER,CNC13      -ERRORS
        !          6425: <        IFF  CC$EX,CNC14      -EXECUTE
        !          6426: <        IFF  CC$FA,CNC15      -FAIL
        !          6427: <        IFF  CC$LI,CNC16      -LIST
        !          6428: <        IFF  CC$NR,CNC17      -NOERRORS
        !          6429: <        IFF  CC$NX,CNC18      -NOEXECUTE
        !          6430: <        IFF  CC$NF,CNC19      -NOFAIL
        !          6431: <        IFF  CC$NL,CNC20      -NOLIST
        !          6432: <        IFF  CC$NO,CNC21      -NOOPT
        !          6433: <        IFF  CC$NP,CNC22      -NOPRINT
        !          6434: <        IFF  CC$OP,CNC24      -OPTIMISE
        !          6435: <        IFF  CC$PR,CNC25      -PRINT
        !          6436: <        IFF  CC$SI,CNC27      -SINGLE
        !          6437: <        IFF  CC$SP,CNC28      -SPACE
        !          6438: <        IFF  CC$ST,CNC31      -STITLE
        !          6439: <        IFF  CC$TI,CNC32      -TITLE
        !          6440: <        IFF  CC$TR,CNC36      -TRACE
        !          6441: ---
        !          6442: >        IFF  CC$FA,CNC13      -FAIL
        !          6443: >        IFF  CC$LI,CNC14      -LIST
        !          6444: > .IF    .CASL
        !          6445: >        IFF  CC$NC,CNC15      -NOCASEIG
        !          6446: > .FI
        !          6447: >        IFF  CC$NF,CNC16      -NOFAIL
        !          6448: >        IFF  CC$NL,CNC17      -NOLIST
        !          6449: >        IFF  CC$ST,CNC18      -STITLE
        !          6450: >        IFF  CC$TI,CNC19      -TITLE
        !          6451: >        IFF  CC$TR,CNC22      -TRACE
        !          6452: 14717c13568
        !          6453: < CNC06  ERB  247,INVALID CONTROL CARD
        !          6454: ---
        !          6455: > CNC06  ERB  216,INVALID CONTROL CARD
        !          6456: 14722,14723c13573,13574
        !          6457: < .IF    .CULC
        !          6458: <        FLC  WA               FOLD TO UPPER CASE
        !          6459: ---
        !          6460: > .IF    .CASL
        !          6461: >        BEQ  WA,=CH$$N,CNC08  SKIP IF LC N
        !          6462: 14725a13577,13579
        !          6463: > .IF    .CASL
        !          6464: 
        !          6465: 
        !          6466: 
        !          6467: 
        !          6468: 
        !          6469: 
        !          6470: 
        !          6471: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 99
        !          6472: 
        !          6473: 
        !          6474: > CNC08  ADD  =NUM02,SCNPT     BUMP OFFSET PAST -IN
        !          6475: > .ELSE
        !          6476: 14726a13581
        !          6477: > .FI
        !          6478: 14739c13594
        !          6479: < CNC08  MOV  SCNPT,WA         PRESERVE IN CASE XEQ TIME COMPILE
        !          6480: ---
        !          6481: > CNC09  MOV  SCNPT,WA         PRESERVE IN CASE XEQ TIME COMPILE
        !          6482: 14746c13601,13602
        !          6483: < CNC09  EXI                   RETURN
        !          6484: ---
        !          6485: > CNC10  EXI                   RETURN
        !          6486: > .IF    .CASL
        !          6487: 14748c13604
        !          6488: < *      -DOUBLE
        !          6489: ---
        !          6490: > *      -CASEIG
        !          6491: 14750,14751c13606,13608
        !          6492: < CNC10  MNZ  CSWDB            SET SWITCH
        !          6493: <        BRN  CNC08            MERGE
        !          6494: ---
        !          6495: > CNC11  MNZ  CSWCI            SET SWITCH
        !          6496: >        BRN  CNC09            MERGE
        !          6497: > .FI
        !          6498: 14753,14759d13609
        !          6499: < *      -DUMP
        !          6500: < *      THIS IS USED FOR SYSTEM DEBUGGING . IT HAS THE EFFECT OF
        !          6501: < *      PRODUCING A CORE DUMP AT COMPILATION TIME
        !          6502: < *
        !          6503: < CNC11  JSR  SYSDM            CALL DUMPER
        !          6504: <        BRN  CNC09            FINISHED
        !          6505: < *
        !          6506: 14762c13612
        !          6507: < CNC12  BZE  CSWLS,CNC09      RETURN IF -NOLIST
        !          6508: ---
        !          6509: > CNC12  BZE  CSWLS,CNC10      RETURN IF -NOLIST
        !          6510: 14765c13615
        !          6511: <        BRN  CNC09            FINISHED
        !          6512: ---
        !          6513: >        BRN  CNC10            FINISHED
        !          6514: 14767,14776d13616
        !          6515: < *      -ERRORS
        !          6516: < *
        !          6517: < CNC13  ZER  CSWER            CLEAR SWITCH
        !          6518: <        BRN  CNC08            MERGE
        !          6519: < *
        !          6520: < *      -EXECUTE
        !          6521: < *
        !          6522: < CNC14  ZER  CSWEX            CLEAR SWITCH
        !          6523: <        BRN  CNC08            MERGE
        !          6524: < *
        !          6525: 14779,14780c13619,13620
        !          6526: < CNC15  MNZ  CSWFL            SET SWITCH
        !          6527: <        BRN  CNC08            MERGE
        !          6528: ---
        !          6529: > CNC13  MNZ  CSWFL            SET SWITCH
        !          6530: 
        !          6531: 
        !          6532: 
        !          6533: 
        !          6534: 
        !          6535: 
        !          6536: 
        !          6537: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 100
        !          6538: 
        !          6539: 
        !          6540: >        BRN  CNC09            MERGE
        !          6541: 14784,14785c13624,13626
        !          6542: < CNC16  MNZ  CSWLS            SET SWITCH
        !          6543: <        BEQ  STAGE,=STGIC,CNC08 DONE IF COMPILE TIME
        !          6544: ---
        !          6545: > CNC14  MNZ  CSWLS            SET SWITCH
        !          6546: >        BRN  CNC09            MERGE
        !          6547: > .IF    .CASL
        !          6548: 14787c13628
        !          6549: < *      LIST CODE LINE IF EXECUTE TIME COMPILE
        !          6550: ---
        !          6551: > *      -NOCASEIG
        !          6552: 14789,14792c13630,13632
        !          6553: <        ZER  LSTPF            PERMIT LISTING
        !          6554: <        JSR  LISTR            LIST LINE
        !          6555: <        BRN  CNC08            MERGE
        !          6556: <        EJC
        !          6557: ---
        !          6558: > CNC15  ZER  CSWCI            CLEAR SWITCH
        !          6559: >        BRN  CNC09            MERGE
        !          6560: > .FI
        !          6561: 14794,14805d13633
        !          6562: < *      CNCRD (CONTINUED)
        !          6563: < *
        !          6564: < *      -NOERRORS
        !          6565: < *
        !          6566: < CNC17  MNZ  CSWER            SET SWITCH
        !          6567: <        BRN  CNC08            MERGE
        !          6568: < *
        !          6569: < *      -NOEXECUTE
        !          6570: < *
        !          6571: < CNC18  MNZ  CSWEX            SET SWITCH
        !          6572: <        BRN  CNC08            MERGE
        !          6573: < *
        !          6574: 14808,14834c13636,13637
        !          6575: < CNC19  ZER  CSWFL            CLEAR SWITCH
        !          6576: <        BRN  CNC08            MERGE
        !          6577: < *
        !          6578: < *      -NOLIST
        !          6579: < *
        !          6580: < CNC20  ZER  CSWLS            CLEAR SWITCH
        !          6581: <        BRN  CNC08            MERGE
        !          6582: < *
        !          6583: < *      -NOOPTIMISE
        !          6584: < *
        !          6585: < CNC21  MNZ  CSWNO            SET SWITCH
        !          6586: <        BRN  CNC08            MERGE
        !          6587: < *
        !          6588: < *      -NOPRINT
        !          6589: < *
        !          6590: < CNC22  ZER  CSWPR            CLEAR SWITCH
        !          6591: <        BRN  CNC08            MERGE
        !          6592: < *
        !          6593: < *      -OPTIMISE
        !          6594: < *
        !          6595: < CNC24  ZER  CSWNO            CLEAR SWITCH
        !          6596: 
        !          6597: 
        !          6598: 
        !          6599: 
        !          6600: 
        !          6601: 
        !          6602: 
        !          6603: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 101
        !          6604: 
        !          6605: 
        !          6606: <        BRN  CNC08            MERGE
        !          6607: < *
        !          6608: < *      -PRINT
        !          6609: < *
        !          6610: < CNC25  MNZ  CSWPR            SET SWITCH
        !          6611: <        BRN  CNC08            MERGE
        !          6612: ---
        !          6613: > CNC16  ZER  CSWFL            CLEAR SWITCH
        !          6614: >        BRN  CNC09            MERGE
        !          6615: 14839c13642
        !          6616: < *      -SINGLE
        !          6617: ---
        !          6618: > *      -NOLIST
        !          6619: 14841,14863c13644
        !          6620: < CNC27  ZER  CSWDB            CLEAR SWITCH
        !          6621: <        BRN  CNC08            MERGE
        !          6622: < *
        !          6623: < *      -SPACE
        !          6624: < *
        !          6625: < CNC28  BZE  CSWLS,CNC09      RETURN IF -NOLIST
        !          6626: <        JSR  SCANE            SCAN INTEGER AFTER -SPACE
        !          6627: <        MOV  =NUM01,WC        1 SPACE IN CASE
        !          6628: <        BEQ  XR,=T$SMC,CNC29  JUMP IF NO INTEGER
        !          6629: <        MOV  XR,-(XS)         STACK IT
        !          6630: <        JSR  GTSMI            CHECK INTEGER
        !          6631: <        PPM  CNC06            FAIL IF NOT INTEGER
        !          6632: <        PPM  CNC06            FAIL IF NEGATIVE OR LARGE
        !          6633: <        BNZ  WC,CNC29         JUMP IF NON ZERO
        !          6634: <        MOV  =NUM01,WC        ELSE 1 SPACE
        !          6635: < *
        !          6636: < *      MERGE WITH COUNT OF LINES TO SKIP
        !          6637: < *
        !          6638: < CNC29  ADD  WC,LSTLC         BUMP LINE COUNT
        !          6639: <        LCT  WC,WC            CONVERT TO LOOP COUNTER
        !          6640: <        BLT  LSTLC,LSTNP,CNC30 JUMP IF FITS ON PAGE
        !          6641: <        JSR  PRTPS            EJECT
        !          6642: <        JSR  LISTT            LIST TITLE
        !          6643: ---
        !          6644: > CNC17  ZER  CSWLS            CLEAR SWITCH
        !          6645: 14866,14874d13646
        !          6646: < *      SKIP LINES
        !          6647: < *
        !          6648: < CNC30  JSR  PRTNL            PRINT A BLANK
        !          6649: <        BCT  WC,CNC30         LOOP
        !          6650: <        BRN  CNC09            MERGE
        !          6651: <        EJC
        !          6652: < *
        !          6653: < *      CNCRD (CONTINUED)
        !          6654: < *
        !          6655: 14877,14878c13649,13650
        !          6656: < CNC31  MOV  =R$STL,CNR$T     PTR TO R$STL
        !          6657: <        BRN  CNC33            MERGE
        !          6658: ---
        !          6659: > CNC18  MOV  =R$STL,CNR$T     PTR TO R$STL
        !          6660: >        BRN  CNC20            MERGE
        !          6661: 14882c13654
        !          6662: 
        !          6663: 
        !          6664: 
        !          6665: 
        !          6666: 
        !          6667: 
        !          6668: 
        !          6669: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 102
        !          6670: 
        !          6671: 
        !          6672: < CNC32  MOV  =NULLS,R$STL     CLEAR SUBTITLE
        !          6673: ---
        !          6674: > CNC19  MOV  =NULLS,R$STL     CLEAR SUBTITLE
        !          6675: 14887c13659
        !          6676: < CNC33  MOV  =NULLS,XR        NULL IN CASE NEEDED
        !          6677: ---
        !          6678: > CNC20  MOV  =NULLS,XR        NULL IN CASE NEEDED
        !          6679: 14891c13663
        !          6680: <        BLO  WA,WB,CNC34      JUMP IF NO CHARS LEFT
        !          6681: ---
        !          6682: >        BLO  WA,WB,CNC21      JUMP IF NO CHARS LEFT
        !          6683: 14898c13670
        !          6684: < CNC34  MOV  CNR$T,XL         POINT TO STORAGE LOCATION
        !          6685: ---
        !          6686: > CNC21  MOV  CNR$T,XL         POINT TO STORAGE LOCATION
        !          6687: 14900,14908c13672
        !          6688: <        BEQ  XL,=R$STL,CNC09  RETURN IF STITL
        !          6689: <        BNZ  PRECL,CNC09      RETURN IF EXTENDED LISTING
        !          6690: <        BZE  PRICH,CNC09      RETURN IF REGULAR PRINTER
        !          6691: <        MOV  SCLEN(XR),XL     GET LENGTH OF TITLE
        !          6692: <        MOV  XL,WA            COPY IT
        !          6693: <        BZE  XL,CNC35         JUMP IF NULL
        !          6694: <        ADD  =NUM10,XL        INCREMENT
        !          6695: <        BHI  XL,PRLEN,CNC09   USE DEFAULT LSTP0 VAL IF TOO LONG
        !          6696: <        ADD  =NUM04,WA        POINT JUST PAST TITLE
        !          6697: ---
        !          6698: >        BRN  CNC10            RETURN
        !          6699: 14910,14914d13673
        !          6700: < *      STORE OFFSET TO PAGE NN MESSAGE FOR SHORT TITLE
        !          6701: < *
        !          6702: < CNC35  MOV  WA,LSTPO         STORE OFFSET
        !          6703: <        BRN  CNC09            RETURN
        !          6704: < *
        !          6705: 14915a13675
        !          6706: > *
        !          6707: 14919,14921c13679,13680
        !          6708: < CNC36  JSR  SYSTT            TOGGLE SWITCH
        !          6709: <        BRN  CNC08            MERGE
        !          6710: < .IF    .CULC
        !          6711: ---
        !          6712: > CNC22  JSR  SYSTT            TOGGLE SWITCH
        !          6713: >        BRN  CNC09            MERGE
        !          6714: 14923,14925c13682
        !          6715: < *      -CASE
        !          6716: < *      SETS VALUE OF KVCAS SO THAT NAMES ARE FOLDED OR NOT
        !          6717: < *      DURING COMPILATION.
        !          6718: ---
        !          6719: > *      -COPY
        !          6720: 14927,14936c13684,13708
        !          6721: < CNC37  JSR  SCANE            SCAN INTEGER AFTER -CASE
        !          6722: <        ZER  WC               GET 0 IN CASE NONE THERE
        !          6723: <        BEQ  XL,=T$SMC,CNC38  SKIP IF NO INTEGER
        !          6724: <        MOV  XR,-(XS)         STACK IT
        !          6725: <        JSR  GTSMI            CHECK INTEGER
        !          6726: <        PPM  CNC06            FAIL IF NOT INTEGER
        !          6727: <        PPM  CNC06            FAIL IF NEGATIVE OR TOO LARGE
        !          6728: 
        !          6729: 
        !          6730: 
        !          6731: 
        !          6732: 
        !          6733: 
        !          6734: 
        !          6735: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 103
        !          6736: 
        !          6737: 
        !          6738: < CNC38  MOV  WC,KVCAS         STORE NEW CASE VALUE
        !          6739: <        BRN  CNC09            MERGE
        !          6740: < .FI
        !          6741: ---
        !          6742: > *      GET FILETAG AND NOTIFY OSINT THAT WE ARE NESTING
        !          6743: > *
        !          6744: > CNC23  JSR  SCANE            GET FILETAG
        !          6745: >        BNE  =T$CON,XL,CNC06  ERR IF NOT CONSTANT
        !          6746: >        BNE  =B$SCL,(XR),CNC06 ERR IF NOT SCBLK
        !          6747: >        JSR  SYSSC            CALL TO START COPY
        !          6748: >        ERR  258,COPY FILE DOES NOT EXIST
        !          6749: >        PPM  EROSI            ERROR RETURN (ALWAYS)
        !          6750: >        MOV  WA,WB            SAVE IOTAG FROM OSINT
        !          6751: >        MOV  *COSI$,WA        GET SIZE OF COPY BLOCK
        !          6752: >        JSR  ALLOC            ALLOCATE
        !          6753: >        MOV  =B$COP,COTYP(XR) SET TYPE
        !          6754: >        MOV  R$COP,CONXT(XR)  PLACE AT FRONT OF STACK CHN
        !          6755: >        MOV  XR,R$COP         SPLICE IT IN
        !          6756: >        MOV  WB,COIOT(XR)     SAVE OSINT IOTAG
        !          6757: >        MOV  TTINS,COTTI(XR)  SAVE TTINS
        !          6758: >        ZER  TTINS            INPUT NOT FROM TERMINAL NOW
        !          6759: >        MOV  R$CIM,COCIM(XR)  SAVE R$CIM IN CASE EXEC TIME
        !          6760: >        MOV  SCNPT,COSPT(XR)  SAVE SCNPT IN CASE EXEC TIME
        !          6761: >        MOV  CSWLS,COSLS(XR)  SAVE LIST FLAG
        !          6762: >        MOV  CSWIN,COSIN(XR)  SAVE -INXXX VALUE
        !          6763: >        MOV  R$STL,COSTL(XR)  SAVE SUBTITLE
        !          6764: >        BZE  CSWLS,CNC10      NO LIST -COPY IF -NOLIST
        !          6765: >        JSR  LISTR            LIST -COPY CARD
        !          6766: >        BRN  CNC10            EXIT
        !          6767: 14939a13712,13750
        !          6768: > *      COPND -- END -COPY NESTING
        !          6769: > *
        !          6770: > *      COPND IS CALLED FROM CMPIL AND READR IN ORDER TO
        !          6771: > *      UNNEST ONE LEVEL OF -COPY AND RESTORE THE PREVIOUS
        !          6772: > *      INPUT COMPILE STRING.  THE COPY BLOCK IS REMOVED
        !          6773: > *      FROM THE CHAIN AND THE STATE RESTORED FROM IT.
        !          6774: > *
        !          6775: > *      JSR  COPND            CALL TO END -COPY AT CUR. LEVEL
        !          6776: > *      (XL,WA,WB,WC)         DESTROYED
        !          6777: > *
        !          6778: > COPND  PRC  E,0              ENTRY POINT
        !          6779: >        MOV  R$COP,XL         GET POINTER TO CURRENT COBLK
        !          6780: >        BZE  XL,COP02         EXIT IF NONE
        !          6781: >        MOV  CONXT(XL),R$COP  TAKE OFF CHAIN
        !          6782: >        MOV  COIOT(XL),WA     GET IOTAG FOR OSINT
        !          6783: >        JSR  SYSEC            CALL TO END COPY
        !          6784: >        PPM                   DO NOT USE
        !          6785: >        PPM  EROSI            ERROR EXIT
        !          6786: >        BZE  CSWLS,COP01      SKIP LISTING IF -NOLIST
        !          6787: >        JSR  LISTR            LIST CURRENT IMAGE
        !          6788: > *
        !          6789: > *      MERGE AFTER POSSIBLE LISTING OF CURRENT IMAGE
        !          6790: > *
        !          6791: > COP01  MOV  COTTI(XL),TTINS  RESTORE TERMINAL INPUT FLAG
        !          6792: >        MOV  COSLS(XL),CSWLS  RESTORE LISTING STATE
        !          6793: >        MOV  COSPT(XL),SCNPT  GET OLD SCAN POINTER
        !          6794: 
        !          6795: 
        !          6796: 
        !          6797: 
        !          6798: 
        !          6799: 
        !          6800: 
        !          6801: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 104
        !          6802: 
        !          6803: 
        !          6804: >        MOV  COSIN(XL),CSWIN  OLD INPUT IMAGE LENGTH
        !          6805: >        MOV  COSTL(XL),R$STL  RESTORE SUBTITLE STRING
        !          6806: >        MNZ  LSTPF            THIS IMAGE LISTED IN CNCRD
        !          6807: >        MOV  COCIM(XL),XL     GET OLD COMPILER IMAGE SCBLK
        !          6808: >        MOV  XL,R$CIM         RESTORE IT
        !          6809: >        MOV  SCLEN(XL),SCNIL  SET INPUT IMAGE LENGTH TOO
        !          6810: > *
        !          6811: > *      MERGE TO EXIT
        !          6812: > *
        !          6813: > COP02  EXI                   RETURN TO CALLER
        !          6814: >        ENP                   END PROCEDURE COPND
        !          6815: >        EJC
        !          6816: > *
        !          6817: 14950a13762,13763
        !          6818: > .IF    .CNLD
        !          6819: > .ELSE
        !          6820: 14957,14958d13769
        !          6821: < .IF    .CNLD
        !          6822: < .ELSE
        !          6823: 14966d13776
        !          6824: < .FI
        !          6825: 14970a13781
        !          6826: > .FI
        !          6827: 14981c13792
        !          6828: <        ERB  248,ATTEMPTED REDEFINITION OF SYSTEM FUNCTION
        !          6829: ---
        !          6830: >        ERB  217,ATTEMPTED REDEFINITION OF SYSTEM FUNCTION
        !          6831: 14991,15058d13801
        !          6832: < *      DTACH -- DETACH I/O ASSOCIATED NAMES
        !          6833: < *
        !          6834: < *      DETACHES TRBLKS FROM I/O ASSOCIATED VARIABLES, REMOVES
        !          6835: < *      ENTRY FROM IOCHN CHAIN ATTACHED TO FILEARG1 VRBLK AND MAY
        !          6836: < *      REMOVE VRBLK ACCESS AND STORE TRAPS.
        !          6837: < *      INPUT, OUTPUT, TERMINAL ARE HANDLED SPECIALLY.
        !          6838: < *
        !          6839: < *      (XL)                  I/O ASSOC. VBL NAME BASE PTR
        !          6840: < *      (WA)                  OFFSET TO NAME
        !          6841: < *      JSR  DTACH            CALL FOR DETACH OPERATION
        !          6842: < *      (XL,XR,WA,WB,WC)      DESTROYED
        !          6843: < *
        !          6844: < DTACH  PRC  E,0              ENTRY POINT
        !          6845: <        MOV  XL,DTCNB         STORE NAME BASE (GBCOL NOT CALLED)
        !          6846: <        ADD  WA,XL            POINT TO NAME LOCATION
        !          6847: <        MOV  XL,DTCNM         STORE IT
        !          6848: < *
        !          6849: < *      LOOP TO SEARCH FOR I/O TRBLK
        !          6850: < *
        !          6851: < DTCH1  MOV  XL,XR            COPY NAME POINTER
        !          6852: < *
        !          6853: < *      CONTINUE AFTER BLOCK DELETION
        !          6854: < *
        !          6855: < DTCH2  MOV  (XL),XL          POINT TO NEXT VALUE
        !          6856: <        BNE  (XL),=B$TRT,DTCH6 JUMP AT CHAIN END
        !          6857: <        MOV  TRTYP(XL),WA     GET TRAP BLOCK TYPE
        !          6858: <        BEQ  WA,=TRTIN,DTCH3  JUMP IF INPUT
        !          6859: <        BEQ  WA,=TRTOU,DTCH3  JUMP IF OUTPUT
        !          6860: 
        !          6861: 
        !          6862: 
        !          6863: 
        !          6864: 
        !          6865: 
        !          6866: 
        !          6867: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 105
        !          6868: 
        !          6869: 
        !          6870: <        ADD  *TRNXT,XL        POINT TO NEXT LINK
        !          6871: <        BRN  DTCH1            LOOP
        !          6872: < *
        !          6873: < *      DELETE AN OLD ASSOCIATION
        !          6874: < *
        !          6875: < DTCH3  MOV  TRVAL(XL),(XR)   DELETE TRBLK
        !          6876: <        MOV  XL,WA            DUMP XL ...
        !          6877: <        MOV  XR,WB            ... AND XR
        !          6878: <        MOV  TRTRF(XL),XL     POINT TO TRTRF TRAP BLOCK
        !          6879: <        BZE  XL,DTCH5         JUMP IF NO IOCHN
        !          6880: <        BNE  (XL),=B$TRT,DTCH5 JUMP IF INPUT, OUTPUT, TERMINAL
        !          6881: < *
        !          6882: < *      LOOP TO SEARCH IOCHN CHAIN FOR NAME PTR
        !          6883: < *
        !          6884: < DTCH4  MOV  XL,XR            REMEMBER LINK PTR
        !          6885: <        MOV  TRTRF(XL),XL     POINT TO NEXT LINK
        !          6886: <        BZE  XL,DTCH5         JUMP IF END OF CHAIN
        !          6887: <        MOV  IONMB(XL),WC     GET NAME BASE
        !          6888: <        ADD  IONMO(XL),WC     ADD OFFSET
        !          6889: <        BNE  WC,DTCNM,DTCH4   LOOP IF NO MATCH
        !          6890: <        MOV  TRTRF(XL),TRTRF(XR) REMOVE NAME FROM CHAIN
        !          6891: <        EJC
        !          6892: < *
        !          6893: < *      DTACH (CONTINUED)
        !          6894: < *
        !          6895: < *      PREPARE TO RESUME I/O TRBLK SCAN
        !          6896: < *
        !          6897: < DTCH5  MOV  WA,XL            RECOVER XL ...
        !          6898: <        MOV  WB,XR            ... AND XR
        !          6899: <        ADD  *TRVAL,XL        POINT TO VALUE FIELD
        !          6900: <        BRN  DTCH2            CONTINUE
        !          6901: < *
        !          6902: < *      EXIT POINT
        !          6903: < *
        !          6904: < DTCH6  MOV  DTCNB,XR         POSSIBLE VRBLK PTR
        !          6905: <        JSR  SETVR            RESET VRBLK IF NECESSARY
        !          6906: <        EXI                   RETURN
        !          6907: <        ENP                   END PROCEDURE DTACH
        !          6908: <        EJC
        !          6909: < *
        !          6910: 15069c13812
        !          6911: <        WTB  XR               CONVERT TO BYTE OFFSET
        !          6912: ---
        !          6913: >        WTB  XR               CONVERT TO BAU OFFSET
        !          6914: 15092,15093c13835
        !          6915: < *      DMARG EQ 2            FULL DUMP (INCL ARRAYS ETC.)
        !          6916: < *      DMARG GE 3            CORE DUMP
        !          6917: ---
        !          6918: > *      DMARG GE 2            FULL DUMP (INCL ARRAYS ETC.)
        !          6919: 15101d13842
        !          6920: <        BGT  XR,=NUM02,DMP29  JUMP IF CORE DUMP REQUIRED
        !          6921: 15108,15110c13849
        !          6922: <        JSR  PRTST            PRINT IT
        !          6923: <        JSR  PRTNL            TERMINATE PRINT LINE
        !          6924: <        JSR  PRTNL            AND PRINT A BLANK LINE
        !          6925: ---
        !          6926: 
        !          6927: 
        !          6928: 
        !          6929: 
        !          6930: 
        !          6931: 
        !          6932: 
        !          6933: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 106
        !          6934: 
        !          6935: 
        !          6936: >        JSR  PRTFB            PRINT IT
        !          6937: 15227,15228c13966,13967
        !          6938: < DMP11  JSR  PRTNL            PRINT BLANK LINE
        !          6939: <        JSR  PRTNL            AND ANOTHER
        !          6940: ---
        !          6941: > DMP11  JSR  PRTFH            PRINT BLANK LINE
        !          6942: >        JSR  PRTFH            AND ANOTHER
        !          6943: 15230,15232c13969
        !          6944: <        JSR  PRTST            PRINT HEADING
        !          6945: <        JSR  PRTNL            END LINE
        !          6946: <        JSR  PRTNL            PRINT ONE BLANK LINE
        !          6947: ---
        !          6948: >        JSR  PRTFB            PRINT HEADING
        !          6949: 15256,15257c13993
        !          6950: <        JSR  PRTVL            PRINT KEYWORD VALUE
        !          6951: <        JSR  PRTNL            TERMINATE PRINT LINE
        !          6952: ---
        !          6953: >        JSR  PRTVF            PRINT KEYWORD VALUE
        !          6954: 15276c14012
        !          6955: <        BEQ  WA,=B$BCT,DMP30  JUMP IF BUFFER
        !          6956: ---
        !          6957: >        BEQ  WA,=B$BCT,DMP29  JUMP IF BUFFER
        !          6958: 15310c14046
        !          6959: <        JSR  PRTNL            PRINT BLANK LINE
        !          6960: ---
        !          6961: >        JSR  PRTFH            PRINT BLANK LINE
        !          6962: 15312c14048
        !          6963: <        JSR  PRTVL            PRINT BLOCK VALUE (FOR TITLE)
        !          6964: ---
        !          6965: >        JSR  PRTVF            PRINT BLOCK VALUE (FOR TITLE)
        !          6966: 15314d14049
        !          6967: <        JSR  PRTNL            END PRINT LINE
        !          6968: 15380,15384d14114
        !          6969: < *
        !          6970: < *      CALL SYSTEM CORE DUMP ROUTINE
        !          6971: < *
        !          6972: < DMP29  JSR  SYSDM            CALL IT
        !          6973: <        BRN  DMP28            RETURN
        !          6974: 15393,15395c14123,14124
        !          6975: < DMP30  JSR  PRTNL            PRINT BLANK LINE
        !          6976: <        JSR  PRTVL            PRINT VALUE ID FOR TITLE
        !          6977: <        JSR  PRTNL            FORCE NEW LINE
        !          6978: ---
        !          6979: > DMP29  JSR  PRTFH            PRINT BLANK LINE
        !          6980: >        JSR  PRTVF            PRINT VALUE ID FOR TITLE
        !          6981: 15415,15416c14144
        !          6982: <        JSR  PRTCH            PRINT IT
        !          6983: <        JSR  PRTNL            PRINT NEW LINE
        !          6984: ---
        !          6985: >        JSR  PRTCF            PRINT IT
        !          6986: 15430c14158
        !          6987: <        JSR  PRTIS            PRINT ERROR PTR OR BLANK LINE
        !          6988: ---
        !          6989: >        JSR  PRTFH            PRINT ERROR PTR OR BLANK LINE
        !          6990: 15448,15450c14176
        !          6991: <        JSR  PRTST            PRINT ERROR MESSAGE TEXT
        !          6992: 
        !          6993: 
        !          6994: 
        !          6995: 
        !          6996: 
        !          6997: 
        !          6998: 
        !          6999: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 107
        !          7000: 
        !          7001: 
        !          7002: <        JSR  PRTIS            PRINT LINE
        !          7003: <        JSR  PRTIS            PRINT BLANK LINE
        !          7004: ---
        !          7005: >        JSR  PRTFB            PRINT ERROR MESSAGE TEXT
        !          7006: 15465a14192
        !          7007: >        BNZ  EROSN,ERT03      SKIP IF SPECIAL EROSI RETURN
        !          7008: 15483a14211,14216
        !          7009: > *
        !          7010: > *      SPECIAL CASE SET UP BY EROSI RETURN TO AVOID SYSEM CALL
        !          7011: > *
        !          7012: > ERT03  ZER  EROSN            CLEAR FLAG
        !          7013: >        MOV  R$ETX,XR         GET ERROR MESSAGE TEXT
        !          7014: >        BRN  ERT01            RETURN WITHOUT MAKING SYSEM CALL
        !          7015: 15498,15499d14230
        !          7016: < *      PPM  LOC              TRANSFER LOC FOR SUCCESSFUL EVAL
        !          7017: < *      (THE NORMAL RETURN IS NEVER TAKEN)
        !          7018: 15507c14238
        !          7019: < EVALI  PRC  R,4              ENTRY POINT (RECURSIVE)
        !          7020: ---
        !          7021: > EVALI  PRC  R,3              ENTRY POINT (RECURSIVE)
        !          7022: 15518c14249
        !          7023: <        EXI  4                TAKE SUCCESSFUL EXIT
        !          7024: ---
        !          7025: >        EXI                   SUCCESSFUL RETURN
        !          7026: 15621a14353
        !          7027: > *      (WA)                  APPROPRIATE MULTI CHARACTER PCODE
        !          7028: 15626,15627c14358
        !          7029: < *      PPM  LOC              TRANSFER LOC FOR SUCCESSFUL EVAL
        !          7030: < *      (THE NORMAL RETURN IS NEVER TAKEN)
        !          7031: ---
        !          7032: > *      (XL)                  PCODE OF NEW NODE (ENTRY WA)
        !          7033: 15629c14360
        !          7034: < *      (XL,WC,RA)            DESTROYED
        !          7035: ---
        !          7036: > *      (WA,WC,RA)            DESTROYED
        !          7037: 15634a14366,14367
        !          7038: > *      THIS IS DONE BY THE USUAL INDIRECT BRANCH THROUGH THE
        !          7039: > *      PCODE PASSED IN WA.
        !          7040: 15636c14369,14370
        !          7041: < EVALS  PRC  R,3              ENTRY POINT (RECURSIVE)
        !          7042: ---
        !          7043: > EVALS  PRC  R,2              ENTRY POINT (RECURSIVE)
        !          7044: >        MOV  WA,-(XS)         KEEP PCODE
        !          7045: 15638a14373
        !          7046: >        MOV  (XS)+,WA         RECOVER PCODE
        !          7047: 15644c14379
        !          7048: <        MOV  =P$BRK,XL        APPROPRIATE PCODE FOR OUR USE
        !          7049: ---
        !          7050: >        MOV  WA,XL            APPROPRIATE PCODE FOR OUR USE
        !          7051: 15649c14384,14385
        !          7052: <        EXI  3                TAKE SUCCESS RETURN
        !          7053: ---
        !          7054: >        MOV  (XR),XL          GET PCODE
        !          7055: >        EXI                   TAKE SUCCESS RETURN
        !          7056: 15653c14389,14390
        !          7057: < EVLS1  EXI  2                TAKE FAILURE RETURN
        !          7058: 
        !          7059: 
        !          7060: 
        !          7061: 
        !          7062: 
        !          7063: 
        !          7064: 
        !          7065: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 108
        !          7066: 
        !          7067: 
        !          7068: ---
        !          7069: > EVLS1  MOV  (XS)+,WA         POP STACK
        !          7070: >        EXI  2                TAKE FAILURE RETURN
        !          7071: 15733c14470
        !          7072: < EVLX3  MOV  (XS)+,XR         LOAD VALUE
        !          7073: ---
        !          7074: > EVLXV  MOV  (XS)+,XR         LOAD VALUE
        !          7075: 15735c14472
        !          7076: <        ERB  249,EXPRESSION EVALUATED BY NAME RETURNED VALUE
        !          7077: ---
        !          7078: >        ERB  218,EXPRESSION EVALUATED BY NAME RETURNED VALUE
        !          7079: 15739c14476
        !          7080: < EVLX4  MOV  (XS)+,WA         LOAD NAME OFFSET
        !          7081: ---
        !          7082: > EVLXN  MOV  (XS)+,WA         LOAD NAME OFFSET
        !          7083: 15743c14480
        !          7084: <        PPM  EVLX6            JUMP IF FAILURE DURING ACCESS
        !          7085: ---
        !          7086: >        PPM  EVLXF            JUMP IF FAILURE DURING ACCESS
        !          7087: 15752c14489
        !          7088: < EVLX6  MNZ  WB               NOTE UNSUCCESSFUL
        !          7089: ---
        !          7090: > EVLXF  MNZ  WB               NOTE UNSUCCESSFUL
        !          7091: 15806c14543
        !          7092: <        BTW  WA               CONVERT BYTE COUNT TO WORD COUNT
        !          7093: ---
        !          7094: >        BTW  WA               CONVERT BAU COUNT TO WORD COUNT
        !          7095: 15985c14722
        !          7096: <        MOV  =OPDVP,XR        ELSE POINT TO UNMISTAKABLE CONCAT.
        !          7097: ---
        !          7098: >        MOV  =OPDVP,XR        ELSE POINT TO UNMISTAKEABLE CONCAT
        !          7099: 15987c14724
        !          7100: < *      MERGE HERE WHEN XR SET UP WITH PROPER CONCATENATION DVBLK
        !          7101: ---
        !          7102: > *      MERGE WITH CORRECT CONCATENATION DVBLK IN XR
        !          7103: 15991c14728
        !          7104: <        ERB  220,SYNTAX ERROR. MISSING OPERATOR
        !          7105: ---
        !          7106: >        ERB  219,SYNTAX ERROR. MISSING OPERATOR
        !          7107: 15998c14735
        !          7108: <        ERB  221,SYNTAX ERROR. MISSING OPERAND
        !          7109: ---
        !          7110: >        ERB  220,SYNTAX ERROR. MISSING OPERAND
        !          7111: 16023c14760
        !          7112: < EXP08  ERB  222,SYNTAX ERROR. INVALID USE OF LEFT BRACKET
        !          7113: ---
        !          7114: > EXP08  ERB  221,SYNTAX ERROR. INVALID USE OF LEFT BRACKET
        !          7115: 16049c14786
        !          7116: <        ERB  223,SYNTAX ERROR. INVALID USE OF COMMA
        !          7117: ---
        !          7118: >        ERB  222,SYNTAX ERROR. INVALID USE OF COMMA
        !          7119: 16062c14799
        !          7120: <        ERB  224,SYNTAX ERROR. UNBALANCED RIGHT PARENTHESIS
        !          7121: ---
        !          7122: >        ERB  223,SYNTAX ERROR. UNBALANCED RIGHT PARENTHESIS
        !          7123: 16080c14817
        !          7124: 
        !          7125: 
        !          7126: 
        !          7127: 
        !          7128: 
        !          7129: 
        !          7130: 
        !          7131: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 109
        !          7132: 
        !          7133: 
        !          7134: <        WTB  WA               CONVERT LENGTH TO BYTES
        !          7135: ---
        !          7136: >        WTB  WA               CONVERT LENGTH TO BAUS
        !          7137: 16124c14861
        !          7138: <        ERB  225,SYNTAX ERROR. UNBALANCED RIGHT BRACKET
        !          7139: ---
        !          7140: >        ERB  224,SYNTAX ERROR. UNBALANCED RIGHT BRACKET
        !          7141: 16153c14890
        !          7142: < EXP21  ERB  226,SYNTAX ERROR. MISSING RIGHT PAREN
        !          7143: ---
        !          7144: > EXP21  ERB  225,SYNTAX ERROR. MISSING RIGHT PAREN
        !          7145: 16157c14894
        !          7146: < EXP22  ERB  227,SYNTAX ERROR. RIGHT PAREN MISSING FROM GOTO
        !          7147: ---
        !          7148: > EXP22  ERB  226,SYNTAX ERROR. RIGHT PAREN MISSING FROM GOTO
        !          7149: 16161c14898
        !          7150: < EXP23  ERB  228,SYNTAX ERROR. RIGHT BRACKET MISSING FROM GOTO
        !          7151: ---
        !          7152: > EXP23  ERB  227,SYNTAX ERROR. RIGHT BRACKET MISSING FROM GOTO
        !          7153: 16165c14902
        !          7154: < EXP24  ERB  229,SYNTAX ERROR. MISSING RIGHT ARRAY BRACKET
        !          7155: ---
        !          7156: > EXP24  ERB  228,SYNTAX ERROR. MISSING RIGHT ARRAY BRACKET
        !          7157: 16269c15006
        !          7158: < EXDM1  BLE  1(XS),=NUM05,EXDM2 JUMP IF STACK BOTTOM (SAVED LEVEL
        !          7159: ---
        !          7160: > EXDM1  BLE  1(XS),=NUM05,EXDM2 JUMP IF STACK BOTTOM (SAVED LEVEL)
        !          7161: 16324d15060
        !          7162: < .IF    .CULC
        !          7163: 16326,16369d15061
        !          7164: < *      FLSTG -- FOLD STRING TO UPPER CASE
        !          7165: < *
        !          7166: < *      FLSTG FOLDS A CHARACTER STRING CONTAINING LOWER CASE
        !          7167: < *      CHARACCTERS TO ONE CONTAINING UPPER CASE CHARACTERS.
        !          7168: < *      FOLDING IS ONLY DONE IF &CASE (KVCAS) IS NOT ZERO.
        !          7169: < *
        !          7170: < *      (XR)                  STRING ARGUMENT
        !          7171: < *      (WA)                  LENGTH OF STRING
        !          7172: < *      JSR  FLSTG            CALL TO FOLD STRING
        !          7173: < *      (XR)                  RESULT STRING (POSSIBLY ORIGINAL)
        !          7174: < *      (WC)                  DESTROYED
        !          7175: < *
        !          7176: < FLSTG  PRC  R,0              ENTRY POINT
        !          7177: <        BZE  KVCAS,FST99      SKIP IF &CASE IS 0
        !          7178: <        MOV  XL,-(XS)         SAVE XL ACROSS CALL
        !          7179: <        MOV  XR,-(XS)         SAVE ORIGINAL SCBLK PTR
        !          7180: <        JSR  ALOCS            ALLOCATE NEW STRING BLOCK
        !          7181: <        MOV  (XS),XL          POINT TO ORIGINAL SCBLK
        !          7182: <        MOV  XR,-(XS)         SAVE POINTER TO NEW SCBLK
        !          7183: <        PLC  XL               POINT TO ORIGINAL CHARS
        !          7184: <        PLC  XR               POINT TO NEW CHARS
        !          7185: <        ZER  -(XS)            INIT DID FOLD FLAG
        !          7186: <        LCT  WC,WC            LOAD LOOP COUNTER
        !          7187: < FST01  LCH  WA,(XL)+         LOAD CHARACTER
        !          7188: <        BGT  =CH$$A,WA,FST02  SKIP IF LESS THAN LC A
        !          7189: <        BGT  WA,=CH$$$,FST02  SKIP IF GREATER THAN LC Z
        !          7190: 
        !          7191: 
        !          7192: 
        !          7193: 
        !          7194: 
        !          7195: 
        !          7196: 
        !          7197: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 110
        !          7198: 
        !          7199: 
        !          7200: <        FLC  WA               FOLD CHARACTER TO UPPER CASE
        !          7201: <        MNZ  (XS)             SET DID FOLD CHARACTER FLAG
        !          7202: < FST02  SCH  WA,(XR)+         STORE (POSSIBLY FOLDED) CHARACTER
        !          7203: <        BCT  WC,FST01         LOOP THRU ENTIRE STRING
        !          7204: <        CSC  XR               COMPLETE STORE CHARACTERS
        !          7205: <        BNZ  (XS)+,FST10      SKIP IF FOLDING DONE
        !          7206: <        MOV  (XS)+,DNAMP      DO NOT NEED NEW SCBLK
        !          7207: <        MOV  (XS)+,XR         RETURN ORIGINAL SCBLK
        !          7208: <        BRN  FST20            MERGE BELOW
        !          7209: < FST10  MOV  (XS)+,XR         RETURN NEW SCBLK
        !          7210: <        ICA  XS               THROW AWAY ORIGINAL SCBLK POINTER
        !          7211: < FST20  MOV  SCLEN(XR),WA     RELOAD STRING LENGTH
        !          7212: <        MOV  (XS)+,XL         RESTORE XL
        !          7213: < FST99  EXI                   RETURN
        !          7214: <        ENP
        !          7215: <        EJC
        !          7216: < .FI
        !          7217: < *
        !          7218: 16414c15106
        !          7219: < *      ENTRY VALUE OF WB IS THE NUMBER OF BYTES TO MOVE UP.
        !          7220: ---
        !          7221: > *      ENTRY VALUE OF WB IS THE NUMBER OF BAUS TO MOVE UP.
        !          7222: 16549,16550c15241,15242
        !          7223: < *                            BYTES. SET TO THE ADDRESS OF THE
        !          7224: < *                            FIRST BYTE WHILE ACTUALLY SCANNING
        !          7225: ---
        !          7226: > *                            BAUS. SET TO THE ADDRESS OF THE
        !          7227: > *                            FIRST BAU WHILE ACTUALLY SCANNING
        !          7228: 16570a15263,15265
        !          7229: > .IF    .CEPP
        !          7230: >        BOD  WA,GBC07         JUMP IF ENTRY POINTER (UNUSED)
        !          7231: > .ELSE
        !          7232: 16572a15268
        !          7233: > .FI
        !          7234: 16578a15275,15277
        !          7235: > .IF    .CEPP
        !          7236: >        BEV  WA,GBC06         LOOP BACK IF NOT END OF CHAIN
        !          7237: > .ELSE
        !          7238: 16580a15280
        !          7239: > .FI
        !          7240: 16603a15304,15306
        !          7241: > .IF    .CEPP
        !          7242: >        BEV  WA,GBC09         JUMP IF IN USE
        !          7243: > .ELSE
        !          7244: 16605a15309
        !          7245: > .FI
        !          7246: 16672c15376
        !          7247: <        ERB  250,INSUFFICIENT MEMORY TO COMPLETE DUMP
        !          7248: ---
        !          7249: >        ERB  229,INSUFFICIENT MEMORY TO COMPLETE DUMP
        !          7250: 16702a15407,15410
        !          7251: > .IF    .CRPP
        !          7252: >        BOD  XL,GPF02         JUMP IF NOT PTR INTO DYNAMIC AREA
        !          7253: > .ELSE
        !          7254: > .FI
        !          7255: 16714a15423,15425
        !          7256: 
        !          7257: 
        !          7258: 
        !          7259: 
        !          7260: 
        !          7261: 
        !          7262: 
        !          7263: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 111
        !          7264: 
        !          7265: 
        !          7266: > .IF    .CEPP
        !          7267: >        BOD  WA,GPF03         JUMP IF NOT ALREADY PROCESSED
        !          7268: > .ELSE
        !          7269: 16716a15428
        !          7270: > .FI
        !          7271: 16752a15465
        !          7272: >        IFF  BL$CO,GPF19      COBLK
        !          7273: 16889a15603,15608
        !          7274: > *
        !          7275: > *      COBLK
        !          7276: > *
        !          7277: > GPF19  MOV  *COSI$,WA        SET LENGTH
        !          7278: >        MOV  *CONXT,WB        AND OFFSET
        !          7279: >        BRN  GPF05            ALL SET
        !          7280: 16890a15610,15611
        !          7281: > .IF    .CNBF
        !          7282: > .ELSE
        !          7283: 16892a15614,15648
        !          7284: > *      GTBUF -- GET BUFFER
        !          7285: > *
        !          7286: > *      GTBUF IS PASSED AN OBJECT AND RETURNS A BUFFER IF
        !          7287: > *      POSSIBLE.  UNLESS THE OBJECT IS ALREADY A BUFFER,
        !          7288: > *      THIS INVOLVES A CONVERSION TO STRING AND THEN
        !          7289: > *      STRING TO BUFFER.
        !          7290: > *
        !          7291: > *      (XR)                  OBJECT TO BE CONVERTED
        !          7292: > *      JSR  GTBUF            CALL TO GET BUFFER
        !          7293: > *      PPM  LOC              TRANSFER LOC FOR CONVERT IMPOSSIBLE
        !          7294: > *      (XR)                  RESULTING BUFFER
        !          7295: > *      (XL,WA,WB,WC)         DESTROYED
        !          7296: > *
        !          7297: > GTBUF  PRC  E,1              ENTRY POINT
        !          7298: >        BEQ  (XR),=B$BCT,GTB01 EXIT IF ALREADY BUFFER
        !          7299: >        MOV  XR,-(XS)         STACK TO CONVERT TO STRING
        !          7300: >        JSR  GTSTG            CONVERT TO STRING
        !          7301: >        PPM  GTB02            CONVERSION ERROR
        !          7302: >        MOV  XR,XL            SAVE STRING POINTER
        !          7303: >        JSR  ALOBF            ALLOCATE BUFFER OF SAME SIZE
        !          7304: >        JSR  INSBF            COPY IN THE STRING
        !          7305: >        PPM                   ALREADY STRING - CANT FAIL TO CNV
        !          7306: >        PPM                   MUST BE ENOUGH ROOM
        !          7307: > *
        !          7308: > *      MERGE TO EXIT WITH BUFFER CONTROL BLK IN (XR)
        !          7309: > *
        !          7310: > GTB01  EXI                   RETURN TO CALLER
        !          7311: > *
        !          7312: > *      HERE ON CONVERSION FAILURE
        !          7313: > *
        !          7314: > GTB02  EXI  1                TAKE FAILURE EXIT
        !          7315: >        ENP
        !          7316: > .FI
        !          7317: >        EJC
        !          7318: > *
        !          7319: 16895c15651
        !          7320: < *      GTARR IS PASSED AN OBJECT AND RETURNS AN ARRAY IF POSSIBL
        !          7321: ---
        !          7322: 
        !          7323: 
        !          7324: 
        !          7325: 
        !          7326: 
        !          7327: 
        !          7328: 
        !          7329: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 112
        !          7330: 
        !          7331: 
        !          7332: > *      GTARR IS PASSED AN OBJECT AND RETURNS AN ARRAY IF POSSIBLE
        !          7333: 16907c15663,15664
        !          7334: <        BNE  WA,=B$TBT,GTA9A  ELSE FAIL IF NOT A TABLE (SGD02)
        !          7335: ---
        !          7336: >        MOV  XR,-(XS)         PLACE POSSIBLE TBBLK PTR ON STACK
        !          7337: >        BNE  WA,=B$TBT,GTAR9  ELSE FAIL IF NOT A TABLE
        !          7338: 16911d15667
        !          7339: <        MOV  XR,-(XS)         REPLACE TBBLK POINTER ON STACK
        !          7340: 16973c15729
        !          7341: <        WTB  WA               CONVERT LENGTH TO BYTES
        !          7342: ---
        !          7343: >        WTB  WA               CONVERT LENGTH TO BAUS
        !          7344: 17027,17031c15783,15784
        !          7345: < GTAR9  MOV  (XS)+,XR         RESTORE STACK FOR CONV ERR (SGD02)
        !          7346: < *
        !          7347: < *      MERGE TO TAKE CONVERT ERROR WHEN STACK ADJUSTED OK
        !          7348: < *
        !          7349: < GTA9A  EXI  1                RETURN
        !          7350: ---
        !          7351: > GTAR9  MOV  (XS)+,XR         CLEAR UP STACK
        !          7352: >        EXI  1                RETURN
        !          7353: 17095,17099c15848,15852
        !          7354: < *      CHECK THE LAST CHARACTER OF THE STRING FOR COLON OR
        !          7355: < *      SEMICOLON.  THESE CHARACTERS CAN LEGITIMATELY END AN
        !          7356: < *      EXPRESSION IN OPEN CODE, SO EXPAN WILL NOT DETECT THEM
        !          7357: < *      AS ERRORS, BUT THEY ARE INVALID AS TERMINATORS FOR A
        !          7358: < *      STRING THAT IS BEING CONVERTED TO EXPRESSION FORM.
        !          7359: ---
        !          7360: > *      CHECK THE LAST CHAR OF STRING FOR COLON OR
        !          7361: > *      SEMICOLON. THEY CAN LEGITIMATELY END AN EXPRESSION
        !          7362: > *      IN OPEN CODE, SO EXPAN WILL NOT FAIL THEM BUT THEY ARE
        !          7363: > *      INVALID AS TERMINATORS FOR A STRING WHICH IS TO BE
        !          7364: > *      CONVERTED TO EXPRESSION FORM.
        !          7365: 17101,17105c15854,15858
        !          7366: <        MOV  XR,XL            COPY INPUT STRING POINTER (REG06)
        !          7367: <        PLC  XL,WA            POINT ONE PAST THE STRING END (REG06)
        !          7368: <        LCH  XL,-(XL)         FETCH THE LAST CHARACTER (REG06)
        !          7369: <        BEQ  XL,=CH$CL,GTEX2  ERROR IF IT IS A SEMICOLON (REG06)
        !          7370: <        BEQ  XL,=CH$SM,GTEX2  OR IF IT IS A COLON (REG06)
        !          7371: ---
        !          7372: >        MOV  XR,XL            COPY ARGUMENT STRING
        !          7373: >        PLC  XL,WA            POINT PAST STRING END
        !          7374: >        LCH  XL,-(XL)         GET LAST CHAR
        !          7375: >        BEQ  XL,=CH$CL,GTEX2  FAIL IF COLON
        !          7376: >        BEQ  XL,=CH$SM,GTEX2  FAIL IF SEMICOLON
        !          7377: 17196c15949
        !          7378: <        BEQ  WA,=B$ICL,GTN34  JUMP IF INTEGER (NO CONVERSION)
        !          7379: ---
        !          7380: >        BEQ  WA,=B$ICL,GTN3A  JUMP IF INTEGER (NO CONVERSION)
        !          7381: 17199c15952
        !          7382: <        BEQ  WA,=B$RCL,GTN34  JUMP IF REAL (NO CONVERSION)
        !          7383: ---
        !          7384: >        BEQ  WA,=B$RCL,GTN3A  JUMP IF REAL (NO CONVERSION)
        !          7385: 17204a15958
        !          7386: >        STI  GTNSV            SAVE IA
        !          7387: 17357,17359c16111,16113
        !          7388: 
        !          7389: 
        !          7390: 
        !          7391: 
        !          7392: 
        !          7393: 
        !          7394: 
        !          7395: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 113
        !          7396: 
        !          7397: 
        !          7398: < .IF    .CULC
        !          7399: <        BEQ  WB,=CH$$E,GTN15  JUMP IF E FOR EXPONENT
        !          7400: <        BEQ  WB,=CH$$D,GTN15  JUMP IF D FOR EXPONENT
        !          7401: ---
        !          7402: > .IF    .CASL
        !          7403: >        BEQ  WB,=CH$$E,GTN15  JUMP FOR EXPT
        !          7404: >        BEQ  WB,=CH$$D,GTN15  JUMP FOR EXPT
        !          7405: 17462c16216
        !          7406: <        WTB  WA               CONVERT REMAINING SCALE TO BYTE OFS
        !          7407: ---
        !          7408: >        WTB  WA               CONVERT REMAINING SCALE TO BAU OFS
        !          7409: 17490c16244
        !          7410: <        WTB  WA               CONVERT REMAINING SCALE TO BYTE OFS
        !          7411: ---
        !          7412: >        WTB  WA               CONVERT REMAINING SCALE TO BAU OFS
        !          7413: 17524c16278,16279
        !          7414: < GTN34  EXI                   RETURN TO GTNUM CALLER
        !          7415: ---
        !          7416: > GTN34  LDI  GTNSV            RECOVER IA
        !          7417: > GTN3A  EXI                   RETURN TO GTNUM CALLER
        !          7418: 17538a16294
        !          7419: >        LDI  GTNSV            RECOVER IA
        !          7420: 17552d16307
        !          7421: < *      (WA,WB)               DESTROYED (CONVERSION ERROR ONLY)
        !          7422: 17558a16314
        !          7423: >        BRN  GNV01            FAIL
        !          7424: 17559a16316,16320
        !          7425: > *      RESTORE REGS AND FAIL
        !          7426: > *
        !          7427: > GNV00  MOV  GNVSA,WA         RESTORE REGS
        !          7428: >        MOV  GNVSB,WB
        !          7429: > *
        !          7430: 17570,17574c16331,16332
        !          7431: <        PPM  GNV01            JUMP IF CONVERSION ERROR
        !          7432: <        BZE  WA,GNV01         NULL STRING IS AN ERROR
        !          7433: < .IF    .CULC
        !          7434: <        JSR  FLSTG            FOLD LOWER CASE TO UPPER CASE
        !          7435: < .FI
        !          7436: ---
        !          7437: >        PPM  GNV00            JUMP IF CONVERSION ERROR
        !          7438: >        BZE  WA,GNV00         NULL STRING IS AN ERROR
        !          7439: 17575a16334,16339
        !          7440: > .IF    .CASL
        !          7441: >        MOV  XR,XL            COPY STRING POINTER
        !          7442: >        ZER  WB               ZERO OFFSET
        !          7443: >        JSR  SBSTG            CONVERT TO PREFERRED CASE
        !          7444: >        MOV  SCLEN(XR),WA     RECOVER STRING LENGTH
        !          7445: > .FI
        !          7446: 17586c16350
        !          7447: <        WTB  WC               CONVERT OFFSET TO BYTES
        !          7448: ---
        !          7449: >        WTB  WC               CONVERT OFFSET TO BAUS
        !          7450: 17635c16399
        !          7451: <        WTB  XL               CONVERT TO BYTE OFFSET
        !          7452: ---
        !          7453: >        WTB  XL               CONVERT TO BAU OFFSET
        !          7454: 
        !          7455: 
        !          7456: 
        !          7457: 
        !          7458: 
        !          7459: 
        !          7460: 
        !          7461: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 114
        !          7462: 
        !          7463: 
        !          7464: 17687c16451
        !          7465: <        WTB  WA               CONVERT LENGTH TO BYTES
        !          7466: ---
        !          7467: >        WTB  WA               CONVERT LENGTH TO BAUS
        !          7468: 17703c16467
        !          7469: <        WTB  WA               CONVERT TO LENGTH IN BYTES
        !          7470: ---
        !          7471: >        WTB  WA               CONVERT TO LENGTH IN BAUS
        !          7472: 17826c16590
        !          7473: < *      MERGE HERE TO EXIT OF NO CONVERSION REQUIRED
        !          7474: ---
        !          7475: > *      MERGE HERE TO EXIT IF NO CONVERSION REQUIRED
        !          7476: 17901c16665
        !          7477: <        BGT  WC,MXLEN,GTSM3   OR IF TOO SMALL
        !          7478: ---
        !          7479: >        BGT  WC,MXLEN,GTSM3   OR IF TOO LARGE
        !          7480: 17979c16743
        !          7481: < .IF    .CNCI
        !          7482: ---
        !          7483: > .IF    .CSCI
        !          7484: 18008d16771
        !          7485: < .FI
        !          7486: 18023a16787
        !          7487: > .FI
        !          7488: 18181a16946,16948
        !          7489: > .IF    .CPLC
        !          7490: >        MOV  =CH$$E,WA        GET CHAR LETTER E
        !          7491: > .ELSE
        !          7492: 18182a16950
        !          7493: > .FI
        !          7494: 18265c17033
        !          7495: <        MOV  BCBUF(XL),XL     POINT TO BFBLK
        !          7496: ---
        !          7497: >        MOV  BCBUF(XL),XL     POINT TOBFBLK
        !          7498: 18326c17094
        !          7499: < *      HASHS IS USED TO CONVERT A STRING TO A UNIQUE INTEGER
        !          7500: ---
        !          7501: > *      HASHS REPRODUCIBLY MAPS A STRING TO AN INTEGER
        !          7502: 18337c17105
        !          7503: < *      START WITH THE LENGTH OF THE STRING (SGD07)
        !          7504: ---
        !          7505: > *      START WITH THE LENGTH OF THE STRING
        !          7506: 18383,18384c17151,17154
        !          7507: <        MFI  XR,ICBL1         COPY SMALL INTEGERS
        !          7508: <        BLE  XR,=NUM02,ICBL3  JUMP IF 0,1 OR 2
        !          7509: ---
        !          7510: >        ILT  ICBL1            SKIP IF NEGATIVE
        !          7511: >        SBI  INTV2            REDUCE BY TWO
        !          7512: >        ILE  ICBL3            JUMP IF 0 , 1 OR 2
        !          7513: >        ADI  INTV2            RESTORE VALUE
        !          7514: 18405c17175,17177
        !          7515: < ICBL3  WTB  XR               CONVERT INTEGER TO OFFSET
        !          7516: ---
        !          7517: > ICBL3  ADI  INTV2            RESTORE VALUE
        !          7518: >        MFI  XR               CONVERT TO SHORT INTEGER
        !          7519: >        WTB  XR               CONVERT INTEGER TO OFFSET
        !          7520: 
        !          7521: 
        !          7522: 
        !          7523: 
        !          7524: 
        !          7525: 
        !          7526: 
        !          7527: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 115
        !          7528: 
        !          7529: 
        !          7530: 18503c17275
        !          7531: < *      INOUT - USED TO INITIALISE INPUT AND OUTPUT VARIABLES
        !          7532: ---
        !          7533: > *      INOUT - USED TO INITIALISE .INPUT .OUTPUT .TERMINAL
        !          7534: 18506c17278
        !          7535: < *      (WB)                  TRBLK TYPE
        !          7536: ---
        !          7537: > *      (WB)                  TRBLK TYPE (TRTYP FIELD)
        !          7538: 18508,18509d17279
        !          7539: < *      (XL)                  VRBLK PTR
        !          7540: < *      (XR)                  TRBLK PTR
        !          7541: 18521c17291
        !          7542: <        JSR  GTNVR            BUILD VRBLK
        !          7543: ---
        !          7544: >        JSR  GTNVR            FIND OR BUILD VRBLK
        !          7545: 18524,18525c17294,17296
        !          7546: <        MOV  (XS)+,WB         GET TRTER FIELD
        !          7547: <        ZER  XL               ZERO TRFPT
        !          7548: ---
        !          7549: >        MOV  (XS)+,WB         GET TRTYP FIELD
        !          7550: >        ZER  XL               ZERO TRTRI
        !          7551: >        MOV  VRSVP(XR),XR     GET SVBLK POINTER
        !          7552: 18528,18531c17299,17301
        !          7553: <        MOV  VRSVP(XL),TRTER(XR) STORE SVBLK POINTER
        !          7554: <        MOV  XR,VRVAL(XL)     STORE TRBLK PTR IN VRBLK
        !          7555: <        MOV  =B$VRA,VRGET(XL) SET TRAPPED ACCESS
        !          7556: <        MOV  =B$VRV,VRSTO(XL) SET TRAPPED STORE
        !          7557: ---
        !          7558: >        MOV  *VRVAL,WA        OFFSET TO VALUE FIELD
        !          7559: >        JSR  TRCHN            PUT TRBLK IN TRACE CHAIN
        !          7560: >        PPM                   CANT FAIL
        !          7561: 18542,18543c17312,17313
        !          7562: < *      SECTION TO BE REPLACED IS DIFFERENT THAN THE LENGTH OF
        !          7563: < *      THE GIVEN STRING, AND THE REPLACEMENT IS NOT AN APPEND,
        !          7564: ---
        !          7565: > *      SECTION TO BE REPLACED DIFFERS FROM THAT OF THE
        !          7566: > *      GIVEN STRING, AND THE REPLACEMENT IS NOT AN APPEND,
        !          7567: 18547,18548c17317,17318
        !          7568: < *      (XR)                  POINTER TO BFBLK
        !          7569: < *      (XL)                  OBJECT WHICH IS STRING CONVERTABLE
        !          7570: ---
        !          7571: > *      (XR)                  POINTER TO BCBLK
        !          7572: > *      (XL)                  OBJECT WHICH IS STRING CONVERTIBLE
        !          7573: 18552,18553c17322,17324
        !          7574: < *      PPM  LOC              THREAD IF (XR) NOT CONVERTABLE
        !          7575: < *      PPM  LOC              THREAD IF INSERT NOT POSSIBLE
        !          7576: ---
        !          7577: > *      PPM  LOC              ERROR IF (XR) NOT CONVERTIBLE
        !          7578: > *      PPM  LOC              FAIL IF INSERT NOT POSSIBLE
        !          7579: > *      (XL,WA,WB,WC)         DESTROYED
        !          7580: 18562d17332
        !          7581: <        MOV  WC,INSSC         SAVE ENTRY WC
        !          7582: 18568d17337
        !          7583: <        MOV  XL,-(XS)         SAVE ENTRY XL
        !          7584: 18570c17339
        !          7585: <        MOV  XL,-(XS)         STACK AGAIN FOR GTSTG
        !          7586: 
        !          7587: 
        !          7588: 
        !          7589: 
        !          7590: 
        !          7591: 
        !          7592: 
        !          7593: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 116
        !          7594: 
        !          7595: 
        !          7596: ---
        !          7597: >        MOV  XL,-(XS)         STACK STRING POINTER FOR GTSTG
        !          7598: 18572c17341
        !          7599: <        PPM  INS05            TAKE STRING CONVERT ERR EXIT
        !          7600: ---
        !          7601: >        PPM  INS06            TAKE STRING CONVERT ERR EXIT
        !          7602: 18574c17343,17346
        !          7603: <        MOV  (XS),XR          RESTORE BCBLK PTR
        !          7604: ---
        !          7605: >        MOV  (XS)+,XR         RESTORE BCBLK PTR
        !          7606: >        MOV  XR,INSBC         BCBLK PTR - NO DANGER OF GARB COLLN
        !          7607: >        MOV  BCBUF(XR),XR     POINT TO BFBLK
        !          7608: >        MOV  XR,INSBB         BFBLK PTR - NO DANGER OF GARB COLLN
        !          7609: 18577,18579c17349,17350
        !          7610: <        MOV  BCBUF(XR),XR     POINT TO BFBLK
        !          7611: <        BGT  WA,BFALC(XR),INS06 FAIL IF RESULT EXCEEDS ALLOCATION
        !          7612: <        MOV  (XS),XR          RESTORE BCBLK PTR
        !          7613: ---
        !          7614: >        BGT  WA,BFALC(XR),INS07 FAIL IF RESULT EXCEEDS ALLOCATION
        !          7615: >        MOV  INSBC,XR         RESTORE BCBLK PTR
        !          7616: 18586,18588c17357
        !          7617: <        BZE  WA,INS04         SKIP SHIFT IF NOTHING TO DO
        !          7618: <        BEQ  INSSB,SCLEN(XL),INS04 SKIP SHIFT IF LENGTHS MATCH
        !          7619: <        MOV  BCBUF(XR),XR     POINT TO BFBLK
        !          7620: ---
        !          7621: >        MOV  INSBB,XR         POINT TO BFBLK
        !          7622: 18590c17359,17361
        !          7623: <        BLO  INSSB,SCLEN(XL),INS01 BRN IF SHFT IS FOR MORE ROOM
        !          7624: ---
        !          7625: >        BZE  WA,INS02         SKIP SHIFT IF NOTHING TO DO
        !          7626: >        BEQ  INSSB,SCLEN(XL),INS02 SKIP SHIFT IF LENGTHS MATCH
        !          7627: >        BLO  INSSB,SCLEN(XL),INS01 BRN IF SHIFT IS FOR MORE ROOM
        !          7628: 18597c17368
        !          7629: < *      SEGMENT BEING REPLACED.)  REGISTERS ARE SET AS:
        !          7630: ---
        !          7631: > *      SEGMENT BEING REPLACED). REGISTERS ARE SET AS -
        !          7632: 18622c17393
        !          7633: < *      MERGE HERE AFTER MOVE TO ADJUST PADDING AT NEW BUFFER END
        !          7634: ---
        !          7635: > *      MERGE HERE AFTER POSSIBLE MOVE TO ADJUST ZERO FILL AT END
        !          7636: 18626a17398
        !          7637: >        BTC  WA               CONVERT TO CHAR COUNT
        !          7638: 18629,18630c17401
        !          7639: <        MOV  (XS),XR          GET BCBLK PTR
        !          7640: <        MOV  BCBUF(XR),XR     GET BFBLK PTR
        !          7641: ---
        !          7642: >        MOV  INSBB,XR         POINT TO BFBLK
        !          7643: 18633a17405
        !          7644: >        EJC
        !          7645: 18634a17407,17408
        !          7646: > *      INSBF (CONTINUED)
        !          7647: > *
        !          7648: 18639d17412
        !          7649: <        EJC
        !          7650: 18641,18642d17413
        !          7651: < *      INSBF (CONTINUED)
        !          7652: 
        !          7653: 
        !          7654: 
        !          7655: 
        !          7656: 
        !          7657: 
        !          7658: 
        !          7659: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 117
        !          7660: 
        !          7661: 
        !          7662: < *
        !          7663: 18646,18647c17417
        !          7664: < INS04  MOV  (XS),XR          GET BCBLK PTR
        !          7665: <        MOV  BCBUF(XR),XR     GET BFBLK PTR
        !          7666: ---
        !          7667: > INS04  MOV  INSBB,XR         POINT TO BFBLK
        !          7668: 18648a17419
        !          7669: >        BZE  WA,INS05         SKIP IF NO CHARS TO INSERT
        !          7670: 18652,18656c17423,17427
        !          7671: <        MOV  (XS)+,XR         RESTORE ENTRY XR
        !          7672: <        MOV  (XS)+,XL         RESTORE ENTRY XL
        !          7673: <        MOV  INSSA,WA         RESTORE ENTRY WA
        !          7674: <        MOV  INSSB,WB         RESTORE ENTRY WB
        !          7675: <        MOV  INSSC,WC         RESTORE ENTRY WC
        !          7676: ---
        !          7677: > *
        !          7678: > *      SUCCESSFUL RETURN
        !          7679: > *
        !          7680: > INS05  MOV  INSBC,XR         RESTORE ENTRY XR
        !          7681: >        ZER  XL               CLEAR GARBAGE CHAR POINTER
        !          7682: 18661,18665c17432
        !          7683: < INS05  MOV  (XS)+,XR         RESTORE ENTRY XR
        !          7684: <        MOV  (XS)+,XL         RESTORE ENTRY XL
        !          7685: <        MOV  INSSA,WA         RESTORE ENTRY WA
        !          7686: <        MOV  INSSB,WB         RESTORE ENTRY WB
        !          7687: <        MOV  INSSC,WC         RESTORE ENTRY WC
        !          7688: ---
        !          7689: > INS06  ICA  XS               DISCARD UNWANTED STACK TOP
        !          7690: 18670,18678c17437
        !          7691: < INS06  MOV  (XS)+,XR         RESTORE ENTRY XR
        !          7692: <        MOV  (XS)+,XL         RESTORE ENTRY XL
        !          7693: < *
        !          7694: < *      MERGE FOR LENGTH FAILURE EXIT WITH STACK SET
        !          7695: < *
        !          7696: < INS07  MOV  INSSA,WA         RESTORE ENTRY WA
        !          7697: <        MOV  INSSB,WB         RESTORE ENTRY WB
        !          7698: <        MOV  INSSC,WC         RESTORE ENTRY WC
        !          7699: <        EXI  2                ALTERNATE EXIT
        !          7700: ---
        !          7701: > INS07  EXI  2                ALTERNATE EXIT
        !          7702: 18681a17441
        !          7703: > *      IOFTG -- GET IOTAG
        !          7704: 18683c17443,17444
        !          7705: < *      IOFCB -- GET INPUT/OUTPUT FCBLK POINTER
        !          7706: ---
        !          7707: > *      USED TO FIND THE IOTAG (IF ANY) CORRESPONDING TO THE
        !          7708: > *      FILETAG ARGUMENT.
        !          7709: 18685,18691c17446,17448
        !          7710: < *      USED BY ENDFILE, EJECT AND REWIND TO FIND THE FCBLK
        !          7711: < *      (IF ANY) CORRESPONDING TO THEIR ARGUMENT.
        !          7712: < *
        !          7713: < *      -(XS)                 ARGUMENT
        !          7714: < *      JSR  IOFCB            CALL TO FIND FCBLK
        !          7715: < *      PPM  LOC              ARG IS AN UNSUITABLE NAME
        !          7716: < *      PPM  LOC              ARG IS NULL STRING
        !          7717: ---
        !          7718: 
        !          7719: 
        !          7720: 
        !          7721: 
        !          7722: 
        !          7723: 
        !          7724: 
        !          7725: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 118
        !          7726: 
        !          7727: 
        !          7728: > *      -(XS)                 FILETAG ARGUMENT
        !          7729: > *      JSR  IOFTG            CALL TO FIND IOTAG
        !          7730: > *      PPM  LOC              ARG IS AN UNSUITABLE FILETAG
        !          7731: 18693,18696c17450,17454
        !          7732: < *      (XL)                  PTR TO FILEARG1 VRBLK
        !          7733: < *      (XR)                  ARGUMENT
        !          7734: < *      (WA)                  FCBLK PTR OR 0
        !          7735: < *      (WB)                  DESTROYED
        !          7736: ---
        !          7737: > *      (XL)                  PTR TO FILETAG SCBLK
        !          7738: > *      (XR)                  PTR TO TRTIO TRACE BLK OR ZERO
        !          7739: > *      (WA)                  IOTAG OR ZERO
        !          7740: > *      (WB)                  PTR TO FILETAG VRBLK
        !          7741: > *      (WC)                  VALUE/0 FOR INTEGER/STRING FILETAG
        !          7742: 18698c17456
        !          7743: < IOFCB  PRC  N,2              ENTRY POINT
        !          7744: ---
        !          7745: > IOFTG  PRC  N,1              ENTRY POINT
        !          7746: 18700c17458
        !          7747: <        PPM  IOFC2            FAIL
        !          7748: ---
        !          7749: >        PPM  IOFT4            FAIL
        !          7750: 18702,18705c17460,17474
        !          7751: <        JSR  GTNVR            GET AS NATURAL VARIABLE
        !          7752: <        PPM  IOFC3            FAIL IF NULL
        !          7753: <        MOV  XL,WB            COPY STRING POINTER AGAIN
        !          7754: <        MOV  XR,XL            COPY VRBLK PTR FOR RETURN
        !          7755: ---
        !          7756: >        MOV  XR,-(XS)         STACK STRING
        !          7757: >        JSR  GTSMI            TRY CONVERSION TO INTEGER
        !          7758: >        PPM  IOFT5            SKIP IF CANT
        !          7759: >        PPM  IOFT5            SKIP IF CANT
        !          7760: > *
        !          7761: > *      MERGE WITH WC SET UP
        !          7762: > *
        !          7763: > IOFT1  MOV  WC,WB            KEEP INTEGER OR ZERO
        !          7764: >        MOV  XL,XR            FILETAG STRING TO XR FOR GTNVR CALL
        !          7765: >        JSR  GTNVR            FIND VRBLK
        !          7766: >        PPM  IOFT4            SKIP IF NULL STRING
        !          7767: >        MOV  XL,-(XS)         KEEP SCBLK PTR
        !          7768: >        ZER  XL               IN CASE NO TRTIO BLK FOUND
        !          7769: >        MOV  WB,WC            KEEP INTEGER OR ZERO
        !          7770: >        MOV  XR,WB            COPY VRBLK PTR FOR RETURN
        !          7771: 18710,18715c17479,17483
        !          7772: < IOFC1  MOV  VRVAL(XR),XR     GET POSSIBLE TRBLK PTR
        !          7773: <        BNE  (XR),=B$TRT,IOFC2 FAIL IF END OF CHAIN
        !          7774: <        BNE  TRTYP(XR),=TRTFC,IOFC1 LOOP IF NOT FILE ARG TRBLK
        !          7775: <        MOV  TRFPT(XR),WA     GET FCBLK PTR
        !          7776: <        MOV  WB,XR            COPY ARG
        !          7777: <        EXI                   RETURN
        !          7778: ---
        !          7779: > IOFT2  MOV  VRVAL(XR),XR     GET POSSIBLE TRBLK PTR
        !          7780: >        BNE  (XR),=B$TRT,IOFT3 SKIP IF END OF CHAIN
        !          7781: >        BNE  TRTYP(XR),=TRTIO,IOFT2 LOOP IF NOT FILETAG TRBLK
        !          7782: >        MOV  TRTAG(XR),WA     GET IOTAG OR 0
        !          7783: >        MOV  XR,XL            TRTIO BLK PTR
        !          7784: 
        !          7785: 
        !          7786: 
        !          7787: 
        !          7788: 
        !          7789: 
        !          7790: 
        !          7791: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 119
        !          7792: 
        !          7793: 
        !          7794: 18717c17485
        !          7795: < *      FAIL RETURN
        !          7796: ---
        !          7797: > *      RETURN POINT
        !          7798: 18719c17487,17489
        !          7799: < IOFC2  EXI  1                FAIL
        !          7800: ---
        !          7801: > IOFT3  MOV  XL,XR            TRTIO BLK PTR OR 0
        !          7802: >        MOV  (XS)+,XL         RECOVER SCBLK PTR
        !          7803: >        EXI                   SUCCESSFUL RETURN
        !          7804: 18721c17491
        !          7805: < *      NULL ARG
        !          7806: ---
        !          7807: > *      FAIL RETURN
        !          7808: 18723,18724c17493
        !          7809: < IOFC3  EXI  2                NULL ARG RETURN
        !          7810: <        ENP                   END PROCEDURE IOFCB
        !          7811: ---
        !          7812: > IOFT4  EXI  1                FAIL
        !          7813: 18727c17496
        !          7814: < *      IOPPF -- PROCESS FILEARG2 FOR IOPUT
        !          7815: ---
        !          7816: > *      NON NUMERIC FILETAG
        !          7817: 18729,18755c17498,17500
        !          7818: < *      (R$XSC)               FILEARG2 PTR
        !          7819: < *      JSR  IOPPF            CALL TO PROCESS FILEARG2
        !          7820: < *      (XL)                  FILEARG1 PTR
        !          7821: < *      (XR)                  FILE ARG2 PTR
        !          7822: < *      -(XS)..-(XS)          FIELDS EXTRACTED FROM FILEARG2
        !          7823: < *      (WC)                  NO. OF FIELDS EXTRACTED
        !          7824: < *      (WB)                  INPUT/OUTPUT FLAG
        !          7825: < *      (WA)                  FCBLK PTR OR 0
        !          7826: < *
        !          7827: < IOPPF  PRC  N,0              ENTRY POINT
        !          7828: <        ZER  WB               TO COUNT FIELDS EXTRACTED
        !          7829: < *
        !          7830: < *      LOOP TO EXTRACT FIELDS
        !          7831: < *
        !          7832: < IOPP1  MOV  =IODEL,XL        GET DELIMITER
        !          7833: <        MOV  XL,WC            COPY IT
        !          7834: <        JSR  XSCAN            GET NEXT FIELD
        !          7835: <        MOV  XR,-(XS)         STACK IT
        !          7836: <        ICV  WB               INCREMENT COUNT
        !          7837: <        BNZ  WA,IOPP1         LOOP
        !          7838: <        MOV  WB,WC            COUNT OF FIELDS
        !          7839: <        MOV  IOPTT,WB         I/O MARKER
        !          7840: <        MOV  R$IOF,WA         FCBLK PTR OR 0
        !          7841: <        MOV  R$IO2,XR         FILE ARG2 PTR
        !          7842: <        MOV  R$IO1,XL         FILEARG1
        !          7843: <        EXI                   RETURN
        !          7844: <        ENP                   END PROCEDURE IOPPF
        !          7845: ---
        !          7846: > IOFT5  ZER  WC               NOTE NON NUMERIC
        !          7847: >        BRN  IOFT1            MERGE
        !          7848: >        ENP                   END PROCEDURE IOFTG
        !          7849: 18758c17503
        !          7850: 
        !          7851: 
        !          7852: 
        !          7853: 
        !          7854: 
        !          7855: 
        !          7856: 
        !          7857: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 120
        !          7858: 
        !          7859: 
        !          7860: < *      IOPUT -- ROUTINE USED BY INPUT AND OUTPUT
        !          7861: ---
        !          7862: > *      IOPUT -- PROCESS INPUT AND OUTPUT ARGUMENTS
        !          7863: 18760,18763c17505,17507
        !          7864: < *      IOPUT SETS UP INPUT/OUTPUT  ASSOCIATIONS. IT BUILDS
        !          7865: < *      SUCH TRACE AND FILE CONTROL BLOCKS AS ARE NECESSARY AND
        !          7866: < *      CALLS SYSFC,SYSIO TO PERFORM CHECKS ON THE
        !          7867: < *      ARGUMENTS AND TO OPEN THE FILES.
        !          7868: ---
        !          7869: > *      IOPUT CHECKS THE ARGUMENTS OF INPUT AND OUTPUT CALLS,
        !          7870: > *      SETS UP THE REQUIRED ASSOCIATIONS AND CALLS SYSIO TO
        !          7871: > *      OPEN THE REQUESTED FILES.
        !          7872: 18765,18820d17508
        !          7873: < *         +-----------+   +---------------+       +-----------+
        !          7874: < *      +-.I           I   I               I------.I   =B$XRT  I
        !          7875: < *      I  +-----------+   +---------------+       +-----------+
        !          7876: < *      I  /           /        (R$FCB)            I    *4     I
        !          7877: < *      I  /           /                           +-----------+
        !          7878: < *      I  +-----------+   +---------------+       I           I-
        !          7879: < *      I  I   NAME    +--.I    =B$TRT     I       +-----------+
        !          7880: < *      I  /           /   +---------------+       I           I
        !          7881: < *      I   (FIRST ARG)    I =TRTIN/=TRTOU I       +-----------+
        !          7882: < *      I                  +---------------+             I
        !          7883: < *      I                  I     VALUE     I             I
        !          7884: < *      I                  +---------------+             I
        !          7885: < *      I                  I(TRTRF) 0   OR I--+          I
        !          7886: < *      I                  +---------------+  I          I
        !          7887: < *      I                  I(TRFPT) 0   OR I----+        I
        !          7888: < *      I                  +---------------+  I I        I
        !          7889: < *      I                     (I/O TRBLK)     I I        I
        !          7890: < *      I  +-----------+                      I I        I
        !          7891: < *      I  I           I                      I I        I
        !          7892: < *      I  +-----------+                      I I        I
        !          7893: < *      I  I           I                      I I        I
        !          7894: < *      I  +-----------+   +---------------+  I I        I
        !          7895: < *      I  I           +--.I    =B$TRT     I.-+ I        I
        !          7896: < *      I  +-----------+   +---------------+    I        I
        !          7897: < *      I  /           /   I    =TRTFC     I    I        I
        !          7898: < *      I  /           /   +---------------+    I        I
        !          7899: < *      I    (FILEARG1     I     VALUE     I    I        I
        !          7900: < *      I         VRBLK)   +---------------+    I        I
        !          7901: < *      I                  I(TRTRF) 0   OR I--+ I        .
        !          7902: < *      I                  +---------------+  I .  +-----------+
        !          7903: < *      I                  I(TRFPT) 0   OR I------./   FCBLK   /
        !          7904: < *      I                  +---------------+  I    +-----------+
        !          7905: < *      I                       (TRTRF)       I
        !          7906: < *      I                                     I
        !          7907: < *      I                                     I
        !          7908: < *      I                  +---------------+  I
        !          7909: < *      I                  I    =B$XRT     I.-+
        !          7910: < *      I                  +---------------+
        !          7911: < *      I                  I      *5       I
        !          7912: < *      I                  +---------------+
        !          7913: < *      +------------------I               I
        !          7914: < *                         +---------------+       +-----------+
        !          7915: < *                         I(TRTRF) O   OR I------.I  =B$XRT   I
        !          7916: 
        !          7917: 
        !          7918: 
        !          7919: 
        !          7920: 
        !          7921: 
        !          7922: 
        !          7923: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 121
        !          7924: 
        !          7925: 
        !          7926: < *                         +---------------+       +-----------+
        !          7927: < *                         I  NAME OFFSET  I       I    ETC    I
        !          7928: < *                         +---------------+
        !          7929: < *                           (IOCHN - CHAIN OF NAME POINTERS)
        !          7930: <        EJC
        !          7931: < *
        !          7932: < *      IOPUT (CONTINUED)
        !          7933: < *
        !          7934: < *      NO ADDITIONAL TRAP BLOCKS ARE USED FOR STANDARD INPUT/OUT
        !          7935: < *      FILES. OTHERWISE AN I/O TRAP BLOCK IS ATTACHED TO SECOND
        !          7936: < *      ARG (FILEARG1) VRBLK. SEE DIAGRAM ABOVE FOR DETAILS OF
        !          7937: < *      THE STRUCTURE BUILT.
        !          7938: < *
        !          7939: 18822,18824c17510,17512
        !          7940: < *      -(XS)                 2ND ARG (FILE ARG1)
        !          7941: < *      -(XS)                 3RD ARG (FILE ARG2)
        !          7942: < *      (WB)                  0 FOR INPUT, 3 FOR OUTPUT ASSOC.
        !          7943: ---
        !          7944: > *      -(XS)                 2ND ARG (FILETAG)
        !          7945: > *      -(XS)                 3RD ARG (FILEPROPS)
        !          7946: > *      (WB)                  0 FOR INPUT, 2 FOR OUTPUT ASSOC.
        !          7947: 18827c17515
        !          7948: < *      PPM  LOC              2ND ARG NOT A SUITABLE NAME
        !          7949: ---
        !          7950: > *      PPM  LOC              2ND ARG NOT A SUITABLE FILETAG
        !          7951: 18829,18831c17517
        !          7952: < *      PPM  LOC              INAPPROPRIATE FILE SPEC FOR I/O
        !          7953: < *      PPM  LOC              I/O FILE DOES NOT EXIST
        !          7954: < *      PPM  LOC              I/O FILE CANNOT BE READ/WRITTEN
        !          7955: ---
        !          7956: > *      PPM  LOC              FAIL RETURN
        !          7957: 18835,18858d17520
        !          7958: < IOPUT  PRC  N,6              ENTRY POINT
        !          7959: <        ZER  R$IOT            IN CASE NO TRTRF BLOCK USED
        !          7960: <        ZER  R$IOF            IN CASE NO FCBLK ALOCATED
        !          7961: <        MOV  WB,IOPTT         STORE I/O TRACE TYPE
        !          7962: <        JSR  XSCNI            PREPARE TO SCAN FILEARG2
        !          7963: <        PPM  IOP13            FAIL
        !          7964: <        PPM  IOPA0            NULL FILE ARG2
        !          7965: < *
        !          7966: < IOPA0  MOV  XR,R$IO2         KEEP FILE ARG2
        !          7967: <        MOV  WA,XL            COPY LENGTH
        !          7968: <        JSR  GTSTG            CONVERT FILEARG1 TO STRING
        !          7969: <        PPM  IOP14            FAIL
        !          7970: <        MOV  XR,R$IO1         KEEP FILEARG1 PTR
        !          7971: <        JSR  GTNVR            CONVERT TO NATURAL VARIABLE
        !          7972: <        PPM  IOP00            JUMP IF NULL
        !          7973: <        BRN  IOP04            JUMP TO PROCESS NON-NULL ARGS
        !          7974: < *
        !          7975: < *      NULL FILEARG1
        !          7976: < *
        !          7977: < IOP00  BZE  XL,IOP01         SKIP IF BOTH ARGS NULL
        !          7978: <        JSR  IOPPF            PROCESS FILEARG2
        !          7979: <        JSR  SYSFC            CALL FOR FILEARG2 CHECK
        !          7980: <        PPM  IOP16            FAIL
        !          7981: <        BRN  IOP11            COMPLETE FILE ASSOCIATION
        !          7982: 
        !          7983: 
        !          7984: 
        !          7985: 
        !          7986: 
        !          7987: 
        !          7988: 
        !          7989: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 122
        !          7990: 
        !          7991: 
        !          7992: 18859a17522,17538
        !          7993: > *      FIRST ARG NAME
        !          7994: > *      I      I
        !          7995: > *      +------+
        !          7996: > *      I      I-----+
        !          7997: > *      +------+     V
        !          7998: > *      I      I   +----------------+
        !          7999: > *                 I     =B$TRT     I
        !          8000: > *                 +----------------+
        !          8001: > *                 I =TRTIN/=TRTOU  I
        !          8002: > *                 +----------------+
        !          8003: > *                 I VALUE OR TRCHN +
        !          8004: > *                 +----------------+
        !          8005: > *           TRTER I                I-----+
        !          8006: > *                 +----------------+     V
        !          8007: > *           TRTRI I        0       I   +------+
        !          8008: > *                 +----------------+   I      I SVBLK
        !          8009: > *                  I/O TRACE BLOCK     +------+
        !          8010: 18861c17540
        !          8011: < *      IOPUT (CONTINUED)
        !          8012: ---
        !          8013: > *      1. ASSOCIATION TO STANDARD FILES.
        !          8014: 18863c17542,17558
        !          8015: < *      HERE WITH 0 OR FCBLK PTR IN (XL)
        !          8016: ---
        !          8017: > *      FIRST ARG NAME                      FILETAG VRBLK
        !          8018: > *      I      I                              I      I
        !          8019: > *      +------+  LK1                         +------+ LK2
        !          8020: > *      I      I---+                  +---+   I      I---+
        !          8021: > *      +------+   V                  I   V   +------+   V
        !          8022: > *      I      I  +----------------+  I  +----------------+
        !          8023: > *                I     =B$TRT     I  I  I     =B$TRT     I
        !          8024: > *                +----------------+  I  +----------------+
        !          8025: > *                I =TRTIN/=TRTOU  I  I  I     =TRTIO     I
        !          8026: > *                +----------------+  I  +----------------+
        !          8027: > *                I VALUE OR TRCHN I  I  I VALUE OR TRCHN I
        !          8028: > *                +----------------+  I  +----------------+
        !          8029: > *          TRTER I       0        I  I  I   0 OR IOTAG   I TRTAG
        !          8030: > *                +----------------+  I  +----------------+
        !          8031: > *          TRTRI I                I--+  I        0       I TRTRI
        !          8032: > *                +----------------+     +----------------+
        !          8033: > *                 I/O TRACE BLOCK           TRTIO BLOCK
        !          8034: 18865,18875c17560
        !          8035: < IOP01  MOV  IOPTT,WB         GET TRACE TYPE
        !          8036: <        MOV  R$IOT,XR         GET 0 OR TRTRF PTR
        !          8037: <        JSR  TRBLD            BUILD TRBLK
        !          8038: <        MOV  XR,WC            COPY TRBLK POINTER
        !          8039: <        MOV  (XS)+,XR         GET VARIABLE FROM STACK
        !          8040: <        JSR  GTVAR            POINT TO VARIABLE
        !          8041: <        PPM  IOP15            FAIL
        !          8042: <        MOV  XL,R$ION         SAVE NAME POINTER
        !          8043: <        MOV  XL,XR            COPY NAME POINTER
        !          8044: <        ADD  WA,XR            POINT TO VARIABLE
        !          8045: <        SUB  *VRVAL,XR        SUBTRACT OFFSET,MERGE INTO LOOP
        !          8046: ---
        !          8047: > *      2. REGULAR CASE.
        !          8048: 
        !          8049: 
        !          8050: 
        !          8051: 
        !          8052: 
        !          8053: 
        !          8054: 
        !          8055: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 123
        !          8056: 
        !          8057: 
        !          8058: 18877,18902c17562,17579
        !          8059: < *      LOOP TO END OF TRBLK CHAIN IF ANY
        !          8060: < *
        !          8061: < IOP02  MOV  XR,XL            COPY BLK PTR
        !          8062: <        MOV  VRVAL(XR),XR     LOAD PTR TO NEXT TRBLK
        !          8063: <        BNE  (XR),=B$TRT,IOP03    JUMP IF NOT TRAPPED
        !          8064: <        BNE  TRTYP(XR),IOPTT,IOP02 LOOP IF NOT SAME ASSOCN
        !          8065: <        MOV  TRNXT(XR),XR     GET VALUE AND DELETE OLD TRBLK
        !          8066: < *
        !          8067: < *      IOPUT (CONTINUED)
        !          8068: < *
        !          8069: < *      STORE NEW ASSOCIATION
        !          8070: < *
        !          8071: < IOP03  MOV  WC,VRVAL(XL)     LINK TO THIS TRBLK
        !          8072: <        MOV  WC,XL            COPY POINTER
        !          8073: <        MOV  XR,TRNXT(XL)     STORE VALUE IN TRBLK
        !          8074: <        MOV  R$ION,XR         RESTORE POSSIBLE VRBLK POINTER
        !          8075: <        MOV  WA,WB            KEEP OFFSET TO NAME
        !          8076: <        JSR  SETVR            IF VRBLK, SET VRGET,VRSTO
        !          8077: <        MOV  R$IOT,XR         GET 0 OR TRTRF PTR
        !          8078: <        BNZ  XR,IOP19         JUMP IF TRTRF BLOCK EXISTS
        !          8079: <        EXI                   RETURN TO CALLER
        !          8080: < *
        !          8081: < *      NON STANDARD FILE
        !          8082: < *      SEE IF AN FCBLK HAS ALREADY BEEN ALLOCATED.
        !          8083: < *
        !          8084: < IOP04  ZER  WA               IN CASE NO FCBLK FOUND
        !          8085: ---
        !          8086: > *      THE STRUCTURES BUILT FOR I/O ASSOCIATIONS ARE AS SHOWN
        !          8087: > *      ABOVE. A TRACE BLOCK CHAIN (TRCHN) MAY HOLD ANY OR ALL
        !          8088: > *      OF THE TYPES, =TRTIN, =TRTOU, =TRTIO, BUT NOT MORE THAN
        !          8089: > *      ONE BLOCK OF ANY GIVEN TYPE. CASES ARE -
        !          8090: > *      1. NO FILETAG OR IOTAG IS USED FOR ASSOCIATING STANDARD
        !          8091: > *         FILES (SYSRD, SYSPR, TERMINAL). THE I/O TRACE BLOCK
        !          8092: > *         IS DISTINGUISHED BY A NON-NULL TRTER FIELD POINTING
        !          8093: > *         TO THE RELEVANT SVBLK (V$INP, V$OUP, V$TER) AND A
        !          8094: > *         ZERO TRTRI FIELD. FOR TERMINAL, TRBLKS OF BOTH
        !          8095: > *         INPUT AND OUTPUT TYPE ARE CHAINED FROM THE FIRST ARG
        !          8096: > *         VIA THE TRCHN FIELD.
        !          8097: > *      2. THE I/O TRACE BLOCK FOR THE REGULAR CASE HAS A ZERO
        !          8098: > *         TRTER FIELD AND A POINTER TO A TRTIO BLOCK IS IN
        !          8099: > *         THE TRTRI FIELD. THE FILETAG MUST BE A NATURAL
        !          8100: > *         VARIABLE AND THE TRTIO TRACE BLOCK ATTACHED TO IT
        !          8101: > *         HOLDS THE IOTAG.
        !          8102: > *      THE EFFECT OF ENDFILE() IS TO CLEAR IOTAG AND BREAK LK2.
        !          8103: > *      THE EFFECT OF DETACH() IS TO BREAK LK1.
        !          8104: 18903a17581,17586
        !          8105: > IOPUT  PRC  N,4              ENTRY POINT
        !          8106: >        MOV  WB,IOPWB         KEEP ASSOCIATION TYPE FLAG
        !          8107: >        JSR  GTSTG            CONVERT THIRD ARG TO STRING
        !          8108: >        PPM  IOP12            FAIL THIRD ARG
        !          8109: >        BNZ  WA,IOP01         SKIP IF NON NULL
        !          8110: >        ZER  XR               NOTE NULL ARG
        !          8111: 18905c17588
        !          8112: < *      IOPUT (CONTINUED)
        !          8113: ---
        !          8114: 
        !          8115: 
        !          8116: 
        !          8117: 
        !          8118: 
        !          8119: 
        !          8120: 
        !          8121: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 124
        !          8122: 
        !          8123: 
        !          8124: > *      PROCESS SECOND ARG
        !          8125: 18907,18950c17590,17610
        !          8126: < *      SEARCH POSSIBLE TRBLK CHAIN TO PICK UP THE FCBLK
        !          8127: < *
        !          8128: < IOP05  MOV  XR,WB            REMEMBER BLK PTR
        !          8129: <        MOV  VRVAL(XR),XR     CHAIN ALONG
        !          8130: <        BNE  (XR),=B$TRT,IOP06 JUMP IF END OF TRBLK CHAIN
        !          8131: <        BNE  TRTYP(XR),=TRTFC,IOP05 LOOP IF MORE TO GO
        !          8132: <        MOV  XR,R$IOT         POINT TO FILE ARG1 TRBLK
        !          8133: <        MOV  TRFPT(XR),WA     GET FCBLK PTR FROM TRBLK
        !          8134: < *
        !          8135: < *      WA = 0 OR FCBLK PTR
        !          8136: < *      WB = PTR TO PRECEDING BLK TO WHICH ANY TRTRF BLOCK
        !          8137: < *           FOR FILE ARG1 MUST BE CHAINED.
        !          8138: < *
        !          8139: < IOP06  MOV  WA,R$IOF         KEEP POSSIBLE FCBLK PTR
        !          8140: <        MOV  WB,R$IOP         KEEP PRECEDING BLK PTR
        !          8141: <        JSR  IOPPF            PROCESS FILEARG2
        !          8142: <        JSR  SYSFC            SEE IF FCBLK REQUIRED
        !          8143: <        PPM  IOP16            FAIL
        !          8144: <        BZE  WA,IOP12         SKIP IF NO NEW FCBLK WANTED
        !          8145: <        BLT  WC,=NUM02,IOP6A  JUMP IF FCBLK IN DYNAMIC
        !          8146: <        JSR  ALOST            GET IT IN STATIC
        !          8147: <        BRN  IOP6B            SKIP
        !          8148: < *
        !          8149: < *      OBTAIN FCBLK IN DYNAMIC
        !          8150: < *
        !          8151: < IOP6A  JSR  ALLOC            GET SPACE FOR FCBLK
        !          8152: < *
        !          8153: < *      MERGE
        !          8154: < *
        !          8155: < IOP6B  MOV  XR,XL            POINT TO FCBLK
        !          8156: <        MOV  WA,WB            COPY ITS LENGTH
        !          8157: <        BTW  WB               GET COUNT AS WORDS (SGD APR80)
        !          8158: <        LCT  WB,WB            LOOP COUNTER
        !          8159: < *
        !          8160: < *      CLEAR FCBLK
        !          8161: < *
        !          8162: < IOP07  ZER  (XR)+            CLEAR A WORD
        !          8163: <        BCT  WB,IOP07         LOOP
        !          8164: <        BEQ  WC,=NUM02,IOP09  SKIP IF IN STATIC - DONT SET FIELDS
        !          8165: <        MOV  =B$XNT,(XL)      STORE XNBLK CODE IN CASE
        !          8166: <        MOV  WA,1(XL)         STORE LENGTH
        !          8167: <        BNZ  WC,IOP09         JUMP IF XNBLK WANTED
        !          8168: <        MOV  =B$XRT,(XL)      XRBLK CODE REQUESTED
        !          8169: < *
        !          8170: ---
        !          8171: > IOP01  MOV  XR,R$IOR         KEEP FILEPROPS STRING PTR
        !          8172: >        JSR  IOFTG            CHECK SECOND ARG
        !          8173: >        PPM  IOP07            FAIL SECOND ARG
        !          8174: >        MOV  XL,R$IOL         KEEP SCBLK FOR FILETAG
        !          8175: >        MOV  XR,R$IOT         KEEP TRTIO BLK PTR
        !          8176: >        MOV  WA,IOPWA         KEEP IOTAG
        !          8177: >        MOV  WB,IOPVR         KEEP FILETAG VRBLK PTR
        !          8178: >        MOV  WC,IOPWC         KEEP FILETAG VALUE
        !          8179: >        MOV  (XS)+,XR         GET FIRST ARG OFF STACK
        !          8180: 
        !          8181: 
        !          8182: 
        !          8183: 
        !          8184: 
        !          8185: 
        !          8186: 
        !          8187: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 125
        !          8188: 
        !          8189: 
        !          8190: >        JSR  GTVAR            CONVERT TO NAME
        !          8191: >        PPM  IOP13            FAIL FIRST ARG
        !          8192: >        MOV  XL,R$IO1         SAVE FIRST ARG NAME BASE ADRS
        !          8193: >        MOV  WA,IOPNF         SAVE FIRST ARG NAME OFFSET
        !          8194: >        MOV  WB,XR            FILETAG VRBLK PTR
        !          8195: >        BNZ  VRLEN(XR),IOP02  NOT SPECIAL CASE IF NOT SYS NAME
        !          8196: >        MOV  VRSVP(XR),WC     GET SVBLK PTR
        !          8197: >        MOV  =TRTIN,WB        IN CASE .INPUT
        !          8198: >        BEQ  WC,=V$INP,IOP06  JUMP IF .INPUT
        !          8199: >        MOV  =TRTOU,WB        IN CASE .OUTPUT OR .TERMINAL
        !          8200: >        BEQ  WC,=V$OUP,IOP08  JUMP IF .OUTPUT
        !          8201: >        BEQ  WC,=V$TER,IOP09  JUMP IF .TERMINAL
        !          8202: 18952d17611
        !          8203: < *      IOPUT (CONTINUED)
        !          8204: 18954c17613
        !          8205: < *      COMPLETE FCBLK INITIALISATION
        !          8206: ---
        !          8207: > *      NORMAL CASE
        !          8208: 18956,18958c17615,17624
        !          8209: < IOP09  MOV  R$IOT,XR         GET POSSIBLE TRBLK PTR
        !          8210: <        MOV  XL,R$IOF         STORE FCBLK PTR
        !          8211: <        BNZ  XR,IOP10         JUMP IF TRBLK ALREADY FOUND
        !          8212: ---
        !          8213: > IOP02  BNZ  R$IOT,IOP03      SKIP IF TRTIO BLK EXISTS ALREADY
        !          8214: >        MOV  =TRTIO,WB        TRACE BLOCK TYPE WORD
        !          8215: >        ZER  XR               ZERO IOTAG WORD
        !          8216: >        ZER  XL               ZERO TRTRI FIELD
        !          8217: >        JSR  TRBLD            BUILD TRTIO TRBLK
        !          8218: >        MOV  XR,R$IOT         SAVE TRTIO BLK PTR
        !          8219: >        MOV  IOPVR,XL         GET FILETAG VRBLK
        !          8220: >        MOV  *VRVAL,WA        OFFSET TO VALUE FIELD
        !          8221: >        JSR  TRCHN            PLACE IN TRBLK CHAIN FOR FILETAG
        !          8222: >        PPM                   UNUSED RETURN
        !          8223: 18960c17626
        !          8224: < *      A NEW TRBLK IS NEEDED
        !          8225: ---
        !          8226: > *      MERGE TO BUILD TRBLK FOR FIRST ARG
        !          8227: 18962,18970c17628,17630
        !          8228: <        MOV  =TRTFC,WB        TRTYP FOR FCBLK TRAP BLK
        !          8229: <        JSR  TRBLD            MAKE THE BLOCK
        !          8230: <        MOV  XR,R$IOT         COPY TRTRF PTR
        !          8231: <        MOV  R$IOP,XL         POINT TO PRECEDING BLK
        !          8232: <        MOV  VRVAL(XL),VRVAL(XR) COPY VALUE FIELD TO TRBLK
        !          8233: <        MOV  XR,VRVAL(XL)     LINK NEW TRBLK INTO CHAIN
        !          8234: <        MOV  XL,XR            POINT TO PREDECESSOR BLK
        !          8235: <        JSR  SETVR            SET TRACE INTERCEPTS
        !          8236: <        MOV  VRVAL(XR),XR     RECOVER TRBLK PTR
        !          8237: ---
        !          8238: > IOP03  MOV  =TRTIN,WB        IN CASE INPUT
        !          8239: >        BZE  IOPWB,IOP04      SKIP IF SO
        !          8240: >        MOV  =TRTOU,WB        IN CASE OUTPUT
        !          8241: 18972c17632
        !          8242: < *      XR IS PTR TO TRBLK, XL IS FCBLK PTR OR 0
        !          8243: ---
        !          8244: > *      BUILD TRACE BLOCK
        !          8245: 18974c17634,17641
        !          8246: 
        !          8247: 
        !          8248: 
        !          8249: 
        !          8250: 
        !          8251: 
        !          8252: 
        !          8253: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 126
        !          8254: 
        !          8255: 
        !          8256: < IOP10  MOV  R$IOF,TRFPT(XR)  STORE FCBLK PTR
        !          8257: ---
        !          8258: > IOP04  ICV  IOPWB            NOTE NOT STANDARD I/O FILE
        !          8259: >        MOV  R$IOT,XL         TRTIO BLK PTR TO TRTRI FIELD
        !          8260: >        ZER  XR               ZERO TRTER FIELD
        !          8261: >        JSR  TRBLD            BUILD I/O TRACE BLOCK
        !          8262: >        MOV  R$IO1,XL         ASSOCIATED VBL NAME BASE
        !          8263: >        MOV  IOPNF,WA         NAME OFFSET
        !          8264: >        JSR  TRCHN            UPDATE TRACE CHAIN FOR FIRST ARG
        !          8265: >        PPM                   UNUSED RETURN
        !          8266: 18976c17643
        !          8267: < *      CALL SYSIO TO COMPLETE FILE ACCESSING
        !          8268: ---
        !          8269: > *      PREPARE FOR AND MAKE SYSIO CALL
        !          8270: 18978,19003c17645,17656
        !          8271: < IOP11  MOV  R$IOF,WA         COPY FCBLK PTR OR 0
        !          8272: <        MOV  IOPTT,WB         GET INPUT/OUTPUT FLAG
        !          8273: <        MOV  R$IO2,XR         GET FILE ARG2
        !          8274: <        MOV  R$IO1,XL         GET FILE ARG1
        !          8275: <        JSR  SYSIO            ASSOCIATE TO THE FILE
        !          8276: <        PPM  IOP17            FAIL
        !          8277: <        PPM  IOP18            FAIL
        !          8278: <        BNZ  R$IOT,IOP01      NOT STD INPUT IF NON-NULL TRTRF BLK
        !          8279: <        BNZ  IOPTT,IOP01      JUMP IF OUTPUT
        !          8280: <        BZE  WC,IOP01         NO CHANGE TO STANDARD READ LENGTH
        !          8281: <        MOV  WC,CSWIN         STORE NEW READ LENGTH FOR STD FILE
        !          8282: <        BRN  IOP01            MERGE TO FINISH THE TASK
        !          8283: < *
        !          8284: < *      SYSFC MAY HAVE RETURNED A POINTER TO A PRIVATE FCBLK
        !          8285: < *
        !          8286: < IOP12  BNZ  XL,IOP09         JUMP IF PRIVATE FCBLK
        !          8287: <        BRN  IOP11            FINISH THE ASSOCIATION
        !          8288: < *
        !          8289: < *      FAILURE RETURNS
        !          8290: < *
        !          8291: < IOP13  EXI  1                3RD ARG NOT A STRING
        !          8292: < IOP14  EXI  2                2ND ARG UNSUITABLE
        !          8293: < IOP15  EXI  3                1ST ARG UNSUITABLE
        !          8294: < IOP16  EXI  4                FILE SPEC WRONG
        !          8295: < IOP17  EXI  5                I/O FILE DOES NOT EXIST
        !          8296: < IOP18  EXI  6                I/O FILE CANNOT BE READ/WRITTEN
        !          8297: ---
        !          8298: > IOP05  MOV  R$IOL,XL         FILETAG SCBLK PTR
        !          8299: >        MOV  R$IOR,XR         FILEPROPS SCBLK PTR
        !          8300: >        MOV  IOPWA,WA         IOTAG OR ZERO
        !          8301: >        MOV  IOPWB,WB         ASSOCIATION TYPE NUMBER
        !          8302: >        MOV  IOPWC,WC         POSSIBLE FILETAG VALUE
        !          8303: >        JSR  SYSIO            CALL SYSTEM ROUTINE TO OPEN FILE
        !          8304: >        PPM  IOP14            FAIL RETURN
        !          8305: >        PPM  EROSI            ERROR RETURN
        !          8306: >        MOV  R$IOT,XL         TRTIO POINTER
        !          8307: >        BZE  XL,IOP11         DONE IF ZERO
        !          8308: >        MOV  WA,TRTAG(XL)     STORE RETURNED IOTAG
        !          8309: >        BRN  IOP11            SUCCEED
        !          8310: 19006c17659
        !          8311: < *      IOPUT (CONTINUED)
        !          8312: 
        !          8313: 
        !          8314: 
        !          8315: 
        !          8316: 
        !          8317: 
        !          8318: 
        !          8319: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 127
        !          8320: 
        !          8321: 
        !          8322: ---
        !          8323: > *      SPECIAL CASE OF .INPUT
        !          8324: 19008,19009c17661
        !          8325: < *      ADD TO IOCHN CHAIN OF ASSSOCIATED VARIABLES UNLESS ALREAD
        !          8326: < *      PRESENT.
        !          8327: ---
        !          8328: > IOP06  BZE  IOPWB,IOP09      FAIL OUTPUT(.X,.INPUT)
        !          8329: 19011c17663
        !          8330: < IOP19  MOV  R$ION,WC         WC = NAME BASE, WB = NAME OFFSET
        !          8331: ---
        !          8332: > *      BAD FILETAG
        !          8333: 19013c17665
        !          8334: < *      SEARCH LOOP
        !          8335: ---
        !          8336: > IOP07  EXI  2                ERRONEOUS SECOND ARG
        !          8337: 19015,19019c17667
        !          8338: < IOP20  MOV  TRTRF(XR),XR     NEXT LINK OF CHAIN
        !          8339: <        BZE  XR,IOP21         NOT FOUND
        !          8340: <        BNE  WC,IONMB(XR),IOP20 NO MATCH
        !          8341: <        BEQ  WB,IONMO(XR),IOP22 EXIT IF MATCHED
        !          8342: <        BRN  IOP20            LOOP
        !          8343: ---
        !          8344: > *      SPECIAL CASE OF .OUTPUT
        !          8345: 19021c17669
        !          8346: < *      NOT FOUND
        !          8347: ---
        !          8348: > IOP08  BZE  IOPWB,IOP07      FAIL INPUT(.X,.OUTPUT)
        !          8349: 19023,19032c17671
        !          8350: < IOP21  MOV  *NUM05,WA        SPACE NEEDED
        !          8351: <        JSR  ALLOC            GET IT
        !          8352: <        MOV  =B$XRT,(XR)      STORE XRBLK CODE
        !          8353: <        MOV  WA,1(XR)         STORE LENGTH
        !          8354: <        MOV  WC,IONMB(XR)     STORE NAME BASE
        !          8355: <        MOV  WB,IONMO(XR)     STORE NAME OFFSET
        !          8356: <        MOV  R$IOT,XL         POINT TO TRTRF BLK
        !          8357: <        MOV  TRTRF(XL),WA     GET PTR FIELD CONTENTS
        !          8358: <        MOV  XR,TRTRF(XL)     STORE PTR TO NEW BLOCK
        !          8359: <        MOV  WA,TRTRF(XR)     COMPLETE THE LINKING
        !          8360: ---
        !          8361: > *      SPECIAL CASE OF .TERMINAL AND MERGE FOR OTHERS
        !          8362: 19034c17673,17685
        !          8363: < *      INSERT FCBLK ON FCBLK CHAIN FOR SYSEJ, SYSXI
        !          8364: ---
        !          8365: > IOP09  ZER  R$IOT            NOTE NO TRTIO BLOCK
        !          8366: >        MOV  WC,XR            SVBLK PTR FOR TRTER FIELD
        !          8367: >        ZER  XL               ZERO TRTRI FIELD
        !          8368: >        JSR  TRBLD            BUILD TRBLK
        !          8369: >        MOV  R$IO1,XL         ASSOCIATED VBL NAME BASE
        !          8370: >        MOV  IOPNF,WA         NAME OFFSET
        !          8371: >        JSR  TRCHN            UPDATE TRACE CHAIN FOR ARG 1
        !          8372: >        PPM                   UNUSED RETURN
        !          8373: >        BNE  TRTER(XR),=V$TER,IOP10 DONE UNLESS TERMINAL
        !          8374: >        BNE  TRTYP(XR),=TRTOU,IOP10 DONE IF TERM. 2ND TIME ROUND
        !          8375: >        MOV  =V$TER,WC        TRTER FIELD
        !          8376: >        MOV  =TRTIN,WB        TRTYP FIELD
        !          8377: >        BRN  IOP09            REPEAT LOOP FOR TERMINAL
        !          8378: 
        !          8379: 
        !          8380: 
        !          8381: 
        !          8382: 
        !          8383: 
        !          8384: 
        !          8385: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 128
        !          8386: 
        !          8387: 
        !          8388: 19036,19037c17687
        !          8389: < IOP22  BZE  R$IOF,IOP25      SKIP IF NO FCBLK
        !          8390: <        MOV  R$FCB,XL         PTR TO HEAD OF EXISTING CHAIN
        !          8391: ---
        !          8392: > *      CHECK SPECIAL CASES FOR NON-NULL THIRD ARGS
        !          8393: 19039c17689,17690
        !          8394: < *      SEE IF FCBLK ALREADY ON CHAIN
        !          8395: ---
        !          8396: > IOP10  ZER  IOPWA            NO IOTAG
        !          8397: >        BNZ  R$IOR,IOP05      MERGE ONLY IF FILEPROPS NON-NULL
        !          8398: 19041,19044c17692
        !          8399: < IOP23  BZE  XL,IOP24         NOT ON IF END OF CHAIN
        !          8400: <        BEQ  3(XL),R$IOF,IOP25 DONT DUPLICATE IF FIND IT
        !          8401: <        MOV  2(XL),XL         GET NEXT LINK
        !          8402: <        BRN  IOP23            LOOP
        !          8403: ---
        !          8404: > *      SUCCESS RETURN
        !          8405: 19046c17694,17698
        !          8406: < *      NOT FOUND SO ADD AN ENTRY FOR THIS FCBLK
        !          8407: ---
        !          8408: > IOP11  ZER  R$IO1            CLEAR GARBAGE
        !          8409: >        ZER  R$IOL
        !          8410: >        ZER  R$IOR
        !          8411: >        ZER  R$IOT
        !          8412: >        EXI                   RETURN TO CALLER
        !          8413: 19048,19054c17700
        !          8414: < IOP24  MOV  *NUM04,WA        SPACE NEEDED
        !          8415: <        JSR  ALLOC            GET IT
        !          8416: <        MOV  =B$XRT,(XR)      STORE BLOCK CODE
        !          8417: <        MOV  WA,1(XR)         STORE LENGTH
        !          8418: <        MOV  R$FCB,2(XR)      STORE PREVIOUS LINK IN THIS NODE
        !          8419: <        MOV  R$IOF,3(XR)      STORE FCBLK PTR
        !          8420: <        MOV  XR,R$FCB         INSERT NODE INTO FCBLK CHAIN
        !          8421: ---
        !          8422: > *      ERROR RETURNS
        !          8423: 19056c17702
        !          8424: < *      RETURN
        !          8425: ---
        !          8426: > IOP12  EXI  1                ERRONEOUS THIRD ARG
        !          8427: 19058c17704,17706
        !          8428: < IOP25  EXI                   RETURN TO CALLER
        !          8429: ---
        !          8430: > IOP13  EXI  3                ERRONEOUS FIRST ARG
        !          8431: > *
        !          8432: > IOP14  EXI  4                FAIL RETURN FROM SYSIO
        !          8433: 19098,19099c17746
        !          8434: <        JSR  PRTVL            PRINT KEYWORD VALUE
        !          8435: <        JSR  PRTNL            TERMINATE PRINT LINE
        !          8436: ---
        !          8437: >        JSR  PRTVF            PRINT KEYWORD VALUE
        !          8438: 19144c17791
        !          8439: < KWNM1  ERB  251,KEYWORD OPERAND IS NOT NAME OF DEFINED KEYWORD
        !          8440: ---
        !          8441: > KWNM1  ERB  230,KEYWORD OPERAND IS NOT NAME OF DEFINED KEYWORD
        !          8442: 19173c17820
        !          8443: <        BLO  WA,WB,LCMP1      JUMP IF ARG 1 LENGTH IS SMALLER
        !          8444: 
        !          8445: 
        !          8446: 
        !          8447: 
        !          8448: 
        !          8449: 
        !          8450: 
        !          8451: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 129
        !          8452: 
        !          8453: 
        !          8454: ---
        !          8455: >        BLO  WA,WB,LCMP0      JUMP IF ARG 1 LENGTH IS SMALLER
        !          8456: 19178,19179c17825,17830
        !          8457: < LCMP1  CMC  LCMP4,LCMP3      COMPARE STRINGS, JUMP IF UNEQUAL
        !          8458: <        BNE  WB,WC,LCMP2      IF EQUAL, JUMP IF LENGTHS UNEQUAL
        !          8459: ---
        !          8460: > LCMP0  BZE  WA,LCMP1         SKIP IF A NULL ARG
        !          8461: >        CMC  LCMP4,LCMP3      COMPARE STRINGS, JUMP IF UNEQUAL
        !          8462: > *
        !          8463: > *      EQUAL STRINGS OR AT LEAST ONE NULL ARG
        !          8464: > *
        !          8465: > LCMP1  BNE  WB,WC,LCMP2      IF EQUAL, JUMP IF LENGTHS UNEQUAL
        !          8466: 19239c17890,17897
        !          8467: <        BNZ  CNTTL,LIST5      JUMP IF -TITLE OR -STITL
        !          8468: ---
        !          8469: >        MOV  STAGE,WA         GET COMPILER STAGE
        !          8470: >        BEQ  WA,=STGIC,LIST0  LIST OK IF INITIAL COMPILE
        !          8471: >        BEQ  WA,=STGCE,LIST0  LIST OK IF END LINE
        !          8472: >        BRN  LIST4            ELSE NO LISTING OF SOURCE
        !          8473: > *
        !          8474: > *      HERE WHEN STAGE IS OK TO LIST
        !          8475: > *
        !          8476: > LIST0  BNZ  CNTTL,LIST5      JUMP IF -TITLE OR -STITL
        !          8477: 19245c17903
        !          8478: < LIST0  MOV  R$CIM,XR         LOAD POINTER TO CURRENT IMAGE
        !          8479: ---
        !          8480: > LIST1  MOV  R$CIM,XR         LOAD POINTER TO CURRENT IMAGE
        !          8481: 19251d17908
        !          8482: <        BNE  STAGE,=STGIC,LIST1 SKIP IF EXECUTE TIME
        !          8483: 19254,19257c17911
        !          8484: < *
        !          8485: < *      PRINT STATEMENT NUMBER
        !          8486: < *
        !          8487: < LIST1  JSR  PRTIN            ELSE PRINT STATEMENT NUMBER
        !          8488: ---
        !          8489: >        JSR  PRTIN            ELSE PRINT STATEMENT NUMBER
        !          8490: 19267c17921
        !          8491: <        JSR  PRTST            PRINT IT
        !          8492: ---
        !          8493: >        JSR  PRTSF            PRINT IT
        !          8494: 19269,19273c17923
        !          8495: <        BNZ  ERLST,LIST3      JUMP IF ERROR COPY TO INT.CH.
        !          8496: <        JSR  PRTNL            TERMINATE LINE
        !          8497: <        BZE  CSWDB,LIST3      JUMP IF -SINGLE MODE
        !          8498: <        JSR  PRTNL            ELSE ADD A BLANK LINE
        !          8499: <        ICV  LSTLC            AND BUMP LINE COUNTER
        !          8500: ---
        !          8501: >        MNZ  LSTPF            SET FLAG FOR LINE PRINTED
        !          8502: 19275,19278d17924
        !          8503: < *      HERE AFTER PRINTING SOURCE IMAGE
        !          8504: < *
        !          8505: < LIST3  MNZ  LSTPF            SET FLAG FOR LINE PRINTED
        !          8506: < *
        !          8507: 19290,19291c17936,17937
        !          8508: <        BZE  PRICH,LIST7      SKIP IF LISTING TO REGULAR PRINTER
        !          8509: <        BEQ  R$TTL,=NULLS,LIST0 TERMINAL LISTING OMITS NULL TITLE
        !          8510: 
        !          8511: 
        !          8512: 
        !          8513: 
        !          8514: 
        !          8515: 
        !          8516: 
        !          8517: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 130
        !          8518: 
        !          8519: 
        !          8520: ---
        !          8521: >        BNZ  PRLEN,LIST7      SKIP IF LISTING TO REGULAR PRINTER
        !          8522: >        BEQ  R$TTL,=NULLS,LIST1 TERMINAL LISTING OMITS NULL TITLE
        !          8523: 19296c17942
        !          8524: <        BRN  LIST0            MERGE
        !          8525: ---
        !          8526: >        BRN  LIST1            MERGE
        !          8527: 19316c17962
        !          8528: <        JSR  PRTNL            TERMINATE TITLE LINE
        !          8529: ---
        !          8530: >        JSR  PRTFH            TERMINATE TITLE LINE
        !          8531: 19323,19324c17969
        !          8532: <        JSR  PRTST            ELSE PRINT SUB-TITLE
        !          8533: <        JSR  PRTNL            TERMINATE LINE
        !          8534: ---
        !          8535: >        JSR  PRTSF            ELSE PRINT SUB-TITLE
        !          8536: 19329c17974
        !          8537: < LSTT1  JSR  PRTNL            PRINT A BLANK LINE
        !          8538: ---
        !          8539: > LSTT1  JSR  PRTFH            PRINT A BLANK LINE
        !          8540: 19358c18003
        !          8541: <        BZE  CSWLS,NXTS2      JUMP IF -NOLIST
        !          8542: ---
        !          8543: >        BZE  CSWLS,NXTS1      JUMP IF -NOLIST
        !          8544: 19360c18005
        !          8545: <        BZE  XR,NXTS2         JUMP IF NO IMAGE
        !          8546: ---
        !          8547: >        BZE  XR,NXTS1         JUMP IF NO IMAGE
        !          8548: 19363,19364c18008,18009
        !          8549: <        BNE  WA,=CH$MN,NXTS1  JUMP IF NOT CTRL CARD
        !          8550: <        BZE  CSWPR,NXTS2      JUMP IF -NOPRINT
        !          8551: ---
        !          8552: >        BEQ  WA,=CH$MN,NXTS1  SKIP LISTING IF CONTROL CARD
        !          8553: >        JSR  LISTR            LIST LINE
        !          8554: 19366,19369d18010
        !          8555: < *      HERE TO CALL LISTER
        !          8556: < *
        !          8557: < NXTS1  JSR  LISTR            LIST LINE
        !          8558: < *
        !          8559: 19372c18013
        !          8560: < NXTS2  MOV  R$CNI,XR         POINT TO NEXT IMAGE
        !          8561: ---
        !          8562: > NXTS1  MOV  R$CNI,XR         POINT TO NEXT IMAGE
        !          8563: 19377c18018
        !          8564: <        BLO  WA,WB,NXTS3      SKIP IF NOT TOO LONG
        !          8565: ---
        !          8566: >        BLO  WA,WB,NXTS2      SKIP IF NOT TOO LONG
        !          8567: 19382c18023
        !          8568: < NXTS3  MOV  WA,SCNIL         USE AS RECORD LENGTH
        !          8569: ---
        !          8570: > NXTS2  MOV  WA,SCNIL         USE AS RECORD LENGTH
        !          8571: 19505c18146
        !          8572: <        WTB  WA               CONVERT TO BYTE OFFSET
        !          8573: ---
        !          8574: >        WTB  WA               CONVERT TO BAU OFFSET
        !          8575: 19697d18337
        !          8576: 
        !          8577: 
        !          8578: 
        !          8579: 
        !          8580: 
        !          8581: 
        !          8582: 
        !          8583: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 131
        !          8584: 
        !          8585: 
        !          8586: <        EJC
        !          8587: 19699a18340
        !          8588: >        EJC
        !          8589: 19714,19716c18355
        !          8590: <        JSR  PRTST            AND PRINT IT
        !          8591: <        JSR  PRTNL            FOLLOWED BY NEWLINE
        !          8592: <        JSR  PRTNL            AND ANOTHER
        !          8593: ---
        !          8594: >        JSR  PRTFB            AND PRINT IT
        !          8595: 19718,19719c18357
        !          8596: <        JSR  PRTST            PRINT IT
        !          8597: <        JSR  PRTNL            NEW LINE
        !          8598: ---
        !          8599: >        JSR  PRTSF            PRINT IT
        !          8600: 19721,19723c18359
        !          8601: <        JSR  PRTST            PRINT IT
        !          8602: <        JSR  PRTNL            NEW LINE
        !          8603: <        JSR  PRTNL            AND ANOTHER BLANK LINE
        !          8604: ---
        !          8605: >        JSR  PRTFB
        !          8606: 19726c18362,18363
        !          8607: <        ADD  *NUM02,XR        BIAS PAST XNBLK HEADER (SGD07)
        !          8608: ---
        !          8609: >        ADD  *NUM02,XR        BIASS PAST XNBLK HEADER
        !          8610: >        EJC
        !          8611: 19728c18365
        !          8612: < *      LOOP HERE TO PRINT SUCCESSIVE ENTRIES
        !          8613: ---
        !          8614: > *      PRFLR (CONTINUED)
        !          8615: 19729a18367,18368
        !          8616: > *      LOOP FOR PRINTING TABLE ENTRIES
        !          8617: > *
        !          8618: 19748c18387
        !          8619: < *      MERGE AFTER PRINTING TIME
        !          8620: ---
        !          8621: > *      PRINT A BLANK
        !          8622: 19750c18389
        !          8623: < PRFL2  JSR  PRTNL            THATS ANOTHER LINE
        !          8624: ---
        !          8625: > PRFL2  JSR  PRTFH            THATS ANOTHER LINE
        !          8626: 19752c18391
        !          8627: < *      HERE TO GO TO NEXT ENTRY
        !          8628: ---
        !          8629: > *      TEST TO SEE IF LOOP FINISHED
        !          8630: 19754c18393
        !          8631: < PRFL3  ADD  *PF$I2,XR        BUMP INDEX PTR (SGD07)
        !          8632: ---
        !          8633: > PRFL3  ADD  *PF$I2,XR        BUMP INDEX POINTER
        !          8634: 19759c18398
        !          8635: < *      HERE TO EXIT
        !          8636: ---
        !          8637: > *      RETURN POINT
        !          8638: 19775c18414
        !          8639: <        MOV  WA,PFSVW         SAVE WA (SGD07)
        !          8640: ---
        !          8641: >        MOV  WA,PFSVW         SAVE WA
        !          8642: 
        !          8643: 
        !          8644: 
        !          8645: 
        !          8646: 
        !          8647: 
        !          8648: 
        !          8649: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 132
        !          8650: 
        !          8651: 
        !          8652: 19786c18425
        !          8653: <        SUB  =NUM01,PFNTE     ADJUST FOR EXTRA COUNT (SGD07)
        !          8654: ---
        !          8655: >        SUB  =NUM01,PFNTE     ADJUST FOR EXTRA COUNT
        !          8656: 19804c18443,18444
        !          8657: <        BCT  WA,PFLU1         AND ALLLLLLL THE REST
        !          8658: ---
        !          8659: >        BCT  WA,PFLU1         AND ALL THE REST
        !          8660: >        EJC
        !          8661: 19805a18446,18447
        !          8662: > *      PRFLU (CONTINUED)
        !          8663: > *
        !          8664: 19828c18470
        !          8665: < *      MERGE HERE TO EXIT
        !          8666: ---
        !          8667: > *      RETURN POINT
        !          8668: 19831c18473
        !          8669: <        MOV  PFSVW,WA         RESTORE SAVED REG
        !          8670: ---
        !          8671: >        MOV  PFSVW,WA         RESTORE WA
        !          8672: 19841d18482
        !          8673: <        EJC
        !          8674: 19842a18484
        !          8675: >        EJC
        !          8676: 19844c18486
        !          8677: < *      PRPAR - PROCESS PRINT PARAMETERS
        !          8678: ---
        !          8679: > *      PRPAR -- PROCESS PRINT PARAMETERS
        !          8680: 19846d18487
        !          8681: < *      (WC)                  IF NONZERO ASSOCIATE TERMINAL ONLY
        !          8682: 19848c18489
        !          8683: < *      (XL,XR,WA,WB,WC)      DESTROYED
        !          8684: ---
        !          8685: > *      (XR,WA,WB,WC)         DESTROYED
        !          8686: 19850,19853d18490
        !          8687: < *      SINCE MEMORY ALLOCATION IS UNDECIDED ON INITIAL CALL,
        !          8688: < *      TERMINAL CANNOT BE ASSOCIATED. THE ENTRY WITH WC NON-ZERO
        !          8689: < *      IS PROVIDED SO A LATER CALL CAN BE MADE TO COMPLETE THIS.
        !          8690: < *
        !          8691: 19855c18492
        !          8692: <        BNZ  WC,PRPA7         JUMP TO ASSOCIATE TERMINAL
        !          8693: ---
        !          8694: >        MOV  XL,-(XS)         SAVE XL
        !          8695: 19866,19868c18503,18504
        !          8696: <        MOV  PRLEN,WB         GET PRIOR LENGTH IF ANY
        !          8697: <        BZE  WB,PRPA2         SKIP IF NO LENGTH
        !          8698: <        BGT  WA,WB,PRPA3      SKIP STORING IF TOO BIG
        !          8699: ---
        !          8700: >        BZE  PRLEN,PRPA2      SKIP IF NOT SYSXI RESUMPTION
        !          8701: >        BHI  WA,PRLEN,PRPA3   SKIP IF BIGGER THAN PRIOR BFRS
        !          8702: 19874c18510
        !          8703: < *      PROCESS BITS OPTIONS
        !          8704: ---
        !          8705: > *      CHECK TERMINAL BUFFER SIZE
        !          8706: 19876,19879c18512,18513
        !          8707: < PRPA3  MOV  BITS3,WB         BIT 3 MASK
        !          8708: 
        !          8709: 
        !          8710: 
        !          8711: 
        !          8712: 
        !          8713: 
        !          8714: 
        !          8715: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 133
        !          8716: 
        !          8717: 
        !          8718: <        ANB  WC,WB            GET -NOLIST BIT
        !          8719: <        ZRB  WB,PRPA4         SKIP IF CLEAR
        !          8720: <        ZER  CSWLS            SET -NOLIST
        !          8721: ---
        !          8722: > PRPA3  BZE  TTLEN,PRPA4      SKIP IF NOT SYSXI RESUMPTION
        !          8723: >        BHI  XL,TTLEN,PRPA5   SKIP IF TOO BIG
        !          8724: 19881c18515
        !          8725: < *      CHECK IF FAIL REPORTS GOTO INTERACTIVE CHANNEL
        !          8726: ---
        !          8727: > *      STORE TERMINAL BUFFER LENGTH
        !          8728: 19883c18517,18521
        !          8729: < PRPA4  MOV  BITS1,WB         BIT 1 MASK
        !          8730: ---
        !          8731: > PRPA4  MOV  XL,TTLEN         BFR LENGTH
        !          8732: > *
        !          8733: > *      PROCESS BITS OPTIONS
        !          8734: > *
        !          8735: > PRPA5  MOV  BITS1,WB         BIT 1 MASK
        !          8736: 19885c18523
        !          8737: <        MOV  WB,ERICH         STORE INT. CHAN. ERROR FLAG
        !          8738: ---
        !          8739: >        MOV  WB,TTINS         INPUT FROM TERMINAL FLAG
        !          8740: 19888,19894c18526,18533
        !          8741: <        MOV  WB,PRICH         FLAG FOR STD PRINTER ON INT. CHAN.
        !          8742: <        MOV  BITS4,WB         BIT 4 MASK
        !          8743: <        ANB  WC,WB            GET BIT
        !          8744: <        MOV  WB,CPSTS         FLAG FOR COMPILE STATS SUPPRESSN.
        !          8745: <        MOV  BITS5,WB         BIT 5 MASK
        !          8746: <        ANB  WC,WB            GET BIT
        !          8747: <        MOV  WB,EXSTS         FLAG FOR EXEC STATS SUPPRESSION
        !          8748: ---
        !          8749: >        MOV  WB,TTOUS         STD OUTPUT TO TERMINAL FLAG
        !          8750: >        MOV  TTLEN,TTERL      ERRORS TO TERML IF AVAILABLE
        !          8751: >        MOV  PRLEN,PRAVL      NOTE IF A PRINT FILE IS AVAILABLE
        !          8752: >        ZRB  WB,PRPA6         IF FLAG SET, CLEAR TTERL SINCE ...
        !          8753: >        ZER  TTERL            ... TERML GETS ALL OUTPUT ALREADY
        !          8754: >        MOV  TTLEN,TTOUS      REGULAR O/P TO TERML IF AVAILABLE
        !          8755: >        MOV  TTLEN,PRLEN      REVISED PRINT BUFFER LENGTH
        !          8756: >        ZER  TTLEN            DONT NEED SEPARATE TERML BUFFER
        !          8757: 19899,19904c18538
        !          8758: <        MOV  BITS6,WB         BIT 6 MASK
        !          8759: <        ANB  WC,WB            GET BIT
        !          8760: <        MOV  WB,PRECL         EXTENDED/COMPACT LISTING FLAG
        !          8761: <        SUB  =NUM08,WA        POINT 8 CHARS FROM LINE END
        !          8762: <        ZRB  WB,PRPA5         JUMP IF NOT EXTENDED
        !          8763: <        MOV  WA,LSTPO         STORE FOR LISTING PAGE HEADINGS
        !          8764: ---
        !          8765: > *      GET OFFSET TO /PAGE NN/ PART OF HEADER
        !          8766: 19906c18540,18543
        !          8767: < *       CONTINUE OPTION PROCESSING
        !          8768: ---
        !          8769: > PRPA6  MOV  PRLEN,WA         STD BFR LENGTH
        !          8770: >        BNZ  WA,PRPA7         USE IF NON-ZERO
        !          8771: >        MOV  TTLEN,WA         ELSE TRY TERMINAL
        !          8772: >        BZE  WA,PRPA8         GIVE UP IF ZERO ALSO
        !          8773: 19908,19920c18545
        !          8774: 
        !          8775: 
        !          8776: 
        !          8777: 
        !          8778: 
        !          8779: 
        !          8780: 
        !          8781: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 134
        !          8782: 
        !          8783: 
        !          8784: < PRPA5  MOV  BITS7,WB         BIT 7 MASK
        !          8785: <        ANB  WC,WB            GET BIT 7
        !          8786: <        MOV  WB,CSWEX         SET -NOEXECUTE IF NON-ZERO
        !          8787: <        MOV  BIT10,WB         BIT 10 MASK
        !          8788: <        ANB  WC,WB            GET BIT 10
        !          8789: <        MOV  WB,HEADP         PRETEND PRINTED TO OMIT HEADERS
        !          8790: <        MOV  BITS9,WB         BIT 9 MASK
        !          8791: <        ANB  WC,WB            GET BIT 9
        !          8792: <        MOV  WB,PRSTO         KEEP IT AS STD LISTING OPTION
        !          8793: <        ZRB  WB,PRPA6         SKIP IF CLEAR
        !          8794: <        MOV  PRLEN,WA         GET PRINT BUFFER LENGTH
        !          8795: <        SUB  =NUM08,WA        POINT 8 CHARS FROM LINE END
        !          8796: <        MOV  WA,LSTPO         STORE PAGE OFFSET
        !          8797: ---
        !          8798: > *      GET OFFSET
        !          8799: 19922c18547,18552
        !          8800: < *      CHECK FOR TERMINAL
        !          8801: ---
        !          8802: > PRPA7  MOV  WA,PRLEN         STORE AS BUFFER LENGTH
        !          8803: >        SUB  =NUM08,WA        JUST BEFORE END OF LINE
        !          8804: >        MOV  WA,LSTPO         KEEP IT
        !          8805: >        MOV  TTOUS,WB         CONSTRUCT VALUE FOR ...
        !          8806: >        ORB  PRAVL,WB         ... USE IN DECIDING WHETHER TO ...
        !          8807: >        MOV  WB,PRPUT         ... PUT STRINGS IN OUTPUT BUFFER
        !          8808: 19924,19932c18554
        !          8809: < PRPA6  ANB  BITS8,WC         SEE IF TERMINAL TO BE ACTIVATED
        !          8810: <        BNZ  WC,PRPA7         JUMP IF TERMINAL REQUIRED
        !          8811: <        BZE  INITR,PRPA8      JUMP IF NO TERMINAL TO DETACH
        !          8812: <        MOV  =V$TER,XL        PTR TO /TERMINAL/
        !          8813: <        JSR  GTNVR            GET VRBLK POINTER
        !          8814: <        PPM                   CANT FAIL
        !          8815: <        MOV  =NULLS,VRVAL(XR) CLEAR VALUE OF TERMINAL
        !          8816: <        JSR  SETVR            REMOVE ASSOCIATION
        !          8817: <        BRN  PRPA8            RETURN
        !          8818: ---
        !          8819: > *      MORE BITS
        !          8820: 19934c18556,18559
        !          8821: < *      ASSOCIATE TERMINAL
        !          8822: ---
        !          8823: > PRPA8  MOV  BITS3,WB         BIT 3 MASK
        !          8824: >        ANB  WC,WB            GET -NOLIST BIT
        !          8825: >        ZRB  WB,PRPA9         SKIP IF CLEAR
        !          8826: >        ZER  CSWLS            SET -NOLIST
        !          8827: 19936,19945c18561
        !          8828: < PRPA7  MNZ  INITR            NOTE TERMINAL ASSOCIATED
        !          8829: <        BZE  DNAMB,PRPA8      CANT IF MEMORY NOT ORGANISED
        !          8830: <        MOV  =V$TER,XL        POINT TO TERMINAL STRING
        !          8831: <        MOV  =TRTOU,WB        OUTPUT TRACE TYPE
        !          8832: <        JSR  INOUT            ATTACH OUTPUT TRBLK TO VRBLK
        !          8833: <        MOV  XR,-(XS)         STACK TRBLK PTR
        !          8834: <        MOV  =V$TER,XL        POINT TO TERMINAL STRING
        !          8835: <        MOV  =TRTIN,WB        INPUT TRACE TYPE
        !          8836: <        JSR  INOUT            ATTACH INPUT TRACE BLK
        !          8837: <        MOV  (XS)+,VRVAL(XR)  ADD OUTPUT TRBLK TO CHAIN
        !          8838: ---
        !          8839: > *      MORE BITS
        !          8840: 
        !          8841: 
        !          8842: 
        !          8843: 
        !          8844: 
        !          8845: 
        !          8846: 
        !          8847: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 135
        !          8848: 
        !          8849: 
        !          8850: 19947c18563,18575
        !          8851: < *      RETURN POINT
        !          8852: ---
        !          8853: > PRPA9  MOV  BITS4,WB         BIT 4 MASK
        !          8854: >        ANB  WC,WB            GET BIT
        !          8855: >        MOV  WB,CPSTS         FLAG FOR COMPILE STATS SUPPRESSN.
        !          8856: >        MOV  BITS5,WB         BIT 5 MASK
        !          8857: >        ANB  WC,WB            GET BIT
        !          8858: >        MOV  WB,EXSTS         FLAG FOR EXEC STATS SUPPRESSION
        !          8859: >        MOV  BITS6,WB         BIT 6 MASK
        !          8860: >        ANB  WC,WB            GET BIT
        !          8861: >        MOV  WB,NOXEQ         SET NOEXECUTE IF NON-ZERO
        !          8862: >        MOV  BITS7,WB         BIT 7 MASK
        !          8863: >        ANB  WC,WB            GET BIT
        !          8864: >        ZRB  WB,PRP10         SKIP IF NOT SET
        !          8865: >        ZER  TTERL            CLEAR ERRORS TO TERML IF SET
        !          8866: 19949c18577,18589
        !          8867: < PRPA8  EXI                   RETURN
        !          8868: ---
        !          8869: > *      MORE BITS
        !          8870: > *
        !          8871: > PRP10  MOV  BITS8,WB         BIT 8 MASK
        !          8872: >        ANB  WC,WB            GET BIT
        !          8873: >        MOV  WB,HEADN         SYSID HEADERS INCLUDE/OMIT FLAG
        !          8874: >        MOV  BITS9,WB         BIT 9 MASK
        !          8875: >        ANB  WC,WB            GET BIT
        !          8876: >        MOV  WB,PRSTO         STANDARD LISTING FLAG
        !          8877: >        MOV  BIT10,WB         BIT 10 MASK
        !          8878: >        ANB  WC,WB            GET BIT
        !          8879: >        MOV  WB,PRECL         EXTENDED LISTING OPTION
        !          8880: >        MOV  (XS)+,XL         RESTORE XL
        !          8881: >        EXI                   RETURN
        !          8882: 19953c18593
        !          8883: < *      PRTCH -- PRINT A CHARACTER
        !          8884: ---
        !          8885: > *      PRTCF -- PRINT CHAR TO STD PRINTER AND FLUSH BFR
        !          8886: 19954a18595,18605
        !          8887: > *      (WA)                  CHAR TO PRINT
        !          8888: > *      JSR  PRTCF            CALL TO PRINT AND FLUSH
        !          8889: > *
        !          8890: > PRTCF  PRC  E,0              ENTRY POINT
        !          8891: >        JSR  PRTCH            PRINT CHARACTER
        !          8892: >        JSR  PRTFH            FLUSH BUFFER
        !          8893: >        EXI                   RETURN TO CALLER
        !          8894: >        ENP                   END PROCEDURE PRTCF
        !          8895: > *
        !          8896: > *      PRTCH -- PRINT A CHARACTER ON STANDARD PRINTER
        !          8897: > *
        !          8898: 19960a18612
        !          8899: >        BZE  PRLEN,PTCH2      SKIP IF NO PRINT FILE
        !          8900: 19962,19963c18614,18615
        !          8901: <        BNE  PROFS,PRLEN,PRCH1 JUMP IF ROOM IN BUFFER
        !          8902: <        JSR  PRTNL            ELSE PRINT THIS LINE
        !          8903: ---
        !          8904: >        BNE  PROFS,PRLEN,PTCH1 JUMP IF ROOM IN BUFFER
        !          8905: >        JSR  PRTFH            ELSE PRINT THIS LINE
        !          8906: 
        !          8907: 
        !          8908: 
        !          8909: 
        !          8910: 
        !          8911: 
        !          8912: 
        !          8913: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 136
        !          8914: 
        !          8915: 
        !          8916: 19967c18619
        !          8917: < PRCH1  MOV  PRBUF,XR         POINT TO PRINT BUFFER
        !          8918: ---
        !          8919: > PTCH1  MOV  PRBUF,XR         POINT TO PRINT BUFFER
        !          8920: 19973c18625,18628
        !          8921: <        EXI                   RETURN TO PRTCH CALLER
        !          8922: ---
        !          8923: > *
        !          8924: > *      RETURN POINT
        !          8925: > *
        !          8926: > PTCH2  EXI                   RETURN TO PRTCH CALLER
        !          8927: 19974a18630,18640
        !          8928: > *
        !          8929: > *      PRTFB -- PRINT STRING, FLUSH BFR AND PRINT BLANK LINE
        !          8930: > *
        !          8931: > *      (XR)                  STRING TO PRINT
        !          8932: > *      JSR  PRTFB            CALL FOR PRINT FLUSH AND BLANK
        !          8933: > *
        !          8934: > PRTFB  PRC  E,0              ENTRY POINT
        !          8935: >        JSR  PRTSF            PRINT AND FLUSH
        !          8936: >        JSR  PRTFH            PRINT BLANK
        !          8937: >        EXI                   RETURN TO CALLER
        !          8938: >        ENP                   END PROCEDURE PRTFB
        !          8939: 19977c18643
        !          8940: < *      PRTIC -- PRINT TO INTERACTIVE CHANNEL
        !          8941: ---
        !          8942: > *      PRTFH -- FLUSH STANDARD PRINT BUFFER
        !          8943: 19979,19982c18645,18649
        !          8944: < *      PRTIC IS CALLED TO PRINT THE CONTENTS OF THE STANDARD
        !          8945: < *      PRINT BUFFER TO THE INTERACTIVE CHANNEL. IT IS ONLY
        !          8946: < *      CALLED AFTER PRTST HAS SET UP THE STRING FOR PRINTING.
        !          8947: < *      IT DOES NOT CLEAR THE BUFFER.
        !          8948: ---
        !          8949: > *      PRTFH PRINTS THE CONTENTS OF THE PRINT BUFFER, RESETS
        !          8950: > *      THE BUFFER TO ALL BLANKS AND RESETS THE PRINT POINTER.
        !          8951: > *      ON ITS FIRST CALL IT MAY PRINT LISTING HEADERS.
        !          8952: > *      IF TTLST IS NON-ZERO, IT COPIES PRINT BUFFER TO
        !          8953: > *      TERMINAL AND FLUSHES THIS ALSO.
        !          8954: 19984,19985c18651
        !          8955: < *      JSR  PRTIC            CALL FOR PRINT
        !          8956: < *      (WA,WB)               DESTROYED
        !          8957: ---
        !          8958: > *      JSR  PRTFH            CALL TO FLUSH BUFFER
        !          8959: 19987,19992c18653,18655
        !          8960: < PRTIC  PRC  E,0              ENTRY POINT
        !          8961: <        MOV  XR,-(XS)         SAVE XR
        !          8962: <        MOV  PRBUF,XR         POINT TO BUFFER
        !          8963: <        MOV  PROFS,WA         NO OF CHARS
        !          8964: <        JSR  SYSPI            PRINT
        !          8965: <        PPM  PRTC2            FAIL RETURN
        !          8966: ---
        !          8967: > PRTFH  PRC  R,0              ENTRY POINT
        !          8968: >        BNZ  HEADP,PTFH1      WERE HEADERS PRINTED
        !          8969: >        JSR  PRTPS            NO - PRINT THEM
        !          8970: 19994c18657
        !          8971: < *      RETURN
        !          8972: 
        !          8973: 
        !          8974: 
        !          8975: 
        !          8976: 
        !          8977: 
        !          8978: 
        !          8979: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 137
        !          8980: 
        !          8981: 
        !          8982: ---
        !          8983: > *      HEADERS DONE
        !          8984: 19996,19997c18659,18668
        !          8985: < PRTC1  MOV  (XS)+,XR         RESTORE XR
        !          8986: <        EXI                   RETURN
        !          8987: ---
        !          8988: > PTFH1  BZE  PRLEN,PTFH4      SKIP IF NO OUTPUT POSSIBLE
        !          8989: >        MOV  XL,-(XS)         SAVE XL
        !          8990: >        MOV  XR,-(XS)         SAVE XR
        !          8991: >        MOV  WA,-(XS)         SAVE WA
        !          8992: >        MOV  WC,-(XS)         SAVE WC
        !          8993: >        MOV  PRBUF,XR         LOAD POINTER TO BUFFER
        !          8994: >        MOV  PROFS,WC         LOAD NUMBER OF CHARS IN BUFFER
        !          8995: >        BNZ  PRAVL,PTFH5      SKIP IF PRINT FILE AVAILABLE
        !          8996: >        BNZ  TTOUS,PTFH2      SKIP IF STD OUTPUT TO TERML
        !          8997: >        BZE  TTLST,PTFH3      LAST POSSIBILITY IS ERROR TO TERML
        !          8998: 19999c18670
        !          8999: < *      ERROR OCCURED
        !          9000: ---
        !          9001: > *       SEND TO TERMINAL
        !          9002: 20001,20004c18672,18674
        !          9003: < PRTC2  ZER  ERICH            PREVENT LOOPING
        !          9004: <        ERB  252,ERROR ON PRINTING TO INTERACTIVE CHANNEL
        !          9005: <        BRN  PRTC1            RETURN
        !          9006: <        ENP                   PROCEDURE PRTIC
        !          9007: ---
        !          9008: > PTFH2  JSR  SYSPI            PRINT TO TERMINAL
        !          9009: >        PPM  PTFH6            FAIL
        !          9010: >        PPM  EROSI            ERROR
        !          9011: 20005a18676
        !          9012: > *      PRTFH (CONTINUED)
        !          9013: 20007c18678
        !          9014: < *      PRTIS -- PRINT TO INTERACTIVE AND STANDARD PRINTER
        !          9015: ---
        !          9016: > *      BLANK BUFFER
        !          9017: 20009,20013c18680,18688
        !          9018: < *      PRTIS PUTS A LINE FROM THE PRINT BUFFER ONTO THE
        !          9019: < *      INTERACTIVE CHANNEL (IF ANY) AND THE STANDARD PRINTER.
        !          9020: < *      IT ALWAYS PRINTS TO THE STANDARD PRINTER BUT DOES
        !          9021: < *      NOT DUPLICATE LINES IF THE STANDARD PRINTER IS
        !          9022: < *      INTERACTIVE.  IT CLEARS DOWN THE PRINT BUFFER.
        !          9023: ---
        !          9024: > PTFH3  MOV  PRBLK,XL         POINT TO BLANKING STRING
        !          9025: >        MOV  PRCHS,XR         POINT TO BUFFER
        !          9026: >        MOV  PRCMV,WA         COUNT OF BAUS TO MOVE
        !          9027: >        MVW                   MOVE BLANKS INTO BUFFER
        !          9028: >        ZER  PROFS            RESET OFFSET
        !          9029: >        MOV  (XS)+,WC         RESTORE WC
        !          9030: >        MOV  (XS)+,WA         RECOVER WA
        !          9031: >        MOV  (XS)+,XR         RESTORE XR
        !          9032: >        MOV  (XS)+,XL         RESTORE XL
        !          9033: 20015,20016c18690
        !          9034: < *      JSR  PRTIS            CALL FOR PRINTING
        !          9035: < *      (WA,WB)               DESTROYED
        !          9036: ---
        !          9037: > *      RETURN POINT
        !          9038: 
        !          9039: 
        !          9040: 
        !          9041: 
        !          9042: 
        !          9043: 
        !          9044: 
        !          9045: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 138
        !          9046: 
        !          9047: 
        !          9048: 20018,20021c18692
        !          9049: < PRTIS  PRC  E,0              ENTRY POINT
        !          9050: <        BNZ  PRICH,PRTS1      JUMP IF STANDARD PRINTER IS INT.CH.
        !          9051: <        BZE  ERICH,PRTS1      SKIP IF NOT DOING INT. ERROR REPS.
        !          9052: <        JSR  PRTIC            PRINT TO INTERACTIVE CHANNEL
        !          9053: ---
        !          9054: > PTFH4  EXI                   RETURN TO CALLER
        !          9055: 20023c18694
        !          9056: < *      MERGE AND EXIT
        !          9057: ---
        !          9058: > *      HERE FOR REGULAR PRINT FILE
        !          9059: 20025,20027c18696,18710
        !          9060: < PRTS1  JSR  PRTNL            PRINT TO STANDARD PRINTER
        !          9061: <        EXI                   RETURN
        !          9062: <        ENP                   END PROCEDURE PRTIS
        !          9063: ---
        !          9064: > PTFH5  JSR  SYSPR            CALL SYSTEM PRINT ROUTINE
        !          9065: >        PPM  PTFH6            JUMP IF FAILED
        !          9066: >        PPM  EROSI            STOP IF ERROR
        !          9067: >        BZE  TTLST,PTFH3      SKIP IF NO COPY TO TERMINAL
        !          9068: >        MOV  PROFS,SCLEN(XR)  SET STRING LENGTH FOR PTTST
        !          9069: >        JSR  PTTST            COPY STD BUFFER TO TERML BFR
        !          9070: >        JSR  PTTFH            FLUSH IT
        !          9071: >        MOV  PRLEN,SCLEN(XR)  RESTORE BUFFER LENGTH
        !          9072: >        BRN  PTFH3            MERGE
        !          9073: > *
        !          9074: > *      A FAILURE SUCH AS FILE OVERFILLED OCCURRED
        !          9075: > *
        !          9076: > PTFH6  BZE  STAGX,PTFH3      IGNORE IF COMPILE TIME
        !          9077: >        BRN  EXFAL            ELSE CAUSE STMT FAILURE
        !          9078: >        ENP                   END PROCEDURE PRTFH
        !          9079: 20057d18739
        !          9080: <        EJC
        !          9081: 20071c18753
        !          9082: <        JSR  PRTNL            PRINT LINE
        !          9083: ---
        !          9084: >        JSR  PRTFH            PRINT LINE
        !          9085: 20076,20140d18757
        !          9086: < *      PRTMX  -- AS PRTMI WITH EXTRA COPY TO INTERACTIVE CHAN.
        !          9087: < *
        !          9088: < *      JSR  PRTMX            CALL FOR PRINTING
        !          9089: < *      (WA,WB)               DESTROYED
        !          9090: < *
        !          9091: < PRTMX  PRC  E,0              ENTRY POINT
        !          9092: <        JSR  PRTST            PRINT STRING MESSAGE
        !          9093: <        MOV  =PRTMF,PROFS     SET PTR TO COLUMN 15
        !          9094: <        JSR  PRTIN            PRINT INTEGER
        !          9095: <        JSR  PRTIS            PRINT LINE
        !          9096: <        EXI                   RETURN
        !          9097: <        ENP                   END PROCEDURE PRTMX
        !          9098: <        EJC
        !          9099: < *
        !          9100: < *      PRTNL -- PRINT NEW LINE (END PRINT LINE)
        !          9101: < *
        !          9102: < *      PRTNL PRINTS THE CONTENTS OF THE PRINT BUFFER, RESETS
        !          9103: < *      THE BUFFER TO ALL BLANKS AND RESETS THE PRINT POINTER.
        !          9104: 
        !          9105: 
        !          9106: 
        !          9107: 
        !          9108: 
        !          9109: 
        !          9110: 
        !          9111: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 139
        !          9112: 
        !          9113: 
        !          9114: < *
        !          9115: < *      JSR  PRTNL            CALL TO PRINT LINE
        !          9116: < *
        !          9117: < PRTNL  PRC  R,0              ENTRY POINT
        !          9118: <        BNZ  HEADP,PRNL0      WERE HEADERS PRINTED
        !          9119: <        JSR  PRTPS            NO - PRINT THEM
        !          9120: < *
        !          9121: < *      CALL SYSPR
        !          9122: < *
        !          9123: < PRNL0  MOV  XR,-(XS)         SAVE ENTRY XR
        !          9124: <        MOV  WA,PRTSA         SAVE WA
        !          9125: <        MOV  WB,PRTSB         SAVE WB
        !          9126: <        MOV  PRBUF,XR         LOAD POINTER TO BUFFER
        !          9127: <        MOV  PROFS,WA         LOAD NUMBER OF CHARS IN BUFFER
        !          9128: <        JSR  SYSPR            CALL SYSTEM PRINT ROUTINE
        !          9129: <        PPM  PRNL2            JUMP IF FAILED
        !          9130: <        LCT  WA,PRLNW         LOAD LENGTH OF BUFFER IN WORDS
        !          9131: <        ADD  *SCHAR,XR        POINT TO CHARS OF BUFFER
        !          9132: <        MOV  NULLW,WB         GET WORD OF BLANKS
        !          9133: < *
        !          9134: < *      LOOP TO BLANK BUFFER
        !          9135: < *
        !          9136: < PRNL1  MOV  WB,(XR)+         STORE WORD OF BLANKS, BUMP PTR
        !          9137: <        BCT  WA,PRNL1         LOOP TILL ALL BLANKED
        !          9138: < *
        !          9139: < *      EXIT POINT
        !          9140: < *
        !          9141: <        MOV  PRTSB,WB         RESTORE WB
        !          9142: <        MOV  PRTSA,WA         RESTORE WA
        !          9143: <        MOV  (XS)+,XR         RESTORE ENTRY XR
        !          9144: <        ZER  PROFS            RESET PRINT BUFFER POINTER
        !          9145: <        EXI                   RETURN TO PRTNL CALLER
        !          9146: < *
        !          9147: < *      FILE FULL OR NO OUTPUT FILE FOR LOAD MODULE
        !          9148: < *
        !          9149: < PRNL2  BNZ  PRTEF,PRNL3      JUMP IF NOT FIRST TIME
        !          9150: <        MNZ  PRTEF            MARK FIRST OCCURRENCE
        !          9151: <        ERB  253,PRINT LIMIT EXCEEDED ON STANDARD OUTPUT CHANNEL
        !          9152: < *
        !          9153: < *      STOP AT ONCE
        !          9154: < *
        !          9155: < PRNL3  MOV  =NINI8,WB        ENDING CODE
        !          9156: <        MOV  KVSTN,WA         STATEMENT NUMBER
        !          9157: <        JSR  SYSEJ            STOP
        !          9158: <        ENP                   END PROCEDURE PRTNL
        !          9159: <        EJC
        !          9160: < *
        !          9161: 20376,20377c18993
        !          9162: <        JSR  PRTVL            PRINT VALUE
        !          9163: <        JSR  PRTNL            TERMINATE LINE
        !          9164: ---
        !          9165: >        JSR  PRTVF            PRINT VALUE
        !          9166: 20384c19000
        !          9167: < *      PRTPG  -- PRINT A PAGE THROW
        !          9168: ---
        !          9169: > *      PRTPG -- PRINT A PAGE THROW
        !          9170: 
        !          9171: 
        !          9172: 
        !          9173: 
        !          9174: 
        !          9175: 
        !          9176: 
        !          9177: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 140
        !          9178: 
        !          9179: 
        !          9180: 20387c19003
        !          9181: < *      LISTING CHANNEL DEPENDING ON THE LISTING OPTIONS CHOSEN.
        !          9182: ---
        !          9183: > *      LISTING FILE DEPENDING ON THE LISTING OPTIONS CHOSEN.
        !          9184: 20392,20393c19008,19009
        !          9185: <        BEQ  STAGE,=STGXT,PRP01 JUMP IF EXECUTION TIME
        !          9186: <        BZE  LSTLC,PRP06      RETURN IF TOP OF PAGE ALREADY
        !          9187: ---
        !          9188: >        BNZ  STAGX,PTPG1      SKIP IF EXECUTION TIME
        !          9189: >        BZE  LSTLC,PTPG6      RETURN IF TOP OF PAGE ALREADY
        !          9190: 20398,20401c19014,19017
        !          9191: < PRP01  MOV  XR,-(XS)         PRESERVE XR
        !          9192: <        BNZ  PRSTD,PRP02      EJECT IF FLAG SET
        !          9193: <        BNZ  PRICH,PRP03      JUMP IF INTERACTIVE LISTING CHANNEL
        !          9194: <        BZE  PRECL,PRP03      JUMP IF COMPACT LISTING
        !          9195: ---
        !          9196: > PTPG1  MOV  XR,-(XS)         PRESERVE XR
        !          9197: >        BNZ  PRECL,PTPG2      EJECT IF EXTENDED LISTING
        !          9198: >        BZE  PRSTD,PTPG3      SKIP IF COMPACT LISTING
        !          9199: >        BNZ  TTOUS,PTPG3      SKIP IF LISTING TO TERMINAL
        !          9200: 20405,20406c19021,19024
        !          9201: < PRP02  JSR  SYSEP            EJECT
        !          9202: <        BRN  PRP04            MERGE
        !          9203: ---
        !          9204: > PTPG2  JSR  SYSEP            EJECT
        !          9205: >        PPM  PTPG4            IGNORE FAILURE
        !          9206: >        PPM  EROSI            ERROR
        !          9207: >        BRN  PTPG4            MERGE
        !          9208: 20408,20409c19026
        !          9209: < *      COMPACT OR INTERACTIVE CHANNEL LISTING. CANT PRINT
        !          9210: < *      BLANKS UNTIL CHECK MADE FOR HEADERS PRINTED AND FLAG SET.
        !          9211: ---
        !          9212: > *      COMPACT LISTING.
        !          9213: 20411,20416c19028,19033
        !          9214: < *
        !          9215: < PRP03  MOV  HEADP,XR         REMEMBER HEADP
        !          9216: <        MNZ  HEADP            SET TO AVOID REPEATED PRTPG CALLS
        !          9217: <        JSR  PRTNL            PRINT BLANK LINE
        !          9218: <        JSR  PRTNL            PRINT BLANK LINE
        !          9219: <        JSR  PRTNL            PRINT BLANK LINE
        !          9220: ---
        !          9221: > PTPG3  BNZ  HEADN,PTPG4      SKIP IF HEADERS OMITTED
        !          9222: >        MOV  HEADP,XR         REMEMBER HEADP
        !          9223: >        MNZ  HEADP            SET TO AVOID RECURSIVE PRTPG CALLS
        !          9224: >        JSR  PRTFH            PRINT BLANK LINE
        !          9225: >        JSR  PRTFH            PRINT BLANK LINE
        !          9226: >        JSR  PRTFH            PRINT BLANK LINE
        !          9227: 20425c19042
        !          9228: < PRP04  BNZ  HEADP,PRP05      JUMP IF HEADER LISTED
        !          9229: ---
        !          9230: > PTPG4  BNZ  HEADP,PTPG5      JUMP IF HEADER LISTED
        !          9231: 20426a19044
        !          9232: >        BNZ  HEADN,PTPG5      SKIP IF HEADERS OMITTED
        !          9233: 20431,20432c19049
        !          9234: <        JSR  PRTST            APPEND EXTRA CHARS
        !          9235: <        JSR  PRTNL            PRINT IT
        !          9236: 
        !          9237: 
        !          9238: 
        !          9239: 
        !          9240: 
        !          9241: 
        !          9242: 
        !          9243: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 141
        !          9244: 
        !          9245: 
        !          9246: ---
        !          9247: >        JSR  PRTSF            APPEND EXTRA CHARS AND PRINT
        !          9248: 20434,20437c19051,19052
        !          9249: <        JSR  PRTST            PLACE IT
        !          9250: <        JSR  PRTNL            PRINT IT
        !          9251: <        JSR  PRTNL            PRINT A BLANK
        !          9252: <        JSR  PRTNL            AND ANOTHER
        !          9253: ---
        !          9254: >        JSR  PRTFB            PLACE IT AND A BLANK
        !          9255: >        JSR  PRTFH            AND ANOTHER
        !          9256: 20443c19058
        !          9257: < PRP05  MOV  (XS)+,XR         RESTORE XR
        !          9258: ---
        !          9259: > PTPG5  MOV  (XS)+,XR         RESTORE XR
        !          9260: 20447c19062
        !          9261: < PRP06  EXI                   RETURN
        !          9262: ---
        !          9263: > PTPG6  EXI                   RETURN
        !          9264: 20451c19066
        !          9265: < *      PRTPS - PRINT PAGE WITH TEST FOR STANDARD LISTING OPTION
        !          9266: ---
        !          9267: > *      PRTPS -- PRINT PAGE WITH TEST FOR STANDARD LISTING OPTION
        !          9268: 20463a19079,19089
        !          9269: > *
        !          9270: > *      PRTSF -- PRINT STRING TO STD PRINTER AND FLUSH BFR
        !          9271: > *
        !          9272: > *      (XR)                  STRING TO PRINT
        !          9273: > *      JSR  PRTSF            CALL TO PRINT AND FLUSH
        !          9274: > *
        !          9275: > PRTSF  PRC  E,0              ENTRY POINT
        !          9276: >        JSR  PRTST            PRINT STRING
        !          9277: >        JSR  PRTFH            FLUSH BUFFER
        !          9278: >        EXI                   RETURN TO CALLER
        !          9279: >        ENP                   END PROCEDURE PRTSF
        !          9280: 20512c19138
        !          9281: < *      PRTST -- PRINT STRING
        !          9282: ---
        !          9283: > *      PRTST -- PRINT STRING TO STANDARD FILE
        !          9284: 20514c19140
        !          9285: < *      PRTST PLACES A STRING OF CHARACTERS IN THE PRINT BUFFER
        !          9286: ---
        !          9287: > *      PLACE A STRING OF CHARACTERS IN THE STANDARD PRINT BUFFER
        !          9288: 20516,20517d19141
        !          9289: < *      SEE PRTNL FOR GLOBAL LOCATIONS USED
        !          9290: < *
        !          9291: 20519a19144,19147
        !          9292: > *      IF GLOBAL TTOUS IS NON-ZERO, STRING IS SENT TO TERMINAL
        !          9293: > *      INSTEAD OF STANDARD OUTPUT FILE.
        !          9294: > *      IF GLOBAL TTLST IS NON-ZERO, STRING IS SENT TO
        !          9295: > *      TERMINAL AS WELL AS STANDARD OUTPUT FILE
        !          9296: 20526c19154
        !          9297: <        BNZ  HEADP,PRST0      WERE HEADERS PRINTED
        !          9298: ---
        !          9299: >        BNZ  HEADP,PTST1      WERE HEADERS PRINTED
        !          9300: 20529c19157
        !          9301: < *      CALL SYSPR
        !          9302: 
        !          9303: 
        !          9304: 
        !          9305: 
        !          9306: 
        !          9307: 
        !          9308: 
        !          9309: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 142
        !          9310: 
        !          9311: 
        !          9312: ---
        !          9313: > *      HEADERS DEALT WITH
        !          9314: 20531c19159,19165
        !          9315: < PRST0  MOV  WA,PRSVA         SAVE WA
        !          9316: ---
        !          9317: > PTST1  BZE  PRLEN,PTST7      SKIP IF NO O/P POSSIBLE
        !          9318: >        BNZ  PRPUT,PTST2      SKIP IF PUTTING IS OK
        !          9319: >        BZE  TTLST,PTST7      SKIP OUT IF NOT ERROR TO TERML
        !          9320: > *
        !          9321: > *       KEEP REGISTERS
        !          9322: > *
        !          9323: > PTST2  MOV  WA,PRSVA         SAVE WA
        !          9324: 20537c19171
        !          9325: < PRST1  MOV  SCLEN(XR),WA     LOAD STRING LENGTH
        !          9326: ---
        !          9327: > PTST3  MOV  SCLEN(XR),WA     LOAD STRING LENGTH
        !          9328: 20539c19173
        !          9329: <        BZE  WA,PRST4         JUMP TO EXIT IF NONE LEFT
        !          9330: ---
        !          9331: >        BZE  WA,PTST6         JUMP TO EXIT IF NONE LEFT
        !          9332: 20545,20546c19179,19180
        !          9333: <        BNZ  XR,PRST2         SKIP IF ROOM LEFT ON THIS LINE
        !          9334: <        JSR  PRTNL            ELSE PRINT THIS LINE
        !          9335: ---
        !          9336: >        BNZ  XR,PTST4         SKIP IF ROOM LEFT ON THIS LINE
        !          9337: >        JSR  PRTFH            PRINT THIS LINE
        !          9338: 20554c19188
        !          9339: < PRST2  BLO  WA,XR,PRST3      JUMP IF ROOM FOR REST OF STRING
        !          9340: ---
        !          9341: > PTST4  BLO  WA,XR,PTST5      JUMP IF ROOM FOR REST OF STRING
        !          9342: 20559c19193
        !          9343: < PRST3  MOV  PRBUF,XR         POINT TO PRINT BUFFER
        !          9344: ---
        !          9345: > PTST5  MOV  PRBUF,XR         POINT TO PRINT BUFFER
        !          9346: 20564d19197
        !          9347: <        MOV  WB,PRSVC         PRESERVE CHAR COUNTER
        !          9348: 20566d19198
        !          9349: <        MOV  PRSVC,WB         RECOVER CHAR COUNTER
        !          9350: 20569c19201
        !          9351: <        BRN  PRST1            LOOP BACK TO TEST FOR MORE
        !          9352: ---
        !          9353: >        BRN  PTST3            LOOP BACK TO TEST FOR MORE
        !          9354: 20573c19205
        !          9355: < PRST4  MOV  PRSVB,WB         RESTORE ENTRY WB
        !          9356: ---
        !          9357: > PTST6  MOV  PRSVB,WB         RESTORE ENTRY WB
        !          9358: 20575,20577d19206
        !          9359: <        EXI                   RETURN TO PRTST CALLER
        !          9360: <        ENP                   END PROCEDURE PRTST
        !          9361: <        EJC
        !          9362: 20579c19208
        !          9363: < *      PRTTR -- PRINT TO TERMINAL
        !          9364: ---
        !          9365: > *      RETURN POINT
        !          9366: 20581,20582c19210,19211
        !          9367: < *      CALLED TO PRINT CONTENTS OF STANDARD PRINT BUFFER TO
        !          9368: 
        !          9369: 
        !          9370: 
        !          9371: 
        !          9372: 
        !          9373: 
        !          9374: 
        !          9375: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 143
        !          9376: 
        !          9377: 
        !          9378: < *      ONLINE TERMINAL. CLEARS BUFFER DOWN AND RESETS PROFS.
        !          9379: ---
        !          9380: > PTST7  EXI                   RETURN TO PRTST CALLER
        !          9381: >        ENP                   END PROCEDURE PRTST
        !          9382: 20584,20585c19213
        !          9383: < *      JSR  PRTTR            CALL FOR PRINT
        !          9384: < *      (WA,WB)               DESTROYED
        !          9385: ---
        !          9386: > *      PRTVF -- PLACE A VALUE AND FLUSH STANDARD BUFFER
        !          9387: 20587,20593c19215,19216
        !          9388: < PRTTR  PRC  E,0              ENTRY POINT
        !          9389: <        MOV  XR,-(XS)         SAVE XR
        !          9390: <        JSR  PRTIC            PRINT BUFFER CONTENTS
        !          9391: <        MOV  PRBUF,XR         POINT TO PRINT BFR TO CLEAR IT
        !          9392: <        LCT  WA,PRLNW         GET BUFFER LENGTH
        !          9393: <        ADD  *SCHAR,XR        POINT PAST SCBLK HEADER
        !          9394: <        MOV  NULLW,WB         GET BLANKS
        !          9395: ---
        !          9396: > *      (XR)                  VALUE TO PRINT
        !          9397: > *      JSR  PRTVF            CALL TO PRINT AND FLUSH
        !          9398: 20595,20602c19218,19222
        !          9399: < *      LOOP TO CLEAR BUFFER
        !          9400: < *
        !          9401: < PRTT1  MOV  WB,(XR)+         CLEAR A WORD
        !          9402: <        BCT  WA,PRTT1         LOOP
        !          9403: <        ZER  PROFS            RESET PROFS
        !          9404: <        MOV  (XS)+,XR         RESTORE XR
        !          9405: <        EXI                   RETURN
        !          9406: <        ENP                   END PROCEDURE PRTTR
        !          9407: ---
        !          9408: > PRTVF  PRC  E,0              ENTRY POINT
        !          9409: >        JSR  PRTVL            PLACE VALUE
        !          9410: >        JSR  PRTFH            FLUSH BUFFER
        !          9411: >        EXI                   RETURN TO CALLER
        !          9412: >        ENP                   END PROCEDURE PRTVF
        !          9413: 20676c19296
        !          9414: < *      VCBLK, TBBLK, BCBLK MERGE HERE FOR ) BLANK NUMBER IDVAL
        !          9415: ---
        !          9416: > *      VCBLK, TBBLK MERGE HERE FOR ) BLANK NUMBER IDVAL
        !          9417: 20814a19435,19536
        !          9418: >        EJC
        !          9419: > *
        !          9420: > *      PTTFH -- FLUSH TERMINAL BUFFER
        !          9421: > *
        !          9422: > *      PRINTS THE CONTENTS OF THE TTY BUFFER, RESETS
        !          9423: > *      THE BUFFER TO ALL BLANKS AND RESETS THE POINTER.
        !          9424: > *
        !          9425: > *      JSR  PTTFH            CALL TO FLUSH BUFFER
        !          9426: > *
        !          9427: > PTTFH  PRC  E,0              ENTRY POINT
        !          9428: >        BZE  TTLEN,PTTF2      SKIP IF NO TERMINAL
        !          9429: >        MOV  XL,-(XS)         SAVE XL
        !          9430: >        MOV  XR,-(XS)         SAVE XR
        !          9431: >        MOV  WA,-(XS)         SAVE WA
        !          9432: >        MOV  WC,-(XS)         SAVE WC
        !          9433: >        MOV  TTBUF,XR         LOAD POINTER TO BUFFER
        !          9434: 
        !          9435: 
        !          9436: 
        !          9437: 
        !          9438: 
        !          9439: 
        !          9440: 
        !          9441: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 144
        !          9442: 
        !          9443: 
        !          9444: >        MOV  TTOFS,WC         LOAD NUMBER OF CHARS IN BUFFER
        !          9445: >        JSR  SYSPI            CALL SYSTEM PRINT ROUTINE
        !          9446: >        PPM  PTTF3            JUMP IF FAILED
        !          9447: >        PPM  EROSI            STOP IF ERROR
        !          9448: > *
        !          9449: > *      BLANK BUFFER
        !          9450: > *
        !          9451: > PTTF1  MOV  TTBLK,XL         POINT TO BLANKING STRING
        !          9452: >        MOV  TTCHS,XR         POINT TO BUFFER
        !          9453: >        MOV  TTCMV,WA         COUNT OF BAUS TO MOVE
        !          9454: >        MVW                   MOVE BLANKS INTO BUFFER
        !          9455: >        ZER  TTOFS            RESET OFFSET
        !          9456: >        MOV  (XS)+,WC         RESTORE WC
        !          9457: >        MOV  (XS)+,WA         RECOVER WA
        !          9458: >        MOV  (XS)+,XR         RESTORE XR
        !          9459: >        MOV  (XS)+,XL         RESTORE XL
        !          9460: > *
        !          9461: > *      RETURN POINT
        !          9462: > *
        !          9463: > PTTF2  EXI                   RETURN TO CALLER
        !          9464: > *
        !          9465: > *      A FAILURE SUCH AS FILE OVERFILLED OCCURRED
        !          9466: > *
        !          9467: > PTTF3  BZE  STAGX,PTTF1      IGNORE IF COMPILE TIME
        !          9468: >        BRN  EXFAL            ELSE CAUSE STMT FAILURE
        !          9469: >        ENP                   END PROCEDURE
        !          9470: >        EJC
        !          9471: > *
        !          9472: > *      PTTST -- PRINT STRING TO TERMINAL
        !          9473: > *
        !          9474: > *      PLACE A STRING OF CHARACTERS IN THE TERMINAL BUFFER
        !          9475: > *
        !          9476: > *      NOTE THAT THE FIRST WORD OF THE BLOCK (NORMALLY B$SCL)
        !          9477: > *      IS NOT USED AND NEED NOT BE SET CORRECTLY (SEE PRTVN)
        !          9478: > *
        !          9479: > *      (XR)                  STRING TO BE PRINTED
        !          9480: > *      JSR  PTTST            CALL TO PRINT STRING
        !          9481: > *      (TTOFS)               UPDATED PAST CHARS PLACED
        !          9482: > *
        !          9483: > PTTST  PRC  E,0              ENTRY POINT
        !          9484: >        BZE  TTLEN,PTTS5      SKIP IF NO TERMINAL
        !          9485: >        MOV  WA,PRTVA         SAVE WA
        !          9486: >        MOV  WB,PRTVB         SAVE WB
        !          9487: >        ZER  WB               SET CHARS PRINTED COUNT TO ZERO
        !          9488: > *
        !          9489: > *      LOOP TO PRINT SUCCESSIVE LINES FOR LONG STRING
        !          9490: > *
        !          9491: > PTTS1  MOV  SCLEN(XR),WA     LOAD STRING LENGTH
        !          9492: >        SUB  WB,WA            SUBTRACT COUNT OF CHARS ALREADY OUT
        !          9493: >        BZE  WA,PTTS4         JUMP TO EXIT IF NONE LEFT
        !          9494: >        MOV  XL,-(XS)         ELSE STACK ENTRY XL
        !          9495: >        MOV  XR,-(XS)         SAVE ARGUMENT
        !          9496: >        MOV  XR,XL            COPY FOR EVENTUAL MOVE
        !          9497: >        MOV  TTLEN,XR         LOAD BUFFER LENGTH
        !          9498: >        SUB  TTOFS,XR         GET CHARS LEFT IN BUFFER
        !          9499: >        BNZ  XR,PTTS2         SKIP IF ROOM LEFT ON THIS LINE
        !          9500: 
        !          9501: 
        !          9502: 
        !          9503: 
        !          9504: 
        !          9505: 
        !          9506: 
        !          9507: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 145
        !          9508: 
        !          9509: 
        !          9510: >        JSR  PTTFH            ELSE PRINT THIS LINE
        !          9511: >        MOV  TTLEN,XR         AND SET FULL WIDTH AVAILABLE
        !          9512: > *
        !          9513: > *      HERE WITH CHARS TO PRINT AND SOME ROOM IN BUFFER
        !          9514: > *
        !          9515: > PTTS2  BLO  WA,XR,PTTS3      JUMP IF ROOM FOR REST OF STRING
        !          9516: >        MOV  XR,WA            ELSE SET TO FILL LINE
        !          9517: > *
        !          9518: > *      MERGE HERE WITH CHARACTER COUNT IN WA
        !          9519: > *
        !          9520: > PTTS3  MOV  TTBUF,XR         POINT TO PRINT BUFFER
        !          9521: >        PLC  XL,WB            POINT TO LOCATION IN STRING
        !          9522: >        PSC  XR,TTOFS         POINT TO LOCATION IN BUFFER
        !          9523: >        ADD  WA,WB            BUMP STRING CHARS COUNT
        !          9524: >        ADD  WA,TTOFS         BUMP BUFFER POINTER
        !          9525: >        MVC                   MOVE CHARACTERS TO BUFFER
        !          9526: >        MOV  (XS)+,XR         RESTORE ARGUMENT POINTER
        !          9527: >        MOV  (XS)+,XL         RESTORE ENTRY XL
        !          9528: >        BRN  PTTS1            LOOP BACK TO TEST FOR MORE
        !          9529: >        EJC
        !          9530: > *
        !          9531: > *      HERE TO EXIT AFTER PRINTING STRING
        !          9532: > *
        !          9533: > PTTS4  MOV  PRTVB,WB         RESTORE ENTRY WB
        !          9534: >        MOV  PRTVA,WA         RESTORE ENTRY WA
        !          9535: > *
        !          9536: > *      RETURN POINT
        !          9537: > *
        !          9538: > PTTS5  EXI                   RETURN TO PTTST CALLER
        !          9539: >        ENP                   END PROCEDURE PTTST
        !          9540: 20851a19574,19578
        !          9541: > *      THE GLOBAL FLAG RDRER IS SET JUST BEFORE THE READ, AND
        !          9542: > *      CLEARED AFTER IT.  THIS IS SO THAT IN THE EVENT SYSRD
        !          9543: > *      OR SYSRI TAKE AN EROSI EXIT, THE ERROR APPENDAGE CAN
        !          9544: > *      RECOGNIZE THE SITUATION AND TAKE APPROPRIATE ACTION.
        !          9545: > *
        !          9546: 20859,20861c19586,19596
        !          9547: <        BNZ  XR,READ3         EXIT IF ALREADY READ
        !          9548: <        BNE  STAGE,=STGIC,READ3 EXIT IF NOT INITIAL COMPILE
        !          9549: <        MOV  CSWIN,WA         MAX READ LENGTH
        !          9550: ---
        !          9551: >        BNZ  XR,READ5         EXIT IF ALREADY READ
        !          9552: > *
        !          9553: > *      MERGE FROM -COPY EOF TO TRY READ
        !          9554: > *
        !          9555: > READ0  BEQ  STAGE,=STGIC,READ1 READ IF INITIAL COMPILE
        !          9556: >        BZE  R$COP,READ6      ELSE EXIT IF NO -COPY IN FORCE
        !          9557: > *
        !          9558: > *      ATTEMPT READ
        !          9559: > *
        !          9560: > READ1  MOV  CSWIN,WA         MAX READ LENGTH
        !          9561: >        MNZ  RDRER            NOTE IN-READR IN CASE EROSI
        !          9562: 20863,20864c19598,19612
        !          9563: <        JSR  SYSRD            READ INPUT IMAGE
        !          9564: <        PPM  READ4            JUMP IF END OF FILE
        !          9565: ---
        !          9566: 
        !          9567: 
        !          9568: 
        !          9569: 
        !          9570: 
        !          9571: 
        !          9572: 
        !          9573: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 146
        !          9574: 
        !          9575: 
        !          9576: >        BZE  TTINS,READ2      SKIP IF STANDARD INPUT FILE
        !          9577: >        JSR  SYSRI            READ FROM TERMINAL
        !          9578: >        PPM  READ7            FAIL
        !          9579: >        PPM  EROSI            ERROR
        !          9580: >        BRN  READ3            MERGE
        !          9581: > *
        !          9582: > *      READ FROM STANDARD FILE
        !          9583: > *
        !          9584: > READ2  JSR  SYSRD            READ INPUT IMAGE
        !          9585: >        PPM  READ7            JUMP IF END OF FILE
        !          9586: >        PPM  EROSI            ERROR RETURN
        !          9587: > *
        !          9588: > *      MERGE
        !          9589: > *
        !          9590: > READ3  ZER  RDRER            NOTE NOT-IN-READR FOR ERROR RTN
        !          9591: 20866c19614
        !          9592: <        BLE  SCLEN(XR),CSWIN,READ1  USE SMALLER OF STRING LNTH ..
        !          9593: ---
        !          9594: >        BLE  SCLEN(XR),CSWIN,READ4  USE SMALLER OF STRING LNTH..
        !          9595: 20871c19619
        !          9596: < READ1  JSR  TRIMR            TRIM TRAILING BLANKS
        !          9597: ---
        !          9598: > READ4  JSR  TRIMR            TRIM TRAILING BLANKS
        !          9599: 20875c19623
        !          9600: < READ2  MOV  XR,R$CNI         STORE COPY OF POINTER
        !          9601: ---
        !          9602: > READ5  MOV  XR,R$CNI         STORE COPY OF POINTER
        !          9603: 20879c19627
        !          9604: < READ3  EXI                   RETURN TO READR CALLER
        !          9605: ---
        !          9606: > READ6  EXI                   RETURN TO READR CALLER
        !          9607: 20883c19631,19632
        !          9608: < READ4  MOV  XR,DNAMP         POP UNUSED SCBLK
        !          9609: ---
        !          9610: > READ7  ZER  RDRER            NOTE NOT-IN-READR FOR ERR
        !          9611: >        MOV  XR,DNAMP         POP UNUSED SCBLK
        !          9612: 20885c19634,19636
        !          9613: <        BRN  READ2            MERGE
        !          9614: ---
        !          9615: >        BZE  R$COP,READ5      SKIP IF NO -COPY IN FORCE
        !          9616: >        JSR  COPND            CALL TO END THIS -COPY (EOF)
        !          9617: >        BRN  READ0            TRY AGAIN
        !          9618: 20886a19638
        !          9619: > .IF    .CASL
        !          9620: 20888a19641,19724
        !          9621: > *      SBSCC -- BUILD SUBSTRING WITH CASE CONVERSION
        !          9622: > *
        !          9623: > *      (XL)                  PTR TO SCBLK CONTAINING CHARS
        !          9624: > *      (WA)                  CHAR COUNT
        !          9625: > *      (WB)                  OFFSET TO FIRST CHAR IN SCBLK
        !          9626: > *      JSR  SBSCC            CALL TO BUILD SUBSTRING
        !          9627: > *      (XR)                  PTR TO NEW SCBLK WITH SUBSTRING
        !          9628: > *      (WA,WB,WC,XL,IA)      DESTROYED
        !          9629: > *
        !          9630: > *      IF OPTION .CPLC IS SELECTED (PREFER LOWER CASE), TARGET
        !          9631: > *      CASE IS LOWER CASE, OTHERWISE IT IS UPPER CASE.
        !          9632: 
        !          9633: 
        !          9634: 
        !          9635: 
        !          9636: 
        !          9637: 
        !          9638: 
        !          9639: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 147
        !          9640: 
        !          9641: 
        !          9642: > *
        !          9643: > SBSCC  PRC  E,0              ENTRY POINT
        !          9644: >        BZE  WA,SBSC4         JUMP IF NULL SUBSTRING
        !          9645: >        JSR  ALOCS            ELSE ALLOCATE SCBLK
        !          9646: >        MOV  WC,WA            MOVE NUMBER OF CHARACTERS
        !          9647: >        MOV  XR,WC            SAVE PTR TO NEW SCBLK
        !          9648: >        PLC  XL,WB            PREPARE TO LOAD CHARS FROM OLD BLK
        !          9649: >        PSC  XR               PREPARE TO STORE CHARS IN NEW BLK
        !          9650: >        LCT  WA,WA            TO COUNT ROUND LOOP
        !          9651: > *
        !          9652: > *      LOOP TO COPY AND TRANSLATE CHARS
        !          9653: > *
        !          9654: > SBSC1  LCH  WB,(XL)+         GET CHAR
        !          9655: > .IF    .CPLC
        !          9656: >        BGT  WB,=CH$L$,SBSC2  SKIP IF NOT UC LETTER
        !          9657: >        BLT  WB,=CH$LA,SBSC2  SKIP IF NOT UC LETTER
        !          9658: > .IF    .CSCV
        !          9659: >        CUL  WB               CONVERT FROM UC TO LC
        !          9660: > .ELSE
        !          9661: >        ADD  =DFA$A,WB        CONVERT FROM UC TO LC
        !          9662: > .FI
        !          9663: > .ELSE
        !          9664: >        BGT  WB,=CH$$$,SBSC2  SKIP IF NOT A LC LETTER
        !          9665: >        BLT  WB,=CH$$A,SBSC2  SKIP IF NOT A LC LETTER
        !          9666: > .IF    .CSCV
        !          9667: >        CLU  WB               CONVERT FROM LC TO UC
        !          9668: > .ELSE
        !          9669: >        SUB  =DFA$A,WB        CONVERT FROM LC TO UC
        !          9670: > .FI
        !          9671: > .FI
        !          9672: > *
        !          9673: > *      STORE CHAR IN NEW SUBSTRING
        !          9674: > *
        !          9675: > SBSC2  SCH  WB,(XR)+         STORE CHAR
        !          9676: >        BCT  WA,SBSC1         LOOP
        !          9677: >        MOV  WC,XR            RESTORE SCBLK POINTER
        !          9678: > *
        !          9679: > *      RETURN POINT
        !          9680: > *
        !          9681: > SBSC3  ZER  XL               CLEAR GARBAGE POINTER IN XL
        !          9682: >        EXI                   RETURN TO SBSCC CALLER
        !          9683: > *
        !          9684: > *      HERE FOR NULL SUBSTRING
        !          9685: > *
        !          9686: > SBSC4  MOV  =NULLS,XR        SET NULL STRING AS RESULT
        !          9687: >        BRN  SBSC3            RETURN
        !          9688: >        ENP                   END PROCEDURE SBSCC
        !          9689: >        EJC
        !          9690: > *
        !          9691: > *      SBSTG -- BUILD SUBSTRING POSSIBLY CONVERTING CASE
        !          9692: > *
        !          9693: > *      (XL)                  PTR TO SCBLK CONTAINING CHARS
        !          9694: > *      (WA)                  CHAR COUNT
        !          9695: > *      (WB)                  OFFSET TO FIRST CHAR IN SCBLK
        !          9696: > *      JSR  SBSTG            CALL TO BUILD SUBSTRING
        !          9697: > *      (XR)                  PTR TO NEW SCBLK WITH SUBSTRING
        !          9698: 
        !          9699: 
        !          9700: 
        !          9701: 
        !          9702: 
        !          9703: 
        !          9704: 
        !          9705: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 148
        !          9706: 
        !          9707: 
        !          9708: > *      (WA,WB,WC,XL,IA)      DESTROYED
        !          9709: > *
        !          9710: > *      IF CASE IS TO BE IGNORED (-CASEIG OR .CSIG), SUBSTRING
        !          9711: > *      IS CONVERTED TO PREFERRED CASE (DEFAULT UPPER),
        !          9712: > *      OTHERWISE CASE IS LEFT ALONE.
        !          9713: > *
        !          9714: > SBSTG  PRC  E,0              ENTRY POINT
        !          9715: >        BZE  CSWCI,SBSG1      SKIP IF CASE NOT IGNORED
        !          9716: >        JSR  SBSCC            CONVERT TO IGNORE CASE
        !          9717: >        EXI                   RETURN TO CALLER
        !          9718: > *
        !          9719: > SBSG1  JSR  SBSTR            READ SUBSTRING IN MIXED CASE
        !          9720: >        EXI                   RETURN TO CALLER
        !          9721: >        ENP                   END PROCEDURE SBSTG
        !          9722: > .FI
        !          9723: >        EJC
        !          9724: > *
        !          9725: 20891c19727
        !          9726: < *      (XL)                  PTR TO SCBLK/BFBLK WITH CHARS
        !          9727: ---
        !          9728: > *      (XL)                  PTR TO SCBLK CONTAINING CHARS
        !          9729: 20896d19731
        !          9730: < *      (XL)                  ZERO
        !          9731: 21086,21087c19921
        !          9732: < .IF    .CUCF
        !          9733: <        BLO  =CFP$U,XR,SCN07  QUICK CHECK FOR OTHER CHAR
        !          9734: ---
        !          9735: >        BGE  XR,=CFP$U,SCN07  QUICK CHECK FOR OTHER CHAR
        !          9736: 21089,21091d19922
        !          9737: < .ELSE
        !          9738: <        BSW  XR,CFP$A,SCN07   SWITCH ON SCANNED CHARACTER
        !          9739: < .FI
        !          9740: 21187,21190c20018,20021
        !          9741: <        IFF  CH$PL,SCN33      PLUS
        !          9742: <        IFF  CH$MN,SCN34      MINUS
        !          9743: <        IFF  CH$NT,SCN35      NOT
        !          9744: <        IFF  CH$DL,SCN36      DOLLAR
        !          9745: ---
        !          9746: >        IFF  CH$PL,SCN34      PLUS
        !          9747: >        IFF  CH$MN,SCN35      MINUS
        !          9748: >        IFF  CH$NT,SCN36      NOT
        !          9749: >        IFF  CH$DL,SCN33      DOLLAR
        !          9750: 21206c20037
        !          9751: <        ERB  230,SYNTAX ERROR. ILLEGAL CHARACTER
        !          9752: ---
        !          9753: >        ERB  232,SYNTAX ERROR. ILLEGAL CHARACTER
        !          9754: 21260c20091
        !          9755: < SCN14  ERB  231,SYNTAX ERROR. INVALID NUMERIC ITEM
        !          9756: ---
        !          9757: > SCN14  ERB  233,SYNTAX ERROR. INVALID NUMERIC ITEM
        !          9758: 21263a20095,20097
        !          9759: > .IF    .CASL
        !          9760: > SCN15  JSR  SBSTG            BUILD STRING NAME OF VARIABLE
        !          9761: > .ELSE
        !          9762: 21264a20099
        !          9763: > .FI
        !          9764: 
        !          9765: 
        !          9766: 
        !          9767: 
        !          9768: 
        !          9769: 
        !          9770: 
        !          9771: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 149
        !          9772: 
        !          9773: 
        !          9774: 21305c20140
        !          9775: <        ERB  232,SYNTAX ERROR. UNMATCHED STRING QUOTE
        !          9776: ---
        !          9777: >        ERB  234,SYNTAX ERROR. UNMATCHED STRING QUOTE
        !          9778: 21381,21382c20216,20217
        !          9779: < *      THE FIRST THREE ENTRIES ARE SPECIAL SINCE THEY CAN OCCUR
        !          9780: < *      AS PART OF A VARIABLE NAME (.) OR CONSTANT (.+-).
        !          9781: ---
        !          9782: > *      THE FIRST FOUR ENTRIES ARE SPECIAL SINCE THEY CAN OCCUR
        !          9783: > *      AS PART OF A VARIABLE NAME (.$) OR CONSTANT (.+-).
        !          9784: 21387c20222,20225
        !          9785: < SCN33  BZE  WC,SCN09         PLUS CAN BE PART OF CONSTANT
        !          9786: ---
        !          9787: > SCN33  BZE  WB,SCN09         DOLLAR CAN BE PART OF NAME
        !          9788: >        ADD  WB,WC            ELSE BUMP POINTER
        !          9789: > *
        !          9790: > SCN34  BZE  WC,SCN09         PLUS CAN BE PART OF CONSTANT
        !          9791: 21391c20229
        !          9792: < SCN34  BZE  WC,SCN09         MINUS CAN BE PART OF CONSTANT
        !          9793: ---
        !          9794: > SCN35  BZE  WC,SCN09         MINUS CAN BE PART OF CONSTANT
        !          9795: 21393a20232,20234
        !          9796: >        LCH  XR,(XL)          GET NEXT CHARACTER
        !          9797: >        BLT  XR,=CH$D0,SCN36  SKIP IF NOT DIGIT
        !          9798: >        BLE  XR,=CH$D9,SCN08  JUMP IF DIGIT
        !          9799: 21395,21396c20236
        !          9800: < SCN35  ADD  WB,WC            NOT
        !          9801: < SCN36  ADD  WB,WC            DOLLAR
        !          9802: ---
        !          9803: > SCN36  ADD  WB,WC            NOT
        !          9804: 21405a20246
        !          9805: >        EJC
        !          9806: 21406a20248,20249
        !          9807: > *      SCANE (CONTINUED)
        !          9808: > *
        !          9809: 21439c20282
        !          9810: < SCN48  ERB  233,SYNTAX ERROR. INVALID USE OF OPERATOR
        !          9811: ---
        !          9812: > SCN48  ERB  235,SYNTAX ERROR. INVALID USE OF OPERATOR
        !          9813: 21494c20337
        !          9814: <        ERB  234,SYNTAX ERROR. GOTO FIELD INCORRECT
        !          9815: ---
        !          9816: >        ERB  236,SYNTAX ERROR. GOTO FIELD INCORRECT
        !          9817: 21500,21501c20343,20344
        !          9818: <        MOV  =OPDVN,WA        POINT TO OPDV FOR COMPLEX GOTO
        !          9819: <        BLE  XR,STATB,SCNG3   JUMP IF NOT IN STATIC (SGD15)
        !          9820: ---
        !          9821: >        MOV  =OPDVN,WA        ELSE POINT TO OPDV FOR COMPLEX GOTO
        !          9822: >        BLE  XR,STATB,SCNG3   JUMP IF NOT IN STATIC
        !          9823: 21503c20346
        !          9824: <        BRN  SCNG3            COMPLEX GOTO - MERGE
        !          9825: ---
        !          9826: >        BRN  SCNG3            AND MERGE
        !          9827: 21571c20414
        !          9828: < *      THE SORT USED IS HEAPSORT, FUNDAMENTALS OF DATA STRUCTURE
        !          9829: ---
        !          9830: 
        !          9831: 
        !          9832: 
        !          9833: 
        !          9834: 
        !          9835: 
        !          9836: 
        !          9837: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 150
        !          9838: 
        !          9839: 
        !          9840: > *      THE SORT USED IS HEAPSORT, FUNDAMENTALS OF DATA STRUCTURES,
        !          9841: 21576c20419
        !          9842: < *      SORT ARRAY) CONTAINING AT ITS HIGH ADDRESS END, BYTE
        !          9843: ---
        !          9844: > *      SORT ARRAY) CONTAINING AT ITS HIGH ADDRESS END, BAU
        !          9845: 21588a20432,20433
        !          9846: > *      GIVES ERROR MESSAGES FOR INCORRECT ARGS, RETURNS EXI 1
        !          9847: > *      FOR EMPTY TABLE.
        !          9848: 21593a20439
        !          9849: > *      PPM  LOC              FAIL RETURN FOR EMPTY TABLE
        !          9850: 21600c20446
        !          9851: < SORTA  PRC  N,0              ENTRY POINT
        !          9852: ---
        !          9853: > SORTA  PRC  N,1              ENTRY POINT
        !          9854: 21606a20453,20455
        !          9855: >        MOV  (XR),WA          GET ARG TYPE
        !          9856: >        BEQ  WA,=B$ART,SRT00  SKIP IF ARRAY
        !          9857: >        BNE  WA,=B$TBT,SRT16  ERROR IF NOT TABLE
        !          9858: 21608,21611c20457,20463
        !          9859: <        PPM  SRT16            FAIL
        !          9860: <        MOV  XR,-(XS)         STACK PTR TO RESULTING KEY ARRAY
        !          9861: <        MOV  XR,-(XS)         ANOTHER COPY FOR COPYB
        !          9862: <        JSR  COPYB            GET COPY ARRAY FOR SORTING INTO
        !          9863: ---
        !          9864: >        PPM  SRT18            FAIL
        !          9865: > *
        !          9866: > *      MAKE COPY OF ARRAY
        !          9867: > *
        !          9868: > SRT00  MOV  XR,-(XS)         STACK PTR TO RESULTING KEY ARRAY
        !          9869: >        MOV  XR,-(XS)         ANOTHER COPY FOR CBLCK
        !          9870: >        JSR  CBLCK            GET COPY ARRAY FOR SORTING INTO
        !          9871: 21619c20471
        !          9872: <        ERR  257,ERRONEOUS 2ND ARG IN SORT/RSORT OF VECTOR
        !          9873: ---
        !          9874: >        ERR  237,ERRONEOUS 2ND ARG IN SORT/RSORT OF VECTOR
        !          9875: 21627c20479
        !          9876: <        SUB  *VCSI$,WA        GET NO. OF ENTRIES, N (IN BYTES)
        !          9877: ---
        !          9878: >        SUB  *VCSI$,WA        GET NO. OF ENTRIES, N (IN BAUS)
        !          9879: 21635c20487
        !          9880: <        MOV  *ARVLS,WB        OFFSET TO FIRST VALUE IF ONE
        !          9881: ---
        !          9882: >        MOV  *ARVLS,WB        OFFSET TO FIRST VALUE IF ONE DIM.
        !          9883: 21637,21639c20489,20491
        !          9884: <        BEQ  ARNDM(XL),=NUM01,SRT04 JUMP IN FACT IF ONE DIM.
        !          9885: <        BNE  ARNDM(XL),=NUM02,SRT16  FAIL UNLESS TWO DIMENS
        !          9886: <        LDI  ARLB2(XL)        GET LOWER BOUND 2 AS DEFAULT
        !          9887: ---
        !          9888: >        BEQ  ARNDM(XL),=NUM01,SRT04 JUMP IF IN FACT ONE DIMENSION
        !          9889: >        BNE  ARNDM(XL),=NUM02,SRT16  FAIL UNLESS TWO DIMENSIONAL
        !          9890: >        LDI  ARLB2(XL)        GET LOWER BOUND 2 AS DEFAULT COLUMN
        !          9891: 21662c20514
        !          9892: <        WTB  WA               CONVERT TO BYTES
        !          9893: ---
        !          9894: >        WTB  WA               CONVERT TO BAUS
        !          9895: 21679c20531
        !          9896: 
        !          9897: 
        !          9898: 
        !          9899: 
        !          9900: 
        !          9901: 
        !          9902: 
        !          9903: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 151
        !          9904: 
        !          9905: 
        !          9906: < *      WA = NUMBER OF ITEMS, N (CONVERTED TO BYTES).
        !          9907: ---
        !          9908: > *      WA = NUMBER OF ITEMS, N (CONVERTED TO BAUS).
        !          9909: 21714c20566
        !          9910: <        BTW  WC               CONVERT FROM BYTES
        !          9911: ---
        !          9912: >        BTW  WC               CONVERT FROM BAUS
        !          9913: 21726c20578
        !          9914: < *      (SRTSN)               NUMBER OF ITEMS TO SORT, N (BYTES)
        !          9915: ---
        !          9916: > *      (SRTSN)               NUMBER OF ITEMS TO SORT, N (BAUS)
        !          9917: 21732c20584
        !          9918: <        WTB  WC               CONVERT BACK TO BYTES
        !          9919: ---
        !          9920: >        WTB  WC               CONVERT BACK TO BAUS
        !          9921: 21742c20594
        !          9922: < *      ITEM, SINCE ALGORITHM INITIALISES IT AS, AND THEN MAINTAI
        !          9923: ---
        !          9924: > *      ITEM, SINCE ALGORITHM INITIALISES IT AS, AND THEN MAINTAINS
        !          9925: 21799,21800c20651,20656
        !          9926: < SRT16  ERB  256,SORT/RSORT 1ST ARG NOT SUITABLE ARRAY OR TABLE
        !          9927: < SRT17  ERB  258,SORT/RSORT 2ND ARG OUT OF RANGE OR NON-INTEGER
        !          9928: ---
        !          9929: > SRT16  ERB  238,SORT/RSORT 1ST ARG NOT SUITABLE ARRAY OR TABLE
        !          9930: > SRT17  ERB  239,SORT/RSORT 2ND ARG OUT OF RANGE OR NON-INTEGER
        !          9931: > *
        !          9932: > *      SOFT FAIL RETURN
        !          9933: > *
        !          9934: > SRT18  EXI  1                RETURN
        !          9935: 21964c20820
        !          9936: <        WTB  WC               CONVERT TO BYTES
        !          9937: ---
        !          9938: >        WTB  WC               CONVERT TO BAUS
        !          9939: 21993c20849
        !          9940: < *      (WA)                  MAX ARRAY INDEX, N (IN BYTES)
        !          9941: ---
        !          9942: > *      (WA)                  MAX ARRAY INDEX, N (IN BAUS)
        !          9943: 22045c20901
        !          9944: <        WTB  WC               CONVERT BACK TO BYTES
        !          9945: ---
        !          9946: >        WTB  WC               CONVERT BACK TO BAUS
        !          9947: 22057c20913
        !          9948: <        WTB  WC               CONVERT BACK TO BYTES
        !          9949: ---
        !          9950: >        WTB  WC               CONVERT BACK TO BAUS
        !          9951: 22123a20980,20982
        !          9952: > *      POSSIBILITY OF OVERFLOW EXIST ON TWOS COMPLEMENT
        !          9953: > *      MACHINE IF HASH SOURCE IS MOST NEGATIVE INTEGER OR IS
        !          9954: > *      A REAL HAVING THE SAME BIT PATTERN.
        !          9955: 22149c21008
        !          9956: <        WTB  WC               CONVERT TO BYTE OFFSET
        !          9957: ---
        !          9958: >        WTB  WC               CONVERT TO BAU OFFSET
        !          9959: 22202a21062
        !          9960: >        MOV  XR,WB            COPY DEFAULT VALUE
        !          9961: 22211c21071
        !          9962: 
        !          9963: 
        !          9964: 
        !          9965: 
        !          9966: 
        !          9967: 
        !          9968: 
        !          9969: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 152
        !          9970: 
        !          9971: 
        !          9972: <        MOV  =NULLS,TEVAL(XR) SET NULL AS INITIAL VALUE
        !          9973: ---
        !          9974: >        MOV  WB,TEVAL(XR)     SET DEFAULT AS INITIAL VALUE
        !          9975: 22214c21074
        !          9976: <        ICA  XS               POP PAST NAME/VALUE INDICATOR
        !          9977: ---
        !          9978: >        MOV  (XS)+,WB         RESTORE NAME/VALUE INDICATOR
        !          9979: 22235a21096
        !          9980: > *      PPM  LOC              FAIL STOPTR IF NON-EXISTENT TRACE
        !          9981: 22239c21100
        !          9982: < TRACE  PRC  N,2              ENTRY POINT
        !          9983: ---
        !          9984: > TRACE  PRC  N,3              ENTRY POINT
        !          9985: 22244,22246c21105,21112
        !          9986: < .IF    .CULC
        !          9987: <        FLC  WA               FOLD TO UPPER CASE
        !          9988: < .FI
        !          9989: ---
        !          9990: > .IF    .CASL
        !          9991: >        BLT  WA,=CH$$A,TRC00  SKIP IF NOT LOWER CASE
        !          9992: >        SUB  =DFA$A,WA        CONVERT LOWER TO UPPER CASE
        !          9993: > *
        !          9994: > *      HERE WITH UPPER CASE TRACE TYPE CODE
        !          9995: > *
        !          9996: > TRC00  MOV  (XS),XR          LOAD NAME ARGUMENT
        !          9997: > .ELSE
        !          9998: 22247a21114
        !          9999: > .FI
        !          10000: 22253,22255d21119
        !          10001: < .IF    .CULC
        !          10002: <        BZE  WA,TRC10         JUMP IF BLANK (VALUE)
        !          10003: < .ELSE
        !          10004: 22257d21120
        !          10005: < .FI
        !          10006: 22273a21137
        !          10007: >        MOV  XL,WB            COPY TRBLK PTR OR 0
        !          10008: 22280a21145
        !          10009: >        ORB  PFCTR(XR),WB     STOPTR FAIL CHECK
        !          10010: 22282c21147
        !          10011: <        BEQ  WA,=CH$LC,EXNUL  EXIT WITH NULL IF C (CALL)
        !          10012: ---
        !          10013: >        BEQ  WA,=CH$LC,TRC11  RETURN IF LETTER C
        !          10014: 22286,22287c21151,21153
        !          10015: < TRC02  MOV  XL,PFRTR(XR)     SET/RESET RETURN TRACE
        !          10016: <        EXI                   RETURN
        !          10017: ---
        !          10018: > TRC02  ORB  PFRTR(XR),WB     STOPTR FAIL CHECK
        !          10019: >        MOV  XL,PFRTR(XR)     SET/RESET RETURN TRACE
        !          10020: >        BRN  TRC11            RETURN
        !          10021: 22292a21159
        !          10022: >        MOV  (XS)+,WB         GET TRBLK OR ZERO
        !          10023: 22295a21163
        !          10024: >        BRN  TRCA4            MERGE
        !          10025: 22299,22300c21167,21171
        !          10026: < TRC04  BEQ  XL,=STNDL,TRC16  ERROR IF UNDEFINED LABEL
        !          10027: <        MOV  (XS)+,WB         GET TRBLK PTR AGAIN
        !          10028: 
        !          10029: 
        !          10030: 
        !          10031: 
        !          10032: 
        !          10033: 
        !          10034: 
        !          10035: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 153
        !          10036: 
        !          10037: 
        !          10038: ---
        !          10039: > TRC04  BZE  WB,TRC12         FAIL IF STOPTR OF UNTRACED LABEL
        !          10040: > *
        !          10041: > *      TEST FOR UNDEFINED LABEL
        !          10042: > *
        !          10043: > TRCA4  BEQ  XL,=STNDL,TRC17  ERROR IF UNDEFINED LABEL
        !          10044: 22326c21197
        !          10045: < *      MERGE HERE WITH TRBLK SET UP IN WB (OR ZERO)
        !          10046: ---
        !          10047: > *      MERGE HERE WITH TRBLK SET UP IN XL (OR ZERO)
        !          10048: 22328a21200
        !          10049: >        MOV  XL,WB            COPY TRBLK PR OR 0
        !          10050: 22334a21207
        !          10051: >        ORB  R$FNC,WB         STOPTR FAIL CHECK
        !          10052: 22336c21209
        !          10053: <        EXI                   RETURN
        !          10054: ---
        !          10055: >        BRN  TRC11            RETURN
        !          10056: 22340,22341c21213,21215
        !          10057: < TRC08  MOV  XL,R$ERT         SET/RESET ERRTYPE TRACE
        !          10058: <        EXI                   RETURN
        !          10059: ---
        !          10060: > TRC08  ORB  R$ERT,WB         STOPTR FAIL CHECK
        !          10061: >        MOV  XL,R$ERT         SET/RESET ERRTYPE TRACE
        !          10062: >        BRN  TRC11            RETURN
        !          10063: 22345,22346c21219,21221
        !          10064: < TRC09  MOV  XL,R$STC         SET/RESET STCOUNT TRACE
        !          10065: <        EXI                   RETURN
        !          10066: ---
        !          10067: > TRC09  ORB  R$STC,WB         STOPTR FAIL CHECK
        !          10068: >        MOV  XL,R$STC         SET/RESET STCOUNT TRACE
        !          10069: >        BRN  TRC11            RETURN
        !          10070: 22355,22357c21230,21234
        !          10071: <        MOV  (XS)+,WB         GET NEW TRBLK PTR AGAIN
        !          10072: <        ADD  XL,WA            POINT TO VARIABLE LOCATION
        !          10073: <        MOV  WA,XR            COPY VARIABLE POINTER
        !          10074: ---
        !          10075: >        MOV  (XS)+,XR         GET NEW TRBLK PTR AGAIN
        !          10076: >        MOV  WC,WB            COPY TRACE TYPE
        !          10077: >        JSR  TRCHN            UPDATE TRACE CHAIN
        !          10078: >        PPM  TRC12            FAIL
        !          10079: >        EXI                   RETURN
        !          10080: 22359c21236
        !          10081: < *      LOOP TO SEARCH TRBLK CHAIN
        !          10082: ---
        !          10083: > *      RETURN AFTER CHECKING STOPTR FAIL CONDITION (WB = 0)
        !          10084: 22361,22367c21238,21239
        !          10085: < TRC11  MOV  (XR),XL          POINT TO NEXT ENTRY
        !          10086: <        BNE  (XL),=B$TRT,TRC13  JUMP IF NOT TRBLK
        !          10087: <        BLT  WC,TRTYP(XL),TRC13 JUMP IF TOO FAR OUT ON CHAIN
        !          10088: <        BEQ  WC,TRTYP(XL),TRC12 JUMP IF THIS MATCHES OUR TYPE
        !          10089: <        ADD  *TRNXT,XL        ELSE POINT TO LINK FIELD
        !          10090: <        MOV  XL,XR            COPY POINTER
        !          10091: <        BRN  TRC11            AND LOOP BACK
        !          10092: ---
        !          10093: > TRC11  ZRB  WB,TRC12         FAIL IF NECESSARY
        !          10094: 
        !          10095: 
        !          10096: 
        !          10097: 
        !          10098: 
        !          10099: 
        !          10100: 
        !          10101: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 154
        !          10102: 
        !          10103: 
        !          10104: >        EXI                   ELSE RETURN
        !          10105: 22369c21241
        !          10106: < *      HERE TO DELETE AN OLD TRBLK OF THE TYPE WE WERE GIVEN
        !          10107: ---
        !          10108: > *      FAIL STOPTR
        !          10109: 22371,22372c21243
        !          10110: < TRC12  MOV  TRNXT(XL),XL     GET PTR TO NEXT BLOCK OR VALUE
        !          10111: <        MOV  XL,(XR)          STORE TO DELETE THIS TRBLK
        !          10112: ---
        !          10113: > TRC12  EXI  3                FAIL RETURN
        !          10114: 22374,22388d21244
        !          10115: < *      HERE AFTER DELETING ANY OLD ASSOCIATION OF THIS TYPE
        !          10116: < *
        !          10117: < TRC13  BZE  WB,TRC14         JUMP IF STOPTR CASE
        !          10118: <        MOV  WB,(XR)          ELSE LINK NEW TRBLK IN
        !          10119: <        MOV  WB,XR            COPY TRBLK POINTER
        !          10120: <        MOV  XL,TRNXT(XR)     STORE FORWARD POINTER
        !          10121: <        MOV  WC,TRTYP(XR)     STORE APPROPRIATE TRAP TYPE CODE
        !          10122: < *
        !          10123: < *      HERE TO MAKE SURE VRGET,VRSTO ARE SET PROPERLY
        !          10124: < *
        !          10125: < TRC14  MOV  WA,XR            RECALL POSSIBLE VRBLK POINTER
        !          10126: <        SUB  *VRVAL,XR        POINT BACK TO VRBLK
        !          10127: <        JSR  SETVR            SET FIELDS IF VRBLK
        !          10128: <        EXI                   RETURN
        !          10129: < *
        !          10130: 22409c21265
        !          10131: < *      (XL)                  TRFNC OR TRFPT
        !          10132: ---
        !          10133: > *      (XL)                  TRFNC OR TRTRI
        !          10134: 22420,22421c21276,21277
        !          10135: <        MOV  XL,TRFNC(XR)     STORE TRFNC (OR TRFPT)
        !          10136: <        MOV  (XS)+,TRTAG(XR)  STORE TRTAG (OR TRFNM)
        !          10137: ---
        !          10138: >        MOV  XL,TRFNC(XR)     STORE TRFNC (OR TRTRI)
        !          10139: >        MOV  (XS)+,TRTAG(XR)  STORE TRTAG (OR TRTER)
        !          10140: 22427a21284,21340
        !          10141: > *      TRCHN -- UPDATE TRACE BLOCK CHAIN
        !          10142: > *
        !          10143: > *      CALLED WHEN A TRACE BLOCK CHAIN IS TO BE UPDATED BY
        !          10144: > *      ADDITION OR REMOVAL OF A TRBLK.
        !          10145: > *      IF A TRBLK OF THE SAME TYPE AS AN ADDITION IS ALREADY
        !          10146: > *      PRESENT IT IS DELETED. THE TRTAG FIELD OF ANY DELETED
        !          10147: > *      TRBLK IS CLEARED AS REQUIRED BY S$ENF.
        !          10148: > *
        !          10149: > *      (XL,WA)               POINTER, OFFSET TO TRACED VARIABLE
        !          10150: > *      (XR)                  PTR TO NEW TRBLK OR 0 FOR REMOVAL
        !          10151: > *      (WB)                  TRACE TYPE (TRTYP)
        !          10152: > *      JSR  TRCHN            CALL TO UPDATE TRACE CHAIN
        !          10153: > *      PPM  LOC              NO TRACE BLK OF REQD DELETION TYPE
        !          10154: > *      (WA,WC)               DESTROYED
        !          10155: > *
        !          10156: > TRCHN  PRC  E,1              ENTRY POINT
        !          10157: >        ADD  XL,WA            KEEP POINTER TO TRACED LOCATION
        !          10158: >        MOV  WA,XL            COPY POINTER
        !          10159: >        SUB  *TRNXT,XL        ADJUST OFFSET BEFORE ENTERING LOOP
        !          10160: 
        !          10161: 
        !          10162: 
        !          10163: 
        !          10164: 
        !          10165: 
        !          10166: 
        !          10167: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 155
        !          10168: 
        !          10169: 
        !          10170: >        MOV  XR,WC            COPY TRBLK PTR
        !          10171: > *
        !          10172: > *      LOOP TO FIND TRACE BLOCK
        !          10173: > *
        !          10174: > TRCH1  MOV  XL,XR            COPY SO XR POINTS TO PREDECESSOR
        !          10175: >        MOV  TRNXT(XL),XL     POINT TO POSSIBLE TRACE BLOCK
        !          10176: >        BNE  (XL),=B$TRT,TRCH2 SKIP OUT AT CHAIN END
        !          10177: >        BLT  WB,TRTYP(XL),TRCH2 SKIP IF TOO FAR OUT ON CHAIN
        !          10178: >        BNE  WB,TRTYP(XL),TRCH1 LOOP UNLESS TYPE MATCHES
        !          10179: >        MOV  TRNXT(XL),TRNXT(XR) REMOVE LINK TO OLD TRBLK
        !          10180: >        ZER  TRTAG(XL)        CLEAR IOTAG FIELD OF DELETED BLOCK
        !          10181: >        BZE  WC,TRCH3         DONE IF NO NEW TRBLK
        !          10182: > *
        !          10183: > *      OLD TRBLK REMOVED AND/OR END OF CHAIN REACHED
        !          10184: > *
        !          10185: > TRCH2  BZE  WC,TRCH4         FAIL IF REQD BLOCK TYPE NOT FOUND
        !          10186: >        MOV  WC,XL            POINT TO NEW TRBLK
        !          10187: >        MOV  TRNXT(XR),TRNXT(XL) ATTACH TAIL OF CHAIN TO IT
        !          10188: >        MOV  WC,TRNXT(XR)     LINK NEW BLOCK IN
        !          10189: >        MOV  WB,TRTYP(XL)     ENSURE TRTYP FIELD SET UP
        !          10190: > *
        !          10191: > *      UPDATE ACCESS FIELDS OF NAME IF IT IS A VRBLK
        !          10192: > *
        !          10193: > TRCH3  MOV  WA,XR            POINT TO VBL
        !          10194: >        SUB  *VRVAL,XR        ADJUST TO POSSIBLE VRBLK NAME BASE
        !          10195: >        JSR  SETVR            UPDATE ACCESS FIELDS
        !          10196: >        MOV  WA,XL            RECOVER XL
        !          10197: >        MOV  WC,XR            RECOVER XR
        !          10198: >        EXI                   RETURN TO CALLER
        !          10199: > *
        !          10200: > *      FAIL RETURN
        !          10201: > *
        !          10202: > TRCH4  MOV  WA,XL            RECOVER XL
        !          10203: >        MOV  WC,XR            RECOVER XR
        !          10204: >        EXI  1                FAIL
        !          10205: >        ENP                   END PROCEDURE TRCHN
        !          10206: >        EJC
        !          10207: > *
        !          10208: 22475,22476c21388,21389
        !          10209: <        PSC  XL,WA            READY FOR STORING BLANKS
        !          10210: <        CTB  WA,SCHAR         GET LENGTH OF BLOCK IN BYTES
        !          10211: ---
        !          10212: >        PSC  XL,WA            READY FOR STORING ZEROES
        !          10213: >        CTB  WA,SCHAR         GET LENGTH OF BLOCK IN BAUS
        !          10214: 22480c21393
        !          10215: <        ZER  WC               SET BLANK CHAR
        !          10216: ---
        !          10217: >        ZER  WC               SET ZERO CHAR
        !          10218: 22562c21475
        !          10219: < TRXQ1  MOV  FLPTR,XS         POINT BACK TO OUR STACK ENTRIES
        !          10220: ---
        !          10221: > TRXQR  MOV  FLPTR,XS         POINT BACK TO OUR STACK ENTRIES
        !          10222: 22595a21509
        !          10223: > *      (XSCNB)               ERROR INDICATOR - SEE 4) BELOW
        !          10224: 22596a21511,21513
        !          10225: > *      LEADING BLANKS AND TRAILING BLANKS POSITIONED BEFORE A
        !          10226: 
        !          10227: 
        !          10228: 
        !          10229: 
        !          10230: 
        !          10231: 
        !          10232: 
        !          10233: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 156
        !          10234: 
        !          10235: 
        !          10236: > *      DELIMITER OR AT THE END OF THE ARGUMENT STRING ARE
        !          10237: > *      IGNORED. OTHER BLANKS ARE ILLEGAL.
        !          10238: 22598c21515
        !          10239: < *      UNTIL ONE OF THE FOLLOWING THREE CONDITIONS OCCURS.
        !          10240: ---
        !          10241: > *      UNTIL ONE OF THE FOLLOWING CONDITIONS OCCURS.
        !          10242: 22604c21521
        !          10243: < *      3)   END OF STRING ENCOUNTERED  (WA SET TO 0)
        !          10244: ---
        !          10245: > *      3)   END OF STRING ENCOUNTERED  (WA AND XSCNB SET TO 0)
        !          10246: 22605a21523,21524
        !          10247: > *      4)   ILLEGAL BLANK  (WA 0, XSCNB NON-ZERO)
        !          10248: > *
        !          10249: 22622a21542,21543
        !          10250: >        ZER  XSCBL            CLEAR COUNT OF TRAILING BLANKS
        !          10251: >        ZER  XSCNB            CLEAR NON-BLANK SEEN FLAG
        !          10252: 22632c21553
        !          10253: < XSCN1  LCH  WB,(XR)+         LOAD NEXT CHARACTER
        !          10254: ---
        !          10255: > XSCN0  LCH  WB,(XR)+         LOAD NEXT CHARACTER
        !          10256: 22635,22636c21556,21561
        !          10257: <        DCV  WA               DECREMENT COUNT OF CHARS LEFT
        !          10258: <        BNZ  WA,XSCN1         LOOP BACK IF MORE CHARS TO GO
        !          10259: ---
        !          10260: >        BEQ  WB,=CH$BL,XSCN7  SKIP IF IT IS A BLANK
        !          10261: > .IF    .CAHT
        !          10262: >        BEQ  WB,=CH$HT,XSCN7  SKIP IF IT IS A TAB
        !          10263: > .FI
        !          10264: >        BNZ  XSCBL,XSCN2      FAIL CHAR AFTER TRAILING BLANK
        !          10265: >        MNZ  XSCNB            NOTE A NON-BLANK SEEN
        !          10266: 22637a21563,21568
        !          10267: > *      COUNT CHARS DONE
        !          10268: > *
        !          10269: > XSCN1  DCV  WA               DECREMENT COUNT OF CHARS LEFT
        !          10270: >        BNZ  WA,XSCN0         LOOP BACK IF MORE CHARS TO GO
        !          10271: >        ZER  XSCNB            CLEAR ERRONEOUS BLANKS FLAG
        !          10272: > *
        !          10273: 22643a21575
        !          10274: >        SUB  XSCBL,WA         ADJUST FOR TRAILING BLANKS
        !          10275: 22665a21598
        !          10276: >        SUB  XSCBL,WA         ADJUST FOR TRAILING BLANKS
        !          10277: 22673a21607,21609
        !          10278: > .IF    .CASL
        !          10279: >        JSR  SBSTG            BUILD SUBSTRING
        !          10280: > .ELSE
        !          10281: 22674a21611
        !          10282: > .FI
        !          10283: 22677a21615,21625
        !          10284: > *
        !          10285: > *      DEAL WITH BLANK
        !          10286: > *
        !          10287: > XSCN7  BZE  XSCNB,XSCN8      SKIP IF LEADING BLANK
        !          10288: >        ICV  XSCBL            ELSE COUNT TRAILING BLANK
        !          10289: >        BRN  XSCN1            LOOP
        !          10290: > *
        !          10291: > *      LEADING BLANK
        !          10292: 
        !          10293: 
        !          10294: 
        !          10295: 
        !          10296: 
        !          10297: 
        !          10298: 
        !          10299: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 157
        !          10300: 
        !          10301: 
        !          10302: > *
        !          10303: > XSCN8  ICV  XSOFS            PUSH OFFSET PAST BLANK
        !          10304: >        BRN  XSCN1            LOOP
        !          10305: 22753c21701
        !          10306: <        WTB  XR               CONVERT TO BYTE OFFSET
        !          10307: ---
        !          10308: >        WTB  XR               CONVERT TO BAU OFFSET
        !          10309: 22765c21713
        !          10310: <        ERB  235,SUBSCRIPTED OPERAND IS NOT TABLE OR ARRAY
        !          10311: ---
        !          10312: >        ERB  240,SUBSCRIPTED OPERAND IS NOT TABLE OR ARRAY
        !          10313: 22841c21789
        !          10314: <        WTB  WA               CONVERT OFFSET TO BYTES
        !          10315: ---
        !          10316: >        WTB  WA               CONVERT OFFSET TO BAUS
        !          10317: 22853c21801
        !          10318: < ARF09  ERB  236,ARRAY REFERENCED WITH WRONG NUMBER OF SUBSCRIPTS
        !          10319: ---
        !          10320: > ARF09  ERB  241,ARRAY REFERENCED WITH WRONG NUMBER OF SUBSCRIPTS
        !          10321: 22866c21814
        !          10322: < ARF11  ERB  237,TABLE REFERENCED WITH MORE THAN ONE SUBSCRIPT
        !          10323: ---
        !          10324: > ARF11  ERB  242,TABLE REFERENCED WITH MORE THAN ONE SUBSCRIPT
        !          10325: 22870c21818
        !          10326: < ARF12  ERB  238,ARRAY SUBSCRIPT IS NOT INTEGER
        !          10327: ---
        !          10328: > ARF12  ERB  243,ARRAY SUBSCRIPT IS NOT INTEGER
        !          10329: 22901c21849
        !          10330: <        WTB  WB               CONVERT TO BYTES
        !          10331: ---
        !          10332: >        WTB  WB               CONVERT TO BAUS
        !          10333: 22921a21870,21888
        !          10334: > *      EROSI -- PROCESS ERROR RETURN FROM OSINT
        !          10335: > *
        !          10336: > *      (WA)                  0 OR ERROR CODE IN 256 TO 998
        !          10337: > *      (XL)                  0 OR PSEUDO SCBLK FOR ERROR MESSAGE
        !          10338: > *      (IA)                  NEW VALUE FOR CODE KEYWORD
        !          10339: > *      BRN  EROSI            JUMP TO PROCESS ERROR
        !          10340: > *
        !          10341: > EROSI  RTN
        !          10342: >        STI  KVCOD            STORE NEW CODE KEYWORD VALUE
        !          10343: >        MOV  WA,KVERT         STORE ERROR CODE
        !          10344: >        BZE  XL,ERROR         FAIL AT ONCE IF NO ERROR MSG TEXT
        !          10345: >        MOV  SCLEN(XL),WA     STRING LENGTH
        !          10346: >        ZER  WB               ZERO OFFSET
        !          10347: >        JSR  SBSTR            COPY ERROR MESSAGE STRING
        !          10348: >        MOV  XR,R$ETX         AND STORE IT
        !          10349: >        MNZ  EROSN            NOTE NO CALL OF SYSEM
        !          10350: >        MOV  KVERT,WA         RECALL ERROR CODE
        !          10351: >        BRN  ERROR            ENTER ERROR SECTION
        !          10352: > *
        !          10353: 22935d21901
        !          10354: <        EJC
        !          10355: 22972d21937
        !          10356: <        EJC
        !          10357: 22999d21963
        !          10358: 
        !          10359: 
        !          10360: 
        !          10361: 
        !          10362: 
        !          10363: 
        !          10364: 
        !          10365: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 158
        !          10366: 
        !          10367: 
        !          10368: <        EJC
        !          10369: 23015d21978
        !          10370: <        EJC
        !          10371: 23058d22020
        !          10372: <        EJC
        !          10373: 23070d22031
        !          10374: <        EJC
        !          10375: 23100c22061
        !          10376: <        ERR  239,INDIRECTION OPERAND IS NOT NAME
        !          10377: ---
        !          10378: >        ERR  244,INDIRECTION OPERAND IS NOT NAME
        !          10379: 23131c22092
        !          10380: <        ERR  240,PATTERN MATCH RIGHT OPERAND IS NOT PATTERN
        !          10381: ---
        !          10382: >        ERR  245,PATTERN MATCH RIGHT OPERAND IS NOT PATTERN
        !          10383: 23161c22122,22125
        !          10384: <        ERR  241,PATTERN MATCH LEFT OPERAND IS NOT STRING
        !          10385: ---
        !          10386: >        ERR  246,PATTERN MATCH LEFT OPERAND IS NOT STRING
        !          10387: > .IF    .CNBF
        !          10388: >        MOV  XR,R$PMS         IF OK, STORE SUBJECT STRING POINTER
        !          10389: > .ELSE
        !          10390: 23163c22127
        !          10391: < *      MERGE WITH BUFFER OR STRING
        !          10392: ---
        !          10393: > *      MERGE WITH NULL STRING OR BUFFER
        !          10394: 23165a22130
        !          10395: > .FI
        !          10396: 23173a22139
        !          10397: >        EJC
        !          10398: 23174a22141,22142
        !          10399: > *      MATCH (CONTINUED)
        !          10400: > *
        !          10401: 23201c22169
        !          10402: <        ERB  242,FUNCTION RETURN FROM LEVEL ZERO
        !          10403: ---
        !          10404: >        ERB  247,FUNCTION RETURN FROM LEVEL ZERO
        !          10405: 23227c22195
        !          10406: <        MOV  PFVBL(XR),XL     LOAD VRBLK PTR (SGD13)
        !          10407: ---
        !          10408: >        MOV  PFVBL(XR),XL     LOAD VRBLK POINTER
        !          10409: 23260c22228
        !          10410: <        JSR  PRTNL            TERMINATE PRINT LINE
        !          10411: ---
        !          10412: >        JSR  PRTFH            TERMINATE PRINT LINE
        !          10413: 23295c22263
        !          10414: < *      HERE IF &PROFILE = 1. START TIME MUST BE FRIGGED TO
        !          10415: ---
        !          10416: > *      HERE IF PROFILE = 1. START TIME MUST BE FRIGGED TO
        !          10417: 23303c22271
        !          10418: < *      HERE IF &PROFILE = 2
        !          10419: ---
        !          10420: > *      HERE IF PROFILE = 2
        !          10421: 23331a22300
        !          10422: >        EJC
        !          10423: 23332a22302,22303
        !          10424: 
        !          10425: 
        !          10426: 
        !          10427: 
        !          10428: 
        !          10429: 
        !          10430: 
        !          10431: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 159
        !          10432: 
        !          10433: 
        !          10434: > *      RETRN (CONTINUED)
        !          10435: > *
        !          10436: 23344d22314
        !          10437: <        EJC
        !          10438: 23346,23347d22315
        !          10439: < *      RETRN (CONTINUED)
        !          10440: < *
        !          10441: 23352c22320
        !          10442: <        ERR  243,FUNCTION RESULT IN NRETURN IS NOT NAME
        !          10443: ---
        !          10444: >        ERR  248,FUNCTION RESULT IN NRETURN IS NOT NAME
        !          10445: 23393c22361
        !          10446: <        ERB  244,STATEMENT COUNT EXCEEDS VALUE OF STLIMIT KEYWORD
        !          10447: ---
        !          10448: >        ERB  249,STATEMENT COUNT EXCEEDS VALUE OF STLIMIT KEYWORD
        !          10449: 23409a22378,22380
        !          10450: > *
        !          10451: > *      MERGE PROFILE, NO-PROFILE CASES
        !          10452: > *
        !          10453: 23432c22403,22404
        !          10454: < *      (XR)                  POINTS TO ENDING MESSAGE
        !          10455: ---
        !          10456: > *      (WA)                  0 OR ERROR MESSAGE CODE
        !          10457: > *      (XR)                  0 OR ENDING MESSAGE POINTER
        !          10458: 23436c22408,22410
        !          10459: < *      TO ENDING MESSAGE OR IS ZERO IF MESSAGE  PRINTED ALREADY.
        !          10460: ---
        !          10461: > *      TO ENDING MESSAGE OR IS ZERO IF MESSAGE PRINTED ALREADY.
        !          10462: > *      (WA) AND (XR) ARE BOTH NON-ZERO ONLY IN THE CASE OF FATAL
        !          10463: > *      ERRORS DURING INITIAL COMPILE.
        !          10464: 23440d22413
        !          10465: <        BZE  XR,STPRA         SKIP IF SYSAX ALREADY CALLED (REG04)
        !          10466: 23442d22414
        !          10467: < STPRA  ADD  RSMEM,DNAME      USE THE RESERVE MEMORY
        !          10468: 23444d22415
        !          10469: <        ADD  RSMEM,DNAME      USE THE RESERVE MEMORY
        !          10470: 23446,23448c22417,22424
        !          10471: <        BNE  XR,=ENDMS,STPR0  SKIP IF NOT NORMAL END MESSAGE
        !          10472: <        BNZ  EXSTS,STPR3      SKIP IF EXEC STATS SUPPRESSED
        !          10473: <        ZER  ERICH            CLEAR ERRORS TO INT.CH. FLAG
        !          10474: ---
        !          10475: >        ADD  RSMEM,DNAME      USE THE RESERVE MEMORY
        !          10476: >        BZE  WA,STPR1         SKIP IF NO ERROR MESSAGE
        !          10477: >        MOV  XR,STPXR         KEEP 0 OR ENDING MESSAGE
        !          10478: >        MOV  TTERL,TTLST      SEND ERROR AND STATS TO TERML
        !          10479: >        JSR  PRTPG            PAGE THROW
        !          10480: >        JSR  ERMSG            PRINT ERROR MESSAGE
        !          10481: >        MOV  STPXR,XR         RECOVER 0 OR ENDING MESSAGE
        !          10482: >        ZER  EXSTS            TO FORCE ENDING STATS OUT FOR ERROR
        !          10483: 23450c22426
        !          10484: < *      LOOK TO SEE IF AN ENDING MESSAGE IS SUPPLIED
        !          10485: ---
        !          10486: > *      PROCESS ENDING STATISTICS
        !          10487: 23452,23454c22428,22433
        !          10488: < STPR0  JSR  PRTPG            EJECT PRINTER
        !          10489: <        BZE  XR,STPR1         SKIP IF NO MESSAGE
        !          10490: 
        !          10491: 
        !          10492: 
        !          10493: 
        !          10494: 
        !          10495: 
        !          10496: 
        !          10497: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 160
        !          10498: 
        !          10499: 
        !          10500: <        JSR  PRTST            PRINT MESSAGE
        !          10501: ---
        !          10502: > STPR1  MTI  KVSTN            GET STATEMENT NUMBER
        !          10503: >        IEQ  STPR6            SKIP IF COMPILE TIME
        !          10504: >        BNZ  EXSTS,STPR4      SKIP IF NO STATS TO BE PRINTED
        !          10505: >        JSR  PRTPG            EJECT PRINTER
        !          10506: >        BZE  XR,STPR2         SKIP IF NO MESSAGE
        !          10507: >        JSR  PRTFB            PRINT MESSAGE
        !          10508: 23458,23459c22437
        !          10509: < STPR1  JSR  PRTIS            PRINT BLANK LINE
        !          10510: <        MTI  KVSTN            GET STATEMENT NUMBER
        !          10511: ---
        !          10512: > STPR2  JSR  PRTFH            PRINT BLANK LINE
        !          10513: 23461c22439
        !          10514: <        JSR  PRTMX            PRINT IT
        !          10515: ---
        !          10516: >        JSR  PRTMI            PRINT IT
        !          10517: 23466c22444
        !          10518: <        JSR  PRTMX            PRINT IT
        !          10519: ---
        !          10520: >        JSR  PRTMI            PRINT IT
        !          10521: 23468c22446
        !          10522: <        ILT  STPR2            SKIP IF NEGATIVE
        !          10523: ---
        !          10524: >        ILT  STPR3            SKIP IF NEGATIVE
        !          10525: 23472c22450,22452
        !          10526: <        JSR  PRTMX            PRINT IT
        !          10527: ---
        !          10528: >        JSR  PRTMI            PRINT IT
        !          10529: > .IF    .CTMD
        !          10530: > .ELSE
        !          10531: 23475c22455
        !          10532: <        IOV  STPR2            JUMP IF WE CANNOT COMPUTE
        !          10533: ---
        !          10534: >        IOV  STPR3            JUMP IF WE CANNOT COMPUTE
        !          10535: 23477c22457
        !          10536: <        IOV  STPR2            JUMP IF OVERFLOW
        !          10537: ---
        !          10538: >        IOV  STPR3            JUMP IF OVERFLOW
        !          10539: 23479c22459,22460
        !          10540: <        JSR  PRTMX            PRINT IT
        !          10541: ---
        !          10542: >        JSR  PRTMI            PRINT IT
        !          10543: > .FI
        !          10544: 23486c22467
        !          10545: < STPR2  MTI  GBCNT            LOAD COUNT OF COLLECTIONS
        !          10546: ---
        !          10547: > STPR3  MTI  GBCNT            LOAD COUNT OF COLLECTIONS
        !          10548: 23488,23489c22469,22470
        !          10549: <        JSR  PRTMX            PRINT IT
        !          10550: <        JSR  PRTIS            ONE MORE BLANK FOR LUCK
        !          10551: ---
        !          10552: >        JSR  PRTMI            PRINT IT
        !          10553: >        JSR  PRTFH            ONE MORE BLANK FOR LUCK
        !          10554: 23494c22475
        !          10555: < STPR3  MOV  KVDMP,XR         LOAD DUMP KEYWORD
        !          10556: 
        !          10557: 
        !          10558: 
        !          10559: 
        !          10560: 
        !          10561: 
        !          10562: 
        !          10563: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 161
        !          10564: 
        !          10565: 
        !          10566: ---
        !          10567: > STPR4  MOV  KVDMP,XR         LOAD DUMP KEYWORD
        !          10568: 23496,23497c22477
        !          10569: < STPR3  JSR  PRFLR            PRINT PROFILE IF WANTED
        !          10570: < *
        !          10571: ---
        !          10572: > STPR4  JSR  PRFLR            PRINT PROFILE IF WANTED
        !          10573: 23501,23503c22481,22484
        !          10574: <        MOV  R$FCB,XL         GET FCBLK CHAIN HEAD
        !          10575: <        MOV  KVABE,WA         LOAD ABEND VALUE
        !          10576: <        MOV  KVCOD,WB         LOAD CODE VALUE
        !          10577: ---
        !          10578: > *
        !          10579: > *      MERGE TO END RUN FOR SEVERE COMPILATION ERRORS
        !          10580: > *
        !          10581: > STPR5  MOV  =KVCOD,WA        LOAD CODE VALUE
        !          10582: 23504a22486,22496
        !          10583: > *
        !          10584: > *      TERMINATION DURING COMPILE
        !          10585: > *
        !          10586: > STPR6  BZE  XR,STPR7         SKIP IF NO MESSAGE
        !          10587: >        JSR  PRTSF            ELSE PRINT IT
        !          10588: > *
        !          10589: > *      NOTIFICATION THAT IT IS COMPILE TIME
        !          10590: > *
        !          10591: > STPR7  MOV  =ENDIC,XR        NOTIFY USER
        !          10592: >        JSR  PRTSF            SEND IT
        !          10593: >        BRN  STPR5            END
        !          10594: 23522,23542d22513
        !          10595: <        EJC
        !          10596: < *
        !          10597: < *      SYSAB -- PRINT /ABNORMAL END/ AND TERMINATE
        !          10598: < *
        !          10599: < SYSAB  RTN
        !          10600: <        MOV  =ENDAB,XR        POINT TO MESSAGE
        !          10601: <        MOV  =NUM01,KVABE     SET ABEND FLAG
        !          10602: <        JSR  PRTNL            SKIP TO NEW LINE
        !          10603: <        BRN  STOPR            JUMP TO PACK UP
        !          10604: <        EJC
        !          10605: < *
        !          10606: < *      SYSTU -- PRINT /TIME UP/ AND TERMINATE
        !          10607: < *
        !          10608: < SYSTU  RTN
        !          10609: <        MOV  =ENDTU,XR        POINT TO MESSAGE
        !          10610: <        MOV  STRTU,WA         GET CHARS /TU/
        !          10611: <        MOV  WA,KVCOD         PUT IN KVCOD
        !          10612: <        MOV  TIMUP,WA         CHECK STATE OF TIMEUP SWITCH
        !          10613: <        MNZ  TIMUP            SET SWITCH
        !          10614: <        BNZ  WA,STOPR         STOP RUN IF ALREADY SET
        !          10615: <        ERB  245,TRANSLATION/EXECUTION TIME EXPIRED
        !          10616: 23548a22520
        !          10617: > STAKV  RTN                   ENTRY POINT FOR STACK OVERFLOW
        !          10618: 23552c22524
        !          10619: <        ERB  246,STACK OVERFLOW
        !          10620: ---
        !          10621: >        ERB  250,STACK OVERFLOW
        !          10622: 
        !          10623: 
        !          10624: 
        !          10625: 
        !          10626: 
        !          10627: 
        !          10628: 
        !          10629: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 162
        !          10630: 
        !          10631: 
        !          10632: 23557a22530,22531
        !          10633: >        ZER  WA               NO ERROR MESSAGE
        !          10634: >        MOV  TTERL,TTLST      SEND MESSAGE TO TERML IF POSSIBLE
        !          10635: 23591c22565,22567
        !          10636: < ERROR  BEQ  R$CIM,=CMLAB,CMPLE JUMP IF ERROR IN SCANNING LABEL
        !          10637: ---
        !          10638: > ERROR  RTN                   ERROR CODE ENTRY POINT
        !          10639: >        BGE  ERRFT,=NUM03,ERR16 SKIP IF TOO MANY FATALS
        !          10640: >        BEQ  R$CIM,=CMLAB,ERRG1 JUMP IF ERROR IN LABEL SCAN
        !          10641: 23598,23601c22574,22577
        !          10642: <        IFF  STGXC,ERR04      EXECUTE TIME COMPILE
        !          10643: <        IFF  STGEV,ERR04      EVAL COMPILING EXPR.
        !          10644: <        IFF  STGEE,ERR04      EVAL EVALUATING EXPR
        !          10645: <        IFF  STGXT,ERR05      EXECUTE TIME
        !          10646: ---
        !          10647: >        IFF  STGXC,ERR08      EXECUTE TIME COMPILE
        !          10648: >        IFF  STGEV,ERR08      EVAL COMPILING EXPR.
        !          10649: >        IFF  STGEE,ERR08      EVAL EVALUATING EXPR
        !          10650: >        IFF  STGXT,ERR12      EXECUTE TIME
        !          10651: 23603c22579
        !          10652: <        IFF  STGXE,ERR04      XEQ COMPILE-PAST END
        !          10653: ---
        !          10654: >        IFF  STGXE,ERR08      XEQ COMPILE-PAST END
        !          10655: 23605d22580
        !          10656: <        EJC
        !          10657: 23608d22582
        !          10658: < *
        !          10659: 23613d22586
        !          10660: < *
        !          10661: 23617d22589
        !          10662: < *
        !          10663: 23619a22592
        !          10664: >        EJC
        !          10665: 23623,23624c22596,22600
        !          10666: <        BNZ  ERRSP,ERR03      JUMP IF ERROR SUPPRESS FLAG SET
        !          10667: <        MOV  ERICH,ERLST      SET FLAG FOR LISTR
        !          10668: ---
        !          10669: >        BNZ  ERRSP,ERR06      JUMP IF ERROR SUPPRESS FLAG SET
        !          10670: >        JSR  PRTFH            PRINT A BLANK
        !          10671: >        MOV  TTERL,TTLST      SET FLAG FOR LISTR
        !          10672: >        ADD  =NUM03,LSTLC     CAUSE EJECT IF BELOW 4 LINES LEFT
        !          10673: >        MOV  LSTLC,-(XS)      KEEP LINE COUNT
        !          10674: 23626,23629c22602,22609
        !          10675: <        JSR  PRTIS            TERMINATE LISTING
        !          10676: <        ZER  ERLST            CLEAR LISTR FLAG
        !          10677: <        MOV  SCNSE,WA         LOAD SCAN ELEMENT OFFSET
        !          10678: <        BZE  WA,ERR02         SKIP IF NOT SET
        !          10679: ---
        !          10680: >        JSR  PRTFH            TERMINATE LISTING
        !          10681: >        MOV  (XS)+,WA         RECOVER LINE COUNT
        !          10682: >        BGT  LSTLC,WA,ERR02   SKIP IF NOT NEW PAGE
        !          10683: >        ADD  =NUM04,LSTLC     BUMP FOR LINES PRINTED
        !          10684: > *
        !          10685: > *      PRINT FLAG UNDER BAD ELEMENT
        !          10686: > *
        !          10687: > ERR02  MOV  SCNSE,WA         LOAD SCAN ELEMENT OFFSET
        !          10688: 
        !          10689: 
        !          10690: 
        !          10691: 
        !          10692: 
        !          10693: 
        !          10694: 
        !          10695: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 163
        !          10696: 
        !          10697: 
        !          10698: 23631c22611
        !          10699: <        LCT  WB,WA            LOOP COUNTER
        !          10700: ---
        !          10701: >        MOV  WA,WB            COPY OFFSET
        !          10702: 23635a22616
        !          10703: >        BZE  WB,ERR05         SKIP IF NO BLANKS BEFORE ERROR FLAG
        !          10704: 23637a22619
        !          10705: >        LCT  WB,WB            LOOP COUNTER
        !          10706: 23641,23642c22623,22624
        !          10707: < ERRA1  LCH  WC,(XL)+         GET NEXT CHAR
        !          10708: <        BEQ  WC,=CH$HT,ERRA2  SKIP IF TAB
        !          10709: ---
        !          10710: > ERR03  LCH  WC,(XL)+         GET NEXT CHAR
        !          10711: >        BEQ  WC,=CH$HT,ERR04  SKIP IF TAB
        !          10712: 23648,23650c22630,22636
        !          10713: < ERRA2  SCH  WC,(XR)+         STORE CHAR
        !          10714: <        BCT  WB,ERRA1         LOOP
        !          10715: <        MOV  =CH$EX,XL        EXCLAMATION MARK
        !          10716: ---
        !          10717: > ERR04  SCH  WC,(XR)+         STORE CHAR
        !          10718: >        BCT  WB,ERR03         LOOP
        !          10719: >        EJC
        !          10720: > *
        !          10721: > *      MERGE IN CASE OF NO PRECEDING BLANKS
        !          10722: > *
        !          10723: > ERR05  MOV  =CH$EX,XL        EXCLAMATION MARK
        !          10724: 23658c22644
        !          10725: <        MFI  GTNSI            STORE AS SIGNED INTEGER
        !          10726: ---
        !          10727: >        STI  GTNSI            STORE AS SIGNED INTEGER
        !          10728: 23662c22648
        !          10729: <        STI  PROFS            USE AS CHARACTER OFFSET
        !          10730: ---
        !          10731: >        MFI  PROFS            USE AS CHARACTER OFFSET
        !          10732: 23669,23670c22655,22656
        !          10733: < ERR02  JSR  ERMSG            GENERATE FLAG AND ERROR MESSAGE
        !          10734: <        ADD  =NUM03,LSTLC     BUMP PAGE CTR FOR BLANK, ERROR, BLK
        !          10735: ---
        !          10736: >        JSR  ERMSG            GENERATE FLAG AND ERROR MESSAGE
        !          10737: >        ZER  TTLST            REVERT TO REGULAR LISTING
        !          10738: 23672c22658,22659
        !          10739: <        BHI  ERRFT,=NUM03,STOPR PACK UP IF SEVERAL FATALS
        !          10740: ---
        !          10741: >        ICV  CMERC            BUMP ERROR COUNT
        !          10742: >        BNE  STAGE,=STGIC,ERRG2  SPECIAL RETURN IF AFTER END LINE
        !          10743: 23674c22661,22662
        !          10744: < *      COUNT ERROR, INHIBIT EXECUTION IF REQUIRED
        !          10745: ---
        !          10746: > *      IF ERROR IN READR THEN EITHER CLOSE OUT
        !          10747: > *      CURRENT -COPY LEVEL, OR IF AT TOP THEN ABORT
        !          10748: 23676,23679c22664,22667
        !          10749: <        ICV  CMERC            BUMP ERROR COUNT
        !          10750: <        ADD  CSWER,NOXEQ      INHIBIT XEQ IF -NOERRORS
        !          10751: <        BNE  STAGE,=STGIC,CMP10  SPECIAL RETURN IF AFTER END LINE
        !          10752: <        EJC
        !          10753: ---
        !          10754: 
        !          10755: 
        !          10756: 
        !          10757: 
        !          10758: 
        !          10759: 
        !          10760: 
        !          10761: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 164
        !          10762: 
        !          10763: 
        !          10764: >        BZE  RDRER,ERR06      SKIP IF NOT ERROR WHILE READING
        !          10765: >        BZE  R$COP,ERR16      ABORT IF AT TOP LEVEL INPUT FILE
        !          10766: >        ZER  RDRER            ELSE CLEAR READR ERROR FLAG
        !          10767: >        JSR  COPND            AND CLOSE OUT THIS COPY LEVEL
        !          10768: 23683c22671,22672
        !          10769: < ERR03  MOV  R$CIM,XR         POINT TO START OF IMAGE
        !          10770: ---
        !          10771: > ERR06  MOV  R$CIM,XR         POINT TO START OF IMAGE
        !          10772: >        BZE  XR,ERR07         SKIP IF NO INPUT IMAGE
        !          10773: 23686c22675
        !          10774: <        BEQ  XR,=CH$MN,CMPCE  JUMP IF ERROR IN CONTROL CARD
        !          10775: ---
        !          10776: >        BEQ  XR,=CH$MN,ERRG3  JUMP IF ERROR IN CONTROL CARD
        !          10777: 23690c22679
        !          10778: <        BNE  XL,=T$SMC,ERR03  LOOP BACK IF NOT STATEMENT END
        !          10779: ---
        !          10780: >        BNE  XL,=T$SMC,ERR06  LOOP BACK IF NOT STATEMENT END
        !          10781: 23691a22681
        !          10782: >        EJC
        !          10783: 23695c22685
        !          10784: <        MOV  *CDCOD,CWCOF     RESET OFFSET IN CCBLK
        !          10785: ---
        !          10786: > ERR07  MOV  *CDCOD,CWCOF     RESET OFFSET IN CCBLK
        !          10787: 23701c22691,22692
        !          10788: <        BRN  CMPSE            MERGE TO GENERATE ERROR AS CDFAL
        !          10789: ---
        !          10790: >        JMG  CMPSE            MERGE TO GENERATE ERROR AS CDFAL
        !          10791: >        EJC
        !          10792: 23703c22694
        !          10793: < *      ERROR DURING EXECUTE TIME COMPILE OR EXPRESSION EVALUATIO
        !          10794: ---
        !          10795: > *      ERROR DURING EXECUTE TIME COMPILE OR EXPRESSION EVALUATION.
        !          10796: 23711c22702,22704
        !          10797: < ERR04  ZER  R$CCB            FORGET GARBAGE CODE BLOCK
        !          10798: ---
        !          10799: > ERR08  JSR  COPND            CALL TO CLOSE OFF THIS LEVEL
        !          10800: >        BNZ  R$COP,ERR08      LOOP IF NOT ALL -COPYS CLOSED
        !          10801: >        ZER  R$CCB            FORGET GARBAGE CODE BLOCK
        !          10802: 23719,23721c22712,22714
        !          10803: < ERRA4  ICA  XS               POP STACK
        !          10804: <        BEQ  XS,FLPRT,ERRC4   JUMP IF PROG DEFINED FN CALL FOUND
        !          10805: <        BNE  XS,GTCEF,ERRA4   LOOP IF NOT EVAL OR CODE CALL YET
        !          10806: ---
        !          10807: > ERR09  ICA  XS               POP STACK
        !          10808: >        BEQ  XS,FLPRT,ERR11   JUMP IF PROG DEFINED FN CALL FOUND
        !          10809: >        BNE  XS,GTCEF,ERR09   LOOP IF NOT EVAL OR CODE CALL YET
        !          10810: 23729c22722
        !          10811: < ERRB4  BNZ  KVERL,ERR07      JUMP IF ERRLIMIT NON-ZERO
        !          10812: ---
        !          10813: > ERR10  BNZ  KVERL,ERR14      JUMP IF ERRLIMIT NON-ZERO
        !          10814: 23734,23736c22727,22728
        !          10815: < ERRC4  MOV  FLPTR,XS         RESTORE STACK FROM FLPTR
        !          10816: <        BRN  ERRB4            MERGE
        !          10817: <        EJC
        !          10818: ---
        !          10819: > ERR11  MOV  FLPTR,XS         RESTORE STACK FROM FLPTR
        !          10820: 
        !          10821: 
        !          10822: 
        !          10823: 
        !          10824: 
        !          10825: 
        !          10826: 
        !          10827: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 165
        !          10828: 
        !          10829: 
        !          10830: >        BRN  ERR10            MERGE
        !          10831: 23742,23744c22734
        !          10832: < *      IF ERRLIMIT KEYWORD IS ZERO, AN ABORT IS SIGNALLED,
        !          10833: < *      SEE CODING FOR SYSTEM LABEL ABORT AT L$ABO.
        !          10834: < *
        !          10835: ---
        !          10836: > *      IF ERRLIMIT KEYWORD IS ZERO, THE RUN IS ABORTED.
        !          10837: 23749c22739
        !          10838: < *      IF 3 OR MORE FATAL ERRORS OCCUR AN ABORT IS SIGNALLED
        !          10839: ---
        !          10840: > *      IF 3 OR MORE FATAL ERRORS OCCUR AN ABORT OCCURS
        !          10841: 23752a22743
        !          10842: >        EJC
        !          10843: 23754,23755c22745,22746
        !          10844: < ERR05  SSL  INISS            RESTORE MAIN PROG S-R STACK PTR
        !          10845: <        BNZ  DMVCH,ERR08      JUMP IF IN MID-DUMP
        !          10846: ---
        !          10847: > ERR12  SSL  INISS            RESTORE MAIN PROG S-R STACK PTR
        !          10848: >        BNZ  DMVCH,ERR15      JUMP IF IN MID-DUMP
        !          10849: 23757c22748
        !          10850: < *      MERGE HERE FROM ERR08
        !          10851: ---
        !          10852: > *      MERGE HERE AFTER DUMP TIDY UP
        !          10853: 23759c22750,22751
        !          10854: < ERR06  BZE  KVERL,LABO1      ABORT IF ERRLIMIT IS ZERO
        !          10855: ---
        !          10856: > ERR13  ZER  XR               CLEAR XR FLAG
        !          10857: >        BZE  KVERL,STOPR      ABORT IF ERRLIMIT IS ZERO
        !          10858: 23762c22754
        !          10859: < *      MERGE FROM ERR04
        !          10860: ---
        !          10861: > *      MERGE AFTER ERRLIMIT TEST
        !          10862: 23764,23765c22756
        !          10863: < ERR07  BGE  ERRFT,=NUM03,LABO1 ABORT IF TOO MANY FATAL ERRORS
        !          10864: <        DCV  KVERL            DECREMENT ERRLIMIT
        !          10865: ---
        !          10866: > ERR14  DCV  KVERL            DECREMENT ERRLIMIT
        !          10867: 23772c22763
        !          10868: <        BZE  XR,LCNT1         CONTINUE IF NO SETEXIT TRAP
        !          10869: ---
        !          10870: >        BZE  XR,ERRG4         CONTINUE IF NO SETEXIT TRAP
        !          10871: 23781,23782c22772,22773
        !          10872: < ERR08  MOV  DMVCH,XR         CHAIN HEAD FOR AFFECTED VRBLKS
        !          10873: <        BZE  XR,ERR06         DONE IF ZERO
        !          10874: ---
        !          10875: > ERR15  MOV  DMVCH,XR         CHAIN HEAD FOR AFFECTED VRBLKS
        !          10876: >        BZE  XR,ERR13         DONE IF ZERO
        !          10877: 23785c22776,22795
        !          10878: <        BRN  ERR08            LOOP THROUGH CHAIN
        !          10879: ---
        !          10880: >        BRN  ERR15            LOOP THROUGH CHAIN
        !          10881: > *
        !          10882: > *      TAKE DRACONIAN STEPS FOR REPEATED FATAL ERRORS
        !          10883: > *
        !          10884: > ERR16  MOV  ERRTF,WA         ERROR CODE
        !          10885: >        MOV  WA,KVERT         PLACE ERROR CODE FOR ERMSG
        !          10886: 
        !          10887: 
        !          10888: 
        !          10889: 
        !          10890: 
        !          10891: 
        !          10892: 
        !          10893: Jan 17 17:08 1985  Differences between 3.5 and 4.3       Page 166
        !          10894: 
        !          10895: 
        !          10896: >        MNZ  XR               IN CASE COMPILE TIME
        !          10897: >        BEQ  STAGE,=STGIC,STOPR JUMP IF SO
        !          10898: >        BEQ  STAGE,=STGCE,STOPR ALSO COMPILE TIME
        !          10899: >        ZER  XR               INDICATE EXECUTION
        !          10900: >        BRN  STOPR            TERMINATE RUN
        !          10901: > *
        !          10902: > ERRAF  ERB  251,TOO MANY FATAL ERRORS
        !          10903: > *
        !          10904: > *      HERE FOR GLOBAL ERROR JUMPS
        !          10905: > *
        !          10906: > ERRG1  JMG  CMPLE
        !          10907: > ERRG2  JMG  CMPEE
        !          10908: > ERRG3  JMG  CMPCE
        !          10909: > ERRG4  JMG  LCNXE
        !          10910: 23791,23801d22800
        !          10911: <
        !          10912: <
        !          10913: <
        !          10914: <
        !          10915: <
        !          10916: <
        !          10917: <
        !          10918: <
        !          10919: <
        !          10920: <
        !          10921: <
        !          10922: 
        !          10923: 
        !          10924: 
        !          10925: 
        !          10926: 
        !          10927: 
        !          10928: 
        !          10929: 
        !          10930: 
        !          10931: 
        !          10932: 
        !          10933: 
        !          10934: 
        !          10935: 
        !          10936: 
        !          10937: 
        !          10938: 
        !          10939: 
        !          10940: 
        !          10941: 
        !          10942: 
        !          10943: 
        !          10944: 
        !          10945: 
        !          10946: 
        !          10947: 
        !          10948: 
        !          10949: 
        !          10950: 
        !          10951: 
        !          10952: 
        !          10953: 
        !          10954: 
        !          10955: 
        !          10956: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.