|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.