Annotation of researchv10no/cmd/spitbol/4.3/diff.pr, revision 1.1.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.