mirror of
https://github.com/retro-software/B5500-software.git
synced 2026-03-02 17:44:40 +00:00
1. Commit library tape images, directories, and extracted text files. 2. Commit additional utilities under Unisys-Emode-Tools.
13816 lines
1.1 MiB
13816 lines
1.1 MiB
BEGIN 00000100
|
|
%%% DATE ~ "5 OC68" ; % % % % 00000101
|
|
COMMENT CUBE LIBRARY NUMBER IS Q500001. THE PROGRAM NAME IS 00000200
|
|
"XREF/JONES". THIS VERSION ON CUBE OCT 26,1968; 00000300
|
|
COMMENT FIRST CUBE UPDATE 10/7/68 ; 00000310
|
|
COMMENT XREF REMINDER LIST OCT 7 1968 00000312
|
|
DATE ON ALL XREF PAGES 00000314
|
|
DOCUMENT - VOID SHOULD BE ON LAST OF CONTIN. $ CARDS 00000316
|
|
INCLUDE SOME FORM OF FLOWDOC FINDER IN XREF 00000318
|
|
WRITE ON SPO LAST SEQ NUMBER OF NEW FILE IF DON,T LIST 00000320
|
|
ALTERNATE PAGE NUMBERS ODD AND EVEN 00000322
|
|
ALLOW RESEQ TO BE SET WITHIN RUN 00000324
|
|
ALLOW DOCUMENT XREF TO BE OF BNF (E.G.) AND GIVE 00000326
|
|
PAGE NUMBER REFERENCES 00000328
|
|
TAB FIELD ALLOWS TOO MANY CHAR. (23 BETWEEN TAB 17,39) 00000330
|
|
SCAN FOR VOID ON $ RATHER THAN CHECKING ONLY 00000332
|
|
FIRST WORD 00000334
|
|
DON,T WRITE OUT $ CARDS 00000336
|
|
GIVE LAST "*" USE OF PROCEDURES, NOT FIRST 00000338
|
|
CHANGE TO 2ND PROCEDURE IN LIST 00000340
|
|
ON RESEQ W/ INC > 1 AND " PUNCHDOLLAR " PUNCH OUT 00000342
|
|
NEW $ CARDS WHERE OLD ONES MAP ONTO NEW TAPE 00000344
|
|
LOSS OF IDENTIFIERS AFTER 2 $ CARDS IN A ROW 00000346
|
|
DOESN,T FLAG PROCEDURE DECLS AS "*" IF THEY OCCUR AFTER 00000348
|
|
$ CARD - MAYBE LOSES THE IDENTIFIER OR SOMETHING 00000350
|
|
LOSS OF I.D. IN COL. 72 WHEN FOLLOWED 00000352
|
|
BY $-CARD 00000354
|
|
DO UNTIL FALSE GENSYMS 00000356
|
|
CHANGE SHUFFLE TO ALLOW SEQ NUMBERS NOT ON TAPE 00000358
|
|
PUT LABEL-TABLES FROM FLOW INTO CHANGE INDEX AS WELL 00000360
|
|
AS UPPING REVISION 00000362
|
|
FLAG DELETIONS WITH - 00000364
|
|
PATCH TO PRINT OUT (OR PUNCH) A PROCEDURE OR DEFINE 00000366
|
|
DOCUMENTATION LANGUAGE: A WAY TO (VIA A CONTROL LIKE AN 00000368
|
|
INVALID PLUS DEFINE-TYPE MECHANISM) ALLOW A 00000370
|
|
CROSS-REFERENCE, AT LEAST FORWARD, TO PAGE 00000372
|
|
NUMBERS WHICH IS AUTOMATICALLY GENERATED: 00000374
|
|
E.G., SAY 00000376
|
|
XREF INDEX FOLLOWING WORD IS 13 00000378
|
|
WHEN WE WANT TO XREF IT, "XREF TO 13" 00000380
|
|
OR SOME SUCH IDEA. 00000382
|
|
PUT IN A MISS CONTROL ALSO A NULL CONTROL 00000384
|
|
ANOTHER INDEXING FEATURE DESIRED: INDEX ENTRY DELINEATED BY 00000386
|
|
INPUT CARD RATHER THAN OUTPUT LINE 00000388
|
|
(THOUGH OF COURSE INDEX REFERENCE SHOULD 00000390
|
|
BE TO OUTPUT PAGE NUMBER). SAME WITH UNDERLINING - 00000392
|
|
COULD "FLAG" SOMEHOW THE INPUT STUFF AS WE 00000394
|
|
DO FOR INVALID 00000396
|
|
END OF REMINDER LIST ; 00000398
|
|
COMMENT DOCUMENT 00000400
|
|
* PAGE CENTER SKIP 10 00000500
|
|
BURROUGHS 00000600
|
|
B5500 00000700
|
|
INFORMATION PROCESSING SYSTEM 00000800
|
|
* SKIP 5 CENTER 00000900
|
|
SYMBOLIC LISTING 00001000
|
|
* CENTER UNDERLINE 00001100
|
|
"A CROSS REFERENCE,FLOW CHART AND DOCUMENT EDITING PROGRAM" 00001200
|
|
* SKIP 2 CENTER 00001300
|
|
JANUARY 22 TH. 1967. 00001400
|
|
* SKIP 5 CENTER 00001500
|
|
BURROUGHS CORPORATION 00001600
|
|
PASADENA PLANT 00001700
|
|
460 SIERRA MADRE VILLA 00001800
|
|
PASADENA, CALIFORNIA 00001900
|
|
* SKIP 2 INDENT 47 00002000
|
|
COPYRIGHT (C) 1966,1967 00002100
|
|
BURROUGHS CORPORATION 00002200
|
|
* FINISH ; 00002300
|
|
COMMENT ALGOL AND ESPOL CROSS REFERENCE 00002400
|
|
AND DOCUMENT EDITING PROGRAM ; 00002500
|
|
COMMENT 00002600
|
|
WRITTEN BY GLYN H. JONES AND 00002700
|
|
JOAN G. DUNSHEE 00002800
|
|
TECHNICAL STAFF , 00002900
|
|
ENGINEERING DIVISION , 00003000
|
|
PASADENA . ;00003100
|
|
COMMENT DOCUMENT "PART 1" 00003200
|
|
* UNDERLINE TITLE CENTER 00003300
|
|
E.T.M. 279 (20 NOV 1965). 00003400
|
|
* DEFINE 1 = SKIP 2 PARAGRAPH 5,67,0 * 00003500
|
|
* DEFINE 2 = SKIP PAR * 00003600
|
|
* DEFINE 3 = SKIP GLOSSARY 5,25,67 * 00003700
|
|
* DEFINE 4 = SKIP GLOS * 00003800
|
|
* DEFINE 5 = SKIP GLOSSARY 8,30,67 * 00003900
|
|
* DEFINE 6 = SKIP PARAGRAPH 20,67,0 * 00004000
|
|
* DEFINE 7 = PAGE INDEX UNDERLINE * 00004100
|
|
* DEFINE 8 = SKIP GLOSSARY 10,25,67 * 00004200
|
|
* DEFINE 9 = SKIP GLOSSARY 10,35,67 * 00004300
|
|
* DEFINE 10 = SKIP 2 TAB 5, 25, 45 * 00004400
|
|
* DEFINE 11 = SKIP 2 TAB 5,35 * 00004500
|
|
* DEFINE 12 = SKIP 2 TAB 5 * 00004600
|
|
* DEFINE 13 = SKIP 2 INDENT 3 INDEX UNDERLINE * 00004700
|
|
* DEFINE 14 = PAGE INDENT 3 INDEX UNDERLINE * 00004800
|
|
* PAGEID 1," 1-" 00004900
|
|
* PAGE CENTER UNDERLINE 00005000
|
|
A CROSS REFERENCE,FLOW CHART AND DOCUMENT EDITING PROGRAM (PART ONE). 00005100
|
|
* SKIP CENTER TITLE CLEAR 00005200
|
|
BY GLYN HUGH JONES AND JOAN G. DUNSHEE 00005300
|
|
* SKIP CENTER 00005400
|
|
TECHNICAL STAFF 00005500
|
|
BURROUGHS CORPORATION 00005600
|
|
PASADENA 00005700
|
|
* SKIP 3 INDEX CENTER UNDERLINE 00005800
|
|
SUMMARY 00005900
|
|
* 1 00006000
|
|
THIS DOCUMENT (PREPARED IN THREE PARTS) PRESENTS A CROSS REFERENCE AND 00006100
|
|
DOCUMENT EDITING PROGRAM. PART 1 DESCRIBES A GENERAL PURPOSE IDENTIFIER00006200
|
|
REFERENCE PROGRAM, PART 2 DESCRIBES A DOCUMENT EDITING PROGRAM, 00006300
|
|
AND PART 3 DESCRIBES A FLOW CHART GENERATING PROGRAM. THE 00006400
|
|
PROGRAMS WERE DESIGNED AND WRITTEN FOR USE WITH ALGOL AND ESPOL PROGRAM00006500
|
|
S, AND WITH MINOR MODIFICATIONS, COULD BE USED WITH OTHER LANGUAGES. 00006600
|
|
ALTHOUGH THE DESCRIPTIONS ARE WRITTEN IN THREE PARTS, ALL OF THE 00006700
|
|
FUNCTIONS ARE HANDLED BY ONE PROGRAM. 00006800
|
|
* SKIP 6 TAB 2,40 00006900
|
|
AUTHORS:/APPROVED:/ 00007000
|
|
* SKIP 4 TAB 2,40 00007100
|
|
-------------------- / -------------------- / 00007200
|
|
GLYN H. JONES AND/ J. F. KALBACH/ 00007300
|
|
* SKIP TAB 2,40 00007400
|
|
JOAN G. DUNSHEE/ MANAGER,TECHNICAL STAFF/ 00007500
|
|
* SKIP 1 INDENT 30 00007600
|
|
ORIGINAL ISSUE JAN.25, 1965 00007700
|
|
FIRST REVISED ISSUE OCT. 27, 1965 00007800
|
|
SECOND REVISED ISSUE NOV. 21, 1966 00007900
|
|
THIRD REVISED ISSUE OCT.7, 1968 00007910
|
|
* 7 00008000
|
|
INTRODUCTION 00008100
|
|
* 2 00008200
|
|
IT IS ALWAYS USEFUL TO HAVE COMPLETE DOCUMENTATION DESCRIBING A COMPUTER00008300
|
|
PROGRAM WHEN ONE IS ATTEMPTING TO UNDERSTAND AND MODIFY SUCH A PROGRAM00008400
|
|
, ESPECIALLY WHEN THE PROGRAM IS WRITTEN BY ANOTHER PERSON. 00008500
|
|
THE PROGRAM DESCRIBED IN THIS THREE-PART DOCUMENT WAS WRITTEN 00008600
|
|
TO PERFORM THREE ALLIED DOCUMENTATION FEATURES: CROSS REFERENCING, TEXT 00008700
|
|
EDITING, AND FLOW CHARTING. 00008800
|
|
* 2 00008900
|
|
THE CROSS REFERENCE PORTION IS DESCRIBED IN THE FIRST SECTION OF THE 00009000
|
|
DOCUMENT. 00009100
|
|
* 7 00009200
|
|
PROGRAM SPECIFICATIONS 00009300
|
|
* 2 00009400
|
|
SYMBOLIC PROGRAMS TO BE SCANNED MAY BE ON CARDS, TAPE OR SYMBOLIC00009500
|
|
PROGRAM LIBRARY TAPE . 00009600
|
|
* 2 00009700
|
|
WHEN SOURCE PROGRAMS ARE ON TAPE, CORRECTION PATCH CARDS MAY BE MERGED 00009800
|
|
FROM THE CARD READER. 00009900
|
|
* 2 00010000
|
|
NEW SOURCE TAPES (EXCEPT SYMBOLIC PROGRAM LIBRARY TAPES) AND NEW CARD 00010100
|
|
DECKS MAY BE PRODUCED. 00010200
|
|
* 2 00010300
|
|
SOURCE INPUT MAY BE SEQUENCE CHECKED AND THE SOURCE OUTPUT RESEQUENCED. 00010400
|
|
* 2 00010500
|
|
SECTIONS OF SOURCE INPUT MAY BE SKIPPED BY USE OF VOID CONTROLS. 00010600
|
|
* 2 00010700
|
|
THE RELEVANT OUTPUT MAY BE PRINTED ON THE LINE PRINTER AND/OR SAVED ON A00010800
|
|
BACKUP FILE ( NOT THE MCP PRINTER BACKUP TAPE) WHICH IN TURN MAY BE UPD00010900
|
|
ATED AND / OR PRINTED. 00011000
|
|
* 2 00011100
|
|
ALL IDENTIFIERS (INCLUDING RESERVED WORDS) OR A SELECTED SET OF IDENTIFI00011200
|
|
ERS OR ALL IDENTIFIERS WHOSE INITIAL LETTER FALLS WITHIN A SPECIFIED 00011300
|
|
RANGE MAY BE CROSS REFERENCED. 00011400
|
|
* 2 00011500
|
|
A BLOCK STRUCTURE DIAGRAM MAY BE DRAWN. 00011600
|
|
* 2 00011700
|
|
PROCEDURE IDENTIFIERS ALONE MAY BE CROSS REFERENCED. 00011800
|
|
* 2 00011900
|
|
FACILITIES ARE PROVIDED TO OBTAIN DETAILED INFORMATION CONCERNING THE 00012000
|
|
INTERNAL WORKINGS OF THE CROSS REFERENCE PROGRAM. SUCH INFORMATION 00012100
|
|
IS USEFUL WHEN ONE HAS TO CHANGE THE PROGRAM ONESELF. 00012200
|
|
* 7 00012300
|
|
SYNTAX CONVENTIONS. 00012400
|
|
*1 00012500
|
|
THE SYNTAX OF THE CONTROL CARD 00012600
|
|
LANGUAGE IS DESCRIBED THROUGH THE USE OF METALINGUISTI00012700
|
|
C SYMBOLS. THESE SYMBOLS HAVE THE FOLLOWING MEANINGS: 00012800
|
|
* 1 00012900
|
|
LEFT AND RIGHT BROKEN BRACKETS "<" AND ">" ARE USED TO CONTAIN ONE 00013000
|
|
OR MORE CHARACTERS REPRESENTING A METALINGUISTIC VARIABLE WHOSE VALUE 00013100
|
|
IS GIVEN BY A METALINGUISTIC FORMULA. 00013200
|
|
*1 00013300
|
|
THE SYMBOL "::=" MEANS "IS DEFINED TO BE" AND SEPARATES THE METALINGUIST00013400
|
|
IC VARIABLE ON THE LEFT OF THE FORMULA FROM ITS DEFINITION ON THE 00013500
|
|
RIGHT. 00013600
|
|
*1 00013700
|
|
THE SYMBOL "/" MEANS "OR". THIS SYMBOL SEPARATES MULTIPLE DEFINITIONS 00013800
|
|
OF A METALINGUISTIC VARIABLE. 00013900
|
|
*1 00014000
|
|
LESS-THAN-OR-EQUAL AND GREATER-THAN-OR-EQUAL SIGNS, "{" AND"}", ARE 00014100
|
|
USED TO ENCLOSE METALINGIUSTIC VARIABLES 00014200
|
|
WHICH ARE DEFINED BY THE MEANING OF THE ENGLISH LANGUAGE EXPRESSION 00014300
|
|
CONTAINED WITHIN THE BRACES. THIS FORMULATION IS USED ONLY WHEN IT IS 00014400
|
|
IMPOSSIBLE OR IMPRACTICAL TO USE A METALINGUISTIC FORMULA. 00014500
|
|
* 1 00014600
|
|
THE BRACKETS "[" AND "]" ARE USED TO ENCLOSE GROUPS OF 00014700
|
|
METALINGUISTIC VARIABLES WHICH MAY BE PERMUTED IN ANY ORDER. EXAMPLE: 00014800
|
|
* SKIP 00014900
|
|
<D> ::= [<A> B <C>] IS EQUIVALENT TO :- 00015000
|
|
* SKIP 00015100
|
|
<D> ::= <A> B <C> / <A> <C> B / 00015200
|
|
B <A> <C> / B <C> <A> / 00015300
|
|
<C> <A> B / <C> B <A> 00015400
|
|
*1 00015500
|
|
THE ABOVE METALINGUISTIC SYMBOLS ARE USED IN FORMING A METALINGUISTIC FO00015600
|
|
RMULA. A METALINGUISTIC FORMULA IS A RULE WHICH WILL PRODUCE AN ALLOWAB00015700
|
|
LE SEQUENCE OF CHARACTERS AND/OR SYMBOLS. THE ENTIRE SET OF SUCH FORMUL00015800
|
|
AS DEFINES THE CONSTRUCTS OF THE CONTROL CARDS. 00015900
|
|
*1 00016000
|
|
ANY MARK OR SYMBOL IN A METALINGUISTIC FORMULA WHICH IS NOT ONE OF THE A00016100
|
|
BOVE METALINGUISTIC SYMBOLS DENOTES ITSELF. 00016200
|
|
*1 00016300
|
|
CONTROL CARD 00016400
|
|
CONVENTIONS USED IN WRITING SYNTAX ARE ILLUSTRATED BY THE FOLLOWING 00016500
|
|
EXAMPLE: 00016600
|
|
* SKIP 00016700
|
|
<IDENTIFIER> ::= <LETTER> / <IDENTIFIER><LETTER> / <IDENTIFIER><DIGIT> 00016800
|
|
*1 00016900
|
|
THIS METALINGUISTIC FORMULA IS READ AS FOLLOWS: AN IDENTIFIER IS D00017000
|
|
EFINED TO BE A LETTER, OR AN IDENTIFIER FOLLOWED BY A LETTER, OR AN IDEN00017100
|
|
TIFIER FOLLOWED BY A DIGIT. 00017200
|
|
*1 00017300
|
|
THE METALINGUISTIC FORMULA DEFINES A RECURSIVE RELATIONSHIP BY WHICH A C00017400
|
|
ONSTRUCT CALLED AN IDENTIFIER MAY BE FORMED. EVALUATION OF THE FORMULA 00017500
|
|
SHOWS THAT AN IDENTIFIER BEGINS WITH A LETTER. THE LETTER MAY STAND ALON00017600
|
|
E, OR MAY BE FOLLOWED BY ANY MIXTURE OF LETTERS AND DIGITS. 00017700
|
|
* 7 00017800
|
|
LABEL EQUATION INFORMATION. 00017900
|
|
* 1 00018000
|
|
THE FOLLOWING FILE IDENTIFIERS USED BY THE CROSS REFERENCE PROGRAM 00018100
|
|
ARE 00018200
|
|
IDENTICAL TO THOSE USED IN THE ALGOL COMPILER AND ARE LISTED BELOW. 00018300
|
|
* UNDERLINE TAB 5, 15 00018400
|
|
FILE/ FUNCTION / 00018500
|
|
* SKIP TAB 5,15 00018600
|
|
CARD/ CARD PATCH DECK/ 00018700
|
|
LINE / LINE PRINTER OR MCP BACKUP TAPE / 00018800
|
|
TAPE / "0CRDIMG" OR SOURCE TAPE / 00018900
|
|
NEWTAPE/ NEW "0CRDIMG" OR SOURCE TAPE / 00019000
|
|
PNCH / CARD PUNCH / 00019100
|
|
PUNTAPE / TAPE USED BY "NEW PUNCH TAPE" CONTROL/ 00019200
|
|
CASTA / SYMBOLIC LIBRARY FILE ON DISK "CASTA" "LIBRARY"/ 00019300
|
|
CASTB / SYMBOLIC LIBRARY TAPE / 00019400
|
|
CASTC / SYMBOLIC LIBRARY TAPE / 00019500
|
|
CA/ NEW SYMBOLIC LIBRARY TAPE , USED BY "COPY" / 00019600
|
|
CB/ NEW SYMBOLIC LIBRARY TAPE , USED BY "COPY" / 00019700
|
|
CC/ NEW SYMBOLIC LIBRARY TAPE , USED BY "COPY" / 00019800
|
|
* 1 00019900
|
|
THE USER WILL NEED TO KNOW CERTAIN OF THE FILE NAMES WHICH ARE UNIQUE TO00020000
|
|
CROSS REFERENCE. THE PERTINANT ONES ARE 00020100
|
|
* UNDERLINE TAB 5,17 00020200
|
|
FILE/FUNCTION/ 00020300
|
|
* SKIP TAB 5,17 00020400
|
|
DISK/"DISKSYM" "XREF" OR SOURCE DISKFILE/ 00020500
|
|
NEWDISK/"DISKSYM" "XREF" OR NEW DISKFILE/ 00020600
|
|
BACKUPDISK/FILE WRITTEN WHEN BACKUP GOES TO DISK/ 00020700
|
|
BACKUPTAPE/ FILE WRITTEN WHEN BACKUP GOES TO TAPE/ 00020800
|
|
OLDBACKUP/FILE TO BE PRINTED BY THE CONTROL "$ BACKUP DISK"./ 00020900
|
|
* PARAGRAPH 17,67,0 00021000
|
|
PROGRAM WILL LOOK FOR "BACKUPD" IF NO LABEL EQUATION FOR "OLDBACKUP" 00021100
|
|
IS MADE. 00021200
|
|
* TAB 5,17 00021300
|
|
OLDBAC/ "BACKUPT" OR TAPE TO BE PRINTED BY "$ BACKUP"// 00021400
|
|
NEWDOC/FILE WHICH "MERGE" EXPECTS TO FIND AS THE NEW DOCUMENT./ 00021500
|
|
OLDDOC/FILE WHICH "MERGE" EXPECTS TO FIND AS THE OLD DOCUMENT./ 00021600
|
|
NEWPATCH/"PATCHES" OR NEW TAPE TO BE PATCH DECK/ 00021700
|
|
PATCHTAPE/ "PATCHES" OR TAPE FOR USE AS PATCH DECK / 00021800
|
|
* PAGE INDENT 3 INDEX UNDERLINE 00021900
|
|
SAMPLE SCHEDULE DECK. 00022000
|
|
* INDENT 10 00022100
|
|
* INVALID 2 00022200
|
|
Q EXECUTE XREF/JONES 00022300
|
|
* INVALID 2 00022400
|
|
Q FILE CARD = PERTCARD 00022500
|
|
* INVALID 2 00022600
|
|
Q FILE TAPE = PERTSYM 00022700
|
|
* INVALID 2 00022800
|
|
Q FILE NEWTAPE = PERTSYM 00022900
|
|
* INVALID 2 00023000
|
|
Q DATA PERTCARD 00023100
|
|
$ TAPE LIST RESERVED STRING 10 00023200
|
|
PATCH CARDS, LAST PATCH CARD WITH SEQUENCE 99999999 00023300
|
|
* INVALID 2 00023400
|
|
Q END . 00023500
|
|
* 7 00023600
|
|
CROSS REFERENCE CONTROL CARD SYNTAX 00023700
|
|
* SKIP 00023800
|
|
<XREF CONTROL INFO> ::= $ <INPUT AND OUTPUT FILE CONTROLS> 00023900
|
|
<XREF OPTIONS> / $ <LOGIC BOOK CONTROLS> / 00024000
|
|
$ BACKUP <DISK PART> <BACKUP COPIES> / 00024100
|
|
$ <MULTIFILE PART> <MULTIFILE OPTIONS> / 00024200
|
|
$ MERGE [<MERGE CONTROLS> <DEBUGGING PART> 00024300
|
|
<LIST CONTROL> <LINE CONTROLS>] / $ <COPY PART> 00024400
|
|
/ $ <VOID PART> / $ <BUILD PART> / <EMPTY> 00024500
|
|
<INPUT AND OUTPUT FILE CONTROLS> ::= <INPUT SOURCE FILE PART> 00024600
|
|
<LIST OPTION> [<RESEQ PART> <VOID PART> <SEQ CHECK PART> 00024700
|
|
<PATCHES ON TAPE> <NEW SOURCE FILE PART> 00024800
|
|
<ONLY PART> <OUTPUT CONTROLS> ] 00024900
|
|
/ <CAST FILE INPUT PART> [<VOID PART> <SEQ CHECK PART> 00025000
|
|
<OUTPUT FILE CONTROLS> <ONLY PART>] 00025100
|
|
<INPUT SOURCE FILE PART> ::= CARD / TAPE / DISK / DISC 00025200
|
|
<DISK PART> ::= DISK / <EMPTY> 00025300
|
|
<ONLY PART> ::= ONLY / <EMPTY> 00025400
|
|
<PATCHES ON TAPE> ::= TAPEPATCHES / <EMPTY> 00025500
|
|
<LOGIC BOOK CONTROLS> ::= LOGIC / LOGIC BACKUP 00025600
|
|
<VOID PART> ::= VOID <VOID SEQ NUMBER> 00025700
|
|
<VOID SEQ NUMBER> ::= <UNSIGNED INTEGER> / <EMPTY> 00025800
|
|
<BUILD PART> ::= CARD <LIST OPTION> BUILD <BUILD PUNCH OPTION> 00025900
|
|
<BUILD PUNCH OPTION> ::= PUNCH / <EMPTY> 00026000
|
|
<BACKUP COPIES> ::= <UNSIGNED INTEGER> / <EMPTY> 00026100
|
|
<COPY PART> ::= COPY CAST <CAST SWITCH FILE LETTER> <LIST OPTION> / 00026200
|
|
COPY TAPE <LIST OPTION> 00026300
|
|
<LIST OPTION> ::= LIST / LIST ONLY / <EMPTY> 00026400
|
|
<SEQ CHECK PART> ::= SEQ / CHECK / <EMPTY> 00026500
|
|
<RESEQ PART> ::= RESEQUENCE <RESEQ PARAMETERS> / 00026600
|
|
RESEQ <RESEQ PARAMETERS> DOC / 00026700
|
|
RESEQ <RESEQ PARAMETERS> / <EMPTY> 00026800
|
|
<RESEQ PARAMETERS> ::= <SEQ INC> / <SEQ INC> , <START SEQ> / <EMPTY> 00026900
|
|
<START SEQ> ::= <UNSIGNED INTEGER> 00027000
|
|
<SEQ INC> ::= <UNSIGNED INTEGER> 00027100
|
|
<NEW SOURCE FILE PART> ::= NEW TAPE / NEW PUNCH / NEW / NEW PUNCH TAPE /00027200
|
|
NEW PATCHTAPE / NEW PATCHTAPE PUNCH / 00027300
|
|
NEW DISK / NEW DISC / <EMPTY> 00027400
|
|
<OUTPUT FILE CONTROLS> ::= [<PRINTER LISTING> <BACKUP TAPE> 00027500
|
|
<IRFILE PART> <REMOTE PART>] 00027600
|
|
<REMOTE PART> ::= REMOTE / <EMPTY> 00027700
|
|
<PRINTER LISTING> ::= PRINT / <EMPTY> 00027800
|
|
<IRFILE PART> ::= MAKE IRFILE / <EMPTY> 00027900
|
|
<BACKUP TAPE> ::= BACKUP <DISK PART> / BACKUP <DISK PART> UPDATE/ 00028000
|
|
LISTBACKUP / <EMPTY> 00028100
|
|
<CAST FILE INPUT PART> ::= CAST <CAST SWITCH FILE LETTER> 00028200
|
|
<CAST PROG RANGE PART> 00028300
|
|
<CAST SWITCH FILE LETTER> ::= A / B / C 00028400
|
|
<CAST PROG RANGE PART> ::= ALL TO END <LIST OPTION> / 00028500
|
|
ALL FROM <FIRST PROG ID> TO END <LIST OPTION> / 00028600
|
|
ALL FROM <FIRST PROG ID> TO < LAST PROG ID> <LIST OPTION> 00028700
|
|
/ <PROG ID> <LIST OPTION> <RESEQ PART> 00028800
|
|
<NEW SOURCE FILE PART> 00028900
|
|
<FIRST PROG ID> ::= <IDENTIFIER> 00029000
|
|
< LAST PROG ID> ::= <IDENTIFIER> 00029100
|
|
<PROG ID> ::= <IDENTIFIER> 00029200
|
|
<XREF OPTIONS> ::= [<LINE CONTROLS> <DEBUGGING PART> <HEADER PART> 00029300
|
|
<LARGE PART> <COMMENT PART> <STRING PART> <LANGUAGE PART> 00029400
|
|
<PAGE PUNCH PART> <RESERVED PART>] 00029500
|
|
<SELECTIVE XREF CONTROLS> 00029600
|
|
<LINE CONTROLS> ::= EIGHT <PAGE LINE COUNT> <XREF LINE CONTROLS> / 00029700
|
|
SIX <PAGE LINE COUNT> <XREF LINE CONTROLS> 00029800
|
|
/ <XREF LINE CONTROLS> / <EMPTY> 00029900
|
|
<XREF LINE CONTROLS> ::= SINGLE / DOUBLE / <EMPTY> 00030000
|
|
00030100
|
|
<PAGE LINE COUNT> ::= <UNSIGNED INTEGER> / <EMPTY> 00030200
|
|
<DEBUGGING PART> ::= [DUMP MONITOR DEBUG DOCDEBUG BUGS DEBEATLE] / 00030300
|
|
<EMPTY> 00030310
|
|
<HEADER PART> ::= {ANY STRING OF CHARACTERS EXCEPT QUOTES AND PERCENTS 00030400
|
|
ENCLOSED WITHIN QUOTES} / <EMPTY> 00030500
|
|
<RESERVED PART> ::= RESERVED / OP / OPS / <EMPTY> 00030600
|
|
<LARGE PART> ::= LARGE <CORE SIZE> / <EMPTY> 00030700
|
|
<COMMENT PART> ::= COMMENT / <EMPTY> 00030800
|
|
<STRING PART> ::= STRING / STRING <UNSIGNED INTEGER>/ <EMPTY> 00030900
|
|
<LANGUAGE PART> ::= BPL / ESPOL / COBOL / B3500 / SIMULA / FORTRAN / 00031000
|
|
FORTRAN HOL / <EMPTY> 00031010
|
|
<PAGE PUNCH PART> ::= PPAGES <PUNCH PART> / PPAGES INSERTPAGE 00031100
|
|
<PAGE INC> <PUNCH PART> 00031200
|
|
<PUNCH PART> ::= PUNCH / <EMPTY> 00031300
|
|
<PAGE INC> ::= <UNSIGNED INTEGER> / <EMPTY> 00031400
|
|
<SELECTIVE XREF CONTROLS> ::= <COUNT PART> / PROCEDURE / <BLOCK PART> / 00031500
|
|
NAMEPUNCH NAMES <NAME LIST> * / NAMEPUNCH BLANK NAMES 00031600
|
|
<NAME LIST> * / 00031610
|
|
NAMES <NAME LIST> * / <XREF LETTER RANGE> / <PATCH PART> /00031700
|
|
<DOCUMENT PART> / <FLOW CHART PART> / SORT / SHUFFLE 00031800
|
|
<NAME LIST> ::= <IDENTIFIER> / <NAME LIST> <IDENTIFIER> 00031900
|
|
<XREF LETTER RANGE> ::= XREF <LETTER> / XREF <LETTER> TO <LETTER> 00032000
|
|
<BLOCK PART> ::= BLOCK / BLOCK <INDENTATION> 00032100
|
|
<INDENTATION> ::= <UNSIGNED INTEGER> 00032200
|
|
<COUNT PART> ::= COUNT / IDENT / IDENTIFIERS 00032300
|
|
<PATCH PART> ::= PATCH 00032400
|
|
<DOCUMENT PART> ::= <SEMICOLON USE> <DOCUMENT EDIT TYPE> 00032500
|
|
<JUSTIFY OPTION> <UPDATE OPTION> <DOCINDEX OPTION> 00032510
|
|
<DOCUMENT XREF PART> <REVISION PART> 00032600
|
|
<SEMICOLON USE> ::= DOCONLY / <EMPTY> 00032700
|
|
<DOCUMENT EDIT TYPE> ::= <DOCUMENT NAME> / <DOCUMENT NAME> FINAL 00032800
|
|
/ <DOCUMENT NAME> CONTENTS ONLY / <DOCUMENT NAME> SYNTAX 00032900
|
|
/ <DOCUMENT NAME> SYNTAX FINAL / BNF 00033000
|
|
<DOCUMENT NAME> ::= DOCUMENT / DOCUMENT <STRING> / 00033100
|
|
DOCUMENT <STRING> TO <STRING> 00033110
|
|
<JUSTIFY OPTION> ::= NOJUSTIFY / <EMPTY> 00033120
|
|
<UPDATE OPTION> ::= UPDATE / <EMPTY> 00033130
|
|
<DOCINDEX OPTION> ::= DOCINDEX / <EMPTY> 00033140
|
|
<DOCUMENT XREF PART> ::= XREF / <EMPTY> 00033200
|
|
<FLOW CHART PART> ::= <FLOW TYPE> <REVISION PART> 00033300
|
|
/ <TRANS PART> <ASMFLOW PART> 00033400
|
|
<FLOW TYPE> ::= FLOW / FLOW NOBOX / FLOW SYNTAX / <ASMFLOW PART> 00033500
|
|
/ <QFLOW PART> 00033510
|
|
<ASMFLOW PART> ::= ASMFLOW / ASMFLOW NOBOX / ASMFLOW SYNTAX 00033600
|
|
<QFLOW PART> ::= QFLOW / QFLOW NOBOX / QFLOW SYNTAX 00033610
|
|
<REVISION PART> ::= REVISION <REVISION NUMBER> / 00033700
|
|
REVISION CLEAR <REVISION NUMBER> 00033800
|
|
<REVISION NUMBER> ::= <UNSIGNED INTEGER> / <EMPTY> 00033900
|
|
<TRANS PART> ::= TRANS [<SEGS PART> <ESCAPE PART> <DATA PART>] 00034000
|
|
<SEGS PART> ::= SEGS <SEGMENT NUMBERS>* / <EMPTY> 00034100
|
|
<DATA PART> ::= DATA / <EMPTY> 00034200
|
|
<ESCAPE PART> ::= ESCAPE <ESCAPE COUNT> <ESCAPE LIST> / 00034300
|
|
ESCAPE <ESCAPE CHR> / <EMPTY> 00034400
|
|
<ESCAPE COUNT> ::= <UNSIGNED INTEGER> 00034500
|
|
<ESCAPE LIST> ::= <ESCAPE ITEM> / <ESCAPE LIST> <ESCAPE ITEM> 00034600
|
|
<ESCAPE ITEM> ::= {ANY SCANNABLE ENTITY} 00034700
|
|
<ESCAPE CHR> ::= {ANY SCANNABLE ENTITY EXCEPT NUMBERS} 00034800
|
|
<SEGMENT NUMBERS> ::= <INTEGER SPAN> / <SEGMENT NUMBERS>, 00034900
|
|
<INTEGER SPAN> 00035000
|
|
<INTEGER SPAN> ::= <INTEGER> / <INTEGER> - <INTEGER> 00035100
|
|
<LIST CONTROL> ::= LIST / <EMPTY> 00035200
|
|
<MERGE CONTROLS> ::= [<PRINTER LISTING> <BACKUP LISTING> 00035300
|
|
<SELECT PART> <DIRECTORY PART> TITLE DA ] / 00035400
|
|
<DIRECTORY PART> PRINTALL <ONLY PART> 00035500
|
|
<BACKUP LISTING> ::= BACKUP <DISK PART> / <EMPTY> 00035600
|
|
<DIRECTORY PART> ::= DIRECTORY <ONLY PART> / <EMPTY> 00035700
|
|
<SELECT PART> ::= PRINTSELECT <PAGES>* <ONLY PART> / <EMPTY> 00035800
|
|
<PAGES> ::= <UNSIGNED INTEGER> / <PAGES>, <UNSIGNED INTEGER> 00035900
|
|
<MULTIFILE PART> ::= MAKEMULTI / MAKEMUL 00036000
|
|
<MULTIFILE OPTIONS> ::= <OUTPUT FILE> <INPUT FILE> [<LIST OPTION> 00036100
|
|
<PUNCH PART> <DIRECTORY OPTION>] 00036200
|
|
<OUTPUT FILE> ::= DISK / DISC / TAPE 00036300
|
|
<INPUT FILE> ::= DISK / DISC / TAPE / <EMPTY> 00036400
|
|
<DIRECTORY OPTION> ::= DIRECTORY / <EMPTY> 00036500
|
|
<LETTER> ::= A/B/C/D/E/F/G/H/I/J/K/L/M/O/P/Q/R/S/T/U/V/W/X/Y/Z 00036600
|
|
<IDENTIFIER> ::= <LETTER> / <IDENTIFIER><LETTER> / <IDENTIFIER><DIGIT> 00036700
|
|
<DIGIT> ::= 0/1/2/3/4/5/6/7/8/9 00036800
|
|
<UNSIGNED INTEGER> ::= <DIGIT> / <UNSIGNED INTEGER><DIGIT> 00036900
|
|
* 7 00037000
|
|
EXAMPLES OF CROSS REFERENCE CONTROL CARDS. 00037100
|
|
* 11 00037200
|
|
$ CARD LIST / $ TAPE LIST / 00037300
|
|
$ CARD LIST DOCUMENT / $ DISK LIST DOCUMENT / 00037400
|
|
$ TAPE DOCONLY DOCUMENT / $ TAPE DOCUMENT XREF / 00037500
|
|
$ COPY CAST A LIST / $ COPY CAST B / 00037600
|
|
$ COPY TAPE / $ MAKEMULTI DISK DIRECTORY PUNCH / 00037700
|
|
$ MAKEMUL TAPE DISK / $ MERGE DIRECTORY ONLY / 00037800
|
|
$ MERGE / $ MERGE PRINTSELECT 1,20,23* / 00037900
|
|
$ TAPE LIST REMOTE / $ TAPE LIST PATCH / 00038000
|
|
$ TAPE LIST BACKUP PRINT / $ DISK LIST FLOW/ 00038100
|
|
$ SORT / $ IDENTIFIERS / 00038200
|
|
$ BACKUP / $ BACKUP DISK 3 / 00038300
|
|
$ COUNT / $ PROCEDURE / 00038400
|
|
$ CARD LIST NEW PUNCH / $ CARD NEW PUNCH TAPE RESEQUENCE / 00038500
|
|
$ BLOCK / $ BLOCK 5 / 00038600
|
|
* 12 00038700
|
|
$ CARD BUILD LIST PUNCH // 00038800
|
|
$ CAST A ALL FROM PERT TO SOL LIST // 00038900
|
|
$ CAST B ALL FROM PERT TO END LIST RESERVED // 00039000
|
|
$ CAST C PERT LIST NEW TAPE RESEQ CHECK // 00039100
|
|
$ CARD LIST DUMP MONITOR BUGS DEBUG // 00039200
|
|
$ TAPE LIST RESERVED STRING 10 COMMENT // 00039300
|
|
$ TAPE LIST NAMES FILE PRINT ARRAY SWITCH I J * // 00039400
|
|
$ DISK BACKUP DISK DOCUMENT UPDATE// 00039500
|
|
$ CARD BACKUP DISK FLOW REVISION 2// 00039600
|
|
* SKIP INDENT 4 00039700
|
|
$ CARD LIST DUMP MONITOR BUGS DEBUG PRINT 00039800
|
|
$ TAPE "COBOL/DISK 10/6/65" XREF A TO H BACKUP 00039900
|
|
$ TAPE "COBOL/DISK 10/6/65" XREF I TO R BACKUP UPDATE 00040000
|
|
$ TAPE "COBOL/DISK 10/6/65" XREF S TO Z BACKUP UPDATE 00040100
|
|
* 7 00040200
|
|
CROSS REFERENCE CONTROL CARD SEMANTICS 00040300
|
|
* 1 00040400
|
|
CROSS REFERENCE AND DOCUMENT EDITING OPTIONS ARE OBTAINED FROM A DOLLAR 00040500
|
|
CONTROL CARD. SINCE THERE ARE A LARGE NUMBER OF POSSIBLE OPTIONS, AND 00040600
|
|
SINCE ALL OF THE REQUIRED OPTIONS FOR A GIVEN RUN COULD NOT BE INCLUDED 00040700
|
|
ON ONE CARD, A DOLLAR CONTINUATION CARD IS ALLOWED. A CONTROL CARD MUST00040800
|
|
HAVE A DOLLAR SIGN IN COL 1, AND IF THE CONTROL INFORMATION IS TO BE 00040900
|
|
CONTINUED ONTO ANOTHER CARD, A DOLLAR SIGN MUST BE PLACED ON THE CARD 00041000
|
|
TO BE CONTINUED AND A DOLLAR SIGN PLACED IN COL 2 OF THE CONTINUATION 00041100
|
|
CARD, CONTINUATION CARDS MAY BE USED UNTIL ALL OF THE REQUIRED 00041200
|
|
INFORMATION IS ENTERED. IF A SEQUENCE OF NON-CONTINUED DOLLAR CARDS 00041300
|
|
PRECEDES A PROGRAM, ONLY THE LAST WILL DETERMINE THE OPERATIVE CONTROLS.00041400
|
|
THE FOLLOWING IS AN EXAMPLE :- 00041500
|
|
* INDENT 10 00041600
|
|
$ TAPE LIST NEW TAPE BACKUP $ 00041700
|
|
* INDENT 11 00041800
|
|
$ "HEADING INFORMATION" NAMES FILE INPUT OUTPUT $ 00041900
|
|
$ PRINTER TAPE TIME * 00042000
|
|
* 2 00042100
|
|
ALL CONTROL CARDS MUST BE AT THE FRONT OF THE PATCH CARDS IN THE FILE 00042200
|
|
"CARD" AND THE ONLY CONTROL CARD WHICH IS ALLOWED TO BE IN THE BODY OF 00042300
|
|
THE SYMBOLIC FILES IS THE <VOID PART> CONTROL CARD. 00042400
|
|
FOLLOWING IS A LIST OF THE CHARACTERISTICS OF THE CONTROL CARD OPTIONS: 00042500
|
|
* 3 00042600
|
|
<EMPTY> = IF THE FIRST RECORD READ FROM THE FILE "CARD" DOES NOT CONTAIN00042700
|
|
"$" SIGN IN COLUMN ONE THEN A LIST OF THE "CARD" DECK WILL BE 00042800
|
|
SUPPLIED AND THE SEQUENCE FIELDS (COLUMNS 72 TO 80) WILL BE 00042900
|
|
"SEQUENCE CHECKED". IF THE SEQUENCE NUMBER OF A RECORD IS LESS THAN 00043000
|
|
OR EQUAL TO THE SEQUENCE NUMBER OF THE PREVIOUS RECORD THEN THE 00043100
|
|
LISTING OF THE RECORD WILL CONTAIN A SEQUENCE ERROR CHECK FLAG 00043200
|
|
"********". NO OTHER CROSS REFERENCE CONTROLS WILL BE EXECUTED. 00043300
|
|
* 3 00043400
|
|
CARD = SOURCE INPUT IS ON A FILE "CARD". 00043500
|
|
* 4 00043600
|
|
TAPE = SOURCE INPUT IS ON A FILE ON TAPE "0CRDIMG". 00043700
|
|
SOURCE INPUT PATCHES ARE ON A FILE "CARD". 00043800
|
|
* 3 00043900
|
|
DISK,DISC = SOURCE INPUT IS ON A DISK FILE "DISKSYM" "XREF". 00044000
|
|
SOURCE INPUT PATCHES ARE ON A FILE "CARD". 00044100
|
|
* 3 00044200
|
|
CAST B = SOURCE INPUT IS TO BE FOUND ON A SYMBOLIC PROGRAM LIBRARY TAPE,00044300
|
|
SUCH A TAPE IS GENERATED BY THE MAKCAST PROGRAM RELEASED AS PART OF THE00044400
|
|
STANDARD SOFTWARE SYSTEM. ( THE LETTER "B" 00044500
|
|
MAY BE REPLACED BY A "A" OR A 00044600
|
|
"C"), (IF "A" IS USED A FILE "CASTA/LIBRARY" ON THE DISK WILL BE USED). 00044700
|
|
IN ORDER TO SELECT A PROGRAM OR PROGRAMS ON A CAST TAPE, ONE OF 00044800
|
|
THE FOLLOWING CONSTRUCTS MUST BE USED :- 00044900
|
|
* SKIP GLOSSARY 10,25,67 00045000
|
|
< PROG ID > = THIS SPECIFIES THAT ONLY ONE PROGRAM ON A CAST TAPE IS TO 00045100
|
|
BE PROCESSED. THIS SINGLE PROGRAM CAN BE PROCESSED AS IF IT WERE ON A 00045200
|
|
TAPE FILE "0CRDIMG". 00045300
|
|
* 6 00045400
|
|
WITH ALL OTHER COMBINATIONS OF CAST PROGRAM RANGES THE RESEQ AND NEW 00045500
|
|
SOURCE FILE OPTIONS ARE NOT ALLOWED, ALSO, NO PATCH CARDS ARE ACCEPTED F00045600
|
|
ROM THE FILE "CARDS". 00045700
|
|
* 8 00045800
|
|
ALL TO END 00045900
|
|
= PROCESS ALL PROGRAMS ON THE CAST TAPE. 00046000
|
|
* 9 00046100
|
|
ALL FROM PROGA TO END = PROCESS ALL PROGRAMS STARTING WITH "PROGA" 00046200
|
|
AND CONTINUE TO END OF THE CAST TAPE . 00046300
|
|
* SKIP GLOS 00046400
|
|
ALL FROM PROGA TO PROGB = PROCESS ALL PROGRAMS STARTING WITH "PROGA" 00046500
|
|
AND CONTINUE UP TO AND INCLUDING "PROGB" . 00046600
|
|
* 3 00046700
|
|
LIST = LIST THE SOURCE INPUT ON THE FILE "PRINT" WHICH IS NORMALLY THE 00046800
|
|
LINE PRINTER OR A MCP PRINTER BACKUP TAPE. IF THE RESEQ OPTION IS USED 00046900
|
|
(SEE BELOW), THEN THE OLD AND THE NEW SEQUENCE NUMBERS ARE LISTED. 00047000
|
|
IF THE SEQUENCE FIELD IS BLANK AND THE RESEQ OPTION IS NOT USED, THEN A 00047100
|
|
NUMBER OF THE FORM 99000000 + N IS ASSIGNED. IF A TOTAL CROSS REFERENCE00047200
|
|
IS BEING MADE, THEN ON THE LINE FOLLOWING EACH "END" THE SEQUENCE 00047300
|
|
NUMBER OF THE CORRESPONDING "BEGIN" APPEARS. 00047400
|
|
A "*" IS PRINTED AT THE RIGHT OF THE SEQUENCE NUMBER IF THE RECORD WAS 00047500
|
|
READ FROM THE FILE "CARD". 00047600
|
|
* 3 00047700
|
|
LISTONLY = LIST THE SOURCE INPUT FILES ON THE FILE "PRINT" USING 00047800
|
|
PATCH CARDS (IF PRESENT). THE "BEGIN" AND "END" LINKS ARE NOT LISTED 00047900
|
|
AND NO CROSS REFERENCE OR DOCUMENT LISTINGS ARE PRODUCED. 00048000
|
|
THE PATCH RECORDS ARE FLAGGED WITH AN "*". 00048100
|
|
* 3 00048200
|
|
TAPEPATCHES = PATCHCARDS ARE TO BE FOUND ON A TAPE "PATCHES". TO CREATE00048300
|
|
SUCH A TAPE SEE THE CONTROL NEW PATCHTAPE. THE TAPE WILL HAVE ALL THE 00048400
|
|
PROPERTIES OF A CARD PATCH DECK. 00048500
|
|
*3 00048600
|
|
ONLY = CROSS REFERENCE WILL BE SUPPRESSED AND ONLY FILE 00048700
|
|
MAINTENANCE OPERATIONS WILL BE PERFORMED. 00048800
|
|
* 3 00048900
|
|
BUILD PUNCH = A NEW SET OF RESERVED IDENTIFIERS IS READ FROM THE FILE 00049000
|
|
"CARD" AND A SET OF APPROPRIATE DEFINE DECLARATIONS AND A FILL 00049100
|
|
STATEMENT (TO FILL THE RESERVED LIST TABLE) ARE PUNCHED ON THE FILE 00049200
|
|
"PUNCH". THESE ARE THEN TO BE USED TO RECOMPILE THE CROSS REFERENCE 00049300
|
|
PROGRAM. 00049400
|
|
* 6 00049500
|
|
THE LIST OF RESERVED IDENTIFIERS SHOULD BE DIVIDED INTO "CLASSES". 00049600
|
|
THE FORMAT FOR THE INPUT IS AS FOLLOWS :- <CLASS NUMBER> <CLASS LIST> , 00049700
|
|
WHERE THE <CLASS NUMBER> IS AN UNSIGNED INTEGER AND THE <CLASS LIST> 00049800
|
|
IS A LIST OF THE RESERVED IDENTIFIERS IN THAT CLASS, EXAMPLE :- 00049900
|
|
* 6 00050000
|
|
1 BEGIN 2 END 3 ELSE 00050100
|
|
* 6 00050200
|
|
THE CROSS REFERENCE PROGRAM CONTAINS SOME CODE DESIGNED TO RECOGNISE 00050300
|
|
CERTAIN "ALGOL" AND "ESPOL" CONSTRUCTS, SUCH AS PROCEDURE HEADINGS , 00050400
|
|
FILL STATEMENTS, BEGIN-END PAIRS AND COMMENTS ETC. , THUS IF THIS 00050500
|
|
"BUILD" CONTROL FUNCTION IS USED TO CONSTRUCT A NEW RESERVED IDENTIFIER 00050600
|
|
LIST FOR ANOTHER PROGRAMMING LANGUAGE THEN THE APPROPRIATE CODE WILL 00050700
|
|
HAVE TO BE CHANGED (SEE PART 4). 00050800
|
|
* 3 00050900
|
|
COPY CAST A LIST = A CAST A TAPE WILL BE COPIED AND LISTED, NO OTHER 00051000
|
|
CONTROLS ARE OPERATIVE. THE LIST OPTION MAY BE EMPTY. 00051100
|
|
THE CAST FILE "CASTA" "LIBRARY" WILL BE COPIED FROM THE DISK TO 00051200
|
|
TAPE AND LABELLED "CASTA". FOR "B" OR "C" A TAPE TO TAPE COPY WILL BE 00051300
|
|
MADE. 00051400
|
|
* 3 00051500
|
|
COPY TAPE LIST = A COPY OF THE "0CRDIMG" TAPE WILL BE MADE TOGETHER WITH00051600
|
|
A LISTING. THE LIST OPTION MAY BE EMPTY. 00051700
|
|
* 3 00051800
|
|
LOGIC = THIS IS A SPECIAL FUNCTION FOR PRODUCING A "WHERE-USED" FILE 00051900
|
|
FOR SOME FORMS OF "LOGIC BOOKS" WHICH ARE BEING MAINTAINED ON THE 00052000
|
|
B 5500 AS PART OF THE B 220 DESIGN ASSIST PROGRAMMING SYSTEM. 00052100
|
|
FURTHER DETAILS MAY BE OBTAINED BY EXAMINING THE PERTINENT ALGOL 00052200
|
|
CODE IN THE CROSS REFERENCE SYMBOLIC LISTINGS. 00052300
|
|
* 4 00052400
|
|
SEQ = THE SOURCE INPUT RECORDS WILL BE SEQUENCE CHECKED, IF THE SEQUENCE00052500
|
|
NUMBER OF A RECORD IS LESS THAN OR EQUAL TO THE SEQUENCE NUMBER OF THE 00052600
|
|
PREVIOUS RECORD FROM THE SAME FILE, A SEQUENCE ERROR MESSAGE WILL B00052700
|
|
E PRINTED ON THE FILE "PRINT". 00052800
|
|
* 3 00052900
|
|
CHECK = SAME FUNCTION AS "SEQ" DESCRIBED ABOVE. 00053000
|
|
* 4 00053100
|
|
RESEQ N = THE SOURCE RECORDS WILL BE RESEQUENCED WITH A SEQUENCE INCREME00053200
|
|
NT OF N, IF N IS <EMPTY>, AN INCREMENT OF 1000 IS USED. BLANK RECORDS 00053300
|
|
(BLANKS IN COLS 1 - 72) ARE IGNORED. 00053400
|
|
* 3 00053500
|
|
RESEQ N,M = RESEQUENCE WITH SEQUENCE INCREMENT N AND STARTING WITH 00053600
|
|
SEQUENCE NUMBER M. 00053700
|
|
* 3 00053800
|
|
RESEQ 0,0 = ASSIGN BLANK SEQUENCE NUMBERS. 00053900
|
|
* 3 00054000
|
|
RESEQUENCE = SAME AS THE RESEQ OPTION EXCEPT THAT NO FUNCTIONS OTHER 00054100
|
|
THAN <NEW SOURCE FILE PART> AND <LIST OPTION> ARE ALLOWED. 00054200
|
|
* 3 00054300
|
|
RESEQ DOC = WILL,ALONG WITH RESEQUENCING,REMOVE * OVER CARDS AND 00054400
|
|
CHANGE <INSERT PART> TO "PAGE". 00054500
|
|
* 4 00054600
|
|
VOID N = SOURCE RECORDS ARE READ UNTIL THE FIRST RECORD WITH A SEQUENCE 00054700
|
|
NUMBER GREATER THEN OR EQUAL TO N IS FOUND. THIS WILL BE THE FIRST 00054800
|
|
RECORD ACCEPTED AFTER THAT VOID . 00054900
|
|
* 4 00055000
|
|
NEW TAPE = A NEW SOURCE FILE WILL BE CREATED ON TAPE. 00055100
|
|
* 4 00055200
|
|
NEW = A NEW SOURCE FILE WILL BE CREATED ON TAPE. 00055300
|
|
* 4 00055400
|
|
NEW PUNCH = A NEW SOURCE FILE WILL BE CREATED ON TAPE AND A DUPLICATE 00055500
|
|
CREATED ON PUNCHED CARDS ON A FILE "PUNCH" . 00055600
|
|
* 4 00055700
|
|
NEW DISK, NEW DISC= A NEW SOURCE FILE WILL BE CREATED ON DISK. 00055800
|
|
* 3 00055900
|
|
NEW PATCHTAPE = A TAPE EQUIVALENT TO A PATCH DECK WILL BE CREATED, IE TH00056000
|
|
E DOLLAR CARDS AND BLANKS WILL NOT BE THROWN AWAY. NOTE,HOWEVER, 00056100
|
|
THAT THE VOID OPTION IS NOT AVAILABLE IN THE MIDDLE OF A NEW PATCHTAPE 00056200
|
|
CREATION RUN, SINCE THE $VOID CARD WILL JUST BE COPIED ONTO 00056300
|
|
THE NEW FILE. 00056400
|
|
MAINTENANCE OF A PATCHTAPE CREATED BY THIS CONTROL IS ACHIEVED 00056500
|
|
BY A $ TAPE NEW PATCHTAPE CONTROL, SINCE THE TAPE IS SIMILAR TO 00056600
|
|
THE TAPE CREATED BY $ NEW TAPE. THE ONLY DIFFERENCE IS THAT THE 00056700
|
|
$ CARD RECORDS ARE INCLUDED AS REGULAR RECORDS. 00056800
|
|
IF RESEQ OR RESEQUENCE IS USED, 00056900
|
|
CARDS WITH BLANK SEQUENCE NUMBERS WILL BE 00057000
|
|
SEQUENCED IN STEPS OF THE GIVEN INCREMENT (2 IS DEFAULT CONDITION) 00057100
|
|
STARTING WITH THE SEQUENCE NUMBER OF THE 00057110
|
|
LAST SEQUENCED CARD. NO OTHER RESEQUENCING WILL BE DONE. 00057200
|
|
* 3 00057300
|
|
NEW PATCHTAPE PUNCH = THIS WILL PUNCH A DECK FROM THE TAPE "PATCHES", 00057400
|
|
INCLUDING $ CARDS. 00057500
|
|
* 3 00057600
|
|
NEW PUNCH TAPE = AN UNLABELLED BINARY TAPE (80 CHARACTERS PER 00057700
|
|
PHYSICAL RECORD) WILL BE PRODUCED WHICH MAY BE USED WITH A SUITABLE 00057800
|
|
TAPE TO PUNCH PROGRAM ON THE B 5500 OR B 300 (OR ANY OTHER SYSTEM). 00057900
|
|
* 3 00058000
|
|
BACKUP N = IF "BACKUP" FOLLOWS (IMMEDIATELY) THE "$" SIGN ON THE 00058100
|
|
FIRST ACCEPTABLE CONTROL CARD THEN A FILE "BACKUP" CREATED DURING 00058200
|
|
A PREVIOUS "RUN" WILL BE PRINTED. N COPIES WILL BE PRINTED, IF N IS 00058300
|
|
EMPTY THEN ONE COPY WILL BE PRINTED. 00058400
|
|
* 3 00058500
|
|
= IF "BACKUP" APPEARS ELSEWHERE ON THE CONTROL CARD THEN ALL OF THE 00058600
|
|
PERTINENT CROSS REFERENCE PROGRAM OUTPUT (EXCEPT THE OUTPUT GENERATED 00058700
|
|
BY <LIST OPTION>) WILL BE WRITTEN ON A FILE "BACKUP". 00058800
|
|
* 2 00058900
|
|
ALTHOUGH THE BACKUP FACILITY MAY NOT BE REQUIRED BY THE USER, IT MAY HAP00059000
|
|
PEN (BECAUSE OF CERTAIN COMBINATIONS OF CONTROL FUNCTION) THAT A TEMPORA00059100
|
|
RY BACKUP FILE WILL BE REQUIRED. IF A <LIST OPTION> IS USED TOGETHER WI00059200
|
|
TH A <BLOCK PART>, THE LISTING OF THE SYMBOLIC CODE WILL BE OUTPUT TO 00059300
|
|
THE FILE "PRINT" AND THE LISTING OF THE BLOCK DIAGRAM WILL BE PLACED ON 00059400
|
|
A TEMPORARY BACKUP FILE . AT THE END OF THE USE OF THE PRINT FILE THE 00059500
|
|
BACKUP FILE IS REWOUND AND COPIED ONTO THE PRINT FILE. IF A BACKUP 00059600
|
|
CONTROL APPEARED ON THE CONTROL CARD, THIS LAST COPYING WILL NOT BE 00059700
|
|
DONE. A SIMILAR SITUATION OCCURS IF "LIST DOCUMENT" APPEARS ON THE 00059800
|
|
CONTROL CARD, IN THIS CASE, ONLY THE SYMBOLIC RECORDS WHICH ARE TO BE 00059900
|
|
USED FOR THE DOCUMENT ARE LISTED ON THE PRINT FILE AND THE DOCUMENT 00060000
|
|
ITSELF IS PLACED ON THE TEMPORARY BACKUP FILE WHICH IS THEN COPIED ONTO 00060100
|
|
THE PRINT FILE. 00060200
|
|
*3 00060300
|
|
BACKUP DISK = IF THE RUN IS TO CREATE A BACKUP, THE BACKUP FILE 00060400
|
|
WILL BE CREATED ON DISK. IF THE BACKUP CONTROL IS 00060500
|
|
BEING USED TO PRINT A PREVIOUSLY CREATED BACKUP, IT IS 00060600
|
|
EXPECTED THAT THAT FILE, "BACKUPDISK", WILL BE ON DISK. 00060700
|
|
*3 00060800
|
|
LISTBACKUP = BOTH SOURCE INPUT LISTING AND CROSS REFERENCE OUTPUT WIL00060900
|
|
L BE WRITTEN ON THE FILE "BACKUP". 00061000
|
|
* 4 00061100
|
|
BACKUP UPDATE = PRIOR TO WRITING THE OUTPUT FROM THE PRESENT RUN ON THE 00061200
|
|
FILE "BACKUP", THE CONTENTS OF A BACKUP FILE FROM A PREVIOUS RUN IS 00061300
|
|
COPIED ONTO THE NEW BACKUP FILE. 00061400
|
|
* 4 00061500
|
|
PRINT = THE PROGRAM OUTPUT WILL BE WRITTEN ON THE FILE "PRINT" WHICH 00061600
|
|
IS NORMALLY THE LINE PRINTER OR THE MCP PRINTER BACKUP TAPE. IF BACKUP 00061700
|
|
AND PRINT DO NOT APPEAR ON THE CONTROL CARD, A PRINT OPTION WILL BE 00061800
|
|
SUPPLIED. 00061900
|
|
*4 00062000
|
|
MAKE IRFILE = THIS CONSTRUCTION IS RESERVED FOR FUTURE IMPLEMENTATION. 00062100
|
|
* 4 00062200
|
|
BLOCK N = A BLOCK DIAGRAM WILL BE DRAWN GIVING ALL THE BEGIN AND END 00062300
|
|
SEQUENCE NUMBERS AND ALL PROCEDURE IDENTIFIERS AT THE PLACE WHERE THEY 00062400
|
|
HAVE BEEN DECLARED. EACH BEGIN WILL BE INDENTED N COLS FROM THE PRECEEDI00062500
|
|
NG BEGIN. IF N IS <EMPTY>, N IS SET TO 2. 00062600
|
|
* 3 00062700
|
|
SIX N = A PRINTER CONTROL TAPE ALLOWING SIX LINES PER INCH SHOULD BE 00062800
|
|
USED FOR ALL OUTPUT LISTINGS. SINGLE SPACE PRINTING IS ASSUMED. UNLESS 00062900
|
|
"SIX" IS USED PRINTER OUTPUT WITH EIGHT LINES PER INCH (DOUBLE SPACE) 00063000
|
|
IS ASSUMED. 00063100
|
|
IF N IS NOT EMPTY, IT IS USED AS THE MAXIMUM NUMBER OF LINES 00063110
|
|
PER PAGE. THIS WILL ONLY AFFECT DOCUMENTS. 00063112
|
|
IN COUNTING LINES THE USER SHOULD REALIZE THAT ONE LINE IS ALWAYS 00063114
|
|
WRITTEN ABOVE THE PAGE NUMBER, EITHER THE TITLE OR A BLANK LINE. 00063116
|
|
(THIS IS TO PROVIDE A CONSISTENT FORMAT FOR MERGE RUNS). 00063118
|
|
*3 00063200
|
|
EIGHT N = EIGHT LINES PER INCH WILL BE FORMATED. IF N IS NOT EMPTY, 00063300
|
|
IT IS USED AS THE MAXIMUM NUMBER OF LINES PER PAGE. 00063310
|
|
THIS WILL ONLY AFFECT DOCUMENTS. 00063320
|
|
*3 00063400
|
|
SINGLE = OUTPUT WILL BE SINGLE SPACED. 00063500
|
|
*3 00063600
|
|
DOUBLE = THE OUTPUT WILL BE DOUBLE SPACED. 00063700
|
|
*2 00063800
|
|
THE ABOVE FOUR LINE CONTROLS MAY BE FOLLOWED BY AN INTEGER, THE PAGE 00063900
|
|
LINE COUNT, WHICH PRESCRIBES THE MAXIMUM NUMBER OF LINES PER PAGE 00064000
|
|
TO BE PRINTED. 00064100
|
|
* 2 00064200
|
|
THE FOLLOWING FIVE CONTROLS SHOULD ONLY BE USED TO ASSIST IN 00064300
|
|
MAINTAINING THE CROSS REFERENCE AND EDITING PROGRAM AND SHOULD NOT 00064400
|
|
NORMALLY BE USED DURING A "PRODUCTION RUN". 00064500
|
|
* 3 00064600
|
|
DUMP = DUMP THE SYMBOL TABLES AND ALL OTHER GLOBAL ARRAYS USED IN THE 00064700
|
|
PROGRAM. THE DUMP WILL BE OF THE FILE "PRINT" AND OCCURS AT THE END OF 00064800
|
|
THE RUN ( THE DUMP IS IN OCTAL). 00064900
|
|
* 4 00065000
|
|
MONITOR = MONITOR ALL THE NON STREAM PROCEDURE PROCEDURES IN THE PROGRAM00065100
|
|
. THIS WILL SHOW THE FLOW OF CONTROL THROUGH THE PROGRAM. 00065200
|
|
* 4 00065300
|
|
BUGS = EACH TIME AN IDENTIFIER IS ADDED TO THE SYMBOL TABLE, IT IS ALSO 00065400
|
|
WRITTEN ON THE FILE "PRINT". 00065500
|
|
* 4 00065600
|
|
DEBUG = EACH TIME A CALL IS MADE ON THE PROCEDURE SCAN, THE OUTPUT 00065700
|
|
PARAMETER VALUES ARE FORMATTED AND WRITTEN ON THE FILE "PRINT". THESE 00065800
|
|
PARAMETERS INCLUDE THE FOLLOWING:- THE TYPE OF RESULT FOUND WHETHER AN 00065900
|
|
IDENTIFIER, 00066000
|
|
A NUMBER OR A SPECIAL CHARACTER AND THE SIZE OF THE ENTITY FOUND, TH00066100
|
|
E ADDRESS OF THE NEXT CHARACTER TO BE SCANNED AND THE ADDRESS OF THE LAS00066200
|
|
T CHARACTER POSITION OF THE ARRAY WHICH CAN BE SCANNED. 00066300
|
|
* 3 00066400
|
|
DOCDEBUG = EACH TIME A NEW PAGE IS PRINTED WHEN IN THE "DOCUMENT" 00066500
|
|
MODE (SEE BELOW) EACH COLUMN NUMBER WILL BE PRINTED AT THE HEAD OF 00066600
|
|
EACH PAGE. THIS ASSISTS IN THE FORMING AND CHECKING OF THE LAYOUT 00066700
|
|
OF THE DOCUMENT. 00066800
|
|
* 3 00066810
|
|
DEBEATLE = USED IN MERGE OR TRANS RUNS, THIS CONTROL WILL PRINT OUT 00066820
|
|
INFORMATION IN INTERMEDIATE STAGES OF PREPARATION FOR A DEBUGGING AID. 00066822
|
|
* 4 00066900
|
|
"HEADER PART" = INFORMATION ENCLOSED BETWEEN THE QUOTES WILL BE 00067000
|
|
INCLUDED IN THE HEADING OF EACH PAGE OF OUTPUT WRITTEN ON THE FILES 00067100
|
|
"PRINT" AND "BACKUP". 00067200
|
|
* 3 00067300
|
|
RESERVED = RESERVED IDENTIFIERS WILL BE INCLUDED IN THE CROSS REFERENCE 00067400
|
|
LISTINGS. IF THIS FUNCTION IS NOT USED THEN THE IDENTIFIERS 00067500
|
|
WHICH ARE RESERVED WITHIN "STREAM PROCEDURES" ARE NOT CONSIDERED AS 00067600
|
|
RESERVED OUTSIDE "STREAM PROCEDURES". 00067700
|
|
* 3 00067800
|
|
OP,OPS = USED ONLY WITH B3500. CAUSES OPCODES TO BE CROSS REFERENCED. 00067900
|
|
* 3 00068000
|
|
LARGE = TO BE USED IF THE USER ANTICIPATES THAT THE NUMBER OF 00068100
|
|
CROSS REFERENCE ENTRIES WILL EXCEED 32000 (THE MAXIMUM TABLE SPACE 00068200
|
|
PROVIDED). THE ITEMS WILL BE WRITTEN ON A FILE ON THE DISK AND SORTED 00068300
|
|
BY USE OF THE "SORT" INTRINSIC FUNCTION NOW PROVIDED BY THE MCP. 00068400
|
|
IT APPEARS THAT THIS CONTROL MAY ALSO SHORTEN THE 00068500
|
|
RUNNING TIME FOR MODERATELY LARGE FILES. 00068600
|
|
AN INTEGER FOLLOWING "LARGE " INDICATES THE CORE SIZE TO BE USED 00068700
|
|
IN THE SORT. DEFAULT CONDITION IS 6000. 00068800
|
|
* 3 00068900
|
|
COMMENT = ALL IDENTIFIERS APPEARING WITHIN "COMMENTS" WILL BE CROSS 00069000
|
|
REFERENCED. 00069100
|
|
* 3 00069200
|
|
STRING N = ALL STRINGS OF LENGTHS LESS THAN OR EQUAL TO N (INCLUDING 00069300
|
|
THE QUOTES) WILL BE CROSS REFERENCED. IF N IS EMPTY IT IS SET EQUAL TO 00069400
|
|
EIGHT. 00069500
|
|
* 3 00069600
|
|
BPL = BPL SYMBOLIC FILES ARE TO BE CROSS 00069700
|
|
REFERENCED, (THE RESERVED 00069800
|
|
IDENTIFIER LIST FOR BPL IS DIFFERENT FROM THE RESERVED IDENTIFIER 00069900
|
|
LIST FOR ALGOL). 00070000
|
|
*3 00070100
|
|
ESPOL = ESPOL SYMBOLIC FILES ARE TO BE CROSS REFERENCED. 00070200
|
|
* 3 00070300
|
|
COBOL = COBOL SYMBOLIC FILES ARE TO BE CROSS REFERENCED. 00070400
|
|
*3 00070500
|
|
B3500 = B3500 ASSEMBLY CODE FILES ARE TO BE CROSS REFERENCED. 00070600
|
|
* 3 00070700
|
|
SIMULA = CROSS REFERENCE SIMULA SOURCE FILES. THIS CONTROL 00070710
|
|
WILL ACTUALLY CAUSE AN ALGOL CROSS-REFERENCE BUT WILL TREAT CERTAIN 00070712
|
|
ADDITIONAL SIMULA RESERVED WORDS AS STATEMENT-ENDERS. 00070714
|
|
* 3 00070716
|
|
FORTRAN = A FORTRAN SOURCE FILE IS EXPECTED. 00070718
|
|
THE PROGRAM ASSUMES THAT KEY WORDS ARE SEPARATED AS IN ALGOL AND THAT 00070720
|
|
KEY WORDS ARE NOT USED AS IDENTIFIERS. 00070722
|
|
* 3 00070724
|
|
FORTRAN HOL = HOLLERITH CHARACTER SET IS EXPECTED AND 00070726
|
|
TRANSLATED INTO BCL FOR OUTPUT. 00070728
|
|
*3 00070730
|
|
REMOTE = THIS WAS INTRODUCED FOR USE WITH THE REMOTE PROGRAMMING SYSTEM.00070800
|
|
ALL LISTING WILL BE RESTRICED TO 80 COLUMNS, THAT IS ALL OUTPUT 00070900
|
|
LISTINGS CAN BE PRINTED ON 8.5 | 11.0 INCH PAPER. 00071000
|
|
* 4 00071100
|
|
COUNT = GATHER STATISTICS ON THE IDENTIFIERS OF THE GIVEN PROGRAM. THIS 00071200
|
|
OPTION SHOULD BE USED IF THE TOTAL NUMBER OF CROSS REFERENCE ENTRIES MAY00071300
|
|
BE GREATER THAN 32000, THIS BEING THE LARGEST NUMBER OF ENTRIES WHICH C00071400
|
|
AN BE ACCOMODATED BY THE ARRAYS WITHIN THE PROGRAM. THE COBOL COMPILER 00071500
|
|
AND THE MCP ARE SUCH PROGRAMS. IF THE STATISTICS SHOW THAT T00071600
|
|
HE LIMIT WOULD BE EXCEEDED, THE SELECTED XREF RANGE OF LETTER OPTION (S00071700
|
|
EE BELOW) OR THE LARGE OPTION (SEE ABOVE) SHOULD BE USED. 00071800
|
|
A SORTED LIST OF ALL THE IDENTIFIERS WILL BE PRODUCED. 00071900
|
|
* 3 00072000
|
|
IDENTIFIERS = SAME AS COUNT DESCRIBED ABOVE. 00072100
|
|
* 3 00072200
|
|
SORT = ALL IDENTIFIERS IN THE SOURCE FILES WILL BE CROSS REFERENCED 00072300
|
|
(INCLUDING 00072400
|
|
RESERVED IDENTIFIERS AND IDENTIFIERS WITHIN COMMENTS). 00072500
|
|
THIS CONTROL MAY BE USED IN "FREQUENCY" COUNT EXPERIMENTS. 00072600
|
|
*3 00072700
|
|
SHUFFLE = THIS MAY BE USED WITH AN <INPUT SOURCE FILE PART> WHICH 00072800
|
|
DENOTES "TAPE". NO PATCH CARDS FOR THE SYMBOLIC FILE ARE ALLOWED IN 00072900
|
|
THE FILE "CARD". 00073000
|
|
* SKIP PARAGRAPH 25,67,0 * 00073100
|
|
THE PURPOSE OF THIS FUNCTION IS TO ALLOW A NEW FILE TO BE CREATED 00073200
|
|
BY "SHUFFLING" AN EXISTING TAPE FILE. EACH DATA RECORD IN THE FILE 00073300
|
|
"CARD" SHOULD CONTAIN FOUR UNSIGNED INTEGERS SEPARATED BY COMMAS. 00073400
|
|
THE SYNTAX FOR THE INTEGERS IS :- 00073500
|
|
* SKIP INDENT 20 00073600
|
|
<OLD START>,<OLD FINISH>,<NEW START>,<INCREMENT>, 00073700
|
|
* SKIP PARAGRAPH 25,67,0 * 00073800
|
|
ALL RECORDS IN THE EXISTING FILE WITH SEQUENCE NUMBERS IN THE RANGE 00073900
|
|
<OLD START> TO < OLD FINISH> (INCLUSIVE) WILL BE REPRODUCED AND 00074000
|
|
RESEQUENCED STARTING WITH <NEW START> AND WITH SEQUENCE INCREMENT 00074100
|
|
<INCREMENT>. 00074200
|
|
* SKIP PARAGRAPH 25,67,0 * 00074300
|
|
A "NEW PUNCH" OR "NEW TAPE" CONTROL SHOULD BE USED WITH THE "SHUFFLE" 00074400
|
|
CONTROL. IF "RESEQ" OR "RESEQUENCE" IS USED THEN <NEW START> AND 00074500
|
|
<INCREMENT> ARE IGNORED (THEIR POSITIONS ON THE DATA CARD MUST BE 00074600
|
|
REPLACED BY COMMAS). 00074700
|
|
* 4 00074800
|
|
XREF C = CROSS REFERENCE ONLY THE IDENTIFIERS WHOSE INITIAL LETTER IS A 00074900
|
|
"C" OR WHATEVER SINGLE LETTER IS SPECIFIED. 00075000
|
|
* 4 00075100
|
|
XREF B TO R = CROSS REFERENCE ALL THE IDENTIFIERS WHOSE INITIAL LETTER 00075200
|
|
FALLS WITHIN THE RANGE "B" TO "R" INCLUSIVE (OR WHATEVER RANGE IS SPECIF00075300
|
|
IED) . 00075400
|
|
* 4 00075500
|
|
PROCEDURE = CROSS REFERENCE ONLY PROCEDURE IDENTIFIERS. 00075600
|
|
* 4 00075700
|
|
NAMES = CROSS REFERENCE ONLY A SELECTED SET OF IDENTIFIERS. THESE 00075800
|
|
IDENTIFIERS FOLLOW THE "NAMES" OPTION AND ARE TERMINATED BY AN ASTERISK 00075900
|
|
"*". IF REQUIRED, THESE NAMES MAY BE PLACED ON CONTINUATION CARDS AS 00076000
|
|
MENTIONED ABOVE. 00076100
|
|
* 3 00076200
|
|
PATCH = ALL RECORDS CONTAINED ON "TAPE" OR "CAST" FILES HAVING SEQUENCE 00076300
|
|
NUMBERS EQUAL TO THE SEQUENCE NUMBERS ON THE "PATCH" CARDS IN THE 00076400
|
|
"CARD" FILE WILL BE PUNCHED. 00076500
|
|
THIS MAY BE USED WHEN SIMILAR CONSTRUCTS ON MANY RECORDS HAVE TO BE 00076600
|
|
CHANGED, EXAMPLE A TWO DIMENSIONAL ARRAY A[I,J] IS TO BE CHANGED TO A 00076700
|
|
ONE DIMENSIONAL ARRAY A[I]. IN THIS CASE CROSS REFERENCE LISTING WILL 00076800
|
|
SHOW THE SEQUENCE NUMBERS WHERE "A" IS USED, A SET OF BLANK PATCH 00076900
|
|
CARDS ARE PREPARED CONTAINING THESE SEQUENCE NUMBERS AND BY USING 00077000
|
|
THE "PATCH" CONTROL THE PERTINENT RECORDS WILL BE PUNCHED. THESE MAY 00077100
|
|
THEN BE CORRECTED AND USED AS NEW PATCH CARDS TO RECOMPILE THE PROGRAM. 00077200
|
|
* 3 00077300
|
|
NAMEPUNCH = THE RECORD CORRESPONDING TO EVERY SEQUENCE NUMBER 00077400
|
|
ENTERED IN THE CROSS REFERENCE TABLE WILL BE PUNCHED. THIS OPTION SHOULD00077500
|
|
BE USED WITH THE "NAMES" OPTION IF CORRECTIONS HAVE TO BE MADE TO THE 00077600
|
|
RECORDS. IF AN IDENTIFIER APPEARS MORE THAN ONCE ON A RECORD ONLY 00077700
|
|
ONE COPY OF THE RECORD WILL BE PUNCHED. 00077800
|
|
* 3 00077900
|
|
NAMEPUNCH BLANK =THIS CONTROL PUNCHES OUT BLANK CARDS WITH THE 00077910
|
|
SEQUENCE NUMBERS OF ALL CARDS HAVING THE NAMED IDENTIFIERS. 00077912
|
|
* 3 00077914
|
|
DOCONLY = SEMICOLONS ARE USED (IN ALGOL AND ESPOL) TO TERMINATE 00078000
|
|
COMMENTS, THUS IF SEMICOLONS ARE TO BE INCLUDED WITHIN DOCUMENT COMMENTS00078100
|
|
THE "PERCENT" DOCUMENT CONTROL DESCRIBED IN PART 2 SHOULD BE USED. 00078200
|
|
HOWEVER, IF THE "DOCUMENT" IS NOT PART OF AN ALGOL OR ESPOL SYMBOLIC 00078300
|
|
PROGRAM BUT IS SELF-SUFFICIENT, EXAMPLE PRODUCT SPECIFICATIONS, 00078400
|
|
PROGRAMMING MANUALS ETC THEN SEMICOLONS MAY BE USED WITHIN THESE 00078500
|
|
DOCUMENTS IF THE "DOCONLY" CONTROL IS USED. THE CONTROL INHIBITS THE 00078600
|
|
CHECKING OF SEMICOLONS IN THE DOCUMENT. 00078700
|
|
* 4 00078800
|
|
DOCUMENT = PRODUCE A DOCUMENT BY SCANNING THE SOURCE INPUT TO 00078900
|
|
FIND COMMENTS SUCH AS ARE DESCRIBED IN PART 2 OF THIS DOCUMENT. 00079000
|
|
* 3 00079100
|
|
DOCUMENT "MANUAL" = THIS CONTROL ASSUMES THAT STRINGS 00079110
|
|
IDENTIFY THE VARIOUS DOCUMENTS ON THE SOURCE FILE. DOCUMENT 00079112
|
|
"MANUAL" WILL PRODUCE ONLY THAT DOCUMENT LABELLED WITH THE STRING 00079114
|
|
"MANUAL". THIS LABELLING IS DONE BY PLACING THE DESIRED STRING AFTER 00079116
|
|
THE "COMMENT DOCUMENT" FOR THAT DOCUMENT, ON THE SAME CARD. THE 00079118
|
|
DOCUMENT TERMINATES WITH THE NEXT "FINISH" OR "QUIT". 00079120
|
|
* 3 00079122
|
|
DOCUMENT "APP-2" TO "APP-5" = PRODUCE DOCUMENTS STARTING WITH THE 00079124
|
|
DOCUMENT LABELLED "APP-2" AND 00079126
|
|
ENDING WITH THAT LABELLED "APP-5". 00079128
|
|
* 3 00079130
|
|
DOCUMENT FINAL = SAME AS DOCUMENT EXCEPT THAT SEQUENCE NUMBERS ARE 00079200
|
|
NOT PRINTED IN THE DOCUMENT. ERROR MESSAGES ARE NOT 00079300
|
|
INHIBITED. 00079400
|
|
* 3 00079500
|
|
DOCUMENT CONTENTS ONLY = A DOCUMENT IS GENERATED BUT NOT PRINTED OR 00079600
|
|
SAVED BUT THE PERTINENT "TABLE OF CONTENTS" ARE PRINTED 00079700
|
|
ON THE FILE "PRINT". 00079800
|
|
* 3 00079900
|
|
DOCUMENT SYNTAX =EXTRACT ONLY THE PORTIONS OF THE DOCUMENT WHICH FOLLOW 00080000
|
|
THE USE OF A DOCUMENT <SPECIAL PART> (SEE DOCUMENT CONTROL SYNATX). 00080100
|
|
IF THE IDENTIFIER "FINAL" APPEARS AFTER "SYNTAX" THE FINAL DOCUMENT 00080200
|
|
WILL BE PRINTED. 00080300
|
|
*3 00080400
|
|
BNF = THE DOCUMENT TO BE CROSS REFERENCED CONSISTS OF BACKUS NORMAL FORM00080500
|
|
SYNTAX SUCH AS THAT ON PAGE SEVEN OF THIS DOCUMENT. METALINGUISTIC 00080600
|
|
VARIABLES WILL BE CROSS REFERENCED. 00080700
|
|
*3 00080800
|
|
NOJUSTIFY = SUPPRESS JUSTIFICATION OF THE RIGHT MARGIN. 00080810
|
|
* 3 00080812
|
|
DOCINDEX = REPLACE THE REGULAR DOCUMENT CONTROLS CROSS-REFERENCE 00080814
|
|
WITH A CROSS-REFERENCE OF SELECTED ITEMS REQUESTED 00080816
|
|
DURING THE COURSE OF THE DOCUMENT (SEE THE CONTROL "NAMES" IN SECTION 2 00080818
|
|
OF THIS MANUAL). 00080820
|
|
* 3 00080822
|
|
UPDATE = A NEW DOCUMENT IS CREATED FROM SOURCE FILE 00080900
|
|
AND PATCH CARDS USING SECTIONS OF DOCUMENT BETWEEN "PAGE" OR 00081000
|
|
"INSERTPAGE" CONTROLS AS LOGICAL UNITS. A CONTINUATION PAGE WILL BE 00081100
|
|
GENERATED IF NECESSARY. 00081200
|
|
NOTE THAT THE DOCUMENT WILL BE WRITTEN ON THE 00081300
|
|
FILE "PRINT" UNLESS THE "BACKUP" OUTPUT FILE CONTROL IS USED. 00081400
|
|
THE PROGRAM FORCES BACKUP TO DISK. 00081500
|
|
A DIRECTORY IS BUILT DESCRIBING THE DOCUMENT. THIS DIRECTORY IS USED BY00081600
|
|
THE "MERGE" PHASE OF DOCUMENT UPDATING. 00081700
|
|
* 3 00081800
|
|
DOCUMENT XREF = A CROSS REFERENCE LISTING WITH ALL IDENTIFIERS FOUND ON 00081900
|
|
"* CONTROL RECORDS" (SEE PART 2) AND ALSO FOR DOCUMENT "DEFINES". 00082000
|
|
NO DOCUMENT WILL BE PRODUCED. THIS CROSS REFERENCE LISTING IS 00082100
|
|
SUPPLIED AUTOMATICALLY WITH A "DOCUMENT" RUN BUT IS INHIBITED IN A 00082200
|
|
"DOCUMENT FINAL" RUN. 00082300
|
|
* 3 00082400
|
|
FLOW = THE SOURCE INPUT FILES ARE TO BE SEARCHED FOR COMMENTS WHICH 00082500
|
|
START WITH "COMMENT FLOW". THE CONTENTS OF SUCH COMMENTS SHOULD 00082600
|
|
CONTAIN DESCRIPTIONS OF FLOW CHARTS ACCORDING TO THE SYNTAX GIVEN 00082700
|
|
IN PART THREE OF THIS DOCUMENT. 00082800
|
|
* 3 00082900
|
|
FLOW SYNTAX = PERFORM A SYNTAX CHECK ONLY OF THE "COMMENT FLOW" 00083000
|
|
COMMENTS. NO FLOW CHARTS WILL BE DRAWN. 00083100
|
|
* 3 00083200
|
|
FLOW NOBOX = ONLY "TEST" BOXES AND "LABELS" WILL BE ENCLOSED 00083300
|
|
IN BOXES. THE OTHER "BOX" CONTENTS WILL BE CENTERED WITHIN THE 00083400
|
|
APPROPRIATE FLOW CHART COLUMN. 00083500
|
|
* 3 00083600
|
|
ASMFLOW = SAME AS FLOW EXCEPT THAT LABELS MAY HAVE SPECIAL CHARACTERS 00083700
|
|
IN THEM. 00083800
|
|
* 3 00083900
|
|
QFLOW = SAME AS FLOW, BUT DOCUMENT-LIKE EDITING IS DONE 00083910
|
|
ON THE TEXT. SPECIFICALLY, CERTAIN CHARACTERS ARE COMBINED WITH ITEMS 00083912
|
|
FOLLOWING OR PRECEDING THEM (EG "(" ",") AND STRINGS ARE BROKEN UP IF 00083914
|
|
NECESSARY TO FIT ON A LINE. 00083916
|
|
* 3 00083918
|
|
REVISION N = THIS CONTROL CAUSES THE REVISION TO BE WRITTEN 00084000
|
|
AT THE HEAD OF EVERY PAGE. THE REVISION NUMBER IS ASSUMED TO BE ONE 00084100
|
|
IF N IS EMPTY. 00084200
|
|
* 3 00084300
|
|
REVISION CLEAR N = THE DOCUMENT WILL BE ASSIGNED THE REVISION N FOR 00084400
|
|
PURPOSES OF UDPDATING, BUT THE REVISION WILL NOT BE WRITTEN ON ANY 00084500
|
|
PAGE. 00084600
|
|
* 3 00084700
|
|
TRANS = TRANSLATE B3500 ASSEMBLY LANGUAGE INTO FLOW CHART LANGUAGE. 00084800
|
|
* 3 00084900
|
|
SEGS N-M, ...= TRANSLATE AND FLOWCHART ONLY THE REQUESTED 00085000
|
|
SEGMENTS. 00085100
|
|
* 3 00085200
|
|
ESCAPE C = IGNORE REMARKS BEGINNING WITH C. 00085300
|
|
*3 00085400
|
|
ESCAPE N C D ... = IGNORE REMARKS BEGINNING WITH ANY OF THE N 00085500
|
|
ENTITIES C, D, .... NO MORE THAN FIVE SUCH 00085600
|
|
ENTITIES MAY BE DESIGNATED. 00085700
|
|
EXAMPLES MIGHT BE "#", "DEBUG" . 00085800
|
|
* 3 00085900
|
|
DATA= PRINT CONSTANTS, WHICH ARE NORMALLY SUPPRESSED, 00086000
|
|
AS A TABLE. 00086100
|
|
* 3 00086200
|
|
MERGE = THE CONTROL MERGE BASICALLY INITIATES A COMPARISON 00086300
|
|
BETWEEN TWO DOCUMENTS, THE DISK FILES "OLDDOC" AND "NEWDOC". DURING 00086400
|
|
THIS COMPARISON PAGES OF "NEWDOC" WHICH DIFFER FROM THOSE OF "OLDDOC" 00086500
|
|
ARE WRITTEN ON THE DESIGNATED FILE. THIS WILL BE PRINT UNLESS THE 00086600
|
|
CONTROL 00086700
|
|
"BACKUP" IS USED. 00086800
|
|
A CURRENT PAGE REVISION INDEX AND A CHANGE INDEX ARE ALSO WRITTEN. 00086900
|
|
IF THE 00087000
|
|
"REVISION" DOCUMENT CONTROL WAS IN EFFECT DURING THE CREATION 00087100
|
|
OF "NEWDOC", THE REVISION IS UPDATED ON THE CHANGED PAGES. 00087200
|
|
*2 00087300
|
|
THE LIST CONTROL HERE ONLY CAUSES THE $ CARD TO BE WRITTEN. 00087400
|
|
* 3 00087500
|
|
DIRECTORY= THE DIRECTORY OF THE FILE "OLDDOC" IS WRITTEN BEFORE THE 00087600
|
|
MERGE IS PERFORMED. 00087700
|
|
* 3 00087800
|
|
DIRECTORY ONLY = THE DIRECTORY 00087900
|
|
IS WRITTEN AND MERGE IS SUPPRESSED. THE FILE "NEWDOC" IS NOT NEEDED. 00088000
|
|
* 3 00088100
|
|
PRINTALL = THE MERGE IS PERFORMED, BUT ALL PAGES, NOT 00088200
|
|
JUST CHANGED ONES, WILL BE WRITTEN ON THE DESIGNATED FILE. 00088300
|
|
* 3 00088400
|
|
PRINTALL ONLY = THE MERGE IS SUPPRESSED AND THE FILE "NEWDOC" IS NOT 00088500
|
|
NEEDED. THIS CONTROL IS EQUIVALENT TO "$BACKUP DISK" EXCEPT 00088600
|
|
THAT THE FILE TO BE PRINTED IS CALLED "OLDDOC " INSTEAD OF 00088700
|
|
"BACKUPDISK". 00088800
|
|
* 3 00088900
|
|
PRINTSELECT = A MERGE IS PERFORMED BUT ONLY THE PAGES 00089000
|
|
LISTED WILL BE WRITTEN. 00089100
|
|
* 3 00089200
|
|
PRINTSELECT ONLY= MERGE IS SUPPRESSED AND ONLY THE FILE "OLDDOC" IS 00089300
|
|
NEEDED. 00089400
|
|
* 3 00089500
|
|
TITLE = WHEN THE USER KNOWS THAT THE FIRST PAGE OF 00089510
|
|
HIS DOCUMENT HAS A TITLE, HE MAY USE THIS CONTROL. THAT TITLE WILL BE 00089512
|
|
READ OFF THE FIRST PAGE OF THE DOCUMENT AND PRINTED AS A HEADING 00089514
|
|
IN THE CHANGE AND REVISION INDICES. 00089516
|
|
* 3 00089518
|
|
DA = PRODUCE THE TITLE, AS ABOVE. ALSO, START NUMBERING THE 00089520
|
|
CHANGE INDEX WITH .15 AND THE REVISION INDEX WITH .2. 00089522
|
|
* 3 00089524
|
|
MAKEMUL = SAME AS MAKEMULTI. 00089600
|
|
* 3 00089700
|
|
MAKEMULTI = A MULTIFILE TAPE OR DISK FILE IS CREATED FROM 00089800
|
|
INPUT SOURCE FILES SPECIFIED BY DATA CARDS. THE USER MAY 00089900
|
|
HAVE ALL OF HIS SOURCE FILES ON DISK OR ALL OF THEM ON TAPE. 00090000
|
|
IN THOSE CASES HE MAY SPECIFY THE <INPUT FILE> ON THE $ CARD. 00090100
|
|
IT IS ALSO POSSIBLE TO HAVE THE INPUT SOURCE FILES ON BOTH TAPE AND 00090200
|
|
DISK. IN THAT CASE THE USER MUST SPECIFY ON EACH DATA CARD WHERE THAT 00090300
|
|
FILE IS TO BE FOUND. 00090400
|
|
* SKIP PARAGRAPH 25,67,0 00090500
|
|
THE SYNTAX FOR THE DATA CARDS IS 00090600
|
|
* SKIP INDENT 20 00090700
|
|
<FILE NAME IN>, <FILE NAME OUT> <INPUT PART> 00090800
|
|
<INPUT PART> := ,<INPUT FILE> / <EMPTY> 00090900
|
|
<FILE NAME IN> ::= <MULTIFILE NAME>/<FILE NAME> 00091000
|
|
<FILE NAME OUT> ::= <MULTIFILE NAME>/<FILE NAME> 00091100
|
|
<MULTIFILE NAME> ::= {GROUP OF CHARACTERS NOT 00091200
|
|
* INDENT 30 00091300
|
|
BEGINNING WITH A SPECIAL CHARACTER 00091400
|
|
AND NOT CONTAINING THE CHARACTERS 00091500
|
|
"/" OR ","} 00091600
|
|
* INDENT 20 00091700
|
|
<FILE NAME> := {SAME AS MULTIFILE NAME} 00091800
|
|
* 2 00091900
|
|
THE CONTROL "LIST" WILL CAUSE A LISTING OF ALL THE FILES MOVED. 00092000
|
|
THE CONTROL "PUNCH" WILL CAUSE A DATA DECK FOR USE WITH THE NEW 00092100
|
|
MULTIFILE FILES. 00092200
|
|
*2 00092300
|
|
IF THE FILE IS BEING CREATED ON TAPE, ALL FILES MUST HAVE THE SAME 00092400
|
|
<MULTIFILE NAME> IN THE <FILE NAME OUT> 00092500
|
|
*2 00092600
|
|
THE WORD "DIRECTORY" WILL CAUSE A DIRECTORY OF THE NEW MULTIFILE 00092700
|
|
REEL OR DISK FILE TO BE WRITTEN AS THE FIRST MULTIFILE FILE. 00092800
|
|
ITS NAME WILL BE <MULTIFILE NAME>/DIRECTORY. 00092900
|
|
* 3 00093000
|
|
PPAGES = WHEN A PAGE OVERFLOW OCCURS IN A DOCUMENT, THE APPROPRIATE 00093100
|
|
RECORDS TO CAUSE EXPLICIT PAGING AT THAT POINT ARE WRITTEN ON THE 00093200
|
|
FILE "PRINT". 00093300
|
|
*3 00093400
|
|
PPAGES PUNCH = THE EXPLICIT PAGING CARDS ARE WRITTEN ON "PUNCH". 00093500
|
|
* 3 00093600
|
|
PPAGES INSERTPAGE = THE EXPLICIT PAGING RECORDS WRITTEN ON "PRINT" 00093700
|
|
ARE THOSE NECESSARY TO CAUSE THE TYPE OF PAGING DESCRIBED UNDER 00093800
|
|
THE CONTROL"INSERTPAGE" IN PART TWO OF THIS DOCUMENT. 00093900
|
|
* 3 00094000
|
|
PPAGES INSERTPAGE PUNCH = EXPLICIT INSERTPAGE CARDS ARE WRITTEN ON 00094100
|
|
"PUNCH". 00094200
|
|
* PAGEID 1,"APP-1-" 00094300
|
|
* 7 00094400
|
|
SAMPLE CROSS REFERENCE LISTINGS. 00094500
|
|
* 13 00094600
|
|
LISTING OF PROCEDURE IDENTIFIERS 00094700
|
|
* SKIP INDENT 10 00094800
|
|
01251000 2 ASTERCONTROLS 00094900
|
|
01785000 1 BEGINCOUNT 00095000
|
|
01190000 1 BITFIELDCONVERT 00095100
|
|
02266000 1 BLANKMARGINS 00095200
|
|
01418000 1 BLANKTEST 00095300
|
|
02119000 1 BUILDRESERVED 00095400
|
|
01893000 1 BUILDXREF 00095500
|
|
01392000 1 CHAREQUAL 00095600
|
|
01400000 1 CHARGREAT 00095700
|
|
01434000 1 CHECKCHAR 00095800
|
|
01450000 1 CHECKCOMMENT 00095900
|
|
01428000 1 CHECKDOLLAR 00096000
|
|
01135000 1 CLEAR 00096100
|
|
01141000 1 CLEARCHAR 00096200
|
|
03110000 1 COPY 00096300
|
|
02285000 1 COUNTABPOS 00096400
|
|
01178000 1 DECTOOCT 00096500
|
|
01252000 2 DOCERROR 00096600
|
|
01184000 1 DTOCT 00096700
|
|
01935000 1 DUMPARRAYROW 00096800
|
|
* 14 00096900
|
|
CROSS REFERENCE STATISTICS. 00097000
|
|
* SKIP 00097100
|
|
TOTAL NUMBER OF POSSIBLE XREF ENTRIES= 5915 00097200
|
|
NUMBER OF WORDS REQUIRED BY SYMBOL TABLE= 2029 00097300
|
|
NUMBER OF XREF ENTRIES PRINTED BELOW= 5915 00097400
|
|
NUMBER OF CARDS CONTAINING XREFS= 2457 00097500
|
|
NUMBER OF CARD IMAGES SCANNED = 4291 00097600
|
|
NUMBER OF IDENTIFIERS = 137 00097700
|
|
NUMBER OF XREF PER FIRST LETTER 00097800
|
|
LETTER COUNT LETTER COUNT LETTER COUNT LETTER COUNT 00097900
|
|
0 0 1 0 2 0 3 0 00098000
|
|
4 0 5 0 6 0 7 0 00098100
|
|
8 0 9 0 # 0 @ 0 00098200
|
|
* INVALID 6 00098300
|
|
Q 0 : 0 > 0 } 0 00098400
|
|
+ 0 A 198 B 423 C 597 00098500
|
|
D 393 E 162 F 246 G 97 00098600
|
|
H 37 I 233 . 0 [ 0 00098700
|
|
& 0 ( 0 < 0 ~ 0 00098800
|
|
| 0 J 31 K 3 L 422 00098900
|
|
M 255 N 463 O 29 P 701 00099000
|
|
Q 182 R 316 $ 0 * 0 00099100
|
|
- 0 ) 0 0 { 0 00099200
|
|
0 / 0 S 547 T 338 00099300
|
|
U 19 V 18 W 38 X 166 00099400
|
|
Y 0 Z 1 , 0 % 0 00099500
|
|
! 0 = 0 ] 0 0 00099600
|
|
* 14 00099700
|
|
LIST OF IDENTIFIERS CROSS REFERENCED 00099800
|
|
* SKIP 00099900
|
|
A ALLOW AND ARRAY A4 00100000
|
|
B BACKUP BACKUPTOG BADRUN BE BEGIN BLANKARRAY BOOLEAN BUILDXREF 00100100
|
|
CASTLINKS CCSEQ CERTAIN CLEAR CLOSE CONTCARD CONTIND 00100200
|
|
DATE DBL DEFINE DEFINES DEFUSETOG DI DISCMCP DO DOCBUFF DOCEDIT DOCER 00100300
|
|
DOCERROR DOCONLY DOCTOG DOCXREFTOG DOLLARFLAG DOUBLETOG DS DXREF 00100400
|
|
DXREFHEAD 00100500
|
|
ELSE END EOPROG ETC EXIT 00100600
|
|
FALSE FERROR FILE FINALDOCTOG FINITOG FIRSTCASTID FIXUNDERLINE FOR 00100700
|
|
FORMAT FORMTOG F7 00100800
|
|
GENERALISED GLOBE GLOSSTOG GO GOODRUN 00100900
|
|
I IF IJUNK IMPLEMENTED IN INVTOG I4 00101000
|
|
LABELUSE LASTDOCER LASTERROR LCSEQ LISTBUFFER LISTCARDTOG LISTOG 00101100
|
|
LISTONLYTOG LIT 00101200
|
|
MAKE MARKER MAXCOLS MORE MOVEWORDS 00101300
|
|
N NEWPAGE NEWTOG NLINES NOSPOTOG NOT NTAPE 00101400
|
|
OCTTODEC OR OUT 00101500
|
|
PAGE PAGETOG PARAGRAPHS PARINDENT PARLOW PATCHFLAG PATCHTOG PATTER PRINT00101600
|
|
PRINTOG PRINTXREF PROCEDURE 00101700
|
|
Q 00101800
|
|
RELEASE REMOTETOG RESEQTOG RESULT 00101900
|
|
SBTOG SC SEQ SEQBLANKTOG SEQSPLIT SEQTOG SEQUENCE SETCHAR SI SINGLE 00102000
|
|
SKIPTOG SORTSCRAMBLE SPACE SPOOUT START STEP STREAM SWITCH S1 S2 00102100
|
|
T TAPE TAPETOG TBUFF THEN TO TOTALERRORS TRUE 00102200
|
|
UNDERBUFF UNDERTOG UNTIL 00102300
|
|
VOIDTOG 00102400
|
|
WDS WRITE 00102500
|
|
XREFHEAD XREFSEQ X16 X2 X22 X40 X8 X80 00102600
|
|
" " " " " ERRORS" " LIST" " SECS" "****" "*" "-" "EOJ XREF" "XXXX" 00102700
|
|
"21 OCT" "3TAB " "4FORM " "5CHECK" "5PATCH" "6FORMA" "6REMOT" "6SINGL" 00102800
|
|
"8TABUL" "9UNDER" 00102900
|
|
* 14 00103000
|
|
BLOCK DIAGRAM. 00103100
|
|
* SKIP 2 SINGLE 00103200
|
|
00001000 BEGIN 00103300
|
|
. 00103400
|
|
01160000 . STREAM PROCEDURE SEQCOMP 00103500
|
|
. 00103600
|
|
01161000 . BEGIN 00103700
|
|
. . 00103800
|
|
01165000 . . BEGIN 00103900
|
|
. . . 00104000
|
|
01168000 . . END 00104100
|
|
. . 00104200
|
|
01170000 . END 00104300
|
|
. 00104400
|
|
01250000 . PROCEDURE READATAPE 00104500
|
|
. 00104600
|
|
01251000 . PROCEDURE ASTERCONTROLS 00104700
|
|
. 00104800
|
|
01252000 . PROCEDURE DOCERROR 00104900
|
|
. 00105000
|
|
01255000 . STREAM PROCEDURE SCANNER 00105100
|
|
. 00105200
|
|
01258000 . BEGIN 00105300
|
|
. . 00105400
|
|
01274000 . . BEGIN 00105500
|
|
. . . 00105600
|
|
01276000 . . END 00105700
|
|
. . 00105800
|
|
01279000 . . BEGIN 00105900
|
|
. . . 00106000
|
|
01279000 . . END 00106100
|
|
. . 00106200
|
|
01286000 . . BEGIN 00106300
|
|
. . . 00106400
|
|
01289000 . . . BEGIN 00106500
|
|
. . . . 00106600
|
|
01293000 . . . END 00106700
|
|
. . . 00106800
|
|
01297000 . . END 00106900
|
|
. . 00107000
|
|
01298000 . . BEGIN 00107100
|
|
. . . 00107200
|
|
01301000 . . END 00107300
|
|
. . 00107400
|
|
01302000 . . BEGIN 00107500
|
|
. . . 00107600
|
|
01308000 . . END 00107700
|
|
. . 00107800
|
|
01313000 . . BEGIN 00107900
|
|
. . . 00108000
|
|
01315000 . . END 00108100
|
|
. . 00108200
|
|
01336000 . END 00108300
|
|
. 00108400
|
|
01604000 . PROCEDURE PRINTCASTDIRECTORY 00108500
|
|
. 00108600
|
|
01605000 . BEGIN 00108700
|
|
. . 00108800
|
|
01612000 . . BEGIN 00108900
|
|
. . . 00109000
|
|
01621000 . . END 00109100
|
|
. . 00109200
|
|
01624000 . END 00109300
|
|
. 00109400
|
|
04106000 END 00109500
|
|
* 14 00109600
|
|
IDENTIFIER CROSS REFERENCE LIST. 00109700
|
|
* SKIP 2 00109800
|
|
BITFIELDCONVERT (000002) *01190000* 02668000 00109900
|
|
DUMPARRAYS (000003) *00750000**01979000* 04065000 00110000
|
|
EOF (000011) 00974000 01505000 02098000 02110000 *02116000* 00110100
|
|
03464000 03479000 03876000 03879000 *03887000* 00110200
|
|
*04028000* 00110300
|
|
FILE (000023) 00727000 00728000 00729000 00730000 00731000 00110400
|
|
00732000 00733000 00734000 00735000 00736000 00110500
|
|
00737000 00738000 00739000 00740000 00741000 00110600
|
|
00742000 00743000 00744000 01019000 01058000 00110700
|
|
01093000 01940000 03413000 00110800
|
|
L (000027) 01028000 01033000 *01034000* 01038000 *01043000* 00110900
|
|
01043000 01066000 01072000 *01073000* 01078000 00111000
|
|
*01082000* 01082000 01259000 *01279000* 01279000 00111100
|
|
01411000 01413000 *01415000* 01421000 01423000 00111200
|
|
*01425000* 02269000 02271000 *02273000* 03432000 00111300
|
|
*03443000* 03446000 00111400
|
|
NEXT (000059) 00973000 01464000 *01479000* 01493000 01497000 00111500
|
|
01629000 01642000 01643000 01645000 02148000 00111600
|
|
02151000 02154000 02154000 02156000 02160000 00111700
|
|
02162000 02165000 02210000 02227000 02228000 00111800
|
|
02230000 02231000 02232000 02233000 02233000 00111900
|
|
02237000 02251000 *02415000* 02430000 02453000 00112000
|
|
02819000 02826000 02854000 *02874000* 02891000 00112100
|
|
02913000 02930000 02979000 02981000 02982000 00112200
|
|
02985000 02992000 03002000 03019000 03029000 00112300
|
|
03049000 03052000 03053000 03060000 03061000 00112400
|
|
03078000 03082000 03083000 03086000 03087000 00112500
|
|
03099000 03105000 *03899000* 04019000 00112600
|
|
READATAPE (000017)*01250000* 01366000 01368000 01371000 02376000 00112700
|
|
02415000 02821000 03159000 03160000 03164000 00112800
|
|
03190000 03285000 03374000 03424000 03425000 00112900
|
|
*03430000* 03855000 00113000
|
|
SCANNER (000002) *01255000* 01346000 00113100
|
|
EOJ XREF NO ERRORS 242.00 SECS 00113200
|
|
* 7 00113300
|
|
SAMPLE ASSEMBLY FLOWCHARTING RUNS 00113400
|
|
* 1 00113500
|
|
THE CONTROL "TRANS" IS USED TO TRANSLATE B3500 ASSEMBLY LANGUAGE 00113600
|
|
PROGRAMS INTO THE XREF FLOWCHART LANGUAGE. 00113700
|
|
THE INPUT FILES, AS USUAL, MAY BE CARD ,TAPE (B5500 BLOCKED 56,10) 00113800
|
|
OR DISK. 00113900
|
|
*1 00114000
|
|
IF THE FIRST NON-BLANK CHARACTER AFTER THE OP CODE 00114100
|
|
FIELD ON ANY "REMK" CARD IS AN ASTERISK,"*", 00114200
|
|
THE INPUT RECORD FROM THAT POINT ON WILL BE WRITTEN 00114300
|
|
UNCHANGED ON THE TRANSLATED FILE. 00114400
|
|
IN THIS WAY ALL THE CONTROLS OF THE FLOWCHART LANGUAGE 00114500
|
|
ARE DIRECTLY AVAILABLE. 00114600
|
|
FOR INSTANCE, A TITLE MAY BE DESIGNATED BY 00114700
|
|
HAVING A CARD 00114800
|
|
* SKIP INDENT 10 00114900
|
|
REMK * TITLE MY PROGRAM * 00115000
|
|
*1 00115100
|
|
OR THE NUMBER OF COLUMNS TO BE PRINTED PERPAGE 00115200
|
|
MAY BE ASSIGNED BY THE FOLLOWING CARD: 00115300
|
|
* SKIP INDENT 10 00115400
|
|
REMK * MAXCOL 2 * 00115500
|
|
* 1 00115600
|
|
IF ONLY THE FINAL FLOWCHART 00115700
|
|
OUTPUT IS DESIRED, THE CONTROL "$ TAPE TRANS ASMFLOW" MAY 00115800
|
|
BE USED. IF, ON THE OTHER HAND, THE FLOWCHART LANGUAGE FILE IS DESIRED 00115900
|
|
FOR LATER HAND-PATCHING, "$ TAPE NEW DISK TRANS" SHOULD BE USED. 00116000
|
|
IN THE LATTER CASE A SEPARATE RUN TO DRAW THE FLOWCHART WILL 00116100
|
|
BE NECESSARY, USING THE CONTROL 00116200
|
|
"$ DISK ASMFLOW". 00116300
|
|
SEVERAL OPTIONS MAY IN EITHER CASE FOLLOW THE 00116400
|
|
WORD "TRANS": 00116500
|
|
*SKIP 00116600
|
|
$ TAPE TRANS ESCAPE # SEGS 1*ASMFLOW 00116700
|
|
*6 00116800
|
|
TRANSLATES AND DRAWS ONLY SEGMENT 1 AND IGNORES 00116900
|
|
REMARKS BEGINNING WITH "#". 00117000
|
|
* SKIP 00117100
|
|
$ CARD LIST NEW DISK TRANS SEGS 1, 3-6 * DATA 00117200
|
|
* 6 00117300
|
|
TRANSLATES SEGMENTS 1,3,4,5,6 AND PRINTS CONSTANTS AS TABLES. 00117400
|
|
* SKIP 00117500
|
|
$ DISK NEW DISK TRANS ESCAPE 3 # DEBUG * 00117600
|
|
* 6 00117700
|
|
TRANSLATES ALL SEGMENTS, IGNORING REMARKS BEGINNING WITH 00117800
|
|
"#" OR "DEBUG" AND REMARK FIELDS BEGINNING WITH "*". 00117900
|
|
* 7 00118000
|
|
USE OF THE UPDATE FEATURE 00118100
|
|
* 1 00118200
|
|
THE MAIN REQUIREMENTS FOR USING THE UPDATE-MERGE FEATURE 00118300
|
|
FOR UPDATING DOCUMENTS AND FLOWCHARTS ARE: 00118400
|
|
*6 00118500
|
|
1. ORIGINAL FILES MUST HAVE AN EXPLICIT 00118600
|
|
"* PAGE", "* OVER PAGE", 00118700
|
|
OR "* INSERTPAGE" CONTROL AT EACH PAGE BREAK(SEE BELOW). 00118800
|
|
*6 00118900
|
|
2. THE ORIGINAL 00119000
|
|
DOCUMENT MUST BE CREATED TO BACKUP DISK FROM AN UNPATCHED 00119100
|
|
TAPE OR DISK SOURCE, USING THE CONTROL "DOCUMENT UPDATE". 00119200
|
|
THE UPDATED OR "NEW" DOCUMENT SHOULD THEN BE CREATED 00119300
|
|
FROM THE SAME SOURCE FILE AND WITH THE SAME $ CARD BUT 00119400
|
|
USING A PATCH DECK AND A DIFFERENT LABEL-EQUATION CARD 00119500
|
|
FOR "BACKUPDISK". 00119600
|
|
* 6 00119700
|
|
* 1 00119800
|
|
AFTER THE MERGE RUN IS MADE, THE FILE WHICH WAS 00119900
|
|
THE NEW DOCUMENT SHOULD BE SAVED, SINCE FOR THE NEXT PATCH LEVEL IT 00120000
|
|
WILL BE THE OLD DOCUMENT (AND THEN ONLY THEN NEW 00120100
|
|
DOCUMENT NEED BE CREATED). 00120200
|
|
ALSO, A NEW TAPE SHOULD BE MADE, USING THE 00120300
|
|
PATCH DECK, SO THAT ONLY FURTHER CHANGES WILL SHOW UP 00120400
|
|
IN THE NEXT UPDATE. 00120500
|
|
*1 00120600
|
|
SINCE " * PAGE" CARDS ARE REQUIRED ON THE SYMBOLIC, 00120700
|
|
A SPECIAL CONTROL EXISTS TO PUNCH THEM OUT DURING 00120800
|
|
A DOCUMENT RUN. 00120900
|
|
THIS CONTROL, "PPAGES PUNCH", WILL PUNCH 00121000
|
|
" * OVER PAGE" CARDS WITH APPROPRIATE SEQUENCE NUMBERS 00121100
|
|
WHENEVER AUTOMATIC PAGING OCCURS. IF A CARD OF INPUT CONTRIBUTES 00121200
|
|
TWO SUCCESSIVE DOCUMENT PAGES, THE CARD IS SPLIT UP AND PUNCHED. 00121300
|
|
A SAMPLE DOLLAR CARD FOR SUCH A RUN IS "$ TAPE PPAGES PUNCH DOCUMENT". 00121400
|
|
THE CARDS PUNCHED SHOULD BE USED AS PATCH CARDS TO 00121500
|
|
MAKE THE ORIGINAL SOURCE FILE TAPE FOR UPDATE RUNS. 00121600
|
|
*13 00121700
|
|
SAMPLE UPDATE RUN 00121800
|
|
* SKIP 00121900
|
|
CREATION OF OLD DOCUMENT 00122000
|
|
* INDENT 5 00122100
|
|
*INVALID 1 00122200
|
|
Q EXECUTE XREF/JONES 00122300
|
|
* INVALID 1 00122400
|
|
Q FILE TAPE = MYTAPE 00122500
|
|
* INVALID 1 00122600
|
|
Q FILE BACKUPDISK = OLD 00122700
|
|
* INVALID 1 00122800
|
|
Q FILE CARD = MYCARD 00122900
|
|
* INVALID 1 00123000
|
|
Q DATA MYCARD 00123100
|
|
$ TAPE BACKUP DISK DOCUMENT UPDATE REVISION 00123200
|
|
("NINES" CARD) 00123300
|
|
* INVALID 1 00123400
|
|
Q END. 00123500
|
|
* SKIP 00123600
|
|
CREATION OF NEW DOCUMENT 00123700
|
|
* INDENT 5 00123800
|
|
* INVALID 1 00123900
|
|
Q EXECUTE XREF/JONES 00124000
|
|
* INVALID 1 00124100
|
|
Q FILE TAPE = MYTAPE 00124200
|
|
* INVALID 1 00124300
|
|
Q FILE BACKUPDISK = NEW 00124400
|
|
* INVALID 1 00124500
|
|
Q FILE CARD = MYCARD2 00124600
|
|
* INVALID 1 00124700
|
|
Q DATA MYCARD2 00124800
|
|
$ TAPE BACKUP DISK DOCUMENT UPDATE REVISION 00124900
|
|
( PATCH CARDS, ENDING WITH "NINES" CARD) 00125000
|
|
* INVALID 1 00125100
|
|
Q END. 00125200
|
|
* SKIP 00125300
|
|
NOW ANY VARIETY OF MERGE CAN BE MADE, EG: 00125400
|
|
* INDENT 5 00125500
|
|
* INVALID 1 00125600
|
|
Q EXECUTE XREF/JONES 00125700
|
|
* INVALID 1 00125800
|
|
Q FILE OLDDOC = OLD 00125900
|
|
* INVALID 1 00126000
|
|
Q FILE NEWDOC= NEW 00126100
|
|
* INVALID 1 00126200
|
|
Q DATA CARD 00126300
|
|
$ MERGE 00126400
|
|
("NINES" CARD ) 00126500
|
|
* INVALID 1 00126600
|
|
Q END. 00126700
|
|
* 13 00126800
|
|
OTHER MERGE EXAMPLES 00126900
|
|
* SKIP 00127000
|
|
$ MERGE PRINTSELECT 1,10,16* 00127100
|
|
* 6 00127200
|
|
DOES MERGE RUN BUT PRINTS ONLY PAGES 1,10,AND 16. 00127300
|
|
IF THERE ARE DUPLICATE PAGE NUMBERS, ALL WILL BE PRINTED. 00127400
|
|
* SKIP 00127500
|
|
$ MERGE PRINTSELECT 2* ONLY 00127600
|
|
*6 00127700
|
|
ONLY PAGE 2 IS PRINTED FROME OLDDOC , AND NO MERGE IS MADE. 00127800
|
|
* SKIP 00127900
|
|
$ MERGE DIRECTORY 00128000
|
|
* 6 00128100
|
|
THIS WILL WRITE OUT A DIRECTORY OF THE PAGES ON 00128200
|
|
"OLDDOC" AS WELL AS PERFORMING THE STANDARD MERGE. 00128300
|
|
* FINISH ; 00128400
|
|
COMMENT * CONTROL CARDS ; 00128500
|
|
COMMENT DOCUMENT "PART 2" 00128600
|
|
* UNDERLINE TITLE CENTER 00128700
|
|
E.T.M. 279 (20 NOV 1965). 00128800
|
|
* DEFINE 1 = SKIP 2 PARAGRAPH 5,67,0 * 00128900
|
|
* DEFINE 2 = SKIP PAR * 00129000
|
|
* DEFINE 3 = SKIP GLOSSARY 5,25,67 * 00129100
|
|
* DEFINE 4 = SKIP GLOS * 00129200
|
|
* DEFINE 5 = SKIP GLOSSARY 8,30,67 * 00129300
|
|
* DEFINE 6 = SKIP PARAGRAPH 20,67,0 * 00129400
|
|
* DEFINE 7 = PAGE INDEX UNDERLINE * 00129500
|
|
* DEFINE 8 = SKIP GLOSSARY 10,25,67 * 00129600
|
|
* DEFINE 9 = SKIP GLOSSARY 10,35,67 * 00129700
|
|
* DEFINE 10 = SKIP 2 TAB 5, 25, 45 * 00129800
|
|
* DEFINE 11 = SKIP 2 TAB 5,35 * 00129900
|
|
* DEFINE 12 = SKIP 2 TAB 5 * 00130000
|
|
* DEFINE 13 = SKIP 2 INDENT 3 INDEX UNDERLINE * 00130100
|
|
* DEFINE 14 = PAGE INDENT 3 INDEX UNDERLINE * 00130200
|
|
* PAGEID 1," 2-" 00130300
|
|
* PAGE CENTER UNDERLINE 00130400
|
|
A CROSS REFERENCE,FLOW CHART AND DOCUMENT EDITING PROGRAM (PART TWO). 00130500
|
|
* SKIP CENTER TITLE CLEAR 00130600
|
|
BY GLYN HUGH JONES AND JOAN G. DUNSHEE 00130700
|
|
* SKIP CENTER 00130800
|
|
TECHNICAL STAFF 00130900
|
|
BURROUGHS CORPORATION 00131000
|
|
PASADENA 00131100
|
|
* SKIP 3 INDEX CENTER UNDERLINE 00131200
|
|
SUMMARY 00131300
|
|
* 1 00131400
|
|
A SYNTACTICALLY DEFINED DOCUMENTATION LANGUAGE IS DESCRIBED 00131500
|
|
TOGETHER WITH A DESCRIPTION 00131600
|
|
OF THE FACILITIES PRESENTLY AVAILABLE FOR GENERATING AND MAINTAINING 00131700
|
|
DOCUMENTS ON A BURROUGHS B5500 COMPUTER. 00131800
|
|
* SKIP 6 TAB 2,40 00131900
|
|
AUTHORS:/APPROVED:/ 00132000
|
|
* SKIP 4 TAB 2,40 00132100
|
|
-------------------- / -------------------- / 00132200
|
|
GLYN H. JONES AND/ J. F. KALBACH/ 00132300
|
|
* SKIP TAB 2,40 00132400
|
|
JOAN G. DUNSHEE/ MANAGER,TECHNICAL STAFF/ 00132500
|
|
* SKIP 1 INDENT 30 00132600
|
|
ORIGINAL ISSUE JAN.25, 1965 00132700
|
|
FIRST REVISED ISSUE OCT. 27, 1965 00132800
|
|
SECOND REVISED ISSUE NOV. 21, 1966 00132900
|
|
THIRD REVISED ISSUE OCT.7, 1968 00132910
|
|
* 7 00133000
|
|
INTRODUCTION 00133100
|
|
* 2 00133200
|
|
THERE HAS ALWAYS BEEN A NEED TO AUTOMATE 00133300
|
|
(AS FAR AS POSSIBLE) THE 00133400
|
|
GENERATION AND UPDATING OF DOCUMENTATION RELATING TO THE DESCRIPTION 00133500
|
|
AND OPERATION OF COMPUTER PROGRAMS. 00133600
|
|
* 2 00133700
|
|
MANY PROBLEMS ARISE WHEN PROGRAM SOURCE DECKS ARE MODIFIED AND THE 00133800
|
|
CORRESPONDING DOCUMENTATION CHANGES ARE NOT MADE. THE PURPOSE 00133900
|
|
OF THE DOCUMENT EDITING AND INDEXING PROGRAM DESCRIBED IN THIS NOTE IS 00134000
|
|
TO ATTEMPT 00134100
|
|
TO MINIMIZE SUCH PROBLEMS BY COMBINING THE PROGRAM SOURCE 00134200
|
|
INPUT AND DOCUMENTATION INPUT ON ONE FILE. 00134300
|
|
* 2 00134400
|
|
A FREE FIELD DOCUMENT CONTROL LANGUAGE HAS BEEN DESIGNED TO ALLOW 00134500
|
|
MOST OF THE EDITING FUNCTIONS AVAILABLE TO A TECHNICAL EDITOR AND 00134600
|
|
WHICH ALSO ALLOWS THE DOCUMENT ITSELF TO BE IN FREE FIELD FORMAT. 00134700
|
|
* 2 00134800
|
|
MOST PROBLEM ORIENTED PROGRAMMING LANGUAGES ALLOW THE INCLUSION OF 00134900
|
|
COMMENTS WITHIN THE SOURCE LANGUAGE INPUT. THIS FEATURE IS UTILIZED BY 00135000
|
|
THE EDITING PROGRAM. THE EDITING PROGRAM SCANS A GIVEN SOURCE PROGRAM 00135100
|
|
INPUT AND IDENTIFIES SUCH COMMENTS WHICH HAVE BEEN FLAGGED AS 00135200
|
|
DOCUMENTATION COMMENTS. EMBEDDED WITHIN THESE COMMENTS ARE THE SPECIAL 00135300
|
|
EDITING CONTROLS (THESE ARE SYNTACTICALLY DEFINED BELOW). 00135400
|
|
* 2 00135500
|
|
THE EDITING PROGRAM IS PRESENTLY SET UP TO SCAN EXTENDED ALGOL PROGRAMS 00135600
|
|
WRITTEN FOR THE B5500. HOWEVER, THE PROGRAM CAN BE EASILY MODIFIED TO 00135700
|
|
SCAN ANY PROGRAMMING LANGUAGE SOURCE INPUT. 00135800
|
|
* SKIP CENTER 00135900
|
|
THIS NOTE IS PRODUCED BY THE EDITING PROGRAM. 00136000
|
|
* 7 00136100
|
|
MINIMUM SPECIFICATIONS FOR A DOCUMENT EDITING LANGUAGE 00136200
|
|
* 2 00136300
|
|
THE LANGUAGE SHOULD BE SIMPLE AND RIGOROUS (FREE FROM AMBIGUITIES). 00136400
|
|
* 2 00136500
|
|
NO FIXED FIELD FORMATS SHOULD BE REQUIRED APART FROM THE 00136600
|
|
RESTRICTIONS REQUIRED BY THE SIZE OF THE PHYSICAL INPUT MEDIA SUCH AS 00136700
|
|
72 COLUMNS OF A CARD. 00136800
|
|
* 2 00136900
|
|
THE CHARACTER SET SHOULD ONLY BE LIMITED BY THE SET AVAILABLE ON A GIVEN00137000
|
|
COMPUTER PRINTER. 00137100
|
|
* 2 00137200
|
|
DELETIONS,ADDITIONS AND CHANGES SHOULD BE ALLOWED AT ANY PLACE WITHIN 00137300
|
|
THE DOCUMENT. 00137400
|
|
* 2 00137500
|
|
A TABLE OF CONTENTS ( AND POSSIBLY A SELECTED NAME INDEX) SHOULD 00137600
|
|
BE GENERATED AUTOMATICALLY BY THE EDITING PROGRAM. 00137700
|
|
* 7 00137800
|
|
SYNTAX CONVENTIONS. 00137900
|
|
*1 00138000
|
|
THE SYNTAX OF THE CONTROL CARD 00138100
|
|
LANGUAGE IS DESCRIBED THROUGH THE USE OF METALINGUISTI00138200
|
|
C SYMBOLS. THESE SYMBOLS HAVE THE FOLLOWING MEANINGS: 00138300
|
|
* 1 00138400
|
|
LEFT AND RIGHT BROKEN BRACKETS "<" AND ">" ARE USED TO CONTAIN ONE 00138500
|
|
OR MORE CHARACTERS REPRESENTING A METALINGUISTIC VARIABLE WHOSE VALUE 00138600
|
|
IS GIVEN BY A METALINGUISTIC FORMULA. 00138700
|
|
*1 00138800
|
|
THE SYMBOL "::=" MEANS "IS DEFINED TO BE" AND SEPARATES THE METALINGUIST00138900
|
|
IC VARIABLE ON THE LEFT OF THE FORMULA FROM ITS DEFINITION ON THE 00139000
|
|
RIGHT. 00139100
|
|
*1 00139200
|
|
THE SYMBOL "/" MEANS "OR". THIS SYMBOL SEPARATES MULTIPLE DEFINITIONS 00139300
|
|
OF A METALINGUISTIC VARIABLE. 00139400
|
|
*1 00139500
|
|
LESS-THAN-OR-EQUAL AND GREATER-THAN-OR-EQUAL SIGNS, "{" AND"}", ARE 00139600
|
|
USED TO ENCLOSE METALINGIUSTIC VARIABLES 00139700
|
|
WHICH ARE DEFINED BY THE MEANING OF THE ENGLISH LANGUAGE EXPRESSION 00139800
|
|
CONTAINED WITHIN THE BRACES. THIS FORMULATION IS USED ONLY WHEN IT IS 00139900
|
|
IMPOSSIBLE OR IMPRACTICAL TO USE A METALINGUISTIC FORMULA. 00140000
|
|
* 1 00140100
|
|
THE BRACKETS "[" AND "]" ARE USED TO ENCLOSE GROUPS OF 00140200
|
|
METALINGUISTIC VARIABLES WHICH MAY BE PERMUTED IN ANY ORDER. EXAMPLE: 00140300
|
|
* SKIP 00140400
|
|
<D> ::= [<A> B <C>] IS EQUIVALENT TO :- 00140500
|
|
* SKIP 00140600
|
|
<D> ::= <A> B <C> / <A> <C> B / 00140700
|
|
B <A> <C> / B <C> <A> / 00140800
|
|
<C> <A> B / <C> B <A> 00140900
|
|
*1 00141000
|
|
THE ABOVE METALINGUISTIC SYMBOLS ARE USED IN FORMING A METALINGUISTIC FO00141100
|
|
RMULA. A METALINGUISTIC FORMULA IS A RULE WHICH WILL PRODUCE AN ALLOWAB00141200
|
|
LE SEQUENCE OF CHARACTERS AND/OR SYMBOLS. THE ENTIRE SET OF SUCH FORMUL00141300
|
|
AS DEFINES THE CONSTRUCTS OF THE CONTROL CARDS. 00141400
|
|
*1 00141500
|
|
ANY MARK OR SYMBOL IN A METALINGUISTIC FORMULA WHICH IS NOT ONE OF THE A00141600
|
|
BOVE METALINGUISTIC SYMBOLS DENOTES ITSELF. 00141700
|
|
*1 00141800
|
|
CONTROL CARD 00141900
|
|
CONVENTIONS USED IN WRITING SYNTAX ARE ILLUSTRATED BY THE FOLLOWING 00142000
|
|
EXAMPLE: 00142100
|
|
* SKIP 00142200
|
|
<IDENTIFIER> ::= <LETTER> / <IDENTIFIER><LETTER> / <IDENTIFIER><DIGIT> 00142300
|
|
*1 00142400
|
|
THIS METALINGUISTIC FORMULA IS READ AS FOLLOWS: AN IDENTIFIER IS D00142500
|
|
EFINED TO BE A LETTER, OR AN IDENTIFIER FOLLOWED BY A LETTER, OR AN IDEN00142600
|
|
TIFIER FOLLOWED BY A DIGIT. 00142700
|
|
*1 00142800
|
|
THE METALINGUISTIC FORMULA DEFINES A RECURSIVE RELATIONSHIP BY WHICH A C00142900
|
|
ONSTRUCT CALLED AN IDENTIFIER MAY BE FORMED. EVALUATION OF THE FORMULA 00143000
|
|
SHOWS THAT AN IDENTIFIER BEGINS WITH A LETTER. THE LETTER MAY STAND ALON00143100
|
|
E, OR MAY BE FOLLOWED BY ANY MIXTURE OF LETTERS AND DIGITS. 00143200
|
|
* 7 00143300
|
|
DOCUMENT CONTROL CARD SYNTAX 00143400
|
|
* SKIP 00143500
|
|
<DOCUMENT CONTROL CARD> ::= * <CONTROL INFO> / * <DEFINE INDEX> / 00143600
|
|
* DEFINE <DEFINE INDEX> = <CONTROL INFO> * 00143700
|
|
<DEFINE INDEX> ::= <UNSIGNED INTEGER> 00143800
|
|
<CONTROL INFO> ::= <CLOSE PART> / [<HEADING PART> <TAB HEAD> 00143900
|
|
<VERTICAL PAPER CONTROLS> <REVISION PART> 00144000
|
|
<CODESEQ PART> 00144010
|
|
<HORIZONTAL EDITING PART><SPECIAL PART> 00144100
|
|
<PAGE REVISION PART>] / INVALID CHAR PART> <ALL PART> / 00144200
|
|
NAMES / <OVER PART> 00144300
|
|
<CLOSE PART> ::= END / QUIT / FINISH 00144400
|
|
<INVALID CHAR PART> ::= INVALID <INVALID COL> / 00144500
|
|
<INVALID CHAR PART> <SEPARATOR> <INVALID COL> 00144600
|
|
<INVALID COL> ::= <UNSIGNED INTEGER> 00144700
|
|
<ALL PART> ::= ALL / <EMPTY> 00144710
|
|
<OVER PART> ::= OVER PAGE <PAGE SKIP COUNT> / OVER <INSERT PART> 00144800
|
|
<REVISION PART> ::= REV <REVISION LETTER> 00144900
|
|
/ REV <REVISION LETTER> LEAVE 00145000
|
|
<REVISION LETTER> ::= <LETTER> / * 00145100
|
|
<PAGE REVISION PART> ::= REVISION <REVISION NUMBER> / 00145200
|
|
REVISION CLEAR <REVISION NUMBER> 00145300
|
|
<REVISION NUMBER> ::= <UNSIGNED INTEGER> / <EMPTY> 00145400
|
|
<SPECIAL PART> ::= SYNTAX / SYNTAX ONLY /<EMPTY> 00145500
|
|
<HEADING PART> ::= TITLE <COL SKIP COUNT> / INDEX <INDEX LINE COUNT> / 00145600
|
|
INDEX ONLY / INDEX WORDS <UNSIGNED INTEGER> / 00145700
|
|
TITLE CLEAR / <EMPTY> 00145710
|
|
<COL SKIP COUNT> ::= <UNSIGNED INTEGER> / <EMPTY> 00145800
|
|
<INDEX LINE COUNT> ::= <UNSIGNED INTEGER> / <EMPTY> 00145900
|
|
<TAB HEAD> ::= TABHEAD <TAB HEAD COUNT> <TAB HEAD LINE POSITION> 00146000
|
|
/ TABHEAD CLEAR 00146100
|
|
/ TABHEAD CLEAR <TAB CLEAR COUNT> 00146102
|
|
<TAB HEAD COUNT> ::= <UNSIGNED INTEGER> / <EMPTY> 00146200
|
|
<TAB HEAD LINE POSITION> ::= , <UNSIGNED INTEGER> / < EMPTY> 00146300
|
|
<TAB CLEAR COUNT> ::= <UNSIGNED INTEGER> 00146302
|
|
<VERTICAL PAPER CONTROLS> ::= [<DATE PART> <SKIP PART> <UNDERLINE PART> 00146400
|
|
<DOC LINE CONTROLS> <PAGE CONTROL>] 00146500
|
|
<DATE PART> ::= DATE / DATE CLEAR / <EMPTY> 00146600
|
|
<PAGE PART> ::= PAGE <PAGE SKIP COUNT> / PAGE NO / <PAGEID PART> / 00146700
|
|
ENDPAGE <ROW SKIP COUNT> / <INSERT PART> / <EMPTY> 00146800
|
|
<PAGEID PART> ::= PAGEID <PAGE NUMBER>, <ID POSITION> <PAGE IDENT> 00146900
|
|
<PAGE INCREMENT> ::= <UNSIGNED INTEGER> / <EMPTY> 00147000
|
|
<PAGE SKIP COUNT> ::= <UNSIGNED INTEGER> / <EMPTY> 00147100
|
|
<PAGE NUMBER> ::= <UNSIGNED INTEGER> 00147200
|
|
<ID POSITION> ::= + / <EMPTY> 00147300
|
|
<PAGE IDENT> ::= { A STRING OF UP TO SIX CHRACTERS BOUNDED BY QUOTES} 00147400
|
|
<PAGE CONTROL> ::= PAGEINC <PAGE INCREMENT> <PAGE PART> 00147500
|
|
<PAGE NMBR FORMAT> 00147600
|
|
<INSERT PART> ::= INSERTPAGE <PAGE NUMBER> <INSERT SKIP COUNT> 00147700
|
|
/ INSERTPAGE 00147800
|
|
<INSERT SKIP COUNT> ::= , <PAGE SKIP COUNT> / <EMTY> 00147900
|
|
<PAGE NMBR FORMAT> ::= DECIMALS <PLACES> <SUPPRESS PART> / DECIMALS 00148000
|
|
<SUPPRESS PART> / <EMPTY> 00148100
|
|
<PLACES> ::= {UNSIGNED INTEGER EIGHT OR LESS} 00148200
|
|
<SUPPRESS PART> ::= SUPPRESS / <EMPTY> 00148300
|
|
<SKIP PART> ::= SKIP <ROW SKIP COUNT> / <EMPTY> 00148400
|
|
<ROW SKIP COUNT> ::= <UNSIGNED INTEGER> / <EMPTY> 00148500
|
|
<UNDERLINE PART> ::= UNDERLINE / <EMPTY> 00148600
|
|
<DOC LINE CONTROLS> ::= SINGLE / DOUBLE / <EMPTY> 00148700
|
|
00148800
|
|
<PAGE LINE COUNT> ::= <UNSIGNED INTEGER> / <EMPTY> 00148900
|
|
<HORIZONTAL EDITING PART> ::= [<PERCENT PART> <LINE EDITING PART>] / 00149000
|
|
<TEXT EDITING PART> 00149100
|
|
<PERCENT PART> ::= PERCENT / <EMPTY> 00149200
|
|
<LINE EDITING PART> ::= CENTER / CENTRE / INDENT <COL SKIP COUNT> / 00149300
|
|
WIDE / <TAB PART> / <FORMAT PART> 00149400
|
|
<FORMAT PART> ::= <FORMAT SPECIFIER> <FORMAT COL> / 00149500
|
|
<FORMAT PART> <SEPARATOR> <FORMAT COL> 00149600
|
|
<FORMAT SPECIFIER> ::= FORM / FORMAT 00149700
|
|
<FORMAT COL> ::= <UNSIGNED INTEGER> 00149800
|
|
<TAB PART> ::= <TAB SPECIFIER> <TAB COL> / 00149900
|
|
<TAB PART> <SEPARATOR> <TAB COL> 00150000
|
|
<TAB SPECIFIER> ::= TAB / TABULATE 00150100
|
|
<TAB COL> ::= <UNSIGNED INTEGER> 00150200
|
|
<SEPARATOR> ::= <EMPTY> / , / - 00150300
|
|
<TEXT EDITING PART> ::= <PARAGRAPH PART> / <GLOSSARY PART> / 00150400
|
|
<PATTERN PART> / <CODE PART> 00150500
|
|
<PATTERN PART> ::= PATTERN / PATTERN GLOS 00150600
|
|
<CODESEQ PART> ::= CODESEQ / NOCODESEQ 00150610
|
|
<CODE PART> ::= CODE / CODE <CODE LINE COUNT> 00150700
|
|
/ <CODEPERCENT> 00150710
|
|
<CODE LINE COUNT> ::= <UNSIGNED INTEGER> 00150800
|
|
<GLOSSARY PART> ::= GLOSSARY <GLOSSARY PARAMETERS> / GLOS 00150900
|
|
<GLOSSARY PARAMETERS> ::= <GLOS TERM MARGIN> / 00151000
|
|
<GLOS TERM MARGIN>, <LEFT MARGIN> / 00151100
|
|
<GLOS TERM MARGIN>, <LEFT MARGIN>, 00151200
|
|
<LAST PRINT COL> / <EMPTY> 00151300
|
|
<GLOS TERM MARGIN> ::= <UNSIGNED INTEGER> 00151400
|
|
<PARAGRAPH PART> ::= PAR / PARAGRAPH <PARAGRAPH ID PART> 00151500
|
|
<PARAGRAPH MARGINS> 00151600
|
|
<PARAGRAPH ID PART> ::= - / <EMPTY> 00151700
|
|
<PARAGRAPH MARGINS> ::= <LEFT MARGIN> / <LEFT MARGIN> , <LAST PRINT COL>00151800
|
|
/ <LEFT MARGIN>, <LAST PRINT COL>, 00151900
|
|
<PARAGRAPH INDENT> / <EMPTY> 00152000
|
|
<LEFT MARGIN> ::= <UNSIGNED INTEGER> 00152100
|
|
<LAST PRINT COL> ::= <UNSIGNED INTEGER> 00152200
|
|
<PARAGRAPH INDENT> ::= <UNSIGNED INTEGER> 00152300
|
|
<LETTER> ::= A/B/C/D/E/F/G/H/I/J/K/L/M/O/P/Q/R/S/T/U/V/W/X/Y/Z 00152400
|
|
<IDENTIFIER> ::= <LETTER> / <IDENTIFIER><LETTER> / <IDENTIFIER><DIGIT> 00152500
|
|
<DIGIT> ::= 0/1/2/3/4/5/6/7/8/9 00152600
|
|
<UNSIGNED INTEGER> ::= <DIGIT> / <UNSIGNED INTEGER><DIGIT> 00152700
|
|
* 7 00152800
|
|
EXAMPLES OF DOCUMENT CONTROL CARDS. 00152900
|
|
* 10 00153000
|
|
* PAGE / * PAGE 3 / * PAGE NO / 00153100
|
|
* TITLE / * TITLE CLEAR // 00153200
|
|
* END / * FINISH / * QUIT / 00153300
|
|
* SKIP / * SKIP 3 // 00153400
|
|
* UNDERLINE/ * SINGLE / * PERCENT / 00153500
|
|
* INVALID 3 / * INVALID 3, 10 / / 00153600
|
|
* CODE / * CODE 5 // 00153700
|
|
* INDEX / * INDEX 3 // 00153800
|
|
* INDENT 10 / * CENTER / * CENTRE / 00153900
|
|
* INDEX CENTER / * CENTER INDEX // 00154000
|
|
* TAB 5,25 00154100
|
|
* REVISION 1/ * PAGEINC 100 DECIMALS 2// 00154200
|
|
* TAB 5,25,45 00154300
|
|
* TABHEAD 2,1/ * TABHEAD CLEAR// 00154400
|
|
* 11 00154500
|
|
* PAGEID 3, + " OF 14" / * PAGEID 0, " I-" // 00154600
|
|
* TAB 3,10,20,40 / * TABULATE 6, 40 , 50 / 00154700
|
|
* FORM 3 , 10 20, 40 / * FORMAT 6, 40 , 50 / 00154800
|
|
* PARAGRAPH 5, 65 / * PARAGRAPH 5,65, 0 / 00154900
|
|
* PARAGRAPH - 10 , 60 / * PAR / 00155000
|
|
* GLOSSARY 5, 15 , 60 / * GLOS / 00155100
|
|
* PATTERN / * PATTERN GLOS / 00155200
|
|
* 12 00155300
|
|
* DEFINE 1 = PAGE SKIP 2 PARAGRAPH 5, 56 * / 00155400
|
|
* DEFINE 10 = INDEX 2 CENTER SKIP 2 * / 00155500
|
|
* 10 00155600
|
|
* 1 / * 10 / * 12 / 00155700
|
|
* 7 00155800
|
|
DOCUMENT CONTROL CARD SEMANTICS 00155900
|
|
* 1 00155910
|
|
THE FIRST RECORD OF EACH DOCUMENT STARTS WITH "COMMENT DOCUMENT" 00155912
|
|
AND TERMINATES WITH AN "* QUIT" OR "* FINISH". EACH 00155914
|
|
DOCUMENT MAY BE IDENTIFIED BY A STRING NAME, E.G., 00155916
|
|
COMMENT DOCUMENT "PART 1". GROUPS OF CONSECUTIVE 00155918
|
|
DOCUMENTS OR A SINGLE DOCUMENT MAY BE GENERATED BY APPROPRIATE USE 00155920
|
|
OF THE <DOCUMENT EDIT TYPE> DESCRIBED IN PART 1 OF THIS MANUAL. 00155922
|
|
* 1 00155924
|
|
NORMALLY THE DEFINES TABLES ARE CLEARED AT THE START OF EACH NEW 00155926
|
|
DOCUMENT. A SET OF GLOBAL DEFINES MAY BE USED BY STARTING A 00155928
|
|
DOCUMENT WITH "COMMENT DOCUMENT DEFINES". THE DEFINE 00155930
|
|
TABLES ARE THEN NOT CLEARED AT THE START OF EACH SUSEQUENT DOCUMENT. 00155932
|
|
NEW DEFINES OCCURING IN SUBSEQUENT DOCUMENTS ARE ADDED TO THE DEFINE 00155934
|
|
TABLE AND CHANGES TO DEFINES REMAIN AS CHANGES IN THE TABLE. 00155936
|
|
* 1 00156000
|
|
THE DOCUMENT CONTROLS MAY BE DIVIDED INTO TWO OPERATIONAL CLASSES. 00156100
|
|
SOME CONTROLS GOVERN THE ACTION TO BE TAKEN WITH THE 00156200
|
|
FOLLOWING RECORD (OR A SPECIFIED NUMBER OF RECORDS) AND OTHERS ARE 00156300
|
|
OPERATIVE UNTIL A NEW DOCUMENT CONTROL RECORD IS READ. 00156400
|
|
WHEN AN "* CONTROL" IS READ ALL TOGGLES ARE RESET AND IF NON OF THE 00156500
|
|
ITEMS ON THE CONTROL ARE RECOGNISED A "STRAIGHT" LISTING WILL BE GIVEN. 00156600
|
|
* 2 00156700
|
|
CONTROLS OF THE FIRST TYPE INCLUDE :- PAGE, PAGEID, INDEX, INDEX N, 00156800
|
|
CODE N, TITLE, SKIP N, DEFINE, DEFINE INDEX, UNDERLINE (SOME CASES), 00156900
|
|
AND INVALID. 00157000
|
|
* 2 00157100
|
|
CONTROLS OF THE SECOND TYPE INCLUDE :- PARAGRAPH, GLOSSARY, TABULATE, 00157200
|
|
FORMAT, INDENT N, CENTER, SINGLE, CODE, PATTERN, PERCENT. 00157300
|
|
* 2 00157400
|
|
CONTROLS OF BOTH TYPES MAY BE INCLUDED ON ANY DOCUMENT CONTROL RECORD 00157500
|
|
(SUBJECT TO THE SYNTAX PRINTED ABOVE). 00157600
|
|
*2 00157700
|
|
IF MORE THAN ONE "* CONTROL" PRECEDES A GIVEN SECTION OF TEXT, 00157800
|
|
THE LAST ONE WILL DETERMINE THE FORMAT. 00157900
|
|
* 1 00158000
|
|
THERE ARE TWO "MODES" BY WHICH THE DOCUMENT INPUT IS EXAMINED AND THE 00158100
|
|
DOCUMENT PRINTED, THEY ARE :- 00158200
|
|
* SKIP INDENT 10 UNDERLINE 00158300
|
|
(1) "SCANNING" MODE. 00158400
|
|
* 2 00158500
|
|
THE SOURCE INPUT IS "SCANNED" AND ALL UNNECESSARY BLANK SPACES ARE 00158600
|
|
LOST. EACH CALL ON THE SCAN PROCEDURE PRODUCES ONE OF THE FOLLOWING 00158700
|
|
ITEMS :- AN IDENTIFIER, NUMBER, SPECIAL CHARACTER OR A STRING. 00158800
|
|
IF A SPECIAL CHARACTER IS FOUND AND IS A "*" IN COLUMN ONE THEN THE 00158900
|
|
ENTIRE RECORD IS TREATED AS A DOCUMENT CONTROL RECORD. IDENTIFIERS AND 00159000
|
|
NUMBERS MUST BE LESS THAN 63 CHARACTERS IN LENGTH. THEY MAY BE 00159100
|
|
SPLIT OVER CONSECUTIVE RECORDS AND COLUMN ONE IS CONSIDERED AS A 00159200
|
|
CONTINUATION OF COLUMN 72 OF THE PREVIOUS RECORD. IF AT LEAST ONE 00159300
|
|
SPACE FOLLOWS AN ITEM SCANNED THEN ONE SPACE WILL BE INCLUDED IN THE 00159400
|
|
DOCUMENT, HOWEVER , SPACES ARE NOT REMOVED WITHIN STRINGS. 00159500
|
|
* SKIP INDENT 10 UNDERLINE 00159600
|
|
(2) "LINE" MODE. 00159700
|
|
* 2 00159800
|
|
EACH RECORD IS TREATED AS A SELF-CONTAINED UNIT, THE RELATIVE POSITION 00159900
|
|
OF DATA WITHIN THE RECORDS MAY BE CHANGED BY SOME OF THE LINE EDITING 00160000
|
|
FUNCTIONS AS DESCRIBED BELOW. 00160100
|
|
* 2 00160200
|
|
IN EITHER MODE THE USER IS CAUTIONED AGAINST USE OF SPECIAL CHARACTERS 00160300
|
|
IN COLUMN 72. ANY CHARACTER OTHER THAN A LETTER OR A DIGIT IN THAT 00160400
|
|
POSITION MAY CAUSE INFORMATION TO BE LOST. 00160500
|
|
* 3 00160600
|
|
DATE = THE CURRENT DATE WILL BE PRINTED ON THE SAME LINE AS THE PAGE 00160700
|
|
NUMBERS IN THE EDITED DOCUMENT. 00160800
|
|
* 3 00160900
|
|
DATE CLEAR = THE CURRENT DATE WILL NOT BE PRINTED WITH THE PAGE 00161000
|
|
NUMBERS. 00161100
|
|
* 3 00161200
|
|
PAGE N = SKIP TO A NEW PAGE, INCREASE THE PAGE COUNTER BY N, IF N IS 00161300
|
|
EMPTY THEN N IS SET EQUAL TO THE CURRENT PAGE INCREMENT. 00161400
|
|
IF N IS GREATER THAN ONE THEN THERE 00161500
|
|
WILL APPEAR TO BE "GAPS" IN THE DOCUMENT. THIS IS USEFUL WHEN PAGES 00161600
|
|
HAVE TO BE INSERTED WHICH HAVE BEEN PREPARED BY SOME OTHER TECHNIQUE 00161700
|
|
EXAMPLE:- GRAPHS, LINE DRAWINGS, TABLES. 00161800
|
|
THE PAGE NUMBER IS SET TO ZERO AT THE START OF A DOCUMENT BUT MAY BE 00161900
|
|
RESET BY USE OF THE "PAGEID" CONTROL BELOW. THE CONTENTS OF THE 00162000
|
|
TITLE BUFFER IS PRINTED AT THE HEAD OF EACH NEW PAGE (SEE BELOW). 00162100
|
|
* 3 00162102
|
|
ENDPAGE N= SKIP TO A NEW PAGE IF AND ONLY IF N (SINGLE SPACED) 00162104
|
|
MORE LINES WILL NOT FIT ON THIS PAGE. THIS CONTROL IS USEFL FOR 00162106
|
|
FIGURES WHICH ARE LESS THAN A FULL PAGE IN SIZE. 00162108
|
|
*3 00162200
|
|
INSERTPAGE N,M = ASSIGN THE PAGENUMBER N TO THE NEXT PAGE AND CONSIDER 00162300
|
|
THAT PAGE AS A LOGICAL UNIT. USE A PAGEINCREMENT OF M UNTIL A NEW 00162400
|
|
"PAGE" OR "INSERTPAGE" CONTROL IS FOUND. IF M IS EMPTY IT IS SET 00162500
|
|
TO ONE. IF N IS EMPTY IT WILL BE SET TO THE CURRENT NEXT PAGE. 00162600
|
|
* 3 00162700
|
|
PAGE NO = SKIP TO A NEW PAGE AND THE PAGE NUMBER IS NOT INCREASED OR 00162800
|
|
PRINTED. THIS MAY BE USED TO PRINT UN-NUMBERED TITLE PAGES. 00162900
|
|
* 3 00163000
|
|
PAGEINC N = SET THE PAGE INCREMENT COUNTER EQUAL TO N. IF N IS 00163100
|
|
EMPTY OR IF THIS CONTROL IS NOT USED AN INCREMENT OF ONE WILL BE USED. 00163200
|
|
* 3 00163300
|
|
PAGEID N , + "STRING" = THIS IS TO BE USED TO INITIALIZE THE PAGE 00163400
|
|
NUMBERING SYSTEM (IF REQUIRED). THE NEXT PAGE NUMBER TO BE USED IS N. 00163500
|
|
THE CONTENTS OF THE STRING (LESS THAN OR EQUAL TO SIX CHARACTERS IN 00163600
|
|
LENGTH) IS USED AS PART OF THE PAGE NUMBER. IF THE "+" SIGN IS USED 00163700
|
|
THEN THE STRING IS PLACED TO THE RIGHT OF THE PAGE NUMBER AND IF THE "+"00163800
|
|
IS MISSING THE STRING IS PLACED TO THE LEFT OF THE PAGE NUMBER, 00163900
|
|
EXAMPLE :- 00164000
|
|
* SKIP TABULATE 10, 36, 50 00164100
|
|
PAGEID , + " OF 14" / PRODUCES / 3 OF 14 / 00164200
|
|
PAGEID 3 , "CHAP 1" / PRODUCES / CHAP 1 3 / 00164300
|
|
* 6 00164400
|
|
IF A "PAGEID" CONTROL IS NOT USED THEN THE PAGE NUMBER WILL BE OF THE 00164500
|
|
FORM "PAGE 3" ETC. THE "PAGEID" CONTROL MAY BE USED TO NUMBER 00164600
|
|
PAGES RELATIVE TO NEW SECTIONS OR CHAPTERS. 00164700
|
|
* 3 00164800
|
|
OVER = THIS CONTOL IS USED ONLY FOLLOWED BY "PAGE" OR "INSERTPAGE" 00164900
|
|
AND CAUSES A NEW PAGE TO BE STARTED WITHOUT DISTURBING 00165000
|
|
THE CURRENT EDITING CONTROLS. 00165100
|
|
*3 00165200
|
|
DECIMALS N = THE PAGE NUMBER WILL BE FORMATTED WITH N PLACES TO THE 00165300
|
|
RIGHT OF THE DECIMAL POINT. IF N IS EMPTY IT IS SET TO TWO. 00165400
|
|
* 3 00165500
|
|
SUPPRESS = IF ON ANY PAGE ALL DECIMAL PLACES TO THE RIGHT OF THE DECIMAL00165600
|
|
POINT ARE ZEROES, NEITHER THEY NOR THE DECIMAL POINT WILL BE PRINTED. 00165700
|
|
* 3 00165800
|
|
REV E = THIS SHOULD BE USED TO INTRODUCE A REVISION LETTER TO BE 00165900
|
|
INCLUDED IN THE EDITED DOCUMENT. ALL EDITED OUTPUT LINES WHICH ARE 00166000
|
|
FORMED IN PART BY INPUT RECORDS FROM THE FILE "CARD" (THAT IS, PATCH CAR00166100
|
|
DS) WILL HAVE THE "PATCH LETTER" PRINTED IN COLUMN 77. IF A "REV" CONTRO00166200
|
|
L 00166300
|
|
IS NOT USED THEN AN "*" WILL BE PRINTED. IT IS ADVISABLE TO USE THE 00166400
|
|
"REV" CONTROL AT ONLY ONE PLACE WITHIN A DOCUMENT AS THIS RECORD 00166500
|
|
WILL BECOME PART OF THE PERMANENT FILE. SUBSEQUENT REVISIONS 00166600
|
|
SHOULD THEN CONTAIN "PATCHES" FOR THIS RECORD. 00166700
|
|
* 3 00166800
|
|
LEAVE = NORMALLY NO PATCH LETTER (OR "*" FLAG) IS PUT IN THE DOCUMENT 00166900
|
|
WHEN A "FINAL" DOCUMENT RUN IS MADE. WITH THIS CONTROL, 00167000
|
|
THE LETTER WILL BE WRITTEN AT THE END OF THE LINE EVEN IF THE 00167002
|
|
CONTROL "FINAL" IS USED. 00167004
|
|
* 3 00167100
|
|
REVISION N = THIS CONTROL IS SIMILAR TO DATE IN THAT IT CAUSES THE 00167200
|
|
REVISION TO BE WRITTEN AT THE HEAD OF EVERY PAGE. THE REVISION NUMBER 00167300
|
|
WILL BE ASSUMED TO BE ONE IF N IS EMPTY. NOTE THAT A MERGE WILL 00167400
|
|
CHANGE THE ASSIGNED REVISION LETTER UNLESS IT IS ALREADY HIGHER 00167500
|
|
THAN THAT OF THE LAST DOCUMENT. IF NEITHER THIS NOR THE 00167600
|
|
"REVISION CLEAR" OPTION IS USED, THE PAGE WILL NOT BE ASSIGNED 00167700
|
|
ANY REVISION. 00167800
|
|
* 3 00167900
|
|
REVISION CLEAR N = THIS CAUSES A REVISION TO BE ASSOCIATED WITH 00168000
|
|
EACH PAGE BUT DOES NOT WRITE IT ON THE PAGE. 00168100
|
|
* 3 00168200
|
|
CENTER = CENTER ALL LINES UNTIL A NEW CONTROL IS READ. THE TOTAL WIDTH 00168300
|
|
AVAILABLE IS 72 COLUMNS. 00168400
|
|
* 3 00168500
|
|
CENTRE = SAME AS CENTER. 00168600
|
|
* 3 00168700
|
|
INDENT N = INDENT EACH LINE N COLUMNS, IF THE RECORD OVERFLOWS PAST 00168800
|
|
COLUMN 72 AN ERROR MESSAGE WILL BE GIVEN. 00168900
|
|
* 3 00169000
|
|
WIDE = TWO SOURCE RECORDS FOR EACH DOCUMENT RECORD WILL BE USED, 00169010
|
|
ALLOWING A 120 CHARACTER PRINT LINE. THE FIRST CARD GIVES POSITIONS 00169012
|
|
1-72 AND THE SECOND GIVES THE REST. NO EDITING IS DONE. 00169014
|
|
IF EITHER RECORD IS BLANK THEN A PERCENT SIGN SHOULD BE PLACED IN 00169016
|
|
COLUMN 72. THUS WHEN THE FILE IS RESEQUENCED THE BLANK RECORD WILL NOT 00169018
|
|
BE THROWN AWAY. THE WIDE CONTROL EXAMINES COLUMN 72 AND IF THERE IS A 00169020
|
|
PERCENT SIGN IT WILL BE BLANKED OUT. 00169022
|
|
* 3 00169024
|
|
SYNTAX = THE DOCUMENT INPUT FOLLOWING THIS CONTROL IS TO BE USED IN ALL 00169100
|
|
"NORMAL" DOCUMENT RUNS AND ONLY THESE SECTIONS WILL BE USED IF 00169200
|
|
"DOCUMENT SYNTAX" IS USED ON THE $ CONTROL CARD. 00169300
|
|
* 3 00169400
|
|
SYNTAX ONLY = THE SECTIONS FOLLOWING THIS CONTROL WILL BE IGNORED 00169500
|
|
DURING "NORMAL" DOCUMENT RUNS BUT WILL BE INCLUDED DURING 00169600
|
|
"DOCUMENT SYNTAX" RUNS. THE USE OF "SYNTAX" IS RATHER UNFORTUNATE. THE 00169700
|
|
FUNCTION WAS INCLUDED SPECIFICALLY FOR USE WITH PROGRAMMING MANUAL 00169800
|
|
EDITING BUT MAY BE USED FOR ANY TYPE OF "SUMMARY" DOCUMENTS. 00169900
|
|
* 3 00170000
|
|
TITLE N = PLACE THE CONTENTS OF THE FOLLOWING LINE IN THE TITLE BUFFER 00170100
|
|
AND INDENT THE TITLE N COLUMNS IN THE BUFFER. THE TITLE BUFFER 00170200
|
|
IS PRINTED AT THE HEAD OF EACH NEW PAGE. IF N IS EMPTY THE TITLE WILL BE00170300
|
|
LEFT JUSTIFIED. 00170400
|
|
* 3 00170500
|
|
TITLE CENTER = CENTER THE TITLE IN THE TITLE BUFFER. 00170600
|
|
* 3 00170700
|
|
TITLE CLEAR = CLEAR THE TITLE BUFFER WITH BLANKS. 00170800
|
|
* 3 00170900
|
|
* 3 00171000
|
|
SKIP N = SKIP N SINGLE SPACE LINES BEFORE PRINTING THE NEXT LINE, IF N 00171100
|
|
IS EMPTY THEN ONE LINE WILL BE SKIPPED. IF A "PAGE" CONTROL APPEARS 00171200
|
|
ON THE SAME CONTROL RECORD THEN THE SKIP IS MADE AFTER A NEW PAGE IS 00171300
|
|
PRINTED. 00171400
|
|
* 3 00171500
|
|
INDEX N = PLACE THE FOLLOWING N EDITED LINES IN THE TABLE OF CONTENTS, 00171600
|
|
IF N IS EMPTY IT IS SET EQUAL TO ONE. IF A CENTER OR INDENT CONTROL 00171700
|
|
APPEARS ON THE SAME CONTROL RECORD THEN THE ORDER IN WHICH THEY APPEAR 00171800
|
|
IS IMPORTANT, EXAMPLE :- 00171900
|
|
* SKIP INDENT 20 00172000
|
|
* INDEX INDENT 4 00172100
|
|
* INDEX CENTER 00172200
|
|
* 6 00172300
|
|
THESE WILL CAUSE THE RECORDS IN THE BODY OF THE DOCUMENT TO BE 00172400
|
|
INDENTED AND CENTERED AND THE ENTRIES IN THE TABLE OF CONTENTS 00172500
|
|
TO BE LEFT JUSTIFIED. 00172600
|
|
* SKIP INDENT 20 00172700
|
|
* INDENT 4 INDEX 00172800
|
|
* CENTER INDEX 00172900
|
|
* 6 00173000
|
|
THESE ENTRIES WILL BE INDENTED AND CENTERED IN BOTH THE BODY OF THE 00173100
|
|
DOCUMENT AND ALSO IN THE TABLE OF CONTENTS. 00173200
|
|
* 3 00173210
|
|
INDEX ONLY = THIS CONTROL AFFECTS THE INDENTING IN THE 00173211
|
|
INDEX. WHEN THIS CONTROL IS SEEN AFTER AND INDENT CONTROL 00173213
|
|
HAS ALREADY BEEN PROCESSED, THE FOLLOWING LINES WILL BE INDENTED 00173215
|
|
IN THE INDEX BUT NOT IN THE DOCUMENT. 00173217
|
|
EXAMPLE OF USE: INDENT 5 INDEX ONLY. 00173219
|
|
* 3 00173221
|
|
INDEX WORDS N = THIS CONTROL IS EFFECTIVE ONLY IN SCANNING MODE. 00173223
|
|
IT PLACES WORDS FROM A DOCUMENT LINE INTO THE INDEX UNTIL N BLANK 00173225
|
|
SPACES ARE ENCOUNTERED, WHERE BLANKS PRECEDING THE FIRST 00173227
|
|
NON-BLANK CHARACTER ARE IGNORED AND A BLANK SPACE IS DEFINED TO BE 00173229
|
|
ONE OR MORE BLANK CHARACTERS. 00173231
|
|
* 4 00173300
|
|
END = SIGNAL THE END OF A DOCUMENT COMMENT. THE FILE IS SCANNED 00173400
|
|
TO LOOK FOR ANOTHER DOCUMENT COMMENT. 00173500
|
|
* 4 00173600
|
|
FINISH = SIGNAL THE END OF A DOCUMENT. THE TABLE OF CONTENTS WILL00173700
|
|
BE PRINTED. 00173800
|
|
* 4 00173900
|
|
QUIT = SIGNAL THE END OF THE LAST DOCUMENT CONTAINED ON A 00174000
|
|
PROGRAM SOURCE FILE. 00174100
|
|
* 3 00174200
|
|
TABHEAD N,M= THEN FOLLOWING N LINES (N MAY NOT BE GREATER THEN SIX) 00174300
|
|
WILL BE PUT INTO N HEADING BUFFERS STARTING WITH BUFFER M. ALL 00174400
|
|
BUFFERS UP TO THE LAST ONE FILLED WILL BE PRINTED AT THE 00174500
|
|
HEAD OF 00174600
|
|
EVERY PAGE UNTIL A "TABHEAD CLEAR" CONTROL IS READ. IF N IS 00174700
|
|
EMPTY THE COUNT IS SET TO ONE. 00174800
|
|
IF M IS EMPTY, FILLING WILL START WITH THE FIRST BUFFER. 00174900
|
|
IF THE WORD " UNDERLINE" IS INCLUDED AMONG THE DOCUMENT 00175000
|
|
CONTROLS ON THE CARD SETTING UP THE TABLE HEAD, THE 00175100
|
|
UNDERLINING WILL ALSO BE CARRIED OVER ONTO NEW PAGES. THE 00175200
|
|
UNDERLINING COUNTS AS ONE LINE OF HEADING, SO THAT ONLY FOUR LINES OF 00175300
|
|
HEADING MAY BE USED. 00175400
|
|
* 3 00175500
|
|
TABHEAD CLEAR = THE HEADINGS SET UP BY "TABHEAD" WILL NO LONGER 00175600
|
|
BE PRINTED. 00175700
|
|
* 3 00175702
|
|
TABHEAD CLEAR N = THE NTH BUFFER AND ALL FOLLOWING IT WILL 00175704
|
|
BE CLEARED AND NO LONGER PRINTED IN THE TAB HEAD. 00175706
|
|
* 3 00175800
|
|
SINGLE = PRINT ALL THE FOLLOWING EDITED RECORDS WITH SINGLE SPACE PRINTI00175900
|
|
NG UNTIL A NEW "*" CONTROL IS READ. 00176000
|
|
* 3 00176100
|
|
DOUBLE = PRINT ALL THE FOLLOWING EDITED RECORDS WITH DOUBLE SPACE 00176200
|
|
PRINTING. THIS SHOULD BE USED IF "SIX" OR "SINGLE" IS SPECIFIED ON THE 00176300
|
|
CONTROLLING "$" CARD (SEE PART ONE). 00176400
|
|
00176500
|
|
00176600
|
|
00176700
|
|
00176800
|
|
* 3 00176900
|
|
UNDERLINE N = UNDERLINE ALL THE NON-BLANK CHARACTERS IN THE FOLLOWING 00177000
|
|
N EDITED RECORDS. THIS CONTROL IS OPERATIVE WITH ALL "*" CONTROLS 00177100
|
|
EXCEPT "PATTERN" AND "PATTERN GLOS". IF TITLE RECORDS ARE TO BE 00177200
|
|
UNDERLINED THEN "UNDERLINE" MUST APPEAR WITH AND BEFORE "TITLE" 00177300
|
|
ON THE APPROPRIATE TITLE CONTROL RECORD. 00177400
|
|
* 2 00177500
|
|
IF "UNDERLINE" IS USED IN "SCANNING MODE" (THAT IS WITH 00177600
|
|
PARAGRAPH AND GLOSSARY CONTROLS) THEN THE VALUE OF N IS IGNORED AND 00177700
|
|
ALL THE EDITED LINES ARE UNDERLINED. IF IN "LINE MODE" N IS EMPTY 00177800
|
|
THEN N IS SET EQUAL TO ONE. 00177900
|
|
* 3 00178000
|
|
INVALID N, M = AFTER THE NEXT SOURCE INPUT RECORD IS READ PLACE A 00178100
|
|
* INVALID 15 00178200
|
|
QUESTION MARK Q IN COLUMNS N AND M BEFORE ANY EDITING FUNCTION IS 00178300
|
|
PERFORMED. A QUESTION MARK MAY NOT BE INCLUDED IN A CARD RECORD AS IT 00178400
|
|
IS TREATED BY THE B 5500 MCP AS AN INVALID CHARACTER AND IS ONLY 00178500
|
|
ALLOWED FOR MCP CONTROL RECORDS. THE QUESTION MARKS GENERATED BY THE USE00178600
|
|
OF THIS CONTROL ARE NOT INCLUDED IN ANY PERMANENT RECORD (ON TAPE OR C00178700
|
|
ARDS) BUT ONLY IN THE DOCUMENT. THE INVALID CONTROL MAY BE INTRODUCED AT00178800
|
|
ANY POSITION WITHIN THE INPUT RECORDS AND WHEN IT IS ENCOUNTERED, 00178900
|
|
THE EDITING CONTROLS WHICH ARE 00179000
|
|
OPERATIVE ARE NOT RESET. THAT IS, IF QUESTION MARKS ARE TO BE INCLUDED W00179100
|
|
ITHIN A PARAGRAPH THE INVALID CONTROL MAY BE INSERTED IN THE BODY 00179200
|
|
OF THE PARAGRAPH INPUT RECORDS AND THE PARAGRAPH CONTROL WILL BE 00179300
|
|
CONTINUED UNTIL A DOCUMENT CONTROL RECORD OTHER THAN AN INVALID 00179400
|
|
CONTROL IS FOUND. 00179500
|
|
NOTE THAT THE INVALID CONTROL MUST APPEAR ALONE ON TH CONTROL CARD. 00179600
|
|
* 3 00179700
|
|
INVALID N, M ALL = ALL SUCCEEDING CARDS UNTIL THE NEXT ASTERISK 00179710
|
|
CONTROL CARD WILL HAVE QUESTION MARKS PLACED IN POSITIONS N AND M. 00179712
|
|
* 3 00179714
|
|
NAMES = ALL IDENTIFIERS, STRINGS, AND NUMBERS UP TO THE NEXT ASTERISK 00179716
|
|
CONTROL WILL BE CROSS-REFERENCED TO THE CURRENT PAGE IN A SPECIAL 00179718
|
|
DOCUMENT INDEX. THIS INDEX REPLACES THE REGULAR DOCUMENT CONTROLS 00179720
|
|
CROSS-REFERENCE AND IS REQUESTED BY THE DOLLAR CARD OPTION "DOCINDEX". 00179722
|
|
THE ITEMS UP TO THE NEXT ASTERISK CONTROL ARE NOT PUT INTO THE 00179724
|
|
DOCUMENT ITSELF. 00179726
|
|
THIS CONTROL WHILE FAR FROM THE AUTOMATIC KEY WORD INDEXING WHICH 00179728
|
|
COULD BE PROVIDED, ALLOWS SOME INDEX OF IDENTIFIERS TO BE 00179730
|
|
CONSTRUCTED AND KEPT AUTOMATICALLY IN STEP WITH THE 00179732
|
|
DOCUMENT PAGE NUMBERS. 00179734
|
|
* 3 00179736
|
|
DEFINE = THIS IS USED AS AN 00179800
|
|
ABBREVIATION AND TO SAVE THE REPEATED 00179900
|
|
PREPARATION OF THE SAME CONTROLS. THE FORMAT OF A DEFINE IS :- 00180000
|
|
* SKIP INDENT 20 00180100
|
|
* DEFINE <DEFINE INDEX> = <CONTROL INFO> * 00180200
|
|
* 6 00180300
|
|
THE <DEFINE INDEX> MUST BE AN UNSIGNED INTEGER IN THE RANGE 1 TO 100, 00180400
|
|
AND THE <CONTROL INFO> MAY CONTAIN ANY OF THE DOCUMENT CONTROLS 00180500
|
|
EXCEPT "DEFINES" AND THE USE OF "DEFINES", THAT IS , 00180600
|
|
THE DEFINE CONTROL MAY NOT BE NESTED AND IS NOT RECURSIVE. THE DEFINE 00180700
|
|
CONTROLS MAY APPEAR AT ANY PLACE WITHIN THE DOCUMENT SOURCE INPUT 00180800
|
|
BUT A DEFINE INDEX MUST HAVE BEEN SPECIFIED IN A DEFINE BEFORE IT IS USE00180900
|
|
D. 00181000
|
|
* 3 00181100
|
|
<DEFINE INDEX> = THIS IS USED TO CALL OUT A PREVIOUSLY DEFINED 00181200
|
|
INDEX. EXAMPLE:- * 57 00181300
|
|
* 3 00181400
|
|
PARAGRAPH -N,M,P = FORM A PARAGRAPH STARTING IN COLUMN N AND ENDING IN C00181500
|
|
OLUMN M. INDENT THE FIRST LINE OF THE PARAGRAPH P COLUMNS FROM COLUMN N.00181600
|
|
THE MINUS SIGN "-" INDICATES THAT THE FIRST ITEM SCANNED (THAT IS 00181700
|
|
WHICH IS EMBEDDED BETWEEN BLANKS) WILL SERVE AS A PARAGRAPH 00181800
|
|
IDENTIFICATION AND WILL BE PRINTED IN COLUMN ONE. 00181900
|
|
* 6 00182000
|
|
IF ",P" IS EMPTY THEN P IS SET EQUAL TO 6, IF ",M" IS EMPTY THEN M IS 00182100
|
|
SET EQUAL TO 72 AND IF "N" IS EMPTY THEN N IS SET EQUAL TO ONE. IF THE 00182200
|
|
MINUS SIGN IS MISSING THEN NO PARAGRAPH IDENTIFICATION WILL BE 00182300
|
|
PRINTED. 00182400
|
|
* 4 00182500
|
|
PAR = FORM A PARAGRAPH IN PRINT POSITIONS AS SET UP BY THE LAST 00182600
|
|
PARAGRAPH CONTROL. IF NO SUCH CONTROL EXISTED THEN THE 00182700
|
|
PRINT POSITIONS ARE SET FOR COLUMNS 1-72. 00182800
|
|
* 3 00182900
|
|
GLOSSARY N,M,P = THIS ALLOWS THE INCLUSION OF GLOSSARY TERMS TOGETHER 00183000
|
|
WITH THEIR APPROPRIATE DEFINITIONS. THIS EDITING FUNCTION 00183100
|
|
(AND THE PATTERN EDITING FUNCTION DESCRIBED BELOW) 00183200
|
|
REQUIRES AND CHECKS FOR CONTROLS WITHIN THE BODY OF THE DOCUMENT 00183300
|
|
COMMENT AND NOT ON AN ASTERISK CARD. A GLOSSARY TERM (THE TERM MAY 00183400
|
|
CONSIST OF ONE OR MORE ENTRIES:- IDENTIFIERS, NUMBERS AND SPECIAL 00183500
|
|
CHARACTERS EXCEPT "=") IS SEPARATED FROM ITS DEFINITION BY AN EQUAL 00183600
|
|
(=) SIGN. EXAMPLE:- 00183700
|
|
* INDENT 10 00183800
|
|
FIELD SIZE = DESCRIPTION OF FIELD SIZE, ETC. 00183900
|
|
* 2 00184000
|
|
THE LAYOUT OF THE GLOSSARY TERMS AND DEFINITIONS ARE DETERMINED BY THE 00184100
|
|
VALUE OF THE PARAMETERS N,M,P. THE GLOSSARY TERM IS PLACED IN COLUMN N A00184200
|
|
ND THE DEFINITION IS FORMED AS A PARAGRAPH WITH THE LEFT HAND MARGIN 00184300
|
|
IN COLUMN M AND THE RIGHT HAND MARGIN IN COLUMN P. THE EQUAL SIGN 00184400
|
|
SEPARATING THE TERM AND ITS DEFINITION IS NOT PRINTED. THE PARAMETERS 00184500
|
|
MAY ALSO BE OF THE FORM N,M OR N,AND IN THESE CASES, THE VALUES OF THE 00184600
|
|
MISSING PARAMETERS ARE THOSE WHICH WERE LAST USED BY THE GLOSSARY EDITIN00184700
|
|
G FUNCTION. IF NO SUCH VALUES HAVE BEEN SET UP, P WILL BE SET TO 72 00184800
|
|
AND M SET TO L + 6 WHERE L IS THE LENGTH OF THE FIELD REQUIRED BY THE 00184900
|
|
GLOSSARY TERM. PLEASE NOTE THAT N,M, AND P MUST BE UNSIGNED INTEGERS. 00185000
|
|
* 2 00185100
|
|
IF THE GLOSSARY ITEM IS MISSING AN EQUAL SIGN, THE FIRST LINE OF THAT 00185200
|
|
GLOSSARY ENTRY WILL EXTEND FROM N TO P AND ALL FURTHER 00185300
|
|
LINES IN THAT ENTRY FROM M TO P. 00185400
|
|
00185500
|
|
* 4 00185600
|
|
GLOS = THIS IS AN ABBREVIATION FOR A GLOSSARY EDITING FUNCTION. WHEN A 00185700
|
|
GLOSSARY EDITING FUNCTION HAS BEEN SET UP AS DESCRIBED ABOVE AND IT IS 00185800
|
|
DESIRED TO REPEAT THE FUNCTION WITH THE SAME PARAMETERS, THIS 00185900
|
|
ABBREVIATED FORM MAY BE USED. IF NO PREVIOUS GLOSSARY TERM HAD BEEN USED00186000
|
|
THEN N IS SET TO 1 , M SET TO L + 6, AND P SET TO 72. 00186100
|
|
* 2 00186200
|
|
THE PARAMETER VALUES FOR THE PARAGRAPH AND GLOSSARY EDITING FUNCTIONS 00186300
|
|
ARE SAVED IN DIFFERENT VARIABLES WITHIN THE DOCUMENT EDITING PROGRAM . 00186400
|
|
THUS, PAR AND GLOS MAY APPEAR IN ANY ORDER WITHOUT HAVING TO RESPECIFY T00186500
|
|
HE PARAMETERS. 00186600
|
|
* 3 00186700
|
|
TABULATE N,M,P,Q = EACH OF THE FOLLOWING LINES (UNTIL A NEW CONTROL 00186800
|
|
IS READ) IS EDITED ACCORDING TO THE POSITIONS OF "/" IN THE INPUT RECORD00186900
|
|
LINE. 00187000
|
|
IF THERE ARE FOUR <TAB COL>S SPECIFIED IN THE TABULATE CONTROL THEN THE 00187100
|
|
INPUT RECORDS SHOULD CONTAIN AT LEAST FOUR "/" SIGNS, EXAMPLE:- 00187200
|
|
* SKIP INDENT 20 00187300
|
|
A/ B / C/ D / 00187400
|
|
/ BB/ / DD/ 00187500
|
|
* 6 00187600
|
|
"A" WILL BE PLACED IN COLUMN N, "B" IN COLUMN M, "C" IN COLUMN P AND 00187700
|
|
"D" IN COLUMN Q. "BB"STARTING IN COLUMN M AND "DD"STARTING IN COLUMN 00187800
|
|
Q. 00187900
|
|
* 6 00188000
|
|
THE FIRST NON BLANK CHARACTERS FOLLOWING A "/" IS PLACED IN THE 00188100
|
|
APPROPRIATE TAB COLUMN. (A "/" IS ASSUMED IN COLUMN ZERO, THAT IS, THE 00188200
|
|
FIRST NON BLANK CHARACTER IS PLACED IN COLUMN N UNLESS IT IS A "/"). 00188300
|
|
ERROR MESSAGES ARE PRINTED IF THE LENGTH OF THE "TAB" FIELDS ARE TOO 00188400
|
|
SMALL TO ACCOMODATE THE DATA APPEARING BETWEEN THE "/" MARKS. 00188500
|
|
* 3 00188600
|
|
TAB N,M,P,Q = SAME AS TABULATE ABOVE. 00188700
|
|
* 3 00188800
|
|
FORMAT N,M,P,Q = SIMILAR TO TABULATE EXCEPT THAT N,M,P AND Q INDICATE 00188900
|
|
THE COLUMNS WHERE THE FIELDS ARE TO END. THAT IS, RIGHT JUSTIFICATION. 00189000
|
|
THE CHARACTER APPEARING IMMEDIATELY BEFORE A "/" (A SPACE IS COUNTED AS 00189100
|
|
A CHARACTER FOR THIS PURPOSE) IS PLACED IN THE SPECIFIED COLUMN. IF THE 00189200
|
|
EXAMPLE FOR "TABULATE" ABOVE WERE USED WITH A "FORMAT" CONTROL THEN 00189300
|
|
"A" WOULD BE PLACED IN COLUMN N, "B" IN COLUMN M-1, "C" IN COLUMN P, AND00189400
|
|
"D" IN COLUMN Q-2. 00189500
|
|
* 3 00189600
|
|
FORM N,M,P,Q = SAME AS FORMAT ABOVE. 00189700
|
|
* 3 00189710
|
|
CODESEQ= THE SEQUENCE NUMBER OF THE FIRST RECORD 00189712
|
|
CONTRIBUTING TO A CODE, PERCENT, OR CODEPERCENT CONTROL IS 00189714
|
|
LISTED IN THE DOCUMENT. 00189716
|
|
*3 00189718
|
|
NOCODESEQ=THE SEQUENCE NUMBER OF CODE RECORDS IS NOT LISTED IN 00189720
|
|
THE DOCUMENT. THE TOGGLE SET BY THE CODESEQ CONTROL IS NOT RESET 00189722
|
|
BY EACH ASTERISK CONTROL, BUT ONLY BY USING "NOCODESEQ". 00189724
|
|
* 4 00189800
|
|
CODE = THIS ALLOWS THE INCLUSION OF LINES OF SYMBOLIC CODE TO BE 00189900
|
|
INCLUDED WITHIN THE DOCUMENT. SINCE IT IS UNDESIRABLE TO DUPLICATE ANY 00190000
|
|
SUCH SYMBOLIC RECORDS (ONE SET FOR THE ALGOL COMPILER AND THE OTHER SET 00190100
|
|
FOR THE DOCUMENT COMMENT), THE FOLLOWING ARTIFICE MAY BE UTILIZED:- 00190200
|
|
* 6 00190300
|
|
THE TWO RECORDS PRECEEDING THE CODE TO BE INCLUDED SHOULD HAVE THE 00190400
|
|
FOLLOWING FORMAT :- 00190500
|
|
* INDENT 20 00190600
|
|
COMMENT DOCUMENT 00190700
|
|
* CODE ETC SC 00190800
|
|
* 2 00190900
|
|
WHERE SC IS A SEMICOLON (CLOSING THE COMMENT FOR ALGOL) AND ETC MAY BE00191000
|
|
OTHER APPROPRIATE EDITING (EXCLUDING <PARAGRAPH> AND <GLOSSARY>) 00191100
|
|
FUNCTIONS. 00191200
|
|
* 2 00191300
|
|
THE RECORDS FOLLOWING THE LAST CODE RECORD TO BE INCLUDED IN THE DOCUMEN00191400
|
|
T SHOULD HAVE A PERCENT SIGN IN COLUMN 1. UNFORTUNATELY, THIS ARTIFICE D00191500
|
|
OES NOT LOOK VERY NEAT IN A LISTING PRODUCED BY THE ALGOL COMPILER BUT, 00191600
|
|
NEVER THE LESS, IT PROVIDES A MEANS OF DOCUMENTING SECTIONS OF CODE. FOR00191700
|
|
EXAMPLE, COMPLETE PROCEDURE HEADINGS WITHOUT DUPLICATION OF INFORMATION00191800
|
|
. MOST OF PART 3 OF THIS DOCUMENT IS PRODUCED BY THIS ARTIFICE. 00191900
|
|
* 3 00192000
|
|
CODE N = READ THE FOLLOWING N SOURCE RECORDS AND INCLUDE THEM IN THE 00192100
|
|
DOCUMENT. THIS MAY BE USED TO INCLUDE SUCH THINGS AS PROCEDURE 00192200
|
|
HEADINGS. THIS SHOULD BE USED WHEN THE NUMBER OF RECORDS IN THE 00192300
|
|
SECTION OF THE CODE TO BE USED IS NOT CHANGING "DYNAMICALLY" BY 00192400
|
|
"PATCHING". IN THE CASE WHERE THE NUMBER OF RECORDS IS CHANGING, 00192500
|
|
EXAMPLE WHEN GLOBAL DECLARATIONS ARE TO BE INCLUDED IN THE DOCUMENT 00192600
|
|
AND ADDITIONS AND DELETIONS ARE MADE DURING PROGRAM CHECKOUT, THEN THE 00192700
|
|
"CODE" CONTROL DESCRIBED ABOVE SHOULD BE USED. 00192800
|
|
* 4 00192900
|
|
PERCENT = IT MAY BE DESIRABLE TO BE ABLE TO INCLUDE 00193000
|
|
SEMICOLONS WITHIN THE 00193100
|
|
BODY OF THE DOCUMENT. UNFORTUNATELY, IF ANY SUCH SEMICOLONS WERE TO 00193200
|
|
BE INCLUDED WITHIN THE BODY OF THE DOCUMENT COMMENT, THE FIRST OF ANY 00193300
|
|
SUCH SEMICOLONS WOULD TERMINATE THE COMMENT FOR THE ALGOL COMPILER. TO B00193400
|
|
E ABLE TO ACCOMODATE SUCH DOCUMENTATION (AN EXAMPLE WOULD BE THE 00193500
|
|
DESIRE TO PRINT THE SYNTAX OF A LANGUAGE WHICH USES SEMICOLONS AS 00193600
|
|
DELIMITERS OR FOR ANY OTHER REASON), A SPECIAL FEATURE EMPLOYED 00193700
|
|
WITHIN THE ALGOL COMPILER IS USED, NAMELY, THE USE OF THE PERCENT SIGN. 00193800
|
|
A PERCENT SIGN WHICH APPEARS WITHIN A RECORD, AND WHICH IS NOT EMBEDDED 00193900
|
|
WITHIN A STRING, CAUSES THE COMPILER TO TERMINATE SCANNING THAT PARTICUL00194000
|
|
AR RECORD. THIS FEATURE, HOWEVER, IS NOT AVAILABLE WITHIN COMMENTS. THIS00194100
|
|
IS A CONVENIENT WAY TO INCLUDE COMMENTS SUCH AS NOTES WHICH INCLUDE SEM00194200
|
|
ICOLONS, (THIS MAY BE CLASSED AS A LAZY PROGRAMMERS COMMENT). 00194300
|
|
* 2 00194400
|
|
THUS, TO USE THIS EDITING FUNCTION, THE RECORD WHICH CONTAINS THE 00194500
|
|
SEMICOLON 00194600
|
|
"PERCENT" EDITING CONTROL MUST ALSO HAVE A SEMICOLON TO CLOSE OUT THE DO00194700
|
|
CUMENT COMMENT. THE FOLLOWING RECORDS TO BE INCLUDED WITHIN THE DOCUMENT00194800
|
|
MUST HAVE A PERCENT SIGN IN COLUMN ONE (THIS WILL NOT BE PRINTED) AND 00194900
|
|
THE FIRST RECORD ENCOUNTERED WHICH DOES NOT HAVE A PERCENT SIGN IN COLUM00195000
|
|
N ONE (OR A COMMENT STARTING IN COLUMN ONE), 00195100
|
|
TERMINATES THE RECORD TO BE INCLUDED IN THE DOCUMENT. THE SOURCE 00195200
|
|
PROGRAM IS THEN SEARCHED FOR ANOTHER DOCUMENT COMMENT. 00195300
|
|
* 3 00195310
|
|
CODEPERCENT = THIS IS A COMBINATION OF THE "CODE" AND "PERCENT" CONTROLS00195312
|
|
RECORDS FOLLOWING THIS CONTROL ARE USED IN THE DOCUMENT UNTIL A 00195314
|
|
RECORD WITH A PERCENT SIGN IN COLUMN ONE IS ENCOUNTERED. THIS RECORD 00195316
|
|
AND ALL SUBSEQUENT RECORDS WHICH CONTAIL A PERCENT SIGN IN COLUMN ONE 00195318
|
|
ARE USED IN THE DOCUMENT (THE PERCENT SIGN IS BLANKED OUT). 00195320
|
|
THE NEXT RECORD WHICH DOES NOT CONTAIN A PERCENT SIGN IN COLUMN ONE 00195322
|
|
TERMINATES THE CONTROL. THE SOURCE FILE IS SCANNED FOR THR NEXT 00195324
|
|
COMMENT DOCUMENT. 00195326
|
|
* 3 00195400
|
|
PATTERN = THIS CONTROL WILL PRODUCE A DIAGRAM SHOWING THE "PACKING" 00195500
|
|
OF VARIOUS FIELDS WITHIN A COMPUTER WORD. IT IS ORIENTED TOWARDS A 00195600
|
|
48 BIT B 5500 WORD. THE BIT POSITIONS ARE NUMBERED FROM 0 TO 47 FROM THE00195700
|
|
LEFT AND EACH FIELD IS DESCRIBED BY ITS STARTING BIT POSITION,THE LENGT00195800
|
|
H OF THE FIELD AND A SYMBOLIC NAME (WHICH MAY BE EMPTY) AND ALSO A SEMAN00195900
|
|
TIC DESCRIPTION. 00196000
|
|
* 6 00196100
|
|
THE CONTENTS OF THE RECORDS FOLLOWING 00196200
|
|
A "PATTERN" CONTROL ARE SCANNED 00196300
|
|
AND SHOULD COMPLY WITH THE FOLLOWING SYNATX:- 00196400
|
|
* SKIP 00196500
|
|
<WORD DESCRIPTION>::= <FIELD DESCRIPTION> . / 00196600
|
|
<FIELD DESCRIPTION> , < WORD DESCRIPTION> 00196700
|
|
<FIELD DESCRIPTION> ::= <LEFT BIT> : <FIELD LENGTH> 00196800
|
|
<SYMBOLIC NAME> = <SEMANTIC DESCRIPTION> 00196900
|
|
<LEFT BIT> ::= <UNSIGNED INTEGER> 00197000
|
|
<FIELD LENGTH> ::= <UNSIGNED INTEGER> 00197100
|
|
<SYMBOLIC NAME> ::= <IDENTIFIER> / <EMPTY> 00197200
|
|
<SEMANTIC DESCRIPTION> ::= (ANY SEQUENCE OF CHARACTERS 00197300
|
|
EXCEPT A SEMICOLON OR CROSS-HATCH "#") 00197400
|
|
* 6 00197500
|
|
A DETAILED EXAMPLE IS GIVEN IN APP-2-1. 00197600
|
|
* 3 00197700
|
|
PATTERN GLOS = THE DIAGRAM IS NOT DRAWN AND THE FIELD DESCRIPTIONS 00197800
|
|
ARE PRINTED IN A SIMILAR FORMAT TO A GLOSSARY ENTRY, 00197900
|
|
(SEE APP-2-1). 00198000
|
|
* PAGEID 1,"APP-2-" 00198100
|
|
* PAGE INDEX UNDERLINE 00198200
|
|
SAMPLE PATTERN. 00198300
|
|
* INDENT 3 SKIP UNDERLINE INDEX 00198400
|
|
EXAMPLE OF INPUT TO "* PATTERN". 00198500
|
|
* SKIP 00198600
|
|
1:5 = NOT USED # , 00198700
|
|
6:6 SHEAD = INDEX TO BE USED TO FIND THE STACK HEAD IN THE 00198800
|
|
ARRAY "LINKS". # , 00198900
|
|
12:6 = NOT USED # , 00199000
|
|
18:15 FLINK = FORWARD LINK TO BE USED WITH THE ARRAY "WAITLIST".# , 00199100
|
|
33:15 BLINK = BACKWARD LINK TO BE USED WITH THE ARRAY "WAITLIST".# . 00199200
|
|
* INDENT 3 SKIP 2 UNDERLINE INDEX 00199300
|
|
EXAMPLE OF "* PATTERN". 00199400
|
|
* SKIP PATTERN 00199500
|
|
1:5 = NOT USED # , 00199600
|
|
6:6 SHEAD = INDEX TO BE USED TO FIND THE STACK HEAD IN THE 00199700
|
|
ARRAY "LINKS". # , 00199800
|
|
12:6 = NOT USED # , 00199900
|
|
18:15 FLINK = FORWARD LINK TO BE USED WITH THE ARRAY "WAITLIST".# , 00200000
|
|
33:15 BLINK = BACKWARD LINK TO BE USED WITH THE ARRAY "WAITLIST".# . 00200100
|
|
* INDENT 3 SKIP 2 UNDERLINE INDEX 00200200
|
|
EXAMPLE OF "* PATTERN GLOS". 00200300
|
|
* SKIP PATTERN GLOS 00200400
|
|
1:5 = NOT USED # , 00200500
|
|
6:6 SHEAD = INDEX TO BE USED TO FIND THE STACK HEAD IN THE 00200600
|
|
ARRAY "LINKS". # , 00200700
|
|
12:6 = NOT USED # , 00200800
|
|
18:15 FLINK = FORWARD LINK TO BE USED WITH THE ARRAY "WAITLIST".# , 00200900
|
|
33:15 BLINK = BACKWARD LINK TO BE USED WITH THE ARRAY "WAITLIST".# . 00201000
|
|
* 14 00201100
|
|
DOCUMENT CONTROLS CROSS REFERENCE LIST. 00201200
|
|
* SKIP 2 00201300
|
|
2 (000019) *00021000* 00060000 00064000 00072000 00079000 00201400
|
|
00094000 00097000 00100000 00103000 00105000 00201500
|
|
00107000 00111000 00115000 00117000 00119000 00201600
|
|
00186000 00201000 00271000 00299000 00201700
|
|
3 (000004) *00022000* 00206000 00233000 00303000 00201800
|
|
4 (000025) *00023000* 00208000 00211000 00243000 00248000 00201900
|
|
00252000 00258000 00260000 00262000 00265000 00202000
|
|
00285000 00289000 00294000 00307000 00310000 00202100
|
|
00313000 00321000 00326000 00327000 00335000 00202200
|
|
00338000 00342000 00344000 00349000 00352000 00202300
|
|
5 (000001) *00024000* 00202400
|
|
CENTER (000004) 99006000 00032000 00034000 00039000 00202500
|
|
DEFINE (000012) 00020000 00021000 00022000 00023000 00024000 00202600
|
|
00025000 99002000 00027000 00028000 99003000 00202700
|
|
99004000 99005000 00202800
|
|
GLOS (000002) *00023000* 00230000 00202900
|
|
GLOSSARY (000005) *00022000**00024000**00027000**00028000* 00217000 00203000
|
|
INDENT (000007) 00050000 00052000 00054000 00056000 99093000 00203100
|
|
00196000 00198000 00203200
|
|
INDEX (000001) *99002000* 00203300
|
|
PAGE (000002) *99002000* 99006000 00203400
|
|
PAGEID (000001) 00029000 00203500
|
|
PAR (000001) *00021000* 00203600
|
|
PARAGRAPH (000002)*00020000**00025000* 00203700
|
|
QUIT (000001) 99108000 00203800
|
|
SKIP (000025) *00020000**00021000**00022000**00023000**00024000* 00203900
|
|
*00025000**00027000**00028000**99003000**99004000* 00204000
|
|
*99005000* 00032000 00034000 00039000 00050000 00204100
|
|
00052000 00054000 00056000 99019000 99021000 00204200
|
|
99028000 00125000 99093000 00217000 00230000 00204300
|
|
TAB (000003) *99003000**99004000**99005000* 00204400
|
|
UNDERLINE (000003)*99002000* 99006000 00039000 00204500
|
|
* FINISH ; 00204600
|
|
COMMENT DOCUMENT "PART 3" 00204700
|
|
* UNDERLINE TITLE CENTER 00204800
|
|
E.T.M. 279 (20 NOV 1965). 00204900
|
|
* DEFINE 1 = SKIP 2 PARAGRAPH 5,67,0 * 00205000
|
|
* DEFINE 2 = SKIP PAR * 00205100
|
|
* DEFINE 3 = SKIP GLOSSARY 5,25,67 * 00205200
|
|
* DEFINE 4 = SKIP GLOS * 00205300
|
|
* DEFINE 5 = SKIP GLOSSARY 8,30,67 * 00205400
|
|
* DEFINE 6 = SKIP PARAGRAPH 20,67,0 * 00205500
|
|
* DEFINE 7 = PAGE INDEX UNDERLINE * 00205600
|
|
* DEFINE 8 = SKIP GLOSSARY 10,25,67 * 00205700
|
|
* DEFINE 9 = SKIP GLOSSARY 10,35,67 * 00205800
|
|
* DEFINE 10 = SKIP 2 TAB 5, 25, 45 * 00205900
|
|
* DEFINE 11 = SKIP 2 TAB 5,35 * 00206000
|
|
* DEFINE 12 = SKIP 2 TAB 5 * 00206100
|
|
* DEFINE 13 = SKIP 2 INDENT 3 INDEX UNDERLINE * 00206200
|
|
* DEFINE 14 = PAGE INDENT 3 INDEX UNDERLINE * 00206300
|
|
* PAGEID 1, " 3-" 00206400
|
|
* PAGE CENTER UNDERLINE 00206500
|
|
A CROSS REFERENCE,FLOW CHART AND DOCUMENT EDITING PROGRAM (PART THREE). 00206600
|
|
* SKIP CENTER TITLE CLEAR 00206700
|
|
BY GLYN HUGH JONES AND JOAN G. DUNSHEE 00206800
|
|
* SKIP CENTER 00206900
|
|
TECHNICAL STAFF 00207000
|
|
BURROUGHS CORPORATION 00207100
|
|
PASADENA 00207200
|
|
* SKIP 3 INDEX CENTER UNDERLINE 00207300
|
|
SUMMARY 00207400
|
|
* 1 00207500
|
|
A SYNTACTICALLY DEFINED FLOW CHART LANGUAGE IS DESCRIBED 00207600
|
|
TOGETHER WITH A DESCRIPTION 00207700
|
|
OF THE FACILITIES PRESENTLY AVAILABLE FOR GENERATING AND MAINTAINING 00207800
|
|
FLOW CHARTS 00207900
|
|
ON A BURROUGHS B5500 COMPUTER. 00208000
|
|
* SKIP 6 TAB 2,40 00208100
|
|
AUTHORS:/APPROVED:/ 00208200
|
|
* SKIP 4 TAB 2,40 00208300
|
|
-------------------- / -------------------- / 00208400
|
|
GLYN H. JONES AND/ J. F. KALBACH/ 00208500
|
|
* SKIP TAB 2,40 00208600
|
|
JOAN G. DUNSHEE/ MANAGER,TECHNICAL STAFF/ 00208700
|
|
* SKIP 1 INDENT 30 00208800
|
|
ORIGINAL ISSUE SEP.27, 1964 00208900
|
|
FIRST REVISED ISSUE OCT. 27, 1965 00209000
|
|
SECOND REVISED ISSUE NOV. 21, 1966 00209100
|
|
THIRD REVISED ISSUE OCT.7, 1968 00209110
|
|
* 7 00209200
|
|
INTRODUCTION 00209300
|
|
* 2 00209400
|
|
THERE HAS ALWAYS BEEN A NEED TO AUTOMATE 00209500
|
|
(AS FAR AS POSSIBLE) THE 00209600
|
|
GENERATION AND UPDATING OF FLOW CHARTS RELATING TO THE DESCRIPTION 00209700
|
|
AND OPERATION OF COMPUTER PROGRAMS. 00209800
|
|
* 2 00209900
|
|
SEVERAL FLOW CHART GENERATING SYSTEMS HAVE BEEN DEVELOPED, 00210000
|
|
SUCH AS "AFLOW", "AUTOCHART", "80FLOW", ETC, TO ASSIST IN THE 00210100
|
|
DOCUMENTATION OF COMPUTER PROGRAMS AND SOFTWARE SYSTEMS. 00210200
|
|
* 2 00210300
|
|
SEVERAL OF THESE SYSTEMS REQUIRE A CONSIDERABLE EFFORT BY THE 00210400
|
|
USER TO LAYOUT THE FLOW CHART AND SUPPLY ALL THE CONNECTION DETAILS 00210500
|
|
OR THE USER IS 00210600
|
|
REQUIRED TO USE RESTRICIVE FIXED FIELD INPUT FORMS, OTHERS 00210700
|
|
REQUIRE SYNTACTICALLY CORRECT ALGOL OR FORTRAN PROGRAMS AND THESE 00210800
|
|
PRODUCE VERY DETAILED FLOW CHARTS. 00210900
|
|
* 2 00211000
|
|
FLOW CHARTS DESCRIBED USING THE LANGUAGE PRESENTED IN THIS NOTE MAY BE 00211100
|
|
EMBEDDED WITHIN "COMMENT" PORTIONS OF THE VARIOUS FREE FIELD 00211200
|
|
LANGUAGES SUCH AS ALGOL, ESPOL, AND BPL. 00211300
|
|
* 2 00211400
|
|
THE FLOW CHART GENERATION PORTION 00211500
|
|
OF THE XREF PROGRAM SCANS THE DESIGNATED 00211600
|
|
SOURCE INPUT FILES (AS DESCRIBED IN PART ONE) FOR COMMENTS 00211700
|
|
WHICH BEGIN WITH "COMMENT FLOW". SUCH COMMENTS ARE USED UNTIL 00211800
|
|
A "FINISH" OR "QUIT" IS FOUND. IF A "FINISH" IS FOUND THEN MORE 00211900
|
|
FLOWCHART COMMENTS ARE SOUGHT AND IF A "QUIT" IS FOUND THEN 00212000
|
|
FLOWCHART GENERATION IS TERMINATED. 00212100
|
|
SINCE SEMICOLONS ARE NOT DEFINED TO BE REQUIRED IN THE FLOW CHART 00212200
|
|
LANGUAGE A SEMI COLON SHOULD FOLLOW THE "FINISH" OR "QUIT" 00212300
|
|
TO CLOSE OUT THE COMMENT. 00212400
|
|
* 7 00212500
|
|
SYNTAX CONVENTIONS. 00212600
|
|
*1 00212700
|
|
THE SYNTAX OF THE FLOW CHART 00212800
|
|
LANGUAGE IS DESCRIBED THROUGH THE USE OF METALINGUISTI00212900
|
|
C SYMBOLS. THESE SYMBOLS HAVE THE FOLLOWING MEANINGS: 00213000
|
|
* 1 00213100
|
|
LEFT AND RIGHT BROKEN BRACKETS "<" AND ">" ARE USED TO CONTAIN ONE 00213200
|
|
OR MORE CHARACTERS REPRESENTING A METALINGUISTIC VARIABLE WHOSE VALUE 00213300
|
|
IS GIVEN BY A METALINGUISTIC FORMULA. 00213400
|
|
*1 00213500
|
|
THE SYMBOL "::=" MEANS "IS DEFINED TO BE" AND SEPARATES THE METALINGUIST00213600
|
|
IC VARIABLE ON THE LEFT OF THE FORMULA FROM ITS DEFINITION ON THE 00213700
|
|
RIGHT. 00213800
|
|
*1 00213900
|
|
THE SYMBOL "/" MEANS "OR". THIS SYMBOL SEPARATES MULTIPLE DEFINITIONS 00214000
|
|
OF A METALINGUISTIC VARIABLE. 00214100
|
|
*1 00214200
|
|
LESS-THAN-OR-EQUAL AND GREATER-THAN-OR-EQUAL SIGNS, "{" AND"}", ARE 00214300
|
|
USED TO ENCLOSE METALINGUISTIC VARIABLES 00214400
|
|
WHICH ARE DEFINED BY THE MEANING OF THE ENGLISH LANGUAGE EXPRESSION 00214500
|
|
CONTAINED WITHIN THE BRACES. THIS FORMULATION IS USED ONLY WHEN IT IS 00214600
|
|
IMPOSSIBLE OR IMPRACTICAL TO USE A METALINGUISTIC FORMULA. 00214700
|
|
* 1 00214800
|
|
THE BRACKETS "[" AND "]" ARE USED TO ENCLOSE GROUPS OF 00214900
|
|
METALINGUISTIC VARIABLES WHICH MAY BE PERMUTED IN ANY ORDER. EXAMPLE: 00215000
|
|
* SKIP 00215100
|
|
<D> ::= [<A> B <C>] IS EQUIVALENT TO :- 00215200
|
|
* SKIP 00215300
|
|
<D> ::= <A> B <C> / <A> <C> B / 00215400
|
|
B <A> <C> / B <C> <A> / 00215500
|
|
<C> <A> B / <C> B <A> 00215600
|
|
*1 00215700
|
|
THE ABOVE METALINGUISTIC SYMBOLS ARE USED IN FORMING A METALINGUISTIC FO00215800
|
|
RMULA. A METALINGUISTIC FORMULA IS A RULE WHICH WILL PRODUCE AN ALLOWAB00215900
|
|
LE SEQUENCE OF CHARACTERS AND/OR SYMBOLS. THE ENTIRE SET OF SUCH FORMUL00216000
|
|
AS DEFINES THE CONSTRUCTS OF THE FLOW CHART LANGUAGE. 00216100
|
|
*1 00216200
|
|
ANY MARK OR SYMBOL IN A METALINGUISTIC FORMULA WHICH IS NOT ONE OF THE A00216300
|
|
BOVE METALINGUISTIC SYMBOLS DENOTES ITSELF. 00216400
|
|
*1 00216500
|
|
FLOW CHART 00216600
|
|
CONVENTIONS USED IN WRITING SYNTAX ARE ILLUSTRATED BY THE FOLLOWING 00216700
|
|
EXAMPLE: 00216800
|
|
* SKIP 00216900
|
|
<IDENTIFIER> ::= <LETTER> / <IDENTIFIER><LETTER> / <IDENTIFIER><DIGIT> 00217000
|
|
*1 00217100
|
|
THIS METALINGUISTIC FORMULA IS READ AS FOLLOWS: AN IDENTIFIER IS D00217200
|
|
EFINED TO BE A LETTER, OR AN IDENTIFIER FOLLOWED BY A LETTER, OR AN IDEN00217300
|
|
TIFIER FOLLOWED BY A DIGIT. 00217400
|
|
*1 00217500
|
|
THE METALINGUISTIC FORMULA DEFINES A RECURSIVE RELATIONSHIP BY WHICH A C00217600
|
|
ONSTRUCT CALLED AN IDENTIFIER MAY BE FORMED. EVALUATION OF THE FORMULA 00217700
|
|
SHOWS THAT AN IDENTIFIER BEGINS WITH A LETTER. THE LETTER MAY STAND ALON00217800
|
|
E, OR MAY BE FOLLOWED BY ANY MIXTURE OF LETTERS AND DIGITS. 00217900
|
|
* 7 00218000
|
|
FLOW CHART SYNTAX 00218100
|
|
<FLOW BLOCK>::= "COMMENT FLOW" <START PART> <TITLE PART> * 00218200
|
|
<FLOW SECTIONS>*<CLOSE PART><SEMICOLON> 00218300
|
|
<START PART> ::= START / START <PAGE ID PART> / <PAGE ID PART> / 00218400
|
|
<EMPTY> 00218500
|
|
<CLOSE PART> ::= QUIT / FINISH / <EMPTY> 00218600
|
|
<TITLE PART> ::= TITLE <CONTENTS> / <EMPTY> 00218700
|
|
<FLOW SECTIONS> ::= <SECTION> / <FLOW SECTIONS> * <SECTION> 00218800
|
|
<SECTION> ::= BEGIN <SECTION BODY>* END 00218900
|
|
<SECTION BODY> ::= <FLOW BOX> / <SECTION BODY> * <FLOW BOX> 00219000
|
|
<CONTENTS> ::= {ANY STRING OF CHARACTERS NOT CONTAINING "*" OR "%"} 00219100
|
|
<FLOW BOX> ::= <LABEL> : <FUNCTIONAL BOX> / <FUNCTIONAL BOX> / 00219200
|
|
<COMMENT STATEMENT> / <SECTION HEADER> / 00219300
|
|
<PUNCH CONTROL> / 00219302
|
|
<CODE PART> <FLOW LINE CONTROLS> / 00219400
|
|
<TABLE PART> <FLOW LINE CONTROLS> 00219500
|
|
<SECTION HEADER> ::= HEAD <CONTENTS> / HEADING <CONTENTS> 00219600
|
|
<LABEL> ::= <LETTER> / <LABEL> <LETTER> / <LABEL> <DIGIT> 00219700
|
|
<COMMENT STATEMENT> ::= COMMENT <CONTENTS> 00219800
|
|
<PUNCH CONTROL> ::= PUNCH / <EMPTY> 00219802
|
|
<FUNCTIONAL BOX> ::= <BASIC BOX> / <CONTROL BOX> / <LAYOUT CONTROL> 00219900
|
|
<BASIC BOX> ::= <BASIC BOX PART> <CONTENTS> 00220000
|
|
<BASIC BOX PART> ::= BOX / <NON-RESERVED WORD> 00220100
|
|
<NON-RESERVED WORD> ::= {ANY IDENTIFIER NOT USED IN FLOW CHART SYNTAX} 00220200
|
|
<CONTROL BOX> ::= <TEST BOX> / <SWITCH BOX> / <SIMPLE CONTROL BOX> / 00220300
|
|
<ENTER BOX> / <EXIT BOX> 00220400
|
|
/ <ITERATION BOX> 00220500
|
|
<SIMPLE CONTROL BOX> ::= <CONTROL TYPE PART> <CONTENTS> / 00220600
|
|
GO TO <LABEL> / NOTE <CONTENTS> 00220700
|
|
<CONTROL TYPE PART> ::= TERM / TERMINATE / BOXONLY 00220800
|
|
<TEST BOX> ::= <TEST CUE PART> <TEST BOX PART> 00220900
|
|
<CONDITIONAL BRANCH PART> 00221000
|
|
<TEST CUE PART> ::= TEST / IF / IS / DOES / WAS 00221100
|
|
<TEST BOX PART> ::= {ANY STRING OF CHARACTERS NOT CONTAINING 00221200
|
|
"*","NO","YES","TRUE","FALSE","THEN"} 00221300
|
|
<CONDITIONAL BRANCH PART> ::= <CONDITION> <ACTION PART> 00221400
|
|
<CONDITION> ::= TRUE / FALSE / YES / NO / THEN 00221500
|
|
<ACTION PART> ::= GO TO <LABEL> / GO TO <LABEL> ELSE GO TO <LABEL> 00221600
|
|
/ ( <SECTION BODY>*) / (<SECTION BODY>*) ELSE 00221700
|
|
(<SECTION BODY>*) 00221800
|
|
<ITERATION BOX> ::= GENSYM: <TEST CUE PART> <TEST BOX PART> 00221900
|
|
<CONDITION> (<SECTION BODY>* GO TO GENSYM*) 00222000
|
|
<SWITCH BOX> ::= SWITCH <SWITCH BOX PART> GO TO <SWITCH LIST> 00222100
|
|
<SWITCH BOX PART> ::= {ANY STRING OF CHARACTERS NOT CONTAINING 00222200
|
|
"*","GO"} 00222300
|
|
<SWITCH LIST> ::= <LABEL PART> / <SWITCH LIST>, <LABEL PART> 00222400
|
|
<LABEL PART> ::= <LABEL> / <LABEL> (<LABEL INDEX>) 00222500
|
|
<LABEL INDEX> ::= {UNSIGNED INTEGER OF NOT MORE THAN 3 DIGITS} 00222600
|
|
<ENTER BOX> ::= ENTER 00222700
|
|
<EXIT BOX> ::= EXIT 00222800
|
|
<LAYOUT CONTROL> ::= <PAGE ID PART> / <PAGE PART> / <COLUMN PART> / 00222900
|
|
<MAXCOL PART> / <DATE PART> / <LEFTJUSTIFY PART> 00223000
|
|
<DATE PART> ::= DATE / DATE CLEAR / <EMPTY> 00223100
|
|
<MAXCOL PART> ::= MAXCOL <UNSIGNED INTEGER> 00223200
|
|
<LEFTJUSTIFY PART> ::= LEFTJUST / LEFTJUST NO 00223300
|
|
<PAGE PART> ::= PAGE <PAGE SKIP COUNT> / PAGE <INSERT PART> / 00223400
|
|
PAGEINC <PAGE INCREMENT> / <PAGEID PART> / 00223500
|
|
<PAGEID PART> <PAGE NMBR FORMAT> / <EMPTY> 00223600
|
|
<PAGE ID PART> ::= PAGEID <PAGE NUMBER> , <ID POSITION> <PAGE IDENT> 00223700
|
|
<PAGE NUMBER> ::= <UNSIGNED INTEGER> 00223800
|
|
<ID POSITION> ::= + / <EMPTY> 00223900
|
|
<PAGE IDENT> ::= {A STRING OF UP TO SIX CHARACTERS BOUNDED BY QUOTES} 00224000
|
|
<INSERT PART> ::= INSERTPAGE <PAGE NUMBER> <INSERT SKIP COUNT> / 00224100
|
|
INSERTPAGE 00224200
|
|
<PAGE NMBR FORMAT> ::= DECIMALS / DECIMALS <PLACES> 00224300
|
|
<PLACES ::= {UNSIGNED INTEGER EIGHT OR LESS} 00224400
|
|
<INSERT SKIP COUNT> ::= , <PAGE SKIP COUNT> / <EMPTY> 00224500
|
|
<PAGE SKIP COUNT> ::= <UNSIGNED INTEGER> / <EMPTY> 00224600
|
|
<PAGE INCREMENT> ::= <UNSIGNED INTEGER> / <EMPTY> 00224700
|
|
<COLUMN PART> ::= COL / COLUMN 00224800
|
|
<CODE PART> ::= CODE / CODE <CODE LINE COUNT> 00224900
|
|
<CODE LINE COUNT> ::= <UNSIGNED INTEGER> 00225000
|
|
<TABLE PART> ::= TABLE / TABLE <TABLE LINE COUNT> 00225100
|
|
<TABLE LINE COUNT> ::= <UNSIGNED INTEGER> 00225200
|
|
<FLOW LINE CONTROLS> ::= SINGLE / DOUBLE / <EMPTY> 00225300
|
|
00225400
|
|
<PAGE LINE COUNT> ::= <UNSIGNED INTEGER> / <EMPTY> 00225500
|
|
<UNSIGNED INTEGER> ::= <DIGIT> / <UNSIGNED INTEGER><DIGIT> 00225600
|
|
<LETTER> ::= A/B/C/D/E/F/G/H/I/J/K/L/M/N/O/P/Q/R/S/T/U/V/W/X/Y/Z 00225700
|
|
<DIGIT> ::= 0/1/2/3/4/5/6/7/8/9 00225800
|
|
<SEMICOLON> ::= {THE USUAL MEANING} 00225900
|
|
* PAGE UNDERLINE INDEX 00226000
|
|
FLOW SEMANTICS 00226100
|
|
* 3 00226200
|
|
LEFTJUST = ALL LINES WILL BE LEFTJUSTIFIED UNTIL A "LEFTJUST NO" CONTROL00226300
|
|
IS READ. 00226400
|
|
* 4 00226500
|
|
LEFTJUST NO = RESUME CENTERING OF LINES. 00226600
|
|
* 3 00226700
|
|
DECIMALS N= PAGE NUMBER WILL BE FORMATTED WITH N PLACES TO THE RIGHT 00226800
|
|
OF THE DECIMAL POINT. IF N IS EMPTY IT IS SET TO TWO. 00226900
|
|
* 3 00227000
|
|
INSERTPAGE N,M = ASSIGN THE PAGE NUMBER N TO THE NEXT PAGE AND 00227100
|
|
CONSIDER THAT PAGE AS A LOGICAL UNIT. USE A PAGE INCREMENT OF M UNTIL A00227200
|
|
NEW "PAGE" OR "INSERTPAGE" CONTROL IS FOUND. IF N IS EMPTY IT IS 00227300
|
|
SET TO THE CURRENT NEXT PAGE. IF M IS EMPTY IT IS SET TO 1. 00227400
|
|
* 3 00227404
|
|
PUNCH = 00227406
|
|
IF MAXCOL IS GREATER THAN 2 IT IS RESET TO A VALUE OF 2. 00227410
|
|
EACH TIME A FLOW PAGE IS PRINTED IT IS ALSO WRITTEN ON THE FILE PNCH. 00227412
|
|
THE RECORDS ARE SEQUENCED IN STEPS OF 10 STARTING WITH 00000010. 00227414
|
|
FLOW CHARTS MAY BE GENERATED AND PUNCHED. 00227416
|
|
THE PUNCHED DECK MAY THEN BE USED AS A PATCH DECK TO A DOCUMENT THUS 00227418
|
|
ALLOWING FLOW CHARTS AND DOCUMENTS TO BE INTERLEAVED. 00227420
|
|
* 7 00227500
|
|
EXAMPLE OF A FLOW CHART DESCRIPTION. 00227600
|
|
COMMENT FLOW 00227700
|
|
START 00227800
|
|
PAGEID 1,"APP 3-" * 00227900
|
|
TITLE SAMPLE FLOW CHART PRODUCED BY THE XREF PROGRAM * 00228000
|
|
BEGIN 00228100
|
|
HEADING INTRODUCTION TO THE "BOXES" *ENTER* 00228200
|
|
BOX EACH SECTION IS DELIMITED BY A "BEGIN" AND "END" * 00228300
|
|
BOX SEVERAL "SECTIONS" COMPRISE A FLOW CHART 00228400
|
|
DESCRIPTION AND THE COLLECTION OF THE SECTIONS ARE 00228500
|
|
DELIMITED BY A "START <TITLE PART>" AND A "<FINISH PART>"*00228600
|
|
BOX SEVERAL DIFFERENT TYPES OF "BOXES" ARE ALLOWED 00228700
|
|
AND SAMPLES OF EACH ARE DESCRIBED BELOW * MAXCOL 2 * 00228800
|
|
BOX SUCCESSIVE "BOXES" ARE DELIMITED BY AN "*" *DATE** 00228900
|
|
BOXES WILL BE VERTICALLY CONNECTED IF THEY ARE ENTERED 00229000
|
|
THROUGH AN "ENTER" BOX OR A LABELLED BOX* 00229100
|
|
BOX THE FIRST IDENTIFIER FOUND AFTER A "*" IS 00229200
|
|
EXAMINED TO SEE IF IT IS FOLLOWED BY A COLON OR IF IT 00229300
|
|
IS A FLOW CHART RESERVED IDENTIFIER.. . IF IT 00229400
|
|
IS FOLLOWED BY A COLON IT WILL BE CONSIDERED TO BE 00229500
|
|
A LABEL. OTHERWISE, IF IT IS NOT A RESERVED WORD, IT IS 00229600
|
|
ASSUMED TO BE THE FIRST WORD OF TEXT IN A BASIC BOX. * 00229700
|
|
BOX THE NEXT SECTION WILL SHOW THE VARIOUS BOXES *EXIT* 00229800
|
|
END * 00229900
|
|
BEGIN 00230000
|
|
HEADING SAMPLE OF THE VARIOUS "BOXES". * ENTER * 00230100
|
|
BOX A FUNCTIONAL BOX MAY BE A BASIC BOX, A CONTROL BOX, 00230200
|
|
A LAYOUT CONTROL BOX, OR A NOTE BOX* 00230300
|
|
MORE: DOES A COLON FOLLOW THE FIRST IDENTIFIER 00230400
|
|
YES GO TO LABLEL* 00230500
|
|
TEST TEST WHETHER THE FIRST IDENTIFIER IS "BOX" -- 00230600
|
|
A BASIC RECTANGULAR BOX IS PRODUCED YES GO TO BASIC* 00230700
|
|
TEST IF THE FIRST IDENTIFIER IS "IF," "TEST," "IS," 00230800
|
|
"WAS," OR "DOES" THEN 00230900
|
|
GO TO TESTBOX * 00231000
|
|
TEST IF THE FIRST IDENTIFIER IS "SWITCH" 00231100
|
|
YES GO TO SWITCHL * 00231200
|
|
IF THE FIRST IDENTIFIER IS " TERM" OR 00231300
|
|
"TERMINATE" THEN GO TO TERML* 00231400
|
|
IF "BOXONLY" THEN GO TO BXONLY* 00231500
|
|
BOX IF THE FIRST IDENTIFIER IS "COMMENT" THEN THE 00231600
|
|
SOURCE INPUT IS SCANNED UNTIL AN "*" IS FOUND * 00231700
|
|
IF "CODE" OR "TABLE" WAS FOUND , TRANSFER CONTROL TO 00231800
|
|
CODEL OR TABLEL NO GO TO CONTIN* SWITCH 00231900
|
|
GO TO CODEL (0), TABLEL(1) * COL* 00232000
|
|
CONTIN: IS LAYOUT CONTROL BOX FOUND YES GO TO LAYLAB* 00232100
|
|
WAS THE FIRST IDENTIFIER "NOTE" YES GO TO NOTEBOX* 00232200
|
|
BOX IF IT WAS "GO TO" GENERATE A TRANSFER.. OTHERWISE 00232300
|
|
IT MUST BE A NON-RESERVED WORD * GO TO BASIC* 00232400
|
|
COL* 00232500
|
|
LABLEL: IF THE LABEL IS "GENSYM" THEN (GENERATE A LABEL*)*PROCESS 00232600
|
|
THE LABEL* GO TO MORE* 00232700
|
|
NOTE - THE BASIC PURPOSE OF GENSYM IS TO SIMPLIFY WRITING 00232800
|
|
LOOPS.. IT IS EXPECTED THAT A TEST ON SOME CONTROL 00232900
|
|
VARIABLE WILL BE MADE AFTER WHICH A SEQUENCE OF BOXES 00233000
|
|
ENDING WITH A "GO TO GENSYM" WILL BE CONDITIONALLY 00233100
|
|
EXECUTED.. NESTED GENSYMS ARE POSSIBLE* 00233200
|
|
BASIC: BOX CONSTRUCT A RECTANGULAR BOX WITH ALL OF THE NON-BLANK 00233300
|
|
CHARACTERS FROM THE SOURCE FILES UP TO THE NEXT "*".. 00233400
|
|
THE WORD "BOX" WILL NOT BE PRINTED IF FIRST* 00233500
|
|
GO TO MORE *COL* 00233600
|
|
TESTBOX: A BOX IS BUILT UNTIL A "NO", "YES", "THEN", "TRUE" OR 00233700
|
|
"FALSE" IS FOUND FOLLOWED BY EITHER 00233800
|
|
"GO TO <LABEL>" OR A LEFT PARENTHESIS * 00233900
|
|
IF A "GO TO" WAS FOUND THEN 00234000
|
|
(BUILD A BOX WITH APPROPRIATE TRANSFERS*) ELSE 00234100
|
|
(CREATE LABELS NECESSARY TO EXECUTE FOLLOWING BOXES 00234200
|
|
IF CONDITION HOLDS AND OTHERWISE BYPASS THEM*)* 00234300
|
|
THE WORD "TEST" WILL NOT BE PRINTED IF IT IS THE FIRST 00234400
|
|
WORD IN THE BOX* GO TO MORE* COL* 00234500
|
|
SWITCHL: BOX A BOX IS BUILT UNTIL A "GO TO" IS FOUND WHICH IS 00234600
|
|
FOLLOWED BY A LIST OF LABELS SEPARATED BY COMMAS. 00234700
|
|
EXAMPLE : - * 00234800
|
|
SWITCH CONTROL IS TRANSFERRED ACCORDING TO THE VALUE 00234900
|
|
OF SOME PARAMETER TO ONE OF THE LABELS FOLLOWING THE 00235000
|
|
"GO TO" GO TO BASIC, TESTBOX, SWITCHL,LAYLAB,MORE * COL* 00235100
|
|
NOTEBOX: CONTENTS OF NOTE ARE INCLUDED IN FLOW BUT DELIMITED BY 00235200
|
|
HORIZONTAL LINES* GO TO MORE* 00235300
|
|
NOTEBOX WHILE LINES ARE CENTERED IN THE VARIOUS BOXES, 00235400
|
|
THEY ARE LEFT-JUSTIFIED IN NOTES* 00235500
|
|
TERML: BOX A RECTANGULAR BOX IS CONSTRUCTED WITHOUT A 00235600
|
|
CONTINUATION FLOW BEYOND IT AND "TERM" OR "TERMINATE" 00235700
|
|
IS WRITTEN* 00235800
|
|
GO TO MORE* 00235900
|
|
BXONLY: A BOX IS DRAWN WITH NO CONTINUATION LINE FROM IT * 00236000
|
|
GO TO MORE* 00236100
|
|
CODEL: INCLUDE N LINES OF CODE IN THE FLOW, WHERE N IS THE CODE 00236200
|
|
LINE COUNT.. IF N IS MISSING, INCLUDE ALL CODE UNTIL A 00236300
|
|
PERCENT SIGN IS READ.* GO TO MORE* COL* 00236400
|
|
TABLEL: INCLUDE N LINES OF A TABLE IN THE FLOW, WHERE N IS THE 00236500
|
|
TABLE LINE COUNT.. IF N IS MISSING, INCLUDE ALL OF TABLE 00236600
|
|
UNTIL PERCENT SIGN IS READ.* GO TO MORE* 00236700
|
|
LAYLAB: BOX A NEW PAGE MAY BE FORMED BY USING "PAGE N" WHERE 00236800
|
|
N IS AN UNSIGNED INTEGER OR EMPTY.. THE PAGE NUMBER IS 00236900
|
|
INCREASED BY THE VALUE OF N (ONE IF N IS EMPTY) * 00237000
|
|
BOX A NEW PAGE IDENTIFICATION MAY BE INTRODUCED BY USING 00237100
|
|
"PAGEID N, + STRING" WHERE N IS THE STARTING PAGE 00237200
|
|
NUMBER AND THE PLUS SIGN INDICATES THAT THE "STRING" 00237300
|
|
IS TO BE PRINTED TO THE RIGHT OF THE PAGE NUMBER.. IF THE 00237400
|
|
PLUS IS MISSING THEN THE STRING IS PRINTED TO THE LEFT 00237500
|
|
OF THE PAGE NUMBER * 00237600
|
|
BOX THE PAGE INCREMENT IS NORMALLY SET EQUAL TO ONE BUT 00237700
|
|
IT MAY BE CHANGED TO A VALUE N BY USING "PAGEINC N" *COL* 00237800
|
|
BOX THE PRINTED FLOW CHART IS COMPOSED OF THREE VERTICAL 00237900
|
|
COLUMNS AND A NEW COLUMN WILL BE STARTED IF "COL" OR 00238000
|
|
"COLUMN" IS USED * 00238100
|
|
BOX LAYOUTS WITH ONE OR TWO COLUMNS MAY BE OBTAINED BY 00238200
|
|
USING "MAXCOL N" WHERE N IS 1, 2, OR 3 * 00238300
|
|
NOTE ABOUT LINE CONTROLS: A PERIOD "." FOLLOWED BY 00238400
|
|
A SPACE WILL CAUSE A NEW LINE WITHIN THE BOX TO BE 00238500
|
|
STARTED.. TO END A SENTENCE WITH A PERIOD, USE TWO PERIODS00238600
|
|
BEFORE SPACING.. . 00238700
|
|
THIS HOWEVER WILL CAUSE SKIPPING TO THE NEXT LINE AS WELL 00238800
|
|
AS PRINTING THE PERIOD. TO GET A PERIOD WITH NO SKIP TO 00238900
|
|
THE NEXT LINE, USE THE CONSTRUCT ".#".# THE "#" WILL 00239000
|
|
COME OUT AS A BLANK.. 00239100
|
|
WITHIN A NOTE A NEW LEFT-JUSTIFIED LINE IS BEGUN 00239200
|
|
FOLLOWING A PERIOD AND SPACE.* 00239300
|
|
BOX EACH "BEGIN" WILL START WITH A NEW PAGE * 00239400
|
|
GO TO MORE* 00239500
|
|
NOTE <FLOW LINE CONTROLS> ARE NOT PRESENTLY IMPLEMENTED* 00239600
|
|
NOTE "FINISH" SIGNALS THE END OF A FLOW CHART AND WILL 00239700
|
|
CAUSE TABLE OF CONTENTS TO BE PRINTED.. "QUIT" WILL STOP 00239800
|
|
THE SEARCH FOR FLOW CHARTS.. IF NEITHER PRECEDES THE 00239900
|
|
SEMICOLON, THE NEXT FLOW COMMENT WILL BE TREATED AS A 00240000
|
|
CONTINUATION OF THE LAST CHART* 00240100
|
|
NOTE THE ABOVE NOTE IS ONLY IMPLEMENTED FOR "QUIT" 00240200
|
|
AND "FINISH"* 00240300
|
|
END * QUIT * 00240400
|
|
* PAGEID 1 , "APP 3-" 00240500
|
|
* 7 00240600
|
|
FLOW CHART EXAMPLE (WITH BOXES). 00240700
|
|
* PAGEID 7,"APP 3-" 00240800
|
|
* 7 00240900
|
|
FLOW CHART LABEL IDENTIFIERS CROSS REFERENCE LIST 00241000
|
|
BASIC (000004) APP 3- 2 APP 3- 3 *APP 3- 3* APP 3- 4 00241100
|
|
BXONLY (000002) APP 3- 2 *APP 3- 5* 00241200
|
|
CODEL (000002) APP 3- 2 *APP 3- 5* 00241300
|
|
CONTIN (000002) APP 3- 2 *APP 3- 3* 00241400
|
|
G0001 (000002) APP 3- 3 *APP 3- 3* 00241500
|
|
G0002 (000002) APP 3- 4 *APP 3- 4* 00241600
|
|
G0003 (000002) APP 3- 4 *APP 3- 4* 00241700
|
|
LABLEL (000002) APP 3- 2 *APP 3- 3* 00241800
|
|
LAYLAB (000003) APP 3- 3 APP 3- 4 *APP 3- 5* 00241900
|
|
MORE (000011) *APP 3- 2* APP 3- 3 APP 3- 3 APP 3- 4 APP 3- 4 00242000
|
|
APP 3- 5 APP 3- 5 APP 3- 5 APP 3- 5 APP 3- 5 00242100
|
|
APP 3- 6 00242200
|
|
NOTEBOX (000002) APP 3- 3 *APP 3- 5* 00242300
|
|
SWITCHL (000003) APP 3- 2 *APP 3- 4* APP 3- 4 00242400
|
|
TABLEL (000002) APP 3- 2 *APP 3- 5* 00242500
|
|
TERML (000002) APP 3- 2 *APP 3- 5* 00242600
|
|
TESTBOX (000003) APP 3- 2 *APP 3- 4* APP 3- 4 00242700
|
|
* FINISH ; 00242800
|
|
COMMENT DOCUMENT "PART 4" 00242900
|
|
* DEFINE 1 = SKIP 2 PARAGRAPH 5,67,0 * 00243000
|
|
* DEFINE 2 = SKIP PAR * 00243100
|
|
* DEFINE 3 = SKIP GLOSSARY 5,25,67 * 00243200
|
|
* DEFINE 4 = SKIP GLOS * 00243300
|
|
* DEFINE 5 = PAGE UNDERLINE INDENT 2 INDEX * 00243400
|
|
* DEFINE 6 = SKIP PARAGRAPH 20,67,0 * 00243500
|
|
* DEFINE 7 = PAGE INDEX UNDERLINE INDENT 1 * 00243600
|
|
* DEFINE 8 = CODE SKIP * 00243700
|
|
* DEFINE 9 = CODE SKIP 2 INDEX * 00243800
|
|
* DEFINE 11 = CODE SKIP 2 INDEX 2 * 00243900
|
|
* DEFINE 21 = SKIP 2 CODE 2 INDEX * 00244000
|
|
* DEFINE 22 = SKIP 2 CODE 3 INDEX * 00244100
|
|
* DEFINE 23 = SKIP 2 CODE 4 INDEX * 00244200
|
|
* DEFINE 24 = SKIP 2 CODE 5 INDEX * 00244300
|
|
* DEFINE 25 = SKIP 2 CODE 6 INDEX * 00244400
|
|
* DEFINE 27 = SKIP 2 CODE 8 INDEX * 00244500
|
|
* DEFINE 31 = SKIP CODE 2 INDENT 5 INDEX * 00244600
|
|
* DEFINE 32 = SKIP CODE 3 INDENT 5 INDEX * 00244700
|
|
* DEFINE 33 = SKIP CODE 4 INDENT 5 INDEX * 00244800
|
|
* DEFINE 35 = SKIP CODE 6 INDENT 5 INDEX * 00244900
|
|
* PAGEID 0, " 4-" 00245000
|
|
* TITLE PAGE CENTER 00245100
|
|
A CROSS REFERENCE, FLOW CHART AND DOCUMENT EDITING PROGRAM (PART FOUR). 00245200
|
|
* SKIP CENTER 00245300
|
|
BY GLYN HUGH JONES 00245400
|
|
* SKIP CENTER 00245500
|
|
TECHNICAL STAFF 00245600
|
|
BURROUGHS CORPORATION 00245700
|
|
PASADENA 00245800
|
|
* SKIP 3 CENTER 00245900
|
|
SUMMARY 00246000
|
|
* 1 00246100
|
|
THE ALGOL PROGRAM WHICH PERFORMS THE FUNCTIONS DESCRIBED IN PARTS 00246200
|
|
1-3 OF THIS DOCUMENT IS BRIEFLY OUTLINED FOR THE USE OF THOSE 00246300
|
|
WHO NEED TO MAINTAIN THE PROGRAM THEMSELVES. 00246400
|
|
* SKIP 6 TAB 2,40 00246500
|
|
AUTHORS: / APPROVED/ 00246600
|
|
* SKIP 4 TAB 2,40 00246700
|
|
-------------------- / -------------------- / 00246800
|
|
GLYN H. JONES / J.F.KALBACH/ 00246900
|
|
* SKIP TAB 2,40 00247000
|
|
JOAN G. DUNSHEE/ MANAGER,TECHNICAL STAFF/ 00247100
|
|
* SKIP INDENT 30 00247200
|
|
MARCH 1967 00247300
|
|
* TITLE CLEAR INDEX PAGE 00247400
|
|
THIRD REVISED ISSUE OCT.7, 1968 00247410
|
|
1. INTRODUCTION 00247500
|
|
* 1 00247600
|
|
THIS DOCUMENT PRESENTS AN OUTLINE OF THE CROSS-REFERENCE PROGRAM, FOR T00247700
|
|
HE USE OF ANYONE WHO MAY NEED TO CHANGE OR MAINTAIN IT. THE 00247800
|
|
SIZE OF THE PROGRAM FORBIDS A DETAILED DESCRIPTION OF THE PROGRAM AT TH00247900
|
|
IS TIME, BUT HOPEFULLY THE BRIEF COMMENTS GIVEN HERE WILL SERVE AS 00248000
|
|
AN ORIENTATION OF SORTS. 00248100
|
|
* 1 00248200
|
|
THE STANDARD CROSS-REFERENCE IS DONE BY MEANS OF TWO SETS OF LINKED LIS00248300
|
|
TS. THE FIRST SET, KEPT IN THE ARRAY "TABLE", CONSISTS OF A LIST 00248400
|
|
FOR EVERY REFERENCEABLE CHARACTER. THE HEAD OF EACH SUCH LIST IS 00248500
|
|
GIVEN BY STACKHEAD[<CHARACTER>]. EACH LIST IN THIS SET CONTAINS ALL 00248600
|
|
CROSS-REFERENCED IDENTIFIERS BEGINNING WITH THAT LETTER, IN 00248700
|
|
ALPHABETICAL ORDER. 00248800
|
|
* 2 00248900
|
|
THE SECOND SET OF LISTS, CONTAINED IN THE ARRAY "SEQLINKS", CONSISTS 00249000
|
|
OF A LIST FOR EACH IDENTIFIER GIVING THE OCCURENCES OF THAT IDENTIFIER. 00249100
|
|
THE "TABLE" ENTRY FOR THAT IDENTIFIER GIVES THE HEAD OF THE LIST (SEE 00249200
|
|
ABOVE). EACH ENTRY CONTAINS NOT THE ACTUAL SEQUENCE NUMBER BUT A 00249300
|
|
POINTER TO THE NUMBER IN A SEPARATE ARRAY, "CURSEQ". 00249400
|
|
* 2 00249500
|
|
ALMOST ALL REFERENCES TO THE ARRAYS INVOLVED ARE THROUGH THE 00249600
|
|
DEFINES NEAR THE BEGINNING OF THE PROGRAM. 00249700
|
|
* 2 00249800
|
|
IF THE CONTROL "LARGE" IS USED, A DIFFERENT SCHEME IS EMPLOYED. 00249900
|
|
EVERY TIME A CROSS-REFERENCEABLE ITEM IS FOUND, A RECORD CONSISTING OF 00250000
|
|
THAT ITEM PLUS THE CURRENT SEQUENCE NUMBER IS WRITTEN OUT ON DISK. 00250100
|
|
WHEN THE INPUT IS EXHAUSTED, THE ACCUMULATED RECORDS ARE SORTED BY THE 00250200
|
|
"SORT" INTRINSIC. 00250300
|
|
* END ; 00250400
|
|
COMMENT BLANK OUT DEFINES % % % % % % % % % % 00250500
|
|
DEFINE 00250600
|
|
ABOUTV = 250 # , 00250700
|
|
ABSV = 054 # , 00250800
|
|
ACCEPTV = 251 # , 00250900
|
|
ACCESSV = 252 # , 00251000
|
|
ACTUALV = 253 # , 00251100
|
|
ADDRESSV = 100 # , 00251200
|
|
ADVANCINGV = 254 # , 00251300
|
|
AFTERV = 255 # , 00251400
|
|
ALLV = 256 # , 00251500
|
|
ALPHAV = 055 # , 00251600
|
|
ALPHABETICV = 257 # , 00251700
|
|
ALPHANUMERICV = 258 # , 00251800
|
|
ALTERV = 260 # , 00251900
|
|
ALTERNATEV = 259 # , 00252000
|
|
ANV = 261 # , 00252100
|
|
ANDV = 069 # , 00252200
|
|
APPLYV = 262 # , 00252300
|
|
ARCTANV = 056 # , 00252400
|
|
AREV = 263 # , 00252500
|
|
AREAV = 264 # , 00252600
|
|
AREASV = 265 # , 00252700
|
|
ARRAYV = 078 # , 00252800
|
|
ASCENDINGV = 266 # , 00252900
|
|
ASSEMBLEV = 101 # , 00253000
|
|
ASSIGNV = 267 # , 00253100
|
|
ATV = 268 # , 00253200
|
|
AUTHORV = 269 # , 00253300
|
|
BEFOREV = 270 # , 00253400
|
|
BEGINV = 004 # , 00253500
|
|
BEGINNINGV = 271 # , 00253600
|
|
BINARYV = 102 # , 00253700
|
|
BITSV = 274 # , 00253800
|
|
BLANKV = 277 # , 00253900
|
|
BLOCKV = 278 # , 00254000
|
|
BOOLEANV = 075 # , 00254100
|
|
BOXV = 006 # , 00254200
|
|
BOXONLYV = 030 # , 00254300
|
|
BRTV = 142 # , 00254400
|
|
BYV = 280 # , 00254500
|
|
BZV = 281 # , 00254600
|
|
CASEV = 103 # , 00254700
|
|
CCXV = 144 # , 00254800
|
|
CDCV = 145 # , 00254900
|
|
CFEV = 147 # , 00255000
|
|
CFLV = 146 # , 00255100
|
|
CFXV = 148 # , 00255200
|
|
CHANNELV = 285 # , 00255300
|
|
CHARACTERV = 286 # , 00255400
|
|
CHARACTERSV = 287 # , 00255500
|
|
CHECKV = 288 # , 00255600
|
|
CHRV = 901 # , 00255700
|
|
CHSV = 151 # , 00255800
|
|
CIV = 902 # , 00255900
|
|
CLV = 289 # , 00256000
|
|
CLASSV = 290 # , 00256100
|
|
CLOSEV = 104 # , 00256200
|
|
CMPV = 292 # , 00256300
|
|
COBOLV = 294 # , 00256400
|
|
COCV = 149 # , 00256500
|
|
CODEV = 029 # , 00256600
|
|
COLV = 023 # , 00256700
|
|
COLUMNV = 023 # , 00256800
|
|
COMV = 150 # , 00256900
|
|
COMMENTV = 007 # , 00257000
|
|
COMPUTEV = 297 # , 00257100
|
|
COMPUTATIONALV = 295 # , 00257200
|
|
CONFIGURATIONV = 298 # , 00257300
|
|
CONSTANTV = 299 # , 00257400
|
|
CONTAINSV = 300 # , 00257500
|
|
CONTROLV = 105 # , 00257600
|
|
CONVERSIONV = 301 # , 00257700
|
|
COPYV = 302 # , 00257800
|
|
CORRESPONDINGV = 303 # , 00257900
|
|
COSV = 060 # , 00258000
|
|
CPV = 304 # , 00258100
|
|
CPUV = 106 # , 00258200
|
|
CRDV = 107 # , 00258300
|
|
CSBV = 143 # , 00258400
|
|
CYCLEV = 306 # , 00258500
|
|
DATAV = 307 # , 00258600
|
|
DATEV = 026 # , 00258700
|
|
DBV = 903 # , 00258800
|
|
DBLV = 057 # , 00258900
|
|
DCV = 904 # , 00259000
|
|
DECV = 905 # , 00259100
|
|
DECLARATIVESV = 310 # , 00259200
|
|
DEFINEV = 079 # , 00259300
|
|
DELV = 153 # , 00259400
|
|
DEPENDINGV = 311 # , 00259500
|
|
DESCENDINGV = 312 # , 00259600
|
|
DIAV = 154 # , 00259700
|
|
DIAGNOSTICV = 313 # , 00259800
|
|
DIBV = 155 # , 00259900
|
|
DIGITV = 314 # , 00260000
|
|
DIGITSV = 315 # , 00260100
|
|
DISCV = 108 # , 00260200
|
|
DISKV = 109 # , 00260300
|
|
DISPLAYV = 316 # , 00260400
|
|
DIVS = 906 # , 00260500
|
|
DIVV = 061 # , 00260600
|
|
DIVIDEV = 317 # , 00260700
|
|
DIVIDEDV = 318 # , 00260800
|
|
DIVISIONV = 319 # , 00260900
|
|
DOV = 066 # , 00261000
|
|
DOESV = 033 # , 00261100
|
|
DOLLARV = 320 # , 00261200
|
|
DOUBLEV = 058 # , 00261300
|
|
DRUMV = 321 # , 00261400
|
|
DSV = 907 # , 00261500
|
|
DSCV = 110 # , 00261600
|
|
DUMPV = 059 # , 00261700
|
|
DUPV = 152 # , 00261800
|
|
ELSEV = 062 # , 00261900
|
|
ENDV = 005 # , 00262000
|
|
ENDINGV = 322 # , 00262100
|
|
ENTERV = 017 # , 00262200
|
|
ENTIERV = 053 # , 00262300
|
|
ENVIRONMENTV = 328 # , 00262400
|
|
EQUALV = 329 # , 00262500
|
|
EQUALSV = 330 # , 00262600
|
|
EQLV = 156 # , 00262700
|
|
EQVV = 052 # , 00262800
|
|
ERRORV = 331 # , 00262900
|
|
EVERYV = 332 # , 00263000
|
|
EXAMINEV = 333 # , 00263100
|
|
EXCEEDSV = 334 # , 00263200
|
|
EXITV = 018 # , 00263300
|
|
EXPV = 051 # , 00263400
|
|
GEQV = 163 # , 00263500
|
|
FALSEV = 011 # , 00263600
|
|
FCEV = 158 # , 00263700
|
|
FCLV = 157 # , 00263800
|
|
FCXV = 159 # , 00263900
|
|
FDV = 335 # , 00264000
|
|
FFXV = 161 # , 00264100
|
|
FILEV = 080 # , 00264200
|
|
FILLV = 081 # , 00264300
|
|
FILLERV = 339 # , 00264400
|
|
FINISHV = 002 # , 00264500
|
|
FIRSTV = 340 # , 00264600
|
|
FLAGV = 160 # , 00264700
|
|
FLOATV = 341 # , 00264800
|
|
FORV = 064 # , 00264900
|
|
FORMATV = 082 # , 00265000
|
|
FORWARDV = 083 # , 00265100
|
|
FROMV = 342 # , 00265200
|
|
FSV = 343 # , 00265300
|
|
GIVINGV = 344 # , 00265400
|
|
GOV = 013 # , 00265500
|
|
GREATERV = 345 # , 00265600
|
|
GTRV = 162 # , 00265700
|
|
HASHEDV = 346 # , 00265800
|
|
HEADV = 008 # , 00265900
|
|
HEADINGV = 008 # , 00266000
|
|
HLBV = 164 # , 00266100
|
|
HP2V = 166 # , 00266200
|
|
HUNTV = 165 # , 00266300
|
|
IAV = 111 # , 00266400
|
|
IDENTIFICATIONV = 350 # , 00266500
|
|
IDV = 349 # , 00266600
|
|
IDVV = 170 # , 00266700
|
|
IFV = 014 # , 00266800
|
|
IIOV = 179 # , 00266900
|
|
INCLUDEV = 353 # , 00267000
|
|
INPUTV = 354 # , 00267100
|
|
INSTALLATIONV = 356 # , 00267200
|
|
INTOV = 357 # , 00267300
|
|
INVALIDV = 358 # , 00267400
|
|
IORV = 175 # , 00267500
|
|
IMPV = 050 # , 00267600
|
|
INV = 049 # , 00267700
|
|
INAV = 171 # , 00267800
|
|
INBV = 172 # , 00267900
|
|
INIV = 174 # , 00268000
|
|
INTEGERV = 074 # , 00268100
|
|
INXV = 173 # , 00268200
|
|
IP1V = 177 # , 00268300
|
|
IP2V = 176 # , 00268400
|
|
IPSV = 178 # , 00268500
|
|
ISV = 033 # , 00268600
|
|
ISDV = 167 # , 00268700
|
|
ISNV = 168 # , 00268800
|
|
ITIV = 169 # , 00268900
|
|
JSV = 359 # , 00269000
|
|
JUMPV = 908 # , 00269100
|
|
JUSTIFIEDV = 360 # , 00269200
|
|
KEYV = 361 # , 00269300
|
|
KEYBOARDV = 362 # , 00269400
|
|
LABELV = 076 # , 00269500
|
|
LEADINGV = 363 # , 00269600
|
|
LEAVINGV = 364 # , 00269700
|
|
LEFTV = 365 # , 00269800
|
|
LEQV = 182 # , 00269900
|
|
LESSV = 366 # , 00270000
|
|
LIBRARYV = 367 # , 00270100
|
|
LITV = 909 # , 00270200
|
|
LINESV = 368 # , 00270300
|
|
LNV = 048 # , 00270400
|
|
LLLV = 181 # , 00270500
|
|
LNDV = 183 # , 00270600
|
|
LNGV = 184 # , 00270700
|
|
LOCV = 910 # , 00270800
|
|
LOCALV = 911 # , 00270900
|
|
LOCATIONV = 369 # , 00271000
|
|
LOCKV = 112 # , 00271100
|
|
LODV = 185 # , 00271200
|
|
LORV = 186 # , 00271300
|
|
LPV = 374 # , 00271400
|
|
LQVV = 187 # , 00271500
|
|
LSSV = 180 # , 00271600
|
|
MAXCOLV = 025 # , 00271700
|
|
MDV = 375 # , 00271800
|
|
MEMORYV = 190 # , 00271900
|
|
MFIDV = 379 # , 00272000
|
|
MINUSV = 380 # , 00272100
|
|
MODV = 091 # , 00272200
|
|
MODEV = 381 # , 00272300
|
|
MODULESV = 382 # , 00272400
|
|
MKSV = 188 # , 00272500
|
|
MONITORV = 090 # , 00272600
|
|
MOVEV = 383 # , 00272700
|
|
MTPV = 113 # , 00272800
|
|
MULV = 189 # , 00272900
|
|
MULTIPLEV = 386 # , 00273000
|
|
MULTIPLIEDV = 384 # , 00273100
|
|
MULTIPLYV = 385 # , 00273200
|
|
NABSV = 191 # , 00273300
|
|
NAMEV = 192 # , 00273400
|
|
NEGATIVEV = 387 # , 00273500
|
|
NEQV = 193 # , 00273600
|
|
NEXTV = 388 # , 00273700
|
|
NFLAGV = 194 # , 00273800
|
|
NOV = 032 # , 00273900
|
|
NOPV = 195 # , 00274000
|
|
NOTV = 084 # , 00274100
|
|
NOTEV = 027 # , 00274200
|
|
NUMV = 912 # , 00274300
|
|
NUMERICV = 391 # , 00274400
|
|
OCV = 394 # , 00274500
|
|
OCCURSV = 395 # , 00274600
|
|
OCTV = 913 # , 00274700
|
|
OFV = 114 # , 00274800
|
|
OFFV = 396 # , 00274900
|
|
OMITTEDV = 397 # , 00275000
|
|
ONV = 398 # , 00275100
|
|
OPENV = 115 # , 00275200
|
|
OPTIONALV = 399 # , 00275300
|
|
ORV = 068 # , 00275400
|
|
OTHERWISEV = 400 # , 00275500
|
|
OUTV = 067 # , 00275600
|
|
OUTPUTV = 401 # , 00275700
|
|
OVERFLOWV = 136 # , 00275800
|
|
OWNV = 093 # , 00275900
|
|
PAGEV = 019 # , 00276000
|
|
PAGEIDV = 022 # , 00276100
|
|
PAGEINCV = 024 # , 00276200
|
|
PCV = 404 # , 00276300
|
|
PCTV = 116 # , 00276400
|
|
PERFORMV = 405 # , 00276500
|
|
PICTUREV = 406 # , 00276600
|
|
PLACESV = 407 # , 00276700
|
|
PLUSV = 408 # , 00276800
|
|
POINTV = 409 # , 00276900
|
|
POLISHV = 196 # , 00277000
|
|
POSITIONV = 411 # , 00277100
|
|
POSITIVEV = 410 # , 00277200
|
|
PREPAREDV = 412 # , 00277300
|
|
PRINTERV = 117 # , 00277400
|
|
PRINTERSV = 413 # , 00277500
|
|
PRIORITYV = 414 # , 00277600
|
|
PRLV = 197 # , 00277700
|
|
PRNV = 118 # , 00277800
|
|
PROCEDUREV = 073 # , 00277900
|
|
PROCEEDV = 415 # , 00278000
|
|
PROTECTV = 417 # , 00278100
|
|
PTV = 418 # , 00278200
|
|
PUNCHV = 119 # , 00278300
|
|
PURGEV = 120 # , 00278400
|
|
QUITV = 003 # , 00278500
|
|
QUOTEV = 420 # , 00278600
|
|
RANDOMV = 421 # , 00278700
|
|
RANGEV = 422 # , 00278800
|
|
READV = 072 # , 00278900
|
|
READERV = 121 # , 00279000
|
|
READERSV = 423 # , 00279100
|
|
REALV = 077 # , 00279200
|
|
RECORDV = 426 # , 00279300
|
|
RECORDINGV = 424 # , 00279400
|
|
RECORDSV = 425 # , 00279500
|
|
RDFV = 206 # , 00279600
|
|
RDSV = 204 # , 00279700
|
|
RDVV = 205 # , 00279800
|
|
REDEFINESV = 428 # , 00279900
|
|
REELV = 122 # , 00280000
|
|
RELEASEV = 094 # , 00280100
|
|
REMARKSV = 430 # , 00280200
|
|
RENAMESV = 431 # , 00280300
|
|
RENAMINGV = 432 # , 00280400
|
|
REPLACINGV = 433 # , 00280500
|
|
RERUNV = 434 # , 00280600
|
|
RESERVEV = 435 # , 00280700
|
|
RESETV = 914 # , 00280800
|
|
RETURNV = 436 # , 00280900
|
|
REVERSEV = 095 # , 00281000
|
|
REVERSEDV = 437 # , 00281100
|
|
REWINDV = 123 # , 00281200
|
|
RFBV = 208 # , 00281300
|
|
RIGHTV = 439 # , 00281400
|
|
RGV = 438 # , 00281500
|
|
RNOV = 207 # , 00281600
|
|
ROUNDEDV = 440 # , 00281700
|
|
RRRV = 209 # , 00281800
|
|
RSBV = 198 # , 00281900
|
|
RTMV = 201 # , 00282000
|
|
RTNV = 202 # , 00282100
|
|
RSPV = 199 # , 00282200
|
|
RTRV = 203 # , 00282300
|
|
RTSV = 200 # , 00282400
|
|
RUNV = 441 # , 00282500
|
|
SAMEV = 442 # , 00282600
|
|
SAVEV = 085 # , 00282700
|
|
SBV = 915 # , 00282800
|
|
SCV = 916 # , 00282900
|
|
SDV = 444 # , 00283000
|
|
SECTIONV = 445 # , 00283100
|
|
SECURITYV = 446 # , 00283200
|
|
SEEKV = 124 # , 00283300
|
|
SEGMENTV = 447 # , 00283400
|
|
SEGMENTSV = 448 # , 00283500
|
|
SELECTV = 450 # , 00283600
|
|
SENTENCEV = 451 # , 00283700
|
|
SENTINELV = 452 # , 00283800
|
|
SEQUENCEDV = 453 # , 00283900
|
|
SEQUENTIALV = 454 # , 00284000
|
|
SETV = 917 # , 00284100
|
|
SFBV = 221 # , 00284200
|
|
SIV = 918 # , 00284300
|
|
SIGNV = 096 # , 00284400
|
|
SIGNEDV = 125 # , 00284500
|
|
SINV = 097 # , 00284600
|
|
SIZEV = 455 # , 00284700
|
|
SKIPV = 919 # , 00284800
|
|
SNV = 126 # , 00284900
|
|
SNDV = 220 # , 00285000
|
|
SORTV = 460 # , 00285100
|
|
SPACEV = 127 # , 00285200
|
|
SPACESV = 458 # , 00285300
|
|
SPOV = 128 # , 00285400
|
|
SQRTV = 092 # , 00285500
|
|
SSBV = 210 # , 00285600
|
|
SSFV = 213 # , 00285700
|
|
SSNV = 212 # , 00285800
|
|
SSPV = 214 # , 00285900
|
|
STARTV = 001 # , 00286000
|
|
STANDARDV = 461 # , 00286100
|
|
STATUSV = 462 # , 00286200
|
|
STDV = 216 # , 00286300
|
|
STEPV = 086 # , 00286400
|
|
STFV = 218 # , 00286500
|
|
STNV = 217 # , 00286600
|
|
STOPV = 463 # , 00286700
|
|
STREAMV = 089 # , 00286800
|
|
STSV = 215 # , 00286900
|
|
SUBV = 920 # , 00287000
|
|
SUBROUTINEV = 219 # , 00287100
|
|
SUBTRACTV = 464 # , 00287200
|
|
SUPERVISORV = 465 # , 00287300
|
|
SUPPRESSV = 470 # , 00287400
|
|
SWITCHV = 016 # , 00287500
|
|
SYV = 466 # , 00287600
|
|
SYMBOLICV = 467 # , 00287700
|
|
SYNCHRONIZEDV = 468 # , 00287800
|
|
SZV = 469 # , 00287900
|
|
TABLEV = 028 # , 00288000
|
|
TALLYV = 921 # , 00288100
|
|
TALLYINGV = 471 # , 00288200
|
|
TAPEV = 129 # , 00288300
|
|
TAPESV = 472 # , 00288400
|
|
TESTV = 033 # , 00288500
|
|
TERMV = 021 # , 00288600
|
|
TERMINATEV = 021 # , 00288700
|
|
TFBV = 222 # , 00288800
|
|
TFRV = 223 # , 00288900
|
|
THANV = 478 # , 00289000
|
|
THENV = 063 # , 00289100
|
|
THROUGHV = 479 # , 00289200
|
|
THRUV = 480 # , 00289300
|
|
TIMEV = 130 # , 00289400
|
|
TIMESV = 481 # , 00289500
|
|
TITLEV = 009 # , 00289600
|
|
TIOV = 225 # , 00289700
|
|
TOV = 012 # , 00289800
|
|
TOGGLEV = 922 # , 00289900
|
|
TOPV = 224 # , 00290000
|
|
TRACEV = 131 # , 00290100
|
|
TRBV = 226 # , 00290200
|
|
TRUEV = 010 # , 00290300
|
|
UAV = 132 # , 00290400
|
|
ULV = 133 # , 00290500
|
|
UNV = 134 # , 00290600
|
|
UNEQUALV = 483 # , 00290700
|
|
UNLOCKV = 484 # , 00290800
|
|
UNTILV = 070 # , 00290900
|
|
UPONV = 485 # , 00291000
|
|
USAGEV = 488 # , 00291100
|
|
USEV = 489 # , 00291200
|
|
USINGV = 490 # , 00291300
|
|
VAV = 132 # , 00291400
|
|
VALUEV = 088 # , 00291500
|
|
VALUESV = 491 # , 00291600
|
|
VARYINGV = 492 # , 00291700
|
|
VFIV = 227 # , 00291800
|
|
WASV = 033 # , 00291900
|
|
WDSV = 923 # , 00292000
|
|
WHENV = 493 # , 00292100
|
|
WHILEV = 065 # , 00292200
|
|
WITHV = 087 # , 00292300
|
|
WORDSV = 494 # , 00292400
|
|
WRITEV = 071 # , 00292500
|
|
XCHV = 228 # , 00292600
|
|
XITV = 229 # , 00292700
|
|
YESV = 031 # , 00292800
|
|
ZEROV = 496 # , 00292900
|
|
ZEROESV = 498 # , 00293000
|
|
ZEROSV = 497 # , 00293100
|
|
ZIPV = 135 # , 00293200
|
|
ZONV = 924 # , 00293300
|
|
ZSV = 499 # , 00293400
|
|
ANDV = 069 # , 00293500
|
|
ASSIGNV = 267 # , 00293600
|
|
BLOCKV = 278 # , 00293700
|
|
BACKSPACEV = 127 # , 00293800
|
|
CONTINUEV = 195 # , 00293900
|
|
COMPLEXV = 501 # , 00294000
|
|
COMMONV = 500 # , 00294100
|
|
CALLV = 017 # , 00294200
|
|
DOUBLEV = 058 # , 00294300
|
|
DOV = 066 # , 00294400
|
|
DIMENSIONV = 455 # , 00294500
|
|
DATAV = 307 # , 00294600
|
|
EQV = 156 # , 00294700
|
|
EXTERNALV = 367 # , 00294800
|
|
EQUIVALENCEV = 428 # , 00294900
|
|
ENTRYV = 502 # , 00295000
|
|
ENDV = 005 # , 00295100
|
|
FALSEV = 011 # , 00295200
|
|
FUNCTIONV = 073 # , 00295300
|
|
FORMATV = 082 # , 00295400
|
|
FILEV = 080 # , 00295500
|
|
GOTOV = 013 # , 00295600
|
|
GEV = 163 # , 00295700
|
|
GTV = 162 # , 00295800
|
|
GOV = 013 # , 00295900
|
|
INTEGERV = 074 # , 00296000
|
|
IFV = 014 # , 00296100
|
|
LEV = 182 # , 00296200
|
|
LTV = 180 # , 00296300
|
|
LOGICALV = 075 # , 00296400
|
|
NOTV = 084 # , 00296500
|
|
NEV = 193 # , 00296600
|
|
NAMELISTV = 503 # , 00296700
|
|
ORV = 068 # , 00296800
|
|
PUNCHV = 119 # , 00296900
|
|
PROGRAMV = 505 # , 00297000
|
|
PRINTV = 118 # , 00297100
|
|
PAUSEV = 504 # , 00297200
|
|
PRECISIONV = 058 # , 00297300
|
|
REWINDV = 123 # , 00297400
|
|
RETURNV = 436 # , 00297500
|
|
REALV = 077 # , 00297600
|
|
READV = 072 # , 00297700
|
|
SUBROUTINEV = 073 # , 00297800
|
|
STOPV = 463 # , 00297900
|
|
TRUEV = 010 # , 00298000
|
|
TOV = 012 # , 00298100
|
|
WRITEV = 071 # , 00298200
|
|
ZP1V = 230 # ; 00298300
|
|
COMMENT DOCUMENT* PAGE INDEX SKIP 2 * * * * * * * * * * * * * * * * 00298400
|
|
2. GLOBAL DECLARATIONS. 00298500
|
|
* INDEX INDENT 1 SKIP 3 * * * * * * * * * * * * * * * * * * * * * * * 00298600
|
|
FIRST FIVE PROGRAM VARIABLES. 00298700
|
|
* CODE 5; 00298800
|
|
INTEGER PRT; 00298900
|
|
BOOLEAN LISTOG; 00299000
|
|
BOOLEAN MONITOG; 00299100
|
|
BOOLEAN DUMPFLAG; 00299200
|
|
INTEGER ISEQ; 00299300
|
|
COMMENT DOCUMENT* SKIP CODE 2* * * * * * * * * * * * * * * * * * * * *; 00299400
|
|
SAVE ARRAY RESERVED[0:850]; 00299500
|
|
SAVE INTEGER ARRAY RESTACK[0:63]; 00299600
|
|
COMMENT DOCUMENT* 23 * * * * * * * * * * * * * * * * * * * * * * * * ; 00299700
|
|
PROCEDURE FILLJUNK(N); 00299800
|
|
VALUE N; 00299900
|
|
INTEGER N; 00300000
|
|
COMMENT INITIALIZES RESERVED ARRAYS ACCORDING TO DESIRED LANGUAGE; 00300100
|
|
BEGIN 00300200
|
|
LABEL LALG,LBPL,LCOB,LESP,LFORT,LFLO 00300300
|
|
,EXIT; 00300400
|
|
SWITCH CHOOSE ~ LALG,LBPL,LCOB,LESP,LFLO,LFORT 00300500
|
|
; 00300600
|
|
GO TO CHOOSE[N]; 00300700
|
|
LBPL: 00300800
|
|
FILL RESERVED[*] WITH 0, % BPL 00300900
|
|
OCT0000000006600000 , % 00006 00 00301000
|
|
OCT0000032122626060 , % 003ABS 00301100
|
|
OCT0000000014400001 , % 0000 |01 00301200
|
|
OCT0000072124245125 , % 007ADDRE 00301300
|
|
OCT6262606060606060 , % SS 00301400
|
|
OCT0000000006700003 , % 00006Y03 00301500
|
|
OCT0000052143473021 , % 005ALPHA 00301600
|
|
OCT0000000010500006 , % 00008Q06 00301700
|
|
OCT0000032145246060 , % 003AND 00301800
|
|
OCT0000000011600010 , % 00009 08 00301900
|
|
OCT0000052151512170 , % 005ARRAY 00302000
|
|
OCT0000000014500012 , % 0000 Q0# 00302100
|
|
OCT0000102162622544 , % 008ASSEM 00302200
|
|
OCT2243256060606060 , % BLE 00302300
|
|
OCT0000000000400000 , % 00000|00 00302400
|
|
OCT0000052225273145 , % 005BEGIN 00302500
|
|
OCT0000000014600017 , % 0000 0} 00302600
|
|
OCT0000062231452151 , % 006BINAR 00302700
|
|
OCT7060606060606060 , % Y 00302800
|
|
OCT0000000011300021 , % 00009H0A 00302900
|
|
OCT0000072246464325 , % 007BOOLE 00303000
|
|
OCT2145606060606060 , % AN 00303100
|
|
OCT0000000014700000 , % 0000 Y00 00303200
|
|
OCT0000042321622560 , % 004CASE 00303300
|
|
OCT0000000015000027 , % 0000:00G 00303400
|
|
OCT0000052343466225 , % 005CLOSE 00303500
|
|
OCT0000000000700031 , % 00000Y0I 00303600
|
|
OCT0000072346444425 , % 007COMME 00303700
|
|
OCT4563606060606060 , % NT 00303800
|
|
OCT0000000015100033 , % 0000:80[ 00303900
|
|
OCT0000072346456351 , % 007CONTR 00304000
|
|
OCT4643606060606060 , % OL 00304100
|
|
OCT0000000015200036 , % 0000:+0< 00304200
|
|
OCT0000032347646060 , % 003CPU 00304300
|
|
OCT0000000015300041 , % 0000:H0J 00304400
|
|
OCT0000032351246060 , % 003CRD 00304500
|
|
OCT0000000003200000 , % 00003+00 00304600
|
|
OCT0000042421632560 , % 004DATE 00304700
|
|
OCT0000000011700045 , % 00009Y0N 00304800
|
|
OCT0000062425263145 , % 006DEFIN 00304900
|
|
OCT2560606060606060 , % E 00305000
|
|
OCT0000000015400047 , % 0000:|0P 00305100
|
|
OCT0000042431622360 , % 004DISC 00305200
|
|
OCT0000000015500052 , % 0000:Q0$ 00305300
|
|
OCT0000042431624260 , % 004DISK 00305400
|
|
OCT0000000007500054 , % 00007Q0- 00305500
|
|
OCT0000032431656060 , % 003DIV 00305600
|
|
OCT0000000010200056 , % 00008+0; 00305700
|
|
OCT0000022446606060 , % 002DO 00305800
|
|
OCT0000000007200060 , % 00007+0 00305900
|
|
OCT0000062446642243 , % 006DOUBL 00306000
|
|
OCT2560606060606060 , % E 00306100
|
|
OCT0000000015600062 , % 0000: 0S 00306200
|
|
OCT0000032462236060 , % 003DSC 00306300
|
|
OCT0000000007300065 , % 00007H0V 00306400
|
|
OCT0000042464444760 , % 004DUMP 00306500
|
|
OCT0000000007600000 , % 00007 00 00306600
|
|
OCT0000042543622560 , % 004ELSE 00306700
|
|
OCT0000000000500071 , % 00000Q0Z 00306800
|
|
OCT0000032545246060 , % 003END 00306900
|
|
OCT0000000001300000 , % 00001H00 00307000
|
|
OCT0000052621436225 , % 005FALSE 00307100
|
|
OCT0000000012000075 , % 0000#00= 00307200
|
|
OCT0000042631432560 , % 004FILE 00307300
|
|
OCT0000000012300077 , % 0000#H0" 00307400
|
|
OCT0000072646516621 , % 007FORWA 00307500
|
|
OCT5124606060606060 , % RD 00307600
|
|
OCT0000000001500000 , % 00001Q00 00307700
|
|
OCT0000022746606060 , % 002GO 00307800
|
|
OCT0000000015700000 , % 0000:Y00 00307900
|
|
OCT0000023121606060 , % 002IA 00308000
|
|
OCT0000000001600106 , % 00001 16 00308100
|
|
OCT0000023126606060 , % 002IF 00308200
|
|
OCT0000000011200110 , % 00009+18 00308300
|
|
OCT0000073145632527 , % 007INTEG 00308400
|
|
OCT2551606060606060 , % ER 00308500
|
|
OCT0000000011400000 , % 00009|00 00308600
|
|
OCT0000054321222543 , % 005LABEL 00308700
|
|
OCT0000000016000115 , % 0000>01: 00308800
|
|
OCT0000044346234260 , % 004LOCK 00308900
|
|
OCT0000000013300000 , % 0000@H00 00309000
|
|
OCT0000034446246060 , % 003MOD 00309100
|
|
OCT0000000013200121 , % 0000@+1A 00309200
|
|
OCT0000074446453163 , % 007MONIT 00309300
|
|
OCT4651606060606060 , % OR 00309400
|
|
OCT0000000016100123 , % 0000>81C 00309500
|
|
OCT0000034463476060 , % 003MTP 00309600
|
|
OCT0000000004000000 , % 00004000 00309700
|
|
OCT0000024546606060 , % 002NO 00309800
|
|
OCT0000000012400130 , % 0000#|1H 00309900
|
|
OCT0000034546636060 , % 003NOT 00310000
|
|
OCT0000000016200000 , % 0000>+00 00310100
|
|
OCT0000024626606060 , % 002OF 00310200
|
|
OCT0000000016300134 , % 0000>H1& 00310300
|
|
OCT0000044647254560 , % 004OPEN 00310400
|
|
OCT0000000010400136 , % 00008|1< 00310500
|
|
OCT0000024651606060 , % 002OR 00310600
|
|
OCT0000000021000140 , % 0000A01| 00310700
|
|
OCT0000104665255126 , % 008OVERF 00310800
|
|
OCT4346666060606060 , % LOW 00310900
|
|
OCT0000000002300000 , % 00002H00 00311000
|
|
OCT0000044721272560 , % 004PAGE 00311100
|
|
OCT0000000016400145 , % 0000>|1N 00311200
|
|
OCT0000034723636060 , % 003PCT 00311300
|
|
OCT0000000016500147 , % 0000>Q1P 00311400
|
|
OCT0000074751314563 , % 007PRINT 00311500
|
|
OCT2551606060606060 , % ER 00311600
|
|
OCT0000000016600151 , % 0000> 1R 00311700
|
|
OCT0000034751456060 , % 003PRN 00311800
|
|
OCT0000000011100154 , % 0000981- 00311900
|
|
OCT0000114751462325 , % 009PROCE 00312000
|
|
OCT2464512560606060 , % DURE 00312100
|
|
OCT0000000016700156 , % 0000>Y1; 00312200
|
|
OCT0000054764452330 , % 005PUNCH 00312300
|
|
OCT0000000017000161 , % 0000}01/ 00312400
|
|
OCT0000054764512725 , % 005PURGE 00312500
|
|
OCT0000000011000000 , % 00009000 00312600
|
|
OCT0000045125212460 , % 004READ 00312700
|
|
OCT0000000017100165 , % 0000}81V 00312800
|
|
OCT0000065125212425 , % 006READE 00312900
|
|
OCT5160606060606060 , % R 00313000
|
|
OCT0000000017200167 , % 0000}+1X 00313100
|
|
OCT0000045125254360 , % 004REEL 00313200
|
|
OCT0000000013600172 , % 0000@ 1, 00313300
|
|
OCT0000075125432521 , % 007RELEA 00313400
|
|
OCT6225606060606060 , % SE 00313500
|
|
OCT0000000017300174 , % 0000}H1! 00313600
|
|
OCT0000065125663145 , % 006REWIN 00313700
|
|
OCT2460606060606060 , % D 00313800
|
|
OCT0000000012500000 , % 0000#Q00 00313900
|
|
OCT0000046221652560 , % 004SAVE 00314000
|
|
OCT0000000017400202 , % 0000}|22 00314100
|
|
OCT0000046225254260 , % 004SEEK 00314200
|
|
OCT0000000017500204 , % 0000}Q24 00314300
|
|
OCT0000066231274525 , % 006SIGNE 00314400
|
|
OCT2460606060606060 , % D 00314500
|
|
OCT0000000017600206 , % 0000} 26 00314600
|
|
OCT0000026245606060 , % 002SN 00314700
|
|
OCT0000000017700211 , % 0000}Y29 00314800
|
|
OCT0000056247212325 , % 005SPACE 00314900
|
|
OCT0000000020000213 , % 0000+02@ 00315000
|
|
OCT0000036247466060 , % 003SPO 00315100
|
|
OCT0000000020100000 , % 0000+800 00315200
|
|
OCT0000046321472560 , % 004TAPE 00315300
|
|
OCT0000000007700217 , % 00007Y2} 00315400
|
|
OCT0000046330254560 , % 004THEN 00315500
|
|
OCT0000000020200221 , % 0000++2A 00315600
|
|
OCT0000046331442560 , % 004TIME 00315700
|
|
OCT0000000001400223 , % 00001|2C 00315800
|
|
OCT0000026346606060 , % 002TO 00315900
|
|
OCT0000000020300225 , % 0000+H2E 00316000
|
|
OCT0000056351212325 , % 005TRACE 00316100
|
|
OCT0000000001200227 , % 00001+2G 00316200
|
|
OCT0000046351642560 , % 004TRUE 00316300
|
|
OCT0000000020400000 , % 0000+|00 00316400
|
|
OCT0000026421606060 , % 002UA 00316500
|
|
OCT0000000020500233 , % 0000+Q2[ 00316600
|
|
OCT0000026443606060 , % 002UL 00316700
|
|
OCT0000000020600235 , % 0000+ 2( 00316800
|
|
OCT0000026445606060 , % 002UN 00316900
|
|
OCT0000000010600237 , % 00008 2~ 00317000
|
|
OCT0000056445633143 , % 005UNTIL 00317100
|
|
OCT0000000013000000 , % 0000@000 00317200
|
|
OCT0000056521436425 , % 005VALUE 00317300
|
|
OCT0000000010100000 , % 00008800 00317400
|
|
OCT0000056630314325 , % 005WHILE 00317500
|
|
OCT0000000012700245 , % 0000#Y2N 00317600
|
|
OCT0000046631633060 , % 004WITH 00317700
|
|
OCT0000000010700247 , % 00008Y2P 00317800
|
|
OCT0000056651316325 , % 005WRITE 00317900
|
|
OCT0000000020700000 , % 0000+Y00 00318000
|
|
OCT0000037131476060 ; % 003ZIP 00318100
|
|
FILL RESTACK[*] WITH % BPL 00318200
|
|
0, 0, 0, 0, 0, 0, 0, 0, 00318300
|
|
0, 0, 0, 0, 0, 0, 0, 0, 00318400
|
|
0, 12, 20, 35, 55, 59, 65, 68, 00318500
|
|
0, 74, 0, 0, 0, 0, 0, 0, 00318600
|
|
0, 0, 0, 79, 86, 90, 98, 115, 00318700
|
|
0, 127, 0, 0, 0, 0, 0, 0, 00318800
|
|
0, 0, 141, 153, 161, 163, 169, 0, 00318900
|
|
0,171,0,0,0,0,0,0; 00319000
|
|
GO TO EXIT; 00319100
|
|
LESP: 00319200
|
|
FILL RESERVED[*] WITH 0, % ESPOL 00319300
|
|
OCT0000000006600000 , % 00006 00 00319400
|
|
OCT0000032122626060 , % 003ABS 00319500
|
|
OCT0000000160400001 , % 0001 |01 00319600
|
|
OCT0000032124246060 , % 003ADD 00319700
|
|
OCT0000000010500003 , % 00008Q03 00319800
|
|
OCT0000032145246060 , % 003AND 00319900
|
|
OCT0000000011600005 , % 00009 05 00320000
|
|
OCT0000052151512170 , % 005ARRAY 00320100
|
|
OCT0000000000400000 , % 00000|00 00320200
|
|
OCT0000052225273145 , % 005BEGIN 00320300
|
|
OCT0000000011300011 , % 00009H09 00320400
|
|
OCT0000072246464325 , % 007BOOLE 00320500
|
|
OCT2145606060606060 , % AN 00320600
|
|
OCT0000000021600013 , % 0000A 0@ 00320700
|
|
OCT0000032251636060 , % 003BRT 00320800
|
|
OCT0000000021700000 , % 0000AY00 00320900
|
|
OCT0000032362226060 , % 003CSB 00321000
|
|
OCT0000000022000020 , % 0000B00+ 00321100
|
|
OCT0000032323676060 , % 003CCX 00321200
|
|
OCT0000000022100022 , % 0000B80B 00321300
|
|
OCT0000032324236060 , % 003CDC 00321400
|
|
OCT0000000022200024 , % 0000B+0D 00321500
|
|
OCT0000032326436060 , % 003CFL 00321600
|
|
OCT0000000022300026 , % 0000BH0F 00321700
|
|
OCT0000032326256060 , % 003CFE 00321800
|
|
OCT0000000022400030 , % 0000B|0H 00321900
|
|
OCT0000032326676060 , % 003CFX 00322000
|
|
OCT0000000022500032 , % 0000BQ0. 00322100
|
|
OCT0000032346236060 , % 003COC 00322200
|
|
OCT0000000022600034 , % 0000B 0& 00322300
|
|
OCT0000032346446060 , % 003COM 00322400
|
|
OCT0000000000700036 , % 00000Y0< 00322500
|
|
OCT0000072346444425 , % 007COMME 00322600
|
|
OCT4563606060606060 , % NT 00322700
|
|
OCT0000000022700040 , % 0000BY0| 00322800
|
|
OCT0000032330626060 , % 003CHS 00322900
|
|
OCT0000000007300000 , % 00007H00 00323000
|
|
OCT0000042464444760 , % 004DUMP 00323100
|
|
OCT0000000023000045 , % 0000C00N 00323200
|
|
OCT0000032464476060 , % 003DUP 00323300
|
|
OCT0000000023100047 , % 0000C80P 00323400
|
|
OCT0000032425436060 , % 003DEL 00323500
|
|
OCT0000000011700051 , % 00009Y0R 00323600
|
|
OCT0000062425263145 , % 006DEFIN 00323700
|
|
OCT2560606060606060 , % E 00323800
|
|
OCT0000000010200053 , % 00008+0* 00323900
|
|
OCT0000022446606060 , % 002DO 00324000
|
|
OCT0000000007200056 , % 00007+0; 00324100
|
|
OCT0000062446642243 , % 006DOUBL 00324200
|
|
OCT2560606060606060 , % E 00324300
|
|
OCT0000000023200060 , % 0000C+0 00324400
|
|
OCT0000032431216060 , % 003DIA 00324500
|
|
OCT0000000023300063 , % 0000CH0T 00324600
|
|
OCT0000032431226060 , % 003DIB 00324700
|
|
OCT0000000007500065 , % 00007Q0V 00324800
|
|
OCT0000032431656060 , % 003DIV 00324900
|
|
OCT0000000007600000 , % 00007 00 00325000
|
|
OCT0000042543622560 , % 004ELSE 00325100
|
|
OCT0000000000500071 , % 00000Q0Z 00325200
|
|
OCT0000032545246060 , % 003END 00325300
|
|
OCT0000000023400073 , % 0000C|0% 00325400
|
|
OCT0000032550436060 , % 003EQL 00325500
|
|
OCT0000000006400075 , % 00006|0= 00325600
|
|
OCT0000032550656060 , % 003EQV 00325700
|
|
OCT0000000001300000 , % 00001H00 00325800
|
|
OCT0000052621436225 , % 005FALSE 00325900
|
|
OCT0000000023500101 , % 0000CQ11 00326000
|
|
OCT0000032623436060 , % 003FCL 00326100
|
|
OCT0000000023600103 , % 0000C 13 00326200
|
|
OCT0000032623256060 , % 003FCE 00326300
|
|
OCT0000000023700105 , % 0000CY15 00326400
|
|
OCT0000032623676060 , % 003FCX 00326500
|
|
OCT0000000024000107 , % 0000D017 00326600
|
|
OCT0000042643212760 , % 004FLAG 00326700
|
|
OCT0000000024100111 , % 0000D819 00326800
|
|
OCT0000032626676060 , % 003FFX 00326900
|
|
OCT0000000010000113 , % 0000801@ 00327000
|
|
OCT0000032646516060 , % 003FOR 00327100
|
|
OCT0000000012300115 , % 0000#H1: 00327200
|
|
OCT0000072646516621 , % 007FORWA 00327300
|
|
OCT5124606060606060 , % RD 00327400
|
|
OCT0000000024200000 , % 0000D+00 00327500
|
|
OCT0000032763516060 , % 003GTR 00327600
|
|
OCT0000000024300122 , % 0000DH1B 00327700
|
|
OCT0000032725506060 , % 003GEQ 00327800
|
|
OCT0000000001500124 , % 00001Q1D 00327900
|
|
OCT0000022746606060 , % 002GO 00328000
|
|
OCT0000000024400000 , % 0000D|00 00328100
|
|
OCT0000033043226060 , % 003HLB 00328200
|
|
OCT0000000024500130 , % 0000DQ1H 00328300
|
|
OCT0000043064456360 , % 004HUNT 00328400
|
|
OCT0000000024600132 , % 0000D 1. 00328500
|
|
OCT0000033047026060 , % 003HP2 00328600
|
|
OCT0000000024700000 , % 0000DY00 00328700
|
|
OCT0000033162246060 , % 003ISD 00328800
|
|
OCT0000000025000136 , % 0000E01< 00328900
|
|
OCT0000033162456060 , % 003ISN 00329000
|
|
OCT0000000025100140 , % 0000E81| 00329100
|
|
OCT0000033163316060 , % 003ITI 00329200
|
|
OCT0000000025200142 , % 0000E+1K 00329300
|
|
OCT0000033124656060 , % 003IDV 00329400
|
|
OCT0000000006100144 , % 0000681M 00329500
|
|
OCT0000023145606060 , % 002IN 00329600
|
|
OCT0000000025300146 , % 0000EH1O 00329700
|
|
OCT0000033145216060 , % 003INA 00329800
|
|
OCT0000000025400150 , % 0000E|1Q 00329900
|
|
OCT0000033145226060 , % 003INB 00330000
|
|
OCT0000000011200152 , % 00009+1$ 00330100
|
|
OCT0000073145632527 , % 007INTEG 00330200
|
|
OCT2551606060606060 , % ER 00330300
|
|
OCT0000000025500154 , % 0000EQ1- 00330400
|
|
OCT0000033145676060 , % 003INX 00330500
|
|
OCT0000000025600157 , % 0000E 1{ 00330600
|
|
OCT0000033145316060 , % 003INI 00330700
|
|
OCT0000000001600161 , % 00001 1/ 00330800
|
|
OCT0000023126606060 , % 002IF 00330900
|
|
OCT0000000025700163 , % 0000EY1T 00331000
|
|
OCT0000033146516060 , % 003IOR 00331100
|
|
OCT0000000026000165 , % 0000F01V 00331200
|
|
OCT0000033147026060 , % 003IP2 00331300
|
|
OCT0000000026100167 , % 0000F81X 00331400
|
|
OCT0000033147016060 , % 003IP1 00331500
|
|
OCT0000000026200171 , % 0000F+1Z 00331600
|
|
OCT0000033147626060 , % 003IPS 00331700
|
|
OCT0000000026300173 , % 0000FH1% 00331800
|
|
OCT0000033131466060 , % 003IIO 00331900
|
|
OCT0000000011400000 , % 00009|00 00332000
|
|
OCT0000054321222543 , % 005LABEL 00332100
|
|
OCT0000000026400177 , % 0000F|1" 00332200
|
|
OCT0000034362626060 , % 003LSS 00332300
|
|
OCT0000000026500201 , % 0000FQ21 00332400
|
|
OCT0000034343436060 , % 003LLL 00332500
|
|
OCT0000000026700203 , % 0000FY23 00332600
|
|
OCT0000034345246060 , % 003LND 00332700
|
|
OCT0000000027000205 , % 0000G025 00332800
|
|
OCT0000034345276060 , % 003LNG 00332900
|
|
OCT0000000027100207 , % 0000G827 00333000
|
|
OCT0000034346246060 , % 003LOD 00333100
|
|
OCT0000000027200211 , % 0000G+29 00333200
|
|
OCT0000034346516060 , % 003LOR 00333300
|
|
OCT0000000027300213 , % 0000GH2@ 00333400
|
|
OCT0000034350656060 , % 003LQV 00333500
|
|
OCT0000000026600215 , % 0000F 2: 00333600
|
|
OCT0000034325506060 , % 003LEQ 00333700
|
|
OCT0000000027400000 , % 0000G|00 00333800
|
|
OCT0000034442626060 , % 003MKS 00333900
|
|
OCT0000000027500221 , % 0000GQ2A 00334000
|
|
OCT0000034464436060 , % 003MUL 00334100
|
|
OCT0000000027600223 , % 0000G 2C 00334200
|
|
OCT0000064425444651 , % 006MEMOR 00334300
|
|
OCT7060606060606060 , % Y 00334400
|
|
OCT0000000013300225 , % 0000@H2E 00334500
|
|
OCT0000034446246060 , % 003MOD 00334600
|
|
OCT0000000013200230 , % 0000@+2H 00334700
|
|
OCT0000074446453163 , % 007MONIT 00334800
|
|
OCT4651606060606060 , % OR 00334900
|
|
OCT0000000027700000 , % 0000GY00 00335000
|
|
OCT0000044521226260 , % 004NABS 00335100
|
|
OCT0000000030000235 , % 0000H02( 00335200
|
|
OCT0000044521442560 , % 004NAME 00335300
|
|
OCT0000000030100237 , % 0000H82~ 00335400
|
|
OCT0000034525506060 , % 003NEQ 00335500
|
|
OCT0000000030200241 , % 0000H+2J 00335600
|
|
OCT0000054526432127 , % 005NFLAG 00335700
|
|
OCT0000000012400243 , % 0000#|2L 00335800
|
|
OCT0000034546636060 , % 003NOT 00335900
|
|
OCT0000000030300245 , % 0000HH2N 00336000
|
|
OCT0000034546476060 , % 003NOP 00336100
|
|
OCT0000000010300000 , % 00008H00 00336200
|
|
OCT0000034664636060 , % 003OUT 00336300
|
|
OCT0000000013500251 , % 0000@Q2R 00336400
|
|
OCT0000034666456060 , % 003OWN 00336500
|
|
OCT0000000010400253 , % 00008|2* 00336600
|
|
OCT0000024651606060 , % 002OR 00336700
|
|
OCT0000000030400000 , % 0000H|00 00336800
|
|
OCT0000064746433162 , % 006POLIS 00336900
|
|
OCT3060606060606060 , % H 00337000
|
|
OCT0000000030500257 , % 0000HQ2{ 00337100
|
|
OCT0000034751436060 , % 003PRL 00337200
|
|
OCT0000000011100262 , % 0000982S 00337300
|
|
OCT0000114751462325 , % 009PROCE 00337400
|
|
OCT2464512560606060 , % DURE 00337500
|
|
OCT0000000030600000 , % 0000H 00 00337600
|
|
OCT0000035162226060 , % 003RSB 00337700
|
|
OCT0000000030700267 , % 0000HY2X 00337800
|
|
OCT0000035162476060 , % 003RSP 00337900
|
|
OCT0000000031000271 , % 0000I02Z 00338000
|
|
OCT0000035163626060 , % 003RTS 00338100
|
|
OCT0000000031100273 , % 0000I82% 00338200
|
|
OCT0000035163446060 , % 003RTM 00338300
|
|
OCT0000000031200275 , % 0000I+2= 00338400
|
|
OCT0000035163456060 , % 003RTN 00338500
|
|
OCT0000000031300277 , % 0000IH2" 00338600
|
|
OCT0000035163516060 , % 003RTR 00338700
|
|
OCT0000000031400301 , % 0000I|31 00338800
|
|
OCT0000035124626060 , % 003RDS 00338900
|
|
OCT0000000031500303 , % 0000IQ33 00339000
|
|
OCT0000035124656060 , % 003RDV 00339100
|
|
OCT0000000031600305 , % 0000I 35 00339200
|
|
OCT0000035124266060 , % 003RDF 00339300
|
|
OCT0000000011500307 , % 00009Q37 00339400
|
|
OCT0000045125214360 , % 004REAL 00339500
|
|
OCT0000000011000311 , % 00009039 00339600
|
|
OCT0000045125212460 , % 004READ 00339700
|
|
OCT0000000031700313 , % 0000IY3@ 00339800
|
|
OCT0000035145466060 , % 003RNO 00339900
|
|
OCT0000000032000315 , % 0000.03: 00340000
|
|
OCT0000035126226060 , % 003RFB 00340100
|
|
OCT0000000032100317 , % 0000.83} 00340200
|
|
OCT0000035151516060 , % 003RRR 00340300
|
|
OCT0000000012500000 , % 0000#Q00 00340400
|
|
OCT0000046221652560 , % 004SAVE 00340500
|
|
OCT0000000032200323 , % 0000.+3C 00340600
|
|
OCT0000036262226060 , % 003SSB 00340700
|
|
OCT0000000032400325 , % 0000.|3E 00340800
|
|
OCT0000036262456060 , % 003SSN 00340900
|
|
OCT0000000032500327 , % 0000.Q3G 00341000
|
|
OCT0000036262266060 , % 003SSF 00341100
|
|
OCT0000000032600331 , % 0000. 3I 00341200
|
|
OCT0000036262476060 , % 003SSP 00341300
|
|
OCT0000000032700333 , % 0000.Y3[ 00341400
|
|
OCT0000036263626060 , % 003STS 00341500
|
|
OCT0000000033000335 , % 0000[03( 00341600
|
|
OCT0000036263246060 , % 003STD 00341700
|
|
OCT0000000012600337 , % 0000# 3~ 00341800
|
|
OCT0000046263254760 , % 004STEP 00341900
|
|
OCT0000000033100341 , % 0000[83J 00342000
|
|
OCT0000036263456060 , % 003STN 00342100
|
|
OCT0000000033200343 , % 0000[+3L 00342200
|
|
OCT0000036263266060 , % 003STF 00342300
|
|
OCT0000000013100345 , % 0000@83N 00342400
|
|
OCT0000066263512521 , % 006STREA 00342500
|
|
OCT4460606060606060 , % M 00342600
|
|
OCT0000000163000347 , % 0001T03P 00342700
|
|
OCT0000036264226060 , % 003SUB 00342800
|
|
OCT0000000033300352 , % 0000[H3$ 00342900
|
|
OCT0000126264225146 , % 00#SUBRO 00343000
|
|
OCT6463314525606060 , % UTINE 00343100
|
|
OCT0000000033400354 , % 0000[|3- 00343200
|
|
OCT0000036245246060 , % 003SND 00343300
|
|
OCT0000000033500357 , % 0000[Q3{ 00343400
|
|
OCT0000036226226060 , % 003SFB 00343500
|
|
OCT0000000002000361 , % 0000203/ 00343600
|
|
OCT0000066266316323 , % 006SWITC 00343700
|
|
OCT3060606060606060 , % H 00343800
|
|
OCT0000000014000363 , % 0000 03T 00343900
|
|
OCT0000046231274560 , % 004SIGN 00344000
|
|
OCT0000000033600000 , % 0000[ 00 00344100
|
|
OCT0000036326226060 , % 003TFB 00344200
|
|
OCT0000000033700370 , % 0000[Y3Y 00344300
|
|
OCT0000036326516060 , % 003TFR 00344400
|
|
OCT0000000001400372 , % 00001|3, 00344500
|
|
OCT0000026346606060 , % 002TO 00344600
|
|
OCT0000000034000374 , % 0000&03! 00344700
|
|
OCT0000036346476060 , % 003TOP 00344800
|
|
OCT0000000007700376 , % 00007Y3] 00344900
|
|
OCT0000046330254560 , % 004THEN 00345000
|
|
OCT0000000034100400 , % 0000&840 00345100
|
|
OCT0000036331466060 , % 003TIO 00345200
|
|
OCT0000000034200402 , % 0000&+42 00345300
|
|
OCT0000036351226060 , % 003TRB 00345400
|
|
OCT0000000001200404 , % 00001+44 00345500
|
|
OCT0000046351642560 , % 004TRUE 00345600
|
|
OCT0000000010600000 , % 00008 00 00345700
|
|
OCT0000056445633143 , % 005UNTIL 00345800
|
|
OCT0000000013000000 , % 0000@000 00345900
|
|
OCT0000056521436425 , % 005VALUE 00346000
|
|
OCT0000000034300412 , % 0000&H4# 00346100
|
|
OCT0000036526316060 , % 003VFI 00346200
|
|
OCT0000000010100000 , % 00008800 00346300
|
|
OCT0000056630314325 , % 005WHILE 00346400
|
|
OCT0000000010700416 , % 00008Y4> 00346500
|
|
OCT0000056651316325 , % 005WRITE 00346600
|
|
OCT0000000034400000 , % 0000&|00 00346700
|
|
OCT0000036723306060 , % 003XCH 00346800
|
|
OCT0000000034500422 , % 0000&Q4B 00346900
|
|
OCT0000036731636060 , % 003XIT 00347000
|
|
OCT0000000034600000 , % 0000& 00 00347100
|
|
OCT0000037147016060 , % 003ZP1 00347200
|
|
OCT0000000020700426 , % 0000+Y4F 00347300
|
|
OCT0000037131476060 ; % 003ZIP 00347400
|
|
FILL RESTACK[*] WITH % ESPOL 00347500
|
|
0, 0, 0, 0, 0, 0, 0, 0, 00347600
|
|
0, 0, 0, 0, 0, 0, 0, 0, 00347700
|
|
0, 7, 14, 35, 55, 63, 79, 86, 00347800
|
|
92, 125, 0, 0, 0, 0, 0, 0, 00347900
|
|
0, 0, 0, 143, 154, 167, 173, 180, 00348000
|
|
0, 209, 0, 0, 0, 0, 0, 0, 00348100
|
|
0, 0, 246, 262, 264, 268, 272, 276, 00348200
|
|
0,280,0,0,0,0,0,0; 00348300
|
|
GO TO EXIT; 00348400
|
|
LALG: 00348500
|
|
FILL RESERVED[*] WITH 0, % ALGOL 00348600
|
|
OCT0000000006600000 , % 00006 00 00348700
|
|
OCT0000032122626060 , % 003ABS 00348800
|
|
OCT0000000160400001 , % 0001 |01 00348900
|
|
OCT0000032124246060 , % 003ADD 00349000
|
|
OCT0000000006700003 , % 00006Y03 00349100
|
|
OCT0000052143473021 , % 005ALPHA 00349200
|
|
OCT0000000010500005 , % 00008Q05 00349300
|
|
OCT0000032145246060 , % 003AND 00349400
|
|
OCT0000000007000007 , % 00007007 00349500
|
|
OCT0000062151236321 , % 006ARCTA 00349600
|
|
OCT4560606060606060 , % N 00349700
|
|
OCT0000000011600011 , % 00009 09 00349800
|
|
OCT0000052151512170 , % 005ARRAY 00349900
|
|
OCT0000000000400000 , % 00000|00 00350000
|
|
OCT0000052225273145 , % 005BEGIN 00350100
|
|
OCT0000000011300016 , % 00009H0> 00350200
|
|
OCT0000072246464325 , % 007BOOLE 00350300
|
|
OCT2145606060606060 , % AN 00350400
|
|
OCT0000000160500000 , % 0001 Q00 00350500
|
|
OCT0000032330516060 , % 003CHR 00350600
|
|
OCT0000000160600023 , % 0001 0C 00350700
|
|
OCT0000022331606060 , % 002CI 00350800
|
|
OCT0000000000700025 , % 00000Y0E 00350900
|
|
OCT0000072346444425 , % 007COMME 00351000
|
|
OCT4563606060606060 , % NT 00351100
|
|
OCT0000000007400027 , % 00007|0G 00351200
|
|
OCT0000032346626060 , % 003COS 00351300
|
|
OCT0000000160700000 , % 0001 Y00 00351400
|
|
OCT0000022422606060 , % 002DB 00351500
|
|
OCT0000000007100034 , % 0000780& 00351600
|
|
OCT0000032422436060 , % 003DBL 00351700
|
|
OCT0000000161000036 , % 0001/00< 00351800
|
|
OCT0000022423606060 , % 002DC 00351900
|
|
OCT0000000161100040 , % 0001/80| 00352000
|
|
OCT0000032425236060 , % 003DEC 00352100
|
|
OCT0000000011700042 , % 00009Y0K 00352200
|
|
OCT0000062425263145 , % 006DEFIN 00352300
|
|
OCT2560606060606060 , % E 00352400
|
|
OCT0000000161200044 , % 0001/+0M 00352500
|
|
OCT0000022431606060 , % 002DI 00352600
|
|
OCT0000000007500047 , % 00007Q0P 00352700
|
|
OCT0000032431656060 , % 003DIV 00352800
|
|
OCT0000000010200051 , % 00008+0R 00352900
|
|
OCT0000022446606060 , % 002DO 00353000
|
|
OCT0000000007200053 , % 00007+0* 00353100
|
|
OCT0000062446642243 , % 006DOUBL 00353200
|
|
OCT2560606060606060 , % E 00353300
|
|
OCT0000000161300055 , % 0001/H0) 00353400
|
|
OCT0000022462606060 , % 002DS 00353500
|
|
OCT0000000007300060 , % 00007H0 00353600
|
|
OCT0000042464444760 , % 004DUMP 00353700
|
|
OCT0000000007600000 , % 00007 00 00353800
|
|
OCT0000042543622560 , % 004ELSE 00353900
|
|
OCT0000000000500064 , % 00000Q0U 00354000
|
|
OCT0000032545246060 , % 003END 00354100
|
|
OCT0000000006500066 , % 00006Q0W 00354200
|
|
OCT0000062545633125 , % 006ENTIE 00354300
|
|
OCT5160606060606060 , % R 00354400
|
|
OCT0000000006400070 , % 00006|0Y 00354500
|
|
OCT0000032550656060 , % 003EQV 00354600
|
|
OCT0000000006300073 , % 00006H0% 00354700
|
|
OCT0000032567476060 , % 003EXP 00354800
|
|
OCT0000000001300000 , % 00001H00 00354900
|
|
OCT0000052621436225 , % 005FALSE 00355000
|
|
OCT0000000012000077 , % 0000#00" 00355100
|
|
OCT0000042631432560 , % 004FILE 00355200
|
|
OCT0000000012100101 , % 0000#811 00355300
|
|
OCT0000042631434360 , % 004FILL 00355400
|
|
OCT0000000010000103 , % 00008013 00355500
|
|
OCT0000032646516060 , % 003FOR 00355600
|
|
OCT0000000012200105 , % 0000#+15 00355700
|
|
OCT0000062646514421 , % 006FORMA 00355800
|
|
OCT6360606060606060 , % T 00355900
|
|
OCT0000000012300107 , % 0000#H17 00356000
|
|
OCT0000072646516621 , % 007FORWA 00356100
|
|
OCT5124606060606060 , % RD 00356200
|
|
OCT0000000001500000 , % 00001Q00 00356300
|
|
OCT0000022746606060 , % 002GO 00356400
|
|
OCT0000000001600000 , % 00001 00 00356500
|
|
OCT0000023126606060 , % 002IF 00356600
|
|
OCT0000000006200117 , % 00006+1} 00356700
|
|
OCT0000033144476060 , % 003IMP 00356800
|
|
OCT0000000006100121 , % 0000681A 00356900
|
|
OCT0000023145606060 , % 002IN 00357000
|
|
OCT0000000011200123 , % 00009+1C 00357100
|
|
OCT0000073145632527 , % 007INTEG 00357200
|
|
OCT2551606060606060 , % ER 00357300
|
|
OCT0000000161400000 , % 0001/|00 00357400
|
|
OCT0000044164444760 , % 004JUMP 00357500
|
|
OCT0000000011400000 , % 00009|00 00357600
|
|
OCT0000054321222543 , % 005LABEL 00357700
|
|
OCT0000000161500132 , % 0001/Q1. 00357800
|
|
OCT0000034331636060 , % 003LIT 00357900
|
|
OCT0000000006000134 , % 0000601& 00358000
|
|
OCT0000024345606060 , % 002LN 00358100
|
|
OCT0000000161600136 , % 0001/ 1< 00358200
|
|
OCT0000034346236060 , % 003LOC 00358300
|
|
OCT0000000161700140 , % 0001/Y1| 00358400
|
|
OCT0000054346232143 , % 005LOCAL 00358500
|
|
OCT0000000013300000 , % 0000@H00 00358600
|
|
OCT0000034446246060 , % 003MOD 00358700
|
|
OCT0000000013200144 , % 0000@+1M 00358800
|
|
OCT0000074446453163 , % 007MONIT 00358900
|
|
OCT4651606060606060 , % OR 00359000
|
|
OCT0000000004000000 , % 00004000 00359100
|
|
OCT0000024546606060 , % 002NO 00359200
|
|
OCT0000000012400151 , % 0000#|1R 00359300
|
|
OCT0000034546636060 , % 003NOT 00359400
|
|
OCT0000000162000153 , % 0001S01* 00359500
|
|
OCT0000034564446060 , % 003NUM 00359600
|
|
OCT0000000162100000 , % 0001S800 00359700
|
|
OCT0000034623636060 , % 003OCT 00359800
|
|
OCT0000000010400157 , % 00008|1{ 00359900
|
|
OCT0000024651606060 , % 002OR 00360000
|
|
OCT0000000010300161 , % 00008H1/ 00360100
|
|
OCT0000034664636060 , % 003OUT 00360200
|
|
OCT0000000013500163 , % 0000@Q1T 00360300
|
|
OCT0000034666456060 , % 003OWN 00360400
|
|
OCT0000000002300000 , % 00002H00 00360500
|
|
OCT0000044721272560 , % 004PAGE 00360600
|
|
OCT0000000011100167 , % 0000981X 00360700
|
|
OCT0000114751462325 , % 009PROCE 00360800
|
|
OCT2464512560606060 , % DURE 00360900
|
|
OCT0000000011000000 , % 00009000 00361000
|
|
OCT0000045125212460 , % 004READ 00361100
|
|
OCT0000000011500174 , % 00009Q1! 00361200
|
|
OCT0000045125214360 , % 004REAL 00361300
|
|
OCT0000000013600176 , % 0000@ 1] 00361400
|
|
OCT0000075125432521 , % 007RELEA 00361500
|
|
OCT6225606060606060 , % SE 00361600
|
|
OCT0000000162200200 , % 0001S+20 00361700
|
|
OCT0000055125622563 , % 005RESET 00361800
|
|
OCT0000000013700203 , % 0000@Y23 00361900
|
|
OCT0000075125652551 , % 007REVER 00362000
|
|
OCT6225606060606060 , % SE 00362100
|
|
OCT0000000012500000 , % 0000#Q00 00362200
|
|
OCT0000046221652560 , % 004SAVE 00362300
|
|
OCT0000000162300210 , % 0001SH28 00362400
|
|
OCT0000026222606060 , % 002SB 00362500
|
|
OCT0000000162400212 , % 0001S|2# 00362600
|
|
OCT0000026223606060 , % 002SC 00362700
|
|
OCT0000000162500214 , % 0001SQ2 00362800
|
|
OCT0000036225636060 , % 003SET 00362900
|
|
OCT0000000162600216 , % 0001S 2> 00363000
|
|
OCT0000026231606060 , % 002SI 00363100
|
|
OCT0000000014000220 , % 0000 02+ 00363200
|
|
OCT0000046231274560 , % 004SIGN 00363300
|
|
OCT0000000014100222 , % 0000 82B 00363400
|
|
OCT0000036231456060 , % 003SIN 00363500
|
|
OCT0000000162700224 , % 0001SY2D 00363600
|
|
OCT0000046242314760 , % 004SKIP 00363700
|
|
OCT0000000013400226 , % 0000@|2F 00363800
|
|
OCT0000046250516360 , % 004SQRT 00363900
|
|
OCT0000000012600230 , % 0000# 2H 00364000
|
|
OCT0000046263254760 , % 004STEP 00364100
|
|
OCT0000000013100232 , % 0000@82. 00364200
|
|
OCT0000066263512521 , % 006STREA 00364300
|
|
OCT4460606060606060 , % M 00364400
|
|
OCT0000000163000234 , % 0001T02& 00364500
|
|
OCT0000036264226060 , % 003SUB 00364600
|
|
OCT0000000002000237 , % 0000202~ 00364700
|
|
OCT0000066266316323 , % 006SWITC 00364800
|
|
OCT3060606060606060 , % H 00364900
|
|
OCT0000000163100000 , % 0001T800 00365000
|
|
OCT0000056321434370 , % 005TALLY 00365100
|
|
OCT0000000007700244 , % 00007Y2M 00365200
|
|
OCT0000046330254560 , % 004THEN 00365300
|
|
OCT0000000001400246 , % 00001|2O 00365400
|
|
OCT0000026346606060 , % 002TO 00365500
|
|
OCT0000000163200250 , % 0001T+2Q 00365600
|
|
OCT0000066346272743 , % 006TOGGL 00365700
|
|
OCT2560606060606060 , % E 00365800
|
|
OCT0000000001200252 , % 00001+2$ 00365900
|
|
OCT0000046351642560 , % 004TRUE 00366000
|
|
OCT0000000010600000 , % 00008 00 00366100
|
|
OCT0000056445633143 , % 005UNTIL 00366200
|
|
OCT0000000013000000 , % 0000@000 00366300
|
|
OCT0000056521436425 , % 005VALUE 00366400
|
|
OCT0000000163300000 , % 0001TH00 00366500
|
|
OCT0000036624626060 , % 003WDS 00366600
|
|
OCT0000000010100263 , % 0000882T 00366700
|
|
OCT0000056630314325 , % 005WHILE 00366800
|
|
OCT0000000012700265 , % 0000#Y2V 00366900
|
|
OCT0000046631633060 , % 004WITH 00367000
|
|
OCT0000000010700267 , % 00008Y2X 00367100
|
|
OCT0000056651316325 , % 005WRITE 00367200
|
|
OCT0000000163400000 , % 0001T|00 00367300
|
|
OCT0000037146456060 ; % 003ZON 00367400
|
|
FILL RESTACK[*] WITH % ALGOL 00367500
|
|
0, 0, 0, 0, 0, 0, 0, 0, 00367600
|
|
0, 0, 0, 0, 0, 0, 0, 0, 00367700
|
|
0, 12, 16, 26, 50, 61, 74, 77, 00367800
|
|
0, 85, 0, 0, 0, 0, 0, 0, 00367900
|
|
0, 88, 0, 98, 102, 109, 117, 121, 00368000
|
|
0, 133, 0, 0, 0, 0, 0, 0, 00368100
|
|
0, 0, 161, 173, 175, 177, 185, 0, 00368200
|
|
0,187,0,0,0,0,0,0; 00368300
|
|
GO TO EXIT; 00368400
|
|
LFLO: 00368500
|
|
FILL RESERVED[*] WITH 0, % FLOW 00368600
|
|
OCT0000000000100000 , % 00000800 00368700
|
|
OCT0000056263215163 , % 005START 00368800
|
|
OCT0000000000200000 , % 00000+00 00368900
|
|
OCT0000062631453162 , % 006FINIS 00369000
|
|
OCT3060606060606060 , % H 00369100
|
|
OCT0000000000300000 , % 00000H00 00369200
|
|
OCT0000045064316360 , % 004QUIT 00369300
|
|
OCT0000000000400000 , % 00000|00 00369400
|
|
OCT0000052225273145 , % 005BEGIN 00369500
|
|
OCT0000000000500000 , % 00000Q00 00369600
|
|
OCT0000032545246060 , % 003END 00369700
|
|
OCT0000000000600010 , % 00000 08 00369800
|
|
OCT0000032246676060 , % 003BOX 00369900
|
|
OCT0000000000700000 , % 00000Y00 00370000
|
|
OCT0000072346444425 , % 007COMME 00370100
|
|
OCT4563606060606060 , % NT 00370200
|
|
OCT0000000001000000 , % 00001000 00370300
|
|
OCT0000043025212460 , % 004HEAD 00370400
|
|
OCT0000000001000021 , % 0000100A 00370500
|
|
OCT0000073025212431 , % 007HEADI 00370600
|
|
OCT4527606060606060 , % NG 00370700
|
|
OCT0000000001100000 , % 00001800 00370800
|
|
OCT0000056331634325 , % 005TITLE 00370900
|
|
OCT0000000001200026 , % 00001+0F 00371000
|
|
OCT0000046351642560 , % 004TRUE 00371100
|
|
OCT0000000001300003 , % 00001H03 00371200
|
|
OCT0000052621436225 , % 005FALSE 00371300
|
|
OCT0000000001400030 , % 00001|0H 00371400
|
|
OCT0000026346606060 , % 002TO 00371500
|
|
OCT0000000001500000 , % 00001Q00 00371600
|
|
OCT0000022746606060 , % 002GO 00371700
|
|
OCT0000000001600000 , % 00001 00 00371800
|
|
OCT0000023126606060 , % 002IF 00371900
|
|
OCT0000000002000001 , % 00002001 00372000
|
|
OCT0000066266316323 , % 006SWITC 00372100
|
|
OCT3060606060606060 , % H 00372200
|
|
OCT0000000002100012 , % 0000280# 00372300
|
|
OCT0000052545632551 , % 005ENTER 00372400
|
|
OCT0000000002200045 , % 00002+0N 00372500
|
|
OCT0000042567316360 , % 004EXIT 00372600
|
|
OCT0000000002300000 , % 00002H00 00372700
|
|
OCT0000044721272560 , % 004PAGE 00372800
|
|
OCT0000000002500034 , % 00002Q0& 00372900
|
|
OCT0000046325514460 , % 004TERM 00373000
|
|
OCT0000000002500053 , % 00002Q0* 00373100
|
|
OCT0000116325514431 , % 009TERMI 00373200
|
|
OCT4521632560606060 , % NATE 00373300
|
|
OCT0000000002600051 , % 00002 0R 00373400
|
|
OCT0000064721272531 , % 006PAGEI 00373500
|
|
OCT2460606060606060 , % D 00373600
|
|
OCT0000000002700016 , % 00002Y0> 00373700
|
|
OCT0000032346436060 , % 003COL 00373800
|
|
OCT0000000002700063 , % 00002Y0T 00373900
|
|
OCT0000062346436444 , % 006COLUM 00374000
|
|
OCT4560606060606060 , % N 00374100
|
|
OCT0000000003000060 , % 0000300 00374200
|
|
OCT0000074721272531 , % 007PAGEI 00374300
|
|
OCT4523606060606060 , % NC 00374400
|
|
OCT0000000003100000 , % 00003800 00374500
|
|
OCT0000064421672346 , % 006MAXCO 00374600
|
|
OCT4360606060606060 , % L 00374700
|
|
OCT0000000003200000 , % 00003+00 00374800
|
|
OCT0000042421632560 , % 004DATE 00374900
|
|
OCT0000000003300000 , % 00003H00 00375000
|
|
OCT0000044546632560 , % 004NOTE 00375100
|
|
OCT0000000004100076 , % 0000480] 00375200
|
|
OCT0000042446256260 , % 004DOES 00375300
|
|
OCT0000000004100040 , % 0000480| 00375400
|
|
OCT0000023162606060 , % 002IS 00375500
|
|
OCT0000000004100000 , % 00004800 00375600
|
|
OCT0000036621626060 , % 003WAS 00375700
|
|
OCT0000000003400055 , % 00003|0) 00375800
|
|
OCT0000056321224325 , % 005TABLE 00375900
|
|
OCT0000000003500065 , % 00003Q0V 00376000
|
|
OCT0000042346242560 , % 004CODE 00376100
|
|
OCT0000000003600014 , % 00003 0 00376200
|
|
OCT0000072246674645 , % 007BOXON 00376300
|
|
OCT4370606060606060 , % LY 00376400
|
|
OCT0000000003700000 , % 00003Y00 00376500
|
|
OCT0000037025626060 , % 003YES 00376600
|
|
OCT0000000004000100 , % 00004010 00376700
|
|
OCT0000024546606060 , % 002NO 00376800
|
|
OCT0000000004100110 , % 00004818 00376900
|
|
OCT0000046325626360 ; % 004TEST 00377000
|
|
FILL RESTACK[*] WITH % FLOW 00377100
|
|
0, 0, 0, 0, 0, 0, 0, 0, 00377200
|
|
0, 0, 0, 0, 0, 0, 0, 0, 00377300
|
|
0, 0, 76, 74, 66, 39, 26, 30, 00377400
|
|
19, 68, 0, 0, 0, 0, 0, 0, 00377500
|
|
0, 0, 0, 0, 59, 81, 0, 56, 00377600
|
|
6, 0, 0, 0, 0, 0, 0, 0, 00377700
|
|
0, 0, 34, 83, 0, 0, 70, 0, 00377800
|
|
79,0,0,0,0,0,0,0; 00377900
|
|
GO TO EXIT; 00378000
|
|
LCOB: 00378100
|
|
FILL RESERVED[*] WITH 0, 00378200
|
|
OCT0000000000500000 , % 00000Q00 00378300
|
|
OCT0000032545246060 , % 003END 00378400
|
|
OCT0000000001400000 , % 00001|00 00378500
|
|
OCT0000026346606060 , % 002TO 00378600
|
|
OCT0000000001500000 , % 00001Q00 00378700
|
|
OCT0000022746606060 , % 002GO 00378800
|
|
OCT0000000001600000 , % 00001 00 00378900
|
|
OCT0000023126606060 , % 002IF 00379000
|
|
OCT0000000002100001 , % 00002801 00379100
|
|
OCT0000052545632551 , % 005ENTER 00379200
|
|
OCT0000000002200011 , % 00002+09 00379300
|
|
OCT0000042567316360 , % 004EXIT 00379400
|
|
OCT0000000003300000 , % 00003H00 00379500
|
|
OCT0000044546632560 , % 004NOTE 00379600
|
|
OCT0000000004000015 , % 0000400: 00379700
|
|
OCT0000024546606060 , % 002NO 00379800
|
|
OCT0000000004100007 , % 00004807 00379900
|
|
OCT0000023162606060 , % 002IS 00380000
|
|
OCT0000000006000000 , % 00006000 00380100
|
|
OCT0000024345606060 , % 002LN 00380200
|
|
OCT0000000006100021 , % 0000680A 00380300
|
|
OCT0000023145606060 , % 002IN 00380400
|
|
OCT0000000006300013 , % 00006H0@ 00380500
|
|
OCT0000032567476060 , % 003EXP 00380600
|
|
OCT0000000006600000 , % 00006 00 00380700
|
|
OCT0000032122626060 , % 003ABS 00380800
|
|
OCT0000000007000031 , % 0000700I 00380900
|
|
OCT0000062151236321 , % 006ARCTA 00381000
|
|
OCT4560606060606060 , % N 00381100
|
|
OCT0000000007300000 , % 00007H00 00381200
|
|
OCT0000042464444760 , % 004DUMP 00381300
|
|
OCT0000000007400000 , % 00007|00 00381400
|
|
OCT0000032346626060 , % 003COS 00381500
|
|
OCT0000000007600027 , % 00007 0G 00381600
|
|
OCT0000042543622560 , % 004ELSE 00381700
|
|
OCT0000000007700003 , % 00007Y03 00381800
|
|
OCT0000046330254560 , % 004THEN 00381900
|
|
OCT0000000010000000 , % 00008000 00382000
|
|
OCT0000032646516060 , % 003FOR 00382100
|
|
OCT0000000010400000 , % 00008|00 00382200
|
|
OCT0000024651606060 , % 002OR 00382300
|
|
OCT0000000010500033 , % 00008Q0[ 00382400
|
|
OCT0000032145246060 , % 003AND 00382500
|
|
OCT0000000010600000 , % 00008 00 00382600
|
|
OCT0000056445633143 , % 005UNTIL 00382700
|
|
OCT0000000010700000 , % 00008Y00 00382800
|
|
OCT0000056651316325 , % 005WRITE 00382900
|
|
OCT0000000011000000 , % 00009000 00383000
|
|
OCT0000045125212460 , % 004READ 00383100
|
|
OCT0000000011100000 , % 00009800 00383200
|
|
OCT0000114751462325 , % 009PROCE 00383300
|
|
OCT2464512560606060 , % DURE 00383400
|
|
OCT0000000011400023 , % 00009|0C 00383500
|
|
OCT0000054321222543 , % 005LABEL 00383600
|
|
OCT0000000011700036 , % 00009Y0< 00383700
|
|
OCT0000062425263145 , % 006DEFIN 00383800
|
|
OCT2560606060606060 , % E 00383900
|
|
OCT0000000012000046 , % 0000#00O 00384000
|
|
OCT0000042631432560 , % 004FILE 00384100
|
|
OCT0000000012200072 , % 0000#+0, 00384200
|
|
OCT0000062646514421 , % 006FORMA 00384300
|
|
OCT6360606060606060 , % T 00384400
|
|
OCT0000000012400017 , % 0000#|0} 00384500
|
|
OCT0000034546636060 , % 003NOT 00384600
|
|
OCT0000000012700056 , % 0000#Y0; 00384700
|
|
OCT0000046631633060 , % 004WITH 00384800
|
|
OCT0000000013000000 , % 0000@000 00384900
|
|
OCT0000056521436425 , % 005VALUE 00385000
|
|
OCT0000000013200000 , % 0000@+00 00385100
|
|
OCT0000074446453163 , % 007MONIT 00385200
|
|
OCT2551606060606060 , % ER 00385300
|
|
OCT0000000013300105 , % 0000@H15 00385400
|
|
OCT0000034446246060 , % 003MOD 00385500
|
|
OCT0000000013400000 , % 0000@|00 00385600
|
|
OCT0000046250516360 , % 004SQRT 00385700
|
|
OCT0000000013600060 , % 0000@ 0 00385800
|
|
OCT0000075125432521 , % 007RELEA 00385900
|
|
OCT6225606060606060 , % SE 00386000
|
|
OCT0000000014000112 , % 0000 01# 00386100
|
|
OCT0000046231274560 , % 004SIGN 00386200
|
|
OCT0000000014100117 , % 0000 81} 00386300
|
|
OCT0000036231456060 , % 003SIN 00386400
|
|
OCT0000000014400052 , % 0000 |0$ 00386500
|
|
OCT0000072124245125 , % 007ADDRE 00386600
|
|
OCT6262606060606060 , % SS 00386700
|
|
OCT0000000015000040 , % 0000:00| 00386800
|
|
OCT0000052343466225 , % 005CLOSE 00386900
|
|
OCT0000000015100126 , % 0000:81F 00387000
|
|
OCT0000072346456351 , % 007CONTR 00387100
|
|
OCT4643606060606060 , % OL 00387200
|
|
OCT0000000015500067 , % 0000:Q0X 00387300
|
|
OCT0000042431624260 , % 004DISK 00387400
|
|
OCT0000000016000065 , % 0000>00V 00387500
|
|
OCT0000044346234260 , % 004LOCK 00387600
|
|
OCT0000000016200050 , % 0000>+0Q 00387700
|
|
OCT0000024626606060 , % 002OF 00387800
|
|
OCT0000000016300137 , % 0000>H1~ 00387900
|
|
OCT0000044647254560 , % 004OPEN 00388000
|
|
OCT0000000016500062 , % 0000>Q0S 00388100
|
|
OCT0000074751314563 , % 007PRINT 00388200
|
|
OCT2551606060606060 , % ER 00388300
|
|
OCT0000000016700143 , % 0000>Y1L 00388400
|
|
OCT0000054764452330 , % 005PUNCH 00388500
|
|
OCT0000000017000146 , % 0000}01O 00388600
|
|
OCT0000054764512725 , % 005PURGE 00388700
|
|
OCT0000000017100114 , % 0000}81 00388800
|
|
OCT0000065125212425 , % 006READE 00388900
|
|
OCT5160606060606060 , % R 00389000
|
|
OCT0000000017200152 , % 0000}+1$ 00389100
|
|
OCT0000045125254360 , % 004REEL 00389200
|
|
OCT0000000017300155 , % 0000}H1) 00389300
|
|
OCT0000065125663145 , % 006REWIN 00389400
|
|
OCT2460606060606060 , % D 00389500
|
|
OCT0000000017400121 , % 0000}|1A 00389600
|
|
OCT0000046225254260 , % 004SEEK 00389700
|
|
OCT0000000017500162 , % 0000}Q1S 00389800
|
|
OCT0000066231274525 , % 006SIGNE 00389900
|
|
OCT2460606060606060 , % D 00390000
|
|
OCT0000000017600164 , % 0000} 1U 00390100
|
|
OCT0000026245606060 , % 002SN 00390200
|
|
OCT0000000017700167 , % 0000}Y1X 00390300
|
|
OCT0000056247212325 , % 005SPACE 00390400
|
|
OCT0000000020100044 , % 0000+80M 00390500
|
|
OCT0000046321472560 , % 004TAPE 00390600
|
|
OCT0000000020400103 , % 0000+|13 00390700
|
|
OCT0000026521606060 , % 002VA 00390800
|
|
OCT0000000027600110 , % 0000G 18 00390900
|
|
OCT0000064425444651 , % 006MEMOR 00391000
|
|
OCT7060606060606060 , % Y 00391100
|
|
OCT0000000037200123 , % 0000~+1C 00391200
|
|
OCT0000052122466463 , % 005ABOUT 00391300
|
|
OCT0000000037300202 , % 0000~H22 00391400
|
|
OCT0000062123232547 , % 006ACCEP 00391500
|
|
OCT6360606060606060 , % T 00391600
|
|
OCT0000000037400204 , % 0000~|24 00391700
|
|
OCT0000062123232562 , % 006ACCES 00391800
|
|
OCT6260606060606060 , % S 00391900
|
|
OCT0000000037500207 , % 0000~Q27 00392000
|
|
OCT0000062123636421 , % 006ACTUA 00392100
|
|
OCT4360606060606060 , % L 00392200
|
|
OCT0000000037600212 , % 0000~ 2# 00392300
|
|
OCT0000112124652145 , % 009ADVAN 00392400
|
|
OCT2331452760606060 , % CING 00392500
|
|
OCT0000000037700215 , % 0000~Y2: 00392600
|
|
OCT0000052126632551 , % 005AFTER 00392700
|
|
OCT0000000040000220 , % 0000|02+ 00392800
|
|
OCT0000032143436060 , % 003ALL 00392900
|
|
OCT0000000040100222 , % 0000|82B 00393000
|
|
OCT0000122143473021 , % 00#ALPHA 00393100
|
|
OCT2225633123606060 , % BETIC 00393200
|
|
OCT0000000040200224 , % 0000|+2D 00393300
|
|
OCT0000142143473021 , % 00 ALPHA 00393400
|
|
OCT4564442551312360 , % NUMERIC 00393500
|
|
OCT0000000040300227 , % 0000|H2G 00393600
|
|
OCT0000112143632551 , % 009ALTER 00393700
|
|
OCT4521632560606060 , % NATE 00393800
|
|
OCT0000000040400232 , % 0000||2. 00393900
|
|
OCT0000052143632551 , % 005ALTER 00394000
|
|
OCT0000000040500235 , % 0000|Q2( 00394100
|
|
OCT0000022145606060 , % 002AN 00394200
|
|
OCT0000000040600237 , % 0000| 2~ 00394300
|
|
OCT0000052147474370 , % 005APPLY 00394400
|
|
OCT0000000040700241 , % 0000|Y2J 00394500
|
|
OCT0000032151256060 , % 003ARE 00394600
|
|
OCT0000000041000243 , % 0000J02L 00394700
|
|
OCT0000042151252160 , % 004AREA 00394800
|
|
OCT0000000041100245 , % 0000J82N 00394900
|
|
OCT0000052151252162 , % 005AREAS 00395000
|
|
OCT0000000041200247 , % 0000J+2P 00395100
|
|
OCT0000112162232545 , % 009ASCEN 00395200
|
|
OCT2431452760606060 , % DING 00395300
|
|
OCT0000000041300251 , % 0000JH2R 00395400
|
|
OCT0000062162623127 , % 006ASSIG 00395500
|
|
OCT4560606060606060 , % N 00395600
|
|
OCT0000000041400254 , % 0000J|2- 00395700
|
|
OCT0000022163606060 , % 002AT 00395800
|
|
OCT0000000041500257 , % 0000JQ2{ 00395900
|
|
OCT0000062164633046 , % 006AUTHO 00396000
|
|
OCT5160606060606060 , % R 00396100
|
|
OCT0000000041600000 , % 0000J 00 00396200
|
|
OCT0000062225264651 , % 006BEFOR 00396300
|
|
OCT2560606060606060 , % E 00396400
|
|
OCT0000000041700264 , % 0000JY2U 00396500
|
|
OCT0000112225273145 , % 009BEGIN 00396600
|
|
OCT4531452760606060 , % NING 00396700
|
|
OCT0000000042500267 , % 0000KQ2X 00396800
|
|
OCT0000052243214542 , % 005BLANK 00396900
|
|
OCT0000000042200272 , % 0000K+2, 00397000
|
|
OCT0000042231636260 , % 004BITS 00397100
|
|
OCT0000000042600274 , % 0000K 2! 00397200
|
|
OCT0000052243462342 , % 005BLOCK 00397300
|
|
OCT0000000043000276 , % 0000L02] 00397400
|
|
OCT0000022270606060 , % 002BY 00397500
|
|
OCT0000000043100300 , % 0000L830 00397600
|
|
OCT0000022271606060 , % 002BZ 00397700
|
|
OCT0000000043500130 , % 0000LQ1H 00397800
|
|
OCT0000072330214545 , % 007CHANN 00397900
|
|
OCT2543606060606060 , % EL 00398000
|
|
OCT0000000043600304 , % 0000L 34 00398100
|
|
OCT0000112330215121 , % 009CHARA 00398200
|
|
OCT2363255160606060 , % CTER 00398300
|
|
OCT0000000043700307 , % 0000LY37 00398400
|
|
OCT0000122330215121 , % 00#CHARA 00398500
|
|
OCT2363255162606060 , % CTERS 00398600
|
|
OCT0000000044000312 , % 0000M03# 00398700
|
|
OCT0000052330252342 , % 005CHECK 00398800
|
|
OCT0000000044100315 , % 0000M83: 00398900
|
|
OCT0000022343606060 , % 002CL 00399000
|
|
OCT0000000044200317 , % 0000M+3} 00399100
|
|
OCT0000052343216262 , % 005CLASS 00399200
|
|
OCT0000000044400321 , % 0000M|3A 00399300
|
|
OCT0000032344476060 , % 003CMP 00399400
|
|
OCT0000000044600323 , % 0000M 3C 00399500
|
|
OCT0000052346224643 , % 005COBOL 00399600
|
|
OCT0000000044700325 , % 0000MY3E 00399700
|
|
OCT0000152346444764 , % 00:COMPU 00399800
|
|
OCT6321633146452143 , % TATIONAL 00399900
|
|
OCT0000000045100327 , % 0000N83G 00400000
|
|
OCT0000072346444764 , % 007COMPU 00400100
|
|
OCT6325606060606060 , % TE 00400200
|
|
OCT0000000045200332 , % 0000N+3. 00400300
|
|
OCT0000152346452631 , % 00:CONFI 00400400
|
|
OCT2764512163314645 , % GURATION 00400500
|
|
OCT0000000045300335 , % 0000NH3( 00400600
|
|
OCT0000102346456263 , % 008CONST 00400700
|
|
OCT2145636060606060 , % ANT 00400800
|
|
OCT0000000045400340 , % 0000N|3| 00400900
|
|
OCT0000102346456321 , % 008CONTA 00401000
|
|
OCT3145626060606060 , % INS 00401100
|
|
OCT0000000045500343 , % 0000NQ3L 00401200
|
|
OCT0000122346456525 , % 00#CONVE 00401300
|
|
OCT5162314645606060 , % RSION 00401400
|
|
OCT0000000045600346 , % 0000N 3O 00401500
|
|
OCT0000042346477060 , % 004COPY 00401600
|
|
OCT0000000045700351 , % 0000NY3R 00401700
|
|
OCT0000152346515125 , % 00:CORRE 00401800
|
|
OCT6247464524314527 , % SPONDING 00401900
|
|
OCT0000000046000353 , % 0000O03* 00402000
|
|
OCT0000022347606060 , % 002CP 00402100
|
|
OCT0000000046200356 , % 0000O+3; 00402200
|
|
OCT0000052370234325 , % 005CYCLE 00402300
|
|
OCT0000000046300133 , % 0000OH1[ 00402400
|
|
OCT0000042421632160 , % 004DATA 00402500
|
|
OCT0000000046600362 , % 0000O 3S 00402600
|
|
OCT0000142425234321 , % 00 DECLA 00402700
|
|
OCT5121633165256260 , % RATIVES 00402800
|
|
OCT0000000046700364 , % 0000OY3U 00402900
|
|
OCT0000112425472545 , % 009DEPEN 00403000
|
|
OCT2431452760606060 , % DING 00403100
|
|
OCT0000000047000367 , % 0000P03X 00403200
|
|
OCT0000122425622325 , % 00#DESCE 00403300
|
|
OCT4524314527606060 , % NDING 00403400
|
|
OCT0000000047100372 , % 0000P83, 00403500
|
|
OCT0000122431212745 , % 00#DIAGN 00403600
|
|
OCT4662633123606060 , % OSTIC 00403700
|
|
OCT0000000047200375 , % 0000P+3= 00403800
|
|
OCT0000052431273163 , % 005DIGIT 00403900
|
|
OCT0000000047300400 , % 0000PH40 00404000
|
|
OCT0000062431273163 , % 006DIGIT 00404100
|
|
OCT6260606060606060 , % S 00404200
|
|
OCT0000000047400402 , % 0000P|42 00404300
|
|
OCT0000072431624743 , % 007DISPL 00404400
|
|
OCT2170606060606060 , % AY 00404500
|
|
OCT0000000047500405 , % 0000PQ45 00404600
|
|
OCT0000062431653124 , % 006DIVID 00404700
|
|
OCT2560606060606060 , % E 00404800
|
|
OCT0000000047600410 , % 0000P 48 00404900
|
|
OCT0000072431653124 , % 007DIVID 00405000
|
|
OCT2524606060606060 , % ED 00405100
|
|
OCT0000000047700413 , % 0000PY4@ 00405200
|
|
OCT0000102431653162 , % 008DIVIS 00405300
|
|
OCT3146456060606060 , % ION 00405400
|
|
OCT0000000050000416 , % 0000Q04> 00405500
|
|
OCT0000062446434321 , % 006DOLLA 00405600
|
|
OCT5160606060606060 , % R 00405700
|
|
OCT0000000050100421 , % 0000Q84A 00405800
|
|
OCT0000042451644460 , % 004DRUM 00405900
|
|
OCT0000000050200042 , % 0000Q+0K 00406000
|
|
OCT0000062545243145 , % 006ENDIN 00406100
|
|
OCT2760606060606060 , % G 00406200
|
|
OCT0000000051000426 , % 0000R04F 00406300
|
|
OCT0000132545653151 , % 00@ENVIR 00406400
|
|
OCT4645442545636060 , % ONMENT 00406500
|
|
OCT0000000051100431 , % 0000R84I 00406600
|
|
OCT0000052550642143 , % 005EQUAL 00406700
|
|
OCT0000000051200434 , % 0000R+4& 00406800
|
|
OCT0000062550642143 , % 006EQUAL 00406900
|
|
OCT6260606060606060 , % S 00407000
|
|
OCT0000000051300436 , % 0000RH4< 00407100
|
|
OCT0000052551514651 , % 005ERROR 00407200
|
|
OCT0000000051400441 , % 0000R|4J 00407300
|
|
OCT0000052565255170 , % 005EVERY 00407400
|
|
OCT0000000051500443 , % 0000RQ4L 00407500
|
|
OCT0000072567214431 , % 007EXAMI 00407600
|
|
OCT4525606060606060 , % NE 00407700
|
|
OCT0000000051600445 , % 0000R 4N 00407800
|
|
OCT0000072567232525 , % 007EXCEE 00407900
|
|
OCT2462606060606060 , % DS 00408000
|
|
OCT0000000051700074 , % 0000RY0! 00408100
|
|
OCT0000022624606060 , % 002FD 00408200
|
|
OCT0000000052300453 , % 0000$H4* 00408300
|
|
OCT0000062631434325 , % 006FILLE 00408400
|
|
OCT5160606060606060 , % R 00408500
|
|
OCT0000000052400455 , % 0000$|4) 00408600
|
|
OCT0000052631516263 , % 005FIRST 00408700
|
|
OCT0000000052500460 , % 0000$Q4 00408800
|
|
OCT0000052643462163 , % 005FLOAT 00408900
|
|
OCT0000000052600462 , % 0000$ 4S 00409000
|
|
OCT0000042651464460 , % 004FROM 00409100
|
|
OCT0000000052700464 , % 0000$Y4U 00409200
|
|
OCT0000022662606060 , % 002FS 00409300
|
|
OCT0000000053000005 , % 0000*005 00409400
|
|
OCT0000062731653145 , % 006GIVIN 00409500
|
|
OCT2760606060606060 , % G 00409600
|
|
OCT0000000053100470 , % 0000*84Y 00409700
|
|
OCT0000072751252163 , % 007GREAT 00409800
|
|
OCT2551606060606060 , % ER 00409900
|
|
OCT0000000053200000 , % 0000*+00 00410000
|
|
OCT0000063021623025 , % 006HASHE 00410100
|
|
OCT2460606060606060 , % D 00410200
|
|
OCT0000000053500025 , % 0000*Q0E 00410300
|
|
OCT0000023124606060 , % 002ID 00410400
|
|
OCT0000000053600501 , % 0000* 51 00410500
|
|
OCT0000163124254563 , % 00>IDENT 00410600
|
|
OCT3126312321633146 , % IFICATIO 00410700
|
|
OCT4560606060606060 , % N 00410800
|
|
OCT0000000054100503 , % 0000-853 00410900
|
|
OCT0000073145234364 , % 007INCLU 00411000
|
|
OCT2425606060606060 , % DE 00411100
|
|
OCT0000000054200507 , % 0000-+57 00411200
|
|
OCT0000053145476463 , % 005INPUT 00411300
|
|
OCT0000000054400512 , % 0000-|5# 00411400
|
|
OCT0000143145626321 , % 00 INSTA 00411500
|
|
OCT4343216331464560 , % LLATION 00411600
|
|
OCT0000000054500514 , % 0000-Q5 00411700
|
|
OCT0000043145634660 , % 004INTO 00411800
|
|
OCT0000000054600517 , % 0000- 5} 00411900
|
|
OCT0000073145652143 , % 007INVAL 00412000
|
|
OCT3124606060606060 , % ID 00412100
|
|
OCT0000000054700000 , % 0000-Y00 00412200
|
|
OCT0000024162606060 , % 002JS 00412300
|
|
OCT0000000055000524 , % 0000)05D 00412400
|
|
OCT0000114164626331 , % 009JUSTI 00412500
|
|
OCT2631252460606060 , % FIED 00412600
|
|
OCT0000000055100000 , % 0000)800 00412700
|
|
OCT0000034225706060 , % 003KEY 00412800
|
|
OCT0000000055200531 , % 0000)+5I 00412900
|
|
OCT0000104225702246 , % 008KEYBO 00413000
|
|
OCT2151246060606060 , % ARD 00413100
|
|
OCT0000000055300135 , % 0000)H1( 00413200
|
|
OCT0000074325212431 , % 007LEADI 00413300
|
|
OCT4527606060606060 , % NG 00413400
|
|
OCT0000000055400536 , % 0000)|5< 00413500
|
|
OCT0000074325216531 , % 007LEAVI 00413600
|
|
OCT4527606060606060 , % NG 00413700
|
|
OCT0000000055500541 , % 0000)Q5J 00413800
|
|
OCT0000044325266360 , % 004LEFT 00413900
|
|
OCT0000000055600544 , % 0000) 5M 00414000
|
|
OCT0000044325626260 , % 004LESS 00414100
|
|
OCT0000000055700546 , % 0000)Y5O 00414200
|
|
OCT0000074331225121 , % 007LIBRA 00414300
|
|
OCT5170606060606060 , % RY 00414400
|
|
OCT0000000056000550 , % 0000;05Q 00414500
|
|
OCT0000054331452562 , % 005LINES 00414600
|
|
OCT0000000056100553 , % 0000;85* 00414700
|
|
OCT0000104346232163 , % 008LOCAT 00414800
|
|
OCT3146456060606060 , % ION 00414900
|
|
OCT0000000056600555 , % 0000; 5) 00415000
|
|
OCT0000024347606060 , % 002LP 00415100
|
|
OCT0000000056700177 , % 0000;Y1" 00415200
|
|
OCT0000024424606060 , % 002MD 00415300
|
|
OCT0000000057300562 , % 0000{H5S 00415400
|
|
OCT0000044426312460 , % 004MFID 00415500
|
|
OCT0000000057400564 , % 0000{|5U 00415600
|
|
OCT0000054431456462 , % 005MINUS 00415700
|
|
OCT0000000057500566 , % 0000{Q5W 00415800
|
|
OCT0000044446242560 , % 004MODE 00415900
|
|
OCT0000000057600570 , % 0000{ 5Y 00416000
|
|
OCT0000074446246443 , % 007MODUL 00416100
|
|
OCT2562606060606060 , % ES 00416200
|
|
OCT0000000057700572 , % 0000{Y5, 00416300
|
|
OCT0000044446652560 , % 004MOVE 00416400
|
|
OCT0000000060000575 , % 0000 05= 00416500
|
|
OCT0000124464436331 , % 00#MULTI 00416600
|
|
OCT4743312524606060 , % PLIED 00416700
|
|
OCT0000000060100577 , % 0000 85" 00416800
|
|
OCT0000104464436331 , % 008MULTI 00416900
|
|
OCT4743706060606060 , % PLY 00417000
|
|
OCT0000000060200602 , % 0000 +62 00417100
|
|
OCT0000104464436331 , % 008MULTI 00417200
|
|
OCT4743256060606060 , % PLE 00417300
|
|
OCT0000000060300077 , % 0000 H0" 00417400
|
|
OCT0000104525272163 , % 008NEGAT 00417500
|
|
OCT3165256060606060 , % IVE 00417600
|
|
OCT0000000060400610 , % 0000 |68 00417700
|
|
OCT0000044525676360 , % 004NEXT 00417800
|
|
OCT0000000060700613 , % 0000 Y6@ 00417900
|
|
OCT0000074564442551 , % 007NUMER 00418000
|
|
OCT3123606060606060 , % IC 00418100
|
|
OCT0000000061200141 , % 0000/+1J 00418200
|
|
OCT0000024623606060 , % 002OC 00418300
|
|
OCT0000000061300620 , % 0000/H6+ 00418400
|
|
OCT0000064623236451 , % 006OCCUR 00418500
|
|
OCT6260606060606060 , % S 00418600
|
|
OCT0000000061400622 , % 0000/|6B 00418700
|
|
OCT0000034626266060 , % 003OFF 00418800
|
|
OCT0000000061500625 , % 0000/Q6E 00418900
|
|
OCT0000074644316363 , % 007OMITT 00419000
|
|
OCT2524606060606060 , % ED 00419100
|
|
OCT0000000061600627 , % 0000/ 6G 00419200
|
|
OCT0000024645606060 , % 002ON 00419300
|
|
OCT0000000061700632 , % 0000/Y6. 00419400
|
|
OCT0000104647633146 , % 008OPTIO 00419500
|
|
OCT4521436060606060 , % NAL 00419600
|
|
OCT0000000062000634 , % 0000S06& 00419700
|
|
OCT0000114663302551 , % 009OTHER 00419800
|
|
OCT6631622560606060 , % WISE 00419900
|
|
OCT0000000062100637 , % 0000S86~ 00420000
|
|
OCT0000064664634764 , % 006OUTPU 00420100
|
|
OCT6360606060606060 , % T 00420200
|
|
OCT0000000062400150 , % 0000S|1Q 00420300
|
|
OCT0000024723606060 , % 002PC 00420400
|
|
OCT0000000062500645 , % 0000SQ6N 00420500
|
|
OCT0000074725512646 , % 007PERFO 00420600
|
|
OCT5144606060606060 , % RM 00420700
|
|
OCT0000000062600647 , % 0000S 6P 00420800
|
|
OCT0000074731236364 , % 007PICTU 00420900
|
|
OCT5125606060606060 , % RE 00421000
|
|
OCT0000000062700652 , % 0000SY6$ 00421100
|
|
OCT0000064743212325 , % 006PLACE 00421200
|
|
OCT6260606060606060 , % S 00421300
|
|
OCT0000000063000655 , % 0000T06) 00421400
|
|
OCT0000044743646260 , % 004PLUS 00421500
|
|
OCT0000000063100660 , % 0000T86 00421600
|
|
OCT0000054746314563 , % 005POINT 00421700
|
|
OCT0000000063200662 , % 0000T+6S 00421800
|
|
OCT0000104746623163 , % 008POSIT 00421900
|
|
OCT3165256060606060 , % IVE 00422000
|
|
OCT0000000063300664 , % 0000TH6U 00422100
|
|
OCT0000104746623163 , % 008POSIT 00422200
|
|
OCT3146456060606060 , % ION 00422300
|
|
OCT0000000063400667 , % 0000T|6X 00422400
|
|
OCT0000104751254721 , % 008PREPA 00422500
|
|
OCT5125246060606060 , % RED 00422600
|
|
OCT0000000063500672 , % 0000TQ6, 00422700
|
|
OCT0000104751314563 , % 008PRINT 00422800
|
|
OCT2551626060606060 , % ERS 00422900
|
|
OCT0000000063600675 , % 0000T 6= 00423000
|
|
OCT0000104751314651 , % 008PRIOR 00423100
|
|
OCT3163706060606060 , % ITY 00423200
|
|
OCT0000000063700700 , % 0000TY70 00423300
|
|
OCT0000074751462325 , % 007PROCE 00423400
|
|
OCT2524606060606060 , % ED 00423500
|
|
OCT0000000064100703 , % 0000U873 00423600
|
|
OCT0000074751466325 , % 007PROTE 00423700
|
|
OCT2363606060606060 , % CT 00423800
|
|
OCT0000000064200706 , % 0000U+76 00423900
|
|
OCT0000024763606060 , % 002PT 00424000
|
|
OCT0000000064400000 , % 0000U|00 00424100
|
|
OCT0000055064466325 , % 005QUOTE 00424200
|
|
OCT0000000064500157 , % 0000UQ1{ 00424300
|
|
OCT0000065121452446 , % 006RANDO 00424400
|
|
OCT4460606060606060 , % M 00424500
|
|
OCT0000000064600715 , % 0000U 7: 00424600
|
|
OCT0000055121452725 , % 005RANGE 00424700
|
|
OCT0000000064700720 , % 0000UY7+ 00424800
|
|
OCT0000075125212425 , % 007READE 00424900
|
|
OCT5162606060606060 , % RS 00425000
|
|
OCT0000000065000722 , % 0000V07B 00425100
|
|
OCT0000115125234651 , % 009RECOR 00425200
|
|
OCT2431452760606060 , % DING 00425300
|
|
OCT0000000065100725 , % 0000V87E 00425400
|
|
OCT0000075125234651 , % 007RECOR 00425500
|
|
OCT2462606060606060 , % DS 00425600
|
|
OCT0000000065200730 , % 0000V+7H 00425700
|
|
OCT0000065125234651 , % 006RECOR 00425800
|
|
OCT2460606060606060 , % D 00425900
|
|
OCT0000000065400733 , % 0000V|7[ 00426000
|
|
OCT0000115125242526 , % 009REDEF 00426100
|
|
OCT3145256260606060 , % INES 00426200
|
|
OCT0000000065600736 , % 0000V 7< 00426300
|
|
OCT0000075125442151 , % 007REMAR 00426400
|
|
OCT4262606060606060 , % KS 00426500
|
|
OCT0000000065700741 , % 0000VY7J 00426600
|
|
OCT0000075125452144 , % 007RENAM 00426700
|
|
OCT2562606060606060 , % ES 00426800
|
|
OCT0000000066000744 , % 0000W07M 00426900
|
|
OCT0000105125452144 , % 008RENAM 00427000
|
|
OCT3145276060606060 , % ING 00427100
|
|
OCT0000000066100747 , % 0000W87P 00427200
|
|
OCT0000115125474321 , % 009REPLA 00427300
|
|
OCT2331452760606060 , % CING 00427400
|
|
OCT0000000066200752 , % 0000W+7$ 00427500
|
|
OCT0000055125516445 , % 005RERUN 00427600
|
|
OCT0000000066300755 , % 0000WH7) 00427700
|
|
OCT0000075125622551 , % 007RESER 00427800
|
|
OCT6525606060606060 , % VE 00427900
|
|
OCT0000000066400757 , % 0000W|7{ 00428000
|
|
OCT0000065125636451 , % 006RETUR 00428100
|
|
OCT4560606060606060 , % N 00428200
|
|
OCT0000000066500762 , % 0000WQ7S 00428300
|
|
OCT0000105125652551 , % 008REVER 00428400
|
|
OCT6225246060606060 , % SED 00428500
|
|
OCT0000000066600765 , % 0000W 7V 00428600
|
|
OCT0000025127606060 , % 002RG 00428700
|
|
OCT0000000066700770 , % 0000WY7Y 00428800
|
|
OCT0000055131273063 , % 005RIGHT 00428900
|
|
OCT0000000067000772 , % 0000X07, 00429000
|
|
OCT0000075146644524 , % 007ROUND 00429100
|
|
OCT2524606060606060 , % ED 00429200
|
|
OCT0000000067100774 , % 0000X87! 00429300
|
|
OCT0000035164456060 , % 003RUN 00429400
|
|
OCT0000000067200171 , % 0000X+1Z 00429500
|
|
OCT0000046221442560 , % 004SAME 00429600
|
|
OCT0000000067401001 , % 0000X|81 00429700
|
|
OCT0000026224606060 , % 002SD 00429800
|
|
OCT0000000067501003 , % 0000XQ83 00429900
|
|
OCT0000076225236331 , % 007SECTI 00430000
|
|
OCT4645606060606060 , % ON 00430100
|
|
OCT0000000067601005 , % 0000X 85 00430200
|
|
OCT0000106225236451 , % 008SECUR 00430300
|
|
OCT3163706060606060 , % ITY 00430400
|
|
OCT0000000067701010 , % 0000XY88 00430500
|
|
OCT0000076225274425 , % 007SEGME 00430600
|
|
OCT4563606060606060 , % NT 00430700
|
|
OCT0000000070001013 , % 0000Y08@ 00430800
|
|
OCT0000106225274425 , % 008SEGME 00430900
|
|
OCT4563626060606060 , % NTS 00431000
|
|
OCT0000000070201016 , % 0000Y+8> 00431100
|
|
OCT0000066225432523 , % 006SELEC 00431200
|
|
OCT6360606060606060 , % T 00431300
|
|
OCT0000000070301021 , % 0000YH8A 00431400
|
|
OCT0000106225456325 , % 008SENTE 00431500
|
|
OCT4523256060606060 , % NCE 00431600
|
|
OCT0000000070401024 , % 0000Y|8D 00431700
|
|
OCT0000106225456331 , % 008SENTI 00431800
|
|
OCT4525436060606060 , % NEL 00431900
|
|
OCT0000000070501027 , % 0000YQ8G 00432000
|
|
OCT0000116225506425 , % 009SEQUE 00432100
|
|
OCT4523252460606060 , % NCED 00432200
|
|
OCT0000000070601032 , % 0000Y 8. 00432300
|
|
OCT0000126225506425 , % 00#SEQUE 00432400
|
|
OCT4563312143606060 , % NTIAL 00432500
|
|
OCT0000000070701035 , % 0000YY8( 00432600
|
|
OCT0000046231712560 , % 004SIZE 00432700
|
|
OCT0000000071201040 , % 0000Z+8| 00432800
|
|
OCT0000066247212325 , % 006SPACE 00432900
|
|
OCT6260606060606060 , % S 00433000
|
|
OCT0000000071401042 , % 0000Z|8K 00433100
|
|
OCT0000046246516360 , % 004SORT 00433200
|
|
OCT0000000071501045 , % 0000ZQ8N 00433300
|
|
OCT0000106263214524 , % 008STAND 00433400
|
|
OCT2151246060606060 , % ARD 00433500
|
|
OCT0000000071601047 , % 0000Z 8P 00433600
|
|
OCT0000066263216364 , % 006STATU 00433700
|
|
OCT6260606060606060 , % S 00433800
|
|
OCT0000000071701052 , % 0000ZY8$ 00433900
|
|
OCT0000046263464760 , % 004STOP 00434000
|
|
OCT0000000072001055 , % 0000,08) 00434100
|
|
OCT0000106264226351 , % 008SUBTR 00434200
|
|
OCT2123636060606060 , % ACT 00434300
|
|
OCT0000000072101057 , % 0000,88{ 00434400
|
|
OCT0000126264472551 , % 00#SUPER 00434500
|
|
OCT6531624651606060 , % VISOR 00434600
|
|
OCT0000000072201062 , % 0000,+8S 00434700
|
|
OCT0000026270606060 , % 002SY 00434800
|
|
OCT0000000072301065 , % 0000,H8V 00434900
|
|
OCT0000106270442246 , % 008SYMBO 00435000
|
|
OCT4331236060606060 , % LIC 00435100
|
|
OCT0000000072401067 , % 0000,|8X 00435200
|
|
OCT0000146270452330 , % 00 SYNCH 00435300
|
|
OCT5146453171252460 , % RONIZED 00435400
|
|
OCT0000000072501072 , % 0000,Q8, 00435500
|
|
OCT0000026271606060 , % 002SZ 00435600
|
|
OCT0000000072601075 , % 0000, 8= 00435700
|
|
OCT0000106264474751 , % 008SUPPR 00435800
|
|
OCT2562626060606060 , % ESS 00435900
|
|
OCT0000000072700173 , % 0000,Y1% 00436000
|
|
OCT0000106321434370 , % 008TALLY 00436100
|
|
OCT3145276060606060 , % ING 00436200
|
|
OCT0000000073001102 , % 0000%092 00436300
|
|
OCT0000056321472562 , % 005TAPES 00436400
|
|
OCT0000000073601105 , % 0000% 95 00436500
|
|
OCT0000046330214560 , % 004THAN 00436600
|
|
OCT0000000073701107 , % 0000%Y97 00436700
|
|
OCT0000076330514664 , % 007THROU 00436800
|
|
OCT2730606060606060 , % GH 00436900
|
|
OCT0000000074001111 , % 0000!099 00437000
|
|
OCT0000046330516460 , % 004THRU 00437100
|
|
OCT0000000074101114 , % 0000!89 00437200
|
|
OCT0000056331442562 , % 005TIMES 00437300
|
|
OCT0000000074300054 , % 0000!H0- 00437400
|
|
OCT0000076445255064 , % 007UNEQU 00437500
|
|
OCT2143606060606060 , % AL 00437600
|
|
OCT0000000074401120 , % 0000!|9+ 00437700
|
|
OCT0000066445434623 , % 006UNLOC 00437800
|
|
OCT4260606060606060 , % K 00437900
|
|
OCT0000000074501123 , % 0000!Q9C 00438000
|
|
OCT0000046447464560 , % 004UPON 00438100
|
|
OCT0000000075001126 , % 0000=09F 00438200
|
|
OCT0000056462212725 , % 005USAGE 00438300
|
|
OCT0000000075101130 , % 0000=89H 00438400
|
|
OCT0000036462256060 , % 003USE 00438500
|
|
OCT0000000075201132 , % 0000=+9. 00438600
|
|
OCT0000056462314527 , % 005USING 00438700
|
|
OCT0000000075300175 , % 0000=H1= 00438800
|
|
OCT0000066521436425 , % 006VALUE 00438900
|
|
OCT6260606060606060 , % S 00439000
|
|
OCT0000000075401136 , % 0000=|9< 00439100
|
|
OCT0000076521517031 , % 007VARYI 00439200
|
|
OCT4527606060606060 , % NG 00439300
|
|
OCT0000000075500101 , % 0000=Q11 00439400
|
|
OCT0000046630254560 , % 004WHEN 00439500
|
|
OCT0000000075601144 , % 0000= 9M 00439600
|
|
OCT0000056646512462 , % 005WORDS 00439700
|
|
OCT0000000076000000 , % 0000]000 00439800
|
|
OCT0000047125514660 , % 004ZERO 00439900
|
|
OCT0000000076101150 , % 0000]89Q 00440000
|
|
OCT0000057125514662 , % 005ZEROS 00440100
|
|
OCT0000000076201152 , % 0000]+9$ 00440200
|
|
OCT0000067125514625 , % 006ZEROE 00440300
|
|
OCT6260606060606060 , % S 00440400
|
|
OCT0000000076301154 , % 0000]H9- 00440500
|
|
OCT0000027162606060 , % 002ZS 00440600
|
|
OCT0000000160400261 , % 0001 |2/ 00440700
|
|
OCT0000032124246060 , % 003ADD 00440800
|
|
OCT0000000163101116 , % 0001T89> 00440900
|
|
OCT0000056321434370 , % 005TALLY 00441000
|
|
OCT0000000060500615 , % 0000 Q6: 00441100
|
|
OCT0000164546544425 , % 00>NO-ME 00441200
|
|
OCT4446517054246444 , % MORY-DUM 00441300
|
|
OCT4760606060606060 , % P 00441400
|
|
OCT0000000060601165 , % 0000 9V 00441500
|
|
OCT0000144546455462 , % 00 NON-S 00441600
|
|
OCT6321452421512460 , % TANDARD 00441700
|
|
OCT0000000075701146 , % 0000=Y9O 00441800
|
|
OCT0000176646514231 , % 00}WORKI 00441900
|
|
OCT4527546263465121 , % NG-STORA 00442000
|
|
OCT2725606060606060 , % GE 00442100
|
|
OCT0000000074601134 , % 0000! 9& 00442200
|
|
OCT0000136447472551 , % 00@UPPER 00442300
|
|
OCT5422466445246060 , % -BOUND 00442400
|
|
OCT0000000074701200 , % 0000!Y#0 00442500
|
|
OCT0000146447472551 , % 00 UPPER 00442600
|
|
OCT5422466445246260 , % -BOUNDS 00442700
|
|
OCT0000000074201163 , % 0000!+9T 00442800
|
|
OCT0000136346242170 , % 00@TODAY 00442900
|
|
OCT6254242163256060 , % S-DATE 00443000
|
|
OCT0000000073101206 , % 0000%8#6 00443100
|
|
OCT0000136325233045 , % 00@TECHN 00443200
|
|
OCT3150642554216060 , % IQUE-A 00443300
|
|
OCT0000000073201211 , % 0000%+#9 00443400
|
|
OCT0000136325233045 , % 00@TECHN 00443500
|
|
OCT3150642554226060 , % IQUE-B 00443600
|
|
OCT0000000073301214 , % 0000%H# 00443700
|
|
OCT0000136325233045 , % 00@TECHN 00443800
|
|
OCT3150642554236060 , % IQUE-C 00443900
|
|
OCT0000000073401217 , % 0000%|#} 00444000
|
|
OCT0000136325233045 , % 00@TECHN 00444100
|
|
OCT3150642554476060 , % IQUE-P 00444200
|
|
OCT0000000073501222 , % 0000%Q#B 00444300
|
|
OCT0000146325626354 , % 00 TEST- 00444400
|
|
OCT4721636325514560 , % PATTERN 00444500
|
|
OCT0000000071301077 , % 0000ZH8" 00444600
|
|
OCT0000156247252331 , % 00:SPECI 00444700
|
|
OCT2143544521442562 , % AL-NAMES 00444800
|
|
OCT0000000071001230 , % 0000Z0#H 00444900
|
|
OCT0000126246516354 , % 00#SORT- 00445000
|
|
OCT6321472562606060 , % TAPES 00445100
|
|
OCT0000000071101233 , % 0000Z8#[ 00445200
|
|
OCT0000176246645123 , % 00}SOURC 00445300
|
|
OCT2554234644476463 , % E-COMPUT 00445400
|
|
OCT2551606060606060 , % ER 00445500
|
|
OCT0000000070101236 , % 0000Y8#< 00445600
|
|
OCT0000156225274425 , % 00:SEGME 00445700
|
|
OCT4563544331443163 , % NT-LIMIT 00445800
|
|
OCT0000000067301242 , % 0000XH#K 00445900
|
|
OCT0000136221652554 , % 00@SAVE- 00446000
|
|
OCT2621236346516060 , % FACTOR 00446100
|
|
OCT0000000065500777 , % 0000VQ7" 00446200
|
|
OCT0000135125254354 , % 00@REEL- 00446300
|
|
OCT4564442225516060 , % NUMBER 00446400
|
|
OCT0000000065301250 , % 0000VH#Q 00446500
|
|
OCT0000145125234651 , % 00 RECOR 00446600
|
|
OCT2454234664456360 , % D-COUNT 00446700
|
|
OCT0000000064300711 , % 0000UH79 00446800
|
|
OCT0000124764512725 , % 00#PURGE 00446900
|
|
OCT5424216325606060 , % -DATE 00447000
|
|
OCT0000000064001256 , % 0000U0#; 00447100
|
|
OCT0000124751462751 , % 00#PROGR 00447200
|
|
OCT2144543124606060 , % AM-ID 00447300
|
|
OCT0000000062201261 , % 0000S+#/ 00447400
|
|
OCT0000214721472551 , % 00APAPER 00447500
|
|
OCT5463214725545125 , % -TAPE-RE 00447600
|
|
OCT2124255160606060 , % ADER 00447700
|
|
OCT0000000062301264 , % 0000SH#U 00447800
|
|
OCT0000204721472551 , % 00+PAPER 00447900
|
|
OCT5463214725544764 , % -TAPE-PU 00448000
|
|
OCT4523306060606060 , % NCH 00448100
|
|
OCT0000000061000642 , % 0000/06K 00448200
|
|
OCT0000164622412523 , % 00>OBJEC 00448300
|
|
OCT6354475146275121 , % T-PROGRA 00448400
|
|
OCT4460606060606060 , % M 00448500
|
|
OCT0000000061101274 , % 0000/8#! 00448600
|
|
OCT0000174622412523 , % 00}OBJEC 00448700
|
|
OCT6354234644476463 , % T-COMPUT 00448800
|
|
OCT2551606060606060 , % ER 00448900
|
|
OCT0000000057000605 , % 0000{065 00449000
|
|
OCT0000174425444651 , % 00}MEMOR 00449100
|
|
OCT7054246444475442 , % Y-DUMP-K 00449200
|
|
OCT2570606060606060 , % EY 00449300
|
|
OCT0000000057101304 , % 0000{8@4 00449400
|
|
OCT0000134425444651 , % 00@MEMOR 00449500
|
|
OCT7054246444476060 , % Y-DUMP 00449600
|
|
OCT0000000057201310 , % 0000{+@8 00449700
|
|
OCT0000174425626221 , % 00}MESSA 00449800
|
|
OCT2725544751314563 , % GE-PRINT 00449900
|
|
OCT2551606060606060 , % ER 00450000
|
|
OCT0000000056200560 , % 0000;+5 00450100
|
|
OCT0000134346662551 , % 00@LOWER 00450200
|
|
OCT5422466445246060 , % -BOUND 00450300
|
|
OCT0000000056301317 , % 0000;H@} 00450400
|
|
OCT0000144346662551 , % 00 LOWER 00450500
|
|
OCT5422466445246260 , % -BOUNDS 00450600
|
|
OCT0000000056401322 , % 0000;|@B 00450700
|
|
OCT0000114346665465 , % 009LOW-V 00450800
|
|
OCT2143642560606060 , % ALUE 00450900
|
|
OCT0000000056501325 , % 0000;Q@E 00451000
|
|
OCT0000124346665465 , % 00#LOW-V 00451100
|
|
OCT2143642562606060 , % ALUES 00451200
|
|
OCT0000000054300521 , % 0000-H5A 00451300
|
|
OCT0000143145476463 , % 00 INPUT 00451400
|
|
OCT5446646347646360 , % -OUTPUT 00451500
|
|
OCT0000000053701333 , % 0000*Y@[ 00451600
|
|
OCT0000033154466060 , % 003I-O 00451700
|
|
OCT0000000054001336 , % 0000-0@< 00451800
|
|
OCT0000133154465423 , % 00@I-O-C 00451900
|
|
OCT4645635146436060 , % ONTROL 00452000
|
|
OCT0000000053300476 , % 0000*H4] 00452100
|
|
OCT0000123031273054 , % 00#HIGH- 00452200
|
|
OCT6521436425606060 , % VALUE 00452300
|
|
OCT0000000053401343 , % 0000*|@L 00452400
|
|
OCT0000133031273054 , % 00@HIGH- 00452500
|
|
OCT6521436425626060 , % VALUES 00452600
|
|
OCT0000000052200466 , % 0000$+4W 00452700
|
|
OCT0000132631432554 , % 00@FILE- 00452800
|
|
OCT4331443163626060 , % LIMITS 00452900
|
|
OCT0000000052101351 , % 0000$8@R 00453000
|
|
OCT0000122631432554 , % 00#FILE- 00453100
|
|
OCT4331443163606060 , % LIMIT 00453200
|
|
OCT0000000052001354 , % 0000$0@- 00453300
|
|
OCT0000142631432554 , % 00 FILE- 00453400
|
|
OCT2346456351464360 , % CONTROL 00453500
|
|
OCT0000000050300450 , % 0000QH4Q 00453600
|
|
OCT0000212545243145 , % 00AENDIN 00453700
|
|
OCT2754263143255443 , % G-FILE-L 00453800
|
|
OCT2122254360606060 , % ABEL 00453900
|
|
OCT0000000050401362 , % 0000Q|@S 00454000
|
|
OCT0000212545243145 , % 00AENDIN 00454100
|
|
OCT2754632147255443 , % G-TAPE-L 00454200
|
|
OCT2122254360606060 , % ABEL 00454300
|
|
OCT0000000050501366 , % 0000QQ@W 00454400
|
|
OCT0000122545245446 , % 00#END-O 00454500
|
|
OCT2654414622606060 , % F-JOB 00454600
|
|
OCT0000000050601372 , % 0000Q @, 00454700
|
|
OCT0000132545245446 , % 00@END-O 00454800
|
|
OCT2654263143256060 , % F-FILE 00454900
|
|
OCT0000000050701375 , % 0000QY@= 00455000
|
|
OCT0000132545245446 , % 00@END-O 00455100
|
|
OCT2654632147256060 , % F-TAPE 00455200
|
|
OCT0000000046400424 , % 0000O|4D 00455300
|
|
OCT0000152421632554 , % 00:DATE- 00455400
|
|
OCT2346444731432524 , % COMPILED 00455500
|
|
OCT0000000046501403 , % 0000OQ 3 00455600
|
|
OCT0000142421632554 , % 00 DATE- 00455700
|
|
OCT6651316363254560 , % WRITTEN 00455800
|
|
OCT0000000046100360 , % 0000O83 00455900
|
|
OCT0000152351252163 , % 00:CREAT 00456000
|
|
OCT3146455424216325 , % ION-DATE 00456100
|
|
OCT0000000045001411 , % 0000N0 9 00456200
|
|
OCT0000172346444764 , % 00}COMPU 00456300
|
|
OCT6321633146452143 , % TATIONAL 00456400
|
|
OCT5401606060606060 , % -1 00456500
|
|
OCT0000000044501414 , % 0000MQ 00456600
|
|
OCT0000052344475401 , % 005CMP-1 00456700
|
|
OCT0000000044301420 , % 0000MH + 00456800
|
|
OCT0000132343462342 , % 00@CLOCK 00456900
|
|
OCT5464453163626060 , % -UNITS 00457000
|
|
OCT0000000043201422 , % 0000L+ B 00457100
|
|
OCT0000122321512454 , % 00#CARD- 00457200
|
|
OCT4764452330606060 , % PUNCH 00457300
|
|
OCT0000000043301425 , % 0000LH E 00457400
|
|
OCT0000132321512454 , % 00@CARD- 00457500
|
|
OCT5125212425516060 , % READER 00457600
|
|
OCT0000000043401430 , % 0000L| H 00457700
|
|
OCT0000142321512454 , % 00 CARD- 00457800
|
|
OCT5125212425516260 , % READERS 00457900
|
|
OCT0000000042700302 , % 0000KY32 00458000
|
|
OCT0000132243462342 , % 00@BLOCK 00458100
|
|
OCT5423466445636060 , % -COUNT 00458200
|
|
OCT0000000042401436 , % 0000K| < 00458300
|
|
OCT0000062254050500 , % 006B-550 00458400
|
|
OCT0060606060606060 , % 0 00458500
|
|
OCT0000000042301441 , % 0000KH J 00458600
|
|
OCT0000062254050000 , % 006B-500 00458700
|
|
OCT0060606060606060 , % 0 00458800
|
|
OCT0000000042001444 , % 0000K0 M 00458900
|
|
OCT0000242225273145 , % 00DBEGIN 00459000
|
|
OCT4531452754263143 , % NING-FIL 00459100
|
|
OCT2554432122254360 , % E-LABEL 00459200
|
|
OCT0000000042101447 , % 0000K8 P 00459300
|
|
OCT0000242225273145 , % 00DBEGIN 00459400
|
|
OCT4531452754632147 , % NING-TAP 00459500
|
|
OCT2554432122254360 ; % E-LABEL 00459600
|
|
FILL RESTACK[*] WITH 00459700
|
|
0, 0, 0, 0, 0, 0, 0, 0, 00459800
|
|
0, 0, 0, 0, 0, 0, 0, 0, 00459900
|
|
0, 625, 811, 795, 774, 768, 751, 315, 00460000
|
|
742, 736, 0, 0, 0, 0, 0, 0, 00460100
|
|
0, 342, 347, 728, 715, 633, 704, 696, 00460200
|
|
459, 683, 0, 0, 0, 0, 0, 0, 00460300
|
|
0, 0, 677, 661, 643, 609, 636, 0, 00460400
|
|
0,623,0,0,0,0,0,0; 00460500
|
|
GO TO EXIT ; 00460600
|
|
LFORT: 00460700
|
|
FILL RESERVED[*] WITH 0, % FORTRAN 00460800
|
|
OCT0000000041300000 , % 0000JH00 00460900
|
|
OCT0000062162623127 , % 006ASSIG 00461000
|
|
OCT4560606060606060 , % N 00461100
|
|
OCT0000000017700000 , % 0000}Y00 00461200
|
|
OCT0000112221234262 , % 009BACKS 00461300
|
|
OCT4721232560606060 , % PACE 00461400
|
|
OCT0000000042600004 , % 0000K 04 00461500
|
|
OCT0000052243462342 , % 005BLOCK 00461600
|
|
OCT0000000002100000 , % 00002800 00461700
|
|
OCT0000042321434360 , % 004CALL 00461800
|
|
OCT0000000076400011 , % 0000]|09 00461900
|
|
OCT0000062346444446 , % 006COMMO 00462000
|
|
OCT4560606060606060 , % N 00462100
|
|
OCT0000000076500013 , % 0000]Q0@ 00462200
|
|
OCT0000072346444743 , % 007COMPL 00462300
|
|
OCT2567606060606060 , % EX 00462400
|
|
OCT0000000030300016 , % 0000HH0> 00462500
|
|
OCT0000102346456331 , % 008CONTI 00462600
|
|
OCT4564256060606060 , % NUE 00462700
|
|
OCT0000000046300000 , % 0000OH00 00462800
|
|
OCT0000042421632160 , % 004DATA 00462900
|
|
OCT0000000070700024 , % 0000YY0D 00463000
|
|
OCT0000112431442545 , % 009DIMEN 00463100
|
|
OCT6231464560606060 , % SION 00463200
|
|
OCT0000000010200026 , % 00008+0F 00463300
|
|
OCT0000022446606060 , % 002DO 00463400
|
|
OCT0000000007200031 , % 00007+0I 00463500
|
|
OCT0000062446642243 , % 006DOUBL 00463600
|
|
OCT2560606060606060 , % E 00463700
|
|
OCT0000000007200000 , % 00007+00 00463800
|
|
OCT0000114751252331 , % 009PRECI 00463900
|
|
OCT6231464560606060 , % SION 00464000
|
|
OCT0000000000500000 , % 00000Q00 00464100
|
|
OCT0000032545246060 , % 003END 00464200
|
|
OCT0000000012000000 , % 0000#000 00464300
|
|
OCT0000042631432560 , % 004FILE 00464400
|
|
OCT0000000076600041 , % 0000] 0J 00464500
|
|
OCT0000052545635170 , % 005ENTRY 00464600
|
|
OCT0000000065400045 , % 0000V|0N 00464700
|
|
OCT0000132550643165 , % 00@EQUIV 00464800
|
|
OCT2143254523256060 , % ALENCE 00464900
|
|
OCT0000000055700047 , % 0000)Y0P 00465000
|
|
OCT0000102567632551 , % 008EXTER 00465100
|
|
OCT4521436060606060 , % NAL 00465200
|
|
OCT0000000012200043 , % 0000#+0L 00465300
|
|
OCT0000062646514421 , % 006FORMA 00465400
|
|
OCT6360606060606060 , % T 00465500
|
|
OCT0000000011100055 , % 0000980) 00465600
|
|
OCT0000102664452363 , % 008FUNCT 00465700
|
|
OCT3146456060606060 , % ION 00465800
|
|
OCT0000000001500000 , % 00001Q00 00465900
|
|
OCT0000022746606060 , % 002GO 00466000
|
|
OCT0000000001400000 , % 00001|00 00466100
|
|
OCT0000026346606060 , % 002TO 00466200
|
|
OCT0000000001600000 , % 00001 00 00466300
|
|
OCT0000023126606060 , % 002IF 00466400
|
|
OCT0000000011200067 , % 00009+0X 00466500
|
|
OCT0000073145632527 , % 007INTEG 00466600
|
|
OCT2551606060606060 , % ER 00466700
|
|
OCT0000000011300000 , % 00009H00 00466800
|
|
OCT0000074346273123 , % 007LOGIC 00466900
|
|
OCT2143606060606060 , % AL 00467000
|
|
OCT0000000076700000 , % 0000]Y00 00467100
|
|
OCT0000104521442543 , % 008NAMEL 00467200
|
|
OCT3162636060606060 , % IST 00467300
|
|
OCT0000000077000036 , % 0000"00< 00467400
|
|
OCT0000054721646225 , % 005PAUSE 00467500
|
|
OCT0000000016600102 , % 0000> 12 00467600
|
|
OCT0000054751314563 , % 005PRINT 00467700
|
|
OCT0000000077100104 , % 0000"814 00467800
|
|
OCT0000074751462751 , % 007PROGR 00467900
|
|
OCT2144606060606060 , % AM 00468000
|
|
OCT0000000016700106 , % 0000>Y16 00468100
|
|
OCT0000054764452330 , % 005PUNCH 00468200
|
|
OCT0000000011000000 , % 00009000 00468300
|
|
OCT0000045125212460 , % 004READ 00468400
|
|
OCT0000000011500113 , % 00009Q1@ 00468500
|
|
OCT0000045125214360 , % 004REAL 00468600
|
|
OCT0000000066400115 , % 0000W|1: 00468700
|
|
OCT0000065125636451 , % 006RETUR 00468800
|
|
OCT4560606060606060 , % N 00468900
|
|
OCT0000000017300117 , % 0000}H1} 00469000
|
|
OCT0000065125663145 , % 006REWIN 00469100
|
|
OCT2460606060606060 , % D 00469200
|
|
OCT0000000071700000 , % 0000ZY00 00469300
|
|
OCT0000046263464760 , % 004STOP 00469400
|
|
OCT0000000011100125 , % 0000981E 00469500
|
|
OCT0000126264225146 , % 00#SUBRO 00469600
|
|
OCT6463314525606060 , % UTINE 00469700
|
|
OCT0000000010700000 , % 00008Y00 00469800
|
|
OCT0000056651316325 , % 005WRITE 00469900
|
|
OCT0000000026400074 , % 0000F|0! 00470000
|
|
OCT0000024363606060 , % 002LT 00470100
|
|
OCT0000000026600134 , % 0000F 1& 00470200
|
|
OCT0000024325606060 , % 002LE 00470300
|
|
OCT0000000023400052 , % 0000C|0$ 00470400
|
|
OCT0000022550606060 , % 002EQ 00470500
|
|
OCT0000000030100077 , % 0000H80" 00470600
|
|
OCT0000024525606060 , % 002NE 00470700
|
|
OCT0000000024200063 , % 0000D+0T 00470800
|
|
OCT0000022763606060 , % 002GT 00470900
|
|
OCT0000000024300144 , % 0000DH1M 00471000
|
|
OCT0000022725606060 , % 002GE 00471100
|
|
OCT0000000012400142 , % 0000#|1K 00471200
|
|
OCT0000034546636060 , % 003NOT 00471300
|
|
OCT0000000010500001 , % 00008Q01 00471400
|
|
OCT0000032145246060 , % 003AND 00471500
|
|
OCT0000000010400000 , % 00008|00 00471600
|
|
OCT0000024651606060 , % 002OR 00471700
|
|
OCT0000000001200065 , % 00001+0V 00471800
|
|
OCT0000046351642560 , % 004TRUE 00471900
|
|
OCT0000000001300060 , % 00001H0 00472000
|
|
OCT0000052621436225 , % 005FALSE 00472100
|
|
OCT0000000001500146 , % 00001Q1O 00472200
|
|
OCT0000042746634660 ; % 004GOTO 00472300
|
|
FILL RESTACK[*] WITH % FORTRAN 00472400
|
|
0, 0, 0, 0, 0, 0, 0, 0, 00472500
|
|
0, 0, 0, 0, 0, 0, 0, 0, 00472600
|
|
0, 106, 7, 17, 27, 96, 112, 114, 00472700
|
|
0, 57, 0, 0, 0, 0, 0, 0, 00472800
|
|
0, 0, 0, 94, 0, 104, 108, 73, 00472900
|
|
0, 82, 0, 0, 0, 0, 0, 0, 00473000
|
|
0, 0, 87, 110, 0, 0, 90, 0, 00473100
|
|
0, 0, 0, 0, 0, 0, 0, 0; 00473200
|
|
GO TO EXIT ; 00473300
|
|
EXIT: 00473400
|
|
END FILLJUNK; 00473500
|
|
COMMENT DOCUMENT* CODE 12 * * * * * * * * * * * * * * * * * * * * * * ; 00473600
|
|
DEFINE FILLBPL = 00473700
|
|
FILLJUNK(2)#; 00473800
|
|
DEFINE FILLESPOL = 00473900
|
|
FILLJUNK(4) #; 00474000
|
|
DEFINE FILLALGOL = 00474100
|
|
FILLJUNK(1) #; 00474200
|
|
DEFINE FILLCOBOL = 00474300
|
|
FILLJUNK(3) #; 00474400
|
|
DEFINE FILLFLOW = 00474500
|
|
FILLJUNK(5) #; 00474600
|
|
DEFINE FILLFORTRAN = 00474700
|
|
FILLJUNK(6)#; 00474800
|
|
COMMENT DOCUMENT* 7 * * * * * * * * * * * * * * * * * * * * * * * * 00474900
|
|
FILE DECLARATIONS. 00475000
|
|
* 8 ; 00475100
|
|
FILE XREFILE DISK SERIAL[20:3000] (2,10,150,SAVE 10); 00475200
|
|
FILE XREFSORT DISK SERIAL [20:3000] (2,10,150,SAVE 10); 00475300
|
|
FILE DISK DISK SERIAL "DISKSYM" "XREF"(2,10,150) ; 00475400
|
|
FILE NEWDISK DISK SERIAL [20:3000] "DISKSYM" "XREF" 00475500
|
|
(2,10,150,SAVE 10) ; 00475600
|
|
FILE IRFILE DISK SERIAL [20:1000] "INFO" "RETR" 00475700
|
|
(2,10,150,SAVE 10) ; 00475800
|
|
FILE BACKUPDIR DISK SERIAL [20:500] "BACKUP" "DIRECT" (1,15, 00475900
|
|
150,SAVE 10); 00476000
|
|
FILE OLDDOC DISK SERIAL (2,15,90); 00476100
|
|
FILE NEWDOC DISK SERIAL (2,15,90); 00476200
|
|
FILE SCRATCH DISK SERIAL [20:1000] (2,10,150); 00476300
|
|
FILE EARLYSCRATCH DISK SERIAL [20:1000](2,10,150); 00476400
|
|
FILE IN TAPE "0CRDIMG" (2,56,10) ; 00476500
|
|
FILE BUSTED(1,1020,20) ; 00476600
|
|
FILE CASTA DISK SERIAL "CASTA" "LIBRARY"(2,56) ; 00476700
|
|
FILE CASTB(2,56),CASTC(2,56) ; 00476800
|
|
FILE BACKUPTAPE 2(2,81,15,SAVE 10) ; 00476900
|
|
FILE BACKUPDISK DISK SERIAL [20:4000](2,15,90,SAVE 10); 00477000
|
|
PROCEDURE ERROR(N) ; VALUE N ; INTEGER N ; FORWARD ; 00477002
|
|
FILE OLDBACKUP DISK SERIAL "BACKUPD" (2,15,90); 00477100
|
|
FILE OLDBAC "BACKUPT" (2,81,15); 00477200
|
|
SWITCH FILE BACKUPSW ~ BACKUPDISK,BACKUPTAPE,OLDBACKUP,OLDDOC, 00477300
|
|
NEWDOC,OLDBAC ; 00477400
|
|
DEFINE BACKUP = BACKUPSW[BACKIND] # ; 00477500
|
|
SWITCH FILE CASTSW ~ CASTA , CASTB , CASTC ; 00477600
|
|
FILE CA "CASTA" (2,56,SAVE 100) ; 00477700
|
|
FILE CB "CASTB" (2,56,SAVE 100) ; 00477800
|
|
FILE CC "CASTC" (2,56,SAVE 100) ; 00477900
|
|
SWITCH FILE CASTOUT ~ CA,CB,CC ; 00478000
|
|
SAVE FILE OUT NEWTAPE "0CRDIMG" (2,56,10,SAVE 10) ; 00478100
|
|
FILE IN CARD(5,10) ; 00478200
|
|
FILE NEWPATCH "PATCHES" (2,56,10,SAVE 10); 00478300
|
|
FILE PATCHTAPE "PATCHES" (2,56,10); 00478400
|
|
SWITCH FILE PATCHES ~ CARD,PATCHTAPE; 00478500
|
|
DEFINE CARDS = PATCHES[PATCHIND] #; 00478600
|
|
FILE OUT LINE 4(2,15,SAVE 10) ; 00478700
|
|
SWITCH FILE SWFIN ~ TAPE,DISK,SCRATCH,EARLYSCRATCH,PATCHTAPE; 00478800
|
|
SWITCH FILE SWFOUT ~ NEWTAPE,NEWDISK,SCRATCH,EARLYSCRATCH, 00478900
|
|
NEWPATCH; 00479000
|
|
FILE PNCH 0(5,10,SAVE 10) ; 00479100
|
|
FILE OUT PUNTAPE (2,10,SAVE 100) ; 00479200
|
|
SWITCH FILE NEWPUNCH ~ PNCH,PUNTAPE ; 00479300
|
|
FILE OUT SPOOUT 11(5,10) ; 00479400
|
|
FILE IN SPOIN 11(1,10) ; 00479500
|
|
FILE TAP(2,56,10); 00479600
|
|
DEFINE NTAPE = NEWTAPE # , 00479700
|
|
PUNCH = PNCH # , 00479800
|
|
PRINT = LINE # ; 00479900
|
|
DEFINE SWIN = SWFIN[SWFININD] # , 00480000
|
|
SWOUT = SWFOUT[SWFOUTIND] # ; 00480100
|
|
% END OF FILE DECLARATIONS ; 00480200
|
|
PROCEDURE DUMPARRAYS ; FORWARD ; 00480300
|
|
COMMENT DOCUMENT* 7 * * * * * * * * * * * * * * * * * * * * * * * * * 00480400
|
|
INTEGER DECLARATIONS. 00480500
|
|
* 8 ; 00480600
|
|
INTEGER FCASTSEQ,LCASTSEQ,CASTINDEX,CASTPOINT,T1,T2,NCASTRECS ; 00480700
|
|
INTEGER SWFININD,SWFOUTIND ; 00480800
|
|
INTEGER CASTAINDEX ; 00480900
|
|
INTEGER BACKIND ; 00481000
|
|
INTEGER NOBACKUPRINTS,PUNCHSW ; 00481100
|
|
INTEGER PARINDENT,SAVEPARINDENT,DOCER ; 00481200
|
|
INTEGER DEVICE,TABINDEX; 00481300
|
|
INTEGER NWPR,W; 00481400
|
|
INTEGER NINES,RESTYPE,BRESTYPE,SNEWSEQ ; 00481500
|
|
INTEGER RR,PP,SCRAM,NEWSEQ,SEQINC ; 00481600
|
|
INTEGER XREFSEQ; 00481700
|
|
INTEGER TEMPIND,LASTSEQLINK,LASTCURSEQ,TAMPIND ; 00481800
|
|
INTEGER FIRSTCHAR,LASTCHAR ; 00481900
|
|
INTEGER STREAMBEGCOUNT ; 00482000
|
|
INTEGER HEADPOINT,CARDTALLY,I,TOTAL ; 00482100
|
|
INTEGER NENDS,CURBEG,BEGINDEX ; 00482200
|
|
INTEGER NUNDERLINES,PAGECHAR ; 00482300
|
|
INTEGER FCASTINDEX,LCASTINDEX ; 00482400
|
|
INTEGER BPOINT,IJUNK,BINDENT ; 00482500
|
|
INTEGER UJUNK; 00482600
|
|
INTEGER VOLUME,FIRSTPAGELINE,BKDIRCOUNT,BKRCRDCOUNT; 00482700
|
|
INTEGER DOCREV; 00482800
|
|
INTEGER PAGEPOINT; 00482900
|
|
INTEGER NRESERVED,STLENGTH ; 00483000
|
|
INTEGER SKIPVAL,INDENTVAL ; 00483100
|
|
INTEGER PARLOW,PARHIGH,PARP,NOPROC ; 00483200
|
|
INTEGER PAGEINC; 00483300
|
|
INTEGER SAVEPAGEINC ; 00483400
|
|
INTEGER NLINES,PAGEN,MAXLINES ; 00483500
|
|
INTEGER YEAR,DAY,MONTH,HOUR,MINUTE,SECOND,MAXCOLS,FERR ; 00483600
|
|
INTEGER PLSAVE,PHSAVE,GLSAVE,GHSAVE,GINDSAVE ; 00483700
|
|
INTEGER RESULT,COUNT,LCR,NCR,NINDEXLINES ; 00483800
|
|
INTEGER DOCDEFIND,NDOCDEFS ; 00483900
|
|
INTEGER FIRSTBIT,LASTBIT,FIELDSIZE,COL74 ; 00484000
|
|
INTEGER CODELINECOUNT,NBLBOXES ; 00484100
|
|
INTEGER TABLEUPPERBOUND ; 00484200
|
|
INTEGER LABC ; 00484300
|
|
INTEGER COBCOUNT ; 00484400
|
|
INTEGER MAXCOUNTER ; 00484500
|
|
INTEGER ZF ; % 0 LINE , 1 BACKUP , 2 BOTH 00484600
|
|
INTEGER ZSP ; % 1 SINGLE SPACE , 2 DOUBLE SPACE 00484700
|
|
INTEGER ZLB ; % % USED LIKE ZF IN READATAPE 00484800
|
|
INTEGER ZZF ; % USED TO SAVE ZF LOCAL TO PROCEDURES 00484900
|
|
INTEGER ZLCOUNT ; % LINE COUNTER USED IN ZPL 00485000
|
|
INTEGER ZLCOUNTMAX ; % MAX NUMBER OF LINE ON BACKUP PAGE 00485100
|
|
INTEGER ZPAGEN,ZCONTPAGEN; 00485200
|
|
INTEGER SAVEZ,SAVEZZ, CONTPAGEN; 00485300
|
|
INTEGER TEMP; 00485400
|
|
INTEGER OLDPAGE; 00485500
|
|
INTEGER SAVEPAGEN; 00485600
|
|
INTEGER FLOWIND; 00485700
|
|
INTEGER ACONT; 00485800
|
|
INTEGER PLACES; 00485900
|
|
INTEGER SAVESEQ; 00486000
|
|
INTEGER ASAVESEQ,ZSPERM; 00486100
|
|
INTEGER J,KJUNK; 00486200
|
|
INTEGER THLINES,THL; 00486300
|
|
INTEGER THPOS; 00486400
|
|
INTEGER INSINC; 00486500
|
|
INTEGER PAGEQUAL; 00486600
|
|
INTEGER MAXSEG,SEGCOUNT; 00486700
|
|
INTEGER CHARCOUNT; 00486800
|
|
INTEGER K; 00486900
|
|
INTEGER PATCHIND; 00487000
|
|
INTEGER FIRSTSEQ; 00487100
|
|
INTEGER NONAMES; 00487200
|
|
INTEGER PR ; 00487300
|
|
INTEGER ESIND ; 00487400
|
|
INTEGER OLDASEQ, 00487500
|
|
CORESIZE ; % USED BY SORT 6OR LARGE 00487600
|
|
INTEGER INDEXWORDS; 00487602
|
|
% END OF INTEGER DECLARATIONS ; 00487700
|
|
COMMENT DOCUMENT* 7 * * * * * * * * * * * * * * * * * * * * * * * * * 00487800
|
|
DEFINE DECLARATIONS. 00487900
|
|
* 8 ; 00488000
|
|
DEFINE RC = PP.[33:6],PP.[39:9] # ; 00488100
|
|
DEFINE NFORMTABS = FORMCOLS[0] # ; 00488200
|
|
DEFINE TABLINK = [33:15] # ; 00488300
|
|
DEFINE TYPLINK = [18:15] # , 00488400
|
|
SEQ = SEQUENCE[0] # , 00488500
|
|
OLDSEQ = SEQUENCE[1] # , 00488600
|
|
VOIDSEQ = SEQUENCE[2] # , 00488700
|
|
LASTSEQ = SEQUENCE[3] # , 00488800
|
|
LASTERROR = SEQUENCE[4] # , 00488900
|
|
FLOWSEQ = SEQUENCE[5] # , 00489000
|
|
PROCTAG = [1:2] # , 00489100
|
|
LISTHEAD = TABLE[TABIND].[3:15] # , 00489200
|
|
LISTTAIL = TABLE[TABIND].[18:15] # , 00489300
|
|
LOADCOUNT = SEQLINKS[SEQIND].[3:15] # , 00489400
|
|
SEQIND = TEMPIND.[33:6],TEMPIND.[39:9] # , 00489500
|
|
LASTSEQIND = LASTSEQLINK.[33:6],LASTSEQLINK.[39:9] # , 00489600
|
|
LASTCURIND = LASTCURSEQ.[33:6],LASTCURSEQ.[39:9] # , 00489700
|
|
NEXTSEQLINK = SEQLINKS[SEQIND].[18:15] # , 00489800
|
|
CURSEQIND = TAMPIND.[33:6],TAMPIND.[39:9] # , 00489900
|
|
SEQPROCPOINT = SEQLINKS[SEQIND].[2:1] # , 00490000
|
|
SEQPOINTER = SEQLINKS[SEQIND].[33:15] # ; 00490100
|
|
DEFINE BEGIND = BEGINDEX.[36:6],BEGINDEX.[42:6] # ; 00490200
|
|
DEFINE TABIND = TABINDEX.[33:6],TABINDEX.[39:9] # ; 00490300
|
|
DEFINE 00490400
|
|
SBTOG = SAVEBACKUPTOG # , 00490500
|
|
PERIOD = Q.[18:6] = "." #, 00490600
|
|
ASTERISK = Q = "1* " # , 00490700
|
|
COMMA = Q = "1, " # , 00490800
|
|
RTPAREN = Q = "1) " # , 00490900
|
|
RTBRACK = Q = "1] " # , 00491000
|
|
LFPAREN = Q = "1( " # , 00491100
|
|
LFBRACK = Q = "1[ " # , 00491200
|
|
SLASH = Q = "1/ " # , 00491300
|
|
MINUS = Q = "1- " # , 00491400
|
|
PLUS = Q = "1+ " # , 00491500
|
|
SEMICOLON = Q = "1; " # , 00491600
|
|
GREATERTHAN = Q = "1> " # , 00491700
|
|
LESSTHAN = Q = "1< " # , 00491800
|
|
COLON = Q = "1: " # , 00491900
|
|
NUMSIGN = Q = "1# " # , 00492000
|
|
PERCENT = Q.[18:6] = "%" # , 00492100
|
|
QUOTE = Q.[18:6] = """ # , 00492200
|
|
RTQUOTE = Q.[18:6] = """ AND NOT QUOTETOG # , 00492300
|
|
LFTQUOTE = Q.[18:6] = """ AND QUOTETOG # , 00492400
|
|
IDENTIFIER =RESULT = 1 # , 00492500
|
|
FINDQUOTE = DO SCAN UNTIL Q.[18:6] = """ # , 00492600
|
|
FINDSEMICOLON = DO SCAN UNTIL Q.[18:6] = ";" # ; 00492700
|
|
DEFINE LEFTCONNECT = (QUOTE OR LFPAREN OR LFBRACK OR LESSTHAN 00492800
|
|
OR Q= "1{ ") AND EXAMINE(NCR) ! " " AND 00492900
|
|
EXAMINE(NCR) ! "." #; 00493000
|
|
DEFINE RTCONNECT = (ATEMP~EXAMINE(NCR) ) = """ OR ATEMP = 00493100
|
|
")" OR ATEMP = "," OR ATEMP = "]" OR ATEMP = ">" 00493200
|
|
OR ATEMP = "}" OR ATEMP = "/" OR ATEMP = "-" OR 00493300
|
|
ATEMP = ":" OR 00493400
|
|
(DOCONLY AND ATEMP = ";") # ; 00493500
|
|
DEFINE 00493600
|
|
CCSEQ= CBUFF[10]#, 00493700
|
|
LCSEQ =CBUFF[11]#, 00493800
|
|
CTSEQ = TBUFF[10]#, 00493900
|
|
LTSEQ = TBUFF[11]#, 00494000
|
|
NIDENT = TABLE[0,0]#; 00494100
|
|
DEFINE 00494200
|
|
COMMENTV = 007#, 00494300
|
|
PROCEDUREV = 073#, 00494400
|
|
STREAMV = 089#; 00494500
|
|
DEFINE DOV = 66#, 00494600
|
|
GOTOV = 13#, 00494700
|
|
IFV = 14#, 00494800
|
|
ASSIGNV = 267#; 00494900
|
|
% END OF DEFINE DECLARATIONS ; 00495000
|
|
COMMENT DOCUMENT* 7 * * * * * * * * * * * * * * * * * * * * * * * * * 00495100
|
|
BOOLEAN DECLARATIONS. 00495200
|
|
* 8 ; 00495300
|
|
BOOLEAN FIRSTDOCIDTOG,LASTDOCIDTOG,DOCIDTOG ; 00495301
|
|
BOOLEAN DEBUG,DOLLARFLAG,ENDCARD; 00495400
|
|
BOOLEAN DONTJUSTIFY ; 00495500
|
|
BOOLEAN FLOWTOG,FLOWFOUND,FLOWBOXTOG,SYNTAXTOG ; 00495600
|
|
BOOLEAN FSYNTAXTOG; 00495700
|
|
BOOLEAN SAVEREMOTETOG,FIRSTDOLLAR,DATETOG ; 00495800
|
|
BOOLEAN DOCONLY,RESEQONLY ; 00495900
|
|
BOOLEAN DOCSYNTAX,DOCSYNTAXONLY,BIGTOG,SHUFFLETOG ; 00496000
|
|
BOOLEAN UNDERTOG,DOUBLETOG,LISTCARDTOG,DOCXREFTOG ; 00496100
|
|
BOOLEAN DOCINDEXTOG,DOCNAMES; % FOR SPECIAL DOCUMENT XREF 00496102
|
|
BOOLEAN TABTOG,INDEXFIXTOG,DOCDEBUG ; 00496200
|
|
BOOLEAN LISTONLYTOG,LFPAGEID; 00496300
|
|
BOOLEAN CLEARTITLETOG,TITLEFULL ; 00496400
|
|
BOOLEAN PATCHTOG,PATCHFLAG,REMOTETOG ; 00496500
|
|
BOOLEAN PARIDTOG,SAVEPARIDTOG,COPYTOG ; 00496600
|
|
BOOLEAN INVTOG,STRINGTOG,CONTOG ; 00496700
|
|
BOOLEAN BUILDEBUG; 00496800
|
|
BOOLEAN EMITFLAG,SEQBLANKTOG ; 00496900
|
|
BOOLEAN SYNTAXCHECK,TAPETOG, TTAPEOPENED; 00497000
|
|
BOOLEAN SEQTOG,RESEQTOG,NEWTOG,PRINTOG,BACKUPTOG,PUNCHTOG ; 00497100
|
|
BOOLEAN NOTLAST,NEWTAPEOPENED; 00497200
|
|
BOOLEAN QUOTETOG,ALPHATOG,NOTBLANK ; 00497300
|
|
BOOLEAN LOOKFORDOLLAR,CASTOG; 00497400
|
|
BOOLEAN ALLTOG,FROMTOG,TOENDTOG ; 00497500
|
|
BOOLEAN COBOLTOG ; 00497600
|
|
BOOLEAN COUNTOG,CONTCARD ; 00497700
|
|
BOOLEAN DOUBLEONLY,TUNDERTOG,PUNDERTOG,PDOUBLETOG ; 00497800
|
|
BOOLEAN XREFTOG,BEGINTOG,PROCTOG,PROCFLAG ; 00497900
|
|
BOOLEAN PRINTCLOSED,NAMETOG,PROCXREFLAG,BLOCKTOG,PROCBLKFLAG ; 00498000
|
|
BOOLEAN STREAMTOG; 00498100
|
|
BOOLEAN CENTERTOG,SKIPTOG,PAGETOG,QUITOG,INDEXTOG,INDENTOG, 00498200
|
|
TITLETOG,DOCTOG,BACKUPCLOSED,ENDTOG,ASTERFLAG, 00498300
|
|
INDEXONLYTOG, % TRUE IF INDEX ONLY IS TO BE INDENTED. 00498310
|
|
MISSTOG, 00498400
|
|
INVALLTOG , 00498500
|
|
DOCUMENTFOUND,PERCENTOG,DOCLISTOG,VOIDTOG,PBACKONLY ; 00498600
|
|
BOOLEAN DOCLISTFLAG; 00498700
|
|
BOOLEAN PROCPUNCH ; 00498800
|
|
BOOLEAN SIXLINES,NOPAGETOG ; 00498900
|
|
BOOLEAN WIDETOG ; % FOR WIDE PRINTING IN DOCUMENT 00498902
|
|
BOOLEAN NAMEPUNCH ; 00499000
|
|
BOOLEAN CODEPERCENTOG ; 00499001
|
|
BOOLEAN NODEBUGTOG,DEBUGSTUFF,ASMLTOG,BPLFLOWTOG ; 00499100
|
|
BOOLEAN NEWMULTITOG,FLOWTABTOG ; 00499200
|
|
BOOLEAN MAKEIRTOG,MAKETOG ; 00499300
|
|
BOOLEAN BUILDTOG,RESERVEDTOG,RESFLAG,STREAMBODY ; 00499400
|
|
BOOLEAN STARTCODEFLAG , FIRSTCODELINE , LABELUSE ; 00499500
|
|
BOOLEAN PARTOG,FINALDOCTOG,ASTERTOG ; 00499600
|
|
BOOLEAN FINITOG,NOSPOTOG,LASTNOSPACE,NOTFIRSTDOCPAGE ; 00499700
|
|
BOOLEAN GLOSSTOG,FREETOG,FIXEDTOG,LOGICTOG ; 00499800
|
|
BOOLEAN BSTICKFLAG,CODETOG,BLANKNEWSEQ ; 00499900
|
|
BOOLEAN BUILDPUNCHTOG,COMMENTOG ; 00500000
|
|
BOOLEAN ENDCODETOG,PROCDECFLAG ; 00500100
|
|
BOOLEAN PATTOG,SORTOG,FORMTOG ; 00500200
|
|
BOOLEAN PATBOXTOG,PATCHCARD ; 00500300
|
|
BOOLEAN BPLTOG,ASSIGNTOG ; 00500400
|
|
BOOLEAN SIMULATOG ; 00500401
|
|
BOOLEAN BNFTOG,ESPOLTOG; 00500500
|
|
BOOLEAN FORTRTOG; 00500600
|
|
BOOLEAN DEBEATLETOG; 00500700
|
|
BOOLEAN PRINTALLTOG,PRINTSELECTOG,HOLDOFFTOG,OLDONLYTOG; 00500800
|
|
BOOLEAN DIRTOG,DIRONLYTOG; 00500900
|
|
BOOLEAN MERGETOG; 00501000
|
|
BOOLEAN GLYNTOG ; 00501100
|
|
BOOLEAN LISTTOBACKUPTOG,SAVEBACKUPTOG,AUTOPRINT; 00501200
|
|
BOOLEAN FLOWDOCBLOCKTOG ; 00501300
|
|
BOOLEAN INSERTOG,DECIMALSTOG; 00501400
|
|
BOOLEAN DEBLANKTOG ; 00501500
|
|
BOOLEAN BLANKNAMEPUNCH,ONLYTOG; 00501600
|
|
BOOLEAN DISCMCP,CODECOUNTOG,BACKUPUSED,CARDSOPEN ; 00501700
|
|
BOOLEAN ZPLOVER ; % SET TRUE IN ZPG IF BACKUP PAGE OVERFLOWS 00501800
|
|
BOOLEAN INSERTROW,PATCHINBUFF; 00501900
|
|
BOOLEAN ZNOSKIP,PATCHPAGE,UPDATETOG, DOCOUTPUT; 00502000
|
|
COMMENT ZNOSKIP WILL ALLOW GROUPS OF LINES CONCEIVED OF AS A UNIT 00502100
|
|
TO BE PRINTED WITHOUT AUTOMATIC OVERFLOW; 00502200
|
|
BOOLEAN NOCODESEQ ; 00502210
|
|
BOOLEAN REVTOG; 00502300
|
|
BOOLEAN LEFTPAGE; 00502400
|
|
BOOLEAN HEADFULL,TIGHTFULL; 00502500
|
|
BOOLEAN OVERTOG; 00502600
|
|
BOOLEAN PUNCHPAGES,PUNCHAFTER,NEWCARD; 00502700
|
|
BOOLEAN BBSEQ; 00502800
|
|
BOOLEAN BBB; 00502900
|
|
BOOLEAN LASTLINE; 00503000
|
|
BOOLEAN PAGEFULL; 00503100
|
|
BOOLEAN TABHEAD,CONSTTAB; 00503200
|
|
BOOLEAN INSTOG; 00503300
|
|
BOOLEAN THUNDTOG; 00503400
|
|
BOOLEAN ALLONE,DISKOUTOG,DISKINTOG, MAKEMULTOG; 00503500
|
|
BOOLEAN ENDCARDA; 00503600
|
|
BOOLEAN B35OPTOG; 00503700
|
|
BOOLEAN BMON; 00503800
|
|
BOOLEAN LEAVETOG; 00503900
|
|
BOOLEAN LOOKFORSTAR; 00504000
|
|
BOOLEAN CANTPAGEHERE; 00504100
|
|
BOOLEAN SELECTIVEXREF; 00504200
|
|
BOOLEAN ASMFLOWTOG; 00504300
|
|
BOOLEAN TRANSTOG; 00504400
|
|
BOOLEAN SCRATCHTOG; 00504500
|
|
BOOLEAN SUPPRESSTOG,SUPTHISTIME; 00504600
|
|
BOOLEAN ALLSEGS; 00504700
|
|
BOOLEAN TAPEPATCHES,PATCHRESEQ,NEWPATCHTOG; 00504800
|
|
BOOLEAN REMOVEOVERTOG ; 00504900
|
|
BOOLEAN QFLOWTOG ; 00505000
|
|
BOOLEAN PATCHEDLINE; 00505100
|
|
BOOLEAN DOCPATCHED,NEWVOL; 00505200
|
|
BOOLEAN TITLECHANGE,HEADCHANGE ; 00505300
|
|
BOOLEAN ESCAPETOG,DATATABLE; 00505400
|
|
BOOLEAN WATCHOUT; 00505500
|
|
BOOLEAN PROCFLAG2; 00505600
|
|
BOOLEAN DATOG; 00505700
|
|
BOOLEAN HOLDASTER ; 00505800
|
|
BOOLEAN HOLDFLOW ; 00505900
|
|
BOOLEAN HOLTOG ; 00506000
|
|
BOOLEAN ASTERPATCHED ; 00506100
|
|
% END OF BOOLEAN DECLARATIONS ; 00506200
|
|
COMMENT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; 00506300
|
|
COMMENT DOCUMENT* 7 * * * * * * * * * * * * * * * * * * * * * * * * 00506400
|
|
MISCELLANEOUS DECLARATIONS. 00506500
|
|
* 8; 00506600
|
|
FORMAT MONITFORM(2A6) ; 00506700
|
|
FORMAT FDOCER(I3," DOCUMENT ERRORS FOUND") ; 00506800
|
|
FORMAT TOTALFORM("NO OF TABLE SEARCHES = ",I10) ; 00506900
|
|
FORMAT MARKER("A-A-A") ; 00507000
|
|
FORMAT BADRUN("**** EOJ XREF/",A6,X2,A6,I8," ERRORS ****") , 00507100
|
|
STARTJOB( "BOJ XREF/",A6, X2 A6) , 00507200
|
|
GOODRUN("---- EOJ XREF/",A6,X2,A6," ----") ; 00507300
|
|
FORMAT FCOLS (12("1234567890")); 00507400
|
|
FORMAT ENDMARKER("A-A-AZ"); 00507500
|
|
COMMENT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; 00507600
|
|
REAL PROCTIME,STARTIME,JUNK ; 00507700
|
|
COMMENT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; 00507800
|
|
FORMAT DATEFORM("XREF PROGRAM OF ",A6," THIS LISTING ", 00507900
|
|
"PRODUCED",I4,X1,A3,X1,"19",I2," TIME",I3,".",I2) ; 00508000
|
|
LABEL MOREFILL,MORCOM,MORECAST ; 00508100
|
|
LABEL MOREBUILD ; 00508200
|
|
LABEL RESCAN,NEXT,EOFCARD ; 00508300
|
|
LABEL L1,L2,LL,CONTINUE,L3,RD,EOF,EOPROG,L4,COMPILE ; 00508400
|
|
LABEL BMONJ; 00508500
|
|
COMMENT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; 00508600
|
|
ALPHA Q,DATE; 00508700
|
|
ALPHA PROGID ; 00508800
|
|
ALPHA ATEMP ; 00508900
|
|
FORMAT HEADFORM(3I8); 00509000
|
|
FORMAT DIRINFOFORM (I5,I8,I8); 00509100
|
|
ALPHA APAGEN,PAGEID ; 00509200
|
|
ALPHA PATCHLETTER ; 00509300
|
|
ALPHA MONTHA ; 00509400
|
|
LIST DATELIST(DATE,DAY,MONTHA,YEAR,HOUR,MINUTE) ; 00509500
|
|
LIST ZLIST(PAGEQUAL,OLDPAGE,ZCONTPAGEN,FIRSTPAGELINE, 00509600
|
|
BKRCRDCOUNT,DOCREV,VOLUME,REVTOG); 00509700
|
|
% END MISCELLANEOUS DECLARATIONS 00509800
|
|
COMMENT DOCUMENT* 7 * * * * * * * * * * * * * * * * * * * * * * * * * 00509900
|
|
ARRAY DECLARATIONS. 00510000
|
|
* 8 ; 00510100
|
|
SAVE INTEGER ARRAY STACK[0:125] ; 00510200
|
|
SAVE ARRAY ZAR[0:15] ; 00510300
|
|
ARRAY FIRSTDOCID,LASTDOCID[0:20] ; 00510301
|
|
ARRAY BNFARRAY[0:15] ; 00510400
|
|
ARRAY PAGENUM[0:14] ; 00510500
|
|
ARRAY TABLE[0:60,0:511] ; 00510600
|
|
ARRAY SPOMESS[0:5,0:10]; 00510700
|
|
ARRAY FLOWINDEX[0:200,0:15]; 00510800
|
|
SAVE ARRAY ACCUM[0:14] ; COMMENT IDENTIFIERS ARE BUILT HERE ; 00510900
|
|
ARRAY XREFBUFF[0:15] ; 00511000
|
|
INTEGER ARRAY FORMCOLS[0:50] ; 00511100
|
|
SAVE ARRAY BUFFER[0:14] ; 00511200
|
|
SAVE ARRAY GLOBE[0:20] ; 00511300
|
|
SAVE ARRAY CASTDIR[0:3,0:56] , CASTBUFF[0:56] ; 00511400
|
|
SAVE ARRAY NAMEBUFF[0:15] ; 00511500
|
|
ARRAY SEQLINKS,CURSEQ[0:90,0:511] ; 00511600
|
|
SAVE ARRAY CBUFF,TBUFF,LISTBUFFER[0:14] ; 00511700
|
|
SAVE ARRAY LASTCASTID,FIRSTCASTID[0:14] ; 00511800
|
|
ARRAY MULTNAME[0:10] ; 00511900
|
|
SAVE ARRAY TALLIES[0:63],HEADING[0:15] ; 00512000
|
|
SAVE ARRAY ASMLBUFF[0:2,0:15] ; 00512100
|
|
SAVE ARRAY COBOLBUFF[0:2,0:15] ; 00512200
|
|
SAVE ARRAY COBACCUM[0:15] ; 00512300
|
|
ARRAY PAIRSEQ[0:63,0:63],JUNKARRAY[0:15] ; 00512400
|
|
ARRAY CASTLINKS[0:150] ; 00512500
|
|
ARRAY INVCH[0:10] ; 00512600
|
|
ARRAY DATEBUFF[0:4] ; 00512700
|
|
SAVE ARRAY SEQUENCE[0:6],BLANKARRAY[0:15] ; 00512800
|
|
SAVE ARRAY BLOCKBUFFER[0:15] ; 00512900
|
|
ARRAY DOCDEFINES[0:100,0:10],DOCDEFLINKS[0:100] ; 00513000
|
|
ARRAY UNDERBUFF [0:15],DOCTITLE[0:14]; 00513100
|
|
DEFINE TITLEBUFF = DOCTITLE # ; 00513200
|
|
SAVE ARRAY LAR[0:15]; 00513300
|
|
ARRAY REVISIONS [0:100]; 00513400
|
|
ARRAY CONTBUF[0:15]; 00513500
|
|
ARRAY CONTID[0:1],REVB[0:1]; 00513600
|
|
ARRAY WORDBUF,OLDBUF,NEWBUF[0:15]; 00513700
|
|
ARRAY PAGES[0:500]; 00513800
|
|
DEFINE CHOOSEG = PAGES #; 00513900
|
|
ARRAY TABARR[0:5,0:15]; 00514000
|
|
ARRAY AACONT[0:4]; 00514100
|
|
ARRAY SAVEBUF[0:15]; 00514200
|
|
ALPHA ARRAY ESTABLE[0:4] ; 00514300
|
|
ARRAY TUNDERBUFF[0:15]; 00514400
|
|
% END OF ARRAY DECLARATIONS ; 00514500
|
|
COMMENT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; 00514600
|
|
COMMENT DOCUMENT* 5 * * * * * * * * * * * * * * * * * * * * * * * * * 00514700
|
|
A. GENERAL UTILITY STREAM PROCEDURES. 00514800
|
|
* END; 00514900
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * ** * ** ; 00515000
|
|
REAL STREAM PROCEDURE MKABS(A) ; 00515100
|
|
COMMENT RETURNS ABSOLUTE ADDRESS OF NAME PARAMETER A; 00515200
|
|
BEGIN 00515300
|
|
DI ~ A ; MKABS ~ DI ; 00515400
|
|
END MKABS ; 00515500
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00515600
|
|
STREAM PROCEDURE FIXCOL73(LCR) ; 00515700
|
|
VALUE LCR ; 00515800
|
|
COMMENT PUTS % IN LOCATION LCR; 00515900
|
|
BEGIN 00516000
|
|
DI ~ LCR ; DS ~ 1 LIT "%" ; 00516100
|
|
END FIXCOL73 ; 00516200
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * ; 00516300
|
|
STREAM PROCEDURE CLEAR(A,N) ; 00516400
|
|
VALUE N ; 00516500
|
|
COMMENT CLEARS N + 1 WORDS STARTING AT A ; 00516600
|
|
BEGIN 00516700
|
|
DI ~ A ; DS ~ 8 LIT " " ; SI ~ A ; DS ~ N WDS ; 00516800
|
|
END CLEAR ; 00516900
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00517000
|
|
STREAM PROCEDURE CLEARCHAR(D,DPOS,NCHARS) ; 00517100
|
|
VALUE DPOS,NCHARS ; 00517200
|
|
COMMENT CLEARS NCHARS CHARACTERS STARTING AT D + DPOS ; 00517300
|
|
BEGIN 00517400
|
|
DI ~ D ; DI ~ DI + DPOS ; NCHARS ( DS ~ 1 LIT " " ) ; 00517500
|
|
END CLEARCHAR ; 00517600
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00517700
|
|
STREAM PROCEDURE SETCHAR (D,DPOS,CHAR) ; 00517800
|
|
VALUE CHAR,DPOS ; 00517900
|
|
COMMENT PUTS THE CHARACTER CHAR INTO D + DPOS ; 00518000
|
|
BEGIN 00518100
|
|
DI ~ D ; DI ~ DI + DPOS ; SI ~ LOC CHAR ; SI ~ SI + 7 ; 00518200
|
|
DS ~ 1 CHR ; 00518300
|
|
END SETCHAR ; 00518400
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00518500
|
|
REAL STREAM PROCEDURE EXAMINE(NCR) ; 00518600
|
|
VALUE NCR ; 00518700
|
|
COMMENT RETURNS CHARACTER FOUND AT THE ABSOLUTE ADDRESS NCR ; 00518800
|
|
BEGIN 00518900
|
|
SI ~ NCR ; DI ~ LOC EXAMINE ; DI ~ DI + 7 ; DS ~ CHR ; 00519000
|
|
END EXAMINE ; 00519100
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * ; 00519200
|
|
BOOLEAN STREAM PROCEDURE FINDCHAR(S,CHAR) ; 00519300
|
|
VALUE S,CHAR ; 00519400
|
|
COMMENT TRUE IF NEXT NON-BLANK CHARACTER FROM S IS CHAR ; 00519500
|
|
BEGIN 00519600
|
|
LABEL MORE ; 00519700
|
|
TALLY ~ 0 ; SI ~ S ; 00519800
|
|
MORE: IF SC = " " THEN 00519900
|
|
BEGIN 00520000
|
|
SI ~ SI + 1 ; GO TO MORE ; 00520100
|
|
END ; 00520200
|
|
DI ~ LOC CHAR ; DI ~ DI + 7 ; 00520300
|
|
IF SC = DC THEN TALLY ~ 1 ; 00520400
|
|
FINDCHAR ~ TALLY ; 00520500
|
|
END FINDCHAR ; 00520600
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00520700
|
|
INTEGER STREAM PROCEDURE SEQCOMP(CARDSEQ,TAPESEQ) ; 00520800
|
|
COMMENT 0 FOR < , 1 FOR > , 2 FOR = ; 00520900
|
|
BEGIN 00521000
|
|
SI ~ CARDSEQ ; DI ~ TAPESEQ ; 00521100
|
|
IF 8 SC > DC THEN TALLY ~ 1 ELSE 00521200
|
|
BEGIN 00521300
|
|
SI ~ SI - 8 ; DI ~ DI - 8 ; 00521400
|
|
IF 8 SC = DC THEN TALLY ~ 2 ELSE TALLY ~ 0 ; 00521500
|
|
END ; 00521600
|
|
SEQCOMP ~ TALLY ; 00521700
|
|
END SEQCOMP ; 00521800
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00521900
|
|
STREAM PROCEDURE OCTTODEC(SOURCE,DEST) ; 00522000
|
|
COMMENT CONVERTS ONE 48 BIT INTEGER WORD TO 8 CHAR ; 00522100
|
|
BEGIN 00522200
|
|
SI ~ SOURCE ; DI ~ DEST ; DS ~ 8 DEC ; 00522300
|
|
END OCTTODEC ; 00522400
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00522500
|
|
STREAM PROCEDURE DECTOOCT(SOURCE,DEST) ; 00522600
|
|
COMMENT CONVERTS 8 CHAR TO ONE INTEGER WORD ; 00522700
|
|
BEGIN 00522800
|
|
SI ~ SOURCE ; DI ~ DEST ; DS ~ 8 OCT ; 00522900
|
|
END DECTOOCT ; 00523000
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00523100
|
|
STREAM PROCEDURE DTOCT(S,SPOS,D,N) ; 00523200
|
|
VALUE SPOS,N ; 00523300
|
|
COMMENT CONVERTS N CHRS FROM DEC AT S+SPOS TO A BINARY WORD AT D; 00523400
|
|
BEGIN 00523500
|
|
SI ~ S ; SI ~ SI + SPOS ; DI ~ D ; DS ~ N OCT ; 00523600
|
|
END DTOCT ; 00523700
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00523800
|
|
STREAM PROCEDURE MOVECHARS(SOURCE,DEST,SPOS,DPOS,NCHARS) ; 00523900
|
|
VALUE SPOS,DPOS,NCHARS ; 00524000
|
|
COMMENT MOVES NCHARS CHARACTERS FROM SOURCE+SPOS TO DEST+DPOS ; 00524100
|
|
BEGIN 00524200
|
|
LOCAL T ; 00524300
|
|
SI ~ LOC NCHARS ; SI ~ SI + 6 ; DI ~ LOC T ; DI ~ DI + 7 ;00524400
|
|
DS ~ 1 CHR ;SI ~ SOURCE ; DI ~ DEST ; DI~DI+DPOS; 00524500
|
|
SI ~ SI + SPOS ; T(DS~ 32 CHR ; DS ~ 32 CHR) ; 00524600
|
|
DS ~ NCHARS CHR ; 00524700
|
|
END MOVECHARS ; 00524800
|
|
COMMENT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; 00524900
|
|
PROCEDURE READATAPE ; FORWARD ; 00525000
|
|
PROCEDURE ASTERCONTROLS ; FORWARD ; 00525100
|
|
PROCEDURE EDIT; FORWARD; 00525200
|
|
PROCEDURE NEWDOCPAGE; FORWARD; 00525300
|
|
PROCEDURE MAKEIRFILE; FORWARD; 00525400
|
|
PROCEDURE DOCERROR(N) ; VALUE N ; INTEGER N ; FORWARD ; 00525500
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00525600
|
|
STREAM PROCEDURE MOVEWORDS(SOURCE,DEST,NWORDS) ; 00525700
|
|
VALUE NWORDS ; 00525800
|
|
COMMENT MOVES NWORDS WORDS FROM S TO D ; 00525900
|
|
BEGIN 00526000
|
|
LOCAL T ; 00526100
|
|
SI ~ LOC NWORDS ; SI ~ SI + 6 ; DI ~LOC T ; DI ~ DI + 7 ; 00526200
|
|
DS ~ 1 CHR ; SI ~ SOURCE ; DI ~ DEST ; 00526300
|
|
T ( DS ~ 32 WDS ; DS ~ 32 WDS ) ; DS ~ NWORDS WDS ; 00526400
|
|
END MOVEWORDS ; 00526500
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00526600
|
|
BOOLEAN STREAM PROCEDURE EQUAL(SOURCE,DEST,NCHRS) ; 00526700
|
|
VALUE NCHRS ; 00526800
|
|
COMMENT TRUE IF NCHARS CHRS FROM SOURCE EQUAL THOSE FROM DEST ; 00526900
|
|
BEGIN 00527000
|
|
SI ~ SOURCE ; DI ~ DEST ; 00527100
|
|
IF NCHRS SC = DC THEN TALLY ~ 1 ELSE TALLY ~ 0 ; 00527200
|
|
EQUAL ~ TALLY ; 00527300
|
|
END EQUAL ; 00527400
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00527500
|
|
BOOLEAN STREAM PROCEDURE CHAREQUAL(S,SPOS,D,DPOS,NCHARS) ; 00527600
|
|
VALUE SPOS,DPOS,NCHARS ; 00527700
|
|
COMMENT TRUE IF NCHARS CHR AT S+SPOS = THOSE AT D +DPOS ; 00527800
|
|
BEGIN 00527900
|
|
SI ~ S ; SI ~ SI+ SPOS ; DI ~ D ; DI ~ DI + DPOS ; 00528000
|
|
IF NCHARS SC = DC THEN TALLY ~1 ELSE TALLY ~ 0 ; 00528100
|
|
CHAREQUAL ~ TALLY ; 00528200
|
|
END CHAREQUAL ; 00528300
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00528400
|
|
BOOLEAN STREAM PROCEDURE CHARGREAT(S,SPOS,D,DPOS,NCHARS) ; 00528500
|
|
VALUE SPOS,DPOS,NCHARS ; 00528600
|
|
COMMENT TRUE IS NCHARS CHRS AT S+SPOS > THOSE AT D+DPOS ; 00528700
|
|
BEGIN 00528800
|
|
SI ~ S ; SI ~ SI+ SPOS ; DI ~ D ; DI ~ DI + DPOS ; 00528900
|
|
IF NCHARS SC > DC THEN TALLY ~1 ELSE TALLY ~ 0 ; 00529000
|
|
CHARGREAT ~ TALLY ; 00529100
|
|
END CHARGREAT ; 00529200
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00529300
|
|
BOOLEAN STREAM PROCEDURE WORDEQUAL(S,D,NWORDS) ; 00529400
|
|
VALUE NWORDS ; 00529500
|
|
COMMENT TRUE IF NWORDS WORDS FROM S EQUAL THOSE AT D; 00529600
|
|
BEGIN 00529700
|
|
LABEL L ; 00529800
|
|
SI ~ S ; DI ~ D ; TALLY ~ 0 ; 00529900
|
|
NWORDS ( IF 8 SC ! DC THEN JUMP OUT 1 TO L ) ; 00530000
|
|
TALLY ~ 1 ; 00530100
|
|
L: WORDEQUAL ~ TALLY ; 00530200
|
|
END WORDEQUALL ; 00530300
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00530400
|
|
BOOLEAN STREAM PROCEDURE BLANKTEST(S,NWORDS) ; 00530500
|
|
VALUE NWORDS ; 00530600
|
|
COMMENT TRUE IF SOME ONE OF THE NWORDS WORDS STARTING AT S IS NOT BLNK;00530700
|
|
BEGIN 00530800
|
|
LABEL L ; 00530900
|
|
SI ~ S ; TALLY ~ 1 ; 00531000
|
|
NWORDS(8(IF SC ! " " THEN JUMP OUT 2 TO L ; SI ~ SI + 1));00531100
|
|
TALLY ~ 0 ; 00531200
|
|
L: BLANKTEST ~ TALLY ; 00531300
|
|
END BLANKTEST ; 00531400
|
|
COMMENT DOCUMENT* 23 * * * * * * * * * * * * * * * * * * * * * * * * *; 00531500
|
|
BOOLEAN STREAM PROCEDURE CNBLANK(S,SPOS,N); 00531600
|
|
VALUE SPOS,N; 00531700
|
|
COMMENT TRUE IF ONE OF N(UP TO 63) CHARACTERS STARTING AT S+SPOS 00531800
|
|
IS NON-BLANK ; 00531900
|
|
BEGIN 00532000
|
|
LABEL L; 00532100
|
|
SI~S; SI~SI+SPOS; TALLY ~ 1; 00532200
|
|
N(IF SC! " " THEN JUMP OUT 1 TO L; SI~ SI+1;); 00532300
|
|
TALLY ~ 0; 00532400
|
|
L: CNBLANK ~ TALLY ; 00532500
|
|
END ; 00532600
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * ; 00532700
|
|
BOOLEAN STREAM PROCEDURE DEBUGREC(S,CH) ; 00532800
|
|
VALUE CH ; 00532900
|
|
COMMENT TRUE IF 2 CHRS STARTING AT S +CH ARE "%%" ; 00533000
|
|
BEGIN 00533100
|
|
LOCAL T ; 00533200
|
|
DI ~ LOC T ; DI ~ DI + 6 ; DS ~ 2 LIT "%%" ; 00533300
|
|
DI ~ DI - 2 ; TALLY ~ 0 ; 00533400
|
|
SI ~ S ; SI ~ SI + CH ; 00533500
|
|
IF 2 SC = DC THEN TALLY ~ 1 ; 00533600
|
|
DEBUGREC ~ TALLY ; 00533700
|
|
END DEBUGREC ; 00533800
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00533900
|
|
BOOLEAN STREAM PROCEDURE CHECKDOLLAR(S) ; 00534000
|
|
COMMENT TRUE IF FIRST CHR IN S IS "$" ; 00534100
|
|
BEGIN 00534200
|
|
SI ~ S ; IF SC = "$" THEN TALLY ~ 1 ELSE TALLY ~ 0 ; 00534300
|
|
CHECKDOLLAR ~ TALLY ; 00534400
|
|
END CHECKDOLLAR ; 00534500
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00534600
|
|
BOOLEAN STREAM PROCEDURE CHECKCHAR(S,SPOS,CHAR) ; 00534700
|
|
VALUE SPOS,CHAR ; 00534800
|
|
COMMENT TRUE IF CHR AT S+SPOS IS CHAR ; 00534900
|
|
BEGIN 00535000
|
|
SI ~ S ; SI ~ SI + SPOS ; DI ~ LOC CHAR ; DI ~ DI + 7 ; 00535100
|
|
IF SC = DC THEN TALLY ~ 1 ELSE TALLY ~ 0 ; 00535200
|
|
CHECKCHAR ~ TALLY ; 00535300
|
|
END CHECKCHAR ; 00535400
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00535500
|
|
BOOLEAN STREAM PROCEDURE CHECKCOMMENT(S,SPOS) ; 00535600
|
|
VALUE SPOS ; 00535700
|
|
COMMENT TRUE IF FIRST WORD STARTING AT S + SPOS IS "COMMENT" ; 00535800
|
|
BEGIN 00535900
|
|
LOCAL T ; 00536000
|
|
DI ~ LOC T ; DS ~ 8 LIT "COMMENT " ; 00536100
|
|
SI ~ S ; SI ~ SI+ SPOS ; DI ~ LOC T ; 00536200
|
|
IF 8 SC = DC THEN TALLY ~ 1 ELSE TALLY ~ 0 ; 00536300
|
|
CHECKCOMMENT ~ TALLY ; 00536400
|
|
END CHECKCOMMENT ; 00536500
|
|
COMMENT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; 00536600
|
|
COMMENT DOCUMENT* 5 * * * * * * * * * * * * * * * * * * * * * * * * * 00536700
|
|
B. SCANNER AND SPECIAL LANGUAGE EDITING PROCEDURES. 00536800
|
|
* END; 00536900
|
|
COMMENT DOCUMENT* 24 * * * * * * * * * * * * * * * * * * * * * * * * ; 00537000
|
|
STREAM PROCEDURE SCANNER(NCR,COUNTV,ACCUM,COMCOUNT,RESULT,RESULTV, 00537100
|
|
COUNT,ST2,NCRV,ST1) ; 00537200
|
|
VALUE COUNTV,COMCOUNT,RESULTV,ST2,NCRV,ST1; 00537300
|
|
COMMENT SETS ACCUM TO SOME SCANNED ENTITY AND RETURNS THE NUMBER OF 00537400
|
|
CHARS IN THE ENTITY AS COUNT AND THE TYPE OF ENTITY AS RESULT; 00537500
|
|
BEGIN 00537600
|
|
LABEL DEBLANK,NUMBERS,IDBLDR,GNC,K,EXIT,FINIS,L,ERROR, 00537700
|
|
COMMENTS,COMMANTS; 00537800
|
|
DI ~ RESULT; DI ~ DI+7; 00537900
|
|
SI ~ NCRV; 00538000
|
|
COMMENT SETUP DI FOR CHANGE IN RESULT AND SI FOR A LOOK AT BUFFER; 00538100
|
|
CI ~ CI+RESULTV; COMMENT SWITCH ON VALUE OF RESULT; 00538200
|
|
GO TO DEBLANK; COMMENT 0 IS INITIAL CODE; 00538300
|
|
GO TO IDBLDR; COMMENT 1 IS ID CODE; 00538400
|
|
GO TO FINIS; COMMENT 2 IS SPECIAL CHARACTER CODE; 00538500
|
|
GO TO NUMBERS; COMMENT 3 IS NUMBER CODE; 00538600
|
|
GO TO FINIS; COMMENT 4 IS ERROR CODE; 00538700
|
|
GO TO GNC; COMMENT 5 IS GET NEXT CHARACTOR CODE; 00538800
|
|
GO TO COMMANTS; COMMENT 6 IS COMMENT CODE; 00538900
|
|
COMMENT 7 IS DEBLANK ONLY CODE; 00539000
|
|
IF SC=" " THEN 00539100
|
|
BEGIN K: SI ~ SI+1; 00539200
|
|
IF SC =" " THEN GO TO K 00539300
|
|
END; 00539400
|
|
GO TO FINIS; 00539500
|
|
DEBLANK: IF SC = " " THEN 00539600
|
|
BEGIN L: SI ~SI+1; IF SC = " " THEN GO TO L END; 00539700
|
|
COMMENT IF WE ARRIVE HERE WE HAVE A NON-BLANK CHARACTOR; 00539800
|
|
NCRV ~ SI; 00539900
|
|
IF SC } "0" THEN GO TO NUMBERS; 00540000
|
|
IF SC = ALPHA THEN GO TO IDBLDR; 00540100
|
|
COMMENT IF WE ARRIVE HERE WE HAVE A SPECIAL CHARACTOR (OR GNC); 00540200
|
|
GNC: IF SC = """ THEN 00540300
|
|
BEGIN 00540400
|
|
DS ~ LIT "5" ; 00540500
|
|
SI ~ SI + 1 ; IF SC = """ THEN 00540600
|
|
BEGIN 00540700
|
|
TALLY ~ 2 ; 00540800
|
|
SI ~ SI + 1 ; IF SC ! """ THEN GO TO ERROR ; 00540900
|
|
TALLY ~ 3 ; SI ~ SI + 1 ; 00541000
|
|
IF SC = """ THEN SI ~ SI-2 ELSE GO TO EXIT ; 00541100
|
|
END ; 00541200
|
|
TALLY ~ 1 ; COMCOUNT(TALLY ~ TALLY + 1 ; 00541300
|
|
IF SC ! """ THEN SI ~ SI + 1 ELSE 00541400
|
|
BEGIN 00541500
|
|
SI ~ SI + 1 ; IF SC ! """ THEN 00541600
|
|
BEGIN 00541700
|
|
SI ~ SI - 1 ; JUMP OUT TO EXIT ; 00541800
|
|
END ; 00541900
|
|
TALLY ~ TALLY + 1 ; SI ~ SI + 1 ; 00542000
|
|
END ; 00542100
|
|
) ; 00542200
|
|
GO TO ERROR ; 00542300
|
|
END ELSE 00542400
|
|
BEGIN 00542500
|
|
DS ~ LIT "2" ; 00542600
|
|
TALLY ~ 1 ; SI ~ SI + 1 ; GO TO EXIT ; 00542700
|
|
END ; 00542800
|
|
COMMANTS: IF SC ! ";" THEN BEGIN 00542900
|
|
COMMENTS: SI ~ SI+1; 00543000
|
|
IF SC > "%" THEN GO TO COMMENTS; 00543100
|
|
IF SC < ";" THEN GO TO COMMENTS; 00543200
|
|
COMMENT CHARACTORS BETWEEN % AND SEMICOLON ARE HANDLED BY WORD 00543300
|
|
MODE PART OF COMMENT ROUTINE; 00543400
|
|
END; 00543500
|
|
GO TO FINIS; 00543600
|
|
IDBLDR: TALLY ~ 63; DS ~ LIT "1"; 00543700
|
|
COMCOUNT( TALLY~ TALLY+1; 00543800
|
|
IF SC = ALPHA THEN SI~SI+1 ELSE JUMP OUT TO EXIT); 00543900
|
|
TALLY ~ TALLY+1; IF SC = ALPHA THEN BEGIN 00544000
|
|
ERROR: DI~DI-1; DS ~ LIT "4" ; TALLY ~ 63 ; GO TO EXIT ; 00544100
|
|
END ELSE GO TO EXIT; 00544200
|
|
COMMENT IF WE ARRIVE AT ERROR WE HAVE MORE THAN 63 CHARACTORS 00544300
|
|
IN AN IDENTIFIER OR NUMBER; 00544400
|
|
NUMBERS: TALLY ~ 63; DS ~ LIT "3"; 00544500
|
|
COMCOUNT( TALLY ~ TALLY+1; 00544600
|
|
IF SC <"0"THEN JUMP OUT TO EXIT; SI~SI+1); 00544700
|
|
GO TO ERROR; 00544800
|
|
EXIT: ST1 ~ TALLY; COMMENT ST1 CONTAINS NUMBER OF CHAR- 00544900
|
|
ACTORS WE ARE GOING TO MOVE INTO THE 00545000
|
|
ACCUMULATOR; 00545100
|
|
TALLY ~ TALLY+COUNTV; ST2 ~ TALLY; 00545200
|
|
DI ~ COUNT; SI ~ LOC ST2; DS ~ WDS; 00545300
|
|
COMMENT THIS CODE UPDATED COUNT; 00545400
|
|
DI ~ ACCUM; SI ~ SI-3; DS ~ 3 CHR; 00545500
|
|
COMMENT THIS CODE PLACES COUNT IN ACCUM AS WELL; 00545600
|
|
DI ~ DI+COUNTV; COMMENT POSITION DI PAST CHARACTORS 00545700
|
|
ALREADY IN THE ACCUMULATOR, IF ANY; 00545800
|
|
SI ~ NCRV; DS ~ ST1 CHR; 00545900
|
|
COMMENT MOVE CHARACTORS INTO ACCUM; 00546000
|
|
FINIS: DI ~ NCR; ST1 ~ SI; SI ~ LOC ST1; DS ~ WDS; 00546100
|
|
COMMENT RESET NCR TO LOCATION OF NEXT CHARACTOR TO BE SCANNED; 00546200
|
|
END OF SCANNER ; 00546300
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00546400
|
|
PROCEDURE SCAN ; 00546500
|
|
COMMENT DRIVES SCANNER, GETTING NEW RECORD WHEN NECESSARY ; 00546600
|
|
BEGIN 00546700
|
|
LABEL L1,L2,RET ; 00546800
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"SCAN "," ") ;00546900
|
|
L2: 00547000
|
|
CLEAR(ACCUM,14) ; 00547100
|
|
COUNT ~ RESULT ~ 0 ; ACCUM[1] ~ " " ; 00547200
|
|
L1: 00547300
|
|
SCANNER(NCR,COUNT,ACCUM[1],63-COUNT,RESULT,RESULT, 00547400
|
|
COUNT,0,NCR,0) ; 00547500
|
|
LABELUSE ~ FALSE ; 00547600
|
|
IF RESULT = 4 OR (RESULT =5 AND COUNT { 1) THEN 00547700
|
|
BEGIN 00547800
|
|
READATAPE ; GO TO RET ; 00547900
|
|
END ; 00548000
|
|
ENDCARD ~ FALSE ; 00548100
|
|
Q ~ ACCUM[1] ; 00548200
|
|
IF DEBUG THEN EDIT ; 00548300
|
|
IF QUOTETOG THEN IF SEMICOLON THEN QUOTETOG~FALSE; 00548302
|
|
IF Q = "1& " AND BPLTOG THEN Q ~ "1% " ; 00548400
|
|
IF PERCENT THEN 00548500
|
|
IF DOLLARFLAG OR ASTERFLAG OR NOT QUOTETOG THEN 00548600
|
|
BEGIN 00548700
|
|
READATAPE ; ENDCARD ~ TRUE ; GO TO RET ; 00548800
|
|
END ELSE IF LCR.[33:15] = NCR.[33:15]THEN 00548900
|
|
BEGIN READATAPE ; GO TO L2 ; END ; 00549000
|
|
IF LCR = NCR THEN 00549100
|
|
BEGIN 00549200
|
|
READATAPE ; GO TO L1 ; 00549300
|
|
END ; 00549400
|
|
RET: END SCAN ; 00549500
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * ; 00549600
|
|
STREAM PROCEDURE BUILDBNFID(NCRV,NCR,COUNT,BNFARRAY) ; 00549700
|
|
VALUE NCRV ; 00549800
|
|
COMMENT BUILDS METALINGUISTIC ENTITIES GIVEN IN BACKUS NORMAL FORM ; 00549900
|
|
BEGIN 00550000
|
|
LOCAL S ; 00550100
|
|
LABEL L,EXIT ; 00550200
|
|
SI ~ NCRV ; SI ~ SI - 1 ; TALLY ~0 ; DI ~ BNFARRAY ; 00550300
|
|
L: IF SC = "%" THEN GO TO EXIT ; 00550400
|
|
IF SC ! ">" THEN 00550500
|
|
BEGIN 00550600
|
|
DS ~ 1 CHR ; TALLY ~ TALLY + 1 ; GO TO L ; 00550700
|
|
END ; 00550800
|
|
IF SC = ">" THEN 00550900
|
|
BEGIN 00551000
|
|
DS ~ 1 CHR ; TALLY ~ TALLY + 1 ; 00551100
|
|
END ; 00551200
|
|
EXIT: S ~ SI ; DI ~ NCR ; SI ~ LOC S ; DS ~ WDS ; 00551300
|
|
S ~ TALLY ; DI ~ COUNT ; SI ~ LOC S ; DS ~ WDS ; 00551400
|
|
END BUILDBNFID ; 00551500
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * ; 00551600
|
|
PROCEDURE COBOLEDIT(BUFF,COBOLBUFF) ; 00551700
|
|
ARRAY BUFF[*],COBOLBUFF[*] ; 00551800
|
|
COMMENT PUTS ORIG. BUFF IN COBOLBUFF AND MOVES SEQ NO. TO BUFF[9] ; 00551900
|
|
BEGIN 00552000
|
|
MOVEWORDS(BUFF,COBOLBUFF,10) ; 00552100
|
|
CLEAR(BUFF[9],0) ; 00552200
|
|
MOVECHARS(BUFF[0],BUFF[9],0,2,6) ; 00552300
|
|
CLEARCHAR(BUFF[0],0,6) ; 00552400
|
|
END COBOLEDIT ; 00552500
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * ; 00552600
|
|
BOOLEAN STREAM PROCEDURE NOTCOBIDPART (NCR) ; 00552700
|
|
VALUE NCR ; 00552800
|
|
COMMENT TRUE IF NEXT ITEM FROM NCR TERMINATES COBOL ID ; 00552900
|
|
BEGIN 00553000
|
|
LABEL L, EXIT ; 00553100
|
|
TALLY ~ 0; SI ~ NCR ; 00553200
|
|
IF SC = " " THEN GO TO L; 00553300
|
|
IF SC = ALPHA THEN GO TO EXIT ; 00553400
|
|
IF SC = "-" THEN GO TO EXIT ; 00553500
|
|
L: TALLY ~ 1; 00553600
|
|
EXIT: NOTCOBIDPART ~ TALLY ; 00553700
|
|
END ; 00553800
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * ; 00553900
|
|
PROCEDURE BUILDCOBID ; 00554000
|
|
COMMENT FORMS ONE IDENTIFIER FROM HYPHEN-SEPARATED ENTITIES ; 00554100
|
|
BEGIN 00554200
|
|
LABEL EXIT,CONT ; 00554300
|
|
COBCOUNT ~ COUNT ; 00554400
|
|
MOVEWORDS(ACCUM,COBACCUM,10) ; 00554500
|
|
CONT: IF NOTCOBIDPART (NCR) THEN 00554600
|
|
GO TO EXIT ; SCAN ; 00554700
|
|
MOVECHARS(ACCUM[1],COBACCUM[1],3,COBCOUNT+3,COUNT); 00554800
|
|
COUNT ~ COUNT + COBCOUNT ; COBCOUNT ~ COUNT ; 00554900
|
|
COBACCUM[1].[12:6] ~ COUNT.[42:6] ; 00555000
|
|
MOVEWORDS(COBACCUM,ACCUM,10) ; 00555100
|
|
Q ~ ACCUM[1] ; 00555200
|
|
IF COUNT > 62 THEN GO TO EXIT ; 00555300
|
|
GO TO CONT ; 00555400
|
|
EXIT: 00555500
|
|
END BUILDCOBID ; 00555600
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * ; 00555700
|
|
PROCEDURE ASMLEDIT(BUFF,ASMLBUFF) ; 00555800
|
|
ARRAY BUFF[*],ASMLBUFF[*] ; 00555900
|
|
COMMENT SETS UP B3500 ASSEMBLY LANGUAGE FOR XREF ; 00556000
|
|
BEGIN 00556100
|
|
ALPHA OP ; 00556200
|
|
INTEGER I ; 00556300
|
|
COMMENT DOCUMENT* 31 * * * * * * * * * * * * * * * * * * * * * * * * ; 00556400
|
|
STREAM PROCEDURE BUST(S,D,DD); 00556500
|
|
COMMENT PUTS VARIANT FIELDS IN DD, ADDRESS AND LABEL FIELDS IN D ; 00556600
|
|
BEGIN 00556700
|
|
SI ~S ; SI ~SI + 7 ; DI ~ D ; DS ~ 2 LIT"00" ;DS~ 6 CHR; 00556800
|
|
SI ~ SI + 8 ; 00556900
|
|
3(DS ~ 2 LIT "00" ; DS ~ 6 CHR ; SI ~ SI + 6 ); 00557000
|
|
SI~S; SI~SI+ 31; DI~DD; 00557100
|
|
3(DS~6 LIT "00"; DS~2 CHR; SI~SI+10); 00557200
|
|
END BUST ; 00557300
|
|
COMMENT DOCUMENT* 31 * * * * * * * * * * * * * * * * * * * * * * * * ; 00557400
|
|
STREAM PROCEDURE ASMLFIXSEQ(S,D) ; 00557500
|
|
COMMENT MOVES SEQUENCE TO BUFF[9] ; 00557600
|
|
BEGIN 00557700
|
|
DI ~ D ; DS ~8 LIT " "; SI ~ D ; DS ~ 9 WDS ; 00557800
|
|
DI ~ DI - 8 ; DS ~ 2 LIT " "; SI ~S ; SI ~ SI + 1 ; 00557900
|
|
DS ~ 6 CHR ; 00558000
|
|
END ASMLFIXSEQ ; 00558100
|
|
COMMENT DOCUMENT* 31 * * * * * * * * * * * * * * * * * * * * * * * * ; 00558200
|
|
STREAM PROCEDURE GETOP(S,D) ; 00558300
|
|
COMMENT PULLS OFF OP FIELD FOR TESTING ; 00558400
|
|
BEGIN 00558500
|
|
DI ~ D ; 00558600
|
|
SI ~ S ; SI ~ SI + 13 ; DI ~ DI + 4 ; DS ~ 4 CHR ; 00558700
|
|
END GETOP ; 00558800
|
|
IF MONITOG THEN WRITE(LINE,MONITFORM,"ASMLED","IT "); 00558900
|
|
GETOP(BUFF,OP) ; 00559000
|
|
MOVEWORDS(BUFF,ASMLBUFF,10) ; 00559100
|
|
ASMLFIXSEQ(ASMLBUFF,BUFF) ; 00559200
|
|
IF NOT TRANSTOG THEN 00559300
|
|
DOCLISTFLAG ~ TRUE ; 00559400
|
|
IF NOT TRANSTOG THEN 00559500
|
|
IF FLOWTOG OR DOCTOG THEN 00559600
|
|
BEGIN 00559700
|
|
IF OP ="DOCU" OR FLOWTABTOG THEN 00559800
|
|
MOVECHARS(ASMLBUFF[2],BUFF,1,0,63) ELSE 00559900
|
|
BEGIN 00560000
|
|
CLEAR(BUFF,8) ; 00560100
|
|
DOCLISTFLAG ~ FALSE ; 00560200
|
|
END ; 00560300
|
|
END ELSE 00560400
|
|
BEGIN 00560500
|
|
BUST(ASMLBUFF,BUFF[1],AACONT[2]); 00560600
|
|
FOR I ~ 2,3,4 DO IF AACONT[I] = "NL" OR 00560700
|
|
AACONT[I] = "AL" OR AACONT[I] = "SL" THEN 00560800
|
|
BUFF[I] ~ " " ; 00560900
|
|
IF OP = "CNST" OR OP = "RECD" OR OP = "FILE" OR 00561000
|
|
OP = "DOCU" OR OP = "SPEC" 00561100
|
|
OR OP = " " OR 00561200
|
|
OP = "REMK" OR 00561300
|
|
OP = "SPAC" OR OP = "SYNC" OR 00561400
|
|
OP = "D " OR OP ="DATA" OR OP = "LOCN" OR 00561500
|
|
OP = "IDNT" THEN LABC ~ 1 ELSE LABC ~ 4 ; 00561600
|
|
IF B35OPTOG AND LABC ! 1 THEN 00561700
|
|
BEGIN 00561800
|
|
BUFF[5] ~ OP; BUFF[5].[12:12] ~ " " ; 00561900
|
|
LABC~ LABC + 1; 00562000
|
|
END; 00562100
|
|
IF BUFF[1] ! " " THEN BUFF[1] ~ - BUFF[1]; 00562200
|
|
BUFF[6] ~LABC; 00562300
|
|
END ; 00562400
|
|
END ASMLEDIT ; 00562500
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * *; 00562600
|
|
STREAM PROCEDURE HOLCONVERT(A,B); 00562700
|
|
COMMENT CHANGES 9 WDS FROM HOLLERITH TO BCL ; 00562800
|
|
BEGIN 00562900
|
|
SI~A; DI~ B; 00563000
|
|
9(8( IF SC = "%" THEN BEGIN DS~ 1 LIT "(" ; SI~SI+1; END ELSE 00563100
|
|
IF SC = "[" THEN BEGIN DS ~ 1 LIT ")" ; SI~SI+1; END ELSE 00563200
|
|
IF SC = "#" THEN BEGIN DS ~ 1 LIT "=" ; SI ~SI+1; END ELSE 00563300
|
|
IF SC = "&" THEN BEGIN DS ~ 1 LIT "+"; SI ~SI+1; END ELSE 00563400
|
|
DS ~ CHR;)); 00563500
|
|
END HOLCONVERT; 00563600
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00563700
|
|
BOOLEAN STREAM PROCEDURE QUOTESCAN (NCR,ACCUM,NCRV) ; 00563800
|
|
VALUE NCRV ; 00563900
|
|
COMMENT TRUE IF QUOTE, SCANS SPECIALLY IF QUOTE OR PERCENT ; 00564000
|
|
BEGIN 00564100
|
|
LOCAL ST1 ; 00564200
|
|
LABEL L,NOTQUOTE,OK; 00564300
|
|
SI ~NCRV ; IF SC = " " THEN BEGIN L: SI ~SI +1; 00564400
|
|
IF SC = " " THEN GO TO L; END ; 00564500
|
|
IF SC ! """ THEN IF SC ! "%" THEN GO TO NOTQUOTE ; 00564600
|
|
IF SC = """ THEN TALLY ~ 1 ELSE TALLY ~0; 00564700
|
|
DI ~ACCUM; DS~ 3 LIT "001"; DS ~ CHR; DS ~ 4 LIT " " ; 00564800
|
|
DI ~ NCR; ST1 ~SI; SI~ LOC ST1; DS ~WDS; 00564900
|
|
GO TO OK ; 00565000
|
|
NOTQUOTE: TALLY ~ 0; 00565100
|
|
OK: QUOTESCAN ~TALLY; 00565200
|
|
END QUOTESCAN ; 00565300
|
|
COMMENT DOCUMENT* 22* * * * * * ** * * * * * * * * * * * * * * * * * ; 00565400
|
|
BOOLEAN STREAM PROCEDURE NUMCHECK(NCR); 00565500
|
|
VALUE NCR; 00565600
|
|
COMMENT TRUE IF NUMBER IS IN DECIMAL FORM ; 00565700
|
|
BEGIN 00565800
|
|
LABEL L; 00565900
|
|
TALLY ~0; SI ~NCR; IF SC ! "." THEN GO TO L; 00566000
|
|
SI ~ SI +1; IF SC= " " THEN GO TO L; 00566100
|
|
IF SC < "0" THEN GO TO L; 00566200
|
|
TALLY ~1; 00566300
|
|
L: NUMCHECK~TALLY; 00566400
|
|
END ; 00566500
|
|
COMMENT DOCUMENT* 23 * * * * * * * * * * * * * * * * * * * * * * * * * ;00566600
|
|
PROCEDURE BRACKCOMBINE(TYPE) ; 00566700
|
|
VALUE TYPE; 00566800
|
|
INTEGER TYPE; 00566900
|
|
COMMENT COMBINES SPECIAL CHARACTERS WITH WORDS AND NUMBERS ; 00567000
|
|
BEGIN 00567100
|
|
LABEL COMBINE,AGAIN ; 00567200
|
|
LABEL GOOUT ; 00567300
|
|
LABEL FINISHUP; 00567400
|
|
INTEGER SUBCOUNT,SVRESULT ; 00567500
|
|
MOVEWORDS(ACCUM[1],COBACCUM[1],10) ; 00567600
|
|
SUBCOUNT ~ COUNT +3; 00567700
|
|
AGAIN: 00567800
|
|
IF HOLDASTER THEN GO TO FINISHUP ; 00567900
|
|
IF ACCUM[1] = "1% " THEN ACCUM[1] ~0; 00568000
|
|
IF QUOTESCAN(NCR,ACCUM[1],NCR) THEN 00568100
|
|
BEGIN 00568200
|
|
COUNT ~1; 00568300
|
|
RESULT ~2; 00568400
|
|
END ELSE IF ACCUM[1] = "1% " THEN 00568500
|
|
IF LCR.[33:15] = NCR.[33:15] THEN 00568600
|
|
BEGIN 00568700
|
|
READATAPE; 00568800
|
|
IF ASTERTOG THEN GO TO GOOUT ; 00568900
|
|
IF EXAMINE(NCR) = " " THEN LASTNOSPACE ~ FALSE ; 00569000
|
|
GO TO AGAIN ; 00569100
|
|
END ELSE 00569200
|
|
BEGIN 00569300
|
|
COUNT ~ 1; 00569400
|
|
RESULT ~2; 00569500
|
|
END ELSE 00569600
|
|
BEGIN 00569700
|
|
WATCHOUT ~ TRUE ; 00569800
|
|
SCAN ; 00569900
|
|
WATCHOUT ~ FALSE ; 00570000
|
|
END ; 00570100
|
|
MOVECHARS(ACCUM[1],COBACCUM[1],3,SUBCOUNT,COUNT) ; 00570200
|
|
SUBCOUNT ~ SUBCOUNT + COUNT ; 00570300
|
|
IF TYPE = 1 THEN IF RESULT = 2 THEN 00570400
|
|
BEGIN 00570500
|
|
IF LEFTCONNECT THEN GO TO AGAIN; 00570600
|
|
END ELSE SVRESULT ~ RESULT ; 00570700
|
|
IF TYPE = 2 THEN IF EXAMINE(NCR) ! " " THEN 00570800
|
|
IF RTCONNECT THEN GO TO AGAIN ; 00570900
|
|
IF TYPE = 3 THEN 00571000
|
|
BEGIN 00571100
|
|
TYPE ~ 2 ; 00571200
|
|
GO TO AGAIN ; 00571300
|
|
END ; 00571400
|
|
FINISHUP : 00571500
|
|
RESULT ~ SVRESULT ; 00571600
|
|
MOVEWORDS(COBACCUM[1],ACCUM[1],10) ; 00571700
|
|
Q ~ ACCUM [1] ; 00571800
|
|
COUNT ~ SUBCOUNT - 3 ; 00571900
|
|
GOOUT: 00572000
|
|
END ; 00572100
|
|
COMMENT DOCUMENT* 21* * * * * * * * * * * * * * * * * * * * * * * * *; 00572200
|
|
PROCEDURE DOCSCAN; 00572300
|
|
COMMENT MODIFIES SCANNER OUTPUT FOR DOCUMENTATION PURPOSES ; 00572400
|
|
BEGIN 00572500
|
|
LABEL OK, LOOP, RT, AGAIN ; 00572600
|
|
LABEL AWAY; 00572700
|
|
IF MONITOG THEN WRITE(LINE,MONITFORM,"DOCSCA","N "); 00572800
|
|
IF HOLDASTER THEN 00572900
|
|
BEGIN 00573000
|
|
HOLDASTER ~ FALSE; 00573100
|
|
ASTERCONTROLS ; 00573200
|
|
GO TO AWAY; 00573300
|
|
END ; 00573400
|
|
AGAIN: 00573500
|
|
IF ACCUM[1] = "1% " THEN ACCUM[1] ~0; 00573600
|
|
IF QUOTESCAN (NCR,ACCUM[1],NCR) THEN 00573700
|
|
BEGIN 00573800
|
|
Q ~ ACCUM[1] ; 00573900
|
|
COUNT ~1; 00574000
|
|
RESULT ~2; 00574100
|
|
END ELSE IF ACCUM[1] = "1% " THEN 00574200
|
|
IF LCR.[33:15] = NCR.[33:15] THEN 00574300
|
|
BEGIN 00574400
|
|
READATAPE; 00574500
|
|
IF ASTERTOG THEN GO TO AWAY ; 00574600
|
|
IF EXAMINE(NCR) = " " THEN LASTNOSPACE ~ FALSE ; 00574700
|
|
GO TO AGAIN ; 00574800
|
|
END ELSE 00574900
|
|
BEGIN 00575000
|
|
COUNT ~ 1; 00575100
|
|
RESULT ~ 2; 00575200
|
|
END ELSE 00575300
|
|
BEGIN 00575400
|
|
WATCHOUT ~ TRUE; 00575500
|
|
SCAN ; 00575600
|
|
WATCHOUT ~ FALSE; 00575700
|
|
END ; 00575800
|
|
IF HOLDASTER THEN GO TO AWAY ; 00575900
|
|
IF RESULT ! 2 THEN GO TO RT; 00576000
|
|
IF LEFTCONNECT THEN BRACKCOMBINE(1); 00576100
|
|
RT: 00576200
|
|
IF EXAMINE(NCR) = " " THEN GO TO OK ; 00576300
|
|
IF COUNT ! 1 THEN IF CHECKCHAR(ACCUM[1],COUNT +2, 00576400
|
|
""") THEN GO TO AWAY ; 00576500
|
|
IF Q = "1* " THEN GO TO OK ; 00576600
|
|
IF RTCONNECT THEN BRACKCOMBINE(2) ; 00576700
|
|
OK: 00576800
|
|
IF RESULT = 3 THEN IF NUMCHECK(NCR) THEN 00576900
|
|
BRACKCOMBINE(3) ; 00577000
|
|
IF DEBUG THEN EDIT ; 00577100
|
|
AWAY: 00577200
|
|
END DOCSCAN ; 00577300
|
|
COMMENT DOCUMENT* 5 * * * * * * * * * * * * * * * * * * * * * * * * 00577400
|
|
C. PRINTING PROCEDURES. 00577500
|
|
* END; 00577600
|
|
COMMENT DOCUMENT* 23 * * * * * * * * * * * * * * * * * * * * * * * * ; 00577700
|
|
PROCEDURE ZPG(ZF) ; 00577800
|
|
VALUE ZF ; 00577900
|
|
INTEGER ZF ; 00578000
|
|
COMMENT STARTS NEW PAGE, ZF=1 ON BACKUP, ZF=0 ON PRINTER, ZF=2 ON BOTH;00578100
|
|
BEGIN 00578200
|
|
FORMAT PAGEMARKER(15("*-*-*-*-")) ; 00578300
|
|
IF MONITOG THEN 00578400
|
|
WRITE (PRINT,MONITFORM, "ZPG "," "); 00578500
|
|
IF DOCOUTPUT THEN 00578600
|
|
BEGIN 00578700
|
|
SAVEZ ~ ZPAGEN; 00578800
|
|
SAVEZZ ~ ZCONTPAGEN; 00578900
|
|
ZPAGEN ~ PAGEN; 00579000
|
|
ZCONTPAGEN ~ CONTPAGEN ; 00579100
|
|
IF ZF =1 OR ZF=2 THEN 00579200
|
|
IF UPDATETOG THEN 00579300
|
|
IF BKRCRDCOUNT ! FIRSTPAGELINE THEN 00579400
|
|
BEGIN 00579500
|
|
IF PROGID = "TEST " THEN 00579600
|
|
BKRCRDCOUNT ~ BKRCRDCOUNT +1; 00579700
|
|
IF PAGEQUAL < 2 THEN 00579800
|
|
PAGEQUAL ~ IF PATCHPAGE THEN 1 ELSE 0; 00579900
|
|
DOCPATCHED ~ DOCPATCHED OR PATCHPAGE ; 00580000
|
|
WRITE (LAR[*],*,ZLIST); 00580100
|
|
MOVECHARS (PAGENUM[7], LAR[8],10-PAGECHAR,0,16); 00580200
|
|
MOVECHARS (ACONT,LAR[10],0,0,8); 00580300
|
|
IF PROGID = "TEST " THEN 00580400
|
|
WRITE (BACKUP,15,LAR[*]); 00580500
|
|
WRITE (BACKUPDIR,15, LAR[*]); 00580600
|
|
BKDIRCOUNT~BKDIRCOUNT+1; 00580700
|
|
IF NEWVOL THEN 00580800
|
|
BEGIN 00580900
|
|
FOR I ~ 0 STEP 1 UNTIL 14 DO ZAR[I] ~ 0; 00581000
|
|
WRITE(ZAR[*],* ,5,DOCPATCHED,DOCREV); 00581100
|
|
DOCPATCHED ~ FALSE; 00581200
|
|
WRITE(BACKUPDIR,15, ZAR[*] ); 00581300
|
|
BKDIRCOUNT ~ BKDIRCOUNT + 1; 00581400
|
|
NEWVOL ~ FALSE; 00581500
|
|
END ; 00581600
|
|
IF BKDIRCOUNT >1022 THEN ERROR(10); 00581602
|
|
END ELSE 00581700
|
|
IF NEWVOL THEN 00581800
|
|
BEGIN 00581900
|
|
FOR I ~ 0 STEP 1 UNTIL 14 DO ZAR[I] ~ 0; 00582000
|
|
WRITE(ZAR[*],*,5,DOCPATCHED,DOCREV); 00582100
|
|
DOCPATCHED ~ FALSE; 00582200
|
|
WRITE(BACKUPDIR,15,ZAR[*]); 00582300
|
|
BKDIRCOUNT ~ BKDIRCOUNT +1; 00582400
|
|
NEWVOL ~ FALSE; 00582500
|
|
END ; 00582600
|
|
END; 00582700
|
|
IF ZF = 0 OR ZF = 2 THEN WRITE(LINE[PAGE]) ; 00582800
|
|
IF ZF = 1 OR ZF = 2 THEN 00582900
|
|
BEGIN 00583000
|
|
WRITE(BACKUP,MARKER) ; 00583100
|
|
BKRCRDCOUNT ~BKRCRDCOUNT+1; 00583200
|
|
FIRSTPAGELINE~BKRCRDCOUNT; 00583300
|
|
END ; 00583400
|
|
IF PAGETOG AND DOCOUTPUT THEN 00583500
|
|
PATCHPAGE ~ FALSE ; 00583600
|
|
IF NOT NOPAGETOG THEN 00583700
|
|
IF UPDATETOG AND DOCOUTPUT AND NOT PAGETOG THEN 00583800
|
|
ZCONTPAGEN~ZCONTPAGEN +1 ELSE 00583900
|
|
BEGIN 00584000
|
|
ZCONTPAGEN ~0; ZPAGEN ~ ZPAGEN+PAGEINC; 00584100
|
|
END; 00584200
|
|
IF DOCOUTPUT THEN 00584300
|
|
BEGIN 00584400
|
|
PAGEN ~ ZPAGEN; 00584500
|
|
OLDPAGE~ZPAGEN; 00584600
|
|
CONTPAGEN ~ ZCONTPAGEN; 00584700
|
|
ZPAGEN ~ SAVEZ; 00584800
|
|
ZCONTPAGEN ~ SAVEZZ; 00584900
|
|
NLINES ~ 0; 00585000
|
|
END ELSE 00585100
|
|
ZLCOUNT ~0 ; 00585200
|
|
ZPLOVER ~ FALSE ; 00585300
|
|
END ZPG ; 00585400
|
|
COMMENT DOCUMENT* 25 * * * * * * * * * * * * * * * * * * * * * * * *; 00585500
|
|
PROCEDURE ZPL(ZF,ZSP,ZAR) ; 00585600
|
|
VALUE ZF,ZSP ; 00585700
|
|
INTEGER ZF,ZSP ; 00585800
|
|
ARRAY ZAR[0] ; 00585900
|
|
COMMENT WRITES AN ARRAY ROW ON LINE OR BACKUP, CHECKING LINE COUNT. 00586000
|
|
ZF =1 MEANS BACKUP, 0 LINE, 2 BOTH. ZSP IS SNGL OR DBL SPACE; 00586100
|
|
BEGIN 00586200
|
|
IF MONITOG THEN WRITE(LINE,MONITFORM,"ZPL- "," "); 00586300
|
|
IF DOCOUTPUT THEN 00586400
|
|
BEGIN 00586500
|
|
NLINES ~ NLINES + ZSP; 00586600
|
|
IF NLINES } MAXLINES THEN 00586700
|
|
BEGIN 00586800
|
|
IF NOT ZNOSKIP THEN 00586900
|
|
BEGIN 00587000
|
|
IF PUNCHPAGES THEN 00587100
|
|
BEGIN 00587200
|
|
IF PATTOG AND NOT PAGETOG THEN 00587300
|
|
IF BBB THEN DOCERROR(34); 00587400
|
|
IF PUNCHAFTER THEN 00587500
|
|
IF NOT PAGETOG THEN 00587600
|
|
BEGIN 00587700
|
|
IF ASAVESEQ = 0 THEN DOCERROR(33); 00587800
|
|
IF INSTOG THEN 00587900
|
|
BEGIN 00588000
|
|
IF NOT INSERTROW THEN SAVEPAGEN ~ PAGEN; 00588100
|
|
TEMP~ PAGEN +INSINC; 00588200
|
|
INSERTROW~ TRUE; 00588300
|
|
OCTTODEC(TEMP,BLOCKBUFFER[3]); 00588400
|
|
PAGEINC ~INSINC; 00588500
|
|
END; 00588600
|
|
ASAVESEQ ~ ASAVESEQ +1; COMMENT 00588700
|
|
IF ASAVESEQ{ ISEQ-2 THEN ASAVESEQ~ASAVESEQ+1; 00588800
|
|
OCTTODEC(ASAVESEQ,BLOCKBUFFER[9]); 00588900
|
|
IF PUNCHTOG THEN WRITE(PUNCH,10,BLOCKBUFFER[*]) ELSE 00589000
|
|
WRITE(LINE,15,BLOCKBUFFER[*]); 00589100
|
|
END; 00589200
|
|
PUNCHAFTER ~ FALSE; 00589300
|
|
END; 00589400
|
|
ZPG(ZF); 00589500
|
|
NEWDOCPAGE; 00589600
|
|
NLINES ~ NLINES +ZSP; 00589700
|
|
IF DOCLISTOG THEN 00589800
|
|
BEGIN 00589900
|
|
DOCOUTPUT ~ FALSE; 00590000
|
|
FOR I ~ 0 STEP 1 UNTIL 15 DO SETCHAR (PAGENUM[3],I,"*"); 00590100
|
|
ZPL (0,2,PAGENUM[*]); 00590200
|
|
DOCOUTPUT ~ TRUE; 00590300
|
|
END; 00590400
|
|
END; 00590500
|
|
ZPLOVER ~ TRUE; 00590600
|
|
END ELSE 00590700
|
|
IF PUNCHPAGES THEN 00590800
|
|
BEGIN 00590900
|
|
PAGEFULL ~ LASTLINE OR (PAGEFULL AND 00591000
|
|
(NLINES = MAXLINES - 1) ) ; 00591100
|
|
LASTLINE ~ (NLINES=MAXLINES-2|ZSPERM) OR 00591200
|
|
(NLINES=MAXLINES-ZSPERM-1); 00591300
|
|
END; 00591400
|
|
END ELSE 00591500
|
|
ZLCOUNT ~ ZLCOUNT + ZSP; 00591600
|
|
PATCHPAGE ~ PATCHINBUFF OR PATCHPAGE; 00591700
|
|
PATCHINBUFF~FALSE; 00591800
|
|
IF ZF =0 OR ZF = 2 THEN 00591900
|
|
BEGIN 00592000
|
|
IF ZSP =1 THEN WRITE(LINE,15,ZAR[*]) ELSE 00592100
|
|
IF ZSP = 2 THEN 00592200
|
|
WRITE(LINE[DBL],15,ZAR[*]); 00592300
|
|
END ; 00592400
|
|
IF ZF = 1 OR ZF =2 THEN 00592500
|
|
BEGIN 00592600
|
|
IF ZSP =1 OR ZSP=2 THEN 00592700
|
|
WRITE(BACKUP,15,ZAR[*]); BACKUPUSED ~ TRUE ; 00592800
|
|
IF ZSP =2 THEN WRITE(BACKUP,15,BLANKARRAY[*]) ; 00592900
|
|
BKRCRDCOUNT ~BKRCRDCOUNT+ZSP; 00593000
|
|
END ; 00593100
|
|
END ZPL ; 00593200
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00593300
|
|
PROCEDURE PRINTBACKUP ; 00593400
|
|
COMMENT PRINTS DISK OR TAPE XREF BACKUPS ; 00593500
|
|
BEGIN 00593600
|
|
SAVE ARRAY B[0:14] ; 00593700
|
|
LABEL RD,EOF ; 00593800
|
|
FORMAT FTEST("PRINTBACKUP AUTOPRINT",10("*-*-*-*-")) ; 00593900
|
|
COMMENT DOCUMENT* 31 * * * * * * * * * * * * * * * * * * * * * * * * ; 00594000
|
|
BOOLEAN STREAM PROCEDURE TESTMARKER(S) ; 00594100
|
|
COMMENT TRUE IF END OF PAGE ON BACKUP ; 00594200
|
|
BEGIN 00594300
|
|
LOCAL T ; 00594400
|
|
DI ~ LOC T ; DS ~ 5 LIT "A-A-A" ; 00594500
|
|
SI ~ S ; DI ~ LOC T ; 00594600
|
|
IF 5 SC =DC THEN TALLY ~ 1 ELSE TALLY ~ 0 ; 00594700
|
|
TESTMARKER ~ TALLY ; 00594800
|
|
END TESTMARKER ; 00594900
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"PRINTB","ACKUP ") ;00595000
|
|
CLEAR(B,14) ; 00595100
|
|
REWIND(BACKUP) ; 00595200
|
|
WRITE(PRINT[PAGE],15,BLANKARRAY[*]) ; 00595300
|
|
IF PROGID = "TEST " THEN WRITE(LINE[DBL],FTEST) ; 00595400
|
|
RD: READ(BACKUP,15,B[*])[EOF] ; 00595500
|
|
IF TESTMARKER(B) AND PROGID ! "TEST " THEN 00595600
|
|
BEGIN 00595700
|
|
IF CHECKCHAR (B[0],5,"Z") THEN GO TO EOF; 00595800
|
|
WRITE(PRINT[PAGE],15,BLANKARRAY[*]) 00595900
|
|
END ELSE WRITE (PRINT,15, B[*]); 00596000
|
|
CLEAR(B,14) ; 00596100
|
|
GO TO RD ; 00596200
|
|
EOF: REWIND(BACKUP) ; 00596300
|
|
END PRINTBACKUP ; 00596400
|
|
COMMENT DOCUMENT* 5 * * * * * * * * * * * * * * * * * * * * * * * * * 00596500
|
|
D. PROCEDURES FOR DEBUGGING AND CHANGING XREF. 00596600
|
|
* END; 00596700
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00596800
|
|
STREAM PROCEDURE TABLEDIT(ADDRESS,TABLE,BUFFER,NWORDS) ; 00596900
|
|
VALUE NWORDS ; 00597000
|
|
COMMENT FORMATS AN ARRAY ROW TO BE DUMPED ; 00597100
|
|
BEGIN 00597200
|
|
SI ~ ADDRESS ; DI ~ BUFFER ; SI ~ SI + 5 ; SKIP 3 SB ; 00597300
|
|
5 ( 3 ( DS ~ 1 RESET ) ; 00597400
|
|
3 ( IF SB THEN DS ~ 1 SET ELSE DS ~ 1 00597500
|
|
RESET ; SKIP 1 SB ) ) ; SI ~ TABLE ; DS ~ 1 LIT " " ;00597600
|
|
NWORDS(DS ~1 LIT " "; 2(DS ~ 1 LIT " " ; 8(3(DS ~ 1 RESET ); 00597700
|
|
3(IF SB THEN DS ~ 1 SET ELSE DS ~ 1 RESET ; SKIP 1 SB))));00597800
|
|
END TABLEDIT ; 00597900
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00598000
|
|
STREAM PROCEDURE EDITSCAN(NCR,COUNT,ACCUM,RESULT,BUFFER,LCR) ; 00598100
|
|
COMMENT FORMATS OUTPUT OF SCANNER FOR DEBUGGING CONTROL, "DEBUG" ; 00598200
|
|
BEGIN DI ~ BUFFER ; SI ~ NCR ; 00598300
|
|
16(3(DS ~ 1 RESET ) ; 3(IF SB THEN DS ~ 1 SET ELSE DS ~ 1 RESET ; 00598400
|
|
SKIP 1 SB ) ) ; 00598500
|
|
DS ~ 3 LIT " " ; 00598600
|
|
SI ~ COUNT ; 00598700
|
|
16(3(DS ~ 1 RESET ) ; 3(IF SB THEN DS ~ 1 SET ELSE DS ~ 1 RESET ; 00598800
|
|
SKIP 1 SB ) ) ; 00598900
|
|
DS ~ 3 LIT " " ; 00599000
|
|
SI ~ ACCUM ; SI ~ SI + 2 ; 00599100
|
|
2(3(DS ~ 1 RESET ) ; 3(IF SB THEN DS ~ 1 SET ELSE DS ~ 1 RESET ; 00599200
|
|
SKIP 1 SB ) ) ; DS ~ 16 CHR ; 00599300
|
|
DS ~ 3 LIT " " ; 00599400
|
|
DS ~ 3 LIT " " ; 00599500
|
|
SI ~ RESULT ; 00599600
|
|
16(3(DS ~ 1 RESET ) ; 3(IF SB THEN DS ~ 1 SET ELSE DS ~ 1 RESET ; 00599700
|
|
SKIP 1 SB ) ) ; 00599800
|
|
DS ~ 3 LIT " " ; 00599900
|
|
SI ~ LCR ; 16(3(DS ~ 1 RESET ) ; 3(IF SB THEN DS ~ 1 SET 00600000
|
|
ELSE DS ~ 1 RESET ; SKIP 1 SB ) ) ; 00600100
|
|
END EDITSCAN ; 00600200
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00600300
|
|
PROCEDURE EDIT ; 00600400
|
|
COMMENT DRIVES EDITSCAN ; 00600500
|
|
BEGIN 00600600
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"EDIT "," ") ;00600700
|
|
CLEAR(BUFFER,14) ; 00600800
|
|
EDITSCAN(NCR,COUNT,ACCUM[1],RESULT,BUFFER,LCR) ; 00600900
|
|
WRITE(PRINT,15,BUFFER[*]) ; 00601000
|
|
END EDIT ; 00601100
|
|
COMMENT DOCUMENT* 27 * * * * * * * * * * * * * * * * * * * * * * * ; 00601200
|
|
PROCEDURE DUMPARRAYROW (A,LBOUND,UBOUND,ADDRESS,FILENAME,ANAME1, 00601300
|
|
ANAME2) ; 00601400
|
|
VALUE ADDRESS,LBOUND,UBOUND ; 00601500
|
|
INTEGER ADDRESS,LBOUND,UBOUND ; 00601600
|
|
ALPHA ANAME1,ANAME2 ; 00601700
|
|
FILE FILENAME ; 00601800
|
|
ARRAY A[*] ; 00601900
|
|
COMMENT DUMPS ONE ARRAY ROW TO GIVEN FILE ; 00602000
|
|
BEGIN 00602100
|
|
INTEGER ADD,I,J,NPROWS,NLASTROW ; 00602200
|
|
BOOLEAN SAMELINE ; 00602300
|
|
SAVE ARRAY BUFFER,OLDBUFFER[0:14] ; 00602400
|
|
FORMAT ASTER(X6,12(" * * * *")) ; 00602500
|
|
FORMAT NAMEFORM("ARRAY ",2A6) ; 00602600
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"DUMPAR","RAYROW") ;00602700
|
|
CLEAR(BUFFER,14) ; CLEAR(OLDBUFFER,14) ; 00602800
|
|
SAMELINE ~ FALSE ; 00602900
|
|
WRITE(FILENAME[DBL],15,BUFFER[*]) ; 00603000
|
|
WRITE(FILENAME[DBL],NAMEFORM,ANAME1,ANAME2 ) ; 00603100
|
|
NPROWS ~ ((UBOUND+1-LBOUND) DIV 6 - 1 ) | 6 ; 00603200
|
|
NLASTROW ~ (UBOUND + 1 - LBOUND ) MOD 6 ; 00603300
|
|
ADD ~ ADDRESS ; 00603400
|
|
FOR I ~ 0 STEP 6 UNTIL NPROWS DO 00603500
|
|
BEGIN 00603600
|
|
TABLEDIT(ADD,A[I+LBOUND],BUFFER,6) ; 00603700
|
|
ADD ~ ADD + 6 ; 00603800
|
|
IF WORDEQUAL(OLDBUFFER[1],BUFFER[1],14) THEN 00603900
|
|
BEGIN 00604000
|
|
IF NOT SAMELINE THEN WRITE(FILENAME,ASTER) ; 00604100
|
|
SAMELINE ~TRUE ; 00604200
|
|
END ELSE 00604300
|
|
BEGIN 00604400
|
|
WRITE(FILENAME,15,BUFFER[*]) ; SAMELINE ~ FALSE ; 00604500
|
|
END ; 00604600
|
|
MOVEWORDS(BUFFER,OLDBUFFER,15) ; 00604700
|
|
CLEAR(BUFFER,14) ; 00604800
|
|
END ; 00604900
|
|
IF NLASTROW !0 THEN 00605000
|
|
BEGIN 00605100
|
|
CLEAR(BUFFER,14) ; 00605200
|
|
TABLEDIT(ADD,A[(NPROWS+6) +LBOUND],BUFFER,NLASTROW) ; 00605300
|
|
WRITE(FILENAME,15,BUFFER[*]) ; 00605400
|
|
END ; 00605500
|
|
END DUMPARRAYROW ; 00605600
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00605700
|
|
PROCEDURE DUMPARRAYS ; 00605800
|
|
COMMENT DUMPS MOST OF ARRAYS IN PROGRAM ; 00605900
|
|
BEGIN 00606000
|
|
INTEGER LASTROW,II ; 00606100
|
|
ARRAY PRTARRAY[0:511] ; 00606200
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"DUMPAR","RATS ") ;00606300
|
|
WRITE(PRINT[PAGE],15,BLANKARRAY[*]) ; 00606400
|
|
WRITE(PRINT[DBL],15,HEADING[*]) ; 00606500
|
|
MOVEWORDS(PRT,PRTARRAY,500) ; 00606600
|
|
DUMPARRAYROW(PRTARRAY,0,500,21,PRINT,"PRTARR","AY "); 00606700
|
|
DUMPARRAYROW (PAGENUM,0,14,0,PRINT,"PAGENU","M "); 00606800
|
|
DUMPARRAYROW(WORDBUF,0,15,0,LINE,"WORDBU","F "); 00606900
|
|
DUMPARRAYROW(OLDBUF,0,15,0,LINE,"OLDBUF"," "); 00607000
|
|
DUMPARRAYROW(PAGES,0,PAGEPOINT,0,LINE,"PAGES "," "); 00607100
|
|
DUMPARRAYROW (CONTBUF,0,15,0,PRINT,"CONTBU","F "); 00607200
|
|
DUMPARRAYROW(RESERVED,0,250,0,PRINT,"RESERV","ED ") ; 00607300
|
|
DUMPARRAYROW ( RESTACK,0,63,0,PRINT, "RESTAC","K "); 00607400
|
|
DUMPARRAYROW(STACK,0,63,0,PRINT,"STACK "," ") ; 00607500
|
|
LASTROW ~ PP.[33:6]; 00607600
|
|
FOR II ~ 0 STEP 1 UNTIL LASTROW DO 00607700
|
|
DUMPARRAYROW(TABLE[II,*],0,511,II|512,PRINT, 00607800
|
|
"TABLE "," ") ; 00607900
|
|
LASTROW ~ LASTSEQLINK.[33:6] ; 00608000
|
|
FOR II ~ 0 STEP 1 UNTIL LASTROW DO 00608100
|
|
DUMPARRAYROW(SEQLINKS[II,*],0,511,II|512,PRINT, 00608200
|
|
"SEQLIN","KS ") ; 00608300
|
|
LASTROW ~ LASTCURSEQ.[33:6] ; 00608400
|
|
FOR II ~ 0 STEP 1 UNTIL LASTROW DO 00608500
|
|
DUMPARRAYROW(CURSEQ[II,*],0,511,II|512,PRINT, 00608600
|
|
"CURSEQ"," ") ; 00608700
|
|
LASTROW ~ BEGINDEX.[36:6] ; 00608800
|
|
FOR II ~ 0 STEP 1 UNTIL LASTROW DO 00608900
|
|
DUMPARRAYROW(PAIRSEQ[II,*],0,63,II|64,PRINT, 00609000
|
|
"PAIRSE","Q ") ; 00609100
|
|
DUMPARRAYROW(CASTBUFF,0,56,0,PRINT,"CASTBU","FF ") ; 00609200
|
|
FOR II ~ 0 STEP 1 UNTIL 3 DO 00609300
|
|
DUMPARRAYROW(CASTDIR[II,*],0,56,II|56,PRINT,"CASTDI", 00609400
|
|
"R ") ; 00609500
|
|
DUMPARRAYROW(CASTLINKS,0,150,0,PRINT,"CASTLI","NKS ") ; 00609600
|
|
DUMPARRAYROW(NAMEBUFF,0,15,0,PRINT,"NAMEBU","FF ") ; 00609700
|
|
DUMPARRAYROW(LASTCASTID,0,14,0,PRINT,"LASTCA","STID ") ; 00609800
|
|
DUMPARRAYROW(FIRSTCASTID,0,14,0,PRINT,"FIRSTC", 00609900
|
|
"ASTID ") ; 00610000
|
|
DUMPARRAYROW(TALLIES,0,63,0,PRINT,"TALLIE","S ") ; 00610100
|
|
DUMPARRAYROW(HEADING,0,15,0,PRINT,"HEADIN","G ") ; 00610200
|
|
DUMPARRAYROW(DOCDEFLINKS,0,100,0,PRINT,"DOCDEF","LINKS ");00610300
|
|
FOR II ~ 0 STEP 1 UNTIL NDOCDEFS DO 00610400
|
|
DUMPARRAYROW(DOCDEFINES[DOCDEFLINKS[II],*],0,10,0, 00610500
|
|
PRINT,"DOCDEF","INES ") ; 00610600
|
|
END DUMPARRAYS ; 00610700
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00610800
|
|
PROCEDURE BUILDRESERVED ; 00610900
|
|
COMMENT BUILDS A NEW RESERVED WORD ARRAY TO BE PUNCHED OUT ; 00611000
|
|
BEGIN 00611100
|
|
INTEGER SINDEX,NWORDS ; 00611200
|
|
SINDEX ~ Q.[18:6] ; 00611300
|
|
NWORDS ~ IF COUNT { 5 THEN 1 ELSE ((COUNT-6) DIV 8 + 2) ; 00611400
|
|
MOVEWORDS(ACCUM[1],RESERVED[RR+1],NWORDS) ; 00611500
|
|
RESERVED[RR].TABLINK ~ RESTACK[SINDEX] ; 00611600
|
|
RESTACK[SINDEX] ~ RR ; 00611700
|
|
RESERVED[RR].TYPLINK ~ BRESTYPE ; 00611800
|
|
RR ~ RR + NWORDS + 1 ; 00611900
|
|
END BUILDRESERVED ; 00612000
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00612100
|
|
PROCEDURE PUNCHRESERVEDFILLSTATEMENTS ; 00612200
|
|
COMMENT PUNCHES OUT NEW RESERVED TABLE FILL STATEMENT; 00612300
|
|
BEGIN 00612400
|
|
FORMAT FFILL(X14,"FILL RESERVED[*] WITH ",I4,",") ; 00612500
|
|
INTEGER NWORDS,I,STARTSEQ,TEMP ; 00612600
|
|
SAVE ARRAY FILLBUFF[0:14] ; 00612700
|
|
FORMAT FSTACK(X14,"FILL RESTACK[*] WITH " / 00612800
|
|
8(X14,8(I5,A1)/)) ; 00612900
|
|
LIST LSTACK(FOR I ~ 0 STEP 1 UNTIL 62 DO [RESTACK[I],","], 00613000
|
|
RESTACK[63],";") ; 00613100
|
|
COMMENT DOCUMENT* 31 * * * * * * * * * * * * * * * * * * * * * * * * *; 00613200
|
|
STREAM PROCEDURE OCTRAN(SOURCE,DEST) ; 00613300
|
|
COMMENT EDITS CARD INTO LEGAL ALGOL WITH COMMENT SHOWING BCD ; 00613400
|
|
BEGIN 00613500
|
|
SI ~ SOURCE ; DI ~ DEST ; 00613600
|
|
DI ~ DI - 2 ; DS ~ 3 LIT "OCT" ; 00613700
|
|
16( 3( DS ~ 1 RESET ) ; 3 ( IF SB THEN DS ~ 1 SET ELSE 00613800
|
|
DS ~ 1 RESET ; SKIP 1 SB )) ; 00613900
|
|
DS ~ 8 LIT " , % " ; 00614000
|
|
SI ~ SOURCE ; DS ~ 8 CHR ; 00614100
|
|
END OCTRAN ; 00614200
|
|
WRITE(PRINT,FFILL,RESERVED[0]) ; 00614300
|
|
IF BUILDPUNCHTOG THEN 00614400
|
|
WRITE(PUNCH,FFILL,RESERVED[0]) ; 00614500
|
|
NWORDS ~ RR - 1 ; 00614600
|
|
FOR I ~ 1 STEP 1 UNTIL NWORDS DO 00614700
|
|
BEGIN 00614800
|
|
CLEAR(FILLBUFF,14) ; 00614900
|
|
OCTRAN(RESERVED[I],FILLBUFF[2]) ; 00615000
|
|
FOR IJUNK ~ 1 STEP 1 UNTIL 8 DO 00615100
|
|
IF CHECKCHAR(FILLBUFF[5],IJUNK,12) THEN 00615200
|
|
SETCHAR(FILLBUFF[5],IJUNK," ") ; 00615300
|
|
IF I = NWORDS THEN SETCHAR(FILLBUFF[2],19,";") ; 00615400
|
|
WRITE(PRINT,15,FILLBUFF[*]) ; 00615500
|
|
IF BUILDPUNCHTOG THEN 00615600
|
|
WRITE(PUNCH,10,FILLBUFF[*]) ; 00615700
|
|
END ; 00615800
|
|
WRITE(PRINT[DBL],FSTACK,LSTACK) ; 00615900
|
|
IF BUILDPUNCHTOG THEN WRITE(PUNCH,FSTACK,LSTACK) ; 00616000
|
|
END PUNCHRESERVEDFILLSTATEMENTS ; 00616100
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00616200
|
|
PROCEDURE PUNCHRESERVEDEFINES ; 00616300
|
|
COMMENT CREATES DEFINES REFERENCING TABLE TYPE ; 00616400
|
|
BEGIN 00616500
|
|
FORMAT FDEFINE("DEFINE") ; 00616600
|
|
INTEGER NEXT,NCHAR,TYPE,STARTSEQ ; 00616700
|
|
SAVE ARRAY DEFBUFF[0:14] ; 00616800
|
|
LABEL REDO ; 00616900
|
|
INTEGER I ; 00617000
|
|
LABEL RET ; 00617100
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * *; 00617200
|
|
STREAM PROCEDURE TRANSFER(SOURCE,DEST,NCHAR,TYPE) ; 00617300
|
|
VALUE NCHAR ; 00617400
|
|
COMMENT CREATES A NAME FOR THE DEFINE ; 00617500
|
|
BEGIN 00617600
|
|
SI ~ SOURCE ; SI ~ SI + 3 ; 00617700
|
|
DI ~ DEST ; DI ~ DI - 2 ; 00617800
|
|
DS ~ NCHAR CHR ; DS ~ 4 LIT "V = " ; 00617900
|
|
SI ~ TYPE ; DS ~ 3 DEC ; DS ~ 4 LIT " # ," ; 00618000
|
|
END TRANSFER ; 00618100
|
|
WRITE(PRINT,FDEFINE) ; 00618200
|
|
IF BUILDPUNCHTOG THEN WRITE(PUNCH,FDEFINE) ; 00618300
|
|
FOR I ~ 0 STEP 1 UNTIL 63 DO 00618400
|
|
BEGIN 00618500
|
|
NEXT ~ RESTACK[I] ; 00618600
|
|
IF NEXT = 0 THEN GO TO RET ; 00618700
|
|
REDO: CLEAR(DEFBUFF,14) ; 00618800
|
|
NCHAR ~ RESERVED[NEXT+1].[12:6] ; 00618900
|
|
TYPE ~ RESERVED[NEXT].TYPLINK ; 00619000
|
|
TRANSFER(RESERVED[NEXT+1],DEFBUFF[2],NCHAR,TYPE) ; 00619100
|
|
NEXT ~ RESERVED[NEXT].TABLINK ; 00619200
|
|
WRITE(PRINT,15,DEFBUFF[*]) ; 00619300
|
|
IF BUILDPUNCHTOG THEN 00619400
|
|
WRITE(PUNCH,10,DEFBUFF[*]) ; 00619500
|
|
IF NEXT ! 0 THEN GO TO REDO ; 00619600
|
|
RET: 00619700
|
|
END ; 00619800
|
|
END PUNCHRESERVEDEFINES ; 00619900
|
|
COMMENT DOCUMENT* 5 * * * * * * * * * * * * * * * * * * * * * * * * * 00620000
|
|
E. ERROR PROCEDURES. 00620100
|
|
* END; 00620200
|
|
COMMENT DOCUMENT* 23 * * * * * * * * * * * * * * * * * * * * * * * * * ;00620300
|
|
PROCEDURE DOCERROR(N) ; 00620400
|
|
VALUE N ; 00620500
|
|
INTEGER N ; 00620600
|
|
COMMENT ERROR PROCEDURE: COUNTS ERRORS AND WRITES MESSAGES ; 00620700
|
|
BEGIN 00620800
|
|
ALPHA S1,S2 ; 00620900
|
|
COMMENT DOCUMENT* 31 * * * * * * * * * * * * * * * * * * * * * * * * ; 00621000
|
|
STREAM PROCEDURE SEQSPLIT(SEQ,S1,S2) ; 00621100
|
|
COMMENT FORMATS REFERENCE TO LAST ERROR ; 00621200
|
|
BEGIN 00621300
|
|
SI ~ SEQ ; DI ~ S1 ; DI ~ DI + 4 ; DS ~ 4 CHR ; 00621400
|
|
DI ~ S2 ; DI ~ DI + 4 ; DS ~ 4 CHR ; 00621500
|
|
END SEQSPLIT ; 00621600
|
|
FORMAT TOTALERRORS(2("****"),X2,"NUMBER OF ERRORS DETECTED=",I4, 00621700
|
|
X2,"LAST ERROR",X2,2A4,X2,2("****")) , 00621800
|
|
LASTDOCER(X80,2A4,X22,"LAST ERROR") ; 00621900
|
|
COMMENT FORMATS WITHOUT TEXT ARE FREE FOR NEW USE ; 00622000
|
|
SWITCH FORMAT DOCERR ~ (/) 00622100
|
|
,(X8 ," 1 LAST PRINT COL OUT OF RANGE SET=72 ",X40,2A4,X16,2("XXXX")) 00622200
|
|
,(X8 ," 2 MISSING DEFINE INDEX ",X40,2A4,X16,2("XXXX")) 00622300
|
|
,(X8 ," 3 DEFINE INDEX > 100 ",X40,2A4,X16,2("XXXX")) 00622400
|
|
,(X8 ," 4 THIS INDEX HAS NOT BEEN DEFINED ",X40,2A4,X16,2("XXXX")) 00622500
|
|
,(X8 ," 5 MISSING = IN DEFINE ",X40,2A4,X16,2("XXXX")) 00622600
|
|
,(X8 ," 6 TABULATE COL OUT OF RANGE ",X40,2A4,X16,2("XXXX")) 00622700
|
|
,(X8 ," 7 TAB COL { LAST TAB COL ",X40,2A4,X16,2("XXXX")) 00622800
|
|
,(X8 ," 8 INDENT VALUE TOO LARGE ",X40,2A4,X16,2("XXXX")) 00622900
|
|
,(X8 ," 9 MISSING LEFT FIELD BIT DEFINITION ",X40,2A4,X16,2("XXXX")) 00623000
|
|
,(X8 ," 10 MISSING FIELD LENGTH DEFINITION ",X40,2A4,X16,2("XXXX")) 00623100
|
|
,(X8 ," 11 MISSING , OR . AFTER # ",X40,2A4,X16,2("XXXX")) 00623200
|
|
,(X8, " 12 TOO MANY ESCAPE CHRS REQUESTED ",X40,2A4,X16,2("XXXX")) 00623300
|
|
,(X8 ," 13 MISSING COLON ",X40,2A4,X16,2("XXXX")) 00623400
|
|
,(X8 ," 14 LEFT FIELD OVERLAP ",X40,2A4,X16,2("XXXX")) 00623500
|
|
,(X8 ," 15 RIGHT FIELD OVERLAP > 48 ",X40,2A4,X16,2("XXXX")) 00623600
|
|
,(X18 " 16 INVALID TABHEAD LINE POSITION ",X40,2A4,X16,2("XXXX")) 00623700
|
|
,(X8 ," 17 LEFT FIELD OVERFLOW IN FORMAT ",X40,2A4,X16,2("XXXX")) 00623800
|
|
,(X8 ," 18 MISSING * TO CLOSE DEFINE DEFINITION",X40,2A4,X16,2("XXXX")) 00623900
|
|
,(X8 ," 19 CARD SEQUENCE ERROR ",X40,2A4,X16,2("XXXX")) 00624000
|
|
,(X8 ," 20 TAPE SEQUENCE ERROR ",X40,2A4,X16,2("XXXX")) 00624100
|
|
,(X8, " 21 RIDICULOUS LINE COUNT REQUESTED ",X40,2A4,X16,2("XXXX")) 00624200
|
|
,(X8, " 22 ",X40,2A4,X16,2("XXXX")) 00624300
|
|
,(X8, " 23 MISSING REVISION LETTER ",X40,2A4,X16,2("XXXX")) 00624400
|
|
,(X8, " 24 VOID NOT ALLOWED ON * CARD ",X40,2A4,X16,2("XXXX")) 00624500
|
|
,(X8 ," 25 SEQ NUMBER NOT ON INPUT TAPE ",X40,2A4,X16,2("XXXX")) 00624600
|
|
,(X8 ," 26 NEW SEQ { LAST SEQ OF LAST BATCH ",X40,2A4,X16,2("XXXX")) 00624700
|
|
,(X8 ," 27 THIS END HAS NO BEGIN ",X40,2A4,X16,2("XXXX")) 00624800
|
|
,(X8 ," 28 BNF IDENTIFIER GREATER THAN 62 CHAR ",X40,2A4,X16,2("XXXX")) 00624900
|
|
,(X8 ," 29 BNF IDENTIFIER RIGHT > MISSING ",X40,2A4,X16,2("XXXX")) 00625000
|
|
,(X8 ," 30 INSERTPAGE NOT ALLOWED WITH PAGE ",X40,2A4,X16,2("XXXX")) 00625100
|
|
,(X8, " 31 PRINTALL NOT ALLOWED WITH BACKUP ",X40,2A4,X16,2("XXXX")) 00625200
|
|
,( X8," 32 PAGE MUST BE AN INTEGER ",X40,2A4,X16,2("XXXX")) 00625300
|
|
,(X8," 33 PAGING OCCURS AT A BLANK SEQ NO. ",X40,2A4,X16,2("XXXX")) 00625400
|
|
,(X8, " 34 PAGING OCCURS IN MIDDLE OF PATTERN ",X40,2A4,X16,2("XXXX")) 00625500
|
|
,(X8, " 35 TAB HEAD COUNT TOO LARGE ",X40,2A4,X16,2("XXXX")) 00625600
|
|
,(X8, " 36 TOO MANY CHARS FOR TABFIELD ",X40,2A4,X16,2("XXXX")) 00625700
|
|
,(X8, " 37 INSUFFICIENT FILE INFORMATION ",X40,2A4,X16,2("XXXX")) 00625800
|
|
,(X8, " 38 MISSING <INPUT PART> ",X40,2A4,X16,2("XXXX")) 00625900
|
|
,(X8, " 39 MISSING COMMA AFTER FIRST IDENTIFIER",X40,2A4,X16,2("XXXX")) 00626000
|
|
,(X8, " 40 MULTIFILE NAMES NOT THE SAME ",X40,2A4,X16,2("XXXX")) 00626100
|
|
; 00626200
|
|
SWITCH FORMAT FERROR ~ (/) 00626300
|
|
,(X8 ," 1 NO SPACE AFTER A,B, OR C ",X40,2A4,X16,2("XXXX")) 00626400
|
|
,(X8 ," 2 NO A,B OR C ON CAST $ CARD ",X40,2A4,X16,2("XXXX")) 00626500
|
|
,(X8 ," 3 NO SUCH ENTRY IN THE CAST DIRECTORY ",X40,2A4,X16,2("XXXX")) 00626600
|
|
,(X8 ," 4 MISSING TO ON $ CARD ",X40,2A4,X16,2("XXXX")) 00626700
|
|
,(X8 ," 5 FIRST LETTER TO XREF IN ERROR ",X40,2A4,X16,2("XXXX")) 00626800
|
|
,(X8 ," 6 LAST LETTER TO XREF IN ERROR ",X40,2A4,X16,2("XXXX")) 00626900
|
|
,(X8 ," 7 MISSING $ IN COL 2 OF CONT CARD ",X40,2A4,X16,2("XXXX")) 00627000
|
|
,(X8 ," 8 RESEQUENCE NOT ALLOWED WITH CAST ALL",X40,2A4,X16,2("XXXX")) 00627100
|
|
,(X8, " 9 DOCUMENT NOT ALLOWED WITH NEW ",X40,2A4,X16,2("XXXX")) 00627200
|
|
,(X8, " 10 NUMBER OF DOCUMENT PAGES > 1022 ",X40,2A4,X16,2("XXXX")) 00627300
|
|
,(X8 ," 11 XREF AND NAMES NOT ALLOWED TOGETHER ",X40,2A4,X16,2("XXXX")) 00627400
|
|
,(X8 ," 12 PROCEDURE AND NAMES NOT ALLOWED TOG.",X40,2A4,X16,2("XXXX")) 00627500
|
|
,(X8, " 13 ",X40,2A4,X16,2("XXXX")) 00627600
|
|
,(X8," 14 MISSING *QUIT FOR DOCUMENT OR FLOW",X40,2A4,X16, 2("XXXX")) 00627700
|
|
,(X8 ," 15 MISSING SEQ NUMBER AFTER VOID ",X40,2A4,X16,2("XXXX")) 00627800
|
|
,(X8 ," 16 MISSING CARD,TAPE,CAST,BACKUP,COPY ",X40,2A4,X16,2("XXXX")) 00627900
|
|
,(X8 ," 17 MISSING START SEQ NUMBER ",X40,2A4,X16,2("XXXX")) 00628000
|
|
,(X8 ," 18 MISSING <TO END> AFTER <ALL> ",X40,2A4,X16,2("XXXX")) 00628100
|
|
,(X8 ," 19 MISSING CAST OR TAPE AFTER COPY ",X40,2A4,X16,2("XXXX")) 00628200
|
|
,(X8 ," 20 ",X40,2A4,X16,2("XXXX")) 00628300
|
|
,(X8 ," 21 SHUFFLE ALLOWED ONLY WITH $ TAPE ",X40,2A4,X16,2("XXXX")) 00628400
|
|
,(X8 ," 22 MISSING MULTIFILE IDENTIFIER ",X40,2A4,X16,2("XXXX")) 00628500
|
|
,(X8 ," 23 MULTIFILE IDENT > 7 CHARACTERS ",X40,2A4,X16,2("XXXX")) 00628600
|
|
,(X8 ," 24 ONLY NEW MULTIFILE WITH CAST ALL ",X40,2A4,X16,2("XXXX")) 00628700
|
|
,(X8 ," 25 LISTBACKUP AND FLOW NOT ALLOWED ",X40,2A4,X16,2("XXXX")) 00628800
|
|
,(X8 ," 26 LISTBACKUP AND DOCUMENT NOT ALLOWED ",X40,2A4,X16,2("XXXX")) 00628900
|
|
,(X8 ," 27 LISTBACKUP AND BLOCK NOT ALLOWED ",X40,2A4,X16,2("XXXX")) 00629000
|
|
,(X8, " 28 ",X40,2A4,X16,2("XXXX")) 00629100
|
|
,(X8, " 29 DOCUMENT REVISION LETTER TOO HIGH ",X40,2A4,X16,2("XXXX")) 00629200
|
|
,(X8, " 30 MISSING DISK OR TAPE AFTER MAKEMULTI",X40,2A4,X16,2("XXXX")) 00629300
|
|
,(X8, " 31 FILE IDENT STARTS WITH SPECIAL CHAR ",X40,2A4,X16,2("XXXX")) 00629400
|
|
,(X8, " 32 TOO MANY <SELECTIVE XREF CONTROLS> ",X40,2A4,X16,2("XXXX")) 00629500
|
|
,(X8, " 33 BLANK CARD NEEDED BEFORE $ VOID ",X40,2A4,X16,2("XXXX")) 00629600
|
|
,(X8, " 34 THIS VOID SHOULD BE ON MAIN $ CARD ",X40,2A4,X16,2("XXXX")) 00629700
|
|
,(X8, " 35 TOO MANY SEGMENTS REQUESTED ",X40,2A4,X16,2("XXXX")) 00629800
|
|
,(X8, " 36 NO SEGMENTS REQUESTED ",X40,2A4,X16,2("XXXX")) 00629900
|
|
,(X8, " 37 INVALID SEGMENT NUMBER OR SPAN ",X40,2A4,X16,2("XXXX")) 00630000
|
|
,(X8, " 38 $ PATCHTAPE TAPEPATCHES NOT ALOOWED ",X40,2A4,X16,2("XXXX")) 00630100
|
|
,(X8, " 39 MISSING * OR $ ",X40,2A4,X16,2("XXXX")) 00630200
|
|
; 00630300
|
|
SWITCH FORMAT FLOWERR ~ (/) 00630400
|
|
,(X8 ," 1 MISPLACED START ",X40,2A4,X16,2("XXXX")) 00630500
|
|
,(X8 ," 2 MISSING END ",X40,2A4,X16,2("XXXX")) 00630600
|
|
,(X8 ," 3 PREVIOUS SECTION NOT CLOSED WITH END",X40,2A4,X16,2("XXXX")) 00630700
|
|
,(X8 ," 4 THIS END HAS NO BEGIN ",X40,2A4,X16,2("XXXX")) 00630800
|
|
,(X8 ," 5 MISPLACED HEADING ",X40,2A4,X16,2("XXXX")) 00630900
|
|
,(X8 ," 6 MISPLACED TITLE ",X40,2A4,X16,2("XXXX")) 00631000
|
|
,(X8 ," 7 BOX MAY NOT START WITH YES OR TRUE ",X40,2A4,X16,2("XXXX")) 00631100
|
|
,(X8 ," 8 BOX MAY NOT START WITH NO OR FALSE ",X40,2A4,X16,2("XXXX")) 00631200
|
|
,(X8 ," 9 BOX MAY NOT START WITH TO ",X40,2A4,X16,2("XXXX")) 00631300
|
|
,(X8 ," 10 LABEL IS NOT AN IDENTIFIER IN GO TO ",X40,2A4,X16,2("XXXX")) 00631400
|
|
,(X8 ," 11 MISSING COLON AFTER LABEL ",X40,2A4,X16,2("XXXX")) 00631500
|
|
,(X8 ," 12 SOME BODY GOOFED SEE AUTHOR ",X40,2A4,X16,2("XXXX")) 00631600
|
|
,(X8 ," 13 TITLE OR HEADING TOO LONG ",X40,2A4,X16,2("XXXX")) 00631700
|
|
,(X8 ," 14 CONTENTS OF BOX TOO LONG ",X40,2A4,X16,2("XXXX")) 00631800
|
|
,(X8 ," 15 MISSING LABEL AFTER GO TO ",X40,2A4,X16,2("XXXX")) 00631900
|
|
,(X8 ," 16 MISSING GO TO OR RT PAREN IN TESTBOX",X40,2A4,X16,2("XXXX")) 00632000
|
|
,(X8, " 17 MISSING COMMA,SEMICOLON OR ASTERISK ",X40,2A4,X16,2("XXXX")) 00632100
|
|
,(X8 ," 18 MISSING PAGE # IN PAGEID BOX ",X40,2A4,X16,2("XXXX")) 00632200
|
|
,(X8 ," 19 MISSING COMMA IN PAGEID BOX ",X40,2A4,X16,2("XXXX")) 00632300
|
|
,(X8 ," 20 MISSING PAGEID STRING ",X40,2A4,X16,2("XXXX")) 00632400
|
|
,(X8 ," 21 MAXCOL OUT OF RANGE ",X40,2A4,X16,2("XXXX")) 00632500
|
|
,(X8 ," 22 MISSING START IN FLOW CHART ",X40,2A4,X16,2("XXXX")) 00632600
|
|
,(X8, " 23 MISSING GO TO IN SWITCH BOX ",X40,2A4,X16,2("XXXX")) 00632700
|
|
,(X8 ," 24 MISSING BEGIN IN FLOW CHART ",X40,2A4,X16,2("XXXX")) 00632800
|
|
,(X8, " 25 ",X40,2A4,X16,2("XXXX")) 00632900
|
|
,(X8 ," 26 ITEM GREATER THAN BOX WIDTH ",X40,2A4,X16,2("XXXX")) 00633000
|
|
,(X8, " 27 ",X40,2A4,X16,2("XXXX")) 00633100
|
|
,(X8, " 28 ",X40,2A4,X16,2("XXXX")) 00633200
|
|
,(X8 ," 29 MISSING LABEL INDEX ",X40,2A4,X16,2("XXXX")) 00633300
|
|
,(X8 ," 30 LABEL INDEX > 3 DIGITS ",X40,2A4,X16,2("XXXX")) 00633400
|
|
,(X8 ," 31 MISSING RIGHT PAREN ",X40,2A4,X16,2("XXXX")) 00633500
|
|
,(X8, " 32 EXTRA GO TO GENSYM ",X40,2A4,X16,2("XXXX")) 00633600
|
|
,(X8 ," 33 BOX MAY NOT BEGIN WITH ELSE ",X40,2A4,X16,2("XXXX")) 00633700
|
|
,(X8 ," 34 TEST BOX MISSING CONDITION (EG YES) ",X40,2A4,X16,2("XXXX")) 00633800
|
|
,(X8 ," 35 MISSING *QUIT. MAY BE EXTRA RT PAREN",X40,2A4,X16,2("XXXX")) 00633900
|
|
,(X8, " 36 PAGING OCCURS IN SWITCH ",X40,2A4,X16,2("XXXX")) 00634000
|
|
; 00634100
|
|
BOOLEAN TEMP; 00634200
|
|
TEMP ~ DOCOUTPUT; DOCOUTPUT ~ FALSE; 00634300
|
|
IF N = 0 THEN 00634400
|
|
BEGIN 00634500
|
|
SEQSPLIT(LASTERROR,S1,S2) ; 00634600
|
|
WRITE(PRINT[DBL],TOTALERRORS,DOCER,S1,S2) ; 00634700
|
|
END ELSE 00634800
|
|
BEGIN 00634900
|
|
DOCER ~ DOCER + 1 ; 00635000
|
|
SEQSPLIT(SEQ,S1,S2) ; 00635100
|
|
IF N > 200 THEN 00635200
|
|
WRITE (ZAR[*],FLOWERR[N-200],S1,S2) ELSE 00635300
|
|
IF N > 100 THEN 00635400
|
|
BEGIN 00635500
|
|
WRITE(ZAR[*],FERROR[N-100],S1,S2) ; 00635600
|
|
END ELSE 00635700
|
|
WRITE (ZAR[*],DOCERR[N],S1,S2); 00635800
|
|
IF ZLB = 0 OR ZLB = 2 THEN ZPL(ZLB,2,ZAR[*]) 00635900
|
|
ELSE WRITE (PRINT[DBL],15,ZAR[*]); 00636000
|
|
IF DOCER > 1 THEN 00636100
|
|
BEGIN 00636200
|
|
SEQSPLIT(LASTERROR,S1,S2) ; 00636300
|
|
WRITE( ZAR[*],LASTDOCER ,S1,S2); 00636400
|
|
IF ZLB = 0 OR ZLB = 2 THEN ZPL(ZLB,2,ZAR[*]) 00636500
|
|
ELSE WRITE (PRINT[DBL],15,ZAR[*]); 00636600
|
|
END ; 00636700
|
|
MOVEWORDS( SEQ,LASTERROR,1) ; 00636800
|
|
END ; 00636900
|
|
DOCOUTPUT ~ TEMP; 00637000
|
|
END DOCERROR ; 00637100
|
|
COMMENT DOCUMENT* 23 * * * * * * * * * * * * * * * * * * * * * * * * *; 00637200
|
|
PROCEDURE ERROR(N); 00637300
|
|
VALUE N ; 00637400
|
|
INTEGER N ; 00637500
|
|
COMMENT CALLS DOCERROR AND KILLS JOB ; 00637600
|
|
BEGIN 00637700
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"ERROR "," ") ;00637800
|
|
WRITE(PRINT[DBL],15,GLOBE[*]) ; 00637900
|
|
DOCERROR(N+100) ; 00638000
|
|
IF CARDSOPEN THEN 00638100
|
|
DO READ(CARDS)[EOPROG] UNTIL FALSE ; 00638200
|
|
GO TO EOPROG ; 00638300
|
|
END ERROR ; 00638400
|
|
COMMENT DOCUMENT* 23 * * * * * * * * * * * * * * * * * * * * * * * * ; 00638500
|
|
PROCEDURE FLOWERROR(N) ; 00638600
|
|
VALUE N ; 00638700
|
|
INTEGER N ; 00638800
|
|
COMMENT CALLS DOCERROR ; 00638900
|
|
BEGIN 00639000
|
|
IF NOT DOCLISTOG THEN 00639100
|
|
WRITE(PRINT[DBL],15,GLOBE[*]) ; 00639200
|
|
DOCERROR(N+200) ; 00639300
|
|
END FLOWERROR ; 00639400
|
|
COMMENT DOCUMENT* 5 * * * * * * * * * * * * * * * * * * * * * * * * * 00639500
|
|
F. PROCEDURES FOR PROCESSING CAST FILES. 00639600
|
|
* END; 00639700
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00639800
|
|
PROCEDURE FILLCASTLINKS ; 00639900
|
|
COMMENT FORMATS INFO FROM CAST DIRECTORY INTO THE ARRAY CASTLINKS; 00640000
|
|
BEGIN 00640100
|
|
INTEGER POS,TEMPSEQ,IDCOUNT,I,ROW,NEXTCOUNT,CHARPOS ; 00640200
|
|
INTEGER WORD,CIND ; 00640300
|
|
LABEL EXIT,NEXT ; 00640400
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * *; 00640500
|
|
STREAM PROCEDURE TRANSFER(WORD,CHAR,IDCOUNT,TSEQ,NEXTCOUNT); 00640600
|
|
VALUE CHAR,IDCOUNT ; 00640700
|
|
COMMENT PICKS OFF SEQUENCE NUMBER FOR THIS FILE ; 00640800
|
|
BEGIN 00640900
|
|
SI ~ WORD ; SI ~ SI + CHAR ; SI ~ SI + IDCOUNT ; 00641000
|
|
DI ~ TSEQ ; DI ~ DI + 5 ; DS ~ 3 CHR ; 00641100
|
|
DI ~ NEXTCOUNT ; DI ~ DI + 7 ; DS ~ CHR ; 00641200
|
|
END TRANSFER ; 00641300
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"FILLCA","STLINK") ;00641400
|
|
REWIND(CASTSW[CASTINDEX]) ; 00641500
|
|
ROW ~ 1 ; POS ~ 9 ; CIND ~ 0 ; 00641600
|
|
READ(CASTSW[CASTINDEX],56,CASTDIR[ROW,*]) ; 00641700
|
|
CASTAINDEX ~ CASTDIR[1,0] ; 00641800
|
|
FOR I ~ 2 STEP 1 UNTIL CASTDIR[1,0] DO 00641900
|
|
READ(CASTSW[CASTINDEX],56,CASTDIR[I,*]) ; 00642000
|
|
MOVECHARS(CASTDIR[1,1],NEXTCOUNT,0,7,1); 00642100
|
|
NEXT: IDCOUNT ~ NEXTCOUNT ; 00642200
|
|
WORD ~ POS DIV 8 ; CHARPOS ~ POS.[45:3] ; 00642300
|
|
TRANSFER(CASTDIR[ROW,WORD],CHARPOS,IDCOUNT,TEMPSEQ, 00642400
|
|
NEXTCOUNT) ; 00642500
|
|
IF TEMPSEQ ! 0 THEN 00642600
|
|
BEGIN 00642700
|
|
CIND ~ CIND + 1 ; 00642800
|
|
CASTLINKS[CIND].[ 6:6] ~ ROW ; 00642900
|
|
CASTLINKS[CIND].[12:6] ~ WORD ; 00643000
|
|
CASTLINKS[CIND].[18:6] ~ CHARPOS ; 00643100
|
|
CASTLINKS[CIND].[24:6] ~ IDCOUNT ; 00643200
|
|
CASTLINKS[CIND].[30:18] ~ TEMPSEQ ; 00643300
|
|
END ; 00643400
|
|
POS ~ POS + IDCOUNT + 4 ; 00643500
|
|
IF IDCOUNT !0 THEN GO TO NEXT ; 00643600
|
|
IF IDCOUNT = 0 AND TEMPSEQ ! 0 THEN GO TO EXIT ; 00643700
|
|
ROW ~ ROW + 1 ; 00643800
|
|
MOVECHARS(CASTDIR[ROW,0],NEXTCOUNT,0,7,1) ; 00643900
|
|
POS ~ 1 ; GO TO NEXT ; 00644000
|
|
EXIT: 00644100
|
|
CASTLINKS[0] ~ CIND ; 00644200
|
|
END FILLCASTLINKS ; 00644300
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00644400
|
|
PROCEDURE READCAST ; 00644500
|
|
COMMENT GETS 10 WORD RECORD FROM CAST FILE, CHECKING FOR EOF ; 00644600
|
|
BEGIN 00644700
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"READCA","ST ") ;00644800
|
|
IF NCASTRECS < 0 THEN GO TO EOF ; 00644900
|
|
NCASTRECS ~ NCASTRECS - 1 ; 00645000
|
|
MOVEWORDS(CASTBUFF[CASTPOINT],TBUFF,10) ; 00645100
|
|
CASTPOINT ~ CASTPOINT + 11 ; 00645200
|
|
IF CASTPOINT = 56 THEN 00645300
|
|
BEGIN 00645400
|
|
CASTPOINT ~ 1 ; 00645500
|
|
READ(CASTSW[CASTINDEX],56,CASTBUFF[*]) ; 00645600
|
|
END ; 00645700
|
|
END READCAST ; 00645800
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00645900
|
|
INTEGER PROCEDURE FINDCASTID(FIRSTCASTID) ; 00646000
|
|
ARRAY FIRSTCASTID[0] ; 00646100
|
|
COMMENT CHECKS IF ID IS ON CAST FILE AND WHERE ; 00646200
|
|
BEGIN 00646300
|
|
INTEGER T ; 00646400
|
|
LABEL RET ; 00646500
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"FINDCA","STID ") ;00646600
|
|
FOR T ~ 1 STEP 1 UNTIL CASTLINKS[0] DO 00646700
|
|
IF CHAREQUAL(FIRSTCASTID[1],0,CASTDIR[CASTLINKS[T].[6:6] ,00646800
|
|
CASTLINKS[T].[12:6]], 00646900
|
|
CASTLINKS[T].[18:6],FIRSTCASTID[0].[42:6]) AND 00647000
|
|
FIRSTCASTID[0].[42:6]= CASTLINKS[T].[24:6] THEN 00647100
|
|
GO TO RET ; 00647200
|
|
ERROR(3) ; 00647300
|
|
RET: FINDCASTID ~ T ; 00647400
|
|
END FINDCASTID ; 00647500
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00647600
|
|
PROCEDURE PRINTCASTDIRECTORY ; 00647700
|
|
COMMENT FORMATS AND PRINTS CAST DIRECTORY ; 00647800
|
|
BEGIN 00647900
|
|
INTEGER T,TEMP,IDCOUNT ; 00648000
|
|
FORMAT DIRHEAD(X8,"CAST TAPE DIRECTORY") ; 00648100
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"PCASTD","IRECTR") ;00648200
|
|
ZPG(ZF) ; 00648300
|
|
WRITE(ZAR[*],DIRHEAD) ; 00648400
|
|
ZPL(ZF,2,ZAR) ; 00648500
|
|
FOR T ~ 1 STEP 1 UNTIL CASTLINKS[0] DO 00648600
|
|
BEGIN 00648700
|
|
CLEAR(LISTBUFFER,14) ; 00648800
|
|
TEMP ~ CASTLINKS[T].[30:18] ; 00648900
|
|
OCTTODEC(TEMP,LISTBUFFER[1]) ; 00649000
|
|
IDCOUNT ~ CASTLINKS[T].[24:6] ; 00649100
|
|
IF IDCOUNT ! 0 THEN 00649200
|
|
MOVECHARS(CASTDIR[CASTLINKS[T].[6:6],CASTLINKS[T].[12:6]],00649300
|
|
LISTBUFFER[3],CASTLINKS[T].[18:6],0,IDCOUNT) ; 00649400
|
|
ZPL(ZF,2,LISTBUFFER); 00649500
|
|
END ; 00649600
|
|
CLEAR(LISTBUFFER,14) ; 00649700
|
|
ZPG(ZF) ; 00649800
|
|
END PRINTCASTDIRECTORY ; 00649900
|
|
COMMENT DOCUMENT* 5 * * * * * * * * * * * * * * * * * * * * * * * * * 00650000
|
|
G. MAIN CROSS-REFERENCING PROCEDURES. 00650100
|
|
* END; 00650200
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * *; 00650300
|
|
BOOLEAN PROCEDURE SORTSCRAMBLE ; 00650400
|
|
COMMENT TRUE IF THIS IDENTIFIER SHOULD BE XREF-ED. IF NOT BIGTOG, 00650500
|
|
CHECKS WHETHER ID IS ALREADY IN LIST, AND IF NOT ADDS IT ; 00650600
|
|
BEGIN 00650700
|
|
ALPHA TT; 00650800
|
|
INTEGER PRESCOUNT,PRES,NEXT,LAST,CASE,NWORDS,SCRAM,MAXCOUNT ; 00650900
|
|
LABEL LOOP,EXIT,MOVE ; 00651000
|
|
BOOLEAN BOOL ; 00651100
|
|
DEFINE PRESI = PRES.[33:6],PRES.[39:9] # , 00651200
|
|
LASTI = LAST.[33:6],LAST.[39:9] # ; 00651300
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"SORTSC","RAMBLE") ;00651400
|
|
SCRAM ~ Q.[18:6] ; BOOL ~ FALSE ; 00651500
|
|
TALLIES[SCRAM] ~ TALLIES[SCRAM] + 1 ; 00651600
|
|
IF NOT DOCTOG THEN 00651700
|
|
IF SCRAM < FIRSTCHAR OR SCRAM > LASTCHAR THEN GO TO EXIT ;00651800
|
|
IF NOT NAMETOG THEN 00651900
|
|
IF FINDCHAR(NCR,":") OR FINDCHAR(NCR,"~") THEN 00652000
|
|
LABELUSE ~TRUE ; 00652100
|
|
IF ASSIGNTOG AND NOT LABELUSE THEN GO TO EXIT ; 00652200
|
|
IF BNFTOG AND ASTERTOG THEN GO TO EXIT ; 00652300
|
|
TOTAL ~ TOTAL + 1 ; 00652400
|
|
PROCFLAG2 ~ PROCFLAG; 00652500
|
|
IF BIGTOG THEN IF NOT NAMETOG THEN 00652600
|
|
IF NOT PROCFLAG THEN 00652700
|
|
BEGIN 00652800
|
|
BOOL ~ TRUE; 00652900
|
|
GO TO EXIT; 00653000
|
|
END; 00653100
|
|
PRES ~ 0 ; NEXT ~ STACK[SCRAM] ; 00653200
|
|
LOOP: LAST ~ PRES ; PRES ~ NEXT ; 00653300
|
|
IF PRES = 0 THEN GO TO MOVE ; 00653400
|
|
NEXT ~ TABLE[PRESI].TABLINK ; 00653500
|
|
PRESCOUNT ~ TABLE[PRESI+1].[12:6] ; 00653600
|
|
MAXCOUNT ~ IF COUNT < PRESCOUNT THEN PRESCOUNT ELSE COUNT;00653700
|
|
MAXCOUNT ~ PRESCOUNT ; 00653800
|
|
IF CHAREQUAL(ACCUM[1],3,TABLE[PRESI+1],3,MAXCOUNT) THEN 00653900
|
|
BEGIN 00654000
|
|
IF COUNT !PRESCOUNT THEN GO TO LOOP ; 00654100
|
|
IF PROCFLAG THEN 00654200
|
|
BEGIN 00654300
|
|
IF TABLE[PRESI].PROCTAG ! 3 THEN 00654400
|
|
TABLE[PRESI].PROCTAG ~ TABLE[PRESI].PROCTAG + 1 ; 00654500
|
|
IF RESTYPE ! PROCEDUREV THEN 00654600
|
|
BEGIN 00654700
|
|
PROCFLAG ~ FALSE ; 00654800
|
|
PROCBLKFLAG ~ PROCDECFLAG ~ TRUE ; 00654900
|
|
NOPROC ~ NOPROC + 1 ; 00655000
|
|
END ; 00655100
|
|
END ; 00655200
|
|
TABINDEX ~ PRES ; BOOL ~TRUE ; GO TO EXIT ; 00655300
|
|
END ; 00655400
|
|
IF CHARGREAT(ACCUM[1],3,TABLE[PRESI+1],3,MAXCOUNT) THEN 00655500
|
|
GO TO LOOP ; 00655600
|
|
MOVE: 00655700
|
|
IF NAMETOG THEN GO TO EXIT ; 00655800
|
|
IF ( PROCTOG AND NOT PROCFLAG) OR 00655900
|
|
(BLOCKTOG AND NOT PROCFLAG) THEN GO TO EXIT ; 00656000
|
|
NWORDS ~ IF COUNT { 5 THEN 1 ELSE ((COUNT-6) DIV 8 + 2 ) ;00656100
|
|
IF PP.[39:9] + NWORDS + 1 > 511 THEN 00656200
|
|
BEGIN 00656300
|
|
PP.[33:6] ~ PP.[33:6] + 1 ; PP.[39:9] ~ 0 ; 00656400
|
|
END ELSE PP ~ PP + 1 ; 00656500
|
|
IF LAST = 0 THEN STACK[SCRAM] ~ PP 00656600
|
|
ELSE TABLE[LASTI].TABLINK ~ PP ; 00656700
|
|
TABLE[RC] ~ PRES ; 00656800
|
|
IF PROCFLAG THEN 00656900
|
|
BEGIN 00657000
|
|
IF TABLE[RC].PROCTAG ! 3 THEN 00657100
|
|
TABLE[RC].PROCTAG ~ TABLE[RC].PROCTAG + 1 ; 00657200
|
|
IF RESTYPE ! PROCEDUREV THEN 00657300
|
|
BEGIN 00657400
|
|
PROCFLAG ~ FALSE ; 00657500
|
|
PROCBLKFLAG ~ PROCDECFLAG ~ TRUE ; 00657600
|
|
NOPROC ~ NOPROC + 1 ; 00657700
|
|
END ; 00657800
|
|
END ; 00657900
|
|
TABINDEX ~ PP ; 00658000
|
|
BOOL ~ TRUE ; 00658100
|
|
MOVEWORDS(ACCUM[1],TABLE[RC+1],NWORDS) ; 00658200
|
|
CHARCOUNT ~ CHARCOUNT + COUNT; 00658300
|
|
IF BUILDEBUG THEN 00658400
|
|
BEGIN 00658500
|
|
CLEAR(BUFFER,14) ; 00658600
|
|
MOVEWORDS(ACCUM[1],BUFFER,NWORDS) ; 00658700
|
|
WRITE(PRINT[DBL],15,BUFFER[*]) ; 00658800
|
|
END ; 00658900
|
|
PP ~ PP + NWORDS ; 00659000
|
|
EXIT: SORTSCRAMBLE ~ IF COUNTOG THEN FALSE ELSE BOOL ; 00659100
|
|
PROCFLAG ~ (NOT XREFTOG) AND (RESTYPE = PROCEDUREV); 00659200
|
|
END SORTSCRAMBLE ; 00659300
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00659400
|
|
PROCEDURE PRINTNAMES ; 00659500
|
|
COMMENT PRINTS STATISTICS AND LIST OF NAMES XREF-ED ; 00659600
|
|
BEGIN 00659700
|
|
INTEGER T,STACKLIM,COUNT,CHAROUT; 00659800
|
|
FORMAT NUMFORM("NUMBER OF IDENTIFIERS = ",I5) ; 00659900
|
|
FORMAT FID("LIST OF IDENTIFIERS CROSS REFERENCED") ; 00660000
|
|
SWITCH FORMAT FTOTALS ~ 00660100
|
|
("TOTAL NUMBER OF POSSIBLE XREF ENTRIES =",I11), 00660200
|
|
("NUMBER OF WORDS REQUIRED BY SYMBOL TABLE =", I8), 00660300
|
|
("NUMBER OF XREF ENTRIES PRINTED BELOW =",I12), 00660400
|
|
("NUMBER OF CARDS CONTAINING XREFS =",I16), 00660500
|
|
("NUMBER OF CARD IMAGES SCANNED =",I19), 00660600
|
|
("NUMBER OF BLANK SEQUENCE NUMBERS =", I16), 00660700
|
|
("NUMBER OF IDENTIFIERS =",I27), 00660800
|
|
("NUMBER OF CHARACTERS IN SYMBOL TABLE =",I12) 00660900
|
|
; COMMENT FORMAT FIELD LENGTH = 50; 00661000
|
|
INTEGER K; 00661100
|
|
FORMAT 00661200
|
|
FSCAN ("ELAPSED TIME", F8.2," MIN. PROCESSOR TIME", 00661300
|
|
F8.2," SECS."); 00661400
|
|
SWITCH FORMAT FTALLIES ~ 00661500
|
|
("NUMBER OF XREFS PER FIRST LETTER"), 00661600
|
|
(4(X2,"LETTER COUNT")), 00661700
|
|
(4(X5,A1,I6,X2)); 00661800
|
|
ARRAY LTOTALS[0:10]; 00661900
|
|
LIST LTALLIES(FOR K ~I STEP 1 UNTIL I+3 DO [K,TALLIES[K]]); 00662000
|
|
LABEL REDO,TERM,RET ; 00662100
|
|
IF TOTAL = 0 THEN GO TO RET ; 00662200
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"PRINTN","AMES ") ;00662300
|
|
IF BIGTOG THEN GO TO TERM; 00662400
|
|
CLEAR(LISTBUFFER,14) ; 00662500
|
|
ZPG(ZF) ; 00662600
|
|
ZPL (ZF,2,HEADING); 00662700
|
|
WRITE(ZAR[*],FID) ; 00662800
|
|
ZPL(ZF,2,ZAR); 00662900
|
|
STACKLIM ~ IF ALPHATOG THEN 63 ELSE 125 ; NONAMES ~ 0 ; 00663000
|
|
FOR T ~ 0 STEP 1 UNTIL STACKLIM DO 00663100
|
|
BEGIN 00663200
|
|
PP ~ STACK[T]; 00663300
|
|
IF PP = 0 THEN GO TO TERM ; 00663400
|
|
CLEAR(NAMEBUFF,14) ; CHAROUT ~ 0 ; 00663500
|
|
REDO: COUNT ~ TABLE[RC+1].[12:6] ; 00663600
|
|
IF CHAROUT + COUNT > 72 THEN 00663700
|
|
BEGIN 00663800
|
|
IF DOUBLEONLY THEN ZPL(ZF,2,NAMEBUFF) ELSE 00663900
|
|
ZPL(ZF,1,NAMEBUFF); 00664000
|
|
CLEAR(NAMEBUFF,14) ; CHAROUT ~ 0 ; 00664100
|
|
END ; 00664200
|
|
MOVECHARS(TABLE[RC+1],NAMEBUFF[CHAROUT.[41:4]],3, 00664300
|
|
CHAROUT.[45:3],COUNT) ; 00664400
|
|
CHAROUT ~ CHAROUT + COUNT + 1 ; NONAMES ~ NONAMES + 1 ; 00664500
|
|
IF GLYNTOG THEN CHAROUT ~72 ; 00664600
|
|
PP ~ TABLE[RC].TABLINK ; 00664700
|
|
IF PP !0 THEN GO TO REDO ; 00664800
|
|
IF DOUBLEONLY THEN ZPL(ZF,2,NAMEBUFF) ELSE 00664900
|
|
ZPL(ZF,1,NAMEBUFF); 00665000
|
|
TERM: END; 00665100
|
|
ZPG(ZF); 00665200
|
|
ZPL(ZF,1,BLANKARRAY); 00665300
|
|
ZPL(ZF,2,HEADING); 00665400
|
|
LTOTALS [0]~ TOTAL; LTOTALS[1]~ PR; 00665500
|
|
LTOTALS[2] ~ LASTSEQLINK; LTOTALS[3] ~LASTCURSEQ; 00665600
|
|
LTOTALS[4] ~CARDTALLY; LTOTALS[6] ~ NONAMES; 00665700
|
|
LTOTALS[5] ~(XREFSEQ - 99000000) DIV 1000; 00665800
|
|
LTOTALS[7]~ CHARCOUNT; 00665900
|
|
IF BIGTOG THEN FOR I ~ 0,4,5,6 DO 00666000
|
|
BEGIN 00666100
|
|
WRITE(ZAR[*],FTOTALS[I],LTOTALS[I]); 00666200
|
|
ZPL(ZF,ZSP,ZAR); 00666300
|
|
END ELSE 00666400
|
|
FOR I ~ 0 STEP 1 UNTIL 7 DO 00666500
|
|
BEGIN 00666600
|
|
WRITE(ZAR[*],FTOTALS[I],LTOTALS[I]); 00666700
|
|
ZPL(ZF,ZSP,ZAR); 00666800
|
|
END; 00666900
|
|
ZPL(ZF,1,BLANKARRAY); 00667000
|
|
IF NOT REMOTETOG THEN 00667100
|
|
BEGIN 00667200
|
|
WRITE(ZAR[*],FTALLIES[0]); 00667300
|
|
ZPL(ZF,ZSP,ZAR); 00667400
|
|
WRITE(ZAR[*],FTALLIES[1]); 00667500
|
|
ZPL(ZF,ZSP,ZAR); 00667600
|
|
FOR I ~ 0 STEP 4 UNTIL 60 DO 00667700
|
|
BEGIN 00667800
|
|
WRITE (ZAR[*],FTALLIES[2],LTALLIES); 00667900
|
|
ZPL(ZF,ZSP,ZAR); 00668000
|
|
END; 00668100
|
|
WRITE(ZAR[*],FSCAN, (TIME(1)-STARTIME)/3600.0, 00668200
|
|
(TIME(2)-PROCTIME)/60.0); 00668300
|
|
ZPL(ZF,2,ZAR); 00668400
|
|
END; 00668500
|
|
RET: 00668600
|
|
END PRINTNAMES ; 00668700
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00668800
|
|
PROCEDURE BEGINCOUNT ; 00668900
|
|
COMMENT COUNTS BEGINS AND SAVES SEQ NO. TO PRINT WITH MATCHING END ; 00669000
|
|
BEGIN 00669100
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"BEGINC","OUNT ") ;00669200
|
|
BEGINDEX ~ BEGINDEX + 1 ; 00669300
|
|
MOVEWORDS(SEQ,PAIRSEQ[BEGIND],1) ; 00669400
|
|
END BEGINCOUNT ; 00669500
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00669600
|
|
PROCEDURE PRINTPROCEDUREIDS ; 00669700
|
|
COMMENT PRINTS LIST OF PROCEDURES ; 00669800
|
|
BEGIN 00669900
|
|
INTEGER T,TT,T1,T2,SAVEPP,CLASS ; 00670000
|
|
LABEL TERM,MORE ; 00670100
|
|
FORMAT HEAD(X24,"LISTING OF PROCEDURE IDENTIFIERS") ; 00670200
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"PPROCE","DURIDS") ;00670300
|
|
ZPG(ZF) ; 00670400
|
|
ZPL(ZF,2,HEADING); 00670500
|
|
WRITE(ZAR[*],HEAD); 00670600
|
|
ZPL(ZF,2,ZAR); 00670700
|
|
SAVEPP ~ PP ; 00670800
|
|
FOR T ~ 0 STEP 1 UNTIL 63 DO 00670900
|
|
BEGIN 00671000
|
|
PP ~ STACK[T] ; 00671100
|
|
IF PP = 0 THEN GO TO TERM ; 00671200
|
|
MORE: CLEAR(LISTBUFFER,14) ; 00671300
|
|
CLASS ~ TABLE[RC].PROCTAG ; 00671400
|
|
IF CLASS ! 0 THEN 00671500
|
|
BEGIN 00671600
|
|
MOVECHARS(TABLE[RC+1],LISTBUFFER[5],3,0, 00671700
|
|
TABLE[RC+1].[12:6] ) ; 00671800
|
|
TT ~ TABLE[RC].PROCTAG ; 00671900
|
|
MOVECHARS(TT,LISTBUFFER[4],7,4,1) ; 00672000
|
|
T1 ~ TABLE[RC].[3:15] ; 00672100
|
|
T2 ~ SEQLINKS[T1.[33:6],T1.[39:9]].[33:15] ; 00672200
|
|
MOVECHARS(CURSEQ[T2.[33:6],T2.[39:9]],LISTBUFFER[3], 00672300
|
|
0,0,8); 00672400
|
|
ZPL(ZF,1,LISTBUFFER); 00672500
|
|
END ; 00672600
|
|
PP ~ TABLE[RC].TABLINK ; 00672700
|
|
IF PP ! 0 THEN GO TO MORE ; 00672800
|
|
TERM: END ; 00672900
|
|
PP ~ SAVEPP ; 00673000
|
|
END PRINTPROCEDUREIDS ; 00673100
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00673200
|
|
PROCEDURE ENDCOUNT ; 00673300
|
|
COMMENT COUNTS DOWN BEGINS AND WRITES SEQ OF BEGIN FOR THIS END ; 00673400
|
|
BEGIN 00673500
|
|
INTEGER TEMP ; 00673600
|
|
LABEL RET ; 00673700
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"ENDCOU","NT ") ;00673800
|
|
IF BEGINDEX = 0 THEN 00673900
|
|
BEGIN 00674000
|
|
IF LISTOG THEN 00674100
|
|
DOCERROR(27) ; GO TO RET ; 00674200
|
|
END; 00674300
|
|
IF LISTOG AND NOT BLANKNEWSEQ THEN 00674400
|
|
BEGIN 00674500
|
|
CLEAR(LISTBUFFER,14) ; 00674600
|
|
IF REMOTETOG THEN 00674700
|
|
MOVEWORDS(PAIRSEQ[BEGIND],LISTBUFFER[8],1) ELSE 00674800
|
|
MOVEWORDS(PAIRSEQ[BEGIND],LISTBUFFER[10],1) ; 00674900
|
|
ZPL(ZF,2,LISTBUFFER); 00675000
|
|
END ; 00675100
|
|
BEGINDEX ~ BEGINDEX - 1 ; 00675200
|
|
IF STREAMBODY AND STREAMBEGCOUNT = BEGINDEX THEN 00675300
|
|
STREAMBODY ~ FALSE ; 00675400
|
|
RET: 00675500
|
|
END ENDCOUNT ; 00675600
|
|
COMMENT DOCUMENT* 23 * * * * * * * * * * * * * * * * * * * * * * * ; 00675700
|
|
PROCEDURE BUILDXREF ; 00675800
|
|
COMMENT ADDS CURRENT SEQUENCE NUMBER TO LINKED LIST OF XREF ENTRIES 00675900
|
|
FOR THIS IDENTIFIER, OR (IF BIGTOG) WRITES A RECORD OF THE 00676000
|
|
IDENTIFIER PLUS THE SEQ NO. ON A DISK FILE TO BE LATER SORTED; 00676100
|
|
BEGIN 00676200
|
|
BOOLEAN SEQADDFLAG ; 00676300
|
|
LABEL RETURN ; 00676400
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"BUILDX","REF ") ;00676500
|
|
IF FLOWTOG OR DOCINDEXTOG THEN 00676600
|
|
BEGIN 00676700
|
|
MOVEWORDS(SEQ,FLOWSEQ,1) ; 00676800
|
|
CLEAR(SEQ,0); 00676900
|
|
IF LEFTPAGE THEN 00677000
|
|
BEGIN 00677100
|
|
MOVECHARS (PAGENUM[7], SEQ, 10-PAGECHAR,0,6); 00677200
|
|
MOVECHARS (PAGENUM[7],SEQ,16-PAGECHAR, 8-PAGECHAR, 00677300
|
|
PAGECHAR); 00677400
|
|
END ELSE 00677500
|
|
BEGIN 00677600
|
|
MOVECHARS (PAGENUM[7], SEQ, 10, 0,6); 00677700
|
|
MOVECHARS (PAGENUM[7], SEQ, 10-PAGECHAR,0,PAGECHAR); 00677800
|
|
END ; 00677900
|
|
END ; 00678000
|
|
IF BIGTOG THEN 00678100
|
|
BEGIN 00678200
|
|
CLEAR(XREFBUFF,9) ; 00678300
|
|
IF COUNT > MAXCOUNTER THEN MAXCOUNTER ~ COUNT ; 00678400
|
|
MOVECHARS(ACCUM[1],XREFBUFF,3,0,COUNT) ; 00678500
|
|
MOVEWORDS(SEQ,XREFBUFF[9],1) ; 00678600
|
|
XREFBUFF[8] ~ IF PROCDECFLAG OR LABELUSE THEN 00678700
|
|
-COUNT ELSE COUNT ; 00678800
|
|
WRITE(XREFILE,10,XREFBUFF[*]) ; 00678900
|
|
IF NOT PROCFLAG2 THEN 00679000
|
|
GO TO RETURN ; 00679100
|
|
END ; 00679200
|
|
IF SEQCOMP(SEQ,CURSEQ[LASTCURIND]) ! 2 THEN 00679300
|
|
BEGIN 00679400
|
|
LASTCURSEQ ~ LASTCURSEQ + 1 ; 00679500
|
|
MOVEWORDS(SEQ,CURSEQ[LASTCURIND],1) ; 00679600
|
|
IF NAMEPUNCH AND NOT PUNCHTOG THEN 00679700
|
|
BEGIN 00679800
|
|
IF BLANKNAMEPUNCH THEN CLEAR(JUNKARRAY,8) ELSE 00679900
|
|
MOVEWORDS(GLOBE,JUNKARRAY,9) ; 00680000
|
|
MOVEWORDS(SEQ,JUNKARRAY[9],1) ; 00680100
|
|
WRITE(PNCH,10,JUNKARRAY[*]) ; 00680200
|
|
END ; 00680300
|
|
END ; 00680400
|
|
SEQADDFLAG ~ TRUE ; 00680500
|
|
LASTSEQLINK ~ LASTSEQLINK + 1 ; 00680600
|
|
IF LASTSEQLINK > 32000 THEN 00680700
|
|
BEGIN 00680800
|
|
FORMAT TOOMANY("TOO MANY XREF ENTRIES > 32000") ; 00680900
|
|
WRITE(PRINT[DBL],TOOMANY) ; 00681000
|
|
GO TO EOFCARD ; 00681100
|
|
END ; 00681200
|
|
IF LISTHEAD =0 THEN 00681300
|
|
BEGIN 00681400
|
|
LISTHEAD ~ LASTSEQLINK ; 00681500
|
|
LISTTAIL ~ LASTSEQLINK ; 00681600
|
|
TEMPIND ~ LISTHEAD ; 00681700
|
|
LOADCOUNT ~ 1 ; 00681800
|
|
END ELSE 00681900
|
|
BEGIN 00682000
|
|
TEMPIND ~ LISTTAIL ; 00682100
|
|
SEQADDFLAG ~ SEQCOMP(CURSEQ[(SEQPOINTER).[33:6], 00682200
|
|
(SEQPOINTER).[39:9]],SEQ) ! 2;00682300
|
|
NEXTSEQLINK ~ LASTSEQLINK ; 00682400
|
|
LISTTAIL ~ LASTSEQLINK ; 00682500
|
|
TEMPIND ~ LISTHEAD ; 00682600
|
|
IF (NOT LOGICTOG) OR (LOGICTOG AND SEQADDFLAG) THEN 00682700
|
|
LOADCOUNT ~ LOADCOUNT + 1 ; 00682800
|
|
END ; 00682900
|
|
IF BSTICKFLAG THEN LOADCOUNT ~ LOADCOUNT + 1 ; 00683000
|
|
TEMPIND ~ LASTSEQLINK ; 00683100
|
|
NEXTSEQLINK ~ 0 ; 00683200
|
|
SEQPOINTER ~ LASTCURSEQ ; 00683300
|
|
SEQPROCPOINT ~ IF PROCDECFLAG OR LABELUSE THEN 1 ELSE 0 ; 00683400
|
|
RETURN: 00683500
|
|
PROCDECFLAG ~ FALSE ; 00683600
|
|
IF FLOWTOG OR DOCINDEXTOG THEN MOVEWORDS(FLOWSEQ,SEQ,1); 00683700
|
|
END BUILDXREF ; 00683800
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * ; 00683900
|
|
PROCEDURE SORTITONDISK(FI,FO) ; 00684000
|
|
FILE FI,FO ; 00684100
|
|
COMMENT USED TO SORT ON DISK WHEN "LARGE" IS USED (BIGTOG=TRUE) ; 00684200
|
|
BEGIN 00684300
|
|
INTEGER STREAM PROCEDURE E(A,B,N) ; 00684400
|
|
VALUE N ; 00684500
|
|
BEGIN 00684600
|
|
SI ~ A ; DI ~ B ; IF N SC = DC THEN TALLY ~ 2 ELSE 00684700
|
|
BEGIN 00684800
|
|
SI ~ A ; DI ~ B ; IF N SC < DC THEN TALLY ~ 1 00684900
|
|
END ; 00685000
|
|
E ~ TALLY ; 00685100
|
|
END E ; 00685200
|
|
BOOLEAN PROCEDURE CMP(A,B) ; 00685300
|
|
ARRAY A,B[0] ; 00685400
|
|
CMP ~ IF IJUNK ~ E(A,B,MAXCOUNTER) ! 2 THEN 00685500
|
|
BOOLEAN(IJUNK) ELSE E(A[9],B[9],8) ! 0 ; 00685600
|
|
PROCEDURE HV(A) ; 00685700
|
|
ARRAY A[0] ; 00685800
|
|
BEGIN 00685900
|
|
STREAM PROCEDURE P(A,B) ; 00686000
|
|
VALUE B ; 00686100
|
|
BEGIN 00686200
|
|
DI ~ A ; SI ~ LOC B ; SI ~ SI + 7 ; 00686300
|
|
8(DS ~ CHR ; SI ~ SI - 1 ) ; 00686400
|
|
SI ~ A ; DS ~ 9 WDS ; 00686500
|
|
END P ; 00686600
|
|
P(A,12) ; 00686700
|
|
END HV ; 00686800
|
|
SORT(FO,FI,0,HV,CMP,10,CORESIZE) ; 00686900
|
|
END SORTITONDISK ; 00687000
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * *** * * * * * * * * * * * * ; 00687100
|
|
PROCEDURE PRINTXREF ; 00687200
|
|
COMMENT FORMATS AND PRINTS XREF ENTRIES FROM LINKED LIST OR (IF BIGTOG)00687300
|
|
FROM SORTED DISK FILE XREFSORT ; 00687400
|
|
BEGIN 00687500
|
|
INTEGER T,STACKLIM,COUNT,CHAROUT ; 00687600
|
|
INTEGER SCHAR ; 00687700
|
|
LABEL REDO,MORE,TERM,RET ; 00687800
|
|
FORMAT XREFHEAD("IDENTIFIER CROSS REFERENCE LIST") , 00687900
|
|
FXREFHEAD("FLOW CHART LABEL IDENTIFIERS CROSS", 00688000
|
|
" REFERENCE LIST") , 00688100
|
|
DXREFHEAD("DOCUMENT CONTROLS AND DEFINES CROSS REFERENCE",00688200
|
|
" LIST") ; 00688300
|
|
IF TOTAL = 0 THEN GO TO RET ; 00688400
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"PRINTX","REF ") ;00688500
|
|
PR ~ PP; 00688600
|
|
IF FLOWTOG THEN 00688700
|
|
BEGIN 00688800
|
|
SAVEREMOTETOG ~ REMOTETOG ; REMOTETOG ~TRUE ; 00688900
|
|
HOLDFLOW ~ TRUE; FLOWTOG ~ FALSE; 00689000
|
|
END ; 00689100
|
|
IF MAKEIRTOG THEN 00689200
|
|
BEGIN 00689300
|
|
MAKEIRFILE ; GO TO RET ; 00689400
|
|
END ; 00689500
|
|
MAXCOLS ~ IF REMOTETOG THEN 68 ELSE 118 ; 00689600
|
|
CLEAR(LISTBUFFER,14) ; 00689700
|
|
ZPG(ZF); IF NOT HOLDFLOW THEN ZPL(ZF,2,HEADING) ELSE 00689800
|
|
NEWDOCPAGE; 00689900
|
|
IF NOT HOLDFLOW THEN 00690000
|
|
PAGEQUAL ~ 3; 00690100
|
|
IF DOCINDEXTOG THEN WRITE(ZAR[*],XREFHEAD) ELSE 00690110
|
|
IF DOCTOG THEN WRITE(ZAR[*],DXREFHEAD) ELSE 00690200
|
|
IF HOLDFLOW THEN WRITE (ZAR[*],FXREFHEAD) ELSE 00690300
|
|
WRITE(ZAR[*],XREFHEAD) ; 00690400
|
|
ZPL(ZF,2,ZAR); 00690500
|
|
STACKLIM ~ IF ALPHATOG THEN 63 ELSE 125 ; 00690600
|
|
IF BIGTOG THEN 00690700
|
|
BEGIN 00690800
|
|
LABEL REDO,EOF,MORE ; 00690900
|
|
ARRAY LASTREC[0:15] ; 00691000
|
|
REWIND(XREFSORT) ; 00691100
|
|
READ(XREFSORT,10,XREFBUFF[*])[EOF] ; 00691200
|
|
NONAMES ~ 0; 00691300
|
|
REDO: CLEAR(NAMEBUFF,14) ; 00691400
|
|
NONAMES ~ NONAMES +1; 00691500
|
|
COUNT ~ ABS(XREFBUFF[8]) ; 00691600
|
|
MOVECHARS(XREFBUFF[0],NAMEBUFF,0,0,COUNT); 00691700
|
|
ZPL(ZF,2,BLANKARRAY); 00691800
|
|
CHAROUT ~ COUNT + 2 ; 00691900
|
|
SCHAR~ CHAROUT ~(((COUNT+10) DIV 10)+1)|10 ; 00692000
|
|
MORE: 00692100
|
|
MOVECHARS(XREFBUFF[9] ,NAMEBUFF[CHAROUT.[41:4]],0, 00692200
|
|
CHAROUT.[45:3],8) ; 00692300
|
|
IF XREFBUFF[8] < 0 THEN 00692400
|
|
BEGIN 00692500
|
|
SETCHAR(NAMEBUFF[(CHAROUT-1).[41:4]],(CHAROUT-1).[45:3], 00692600
|
|
"*") ; 00692700
|
|
SETCHAR(NAMEBUFF[(CHAROUT+8).[41:4]],(CHAROUT+8).[45:3], 00692800
|
|
"*") ; 00692900
|
|
END ; 00693000
|
|
CHAROUT ~ CHAROUT + 10 ; 00693100
|
|
IF CHAROUT > MAXCOLS THEN 00693200
|
|
BEGIN 00693300
|
|
ZPL(ZF,1,NAMEBUFF); 00693400
|
|
CLEAR(NAMEBUFF,14) ; CHAROUT ~ SCHAR ; 00693500
|
|
END ; 00693600
|
|
MOVEWORDS(XREFBUFF,LASTREC,10) ; 00693700
|
|
READ(XREFSORT,10,XREFBUFF[*])[EOF] ; 00693800
|
|
IF NOT EQUAL(XREFBUFF,LASTREC,MAXCOUNTER) THEN 00693900
|
|
BEGIN 00694000
|
|
IF CHAROUT ! SCHAR THEN 00694100
|
|
ZPL(ZF,1,NAMEBUFF); 00694200
|
|
GO TO REDO ; 00694300
|
|
END ; 00694400
|
|
GO TO MORE ; 00694500
|
|
EOF: 00694600
|
|
IF CHAROUT ! SCHAR THEN 00694700
|
|
ZPL(ZF,1,NAMEBUFF); 00694800
|
|
BEGIN 00694900
|
|
FILE XREFILE DISK SERIAL (2,10,30,SAVE 10) ; 00695000
|
|
REWIND(XREFSORT) ; REWIND(XREFILE) ; 00695100
|
|
READ(XREFSORT,10,XREFBUFF[*]) ; CLOSE(XREFSORT,PURGE) ; 00695200
|
|
READ(XREFILE ,10,XREFBUFF[*]) ; CLOSE(XREFILE ,PURGE) ; 00695300
|
|
END ; 00695400
|
|
END ELSE 00695500
|
|
FOR T ~0 STEP 1 UNTIL STACKLIM DO 00695600
|
|
BEGIN 00695700
|
|
ISEQ ~ T; 00695800
|
|
TABINDEX ~ PP ~ STACK[T] ; 00695900
|
|
IF PP = 0 THEN GO TO TERM ; 00696000
|
|
REDO: CLEAR(NAMEBUFF,14) ; 00696100
|
|
COUNT ~ TABLE[RC+1].[12:6] ; 00696200
|
|
MOVECHARS(TABLE[RC+1],NAMEBUFF,3,0,COUNT); 00696300
|
|
ZPL(ZF,2,BLANKARRAY); 00696400
|
|
TEMPIND ~ LISTHEAD ; 00696500
|
|
CHAROUT ~ COUNT + 2 ; 00696600
|
|
SETCHAR(NAMEBUFF[CHAROUT DIV 8],CHAROUT.[45:3],"(") ; 00696700
|
|
IJUNK ~ SEQLINKS[SEQIND].[3:15] ; 00696800
|
|
OCTTODEC(IJUNK,JUNK) ; 00696900
|
|
CHAROUT ~CHAROUT + 1 ; 00697000
|
|
MOVECHARS(JUNK,NAMEBUFF[CHAROUT DIV 8],2,CHAROUT.[45:3],6);00697100
|
|
CHAROUT ~ CHAROUT + 6 ; 00697200
|
|
SETCHAR(NAMEBUFF[CHAROUT DIV 8],CHAROUT.[45:3],")") ; 00697300
|
|
SCHAR~ CHAROUT ~(((COUNT+10) DIV 10)+1)|10 ; 00697400
|
|
MORE: TAMPIND ~ SEQLINKS[SEQIND].[33:15] ; 00697500
|
|
MOVECHARS(CURSEQ[CURSEQIND],NAMEBUFF[CHAROUT.[41:4]],0, 00697600
|
|
CHAROUT.[45:3],8) ; 00697700
|
|
IF SEQPROCPOINT = 1 THEN 00697800
|
|
BEGIN 00697900
|
|
SETCHAR(NAMEBUFF[(CHAROUT-1).[41:4]],(CHAROUT-1).[45:3], 00698000
|
|
"*") ; 00698100
|
|
SETCHAR(NAMEBUFF[(CHAROUT+8).[41:4]],(CHAROUT+8).[45:3], 00698200
|
|
"*") ; 00698300
|
|
END ; 00698400
|
|
CHAROUT ~ CHAROUT + 10 ; 00698500
|
|
IF CHAROUT > MAXCOLS THEN 00698600
|
|
BEGIN 00698700
|
|
ZPL(ZF,1,NAMEBUFF); 00698800
|
|
CLEAR(NAMEBUFF,14) ; CHAROUT ~ SCHAR ; 00698900
|
|
END ; 00699000
|
|
TEMPIND ~ NEXTSEQLINK ; 00699100
|
|
IF TEMPIND = 0 THEN 00699200
|
|
BEGIN 00699300
|
|
IF CHAROUT ! SCHAR THEN 00699400
|
|
ZPL(ZF,1,NAMEBUFF); 00699500
|
|
TABINDEX ~ PP ~ TABLE[RC].TABLINK ; 00699600
|
|
IF PP ! 0 THEN GO TO REDO ELSE GO TO TERM ; 00699700
|
|
END ; 00699800
|
|
GO TO MORE ; 00699900
|
|
TERM: END ; 00700000
|
|
RET: 00700100
|
|
FLOWTOG ~ HOLDFLOW; 00700200
|
|
HOLDFLOW ~ FALSE ; 00700300
|
|
IF FLOWTOG THEN REMOTETOG ~ SAVEREMOTETOG ; 00700400
|
|
END PRINTXREF ; 00700500
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * ** * * * * * * * * * * ; 00700600
|
|
BOOLEAN PROCEDURE SEARCHRESERVED ; 00700700
|
|
COMMENT TRUE IF Q SHOULD NOT BE XREF-ED BECAUSE IT IS A RESERVED WORD. 00700800
|
|
ALSO SETS RESTYPE TO SHOW WHAT CLASS THAT WORD IS ; 00700900
|
|
BEGIN 00701000
|
|
INTEGER NEXT ; 00701100
|
|
LABEL LOOP,EXIT,CONT,BUILD,FOUND ; 00701200
|
|
LABEL MORE ; 00701300
|
|
RESTYPE ~ 0; IF RESERVEDTOG THEN 00701400
|
|
IF NOT FORTRTOG THEN 00701500
|
|
IF NOT ( Q = "7COMME" OR Q = "9PROCE" OR Q = "6STREA" 00701600
|
|
OR Q = "4WITH ") THEN 00701700
|
|
BEGIN 00701800
|
|
SEARCHRESERVED ~ FALSE; 00701900
|
|
GO TO EXIT; 00702000
|
|
END; 00702100
|
|
NEXT ~ RESTACK[Q.[18:6]] ; 00702200
|
|
IF ASMLTOG AND NOT (FLOWTOG OR DOCTOG)THEN 00702300
|
|
BEGIN 00702400
|
|
SEARCHRESERVED ~ FALSE ; GO TO EXIT ; 00702500
|
|
END ; 00702600
|
|
GO TO MORE ; 00702700
|
|
LOOP: NEXT ~ RESERVED[NEXT].TABLINK ; 00702800
|
|
MORE: 00702900
|
|
IF NEXT = 0 THEN 00703000
|
|
BEGIN 00703100
|
|
BUILD: SEARCHRESERVED ~FALSE ; GO TO EXIT ; 00703200
|
|
END ; 00703300
|
|
CONT: IF RESERVED[NEXT+1] ! Q THEN GO TO LOOP ; 00703400
|
|
IF COUNT { 5 THEN GO TO FOUND ; 00703500
|
|
IF NOT EQUAL(RESERVED[NEXT+2],ACCUM[2],COUNT-5) THEN 00703600
|
|
GO TO LOOP ; 00703700
|
|
FOUND: SEARCHRESERVED ~TRUE ; 00703800
|
|
RESTYPE ~ RESERVED[NEXT].TYPLINK ; 00703900
|
|
EXIT: 00704000
|
|
END SEARCHRESERVED ; 00704100
|
|
COMMENT DOCUMENT* 5 * * * * * * * * * * * * * * * * * * * * * * * * * 00704200
|
|
H. PROCEDURES TO MAKE AN IR FILE FROM XREF FACTS. 00704300
|
|
* END; 00704400
|
|
COMMENT DOCUMENT* 23 * * * * * * * * * * * * * * * * * * * * * * * * *; 00704500
|
|
PROCEDURE ARRAYTOIRFILE(A,UB) ; 00704600
|
|
VALUE UB ; INTEGER UB ; 00704700
|
|
ARRAY A[0] ; 00704800
|
|
COMMENT SPLITS ARRAY A INTO 10 WORD RECORDS, WRITES THEM ON IRFILE; 00704900
|
|
BEGIN 00705000
|
|
ARRAY TEMP[0:15] ; 00705100
|
|
INTEGER I,J,K,N ; 00705200
|
|
J ~ (UB+1) DIV 10 ; 00705300
|
|
K ~ (UB+1) MOD 10 ; 00705400
|
|
N ~ (J|10) - 10 ; 00705500
|
|
FOR I ~ 0 STEP 10 UNTIL N DO 00705600
|
|
BEGIN 00705700
|
|
MOVEWORDS(A[I],TEMP[0] , 10) ; 00705800
|
|
WRITE(IRFILE,10,TEMP[*]) ; 00705900
|
|
END ; 00706000
|
|
IF K !0 THEN 00706100
|
|
BEGIN 00706200
|
|
CLEAR(TEMP,9) ; 00706300
|
|
MOVEWORDS(A[I],TEMP,K) ; 00706400
|
|
WRITE(IRFILE,10,TEMP[*]) ; 00706500
|
|
END ; 00706600
|
|
END ARRAYTOIRFILE ; 00706700
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * ; 00706800
|
|
PROCEDURE MAKEIRFILE ; 00706900
|
|
COMMENT MAKES IR FILE FROM XREF-CREATED TABLES OF NAMES AND ENTRIES; 00707000
|
|
BEGIN 00707100
|
|
LABEL REDO,MORE,TERM ; 00707200
|
|
INTEGER I,PP,T,COUNT,IRINDEX,SIRINDEX,TCOUNT ; 00707300
|
|
ARRAY IR[0:15] ; 00707400
|
|
WRITE(IRFILE,10,IR[*]) ; 00707500
|
|
CLEAR(IR,14) ; 00707600
|
|
IRINDEX ~ 1 ; 00707700
|
|
FOR T ~0 STEP 1 UNTIL 63 DO 00707800
|
|
BEGIN 00707900
|
|
TABINDEX ~ PP ~ STACK[T] ; 00708000
|
|
IF PP = 0 THEN GO TO TERM ; 00708100
|
|
REDO: 00708200
|
|
COUNT ~ TABLE[RC+1].[12:6] ; 00708300
|
|
TEMPIND ~ LISTHEAD ; 00708400
|
|
IJUNK ~ SEQLINKS[SEQIND].[3:15] ; 00708500
|
|
TCOUNT ~ IJUNK ; 00708600
|
|
OCTTODEC(IJUNK,JUNK) ; 00708700
|
|
CLEAR(IR,14) ; SIRINDEX ~ IR[0] ~ IRINDEX ; 00708800
|
|
IR[1] ~ IJUNK ; IR[2] ~ COUNT ; 00708900
|
|
WRITE(IRFILE,10,IR[*]) ; 00709000
|
|
CLEAR(IR,14) ; IRINDEX ~IRINDEX + 1 ; I ~ 0 ; 00709100
|
|
IR[1] ~" " ; 00709200
|
|
MOVECHARS(TABLE[RC+1],IR[1],3,3,COUNT) ; 00709300
|
|
WRITE(IRFILE,10,IR[*]) ; CLEAR(IR,14); 00709400
|
|
IRINDEX ~ IRINDEX + 1 ; 00709500
|
|
MORE: TAMPIND ~ SEQLINKS[SEQIND].[33:15] ; 00709600
|
|
MOVEWORDS(CURSEQ[CURSEQIND],IR[I],1) ; 00709700
|
|
I ~ I + 1 ; 00709800
|
|
IF I > 9 THEN 00709900
|
|
BEGIN 00710000
|
|
WRITE(IRFILE,10,IR[*]); 00710100
|
|
I ~0 ; IRINDEX ~ IRINDEX +1 ; CLEAR(IR,14) ; 00710200
|
|
END ; 00710300
|
|
TEMPIND ~ NEXTSEQLINK ; 00710400
|
|
IF TEMPIND = 0 THEN 00710500
|
|
BEGIN 00710600
|
|
IF I ! 0 THEN 00710700
|
|
BEGIN 00710800
|
|
WRITE(IRFILE,10,IR[*]) ; 00710900
|
|
IRINDEX ~ IRINDEX + 1 ; 00711000
|
|
END ; 00711100
|
|
LISTTAIL ~ TCOUNT ; 00711200
|
|
LISTHEAD ~ SIRINDEX ; 00711300
|
|
TABINDEX ~ TABLE[RC].TABLINK ; 00711400
|
|
PP ~ TABINDEX ; 00711500
|
|
IF PP ! 0 THEN GO TO REDO ELSE GO TO TERM ; 00711600
|
|
END ; 00711700
|
|
GO TO MORE ; 00711800
|
|
TERM: END ; 00711900
|
|
SIRINDEX ~ IRINDEX ; 00712000
|
|
I ~ TABLEUPPERBOUND ; 00712100
|
|
T ~ ( I DIV 512 ) ; 00712200
|
|
FOR I ~ 0 STEP 1 UNTIL T DO 00712300
|
|
ARRAYTOIRFILE(TABLE[I,*],511) ; 00712400
|
|
ARRAYTOIRFILE(STACK,63) ; 00712500
|
|
REWIND(IRFILE) ; 00712600
|
|
IR[0] ~ SIRINDEX ; IR[1] ~ T ; 00712700
|
|
WRITE(IRFILE,10,IR[*]) ; 00712800
|
|
LOCK(IRFILE,RELEASE) ; 00712900
|
|
END MAKEIRFILE ; 00713000
|
|
COMMENT DOCUMENT* 5 * * * * * * * * * * * * * * * * * * * * * * * * * 00713100
|
|
I. DOCUMENT EDITING PROCEDURES. 00713200
|
|
* END; 00713300
|
|
COMMENT DOCUMENT* 23 * * * * * * * * * * * * * * * * * * * * * * * * ; 00713400
|
|
INTEGER PROCEDURE DELTANCR(NCR1,NCR2); 00713500
|
|
VALUE NCR1,NCR2 ; 00713600
|
|
INTEGER NCR1,NCR2 ; 00713700
|
|
COMMENT FINDS NUMBER OF CHRS BETWEEN TWO ABSOLUTE ADDRESSES ; 00713800
|
|
BEGIN 00713900
|
|
INTEGER IJUNK,KJUNK ; 00714000
|
|
IJUNK.[45:3] ~NCR1.[30:3] ; 00714100
|
|
IJUNK.[30:15] ~ NCR1.[33: 15] ; 00714200
|
|
KJUNK.[45:3] ~NCR2.[30:3] ; 00714300
|
|
KJUNK.[30:15] ~ NCR2. [33:15] ; 00714400
|
|
DELTANCR ~ KJUNK - IJUNK ; 00714500
|
|
END ; 00714600
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00714700
|
|
PROCEDURE REPLACEIT; 00714800
|
|
COMMENT ANALIZES SYNTAX OF <INSERT PART> FOR REPLACE ; 00714900
|
|
BEGIN 00715000
|
|
INTEGER SVNCR,SVNCR2 ; 00715100
|
|
LABEL ENDINS ; 00715200
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * ; 00715300
|
|
STREAM PROCEDURE REPLACE (NCR,NBLKS) ; 00715400
|
|
VALUE NCR,NBLKS ; 00715500
|
|
COMMENT CHANGES <INSERT PART> TO "PAGE" ; 00715600
|
|
BEGIN 00715700
|
|
DI ~ NCR; DI~ DI - 10; DS~ 10 LIT " PAGE " ; 00715800
|
|
NBLKS(DS ~ 1 LIT " "; ); 00715900
|
|
END ; 00716000
|
|
SVNCR ~ SVNCR2 ~ NCR ; 00716100
|
|
IF FINDCHAR(NCR,"%" ) THEN GO TO ENDINS ; 00716200
|
|
SCAN; IF RESULT ! 3 THEN GO TO ENDINS ; 00716300
|
|
SVNCR2~NCR; 00716400
|
|
IF FINDCHAR(NCR,"%") THEN GO TO ENDINS; 00716500
|
|
SCAN; IF NOT COMMA THEN GO TO ENDINS; 00716600
|
|
SVNCR2 ~ NCR; 00716700
|
|
IF FINDCHAR(NCR,"%" ) THEN GO TO ENDINS ; 00716800
|
|
SCAN; IF RESULT ! 3 THEN GO TO ENDINS ; 00716900
|
|
SVNCR2 ~ NCR ; 00717000
|
|
ENDINS: 00717100
|
|
TEMP ~ DELTANCR(SVNCR,SVNCR2) ; 00717200
|
|
REPLACE (SVNCR,TEMP) ; 00717300
|
|
END REPLACEIT ; 00717400
|
|
COMMENT DOCUMENT* 22 * * * * * * * * * * * * * * * * * * * * * * * * *; 00717500
|
|
STREAM PROCEDURE BITFIELDCONVERT(FIRSTBIT,FIELDSIZE,DEST,DESTPOS) ; 00717600
|
|
VALUE DESTPOS ; 00717700
|
|
COMMENT FORMATS FIELD LENGTH FOR PATTERN CONTROL ; 00717800
|
|
BEGIN 00717900
|
|
DI ~ DEST ; DI ~ DI + DESTPOS ; DS ~ 2 LIT "-[" ; 00718000
|
|
SI ~ FIRSTBIT ; DS ~ 2 DEC ; DS ~ 1 LIT ":" ; 00718100
|
|
SI ~FIELDSIZE ; DS ~ 2 DEC ; DS ~ 2 LIT "]-" ; 00718200
|
|
END BITFIELDCONVERT ; 00718300
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * ; 00718400
|
|
STREAM PROCEDURE FIXUNDERLINE(A,B) ; 00718500
|
|
COMMENT PUTS A HYPHEN IN B FOR EVERY NON-BLANK POSITION IN A ; 00718600
|
|
BEGIN 00718700
|
|
DI ~ B ; DS ~ 8 LIT " " ; SI ~B ; DS ~ 14 WDS ; 00718800
|
|
SI ~ A ; DI ~ B ; 9(8(IF SC ! " " THEN DS ~ 1 LIT "-" 00718900
|
|
ELSE DI ~ DI + 1 ; SI ~ SI + 1)) ; 00719000
|
|
END FIXUNDERLINE ; 00719100
|
|
INTEGER STREAM PROCEDURE COUNTQUOTES(S,SPOS,N); VALUE SPOS,N; 00719102
|
|
BEGIN 00719104
|
|
LOCAL T ; 00719106
|
|
SI~ LOC N; DI~ LOC T; SI~SI+6; DI~DI+7; 00719108
|
|
DS~CHR; 00719110
|
|
SI~S; SI~SI+SPOS ; TALLY ~ 0; 00719112
|
|
2(32(T(IF SC=""" THEN TALLY~TALLY+1; 00719114
|
|
SI~SI+1; ))); 00719116
|
|
N(IF SC= """ THEN TALLY ~ TALLY +1; SI~SI+1;) ; 00719118
|
|
COUNTQUOTES ~ TALLY ; 00719120
|
|
END COUNTQUOTES ; 00719122
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * ; 00719200
|
|
PROCEDURE NEWDOCPAGE; 00719300
|
|
COMMENT WRITES PAGE NUMBER,HEADING,ETC ON A NEW PAGE OF DOCUMENT ; 00719400
|
|
BEGIN 00719500
|
|
INTEGER BLOCKEXTENDER ; 00719600
|
|
IF MONITOG THEN WRITE (PRINT,MONITFORM,"NEWDOC","PAGE ");00719700
|
|
ZPLOVER ~FALSE; 00719800
|
|
IF PAGEID = " " THEN PAGEID ~ " PAGE " ; 00719900
|
|
OCTTODEC(PAGEN,APAGEN) ; 00720000
|
|
FOR IJUNK ~ 0 STEP 1 UNTIL 7 DO 00720100
|
|
IF NOT CHECKCHAR(APAGEN,IJUNK,"0") THEN 00720200
|
|
BEGIN 00720300
|
|
IF DECIMALSTOG THEN 00720400
|
|
IF (8-PLACES)< IJUNK THEN IJUNK ~ 8-PLACES; 00720500
|
|
CLEARCHAR(APAGEN,0,IJUNK) ; 00720600
|
|
PAGECHAR ~ 9 - IJUNK ; IJUNK ~ 9 ; 00720700
|
|
END ; 00720800
|
|
CLEAR(PAGENUM,14) ; 00720900
|
|
LEFTPAGE~LFPAGEID; 00721000
|
|
IF SUPPRESSTOG THEN 00721100
|
|
BEGIN 00721200
|
|
SUPTHISTIME ~ TRUE; 00721300
|
|
FOR I ~ 8- PLACES STEP 1 UNTIL 7 DO 00721400
|
|
IF NOT CHECKCHAR(APAGEN,I,"0") THEN SUPTHISTIME~FALSE; 00721500
|
|
END; 00721600
|
|
IF LFPAGEID THEN 00721700
|
|
BEGIN 00721800
|
|
IF PAGEN ! 0 THEN 00721900
|
|
MOVECHARS(PAGEID,PAGENUM[7],2,10-PAGECHAR,6) ; 00722000
|
|
IF DECIMALSTOG THEN 00722100
|
|
BEGIN 00722200
|
|
MOVECHARS (APAGEN,PAGENUM[7], 8-PAGECHAR,16-PAGECHAR, 00722300
|
|
PAGECHAR-PLACES); 00722400
|
|
SETCHAR ( PAGENUM[7] ,16-PLACES,"."); 00722500
|
|
IF SUPTHISTIME THEN 00722600
|
|
CLEARCHAR(PAGENUM[7],16-PLACES,PLACES+1) ELSE 00722700
|
|
MOVECHARS (APAGEN,PAGENUM[7],8-PLACES, 17-PLACES, 00722800
|
|
PLACES); 00722900
|
|
END ELSE 00723000
|
|
MOVECHARS(APAGEN,PAGENUM[7],8-PAGECHAR,16-PAGECHAR, 00723100
|
|
PAGECHAR) ; 00723200
|
|
END ELSE 00723300
|
|
BEGIN 00723400
|
|
IF DECIMALSTOG THEN 00723500
|
|
BEGIN 00723600
|
|
MOVECHARS (APAGEN,PAGENUM[7], 8-PAGECHAR,9-PAGECHAR, 00723700
|
|
PAGECHAR-PLACES); 00723800
|
|
SETCHAR ( PAGENUM[7],9-PLACES, "."); 00723900
|
|
IF SUPTHISTIME THEN 00724000
|
|
CLEARCHAR(PAGENUM[7],9-PLACES,PLACES+1) ELSE 00724100
|
|
MOVECHARS (APAGEN, PAGENUM[7], 8-PLACES,10-PLACES, 00724200
|
|
PLACES); 00724300
|
|
END ELSE 00724400
|
|
MOVECHARS(APAGEN,PAGENUM[7],8-PAGECHAR,10-PAGECHAR, 00724500
|
|
PAGECHAR) ; 00724600
|
|
IF PAGEN ! 0 THEN 00724700
|
|
MOVECHARS(PAGEID,PAGENUM[7],2,10,6) ; 00724800
|
|
END ; 00724900
|
|
IF DATETOG THEN MOVECHARS(DATEBUFF,PAGENUM[5],0,6,9) ; 00725000
|
|
IF REVTOG THEN MOVECHARS ( REVB[0],PAGENUM[1],0,0,8); 00725100
|
|
IF DOCDEBUG THEN 00725200
|
|
BEGIN 00725300
|
|
WRITE(ZAR[*],FCOLS) ; ZPL(ZF,1,ZAR) ; 00725400
|
|
END ; 00725500
|
|
IF NOT (NOPAGETOG OR FLOWTOG) THEN ZPL(ZF,1,PAGENUM); 00725600
|
|
IF NOPAGETOG THEN ZPL(ZF,1,BLANKARRAY); 00725700
|
|
IF CONTPAGEN = 0 THEN CLEAR (ACONT,0) ELSE 00725800
|
|
BEGIN 00725900
|
|
OCTTODEC (CONTPAGEN,ACONT); 00726000
|
|
FOR IJUNK~ 5 STEP 1 UNTIL 7 DO 00726100
|
|
IF NOT CHECKCHAR (ACONT,IJUNK,"0") THEN 00726200
|
|
BEGIN 00726300
|
|
CLEARCHAR (ACONT,0,IJUNK); 00726400
|
|
IJUNK ~ 9; 00726500
|
|
END; 00726600
|
|
MOVECHARS (ACONT,CONTBUF[8],5,6,3); 00726700
|
|
IF NOT (NOPAGETOG OR FLOWTOG) THEN ZPL(ZF,1,CONTBUF[*]); 00726800
|
|
END; 00726900
|
|
IF (TITLEFULL AND DOCTOG) OR (HOLDFLOW AND TIGHTFULL) THEN00727000
|
|
BEGIN 00727100
|
|
IF TITLECHANGE THEN PATCHPAGE ~ TRUE; 00727200
|
|
IF TUNDERTOG THEN 00727300
|
|
BEGIN 00727400
|
|
ZPL(ZF,1,DOCTITLE); ZPL(ZF,1,TUNDERBUFF); 00727500
|
|
END ELSE ZPL(ZF,2,DOCTITLE) ; ZPL(ZF,1,BLANKARRAY) ; 00727600
|
|
END ELSE IF NOT FLOWTOG THEN 00727700
|
|
ZPL(ZF,1,BLANKARRAY); 00727800
|
|
IF TABHEAD THEN 00727900
|
|
BEGIN 00728000
|
|
ZPL(ZF,1,BLANKARRAY); 00728100
|
|
IF THUNDTOG THEN 00728200
|
|
BEGIN 00728300
|
|
FOR I~ 0 STEP 1 UNTIL THPOS-3 DO 00728400
|
|
ZPL(ZF,ZSP,TABARR[I,*]); 00728500
|
|
ZPL(ZF,1,TABARR[THPOS-2,*]); 00728600
|
|
ZPL(ZF,ZSP,TABARR[THPOS-1,*]); 00728700
|
|
END ELSE 00728800
|
|
FOR I~ 0 STEP 1 UNTIL THPOS-1 DO 00728900
|
|
ZPL(ZF,ZSP,TABARR[I,*]); 00729000
|
|
END; 00729100
|
|
NOTFIRSTDOCPAGE ~ TRUE ; 00729200
|
|
END NEWDOCPAGE; 00729300
|
|
STREAM PROCEDURE INDEXBLANKS(A,B,N); VALUE N; 00729302
|
|
BEGIN LABEL L,K,M,P; 00729304
|
|
SI~A; DI~B; 00729306
|
|
L: IF SC= " " THEN BEGIN DS~CHR; GO TO L; END ; 00729308
|
|
N( K:IF SC=" " THEN BEGIN DS~ CHR ; M: IF SC= " " THEN 00729310
|
|
BEGIN SI~SI+1; GO TO M; END END ELSE 00729312
|
|
BEGIN IF SC="%" THEN JUMP OUT TO P; 00729314
|
|
DS~CHR; GO TO K; END;); 00729316
|
|
P: 00729318
|
|
END ; 00729320
|
|
00729400
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * ; 00729500
|
|
PROCEDURE PARJUSTIFY (A,LASTP,LMARGIN) ; VALUE LASTP,LMARGIN ; 00729600
|
|
ARRAY A[0]; INTEGER LASTP,LMARGIN ; 00729700
|
|
COMMENT JUSTIFIES RIGHT MARGIN OF TEXT-MODE LINE ; 00729800
|
|
BEGIN 00729900
|
|
LABEL OK ; 00730000
|
|
LABEL ENDEXIT ; 00730100
|
|
ARRAY B[0:15] ; 00730200
|
|
INTEGER NWDS,NBLANKS,NCHARS, FIRSTP,LB,RB ; 00730300
|
|
STREAM PROCEDURE BLANKMARGINS(S,LBLANKS,RBLANKS,NWDS) ; VALUE NWDS ; 00730400
|
|
COMMENT RETURNS WIDTH OF LEFT (LBLANKS) AND RT (RBLANKS) MARGINS ; 00730500
|
|
BEGIN 00730600
|
|
LOCAL T ; 00730700
|
|
LABEL L,LL ; 00730800
|
|
SI ~ S ; DI ~ T ; 00730900
|
|
NWDS(8(IF SC ! " " THEN JUMP OUT 2 TO L ; 00731000
|
|
SI ~ SI + 1 ; DI ~ DI + 8 ;)) ; 00731100
|
|
L: T ~ DI ; DI ~ LBLANKS ; SI ~ LOC T ; DS ~ 1 WDS ; 00731200
|
|
TALLY ~ 0 ; T ~ TALLY ; 00731300
|
|
SI ~ S ; NWDS(SI ~ SI + 8); SI ~ SI - 1 ; DI ~ T ; 00731400
|
|
NWDS(8(IF SC ! " " THEN JUMP OUT 2 TO LL ; 00731500
|
|
SI ~ SI - 1 ; DI ~ DI + 8 ;)) ; 00731600
|
|
LL: T ~ DI ; DI ~ RBLANKS ; SI ~ LOC T ; DS ~ 1 WDS ; 00731700
|
|
END BLANKMARGINS ; 00731800
|
|
INTEGER STREAM PROCEDURE COUNTBLANKS(S,SPOS,N) ; 00731900
|
|
VALUE SPOS , N ; 00732000
|
|
BEGIN 00732100
|
|
LABEL L ; 00732200
|
|
SI ~ S ; SI ~ SI + SPOS ; TALLY ~ 0 ; 00732300
|
|
N(IF SC = " " THEN TALLY ~ TALLY + 1 ; 00732400
|
|
IF SC = "%" THEN JUMP OUT 1 TO L ; 00732500
|
|
SI ~ SI + 1 ) ; 00732600
|
|
L: COUNTBLANKS ~ TALLY ; 00732700
|
|
END COUNTBLANKS ; 00732800
|
|
STREAM PROCEDURE FIXTERM(D) ; 00732801
|
|
BEGIN 00732803
|
|
DI ~D ; DS ~ 8 LIT "%LLANFPG" ; 00732805
|
|
END FIXTERM ; 00732807
|
|
STREAM PROCEDURE JUSTIFY(S,SPOS,D,DPOS,N) ; 00732900
|
|
VALUE SPOS,DPOS,N ; 00733000
|
|
BEGIN 00733100
|
|
LOCAL LOCDI,STOP ; 00733101
|
|
LABEL L1,L2,L3,L4,EXIT ; 00733200
|
|
LABEL L5,L6 ; 00733201
|
|
DI ~ LOC STOP ; DS ~ 8 LIT "%LLANFPG" ; 00733202
|
|
SI ~ S ; SI ~ SI + SPOS ; 00733300
|
|
DI ~ D ; DI ~ DI + DPOS ; 00733400
|
|
N(L3: 00733500
|
|
IF SC = "%" THEN 00733600
|
|
BEGIN 00733602
|
|
LOCDI ~ DI ; 00733604
|
|
DI ~ LOC STOP ; 00733606
|
|
IF 8 SC = DC THEN 00733608
|
|
JUMP OUT 1 TO EXIT ; 00733610
|
|
SI ~ SI - 8 ; DI ~ LOCDI ; 00733612
|
|
END ; 00733614
|
|
IF SC = """ THEN 00733620
|
|
BEGIN 00733622
|
|
L5: DS ~ 1 CHR ; IF SC ! """ THEN GO TO L5 ; 00733624
|
|
END ; 00733626
|
|
DS ~ 1 CHR ; 00733700
|
|
IF SC = " "THEN 00733800
|
|
BEGIN 00733900
|
|
DS ~ 1 CHR ; DS ~ 1 LIT " " ; 00734000
|
|
GO TO L1 ; 00734100
|
|
END ; 00734200
|
|
IF SC = "%" THEN 00734300
|
|
BEGIN 00734302
|
|
LOCDI ~ DI ; 00734304
|
|
DI ~ LOC STOP ; 00734306
|
|
IF 8 SC = DC THEN 00734308
|
|
JUMP OUT 1 TO EXIT ; 00734310
|
|
SI ~ SI - 8 ; DI ~ LOCDI ; 00734312
|
|
END ; 00734314
|
|
GO TO L3 ; 00734400
|
|
L1: ) ; 00734500
|
|
L2: 00734600
|
|
IF SC = "%" THEN 00734601
|
|
BEGIN 00734603
|
|
LOCDI ~ DI ; 00734605
|
|
DI ~ LOC STOP ; 00734607
|
|
IF 8 SC = DC THEN 00734609
|
|
GO TO EXIT ; 00734611
|
|
SI ~ SI - 8 ; DI ~ LOCDI ; 00734613
|
|
END ; 00734615
|
|
IF SC = """ THEN 00734617
|
|
BEGIN 00734619
|
|
L6: DS ~ 1 CHR ; IF SC = """ THEN 00734621
|
|
BEGIN 00734623
|
|
DS ~ 1 CHR ; GO TO L2 ; 00734625
|
|
END ELSE 00734627
|
|
GO TO L6 ; 00734629
|
|
END ; 00734631
|
|
DS ~ 1 CHR ; GO TO L2 ; 00734700
|
|
EXIT: 00734800
|
|
END JUSTIFY ; 00734900
|
|
IF DONTJUSTIFY THEN GO TO ENDEXIT ; 00735000
|
|
NWDS ~ 10 ; NCHARS ~ 80 ; 00735100
|
|
FIXTERM(A[10]) ; 00735200
|
|
BLANKMARGINS(A,LB,RB,NWDS) ; 00735300
|
|
IF LB = NCHARS THEN GO TO OK ; 00735400
|
|
CLEAR(B,14) ; 00735500
|
|
COMMENT SET LB TO MAX(FIRST CHAR, LEFT MARGIN) ; 00735600
|
|
IF LB < LMARGIN THEN 00735700
|
|
BEGIN 00735800
|
|
LB ~ LMARGIN ; 00735900
|
|
MOVECHARS(A[0],B[0],0,0,LB); 00736000
|
|
END ; 00736100
|
|
IF LB + RB } 63 THEN GO TO OK ; 00736200
|
|
COMMENT CHICKEN OUT ON ODD NUMBER OF QUOTES; 00736202
|
|
IF COUNTQUOTES(A,LB,80-LB) MOD 2 ! 0 THEN GO TO OK; 00736203
|
|
FIRSTP ~ LB ; % OUTPUT START POINTER 00736300
|
|
NBLANKS ~ LASTP - 80 + RB ; 00736400
|
|
IF NBLANKS { 0 THEN GO TO OK ; 00736500
|
|
JUSTIFY(A[LB DIV 8],LB.[45:3],B[FIRSTP DIV 8], 00736600
|
|
FIRSTP.[45:3] , NBLANKS ) ; 00736700
|
|
MOVEWORDS(B,A,10) ; 00736800
|
|
OK: 00736900
|
|
CLEARCHAR(A[10],0,8) ; 00737000
|
|
ENDEXIT: 00737100
|
|
END PARJUSTIFY ; 00737200
|
|
00737300
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00737400
|
|
PROCEDURE PRINTDOCUMENT ; 00737500
|
|
COMMENT DOES ALL WORK OF EDITING A DOCUMENT ; 00737600
|
|
BEGIN 00737700
|
|
ARRAY DOCONTENTS [0:500, 0:14], DOCBUFF [0:14]; 00737800
|
|
INTEGER LBLANKS,RBLANKS,NCHRS,POINT,CONTIND,I, 00737900
|
|
NCHARS,TABSIZE,FORMP,COLPOS,IJUNK,ITEMP ; 00738000
|
|
INTEGER PREVCOL ; 00738100
|
|
INTEGER SVPARP; 00738102
|
|
BOOLEAN INDENTERR,PAREMPTY; 00738200
|
|
BOOLEAN FIRSTEQUAL; 00738300
|
|
BOOLEAN PINDEXT; 00738302
|
|
BOOLEAN GLOBALDEFINETOG ; 00738303
|
|
BOOLEAN DOCOK ; 00738304
|
|
BOOLEAN TEMPPAGETOG ; 00738400
|
|
BOOLEAN FIRSTPARIDTOG ; 00738500
|
|
LABEL NEXT,SEARCH,NEWPAGE,EXIT ; 00738600
|
|
LABEL QUITL,PARSCAN,NEXT1 ; 00738700
|
|
LABEL MOREID ; 00738800
|
|
LABEL DEFOK ; 00738801
|
|
LABEL LA1; 00738900
|
|
LABEL PATSCAN,MOREPAT,MORECODE,MORE ; 00739000
|
|
INTEGER NUMVALUE,NEXTAVAILBIT,NEXTAVAILCOL,WORD,CHAR ; 00739100
|
|
SWITCH FORMAT BOXFORM ~ 00739200
|
|
(10("-----")) , 00739300
|
|
(":",10(" "),10("1"),10("2"),10("3"),8("4"),":") , 00739400
|
|
(":",4("0123456789"),"01234567:"), 00739500
|
|
(10("-----")) ; 00739600
|
|
FORMAT FCONTENTS(X30,"TABLE OF CONTENTS") ; 00739700
|
|
COMMENT DOCUMENT* 31 * * * * * * * * * * * * * * * * * * * * * * * * ; 00739800
|
|
STREAM PROCEDURE BLANKMARGINS(S,LBLANKS,RBLANKS) ; 00739900
|
|
COMMENT RETURNS WIDTH OF LEFT (LBLANKS) AND RT (RBLANKS) MARGINS ; 00740000
|
|
BEGIN 00740100
|
|
LOCAL T ; 00740200
|
|
LABEL L,LL ; 00740300
|
|
SI ~ S ; DI ~ T ; 00740400
|
|
9(8(IF SC ! " " THEN JUMP OUT 2 TO L ; 00740500
|
|
SI ~ SI + 1 ; DI ~ DI + 8 ;)) ; 00740600
|
|
L: T ~ DI ; DI ~ LBLANKS ; SI ~ LOC T ; DS ~ 1 WDS ; 00740700
|
|
TALLY ~ 0 ; T ~ TALLY ; 00740800
|
|
SI ~ S ; 9(SI ~ SI + 8) ; SI ~ SI - 1 ; DI ~ T ; 00740900
|
|
9(8(IF SC ! " " THEN JUMP OUT 2 TO LL ; 00741000
|
|
SI ~ SI - 1 ; DI ~ DI + 8 ;)) ; 00741100
|
|
LL: T ~ DI ; DI ~ RBLANKS ; SI ~ LOC T ; DS ~ 1 WDS ; 00741200
|
|
END BLANKMARGINS ; 00741300
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * ; 00741400
|
|
STREAM PROCEDURE SETDOTS(D,N) ; 00741500
|
|
VALUE N ; 00741600
|
|
COMMENT USED IN INDEX ENTRIES ; 00741700
|
|
BEGIN 00741800
|
|
DI ~ D ; N(DS ~ 8 LIT ". . . . " ) ; 00741900
|
|
END SETDOTS ; 00742000
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * ; 00742100
|
|
STREAM PROCEDURE COUNTABPOS(S,SPOS,NCHAR,LBLANKS,RBLANKS) ; 00742200
|
|
VALUE SPOS ; 00742300
|
|
COMMENT KEEPS TRACK OF POSITION IN HANDLING TAB CONTROL ; 00742400
|
|
BEGIN 00742500
|
|
LABEL L1,L2 ; 00742600
|
|
LABEL L3; 00742700
|
|
LOCAL T1,T2 ; 00742800
|
|
SI ~ S ; SI ~ SI + SPOS ; DI ~ T1; 00742900
|
|
9(8( IF SC ! " " THEN JUMP OUT 2 TO L1 ; 00743000
|
|
SI ~ SI + 1 ; DI ~ DI + 8 )) ; 00743100
|
|
L1: T2 ~ SI ; T1 ~ DI ; DI ~ LBLANKS ; SI ~ LOC T1 ; DS~1 WDS;00743200
|
|
TALLY ~ 0 ; T1 ~ TALLY ; 00743300
|
|
SI ~ T2 ; DI ~ T1 ; 00743400
|
|
9(8(IF SC = "/" THEN JUMP OUT 2 TO L2 ; 00743500
|
|
SI ~ SI + 1 ; DI ~ DI + 8 )) ; 00743600
|
|
L2: T2~SI; 00743700
|
|
T1~DI; DI~NCHAR; SI~LOC T1; DS ~WDS; 00743800
|
|
TALLY ~0; SI~ T2; 9(8(SI ~SI-1; IF SC ! " " THEN 00743900
|
|
JUMP OUT 2 TO L3; TALLY ~TALLY +1;)); 00744000
|
|
L3: IF SC = "/" THEN TALLY ~ TALLY + 1; 00744100
|
|
T1 ~ TALLY ; SI ~ LOC T1; DI~ RBLANKS; DS ~ WDS; 00744200
|
|
END COUNTABPOS ; 00744300
|
|
DEFINE FINDASTERCONTROL = ASTERTOG ~ FALSE ; 00744400
|
|
DO READATAPE UNTIL ASTERTOG ; GO TO NEXT1 # ; 00744500
|
|
INTEGER GLYNMON ; 00744501
|
|
COMMENT ; 00744503
|
|
COMMENT 00744505
|
|
MONITOR LINE (CODECOUNTOG,CODELINECOUNT,MORECODE, 00744507
|
|
DOCOK,DEFOK, 00744509
|
|
CODETOG,STARTCODEFLAG,SEARCH,DOCLISTFLAG,DOCLISTOG, 00744511
|
|
PERCENTOG,NEXT1,NEXT) ; 00744513
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"PRINTD","OCUMEN") ;00744600
|
|
IF FINALDOCTOG THEN IF NOT LEAVETOG THEN PATCHLETTER~" "; 00744700
|
|
STARTCODEFLAG ~ TRUE ; FIRSTCODELINE ~ FALSE ; 00744800
|
|
TITLEFULL ~ FALSE ; 00744900
|
|
NDOCDEFS ~ 0 ; 00745000
|
|
GLOBALDEFINETOG ~ FALSE ; 00745001
|
|
MORE: NOTFIRSTDOCPAGE ~ FALSE ; 00745100
|
|
VOLUME ~VOLUME+1; 00745200
|
|
PAGEQUAL ~ 0; 00745300
|
|
DECIMALSTOG ~ FALSE; 00745400
|
|
TITLECHANGE ~ FALSE ; 00745500
|
|
CLEAR( DOCTITLE,14) ; CLEAR(DOCBUFF,14) ; 00745600
|
|
CONTIND ~ PAGEN ~ NLINES ~ 0 ; 00745700
|
|
TUNDERTOG ~ FALSE ; 00745800
|
|
MAXLINES ~ ZLCOUNTMAX; 00745900
|
|
ZSPERM ~ IF DOUBLEONLY THEN 2 ELSE 1; 00746000
|
|
PAGEID ~ " PAGE "; 00746100
|
|
CLEARTITLETOG ~ TRUE ; 00746200
|
|
IF NOT GLOBALDEFINETOG THEN 00746201
|
|
BEGIN 00746202
|
|
FOR IJUNK ~ 1 STEP 1 UNTIL NDOCDEFS DO 00746300
|
|
DOCDEFLINKS[IJUNK] ~ 0 ; NDOCDEFS ~ 0 ; 00746400
|
|
END ; 00746401
|
|
LOOKFORSTAR ~ FALSE; 00746500
|
|
SEARCH: 00746600
|
|
DOCLISTFLAG ~ FALSE ; 00746700
|
|
LOOKFORSTAR ~ FALSE; 00746800
|
|
DO SCAN UNTIL Q = "7COMME" ; 00746900
|
|
SCAN ; IF Q ! "8DOCUM" THEN GO TO SEARCH ; 00747000
|
|
IF DOCOK THEN GO TO DEFOK ; 00747001
|
|
IF NOT FINDCHAR(NCR,"*") THEN 00747002
|
|
IF NOT GLOBALDEFINETOG THEN 00747003
|
|
IF NOT (FINDCHAR(NCR,""") OR FINDCHAR(NCR,"%")) THEN 00747005
|
|
BEGIN 00747007
|
|
SCAN ; IF Q ="6DEFIN" OR Q = "7DEFIN" THEN 00747009
|
|
GLOBALDEFINETOG ~TRUE ; 00747011
|
|
GO TO DEFOK ; 00747013
|
|
END ; 00747015
|
|
IF DOCIDTOG AND FIRSTDOCIDTOG THEN 00747017
|
|
BEGIN 00747019
|
|
IF NOT FINDCHAR(NCR,""") THEN GO TO SEARCH ; 00747021
|
|
SCAN ; 00747023
|
|
IF NOT WORDEQUAL(FIRSTDOCID[1],ACCUM[1],9) THEN 00747025
|
|
GO TO SEARCH ; 00747027
|
|
FIRSTDOCIDTOG ~ FALSE ; 00747029
|
|
END ELSE 00747031
|
|
IF DOCIDTOG AND LASTDOCIDTOG THEN 00747033
|
|
BEGIN 00747035
|
|
IF FINDCHAR(NCR,""")THEN 00747037
|
|
BEGIN 00747039
|
|
SCAN ; 00747041
|
|
IF WORDEQUAL(LASTDOCID[1],ACCUM[1],9) THEN 00747043
|
|
LASTDOCIDTOG ~ FALSE ; 00747045
|
|
END ; 00747047
|
|
END ; 00747049
|
|
DEFOK: 00747090
|
|
DOCOK ~ TRUE ; 00747091
|
|
LOOKFORSTAR ~ TRUE; 00747100
|
|
DOCOUTPUT ~ FALSE; 00747200
|
|
IF DOCLISTOG THEN 00747300
|
|
IF ASMLTOG THEN 00747400
|
|
BEGIN 00747500
|
|
CLEAR(LISTBUFFER,14) ; 00747600
|
|
MOVEWORDS(ASMLBUFF[DEVICE,*],LISTBUFFER,10) ; 00747700
|
|
ZPL(0,2,LISTBUFFER) ; 00747800
|
|
END ELSE 00747900
|
|
BEGIN 00748000
|
|
CLEAR(LISTBUFFER,14) ; 00748100
|
|
MOVEWORDS(GLOBE,LISTBUFFER[2],9) ; 00748200
|
|
MOVEWORDS(SEQ,LISTBUFFER[11],1) ; 00748300
|
|
ZPL(0,2,LISTBUFFER) ; 00748400
|
|
END ; 00748500
|
|
DOCOUTPUT ~ TRUE ; 00748600
|
|
DOCUMENTFOUND ~ DOCLISTFLAG ~ TRUE ; 00748700
|
|
IF EXAMINE(NCR) = "*" THEN 00748800
|
|
BEGIN 00748900
|
|
ASTERTOG ~ TRUE ; ASTERCONTROLS ; GO TO NEXT1; 00749000
|
|
END ; 00749100
|
|
NEXT: READATAPE ; 00749200
|
|
NEXT1: ASTERTOG ~ FALSE ; 00749300
|
|
IF ENDTOG THEN 00749400
|
|
BEGIN 00749500
|
|
DOCLISTFLAG ~ FALSE ; GO TO SEARCH ; 00749600
|
|
END ; 00749700
|
|
IF CLEARTITLETOG THEN 00749800
|
|
BEGIN 00749900
|
|
TITLEFULL ~ FALSE ; 00750000
|
|
CLEAR(DOCTITLE,14) ; CLEARTITLETOG ~ FALSE ; 00750100
|
|
END ; 00750200
|
|
IF MISSTOG THEN 00750300
|
|
BEGIN 00750400
|
|
MISSTOG ~ FALSE ; GO TO NEXT ; 00750500
|
|
END ; 00750600
|
|
IF DOCNAMES THEN 00750602
|
|
BEGIN 00750604
|
|
SCAN; 00750606
|
|
WHILE DOCNAMES DO 00750608
|
|
BEGIN 00750610
|
|
IF DOCINDEXTOG THEN 00750612
|
|
IF RESULT ! 2 THEN 00750614
|
|
IF SORTSCRAMBLE THEN BUILDXREF; 00750616
|
|
SCAN; 00750618
|
|
END ; 00750620
|
|
GO TO NEXT1; 00750622
|
|
END ; 00750624
|
|
IF QUITOG THEN GO TO QUITL ; 00750700
|
|
IF (GLOSSTOG OR PARTOG OR PATTOG)THEN 00750800
|
|
CENTERTOG~TITLETOG~CODETOG~INDENTOG~ FALSE; 00750900
|
|
00751000
|
|
IF NOT NOTBLANK THEN GO TO NEXT ; 00751100
|
|
IF SYNTAXTOG OR BNFTOG THEN 00751200
|
|
BEGIN 00751300
|
|
IF NOT DOCSYNTAX THEN 00751400
|
|
DO READATAPE UNTIL DOCSYNTAX OR QUITOG ; 00751500
|
|
END ELSE IF DOCSYNTAXONLY THEN 00751600
|
|
BEGIN 00751700
|
|
FINDASTERCONTROL ; GO TO NEXT ; 00751800
|
|
END ; 00751900
|
|
IF BNFTOG THEN 00752000
|
|
BEGIN 00752100
|
|
LABEL MOREBNF ; 00752200
|
|
LABEL MORE ; 00752300
|
|
MOREBNF : 00752400
|
|
QUITOG ~ QUITOG ; 00752500
|
|
Q ~ Q ; 00752600
|
|
IF Q ! "1< " OR NOT ASTERTOG THEN 00752700
|
|
DO BEGIN 00752800
|
|
SCAN ; 00752900
|
|
IF ASTERTOG THEN GO TO NEXT1 ; 00753000
|
|
IF Q = "1< " THEN GO TO MORE ; 00753100
|
|
IF RESULT =1 THEN 00753200
|
|
IF SORTSCRAMBLE THEN BUILDXREF ; 00753300
|
|
IF Q = "1{ " AND NOT FINDCHAR(NCR,"/") THEN 00753400
|
|
DO SCAN UNTIL Q = "1} " OR ASTERTOG ; 00753500
|
|
IF ASTERTOG THEN GO TO NEXT1 ; 00753600
|
|
END UNTIL FALSE ; 00753700
|
|
MORE: 00753800
|
|
Q ~ Q ; 00753900
|
|
IF ASTERTOG THEN GO TO NEXT1 ; 00754000
|
|
IF NOT FINDCHAR(NCR,"/") THEN 00754100
|
|
BEGIN 00754200
|
|
CLEAR(BNFARRAY,14) ; 00754300
|
|
BUILDBNFID(NCR,NCR,COUNT,BNFARRAY) ; 00754400
|
|
IF COUNT > 62 THEN 00754500
|
|
BEGIN 00754600
|
|
DOCERROR(28) ; FINDASTERCONTROL ; 00754700
|
|
END ; 00754800
|
|
MOVECHARS(BNFARRAY,ACCUM[1],0,3,COUNT) ; 00754900
|
|
ACCUM[1].[12:6] ~ COUNT ; Q ~ ACCUM[1] ; 00755000
|
|
COUNT ~ COUNT ; NCR ~ NCR ; 00755100
|
|
IF NOT CHECKCHAR(ACCUM[1],2+COUNT,">") THEN 00755200
|
|
BEGIN 00755300
|
|
DOCERROR(29); FINDASTERCONTROL ; 00755400
|
|
END ; 00755500
|
|
IF SORTSCRAMBLE THEN BUILDXREF ; 00755600
|
|
END ; 00755700
|
|
GO TO MOREBNF ; 00755800
|
|
END ; 00755900
|
|
GLYNMON ~ 1 ; 00755910
|
|
DOCLISTFLAG ~ DOCLISTFLAG ; 00755912
|
|
DOCLISTOG ~ DOCLISTOG ; 00755914
|
|
CODECOUNTOG ~ CODECOUNTOG ; 00755916
|
|
CODELINECOUNT ~ CODELINECOUNT ; 00755918
|
|
CODETOG ~ CODETOG ; 00755920
|
|
STARTCODEFLAG ~ STARTCODEFLAG ; 00755922
|
|
PERCENTOG ~ PERCENTOG ; 00755924
|
|
GLYNMON ~ 2 ; 00755926
|
|
MORECODE: IF CODETOG AND STARTCODEFLAG THEN 00756000
|
|
BEGIN 00756100
|
|
PARTOG ~GLOSSTOG ~ FALSE ; 00756200
|
|
STARTCODEFLAG ~ FALSE ; FIRSTCODELINE ~ TRUE ; 00756300
|
|
MOVEWORDS(GLOBE,JUNKARRAY,10) ; CLEAR(GLOBE,8) ; 00756400
|
|
FILL GLOBE[*] WITH OCT6060606330256026, 00756500
|
|
OCT4643434666314527,OCT6023462425606263, 00756600
|
|
OCT2151636260216360,OCT6225506425452325, 00756700
|
|
OCT6045644422255160 ; 00756800
|
|
MOVEWORDS(SEQ,GLOBE[6],1) ; 00756900
|
|
IF NOCODESEQ THEN CLEAR(GLOBE,9) ; 00756910
|
|
END ; 00757000
|
|
IF CODECOUNTOG THEN CODELINECOUNT ~ CODELINECOUNT - 1 ; 00757100
|
|
IF CODELINECOUNT = 1 AND NOT DOCONLY THEN 00757200
|
|
DOCLISTFLAG ~ FALSE ; 00757300
|
|
IF (CODETOG AND ((CHECKCHAR(GLOBE,0,"%") OR 00757400
|
|
(CHECKCOMMENT(GLOBE,0) AND (NOT COMMENTOG) 00757500
|
|
AND ( NOT CODECOUNTOG))) 00757501
|
|
OR (CODECOUNTOG AND CODELINECOUNT = 0))) THEN 00757600
|
|
BEGIN 00757700
|
|
STARTCODEFLAG ~ TRUE ; 00757800
|
|
ENDCODETOG ~ TRUE ; 00757900
|
|
IF CODEPERCENTOG AND CHECKCHAR(GLOBE,0,"%") THEN 00757910
|
|
BEGIN 00757912
|
|
CODETOG ~ FALSE ; PERCENTOG ~ TRUE ; 00757914
|
|
GO TO NEXT1 ; 00757916
|
|
END ; 00757918
|
|
GO TO SEARCH ; 00758000
|
|
END ; 00758100
|
|
IF NOT NOTBLANK THEN GO TO NEXT ; 00758200
|
|
IF PERCENTOG THEN 00758300
|
|
BEGIN 00758400
|
|
IF CHECKCHAR(GLOBE,0,"%") THEN 00758500
|
|
BEGIN 00758600
|
|
CLEAR(DOCBUFF,14) ; 00758700
|
|
CLEARCHAR(GLOBE,0,1) ; MOVEWORDS(GLOBE,DOCBUFF,9) ; 00758800
|
|
END ELSE 00758900
|
|
BEGIN 00759000
|
|
PERCENTOG ~ FALSE ; GO TO SEARCH ; 00759100
|
|
END ; 00759200
|
|
END ; 00759300
|
|
IF WIDETOG THEN 00759302
|
|
BEGIN 00759304
|
|
CLEAR(DOCBUFF,14) ; 00759306
|
|
IF NOT CHECKCHAR(GLOBE[8],7,"%") THEN 00759308
|
|
MOVEWORDS(GLOBE,DOCBUFF,9) ; 00759310
|
|
READATAPE ; 00759312
|
|
MOVEWORDS(GLOBE,DOCBUFF[9],6) ; 00759314
|
|
END ELSE 00759316
|
|
IF CENTERTOG THEN 00759400
|
|
BEGIN 00759500
|
|
BLANKMARGINS(GLOBE,LBLANKS,RBLANKS) ; 00759600
|
|
CLEAR(DOCBUFF,14) ; 00759700
|
|
POINT ~ (LBLANKS + RBLANKS) DIV 2 ; 00759800
|
|
NCHARS ~ 72 - LBLANKS - RBLANKS ; 00759900
|
|
MOVECHARS(GLOBE[LBLANKS DIV 8],DOCBUFF[POINT DIV 8], 00760000
|
|
LBLANKS.[45:3],POINT.[45:3],NCHARS) ; 00760100
|
|
END ELSE 00760200
|
|
IF FORMTOG OR TABTOG THEN 00760300
|
|
BEGIN 00760400
|
|
CLEAR(DOCBUFF,14) ; 00760500
|
|
FORMP ~ 0 ; 00760600
|
|
SETCHAR(GLOBE[9],0,"/") ; 00760700
|
|
SETCHAR(GLOBE[9],1,"/") ; 00760800
|
|
FOR IJUNK ~ 1 STEP 1 UNTIL NFORMTABS DO 00760900
|
|
BEGIN 00761000
|
|
COUNTABPOS(GLOBE[FORMP DIV 8],FORMP.[45:3],NCHARS, 00761100
|
|
LBLANKS,RBLANKS) ; 00761200
|
|
FORMP ~FORMP +LBLANKS; 00761300
|
|
TABSIZE ~IF NCHARS =0 THEN 0 ELSE NCHARS - RBLANKS ; 00761400
|
|
COLPOS ~ FORMCOLS[IJUNK] - 1 ; 00761500
|
|
IF TABTOG THEN 00761600
|
|
IF TABSIZE > (ITEMP ~ FORMCOLS[IJUNK+1] - COLPOS) THEN 00761700
|
|
BEGIN 00761800
|
|
DOCERROR(36) ; 00761900
|
|
GO TO NEXT ; 00762000
|
|
END ; 00762100
|
|
IF FORMTOG THEN 00762200
|
|
BEGIN 00762300
|
|
IF IJUNK = 1 THEN PREVCOL ~ 0 ELSE 00762400
|
|
PREVCOL ~ FORMCOLS[IJUNK-1] ; 00762500
|
|
IF TABSIZE > (ITEMP ~ COLPOS - PREVCOL) THEN 00762600
|
|
BEGIN 00762700
|
|
DOCERROR(36); 00762800
|
|
GO TO NEXT ; 00762900
|
|
END ; 00763000
|
|
COLPOS ~ COLPOS - TABSIZE + 1 ; 00763100
|
|
END ; 00763200
|
|
IF COLPOS < 0 THEN 00763300
|
|
BEGIN 00763400
|
|
DOCERROR(17) ; 00763500
|
|
GO TO NEXT; 00763600
|
|
END ; 00763700
|
|
MOVECHARS(GLOBE[FORMP DIV 8],DOCBUFF[COLPOS DIV 8], 00763800
|
|
FORMP.[45:3],COLPOS.[45:3],TABSIZE) ; 00763900
|
|
FORMP ~ FORMP + NCHARS +1; 00764000
|
|
END ; 00764100
|
|
END ELSE 00764200
|
|
IF INDENTOG THEN 00764300
|
|
BEGIN 00764400
|
|
BLANKMARGINS(GLOBE,LBLANKS,RBLANKS) ; 00764500
|
|
CLEAR(DOCBUFF,14) ; 00764600
|
|
IF PERCENTOG THEN LBLANKS ~ 0 ; 00764700
|
|
NCHARS ~ 72 - LBLANKS - RBLANKS ; 00764800
|
|
IF (INDENTERR ~ INDENTVAL + NCHARS > 72 ) THEN 00764900
|
|
NCHARS ~ 72 - INDENTVAL ; 00765000
|
|
IF NOT INDEXONLYTOG THEN % DO WHAT YOU DID BEFORE. 00765010
|
|
MOVECHARS(GLOBE[LBLANKS DIV 8],DOCBUFF[INDENTVAL DIV 8], 00765100
|
|
LBLANKS.[45:3], INDENTVAL.[45:3], NCHARS ) 00765200
|
|
ELSE % DONT INDENT DOCUMENT. 00765210
|
|
MOVECHARS (GLOBE[LBLANKS DIV 8], DOCBUFF, 00765220
|
|
LBLANKS.[45:3], 0, NCHARS) ; 00765230
|
|
IF INDENTERR THEN DOCERROR(8) ; 00765300
|
|
END ; 00765400
|
|
IF TITLETOG THEN 00765500
|
|
BEGIN 00765600
|
|
CLEAR(DOCTITLE,14) ; 00765700
|
|
TITLEFULL ~ TRUE ; 00765800
|
|
IF NOT ( INDENTOG OR CENTERTOG ) THEN 00765900
|
|
MOVEWORDS(GLOBE,DOCTITLE,9) ELSE 00766000
|
|
MOVEWORDS(DOCBUFF,DOCTITLE,15) ; 00766100
|
|
TITLECHANGE~PATCHCARD OR ASTERPATCHED; 00766200
|
|
IF TUNDERTOG THEN FIXUNDERLINE(DOCTITLE,TUNDERBUFF); 00766300
|
|
END ; 00766400
|
|
NEWPAGE: IF PAGETOG AND NOT DOCXREFTOG THEN 00766500
|
|
BEGIN 00766600
|
|
NLINES ~ MAXLINES; ZPL(ZF,0,BLANKARRAY); 00766700
|
|
PAGETOG ~FALSE; 00766800
|
|
PAGEINC~SAVEPAGEINC; 00766900
|
|
END ; 00767000
|
|
IF INSERTOG THEN 00767100
|
|
BEGIN 00767200
|
|
PAGETOG~TRUE; 00767300
|
|
NLINES ~ MAXLINES; ZPL(ZF,0,BLANKARRAY); 00767400
|
|
INSERTOG~PAGETOG~FALSE; 00767500
|
|
END; 00767600
|
|
IF SKIPTOG AND NOT DOCXREFTOG THEN 00767700
|
|
BEGIN 00767800
|
|
SKIPTOG~ FALSE; 00767900
|
|
IF PUNCHPAGES THEN PUNCHAFTER ~ TRUE; 00768000
|
|
FOR I ~ 1 STEP 1 UNTIL SKIPVAL DO 00768100
|
|
BEGIN 00768200
|
|
ZPL(ZF,1,BLANKARRAY) ; 00768300
|
|
END; 00768400
|
|
IF PUNCHPAGES THEN 00768500
|
|
BEGIN 00768600
|
|
IF ZSPERM = 2 THEN 00768700
|
|
IF LASTLINE THEN IF NLINES = MAXLINES - 3 THEN 00768800
|
|
ZPL(ZF,1,BLANKARRAY); 00768900
|
|
IF PAGEFULL THEN 00769000
|
|
BEGIN 00769100
|
|
ZPL(ZF,ZSPERM,BLANKARRAY); 00769200
|
|
NLINES ~ NLINES - ZSPERM; 00769300
|
|
END ; 00769400
|
|
PUNCHAFTER ~ FALSE; 00769500
|
|
END; 00769600
|
|
END ; 00769700
|
|
IF PARTOG THEN 00769800
|
|
BEGIN 00769900
|
|
IF BBB THEN GO TO PARSCAN; 00770000
|
|
PINDEXT~INDEXTOG AND INDEXWORDS>0; 00770002
|
|
INDEXTOG~FALSE; 00770003
|
|
IF PAGEFULL THEN PUNCHAFTER ~ TRUE ; 00770100
|
|
PUNDERTOG ~ UNDERTOG ; PDOUBLETOG ~ DOUBLETOG ; 00770200
|
|
LASTNOSPACE ~ FALSE ; 00770300
|
|
CLEAR(DOCBUFF,14); 00770400
|
|
PARIDTOG ~ IF GLOSSTOG THEN FALSE ELSE SAVEPARIDTOG; 00770500
|
|
FIRSTEQUAL ~ IF GLOSSTOG THEN TRUE ELSE FALSE ; 00770600
|
|
FIRSTPARIDTOG ~FALSE ; 00770700
|
|
IF PARIDTOG THEN 00770800
|
|
BEGIN 00770900
|
|
PARP ~ 0 ; 00771000
|
|
MOREID: SCAN ; MOVECHARS(ACCUM[1],DOCBUFF[PARP DIV 8],3, 00771100
|
|
PARP.[45:3], COUNT); PARP ~ PARP + COUNT ; 00771200
|
|
IF EXAMINE(NCR) ! " " THEN GO TO MOREID ; 00771300
|
|
IF PARP > PARLOW + 5 THEN PARP ~ PARP + PARINDENT ELSE 00771400
|
|
PARP ~ PARLOW + PARINDENT - 1 ; 00771500
|
|
END ELSE 00771600
|
|
PARP ~ PARLOW + PARINDENT - 1 ; 00771700
|
|
IF GLOSSTOG THEN PARP ~ INDENTVAL ; 00771800
|
|
IF GLOSSTOG THEN PARINDENT ~6 ; 00771900
|
|
IF GLOSSTOG THEN PARINDENT ~ 0 ; 00772000
|
|
PAREMPTY ~ TRUE ; 00772100
|
|
BBB ~ TRUE; 00772200
|
|
PARSCAN: DOCSCAN ; 00772300
|
|
IF SEMICOLON AND NOT DOCONLY THEN 00772400
|
|
ASTERTOG ~ ENDTOG ~TRUE ; 00772500
|
|
IF Q = "1= " AND FIRSTEQUAL THEN 00772600
|
|
BEGIN 00772700
|
|
FIRSTEQUAL ~ FALSE; DOCSCAN ; 00772800
|
|
SVPARP~ 00772802
|
|
PARP ~ IF PARP < PARLOW - 1 OR ((PARP=PARLOW - 1) 00772900
|
|
AND CHECKCHAR(DOCBUFF[PARP DIV 8],PARP.[45:3]," ")) 00773000
|
|
THEN PARLOW ELSE PARP + 6; 00773100
|
|
LASTNOSPACE ~ TRUE; 00773200
|
|
END ELSE SVPARP~ PARLOW; 00773300
|
|
IF NOT LASTNOSPACE THEN PARP ~ PARP + 1 ; 00773400
|
|
IF PERIOD THEN IF EXAMINE(NCR) = " " THEN 00773500
|
|
BEGIN 00773600
|
|
SETCHAR (ACCUM[1],3+COUNT, " "); 00773700
|
|
COUNT ~ COUNT + 1; 00773800
|
|
END; 00773900
|
|
LASTNOSPACE~EXAMINE(NCR) ! " " OR Q="1% "; 00774000
|
|
IF COUNT + PARP > PARHIGH+3 AND NOT PERIOD THEN 00774100
|
|
BEGIN 00774200
|
|
IF NOT FIRSTPARIDTOG THEN 00774300
|
|
PARJUSTIFY(DOCBUFF,PARHIGH+3,SVPARP) ELSE 00774400
|
|
FIRSTPARIDTOG ~ FALSE ; 00774500
|
|
END ; 00774600
|
|
SVPARP~PARLOW; 00774602
|
|
IF ASTERTOG OR (COUNT + PARP > PARHIGH+3) THEN 00774700
|
|
IF NOT PAREMPTY THEN 00774800
|
|
IF NOT PERIOD THEN 00774900
|
|
BEGIN 00775000
|
|
IF PUNCHPAGES THEN 00775100
|
|
BEGIN 00775200
|
|
IF PAGEFULL THEN 00775300
|
|
IF NOT PUNCHAFTER THEN 00775400
|
|
BEGIN 00775500
|
|
IF NOT (PAGETOG OR INSERTOG) THEN 00775600
|
|
BEGIN 00775700
|
|
IF SAVESEQ = 0 THEN DOCERROR(33); 00775800
|
|
IF INSTOG THEN 00775900
|
|
BEGIN 00776000
|
|
IF NOT INSERTROW THEN SAVEPAGEN ~ PAGEN; 00776100
|
|
TEMP~ PAGEN +INSINC; 00776200
|
|
INSERTROW~ TRUE; 00776300
|
|
OCTTODEC(TEMP,BLOCKBUFFER[3]); 00776400
|
|
PAGEINC ~INSINC; 00776500
|
|
END; 00776600
|
|
IJUNK ~ SAVESEQ +1; COMMENT 00776700
|
|
IJUNK~IF SAVESEQ{ISEQ-3 THEN SAVESEQ+1 ELSE SAVESEQ; 00776800
|
|
OCTTODEC(IJUNK,BLOCKBUFFER[9]); 00776900
|
|
IJUNK ~ SAVESEQ +2; COMMENT 00777000
|
|
IJUNK~ IF SAVESEQ{ISEQ-3 THEN SAVESEQ+2 ELSE SAVESEQ; 00777100
|
|
CLEAR(OLDBUF[0],14); CLEAR(NEWBUF[0],14); 00777200
|
|
OCTTODEC(SAVESEQ,OLDBUF[9]); 00777300
|
|
OCTTODEC(IJUNK,NEWBUF[9]); 00777400
|
|
I ~ DELTANCR(WORDBUF[10],WORDBUF[11]); J ~ 72-I; 00777500
|
|
MOVECHARS(WORDBUF[0],OLDBUF[0],0,0,J); 00777600
|
|
MOVECHARS(WORDBUF[J DIV 8],NEWBUF[J DIV 8],J.[45:3], 00777700
|
|
J.[45:3],I); 00777800
|
|
IF PUNCHTOG THEN 00777900
|
|
BEGIN 00778000
|
|
IF BLANKTEST(OLDBUF[0],9) THEN 00778100
|
|
WRITE (PUNCH,10,OLDBUF[*]); 00778200
|
|
WRITE(PUNCH,10,BLOCKBUFFER[*]); 00778300
|
|
IF BLANKTEST (NEWBUF[0],9) THEN 00778400
|
|
WRITE(PUNCH,10,NEWBUF[*]); 00778500
|
|
END ELSE 00778600
|
|
BEGIN 00778700
|
|
IF BLANKTEST(OLDBUF[0],9) THEN 00778800
|
|
WRITE(LINE,15,OLDBUF[*]); 00778900
|
|
WRITE(LINE,15,BLOCKBUFFER[*]); 00779000
|
|
IF BLANKTEST (NEWBUF[0],9) THEN 00779100
|
|
WRITE(LINE,15,NEWBUF[*]); 00779200
|
|
END; 00779300
|
|
END; 00779400
|
|
END ELSE 00779500
|
|
IF ASTERTOG THEN 00779600
|
|
ASAVESEQ ~ OLDASEQ ; 00779700
|
|
IF ASTERTOG THEN IF LASTLINE THEN PUNCHAFTER~ TRUE; 00779800
|
|
END; 00779900
|
|
IF NOT REMOTETOG THEN 00780000
|
|
BEGIN 00780100
|
|
IF NOT FINALDOCTOG THEN 00780200
|
|
MOVEWORDS(SEQ,DOCBUFF[14],1) ; 00780300
|
|
IF PATCHEDLINE THEN 00780400
|
|
BEGIN 00780500
|
|
IF LEAVETOG THEN SETCHAR(DOCBUFF[9],4,PATCHLETTER) ELSE 00780600
|
|
SETCHAR(DOCBUFF[10],0,PATCHLETTER); 00780700
|
|
PATCHINBUFF ~ TRUE; 00780800
|
|
END ELSE 00780900
|
|
IF ASTERPATCHED THEN PATCHINBUFF~TRUE; 00781000
|
|
END ; 00781100
|
|
IF NOT DOCXREFTOG THEN 00781200
|
|
BEGIN 00781300
|
|
IF PAGETOG THEN 00781400
|
|
BEGIN 00781500
|
|
PAGETOG ~ FALSE ; 00781600
|
|
TEMPPAGETOG ~ TRUE ; 00781700
|
|
END ; 00781800
|
|
IF PINDEXT THEN 00781802
|
|
BEGIN 00781804
|
|
INTEGER J; 00781806
|
|
CONTIND~CONTIND +1; 00781808
|
|
CLEAR(DOCONTENTS[CONTIND,0],14); 00781810
|
|
SETDOTS(DOCONTENTS[CONTIND,0],9); 00781812
|
|
SETCHAR(DOCBUFF[13],7,"%"); 00781814
|
|
INDEXBLANKS(DOCBUFF,DOCONTENTS[CONTIND,0],INDEXWORDS); 00781816
|
|
SETCHAR(DOCBUFF[13],7," "); 00781818
|
|
MOVECHARS(PAGENUM[7],DOCONTENTS[CONTIND,7], 00781820
|
|
10-PAGECHAR,10-PAGECHAR, IF DECIMALSTOG THEN 00781822
|
|
PAGECHAR+7 ELSE PAGECHAR+6); 00781824
|
|
IF NOT FINALDOCTOG THEN MOVEWORDS(SEQ, 00781826
|
|
DOCONTENTS[CONTIND,14],1); 00781828
|
|
PINDEXT~ FALSE; 00781830
|
|
END ; 00781832
|
|
IF PUNDERTOG THEN 00781900
|
|
FIXUNDERLINE(DOCBUFF,UNDERBUFF) ; 00782000
|
|
IF PUNDERTOG OR NOT PDOUBLETOG THEN 00782100
|
|
ZPL(ZF,1,DOCBUFF) ELSE 00782200
|
|
ZPL(ZF,2,DOCBUFF) ; 00782300
|
|
IF PUNDERTOG THEN ZNOSKIP ~ TRUE; 00782400
|
|
IF PUNDERTOG THEN IF PDOUBLETOG THEN 00782500
|
|
ZPL(ZF,2,UNDERBUFF) ELSE 00782600
|
|
ZPL(ZF,1,UNDERBUFF); 00782700
|
|
PATCHEDLINE ~ FALSE; 00782800
|
|
ZNOSKIP ~ FALSE; 00782900
|
|
CLEAR(DOCBUFF,14) ; 00783000
|
|
PAGETOG ~ TEMPPAGETOG ; 00783100
|
|
TEMPPAGETOG ~ FALSE ; 00783200
|
|
END ; 00783300
|
|
PAREMPTY ~ TRUE ; PARP ~ PARLOW ; 00783400
|
|
GO TO LA1; 00783500
|
|
END; 00783600
|
|
IF PUNCHPAGES THEN IF LASTLINE THEN 00783700
|
|
IF NEWCARD THEN 00783800
|
|
BEGIN 00783900
|
|
NEWCARD ~ FALSE; 00784000
|
|
MOVEWORDS(GLOBE[0],WORDBUF[0],9); 00784100
|
|
MOVEWORDS(NCR,WORDBUF[10],1); 00784200
|
|
MOVEWORDS(LCR,WORDBUF[11],1); 00784300
|
|
MOVEWORDS(NCR,WORDBUF[12],1); 00784400
|
|
SAVESEQ~ISEQ; 00784500
|
|
END ELSE 00784600
|
|
BEGIN 00784700
|
|
MOVEWORDS(NCR,WORDBUF[10],1); 00784800
|
|
END; 00784900
|
|
LA1: 00785000
|
|
IF ASTERTOG THEN GO TO NEXT1; 00785100
|
|
MOVECHARS(ACCUM[1],DOCBUFF[PARP DIV 8],3,PARP.[45:3], 00785200
|
|
COUNT) ; PARP ~ PARP + COUNT ; PAREMPTY ~ FALSE ; 00785300
|
|
PATCHEDLINE ~ PATCHEDLINE OR PATCHCARD; 00785400
|
|
GO TO PARSCAN ; 00785500
|
|
END ; 00785600
|
|
IF PATTOG THEN 00785700
|
|
BEGIN 00785800
|
|
LASTNOSPACE ~ FALSE ; CLEAR(DOCBUFF,14) ; 00785900
|
|
PDOUBLETOG ~ DOUBLETOG ; 00785910
|
|
NEXTAVAILBIT ~ 0 ; NEXTAVAILCOL ~ 1 ; 00786000
|
|
BBB~TRUE; 00786100
|
|
MOREPAT: PARP ~ IF PATBOXTOG THEN NEXTAVAILCOL ELSE 1 ; 00786200
|
|
LASTNOSPACE ~ TRUE ; 00786300
|
|
FIRSTEQUAL ~ TRUE ; PAREMPTY ~ TRUE ; 00786400
|
|
SCAN ; IF PERCENT THEN GO TO MOREPAT ; 00786500
|
|
IF RESULT ! 3 THEN 00786600
|
|
BEGIN 00786700
|
|
DOCERROR(9) ; 00786800
|
|
FINDASTERCONTROL ; 00786900
|
|
END ; 00787000
|
|
DTOCT(ACCUM[1],3,FIRSTBIT,COUNT) ; 00787100
|
|
FIELDSIZE ~ 1 ; 00787200
|
|
SCAN ; IF NOT COLON THEN 00787300
|
|
BEGIN 00787400
|
|
DOCERROR(13) ; 00787500
|
|
FINDASTERCONTROL ; 00787600
|
|
END ; 00787700
|
|
SCAN ; IF RESULT !3 THEN 00787800
|
|
BEGIN 00787900
|
|
DOCERROR(10) ; 00788000
|
|
FINDASTERCONTROL ; 00788100
|
|
END ; 00788200
|
|
IF FIRSTBIT < NEXTAVAILBIT THEN 00788300
|
|
BEGIN 00788400
|
|
DOCERROR(14) ; 00788500
|
|
FINDASTERCONTROL ; 00788600
|
|
END ; 00788700
|
|
IF FIRSTBIT > NEXTAVAILBIT AND PATBOXTOG THEN 00788800
|
|
PARP ~ FIRSTBIT + 1 ; 00788900
|
|
DTOCT(ACCUM[1],3,FIELDSIZE,COUNT) ; 00789000
|
|
LASTBIT ~ FIRSTBIT + FIELDSIZE - 1 ; 00789100
|
|
IF LASTBIT > 47 THEN 00789200
|
|
BEGIN 00789300
|
|
DOCERROR(15) ; 00789400
|
|
FINDASTERCONTROL ; 00789500
|
|
END ; 00789600
|
|
NEXTAVAILBIT ~ LASTBIT + 1 ; NUMVALUE ~ 0 ; 00789700
|
|
IF PATBOXTOG THEN 00789800
|
|
NEXTAVAILCOL ~ NEXTAVAILBIT + 1 ; 00789900
|
|
PATSCAN: 00790000
|
|
SCAN ; 00790100
|
|
IF PERCENT THEN GO TO PATSCAN ; 00790200
|
|
IF NUMSIGN THEN 00790300
|
|
BEGIN 00790400
|
|
SCAN ; 00790500
|
|
IF COMMA THEN NUMVALUE ~ 1 ELSE 00790600
|
|
IF PERIOD THEN NUMVALUE ~ 2 ELSE 00790700
|
|
BEGIN 00790800
|
|
DOCERROR(11) ; 00790900
|
|
FINDASTERCONTROL ; 00791000
|
|
END ; 00791100
|
|
END ; 00791200
|
|
IF FIRSTEQUAL THEN 00791300
|
|
BEGIN 00791400
|
|
FIRSTEQUAL ~ FALSE ; 00791500
|
|
BITFIELDCONVERT(FIRSTBIT,FIELDSIZE,DOCBUFF[PARP DIV 8], 00791600
|
|
PARP.[45:3]) ; PARP ~ PARP + 10 ; 00791700
|
|
PARLOW ~ IF PATBOXTOG THEN NEXTAVAILCOL + 1 ELSE PARP+1 ; 00791800
|
|
END ; 00791900
|
|
IF Q ="1= " THEN 00792000
|
|
BEGIN 00792100
|
|
IF NOT PATBOXTOG THEN PARLOW ~ PARP + 4 ; 00792101
|
|
PARP ~ PARP + 3 ; GO TO PATSCAN ; 00792200
|
|
END ; 00792300
|
|
IF NOT (RTPAREN OR RTBRACK 00792400
|
|
OR LASTNOSPACE) THEN PARP ~ PARP + 1 ; 00792500
|
|
LASTNOSPACE ~ LFPAREN OR LFBRACK OR 00792600
|
|
EXAMINE(NCR) ! " " OR 00792700
|
|
PERCENT OR LESSTHAN ; 00792800
|
|
IF ( ASTERTOG OR (NUMVALUE ! 0 ) OR 00792900
|
|
(((COUNT+PARP) > PARHIGH) AND 00793000
|
|
(((COUNT DIV 2 ) + PARP) > PARHIGH))) 00793100
|
|
AND NOT PAREMPTY THEN 00793200
|
|
IF(NOT (PERIOD OR COMMA OR RTPAREN OR RTBRACK OR 00793300
|
|
MINUS OR SLASH OR COLON OR GREATERTHAN)) OR 00793400
|
|
(NUMVALUE ! 0 ) THEN 00793500
|
|
BEGIN 00793600
|
|
INTEGER BLOCKEXTENDER ; 00793700
|
|
IF NOT REMOTETOG THEN 00793800
|
|
BEGIN 00793900
|
|
IF NOT FINALDOCTOG THEN 00794000
|
|
MOVEWORDS(SEQ,DOCBUFF[14],1) ; 00794100
|
|
IF PATCHCARD THEN 00794200
|
|
BEGIN 00794300
|
|
IF LEAVETOG THEN SETCHAR(DOCBUFF[9],4,PATCHLETTER) ELSE 00794400
|
|
SETCHAR(DOCBUFF[10],0,PATCHLETTER); 00794500
|
|
PATCHINBUFF ~ TRUE; 00794600
|
|
END ELSE 00794700
|
|
IF ASTERPATCHED THEN PATCHINBUFF~TRUE; 00794800
|
|
END ; 00794900
|
|
IF NOT DOCXREFTOG THEN 00795000
|
|
BEGIN 00795100
|
|
IF NOT PATBOXTOG AND PDOUBLETOG THEN 00795200
|
|
ZPL(ZF,2,DOCBUFF) ELSE ZPL(ZF,1,DOCBUFF); 00795300
|
|
IF PATBOXTOG THEN 00795400
|
|
BEGIN 00795500
|
|
WORD ~ (FIRSTBIT+1) DIV 8 ; 00795600
|
|
CHAR ~ (FIRSTBIT + 1).[45:3] ; 00795700
|
|
CLEARCHAR(DOCBUFF[WORD],CHAR,8-CHAR) ; 00795800
|
|
CLEAR(DOCBUFF[WORD+1],14-WORD-1) ; 00795900
|
|
SETCHAR (DOCBUFF[(FIRSTBIT+1) DIV 8],(FIRSTBIT+1). 00796000
|
|
[45:3],":") ; 00796100
|
|
SETCHAR (DOCBUFF[( LASTBIT+1) DIV 8],( LASTBIT+1). 00796200
|
|
[45:3],":") ; 00796300
|
|
ZPL(ZF,ZSP,DOCBUFF); 00796400
|
|
END ELSE CLEAR(DOCBUFF,14) ; 00796500
|
|
END ; 00796600
|
|
PAREMPTY ~ TRUE ; PARP ~ PARLOW ; 00796700
|
|
END ; 00796800
|
|
IF NUMVALUE = 1 THEN GO TO MOREPAT ; 00796900
|
|
IF NUMVALUE = 2 THEN 00797000
|
|
BEGIN 00797100
|
|
IF PATBOXTOG THEN 00797200
|
|
BEGIN 00797300
|
|
IF NOT DOCXREFTOG THEN 00797400
|
|
BEGIN 00797500
|
|
ZNOSKIP~TRUE; 00797600
|
|
FOR I ~ 0,1,2,3 DO 00797700
|
|
BEGIN 00797800
|
|
WRITE(ZAR[*],BOXFORM[I]) ; 00797900
|
|
ZPL(ZF,1,ZAR); 00798000
|
|
END ; 00798100
|
|
ZNOSKIP~FALSE; 00798200
|
|
ZPL (ZF,1, BLANKARRAY); 00798300
|
|
END ; 00798400
|
|
END ; 00798500
|
|
FINDASTERCONTROL ; 00798600
|
|
END ; 00798700
|
|
MOVECHARS(ACCUM[1],DOCBUFF[PARP DIV 8],3,PARP.[45:3], 00798800
|
|
COUNT) ; PARP ~ PARP + COUNT ; PAREMPTY ~ FALSE ; 00798900
|
|
GO TO PATSCAN ; 00799000
|
|
END ; 00799100
|
|
IF NOT ( PARTOG OR PATTOG OR INDENTOG OR PERCENTOG OR 00799200
|
|
WIDETOG OR 00799202
|
|
FORMTOG OR TABTOG OR CENTERTOG) THEN 00799300
|
|
BEGIN 00799400
|
|
CLEAR(DOCBUFF[0],14); 00799500
|
|
MOVEWORDS(GLOBE,DOCBUFF,9); 00799600
|
|
END; 00799700
|
|
IF INDEXTOG AND NOT FIRSTCODELINE THEN 00799800
|
|
BEGIN 00799900
|
|
IF ( NINDEXLINES ~ NINDEXLINES - 1) { 0 THEN 00800000
|
|
INDEXTOG ~FALSE ; 00800100
|
|
CONTIND ~ CONTIND + 1 ; 00800200
|
|
CLEAR(DOCONTENTS[CONTIND, 0],14) ; 00800300
|
|
SETDOTS(DOCONTENTS[CONTIND,0],9 ) ; 00800400
|
|
BLANKMARGINS(DOCBUFF,LBLANKS,RBLANKS) ; 00800500
|
|
IF INDEXFIXTOG THEN 00800600
|
|
MOVECHARS(DOCBUFF[LBLANKS DIV 8],DOCONTENTS[CONTIND,0], 00800700
|
|
LBLANKS.[45:3],0,72-RBLANKS-LBLANKS) ELSE 00800800
|
|
IF INDEXONLYTOG THEN % INDENT THE INDEX. 00800810
|
|
BEGIN 00800820
|
|
CLEARCHAR (DOCONTENTS[CONTIND, 0], 0, INDENTVAL); 00800830
|
|
MOVECHARS (DOCBUFF, DOCONTENTS[CONTIND, INDENTVAL 00800840
|
|
DIV 8], 0, INDENTVAL.[45:3], 72- RBLANKS ) 00800850
|
|
END 00800860
|
|
ELSE % DO WHAT YOU DID BEFORE. 00800870
|
|
MOVECHARS(DOCBUFF,DOCONTENTS[CONTIND,0],0,0,72-RBLANKS) ; 00800900
|
|
IF DECIMALSTOG THEN 00801000
|
|
MOVECHARS (PAGENUM[7], DOCONTENTS[CONTIND,7], 00801100
|
|
10-PAGECHAR,10-PAGECHAR, PAGECHAR+7) ELSE 00801200
|
|
MOVECHARS(PAGENUM[7],DOCONTENTS[CONTIND,7], 00801300
|
|
10-PAGECHAR,10-PAGECHAR,PAGECHAR + 6) ; 00801400
|
|
IF NOT FINALDOCTOG THEN 00801500
|
|
MOVEWORDS(SEQ,DOCONTENTS[CONTIND,14],1) ; 00801600
|
|
END ; 00801700
|
|
IF UNDERTOG THEN 00801800
|
|
FIXUNDERLINE(DOCBUFF,UNDERBUFF) ; 00801900
|
|
IF CONSTTAB THEN 00802000
|
|
BEGIN 00802100
|
|
THL~ THL+1; 00802200
|
|
CLEAR(TABARR[THPOS,0],14); 00802300
|
|
MOVEWORDS(DOCBUFF[0],TABARR[THPOS,0],9); 00802400
|
|
THPOS ~ THPOS+ 1; 00802500
|
|
IF THL = THLINES THEN 00802600
|
|
BEGIN 00802700
|
|
CONSTTAB ~ FALSE; 00802800
|
|
IF UNDERTOG THEN 00802900
|
|
BEGIN 00803000
|
|
IF THPOS > 5 THEN 00803100
|
|
BEGIN 00803200
|
|
DOCERROR(35); 00803300
|
|
THPOS ~5; 00803400
|
|
END; 00803500
|
|
THUNDTOG~ TRUE; 00803600
|
|
CLEAR (TABARR[THPOS,0],14); 00803700
|
|
MOVEWORDS(UNDERBUFF[0],TABARR[THPOS,0],9); 00803800
|
|
THPOS~THPOS+1; 00803900
|
|
END; 00804000
|
|
END; 00804100
|
|
END; 00804200
|
|
IF TITLETOG THEN TITLETOG ~ FALSE ELSE 00804300
|
|
BEGIN 00804400
|
|
IF WIDETOG THEN 00804402
|
|
BEGIN 00804404
|
|
IF PATCHCARD OR ASTERPATCHED THEN PATCHINBUFF ~TRUE ;00804406
|
|
END ELSE 00804408
|
|
IF NOT REMOTETOG THEN 00804500
|
|
BEGIN 00804600
|
|
IF NOT FINALDOCTOG THEN 00804700
|
|
MOVEWORDS(SEQ,DOCBUFF[14],1) ; 00804800
|
|
IF PATCHCARD THEN 00804900
|
|
BEGIN 00805000
|
|
IF LEAVETOG THEN SETCHAR(DOCBUFF[9],4,PATCHLETTER) ELSE 00805100
|
|
SETCHAR(DOCBUFF[10],0,PATCHLETTER); 00805200
|
|
PATCHINBUFF ~ TRUE; 00805300
|
|
END ELSE 00805400
|
|
IF ASTERPATCHED THEN PATCHINBUFF~TRUE; 00805500
|
|
END ; 00805600
|
|
IF NOT DOCXREFTOG THEN 00805700
|
|
BEGIN 00805800
|
|
IF PUNCHPAGES THEN IF LASTLINE THEN 00805900
|
|
BEGIN 00806000
|
|
PUNCHAFTER ~ TRUE; 00806100
|
|
ASAVESEQ~ISEQ; 00806200
|
|
END; 00806300
|
|
IF UNDERTOG OR NOT DOUBLETOG THEN 00806400
|
|
ZPL(ZF,1,DOCBUFF) ELSE 00806500
|
|
ZPL(ZF,2,DOCBUFF) ; 00806600
|
|
IF UNDERTOG THEN ZNOSKIP ~ TRUE; 00806700
|
|
IF UNDERTOG THEN IF DOUBLETOG THEN 00806800
|
|
ZPL(ZF,2,UNDERBUFF) ELSE 00806900
|
|
ZPL(ZF,1,UNDERBUFF); 00807000
|
|
ZNOSKIP ~ FALSE; 00807100
|
|
IF UNDERTOG THEN 00807200
|
|
UNDERTOG ~ (NUNDERLINES ~ NUNDERLINES - 1) !0 ; 00807300
|
|
END ; 00807400
|
|
END ; 00807500
|
|
IF FIRSTCODELINE THEN 00807600
|
|
BEGIN 00807700
|
|
FIRSTCODELINE ~FALSE ; 00807800
|
|
MOVEWORDS(JUNKARRAY,GLOBE,10) ; 00807900
|
|
GO TO MORECODE ; 00808000
|
|
END ; 00808100
|
|
IF ENDTOG THEN GO TO SEARCH ; 00808200
|
|
QUITL: 00808300
|
|
IF QUITOG THEN 00808400
|
|
BEGIN 00808500
|
|
INTEGER BLOCKEXTENDER ; 00808600
|
|
DOCLISTFLAG ~ FALSE ; 00808700
|
|
DOCOK ~ FALSE ; 00808701
|
|
IF NOT FINALDOCTOG THEN 00808800
|
|
PATCHLETTER ~ "*" ; 00808900
|
|
IF CONTIND = 0 OR DOCXREFTOG THEN 00809000
|
|
IF FINITOG THEN 00809100
|
|
BEGIN 00809102
|
|
IF DOCIDTOG AND (NOT FIRSTDOCIDTOG) 00809104
|
|
AND (NOT LASTDOCIDTOG) THEN 00809106
|
|
GO TO EXIT ; 00809108
|
|
GO TO MORE ; 00809110
|
|
END ELSE GO TO EXIT ; 00809112
|
|
IF CONTOG THEN ZF ~ ZZF; 00809200
|
|
PAGETOG ~ TRUE; 00809300
|
|
ZPG(ZF); 00809400
|
|
IF NOT DATOG THEN 00809500
|
|
NOPAGETOG ~ TRUE; 00809600
|
|
NEWDOCPAGE; 00809700
|
|
NOPAGETOG ~ FALSE; 00809800
|
|
PAGEQUAL ~ 2; 00809900
|
|
WRITE(ZAR[*],FCONTENTS) ; ZPL(ZF,2,ZAR) ; 00810000
|
|
FOR I ~ 1 STEP 1 UNTIL CONTIND DO 00810100
|
|
BEGIN 00810200
|
|
IF DOUBLETOG THEN ZPL(ZF,2,DOCONTENTS[I,*]) ELSE 00810300
|
|
ZPL(ZF,1,DOCONTENTS[I,*]) ; 00810400
|
|
END; 00810500
|
|
NEWVOL ~ TRUE; 00810600
|
|
ZPG(ZF); 00810700
|
|
IF CONTOG THEN ZF ~ -1; 00810800
|
|
IF FINITOG THEN 00810900
|
|
BEGIN 00810902
|
|
IF DOCIDTOG AND (NOT FIRSTDOCIDTOG) 00810904
|
|
AND (NOT LASTDOCIDTOG) THEN 00810906
|
|
BEGIN 00810908
|
|
QUITOG ~ TRUE ; GO TO EXIT ; 00810910
|
|
END ; 00810912
|
|
GO TO MORE ; 00810914
|
|
END ; 00810916
|
|
GO TO EXIT ; 00811000
|
|
END ; 00811100
|
|
GO TO NEXT ; 00811200
|
|
EXIT: 00811300
|
|
GO TO EOFCARD ; 00811400
|
|
END PRINTDOCUMENT ; 00811500
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00811600
|
|
PROCEDURE ASTERCONTROLS ; 00811700
|
|
COMMENT SETS UP * CONTROLS FOR USE BY PRINTDOCUMENT ; 00811800
|
|
BEGIN 00811900
|
|
LABEL L1,MORE,NEXT,RET,L2,L3 ; 00812000
|
|
LABEL MOREFORM,MOREIN ; 00812100
|
|
LABEL MOREIN1 ; 00812200
|
|
DEFINE SCANN = SCAN ; IF ENDCARD THEN GO TO RET # ; 00812300
|
|
DEFINE DXREF = IF NOT DEFUSETOG THEN 00812400
|
|
IF SORTSCRAMBLE THEN BUILDXREF # ; 00812500
|
|
INTEGER PPP ; 00812600
|
|
BOOLEAN DEFUSETOG ; 00812700
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"ASTERC","ONTROL") ;00812800
|
|
IF WATCHOUT THEN 00812900
|
|
BEGIN 00813000
|
|
HOLDASTER ~ TRUE ; 00813100
|
|
GO TO RET ; 00813200
|
|
END ; 00813300
|
|
SCAN ; SCAN ; 00813400
|
|
IF Q = "7INVAL" THEN 00813500
|
|
BEGIN 00813600
|
|
INVTOG ~ TRUE ; 00813700
|
|
FOR IJUNK ~ 0 STEP 1 UNTIL 10 DO INVCH[IJUNK] ~ 0 ; 00813800
|
|
SCAN ; IF Q = "3ALL " THEN 00813900
|
|
INVALLTOG ~TRUE ELSE GO TO MOREIN1 ; 00814000
|
|
MOREIN: SCAN ; IF ENDCARD THEN GO TO RET ; 00814100
|
|
MOREIN1: 00814200
|
|
IF RESULT ! 3 THEN GO TO MOREIN ; 00814300
|
|
IJUNK ~ INVCH[0] ~ INVCH[0] + 1 ; 00814400
|
|
DTOCT(ACCUM[1],3,INVCH[IJUNK],COUNT) ; 00814500
|
|
INVCH[IJUNK] ~ INVCH[IJUNK] - 1 ; GO TO MOREIN; 00814600
|
|
END ELSE 00814700
|
|
IF Q = "4OVER " THEN 00814800
|
|
BEGIN 00814900
|
|
SCAN; 00815000
|
|
ASTERTOG ~ TRUE; 00815100
|
|
SKIPTOG ~ FALSE; 00815200
|
|
IF Q ! "4PAGE " AND Q ! "#INSER" THEN 00815300
|
|
DO SCAN UNTIL ENDCARD; 00815400
|
|
OVERTOG ~ TRUE; 00815500
|
|
GO TO NEXT; 00815600
|
|
END ELSE 00815700
|
|
BEGIN 00815800
|
|
ASTERTOG ~ TRUE ; 00815900
|
|
BBB ~ FALSE; 00816000
|
|
CENTERTOG ~ SKIPTOG ~ PAGETOG ~ QUITOG ~ INDENTOG ~ 00816100
|
|
INDEXONLYTOG ~ % SET TO FALSE INITIALLY. 00816110
|
|
CODECOUNTOG ~ FORMTOG ~ TABTOG ~ FALSE ; 00816200
|
|
WIDETOG ~ FALSE ; 00816202
|
|
DOCNAMES~FALSE; 00816204
|
|
CODEPERCENTOG ~ FALSE ; 00816205
|
|
INDEXFIXTOG ~ TRUE ; 00816300
|
|
DOCSYNTAX ~ DOCSYNTAXONLY ~ FALSE ; 00816400
|
|
UNDERTOG ~ FALSE ; DOUBLETOG ~ DOUBLEONLY ; 00816500
|
|
TITLETOG ~ INDEXTOG ~ ENDTOG ~ FALSE ; 00816600
|
|
PERCENTOG ~ FALSE ; ASTERTOG ~TRUE ; 00816700
|
|
INSERTOG ~ FALSE ; 00816800
|
|
INVALLTOG ~ FALSE ; 00816900
|
|
INVTOG ~ DEFUSETOG ~ LABELUSE ~FALSE ; 00817000
|
|
PATTOG ~ PATBOXTOG ~FALSE ; 00817100
|
|
PARTOG ~ FINITOG ~ FREETOG ~FIXEDTOG ~ FALSE ; 00817200
|
|
GLOSSTOG ~ CODETOG ~ FALSE ; 00817300
|
|
END ; 00817400
|
|
IF RESULT !3 THEN GO TO NEXT ; 00817500
|
|
DTOCT(ACCUM[1],3,DOCDEFIND,COUNT) ; 00817600
|
|
FOR IJUNK ~ 1 STEP 1 UNTIL NDOCDEFS DO 00817700
|
|
IF DOCDEFLINKS[IJUNK] = DOCDEFIND THEN 00817800
|
|
BEGIN 00817900
|
|
DOCDEFIND ~ IJUNK ; GO TO L3 ; 00818000
|
|
END ; 00818100
|
|
DOCERROR(4) ; 00818200
|
|
DO SCAN UNTIL ENDCARD ; GO TO RET ; 00818300
|
|
L3: MOVEWORDS(DOCDEFINES[DOCDEFIND,1],GLOBE[0],9) ; 00818400
|
|
DEFUSETOG ~ TRUE ; 00818500
|
|
IF NOT DOCINDEXTOG THEN 00818502
|
|
IF SORTSCRAMBLE THEN BUILDXREF ; 00818600
|
|
IF DOCLISTOG AND DOCLISTFLAG THEN 00818700
|
|
BEGIN 00818800
|
|
IF REMOTETOG THEN MOVEWORDS(GLOBE[0],LISTBUFFER[0],9)ELSE 00818900
|
|
MOVEWORDS(GLOBE[0],LISTBUFFER[2],9) ; 00819000
|
|
IF REMOTETOG THEN MOVEWORDS(SEQ,LISTBUFFER[9],1) ELSE 00819100
|
|
MOVEWORDS(SEQ,LISTBUFFER[11],1) ; 00819200
|
|
ZPL(0,2,LISTBUFFER) ; 00819300
|
|
END ; 00819400
|
|
LCR ~ MKABS(GLOBE[W]) ; NCR ~ LCR - W ; 00819500
|
|
MORE: SCAN ; 00819600
|
|
NEXT: 00819700
|
|
IF NOT DOCINDEXTOG THEN 00819702
|
|
IF RESULT =1 THEN DXREF ; 00819800
|
|
IF ASTERISK THEN GO TO MORE ; 00819900
|
|
IF ENDCARD THEN GO TO RET ; 00820000
|
|
IF Q = "6SYNTA" THEN 00820100
|
|
BEGIN 00820200
|
|
DOCSYNTAX ~ TRUE ; 00820300
|
|
SCAN ; IF Q ! "4ONLY " THEN GO TO NEXT ; 00820400
|
|
DOCSYNTAXONLY ~ TRUE ; GO TO MORE ; 00820500
|
|
END ; 00820600
|
|
IF Q = "4VOID " THEN 00820700
|
|
BEGIN 00820800
|
|
DOCERROR(24) ; GO TO MORE ; 00820900
|
|
END ; 00821000
|
|
IF Q = "4WIDE " THEN WIDETOG ~ TRUE ; 00821002
|
|
IF Q = "6FORMA" OR Q = "4FORM " OR 00821100
|
|
Q = "3TAB " OR Q = "8TABUL" THEN 00821200
|
|
BEGIN 00821300
|
|
PARTOG ~ PATTOG ~ CENTERTOG ~ INDENTOG ~FALSE ; 00821400
|
|
FORMTOG ~ TABTOG ~ FALSE ; 00821500
|
|
IF Q="6FORMA" OR Q="4FORM " THEN FORMTOG ~ TRUE ELSE 00821600
|
|
TABTOG ~ TRUE ; NFORMTABS ~ 0 ; 00821700
|
|
FOR IJUNK ~ 0 STEP 1 UNTIL 50 DO FORMCOLS[IJUNK] ~ 0 ; 00821800
|
|
MOREFORM: SCAN ; 00821900
|
|
IF ENDCARD THEN 00822000
|
|
BEGIN 00822100
|
|
FORMCOLS[NFORMTABS+1] ~ 73 ; GO TO RET ; 00822200
|
|
END ; 00822300
|
|
IF RESULT =1 THEN 00822400
|
|
BEGIN 00822500
|
|
IF REMOTETOG THEN FORMCOLS[NFORMTABS +1] ~73 ELSE 00822600
|
|
FORMCOLS[NFORMTABS+1] ~ 76 ; GO TO NEXT ; 00822700
|
|
END ; 00822800
|
|
IF RESULT !3 THEN GO TO MOREFORM ; 00822900
|
|
NFORMTABS ~ NFORMTABS + 1 ; 00823000
|
|
DTOCT(ACCUM[1],3,FORMCOLS[NFORMTABS],COUNT) ; 00823100
|
|
IF FORMCOLS[NFORMTABS] > 72 THEN 00823200
|
|
BEGIN 00823300
|
|
DOCERROR(6) ; FORMCOLS[NFORMTABS] ~ 72 ; 00823400
|
|
GO TO MOREFORM ; 00823500
|
|
END ; 00823600
|
|
IF NFORMTABS > 1 AND FORMCOLS[NFORMTABS] { FORMCOLS 00823700
|
|
[NFORMTABS-1] THEN 00823800
|
|
BEGIN 00823900
|
|
DOCERROR(7) ; 00824000
|
|
FORMCOLS[NFORMTABS] ~ FORMCOLS[NFORMTABS-1] + 1 ; 00824100
|
|
GO TO MOREFORM ; 00824200
|
|
END ; 00824300
|
|
GO TO MOREFORM ; 00824400
|
|
END ; 00824500
|
|
IF Q = "3REV " THEN 00824600
|
|
BEGIN 00824700
|
|
SCAN ; IF COUNT ! 1 OR RESULT !1 THEN 00824800
|
|
IF Q ! "1* " THEN 00824900
|
|
BEGIN 00825000
|
|
DOCERROR(23) ; GO TO NEXT ; 00825100
|
|
END ; 00825200
|
|
MOVECHARS(ACCUM[1],PATCHLETTER,3,7,1) ; 00825300
|
|
SCAN; IF Q ! "5LEAVE" THEN GO TO NEXT; 00825400
|
|
LEAVETOG ~ TRUE; 00825500
|
|
GO TO MORE ; 00825600
|
|
END ; 00825700
|
|
IF Q = "4MISS " THEN MISSTOG ~ TRUE ELSE 00825800
|
|
IF Q="5NAMES" THEN DOCNAMES~ TRUE ELSE 00825802
|
|
IF Q = "7PERCE" THEN PERCENTOG ~ TRUE ; 00825900
|
|
IF Q = "9UNDER"THEN 00826000
|
|
BEGIN 00826100
|
|
UNDERTOG ~ TRUE ; NUNDERLINES ~ 1 ; SCAN ; 00826200
|
|
IF RESULT !3 THEN GO TO NEXT ; 00826300
|
|
DTOCT(ACCUM[1],3,NUNDERLINES,COUNT) ; 00826400
|
|
GO TO MORE ; 00826500
|
|
END ; 00826600
|
|
IF Q = "6SINGL" THEN 00826700
|
|
BEGIN 00826800
|
|
DOUBLETOG~ FALSE; 00826900
|
|
ZSP~ZSPERM~1; 00827000
|
|
END; 00827100
|
|
IF Q = "6DOUBL" THEN 00827200
|
|
BEGIN 00827300
|
|
DOUBLETOG~ TRUE; 00827400
|
|
ZSP~ZSPERM~2; 00827500
|
|
END; 00827600
|
|
IF Q = "4DATE " THEN 00827700
|
|
BEGIN 00827800
|
|
DATETOG~ TRUE ; SCAN ; IF Q !"5CLEAR" THEN GO TO NEXT ; 00827900
|
|
DATETOG ~ FALSE ; GO TO MORE ; 00828000
|
|
END ; 00828100
|
|
IF Q = "4CODE " OR Q = "@CODEP" THEN 00828200
|
|
BEGIN 00828300
|
|
IF Q = "@CODEP"THEN CODEPERCENTOG ~ TRUE ; 00828301
|
|
CODETOG ~ TRUE ; SCAN ; IF RESULT ! 3 THEN GO TO NEXT ; 00828400
|
|
DTOCT(ACCUM[1],3,CODELINECOUNT,COUNT) ; 00828500
|
|
CODELINECOUNT ~CODELINECOUNT + 2 ; 00828600
|
|
CODECOUNTOG ~TRUE ; GO TO MORE ; 00828700
|
|
END ; 00828800
|
|
IF Q = "9NOCOD" THEN NOCODESEQ ~ TRUE ; % NOCODESEQ 00828810
|
|
IF Q ="7CODES" THEN NOCODESEQ ~ FALSE ; % CODESEQ 00828811
|
|
IF Q = "7PATTE" THEN 00828900
|
|
BEGIN 00829000
|
|
PATTOG ~ PATBOXTOG ~TRUE ; 00829100
|
|
NBLBOXES ~ 0 ; 00829200
|
|
SCAN ; IF Q = "4GLOS " THEN 00829300
|
|
BEGIN 00829400
|
|
PATBOXTOG ~ FALSE ; GO TO MORE ; 00829500
|
|
END ; 00829600
|
|
GO TO NEXT ; 00829700
|
|
END ; 00829800
|
|
IF Q = "6DEFIN" THEN 00829900
|
|
BEGIN 00830000
|
|
SCAN ; IF RESULT ! 3 THEN 00830100
|
|
BEGIN 00830200
|
|
DOCERROR(2) ; 00830300
|
|
DO SCAN UNTIL ENDCARD ; GO TO RET ; 00830400
|
|
END ; 00830500
|
|
LABELUSE ~ TRUE ; 00830600
|
|
IF NOT DOCINDEXTOG THEN 00830602
|
|
IF SORTSCRAMBLE THEN BUILDXREF ; 00830700
|
|
DTOCT(ACCUM[1],3,DOCDEFIND,COUNT) ; 00830800
|
|
FOR IJUNK ~ 1 STEP 1 UNTIL NDOCDEFS DO 00830900
|
|
IF DOCDEFLINKS[IJUNK] = DOCDEFIND THEN 00831000
|
|
BEGIN 00831100
|
|
DOCDEFIND ~ IJUNK ; GO TO L2 ; 00831200
|
|
END ; 00831300
|
|
IF (NDOCDEFS ~ NDOCDEFS + 1 ) > 100 THEN 00831400
|
|
BEGIN 00831500
|
|
DOCERROR(3) ; 00831600
|
|
DO SCAN UNTIL ENDCARD ; GO TO RET ; 00831700
|
|
END ELSE 00831800
|
|
BEGIN 00831900
|
|
DOCDEFLINKS[NDOCDEFS] ~ DOCDEFIND ; 00832000
|
|
DOCDEFIND ~ NDOCDEFS ; 00832100
|
|
END ; 00832200
|
|
L2: SCAN ; IF Q ! "1= " THEN 00832300
|
|
BEGIN 00832400
|
|
DOCERROR(5) ; 00832500
|
|
DO SCAN UNTIL ENDCARD ; GO TO RET ; 00832600
|
|
END ; 00832700
|
|
CLEAR(DOCDEFINES[DOCDEFIND,1],8) ; 00832800
|
|
SETCHAR(DOCDEFINES[DOCDEFIND,1],0,"*") ; 00832900
|
|
DOCDEFINES[DOCDEFIND,0] ~ 1 ; PPP ~ 2 ; 00833000
|
|
WHILE Q ! "1* " AND NOT ENDCARD DO 00833100
|
|
BEGIN 00833200
|
|
SCAN ; 00833300
|
|
IF NOT DOCINDEXTOG THEN 00833302
|
|
IF RESULT = 1 THEN DXREF ; 00833400
|
|
MOVECHARS(ACCUM[1],DOCDEFINES[DOCDEFIND,(PPP DIV 8)+1], 00833500
|
|
3,PPP.[45:3],COUNT); 00833600
|
|
PPP ~PPP + COUNT + 1 ; 00833700
|
|
END ; 00833800
|
|
IF ENDCARD THEN DOCERROR(18) ; 00833900
|
|
IF NOT ENDCARD THEN DO SCAN UNTIL ENDCARD ; GO TO RET ; 00834000
|
|
END ; 00834100
|
|
IF Q = "3END " THEN 00834200
|
|
BEGIN 00834300
|
|
ENDTOG ~ TRUE ; DOCLISTFLAG ~ FALSE ; 00834400
|
|
END ; 00834500
|
|
IF Q = "7PAGEI" THEN 00834600
|
|
BEGIN 00834700
|
|
SAVEPAGEINC ~ PAGEINC ~1 ; 00834800
|
|
SCAN ; IF ENDCARD OR RESULT !3 THEN GO TO NEXT ; 00834900
|
|
DTOCT(ACCUM[1],3,PAGEINC,COUNT); 00835000
|
|
SAVEPAGEINC~ PAGEINC ; GO TO MORE ; 00835100
|
|
END ; 00835200
|
|
IF Q = "6PAGEI" THEN 00835300
|
|
BEGIN 00835400
|
|
INSERTROW ~FALSE; 00835500
|
|
LFPAGEID ~ TRUE ; PAGEN ~ 0 ; PAGEID ~ " " ; 00835600
|
|
SCAN ; IF ENDCARD OR RESULT !3 THEN GO TO NEXT ; 00835700
|
|
DTOCT(ACCUM[1],3,PAGEN,COUNT) ; 00835800
|
|
PAGEN ~PAGEN-PAGEINC; 00835900
|
|
SCAN ; IF ENDCARD OR Q ! "1, " THEN GO TO NEXT ; 00836000
|
|
SCAN ; IF ENDCARD THEN GO TO NEXT ; 00836100
|
|
IF Q = "1+ " THEN 00836200
|
|
BEGIN 00836300
|
|
LFPAGEID ~ FALSE ; SCAN ; IF ENDCARD THEN GO TO NEXT ; 00836400
|
|
END ; 00836500
|
|
IF RESULT = 5 THEN 00836600
|
|
BEGIN 00836700
|
|
IJUNK ~ IF COUNT > 7 THEN 6 ELSE COUNT - 2 ; 00836800
|
|
MOVECHARS(ACCUM[1],PAGEID,4,2,IJUNK) ; SCAN ; 00836900
|
|
END ; 00837000
|
|
GO TO NEXT ; 00837100
|
|
END ; 00837200
|
|
IF Q = "7ENDPA"THEN % ENDPAGE 00837300
|
|
BEGIN 00837400
|
|
SCAN; IF RESULT ! 3 THEN GO TO NEXT ; 00837402
|
|
DTOCT(ACCUM[1],3,IJUNK,COUNT); 00837404
|
|
IF MAXLINES-NLINES { IJUNK THEN 00837406
|
|
BEGIN 00837408
|
|
PAGETOG ~TRUE ; PAGEINC ~ SAVEPAGEINC ; 00837500
|
|
END ; 00837600
|
|
GO TO MORE ; 00837601
|
|
END ; 00837700
|
|
IF Q = "4PAGE " THEN 00837800
|
|
BEGIN 00837900
|
|
IF INSERTROW THEN PAGEN ~ SAVEPAGEN; 00838000
|
|
INSERTROW ~FALSE; 00838100
|
|
PAGETOG~TRUE; PAGEINC~SAVEPAGEINC; SCAN; 00838200
|
|
NOPAGETOG ~ FALSE ; 00838300
|
|
IF Q = "2NO " THEN 00838400
|
|
BEGIN 00838500
|
|
NOPAGETOG ~ TRUE ; GO TO MORE ; 00838600
|
|
END ; 00838700
|
|
IF RESULT ! 3 THEN GO TO NEXT ; 00838800
|
|
DTOCT(ACCUM[1],3,PAGEINC,COUNT) ; GO TO MORE ; 00838900
|
|
END ELSE 00839000
|
|
IF Q = "#INSER" THEN 00839100
|
|
BEGIN 00839200
|
|
IF PAGETOG THEN DOCERROR(30) ELSE 00839300
|
|
BEGIN 00839400
|
|
LABEL L; 00839500
|
|
INSERTOG ~TRUE; 00839600
|
|
IF NOT INSERTROW THEN SAVEPAGEN ~ PAGEN; 00839700
|
|
INSERTROW ~TRUE; 00839800
|
|
PAGEINC ~1; 00839900
|
|
SCAN; IF RESULT ! 3 THEN GO TO L; 00840000
|
|
DTOCT (ACCUM [1],3,PAGEN,COUNT); 00840100
|
|
SCAN; IF COMMA THEN SCAN; IF RESULT !3 THEN GO TO L; 00840200
|
|
DTOCT (ACCUM [1],3,PAGEINC,COUNT); 00840300
|
|
L: PAGEN~PAGEN -PAGEINC; GO TO NEXT; 00840400
|
|
END; 00840500
|
|
END ELSE 00840600
|
|
IF Q = "8DECIM" THEN 00840700
|
|
BEGIN 00840800
|
|
DECIMALSTOG ~TRUE; 00840900
|
|
SUPPRESSTOG ~ FALSE; 00841000
|
|
PLACES ~2; 00841100
|
|
SCAN; IF Q = "2NO " THEN 00841200
|
|
BEGIN 00841300
|
|
DECIMALSTOG ~ FALSE; 00841400
|
|
GO TO MORE; 00841500
|
|
END ELSE 00841600
|
|
IF RESULT = 3 THEN 00841700
|
|
BEGIN 00841800
|
|
DTOCT (ACCUM[1],3,PLACES,COUNT); 00841900
|
|
SCAN; 00842000
|
|
END; 00842100
|
|
IF Q ! "8SUPPR" THEN GO TO NEXT; 00842200
|
|
SUPPRESSTOG ~ TRUE; 00842300
|
|
GO TO MORE; 00842400
|
|
END ELSE 00842500
|
|
IF Q = "8REVIS" THEN 00842600
|
|
BEGIN 00842700
|
|
REVTOG ~ TRUE; 00842800
|
|
DOCREV~ 1; 00842900
|
|
SCAN; IF Q = "5CLEAR" THEN 00843000
|
|
BEGIN 00843100
|
|
REVTOG~ FALSE; SCAN; 00843200
|
|
END; 00843300
|
|
IF RESULT = 3 THEN 00843400
|
|
BEGIN 00843500
|
|
DTOCT(ACCUM[1],3,DOCREV,COUNT); 00843600
|
|
IF DOCREV > 100 THEN ERROR(29); 00843700
|
|
SCAN; 00843800
|
|
END; 00843900
|
|
FILL REVB[*] WITH OCT6060512565606060; 00844000
|
|
MOVECHARS (REVISIONS [DOCREV],REVB[0],6,6,2); 00844100
|
|
GO TO NEXT; 00844200
|
|
END; 00844300
|
|
IF Q="6CENTR" OR Q="6CENTE" THEN CENTERTOG ~ TRUE ELSE 00844400
|
|
IF Q = "4QUIT " THEN 00844500
|
|
BEGIN 00844600
|
|
QUITOG ~TRUE ; GO TO RET ; 00844700
|
|
END ELSE 00844800
|
|
IF Q = "6FINIS" THEN 00844900
|
|
BEGIN 00845000
|
|
QUITOG ~ FINITOG ~ TRUE ; GO TO RET ; 00845100
|
|
END ELSE 00845200
|
|
IF Q = "5INDEX" THEN 00845300
|
|
BEGIN 00845400
|
|
NINDEXLINES ~ 1 ; INDEXTOG ~TRUE ; 00845500
|
|
IF CENTERTOG OR INDENTOG OR CODETOG THEN 00845600
|
|
INDEXFIXTOG ~ FALSE ; 00845700
|
|
SCAN; IF RESULT =3 THEN 00845800
|
|
BEGIN 00845802
|
|
DTOCT(ACCUM[1],3,NINDEXLINES,COUNT); 00845900
|
|
SCAN; 00845902
|
|
END ; 00845904
|
|
IF Q ! "5WORDS" THEN 00845906
|
|
BEGIN 00845908
|
|
INDEXWORDS~0; 00845910
|
|
GO TO NEXT ; 00845912
|
|
END ; 00845914
|
|
SCAN; IF RESULT ! 3 THEN INDEXWORDS~1 ELSE 00845916
|
|
BEGIN 00845918
|
|
DTOCT(ACCUM[1],3,INDEXWORDS,COUNT); 00845920
|
|
END ; 00845922
|
|
IF INDEXWORDS>63 THEN INDEXWORDS~63; 00845924
|
|
GO TO NEXT ; 00845926
|
|
END ; 00846000
|
|
IF Q ="7TABHE" THEN 00846100
|
|
BEGIN 00846200
|
|
THUNDTOG ~ FALSE; 00846300
|
|
SCAN; IF Q = "5CLEAR" THEN 00846400
|
|
BEGIN 00846500
|
|
SCAN ; IF RESULT ! 3 THEN 00846502
|
|
BEGIN 00846503
|
|
TABHEAD~FALSE; 00846600
|
|
FOR IJUNK~0 STEP 1 UNTIL 5 DO 00846700
|
|
CLEAR(TABARR[IJUNK,0],14); 00846701
|
|
GO TO NEXT 00846800
|
|
END ; 00846802
|
|
DTOCT(ACCUM[1],3,IJUNK,COUNT); 00846804
|
|
THPOS ~ IJUNK-1; 00846806
|
|
FOR IJUNK~IJUNK-1 STEP 1 UNTIL 5 DO 00846808
|
|
CLEAR(TABARR[IJUNK,0],14); 00846810
|
|
GO TO MORE ; 00846812
|
|
END; 00846900
|
|
TABHEAD~CONSTTAB~TRUE; 00847000
|
|
THL~0; THLINES~1; 00847100
|
|
THPOS ~ 0; 00847200
|
|
IF RESULT ! 3 THEN GO TO NEXT; 00847300
|
|
DTOCT(ACCUM[1],3,THLINES,COUNT); 00847400
|
|
IF THLINES > 6 THEN 00847500
|
|
BEGIN 00847600
|
|
DOCERROR(35); 00847700
|
|
THLINES ~ 6; 00847800
|
|
END; 00847900
|
|
SCAN; IF Q ! "1, " THEN GO TO NEXT; 00848000
|
|
SCAN; IF RESULT ! 3 THEN GO TO NEXT; 00848100
|
|
DTOCT(ACCUM[1],3,THPOS,COUNT); 00848200
|
|
IF THPOS < 1 THEN 00848202
|
|
BEGIN 00848204
|
|
DOCERROR(16); 00848206
|
|
THPOS ~ 1; 00848208
|
|
END ; 00848210
|
|
THPOS ~ THPOS -1; 00848212
|
|
IF THPOS+THLINES > 6 THEN 00848300
|
|
BEGIN 00848400
|
|
IF THPOS } 5 THEN CONSTTAB ~ FALSE 00848500
|
|
ELSE THLINES ~ 6-THPOS ; 00848501
|
|
DOCERROR(35); 00848600
|
|
END; 00848700
|
|
GO TO MORE; 00848800
|
|
END; 00848900
|
|
IF Q = "5TITLE" THEN 00849000
|
|
BEGIN 00849100
|
|
TUNDERTOG ~ UNDERTOG ; 00849200
|
|
TITLETOG ~ TRUE ; CLEARTITLETOG ~ FALSE ; SCANN ; 00849300
|
|
IF Q = "5CLEAR" THEN 00849400
|
|
BEGIN 00849500
|
|
TUNDERTOG ~ FALSE ; 00849600
|
|
TITLECHANGE ~ FALSE ; 00849700
|
|
CLEARTITLETOG ~ TRUE ; TITLETOG ~ FALSE ; GO TO MORE ; 00849800
|
|
END ; 00849900
|
|
IF RESULT ! 3 THEN GO TO NEXT ; 00850000
|
|
INDENTOG ~TRUE ; 00850100
|
|
DTOCT(ACCUM[1],3,INDENTVAL,COUNT) ; GO TO MORE ; 00850200
|
|
END ; 00850300
|
|
IF Q = "3PAR " THEN 00850400
|
|
BEGIN 00850500
|
|
PARIDTOG ~ SAVEPARIDTOG ; 00850600
|
|
PARINDENT ~ SAVEPARINDENT ; 00850700
|
|
PARTOG ~ TRUE ; PARLOW ~ PLSAVE ; PARHIGH ~ PHSAVE ; 00850800
|
|
END ELSE 00850900
|
|
IF Q = "9PARAG" THEN 00851000
|
|
BEGIN 00851100
|
|
PARIDTOG ~ SAVEPARIDTOG ~ FALSE ; 00851200
|
|
PARINDENT ~ SAVEPARINDENT ~ 6 ; 00851300
|
|
PLSAVE ~ PARLOW ~ 0 ; PHSAVE ~ PARHIGH ~ 71 ; 00851400
|
|
PARTOG ~ TRUE ; SCAN ; 00851500
|
|
IF MINUS THEN 00851600
|
|
BEGIN 00851700
|
|
PARIDTOG ~ SAVEPARIDTOG ~ TRUE ; SCAN ; 00851800
|
|
END ; 00851900
|
|
IF RESULT ! 3 THEN GO TO NEXT ; 00852000
|
|
DTOCT(ACCUM[1],3,PARLOW,COUNT) ; SCAN ; 00852100
|
|
PLSAVE ~ PARLOW ~ PARLOW - 1 ; 00852200
|
|
IF Q ! "1, " THEN GO TO NEXT ; SCAN ; 00852300
|
|
IF RESULT ! 3 THEN GO TO NEXT ; 00852400
|
|
DTOCT(ACCUM[1],3,PARHIGH,COUNT) ; 00852500
|
|
PHSAVE ~ PARHIGH ~ PARHIGH - 1 ; 00852600
|
|
IF PARHIGH > 72 OR PARHIGH { PARLOW THEN 00852700
|
|
BEGIN 00852800
|
|
DOCERROR( 1) ; PHSAVE ~ PARHIGH ~ 72 ; 00852900
|
|
END ; 00853000
|
|
SCAN ; IF Q ! "1, " THEN GO TO NEXT ; SCAN ; 00853100
|
|
IF RESULT !3 THEN GO TO NEXT ; 00853200
|
|
DTOCT(ACCUM[1],3,PARINDENT,COUNT) ; 00853300
|
|
SAVEPARINDENT ~ PARINDENT ; 00853400
|
|
GO TO MORE ; 00853500
|
|
END ; 00853600
|
|
IF Q = "4GLOS " THEN 00853700
|
|
BEGIN 00853800
|
|
PARTOG ~ GLOSSTOG ~ TRUE ; INDENTVAL ~ GINDSAVE ; 00853900
|
|
PARLOW ~ GLSAVE ; PARHIGH ~ GHSAVE ; 00854000
|
|
END ELSE 00854100
|
|
IF Q = "8GLOSS" THEN 00854200
|
|
BEGIN 00854300
|
|
GINDSAVE ~ INDENTVAL ~ 0 ; GLSAVE ~ PARLOW ~ 0 ; 00854400
|
|
GHSAVE ~ PARHIGH ~ 72 ; 00854500
|
|
PARTOG ~ GLOSSTOG ~ TRUE ; SCAN ; 00854600
|
|
IF RESULT ! 3 THEN 00854700
|
|
BEGIN 00854800
|
|
GLOSSTOG ~ FALSE ; GO TO NEXT ; 00854900
|
|
END ; 00855000
|
|
DTOCT(ACCUM[1],3,INDENTVAL,COUNT) ; SCAN ; 00855100
|
|
GINDSAVE ~ INDENTVAL ~ INDENTVAL - 1 ; 00855200
|
|
IF NOT COMMA THEN GO TO NEXT ; SCAN ; 00855300
|
|
IF RESULT ! 3 THEN GO TO NEXT ; 00855400
|
|
DTOCT(ACCUM[1],3,PARLOW,COUNT); SCAN ; 00855500
|
|
GLSAVE ~ PARLOW ~ PARLOW - 1 ; 00855600
|
|
IF NOT COMMA THEN GO TO NEXT ; SCAN ; 00855700
|
|
IF RESULT ! 3 THEN GO TO NEXT ; 00855800
|
|
DTOCT(ACCUM[1],3,PARHIGH,COUNT) ; 00855900
|
|
GHSAVE ~ PARHIGH ; 00856000
|
|
IF PARHIGH > 72 OR PARHIGH { PARLOW THEN 00856100
|
|
BEGIN 00856200
|
|
DOCERROR( 1) ; GHSAVE ~ PARHIGH ~ 72 ; 00856300
|
|
END ; 00856400
|
|
GO TO MORE ; 00856500
|
|
END ; 00856600
|
|
IF Q = "4SKIP " THEN 00856700
|
|
BEGIN 00856800
|
|
SKIPVAL ~ 1 ; 00856900
|
|
SKIPTOG ~TRUE ; SCAN ; IF RESULT ! 3 THEN GO TO NEXT ; 00857000
|
|
DTOCT(ACCUM[1],3,SKIPVAL,COUNT) ; GO TO MORE ; 00857100
|
|
END ELSE 00857200
|
|
IF Q = "6INDEN" THEN 00857300
|
|
BEGIN 00857400
|
|
INDENTVAL ~0 ; 00857500
|
|
INDENTOG ~ TRUE ; SCAN ; IF RESULT ! 3 THEN GO TO NEXT ; 00857600
|
|
DTOCT(ACCUM[1],3,INDENTVAL,COUNT) ; GO TO MORE ; 00857700
|
|
END ; 00857800
|
|
IF Q = "4ONLY " AND INDEXTOG AND NOT INDEXFIXTOG THEN 00857810
|
|
INDEXONLYTOG ~ TRUE ; % "INDENT INDEX ONLY" SEEN. 00857820
|
|
GO TO MORE ; 00857900
|
|
RET: END ASTERCONTROLS ; 00858000
|
|
COMMENT DOCUMENT* 5 * * * * * * * * * * * * * * * * * * * * * * * * * 00858100
|
|
J. CONTROL PROCEDURES. 00858200
|
|
* END; 00858300
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * ; 00858400
|
|
PROCEDURE COPY ; 00858500
|
|
COMMENT COPIES TAPES OR CAST FILES ; 00858600
|
|
BEGIN 00858700
|
|
LABEL EOFC,EOFT,EOFCA ; 00858800
|
|
INTEGER I ; 00858900
|
|
DO READ(CARDS)[EOFC] UNTIL FALSE ; 00859000
|
|
EOFC: CLOSE(CARDS,RELEASE) ; 00859100
|
|
CLEAR(TBUFF,14) ; CLEAR(CASTBUFF,56) ; 00859200
|
|
IF TAPETOG THEN 00859300
|
|
BEGIN 00859400
|
|
DO BEGIN 00859500
|
|
READ(SWIN,10,TBUFF[*])[EOFT] ; 00859600
|
|
WRITE(SWOUT,10,TBUFF[*]) ; 00859700
|
|
IF LISTOG THEN ZPL(0,2,TBUFF) ; 00859800
|
|
END UNTIL FALSE ; 00859900
|
|
EOFT: REWIND(SWOUT) ; 00860000
|
|
LOCK(SWOUT,RELEASE) ; 00860100
|
|
END ELSE 00860200
|
|
BEGIN 00860300
|
|
DO BEGIN 00860400
|
|
READ(CASTSW[CASTINDEX],56,CASTBUFF[*])[EOFCA]; 00860500
|
|
WRITE(CASTOUT[CASTINDEX],56,CASTBUFF[*]) ; 00860600
|
|
IF LISTOG THEN 00860700
|
|
FOR I ~ 1 STEP 11 UNTIL 45 DO 00860800
|
|
BEGIN 00860900
|
|
MOVEWORDS(CASTBUFF[I],TBUFF,10) ; 00861000
|
|
ZPL(0,2,TBUFF); 00861100
|
|
END ; 00861200
|
|
END UNTIL FALSE ; 00861300
|
|
EOFCA: END ; 00861400
|
|
IF TAPETOG THEN CLOSE(SWOUT,RELEASE) ELSE 00861500
|
|
CLOSE(CASTOUT[CASTINDEX],RELEASE); 00861600
|
|
GO TO EOPROG ; 00861700
|
|
END COPY ; 00861800
|
|
COMMENT DOCUMENT* 21 * * * * * * * * * * * * * * * * * * * * * * * * *; 00861900
|
|
PROCEDURE SETUPCONTROLS ; 00862000
|
|
COMMENT SETS UP CONTROLS BASED ON READING DOLLAR CONTROL CARDS ; 00862100
|
|
BEGIN 00862200
|
|
LABEL L2,L4,RETURN,EOFERR,L5 ; 00862300
|
|
LABEL L3 ; 00862400
|
|
LABEL L6,L7,L8; 00862500
|
|
LABEL SL1,SL2; 00862600
|
|
LABEL SL3 ; 00862700
|
|
LABEL LOUT; 00862800
|
|
BOOLEAN SCANFLAG ; 00862900
|
|
BOOLEAN TEMPTOG; 00863000
|
|
DEFINE SCEN = BEGIN SCAN ; IF PERCENT OR ENDCARD THEN 00863001
|
|
GO TO RETURN ; END # ; 00863002
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"SETUPC","ONTROL") ;00863100
|
|
SCANFLAG ~ FALSE ; 00863200
|
|
IF LOOKFORDOLLAR THEN 00863300
|
|
BEGIN 00863400
|
|
MOVEWORDS(GLOBE[0],SAVEBUF[0],10); 00863500
|
|
FOR I ~ 8 STEP - 1 UNTIL 0 DO 00863600
|
|
IF BLANKTEST (SAVEBUF[I],1) THEN 00863700
|
|
BEGIN 00863800
|
|
SETCHAR(SAVEBUF[I+1],0,"~"); 00863900
|
|
GO TO LOUT; 00864000
|
|
END; 00864100
|
|
LOUT: 00864200
|
|
WRITE(SPOOUT,10,SAVEBUF[*]); 00864300
|
|
LOOKFORDOLLAR ~ FALSE ; FIRSTDOLLAR ~ TRUE ; 00864400
|
|
END ELSE 00864500
|
|
BEGIN 00864600
|
|
TEMPTOG ~ FIRSTDOLLAR; 00864700
|
|
FIRSTDOLLAR ~ FALSE ; 00864800
|
|
SCAN ; SCAN ; 00864900
|
|
IF Q = "4VOID " THEN 00865000
|
|
BEGIN 00865100
|
|
IF TEMPTOG THEN IF NOT BLANKTEST(GLOBE[9],1) OR 00865200
|
|
(ISEQ = 0) THEN ERROR(34); 00865300
|
|
VOIDTOG ~ TRUE ; SCAN ; 00865400
|
|
IF LISTOG OR LISTTOBACKUPTOG OR (DOCLISTOG AND 00865500
|
|
BLOCKTOG) OR ( DOCLISTOG AND DOCLISTFLAG) THEN 00865600
|
|
ZPG(ZLB) ; 00865700
|
|
IF RESULT ! 3 OR ENDTOG THEN ERROR(15) ; 00865800
|
|
DTOCT(ACCUM[1],3,JUNK ,COUNT) ; 00865900
|
|
OCTTODEC(JUNK,VOIDSEQ) ; 00866000
|
|
IF JUNK = 99999999 THEN GO TO EOFCARD ; 00866100
|
|
WHILE VOIDTOG DO READATAPE; 00866200
|
|
GO TO RETURN; 00866300
|
|
END ELSE 00866400
|
|
BEGIN 00866500
|
|
CLEAR(LISTBUFFER,14) ; 00866600
|
|
MOVEWORDS(GLOBE,LISTBUFFER,9) ; 00866700
|
|
WRITE(PRINT[DBL],15,LISTBUFFER[*]) ; 00866800
|
|
CLEAR(LISTBUFFER,14) ; 00866900
|
|
IF NOT ENDCARD THEN READATAPE ; 00867000
|
|
SCAN ; GO TO RETURN ; 00867100
|
|
END ; 00867200
|
|
TEMPTOG ~ FALSE; 00867300
|
|
END ; 00867400
|
|
SCAN ; SCAN ; 00867500
|
|
IF Q = "4VOID " THEN IF CHECKCHAR(GLOBE[9],7," ") THEN 00867600
|
|
ERROR(34) ELSE ERROR(33); 00867700
|
|
IF Q = "4COPY "THEN 00867800
|
|
BEGIN 00867900
|
|
SETCHAR(GLOBE[8],0,"$") ; 00868000
|
|
COPYTOG ~ TRUE ; SCAN ; 00868100
|
|
IF Q = "4TAPE " THEN 00868200
|
|
BEGIN 00868300
|
|
TAPETOG ~ TRUE ; SWFININD ~ 0 ; SWFOUTIND ~ 0 ; 00868400
|
|
SCAN ; IF Q="4DISK " OR Q="4DISC " THEN SWFOUTIND~1 00868500
|
|
ELSE IF Q="4LIST " THEN LISTOG ~ TRUE ; 00868600
|
|
END ELSE 00868700
|
|
IF Q = "4DISK " OR Q = "4DISC " THEN 00868800
|
|
BEGIN 00868900
|
|
TAPETOG ~ TRUE ; SWFININD ~ 1 ; SWFOUTIND ~ 0 ; 00869000
|
|
END ELSE 00869100
|
|
IF Q = "4CAST "THEN 00869200
|
|
BEGIN 00869300
|
|
SCAN ; IF Q = "1A " OR Q = "1B " OR Q = "1C " 00869400
|
|
THEN CASTINDEX ~ Q.[18:6] - 17 ELSE ERROR(2) ; 00869500
|
|
END ELSE ERROR(19) ; 00869600
|
|
SCAN ; IF Q = "4LIST " THEN LISTOG ~ TRUE ; 00869700
|
|
GO TO RETURN ; 00869800
|
|
END ; 00869900
|
|
IF NOT(Q = "4CAST " OR Q = "4CARD " OR Q = "4TAPE " OR 00870000
|
|
Q = "5MERGE" OR 00870100
|
|
Q = "7MAKEM" OR Q = "9MAKEM" OR 00870200
|
|
Q = "9PATCH" OR 00870300
|
|
Q = "4DISK " OR Q = "4DISC " OR 00870400
|
|
Q = "6BACKU" OR Q = "5LOGIC" ) THEN ERROR(16) ; 00870500
|
|
ONLYTOG ~ FALSE; 00870600
|
|
IF Q = "4CAST " THEN GO TO L5 ; 00870700
|
|
IF Q = "5MERGE" THEN 00870800
|
|
BEGIN 00870900
|
|
INTEGER BLOCKEXTENDER; 00871000
|
|
LABEL L6,L7,L8; 00871100
|
|
MERGETOG ~ TRUE; HOLDOFFTOG ~ OLDONLYTOG~FALSE; 00871200
|
|
L6: 00871300
|
|
SCAN; 00871400
|
|
L7: 00871500
|
|
IF ENDCARD THEN GO TO RETURN; 00871600
|
|
IF Q = "6BACKU" THEN 00871700
|
|
BEGIN 00871800
|
|
IF PRINTALLTOG THEN 00871900
|
|
BEGIN 00872000
|
|
DOCERROR (31); 00872100
|
|
GO TO L6; 00872200
|
|
END; 00872300
|
|
BACKIND ~ 1; 00872400
|
|
SCAN; IF Q = "4DISK" THEN 00872500
|
|
BEGIN 00872600
|
|
SCAN; BACKIND ~ 0; 00872700
|
|
END; 00872800
|
|
BACKUPTOG ~ SAVEBACKUPTOG ~ TRUE; 00872900
|
|
GO TO L7; 00873000
|
|
END ELSE 00873100
|
|
IF Q = "5PRINT" THEN PRINTOG ~ TRUE ELSE 00873200
|
|
IF Q= "4DUMP " THEN DUMPFLAG ~ TRUE ELSE 00873300
|
|
IF Q= "4BUGS " THEN BUILDEBUG ~ TRUE ELSE 00873400
|
|
IF Q= "4LIST " THEN 00873500
|
|
BEGIN 00873600
|
|
WRITE ( ZAR[*],DATEFORM,DATELIST); 00873700
|
|
ZPL(0,2,ZAR); ZPL(0,2,GLOBE); ZPG(0); 00873800
|
|
END ELSE 00873900
|
|
IF Q = "5TITLE" THEN TITLETOG ~ TRUE ELSE 00874000
|
|
IF Q = "6SINGL" THEN DOUBLEONLY ~ FALSE ELSE 00874100
|
|
IF Q = "3SIX " THEN 00874200
|
|
BEGIN 00874300
|
|
DOUBLEONLY ~ FALSE; 00874400
|
|
ZLCOUNTMAX~56; 00874500
|
|
SIXLINES ~ TRUE; 00874600
|
|
SCAN; IF RESULT =3 THEN 00874700
|
|
BEGIN 00874702
|
|
DTOCT(ACCUM[1],3,IJUNK,COUNT); 00874704
|
|
IF IJUNK<66 THEN ZLCOUNTMAX~IJUNK ELSE DOCERROR(21); 00874706
|
|
SCAN; 00874708
|
|
END ; 00874710
|
|
IF Q = "6DOUBL" THEN DOUBLEONLY ~ TRUE; 00874800
|
|
GO TO L7; 00874900
|
|
END ELSE 00875000
|
|
IF Q ="5EIGHT" THEN 00875002
|
|
BEGIN 00875004
|
|
SCAN; 00875006
|
|
IF RESULT ! 3 THEN GO TO L7; 00875008
|
|
DTOCT(ACCUM[1],3,IJUNK,COUNT); 00875010
|
|
IF IJUNK<88 THEN ZLCOUNTMAX~IJUNK ELSE DOCERROR(21); 00875012
|
|
% RIDICULOUS LINE COUNT 00875014
|
|
END ELSE 00875016
|
|
IF Q = "8DOCDE" THEN DOCDEBUG ~ TRUE ELSE 00875100
|
|
IF Q = "5DEBUG" THEN DEBUG ~TRUE ELSE 00875200
|
|
IF Q = "7MONIT" THEN MONITOG ~ TRUE ELSE 00875300
|
|
IF Q = "9DIREC" THEN 00875400
|
|
BEGIN 00875500
|
|
DIRTOG ~ TRUE; 00875600
|
|
DIRONLYTOG ~ FALSE; 00875700
|
|
SCAN; 00875800
|
|
IF Q = "4ONLY " THEN 00875900
|
|
BEGIN 00876000
|
|
DIRONLYTOG ~ TRUE; 00876100
|
|
SCAN; 00876200
|
|
END; 00876300
|
|
GO TO L7; 00876400
|
|
END ELSE 00876500
|
|
IF Q = "8PRINT" THEN 00876600
|
|
BEGIN 00876700
|
|
IF BACKUPTOG THEN DOCERROR (31); 00876800
|
|
BACKUPTOG ~ SAVEBACKUPTOG ~ FALSE; 00876900
|
|
PRINTALLTOG ~ HOLDOFFTOG ~ TRUE; 00877000
|
|
SCAN; 00877100
|
|
IF Q = "4ONLY " THEN 00877200
|
|
BEGIN 00877300
|
|
OLDONLYTOG ~ TRUE; 00877400
|
|
BACKIND~ 3; 00877500
|
|
SCAN; 00877600
|
|
END ELSE BACKIND ~ 4; 00877700
|
|
GO TO L7; 00877800
|
|
END ELSE 00877900
|
|
IF Q = "@PRINT" THEN 00878000
|
|
BEGIN 00878100
|
|
PRINTSELECTOG ~ HOLDOFFTOG ~ TRUE; 00878200
|
|
L8: SCAN; IF Q = "1$ " THEN 00878300
|
|
BEGIN 00878400
|
|
CONTCARD ~ TRUE; READATAPE; SCAN; 00878500
|
|
IF Q ! "1$ " THEN ERROR(7); 00878600
|
|
END; 00878700
|
|
IF Q = "1, " THEN SCAN; 00878800
|
|
IF ENDCARD THEN GO TO RETURN; 00878900
|
|
IF Q ="1* " THEN 00879000
|
|
BEGIN 00879100
|
|
SCAN; IF Q = "4ONLY " THEN 00879200
|
|
BEGIN 00879300
|
|
OLDONLYTOG ~ TRUE; 00879400
|
|
SCAN; 00879500
|
|
END; 00879600
|
|
GO TO L7; 00879700
|
|
END; 00879800
|
|
IF RESULT ! 3 THEN 00879900
|
|
BEGIN 00880000
|
|
DOCERROR (32); 00880100
|
|
GO TO L8; 00880200
|
|
END; 00880300
|
|
DTOCT (ACCUM[1],3,IJUNK,COUNT); 00880400
|
|
PAGEPOINT ~ PAGEPOINT + 1; 00880500
|
|
PAGES [PAGEPOINT] ~ IJUNK; 00880600
|
|
GO TO L8; 00880700
|
|
END; 00880800
|
|
IF Q = "8DEBEA" THEN DEBEATLETOG ~ TRUE; 00880900
|
|
IF Q = "2DA " THEN DATOG ~ TRUE; 00881000
|
|
GO TO L6; 00881100
|
|
END ELSE 00881200
|
|
IF Q = "7MAKEM" OR Q = "9MAKEM" THEN 00881300
|
|
BEGIN 00881400
|
|
INTEGER BLOCKEXTENDER; 00881500
|
|
LABEL L9; 00881600
|
|
DEFINE CHECKEND = IF FINDCHAR(NCR,"%") THEN GO TO RETURN#; 00881700
|
|
MAKEMULTOG~ TRUE; 00881800
|
|
ALLONE ~ FALSE; 00881900
|
|
SCAN; 00882000
|
|
IF Q = "4DISK " OR Q = "4DISC " THEN DISKOUTOG~ TRUE ELSE 00882100
|
|
IF Q = "4TAPE " THEN DISKOUTOG ~ FALSE ELSE 00882200
|
|
ERROR(30); 00882300
|
|
IF ENDCARD THEN GO TO RETURN; 00882400
|
|
CHECKEND; 00882500
|
|
SCAN; IF Q = "4DISK " OR Q = "4DISC " OR 00882600
|
|
Q = "4TAPE " THEN 00882700
|
|
BEGIN 00882800
|
|
ALLONE ~ TRUE; 00882900
|
|
IF Q = "4TAPE " THEN DISKINTOG ~FALSE ELSE DISKINTOG~TRUE; 00883000
|
|
CHECKEND; 00883100
|
|
SCAN; 00883200
|
|
END; 00883300
|
|
L9: 00883400
|
|
IF ENDCARD THEN GO TO RETURN; 00883500
|
|
IF Q = "4LIST " THEN 00883600
|
|
BEGIN 00883700
|
|
LISTOG ~ TRUE; 00883800
|
|
WRITE(ZAR[*],DATEFORM,DATELIST); 00883900
|
|
ZPL(0,2,ZAR);ZPL(0,2,GLOBE); ZPG(0); 00884000
|
|
CHECKEND; 00884100
|
|
SCAN; 00884200
|
|
IF Q = "4ONLY " THEN 00884300
|
|
BEGIN 00884400
|
|
LISTONLYTOG ~ TRUE; 00884500
|
|
CHECKEND; 00884600
|
|
SCAN; 00884700
|
|
END; 00884800
|
|
END; 00884900
|
|
IF Q= "9DIREC" THEN 00885000
|
|
BEGIN 00885100
|
|
DIRTOG ~ TRUE; 00885200
|
|
CHECKEND; 00885300
|
|
SCAN; 00885400
|
|
END; 00885500
|
|
IF Q = "5PUNCH" THEN 00885600
|
|
BEGIN 00885700
|
|
PUNCHTOG ~ TRUE; 00885800
|
|
CHECKEND; 00885900
|
|
SCAN; 00886000
|
|
END; 00886100
|
|
GO TO L9; 00886200
|
|
END; 00886300
|
|
IF Q = "6BACKU" THEN 00886400
|
|
BEGIN 00886500
|
|
BACKIND ~ 5; 00886600
|
|
SCAN; IF Q = "4DISK " OR Q = "4DISC " THEN 00886700
|
|
BEGIN 00886800
|
|
BACKIND ~2; 00886900
|
|
SCAN; 00887000
|
|
END; 00887100
|
|
PBACKONLY ~TRUE; 00887200
|
|
IF RESULT !3 THEN NOBACKUPRINTS ~ 1 ELSE 00887300
|
|
DTOCT(ACCUM[1],3,NOBACKUPRINTS,COUNT) ; 00887400
|
|
DO READATAPE UNTIL FALSE ; 00887500
|
|
END ; 00887600
|
|
IF Q = "4TAPE " THEN 00887700
|
|
BEGIN 00887800
|
|
TAPETOG ~ TRUE ; SWFININD ~ 0 ; SWFOUTIND ~ 0 ; 00887900
|
|
END ELSE 00888000
|
|
IF Q = "4DISK " OR Q = "4DISC " THEN 00888100
|
|
BEGIN 00888200
|
|
TAPETOG ~ TRUE ; SWFININD ~ 1 ; SWFOUTIND ~ 0 ; 00888300
|
|
END ELSE 00888400
|
|
IF Q = "9PATCH" THEN % "PATCHTAPE" 00888500
|
|
BEGIN 00888600
|
|
TAPETOG ~ TRUE; 00888700
|
|
SWFININD ~4; SWFOUTIND ~0; 00888800
|
|
END; 00888900
|
|
IF NOT (Q="4TAPE " OR Q = "4DISK " OR Q = "4DISC " OR 00889000
|
|
Q = "9PATCH" ) THEN GO TO L4; 00889100
|
|
CLEAR (LTSEQ,1); 00889200
|
|
READ (SWIN,10,TBUFF[*]) [EOFERR]; 00889300
|
|
TAPETOG ~ TRUE ; 00889400
|
|
IF MONITOG THEN WRITE(PRINT,15,TBUFF[*]) ; 00889500
|
|
GO TO L2; 00889600
|
|
EOFERR: 00889700
|
|
L2: IF ENDCARD THEN GO TO RETURN; 00889800
|
|
SCAN; 00889900
|
|
L4: IF ENDCARD THEN GO TO RETURN ; 00890000
|
|
CONTCARD ~ FALSE ; 00890100
|
|
IF Q = "1% " THEN GO TO RETURN ; 00890200
|
|
IF Q = "4CARD " THEN PATCHLETTER ~ " " ; 00890300
|
|
IF Q = "4TAPE " THEN 00890400
|
|
BEGIN 00890500
|
|
TAPETOG ~ TRUE ; SWFININD ~ 0 ; SWFOUTIND ~ 0 ; 00890600
|
|
END ELSE 00890700
|
|
IF Q = "4DISK " OR Q = "4DISC " THEN 00890800
|
|
BEGIN 00890900
|
|
TAPETOG ~ TRUE ; SWFININD ~ 1 ; SWFOUTIND ~ 0 ; 00891000
|
|
END ; 00891100
|
|
IF Q = "5DEBUG" THEN DEBUG ~ TRUE ; 00891200
|
|
IF Q = "6REMOT" THEN REMOTETOG ~TRUE ; 00891300
|
|
IF Q = "2OP " OR Q = "3OPS " THEN B35OPTOG ~ TRUE; 00891400
|
|
IF Q = "4GLYN " THEN GLYNTOG ~ TRUE ; 00891500
|
|
IF Q = "7DEBLA" THEN DEBLANKTOG ~ TRUE ; 00891600
|
|
IF Q = "4ONLY " THEN ONLYTOG ~ TRUE ; 00891700
|
|
IF Q = "9PROCP" THEN PROCPUNCH ~TRUE ELSE 00891800
|
|
IF Q = "7DOCON" THEN DOCONLY ~ TRUE ; 00891900
|
|
IF Q = "8DOCDE" THEN DOCDEBUG ~TRUE ; 00892000
|
|
IF Q="8DOCIN" THEN DOCINDEXTOG~TRUE; 00892002
|
|
IF Q = "@TAPEP" THEN % "TAPEPATCHES" 00892100
|
|
BEGIN 00892200
|
|
IF SWFININD =4 THEN ERROR(38); 00892300
|
|
TAPEPATCHES ~ TRUE; 00892400
|
|
PATCHIND ~ 1; 00892500
|
|
END; 00892600
|
|
IF Q = "5PATCH" AND TAPETOG THEN 00892700
|
|
BEGIN 00892800
|
|
IF SELECTIVEXREF THEN ERROR(32); 00892900
|
|
SELECTIVEXREF ~ TRUE; 00893000
|
|
PATCHTOG ~ TRUE; 00893100
|
|
END; 00893200
|
|
IF Q = "6ASSIG" THEN ASSIGNTOG ~ TRUE ; 00893300
|
|
IF Q = "4MAKE " THEN 00893400
|
|
BEGIN 00893500
|
|
MAKETOG ~ TRUE ; SCAN ; 00893600
|
|
IF Q = "6IRFIL" THEN MAKEIRTOG ~ TRUE 00893700
|
|
ELSE GO TO L4 ; 00893800
|
|
GO TO L2 ; 00893900
|
|
END ; 00894000
|
|
IF Q = "3BNF " THEN 00894100
|
|
BEGIN 00894200
|
|
IF SELECTIVEXREF THEN ERROR(32); 00894300
|
|
SELECTIVEXREF ~ TRUE; 00894400
|
|
BNFTOG ~ DOCTOG ~ TRUE ; 00894500
|
|
END ; 00894600
|
|
IF Q = "6SIMUL" THEN 00894601
|
|
BEGIN 00894603
|
|
SIMULATOG ~TRUE ; FILLALGOL ; 00894605
|
|
END ; 00894607
|
|
IF Q = "3BPL " THEN 00894700
|
|
BEGIN 00894800
|
|
BPLTOG ~ TRUE ; 00894900
|
|
FILLBPL; 00895000
|
|
END ; 00895100
|
|
IF Q = "7FORTR" THEN 00895200
|
|
BEGIN 00895300
|
|
FORTRTOG ~ TRUE ; 00895400
|
|
FILLFORTRAN; 00895500
|
|
END ; 00895600
|
|
IF Q = "3HOL " THEN HOLTOG ~ TRUE; 00895700
|
|
IF Q = "5ESPOL" THEN 00895800
|
|
BEGIN 00895900
|
|
ESPOLTOG ~ TRUE ; 00896000
|
|
FILLESPOL; 00896100
|
|
END; 00896200
|
|
IF Q = "5TRANS" THEN 00896300
|
|
BEGIN 00896400
|
|
TRANSTOG ~ TRUE; 00896500
|
|
DATATABLE ~ ESCAPETOG ~ FALSE; 00896600
|
|
ESIND ~ 0; 00896700
|
|
ASMLTOG ~ TRUE; 00896800
|
|
ALLSEGS ~ TRUE; 00896900
|
|
SL3: 00897000
|
|
SCAN; 00897100
|
|
IF Q = "4DATA " THEN 00897200
|
|
BEGIN 00897300
|
|
DATATABLE ~ TRUE; 00897400
|
|
SCAN; 00897500
|
|
END ; 00897600
|
|
IF Q = "6ESCAP" THEN 00897700
|
|
BEGIN 00897800
|
|
ESCAPETOG ~ TRUE; 00897900
|
|
SCAN; IF RESULT = 3 THEN 00898000
|
|
BEGIN 00898100
|
|
DTOCT(ACCUM[1],3,TEMP,COUNT); 00898200
|
|
IF TEMP > 5 THEN 00898300
|
|
BEGIN 00898400
|
|
DOCERROR(12) ; 00898500
|
|
TEMP ~ 5; 00898600
|
|
END ; 00898700
|
|
TEMP ~ TEMP -1 ; 00898800
|
|
FOR I ~ 0 STEP 1 UNTIL TEMP DO 00898900
|
|
BEGIN 00899000
|
|
SCAN; ESTABLE[I] ~ Q; 00899100
|
|
END ; 00899200
|
|
ESIND ~ TEMP ; 00899300
|
|
END ELSE 00899400
|
|
BEGIN 00899500
|
|
ESTABLE[0] ~ Q; 00899600
|
|
ESIND ~ 0; 00899700
|
|
END ; 00899800
|
|
SCAN; 00899900
|
|
END ; 00900000
|
|
IF Q = "4DATA " OR Q = "6ESCAP" THEN GO TO SL3; 00900100
|
|
IF Q ! "4SEGS " THEN GO TO L4; 00900200
|
|
ALLSEGS ~ FALSE; 00900300
|
|
SEGCOUNT ~ -1; 00900400
|
|
SCAN; 00900500
|
|
SL1: 00900600
|
|
IF Q = "1* " THEN GO TO SL2; 00900700
|
|
IF Q = "1$ " THEN 00900800
|
|
BEGIN 00900900
|
|
CONTCARD ~ TRUE; READATAPE; 00901000
|
|
SCAN; IF Q ! "1$ " THEN ERROR(7); 00901100
|
|
END; 00901200
|
|
IF ENDCARD THEN ERROR(39); 00901300
|
|
IF Q = "1, " THEN SCAN; 00901400
|
|
IF RESULT = 3 THEN 00901500
|
|
BEGIN 00901600
|
|
DTOCT(ACCUM[1],3,CHOOSEG[(SEGCOUNT ~SEGCOUNT +1)], 00901700
|
|
COUNT); 00901800
|
|
SCAN; 00901900
|
|
IF Q = "1- " THEN 00902000
|
|
BEGIN 00902100
|
|
SCAN; IF RESULT ! 3 THEN ERROR(37); 00902200
|
|
DTOCT(ACCUM[1],3,TEMP,COUNT); 00902300
|
|
IF (KJUNK ~ TEMP - (IJUNK~CHOOSEG[SEGCOUNT])) < 0 THEN 00902400
|
|
ERROR(37); 00902500
|
|
IF KJUNK + SEGCOUNT > 500 THEN ERROR(35); 00902600
|
|
FOR K ~ 1 STEP 1 UNTIL KJUNK DO 00902700
|
|
CHOOSEG[(SEGCOUNT ~SEGCOUNT +1)] ~ IJUNK + K; 00902800
|
|
SCAN; 00902900
|
|
END; 00903000
|
|
END; 00903100
|
|
GO TO SL1; 00903200
|
|
SL2: 00903300
|
|
IF SEGCOUNT < 0 THEN ERROR (36); 00903400
|
|
MAXSEG ~ SEGCOUNT; SEGCOUNT ~ 0; 00903500
|
|
GO TO L4; 00903600
|
|
END; 00903700
|
|
IF Q = "8DEBEA" THEN DEBEATLETOG ~ TRUE; 00903800
|
|
IF Q = "4FLOW " OR Q = "7ASMFL" OR Q = "5QFLOW" THEN 00903900
|
|
BEGIN 00904000
|
|
IF LISTTOBACKUPTOG THEN ERROR(25) ; 00904100
|
|
IF SELECTIVEXREF THEN ERROR(32); 00904200
|
|
SELECTIVEXREF ~ TRUE; 00904300
|
|
IF Q = "7ASMFL" THEN ASMFLOWTOG~TRUE; 00904400
|
|
IF Q = "5QFLOW" THEN QFLOWTOG ~ TRUE; 00904500
|
|
DOCLISTOG~LISTOG; 00904600
|
|
LISTOG~ FALSE; 00904700
|
|
IF BPLTOG THEN BPLFLOWTOG ~ TRUE ; 00904800
|
|
FLOWBOXTOG ~ TRUE ; 00904900
|
|
FLOWTOG ~ TRUE ; 00905000
|
|
SCAN ; IF Q = "5NOBOX" THEN FLOWBOXTOG ~ FALSE ELSE 00905100
|
|
IF Q = "6SYNTA" THEN FSYNTAXTOG~ TRUE ELSE GO TO L4; 00905200
|
|
GO TO L2 ; 00905300
|
|
END ; 00905400
|
|
IF Q = "#LISTB"THEN 00905500
|
|
BEGIN 00905600
|
|
LISTTOBACKUPTOG ~ TRUE ; 00905700
|
|
SAVEBACKUPTOG ~ BACKUPTOG ~ TRUE ; 00905800
|
|
END ; 00905900
|
|
IF Q = "4LIST "THEN 00906000
|
|
BEGIN 00906100
|
|
WRITE(ZAR[*],DATEFORM,DATELIST); 00906200
|
|
ZLB ~ IF LISTTOBACKUPTOG THEN 2 ELSE 0 ; 00906300
|
|
ZPL(0,2,ZAR); ZPL(0,2,GLOBE); ZPG(0) ; 00906400
|
|
LISTOG ~TRUE ; 00906500
|
|
SCAN ; IF CASTOG AND Q = "3DIR " THEN 00906600
|
|
BEGIN 00906700
|
|
ZF ~0 ; PRINTCASTDIRECTORY ; GO TO L2 ; 00906800
|
|
END ; 00906900
|
|
IF Q !"4ONLY " THEN GO TO L4 ; 00907000
|
|
LISTONLYTOG ~ TRUE ; GO TO L2 ; 00907100
|
|
END ; 00907200
|
|
IF Q = "6SINGL" THEN DOUBLEONLY ~ FALSE ; 00907300
|
|
IF Q = "3SIX " THEN 00907400
|
|
BEGIN 00907500
|
|
DOUBLEONLY ~ FALSE ; 00907600
|
|
ZLCOUNTMAX~56; 00907700
|
|
SIXLINES~TRUE; SCAN; 00907800
|
|
IF RESULT=3 THEN 00907802
|
|
BEGIN 00907804
|
|
DTOCT(ACCUM[1],3,IJUNK,COUNT); 00907806
|
|
SCAN; 00907808
|
|
IF IJUNK<66 THEN ZLCOUNTMAX~IJUNK ELSE DOCERROR(21); 00907810
|
|
END ; 00907812
|
|
IF Q = "6DOUBL" THEN DOUBLEONLY ~ TRUE ELSE 00907900
|
|
GO TO L4 ; GO TO L2 ; 00908000
|
|
END ELSE 00908100
|
|
IF Q="5EIGHT" THEN 00908102
|
|
BEGIN 00908104
|
|
SCAN; IF RESULT! 3 THEN GO TO L4; 00908106
|
|
DTOCT(ACCUM[1],3,IJUNK,COUNT); 00908108
|
|
IF IJUNK<88 THEN ZLCOUNTMAX~IJUNK ELSE DOCERROR(21); 00908110
|
|
END ; 00908112
|
|
IF Q = "6PPAGE" THEN 00908200
|
|
BEGIN 00908300
|
|
PUNCHPAGES ~ TRUE; 00908400
|
|
CLEAR(BLOCKBUFFER[0],14); 00908500
|
|
FILL BLOCKBUFFER [*] WITH "* OVER ","PAGE "; 00908600
|
|
SCAN; IF Q = "#INSER" THEN 00908700
|
|
BEGIN 00908800
|
|
FILL BLOCKBUFFER [*] WITH "* OVER ","INSERTPA", 00908900
|
|
"GE "; 00909000
|
|
INSTOG~TRUE; 00909100
|
|
SCAN; 00909200
|
|
IF RESULT = 3 THEN 00909300
|
|
BEGIN 00909400
|
|
DTOCT(ACCUM[1],3,INSINC,COUNT); 00909500
|
|
SCAN; 00909600
|
|
END ELSE INSINC ~0; 00909700
|
|
END; 00909800
|
|
IF Q = "5PUNCH" THEN 00909900
|
|
BEGIN 00910000
|
|
PUNCHTOG ~ TRUE; 00910100
|
|
SCAN; 00910200
|
|
END ELSE PUNCHTOG ~ FALSE; 00910300
|
|
GO TO L4; 00910400
|
|
END; 00910500
|
|
IF Q = "5BUILD" THEN 00910600
|
|
BEGIN 00910700
|
|
BUILDTOG ~ TRUE ; BUILDPUNCHTOG ~ FALSE ; 00910800
|
|
SCAN ; IF Q ! "5PUNCH" THEN GO TO L4 ; 00910900
|
|
BUILDPUNCHTOG ~ TRUE ; GO TO L2 ; 00911000
|
|
END ; 00911100
|
|
IF Q = "8RESER" THEN RESERVEDTOG ~ TRUE ; 00911200
|
|
IF Q = "6UPDAT" THEN 00911300
|
|
BEGIN 00911400
|
|
UPDATETOG~ TRUE; 00911500
|
|
CLEAR (CONTBUF,14); 00911600
|
|
FILL CONTID[*] WITH OCT2346456331456421, 00911700
|
|
OCT6331464560606060; 00911800
|
|
MOVECHARS (CONTID[0],CONTBUF[7],0,1,16); 00911900
|
|
END; 00912000
|
|
IF Q = "8REVIS" THEN 00912100
|
|
BEGIN 00912200
|
|
REVTOG ~ TRUE; 00912300
|
|
DOCREV~ 1; 00912400
|
|
SCAN; IF Q = "5CLEAR" THEN 00912500
|
|
BEGIN 00912600
|
|
REVTOG~ FALSE; SCAN; 00912700
|
|
END; 00912800
|
|
IF RESULT = 3 THEN 00912900
|
|
BEGIN 00913000
|
|
DTOCT(ACCUM[1],3,DOCREV,COUNT); 00913100
|
|
IF DOCREV > 100 THEN ERROR(29); 00913200
|
|
SCAN; 00913300
|
|
END; 00913400
|
|
FILL REVB[*] WITH OCT6060512565606060; 00913500
|
|
MOVECHARS (REVISIONS [DOCREV],REVB[0],6,6,2); 00913600
|
|
GO TO L4; 00913700
|
|
END; 00913800
|
|
IF Q = "9NOJUS"THEN DONTJUSTIFY ~ TRUE ; 00913900
|
|
IF Q = "5LARGE" THEN 00914000
|
|
BEGIN 00914100
|
|
BIGTOG ~TRUE ; 00914200
|
|
SCAN ; IF PERCENT OR ENDCARD THEN GO TO RETURN ; 00914300
|
|
IF RESULT ! 3 THEN GO TO L4 ; 00914400
|
|
DTOCT(ACCUM[1],3,CORESIZE,COUNT) ; 00914500
|
|
GO TO L2 ; 00914600
|
|
END ; 00914700
|
|
IF Q = "7SHUFF" THEN 00914800
|
|
BEGIN 00914900
|
|
IF SELECTIVEXREF THEN ERROR(32); 00915000
|
|
SELECTIVEXREF ~ TRUE; 00915100
|
|
00915200
|
|
IF NOT FINDCHAR(NCR,"%") THEN 00915300
|
|
BEGIN 00915400
|
|
SCAN; IF Q = "3NEW " THEN 00915500
|
|
IF NOT FINDCHAR (NCR,"%") THEN 00915600
|
|
BEGIN 00915700
|
|
SCAN; 00915800
|
|
NEWTOG ~ TRUE; 00915900
|
|
IF Q = "5PUNCH" THEN 00916000
|
|
BEGIN 00916100
|
|
PUNCHSW ~ 0;PUNCHTOG ~TRUE; 00916200
|
|
END ELSE 00916300
|
|
IF Q = "4TAPE " THEN SWFOUTIND ~ 0 ELSE 00916400
|
|
IF Q = "4DISK " OR Q = "4DISC " THEN SWFOUTIND ~1 ELSE 00916500
|
|
NEWTOG ~ FALSE ; 00916600
|
|
END ; 00916700
|
|
END ; 00916800
|
|
SHUFFLETOG ~ TRUE ; GO TO EOFCARD ; 00916900
|
|
END ; 00917000
|
|
IF Q = "4BUGS " THEN BUILDEBUG ~ TRUE ; 00917100
|
|
IF Q = "7COMME"THEN COMMENTOG ~ TRUE ; 00917200
|
|
IF Q = "6STRIN" THEN 00917300
|
|
BEGIN 00917400
|
|
STRINGTOG ~ TRUE ; STLENGTH ~ 8 ; SCAN ; 00917500
|
|
IF RESULT ! 3 THEN GO TO L4 ; 00917600
|
|
DTOCT(ACCUM[1],3,STLENGTH,COUNT) ; 00917700
|
|
END ; 00917800
|
|
IF Q = "4DUMP " THEN DUMPFLAG ~ TRUE ; 00917900
|
|
IF Q = "4SORT " THEN 00918000
|
|
BEGIN 00918100
|
|
IF SELECTIVEXREF THEN ERROR(32); 00918200
|
|
SELECTIVEXREF ~ TRUE; 00918300
|
|
SORTOG ~ TRUE; 00918400
|
|
END; 00918500
|
|
IF Q = "5ALPHA" THEN ALPHATOG ~TRUE ; 00918600
|
|
IF Q = "5LOGIC" THEN 00918700
|
|
BEGIN 00918800
|
|
LOGICTOG ~TRUE ; FIRSTCHAR ~ 0 ; LASTCHAR ~ 63 ; 00918900
|
|
END ; 00919000
|
|
IF Q = "3SEQ " THEN SEQTOG ~ TRUE ; 00919100
|
|
IF Q = "2DA " THEN DATOG ~ TRUE ; 00919200
|
|
IF Q = "5CHECK" THEN SEQTOG ~ TRUE ; 00919300
|
|
IF Q = "4VOID " THEN 00919400
|
|
BEGIN 00919500
|
|
VOIDTOG ~ TRUE ; SCAN ; 00919600
|
|
IF RESULT ! 3 OR ENDTOG THEN ERROR(15) ; 00919700
|
|
DTOCT(ACCUM[1],3,JUNK,COUNT) ; 00919800
|
|
OCTTODEC(JUNK,VOIDSEQ); 00919900
|
|
GO TO L2 ; 00920000
|
|
END ; 00920100
|
|
IF Q = "9PROCE" THEN 00920200
|
|
BEGIN 00920300
|
|
IF SELECTIVEXREF THEN ERROR(32); 00920400
|
|
SELECTIVEXREF ~ TRUE; 00920500
|
|
PROCTOG ~ TRUE ; BEGINTOG ~ FALSE ; 00920600
|
|
END ; 00920700
|
|
IF Q = "5COUNT" OR Q.[18:30] = "IDENT" THEN 00920800
|
|
BEGIN 00920900
|
|
IF SELECTIVEXREF THEN ERROR(32); 00921000
|
|
SELECTIVEXREF ~ TRUE; 00921100
|
|
COUNTOG ~ TRUE; 00921200
|
|
END; 00921300
|
|
IF Q = "8DOCUM" THEN 00921400
|
|
BEGIN 00921500
|
|
IF LISTTOBACKUPTOG THEN ERROR(26) ; 00921600
|
|
IF SELECTIVEXREF THEN ERROR(32); 00921700
|
|
SELECTIVEXREF ~ TRUE; 00921800
|
|
DOCLISTOG~LISTOG; 00921900
|
|
LISTOG ~ FALSE; 00922000
|
|
DOCTOG ~ TRUE ; 00922100
|
|
00922102
|
|
IF FINDCHAR(NCR,""") THEN 00922104
|
|
BEGIN 00922106
|
|
LABEL OK ; 00922108
|
|
SCEN ; IF RESULT ! 5 THEN GO TO OK ; 00922110
|
|
MOVEWORDS(ACCUM[1],FIRSTDOCID[1],9); 00922112
|
|
FIRSTDOCIDTOG ~ TRUE ; DOCIDTOG ~ TRUE ; 00922114
|
|
SCEN ; IF Q ! "2TO " THEN GO TO OK ; 00922116
|
|
SCEN ; IF RESULT ! 5 THEN GO TO OK ; 00922118
|
|
MOVEWORDS(ACCUM[1], LASTDOCID[1],9); 00922120
|
|
LASTDOCIDTOG ~ TRUE ; 00922122
|
|
SCEN ; 00922124
|
|
OK: 00922126
|
|
END ELSE 00922128
|
|
SCAN ; IF ( FINALDOCTOG ~ Q = "5FINAL") THEN GO TO L2 00922200
|
|
; IF (CONTOG ~ Q = "8CONTE" ) THEN 00922300
|
|
BEGIN 00922400
|
|
DOCTOG ~ FALSE ; SCAN; 00922500
|
|
IF Q = "4ONLY " THEN GO TO L2 ELSE GO TO L4; 00922600
|
|
END; 00922700
|
|
IF Q = "6SYNTA" THEN 00922800
|
|
BEGIN 00922900
|
|
SYNTAXTOG ~ TRUE ; SCAN ; 00923000
|
|
IF Q ! "5FINAL" THEN GO TO L4 ; 00923100
|
|
FINALDOCTOG ~ TRUE ; GO TO L2 ; 00923200
|
|
END ; 00923300
|
|
GO TO L4 ; 00923400
|
|
END ; 00923500
|
|
IF Q = "5BLOCK" THEN 00923600
|
|
BEGIN 00923700
|
|
IF LISTTOBACKUPTOG THEN ERROR(27) ; 00923800
|
|
IF SELECTIVEXREF THEN ERROR(32); 00923900
|
|
SELECTIVEXREF ~ TRUE; 00924000
|
|
BLOCKTOG ~TRUE ; CLEAR(BLOCKBUFFER,14) ; 00924100
|
|
SCAN ; IF RESULT ! 3 THEN GO TO L4 ELSE 00924200
|
|
BEGIN 00924300
|
|
DTOCT(ACCUM[1],3,BINDENT,COUNT) ; GO TO L2 ; 00924400
|
|
END ; 00924500
|
|
END ; 00924600
|
|
IF RESULT = 5 THEN 00924700
|
|
BEGIN 00924800
|
|
IF (HEADPOINT + COUNT + 1 ) < 72 THEN 00924900
|
|
BEGIN 00925000
|
|
MOVECHARS(ACCUM[1],HEADING[HEADPOINT DIV 8] , 3, 00925100
|
|
HEADPOINT.[45:3],COUNT); 00925200
|
|
HEADPOINT ~ HEADPOINT + COUNT +1 ; 00925300
|
|
END ; 00925400
|
|
GO TO L2 ; 00925500
|
|
END ; 00925600
|
|
IF Q = "7MONIT" THEN MONITOG ~ TRUE ; 00925700
|
|
IF Q = "9NAMEP" THEN 00925800
|
|
BEGIN 00925900
|
|
NAMEPUNCH ~ TRUE ; SCAN ; 00926000
|
|
IF Q ! "5BLANK" THEN GO TO L4 ; 00926100
|
|
BLANKNAMEPUNCH ~ TRUE ; GO TO L2 ; 00926200
|
|
END ; 00926300
|
|
IF Q = "5NAMES" THEN 00926400
|
|
BEGIN 00926500
|
|
BEGINTOG ~ FALSE ; 00926600
|
|
RESERVEDTOG ~ TRUE ; 00926700
|
|
IF XREFTOG THEN ERROR(11) ; 00926800
|
|
IF PROCTOG THEN ERROR(12) ; 00926900
|
|
IF SELECTIVEXREF THEN ERROR(32); 00927000
|
|
SELECTIVEXREF ~ TRUE; 00927100
|
|
L3: SCAN ; IF Q = "1$ " THEN 00927200
|
|
BEGIN 00927300
|
|
CONTCARD ~ TRUE ; READATAPE ; SCAN ; 00927400
|
|
IF Q! "1$ " THEN ERROR(7) ; 00927500
|
|
END ; 00927600
|
|
IF Q = "1* "THEN 00927700
|
|
BEGIN 00927800
|
|
NAMETOG ~ TRUE; GO TO L2; 00927900
|
|
END ; 00928000
|
|
IF COBOLTOG THEN 00928100
|
|
BEGIN 00928200
|
|
IF IDENTIFIER OR RESULT = 3 THEN 00928300
|
|
IF IDENTIFIER OR RESULT = 3 THEN 00928400
|
|
BEGIN 00928500
|
|
BUILDCOBID ; 00928600
|
|
IF SORTSCRAMBLE THEN Q ~Q; 00928700
|
|
END ; 00928800
|
|
GO TO L3 ; 00928900
|
|
END ; 00929000
|
|
00929100
|
|
00929200
|
|
IF FORTRTOG THEN IF RESULT = 3 THEN 00929300
|
|
IF SORTSCRAMBLE THEN Q~Q; 00929400
|
|
IF RESULT = 1 THEN IF SORTSCRAMBLE THEN Q ~ Q ; GO TO L3 ;00929500
|
|
END ; 00929600
|
|
L5: IF Q = "4CAST " THEN 00929700
|
|
BEGIN 00929800
|
|
INTEGER BLOCKEXTENDER; 00929900
|
|
SCAN ; CASTOG ~ TRUE ; TAPETOG ~ TRUE ; 00930000
|
|
IF Q.[18:6]="A" OR Q.[18:6] ="B" OR Q.[18:6] = "C" THEN 00930100
|
|
IF COUNT = 1 THEN CASTINDEX ~ Q.[18:6] - 17 ELSE ERROR(1) 00930200
|
|
ELSE ERROR(2) ; 00930300
|
|
FILLCASTLINKS ; 00930400
|
|
SCAN ; 00930500
|
|
IF Q = "3ALL " THEN 00930600
|
|
BEGIN 00930700
|
|
ALLTOG ~ TRUE ; SCAN ; 00930800
|
|
IF Q = "4FROM "THEN 00930900
|
|
BEGIN 00931000
|
|
FROMTOG ~ TRUE ; SCAN ; 00931100
|
|
MOVECHARS(ACCUM[1],FIRSTCASTID[1],3,0,COUNT) ; 00931200
|
|
FIRSTCASTID[0] ~ COUNT ; 00931300
|
|
SCAN ; IF Q ! "2TO " THEN ERROR(4) ; 00931400
|
|
SCAN ; IF Q ! "3END " THEN 00931500
|
|
BEGIN 00931600
|
|
MOVECHARS(ACCUM[1], LASTCASTID[1],3,0,COUNT) ; 00931700
|
|
LASTCASTID[0] ~ COUNT ; 00931800
|
|
END ELSE 00931900
|
|
BEGIN 00932000
|
|
TOENDTOG ~TRUE ; 00932100
|
|
LASTCASTID[0] ~ CASTLINKS[CASTLINKS[0]-1].[24:6] ; 00932200
|
|
MOVECHARS(CASTDIR[CASTLINKS[CASTLINKS[0]-1].[6:6], 00932300
|
|
CASTLINKS[CASTLINKS[0]-1].[12:6]], 00932400
|
|
LASTCASTID[1],CASTLINKS[CASTLINKS[0]-1].[18:6],0,LASTCASTID[0]) ; 00932500
|
|
END ; 00932600
|
|
END ELSE 00932700
|
|
BEGIN 00932800
|
|
IF Q ! "2TO "THEN ERROR(18) ; 00932900
|
|
SCAN ; IF Q ! "3END " THEN ERROR(18) ; 00933000
|
|
MOVECHARS(CASTDIR[CASTLINKS[1].[6:6],CASTLINKS[1].[12:6]],00933100
|
|
FIRSTCASTID[1], 00933200
|
|
CASTLINKS[1].[18:6],0,CASTLINKS[1].[24:6]) ; 00933300
|
|
FIRSTCASTID[0] ~ CASTLINKS[1].[24:6] ; 00933400
|
|
LASTCASTID[0] ~ CASTLINKS[CASTLINKS[0]-1].[24:6] ; 00933500
|
|
MOVECHARS(CASTDIR[CASTLINKS[CASTLINKS[0]-1].[6:6], 00933600
|
|
CASTLINKS[CASTLINKS[0]-1].[12:6]], 00933700
|
|
LASTCASTID[1],CASTLINKS[CASTLINKS[0]-1].[18:6],0,LASTCASTID[0]) ; 00933800
|
|
SCANFLAG ~ TRUE ; 00933900
|
|
END ; 00934000
|
|
END ELSE 00934100
|
|
BEGIN 00934200
|
|
MOVECHARS(ACCUM[1],FIRSTCASTID[1],3,0,COUNT) ; 00934300
|
|
FIRSTCASTID[0] ~ COUNT ; 00934400
|
|
END ; 00934500
|
|
MULTNAME[2] ~ " " ; 00934600
|
|
JUNK ~ IF FIRSTCASTID[0] > 7 THEN 7 ELSE 00934700
|
|
FIRSTCASTID[0] ; 00934800
|
|
MOVECHARS(FIRSTCASTID[1],MULTNAME[2],0,1,JUNK) ; 00934900
|
|
IF (HEADPOINT + FIRSTCASTID[0] + 1 ) < 72 THEN 00935000
|
|
BEGIN 00935100
|
|
MOVECHARS(FIRSTCASTID[1],HEADING[HEADPOINT DIV 8],0, 00935200
|
|
HEADPOINT.[45:3],FIRSTCASTID[0]) ; 00935300
|
|
HEADPOINT ~ HEADPOINT + 1 + FIRSTCASTID[0] ; 00935400
|
|
END ; 00935500
|
|
FCASTINDEX ~ FINDCASTID(FIRSTCASTID) ; 00935600
|
|
IF ALLTOG THEN 00935700
|
|
LCASTINDEX ~ FINDCASTID(LASTCASTID) ; 00935800
|
|
FCASTSEQ ~ CASTLINKS[FCASTINDEX].[30:18] ; 00935900
|
|
T1 ~ (FCASTSEQ - 1) DIV 5 + 1 ; 00936000
|
|
CASTPOINT ~ ((FCASTSEQ - 1) MOD 5 ) | 11 + 1 ; 00936100
|
|
NCASTRECS ~ CASTLINKS[FCASTINDEX+1].[30:18] - FCASTSEQ ; 00936200
|
|
NCASTRECS ~ NCASTRECS - 1 ; 00936300
|
|
IF CASTINDEX = 0 THEN 00936400
|
|
BEGIN 00936500
|
|
CASTAINDEX ~ CASTAINDEX + T1 - 1 ; 00936600
|
|
READ SEEK(CASTSW[CASTINDEX][CASTAINDEX]) ; 00936700
|
|
READ(CASTSW[CASTINDEX],56,CASTBUFF[*]) ; 00936800
|
|
END ELSE 00936900
|
|
FOR I ~ 1 STEP 1 UNTIL T1 DO 00937000
|
|
READ(CASTSW[CASTINDEX],56,CASTBUFF[*]) ; 00937100
|
|
CLEAR(LTSEQ,1); READCAST; 00937200
|
|
IF SCANFLAG THEN GO TO L4 ; 00937300
|
|
GO TO L2 ; 00937400
|
|
END ; 00937500
|
|
IF Q = "4XREF " THEN 00937600
|
|
BEGIN 00937700
|
|
00937800
|
|
SELECTIVEXREF ~ TRUE; 00937900
|
|
IF DOCTOG THEN DOCXREFTOG ~TRUE ELSE 00938000
|
|
BEGIN 00938100
|
|
XREFTOG ~ TRUE ; BEGINTOG ~ FALSE ; 00938200
|
|
SCAN ; IF RESULT ! 1 OR COUNT ! 1 THEN ERROR(5) ; 00938300
|
|
FIRSTCHAR ~ Q.[18:6] ; 00938400
|
|
SCAN ; IF Q = "2TO " THEN 00938500
|
|
BEGIN 00938600
|
|
SCAN ; IF RESULT !1 OR COUNT ! 1 THEN ERROR(6) ; 00938700
|
|
LASTCHAR ~ Q.[18:6] ; 00938800
|
|
END ELSE 00938900
|
|
BEGIN 00939000
|
|
LASTCHAR ~ FIRSTCHAR ; GO TO L4 ; 00939100
|
|
END ; 00939200
|
|
END ; 00939300
|
|
END ; 00939400
|
|
IF Q = "1$ " THEN 00939500
|
|
BEGIN 00939600
|
|
CONTCARD ~ TRUE ; READATAPE ; 00939700
|
|
SCAN ; IF Q ! "1$ " THEN ERROR(7) ; 00939800
|
|
GO TO L2 ; 00939900
|
|
END ; 00940000
|
|
IF Q.[18:30] = "RESEQ" THEN 00940100
|
|
BEGIN 00940200
|
|
IF CASTOG AND ALLTOG THEN ERROR(8) ; 00940300
|
|
RESEQTOG ~ TRUE ; NEWSEQ ~0 ; 00940400
|
|
IF Q.[12:6] ! 5 THEN RESEQONLY ~TRUE ; 00940500
|
|
IF NEWPATCHTOG THEN 00940600
|
|
BEGIN 00940700
|
|
PATCHRESEQ~ TRUE; RESEQTOG ~ FALSE; 00940800
|
|
END; 00940900
|
|
SCAN; 00941000
|
|
IF Q = "3DOC " THEN 00941100
|
|
BEGIN 00941200
|
|
SCAN; REMOVEOVERTOG ~ TRUE; LOOKFORSTAR ~ TRUE; 00941300
|
|
END; 00941400
|
|
IF RESULT ! 3 THEN GO TO L4; 00941500
|
|
BEGIN 00941600
|
|
DTOCT(ACCUM[1],3,SEQINC,COUNT) ; 00941700
|
|
SCAN ; IF NOT COMMA THEN GO TO L4 ELSE 00941800
|
|
BEGIN 00941900
|
|
SCAN ; IF RESULT ! 3 THEN ERROR(17) ; 00942000
|
|
DTOCT(ACCUM[1],3,NEWSEQ,COUNT) ; 00942100
|
|
BLANKNEWSEQ ~ SEQINC = 0 AND NEWSEQ = 0 ; 00942200
|
|
NEWSEQ ~ NEWSEQ - SEQINC ; GO TO L2 ; 00942300
|
|
END ; 00942400
|
|
END ; 00942500
|
|
END ; 00942600
|
|
IF Q = "3NEW " THEN 00942700
|
|
BEGIN 00942800
|
|
IF CASTOG AND ALLTOG THEN 00942900
|
|
BEGIN 00943000
|
|
SCAN ; IF Q ! "9MULTI"THEN ERROR(24) ; 00943100
|
|
NEWTOG ~ TRUE ; SWFOUTIND ~ 0 ; 00943200
|
|
NEWMULTITOG ~ TRUE ; 00943300
|
|
SCAN ; IF RESULT ! 1 THEN ERROR(22) ; 00943400
|
|
IF COUNT } 8 THEN ERROR(23) ; 00943500
|
|
MULTNAME[1] ~ " " ; 00943600
|
|
MOVECHARS(ACCUM[1],MULTNAME[1],3,1,COUNT) ; 00943700
|
|
FILL NEWTAPE WITH MULTNAME[1],MULTNAME[2] ; 00943800
|
|
GO TO L2 ; 00943900
|
|
END ; 00944000
|
|
NEWTOG ~ TRUE ; SCAN ; SWFOUTIND ~ 0 ; 00944100
|
|
IF Q ! "4TAPE " THEN 00944200
|
|
IF Q = "4DISK " OR Q = "4DISC " THEN SWFOUTIND ~ 1 ELSE 00944300
|
|
IF Q = "5PUNCH" THEN 00944400
|
|
BEGIN 00944500
|
|
PUNCHSW ~0 ; PUNCHTOG ~ TRUE ; 00944600
|
|
SCAN ; IF Q ="4TAPE " THEN PUNCHSW ~ 1 ELSE GO TO L4 ; 00944700
|
|
END ELSE 00944800
|
|
IF Q = "9PATCH" THEN % "PATCHTAPE" 00944900
|
|
BEGIN 00945000
|
|
SWFOUTIND ~ 4; NEWPATCHTOG ~ TRUE; 00945100
|
|
PATCHRESEQ ~ RESEQTOG; RESEQTOG ~ FALSE; 00945200
|
|
SCAN; IF Q = "5PUNCH" THEN 00945300
|
|
BEGIN 00945400
|
|
PUNCHSW~0; PUNCHTOG ~ TRUE; SCAN; 00945500
|
|
END; 00945600
|
|
GO TO L4; 00945700
|
|
END ELSE GO TO L4; 00945800
|
|
END ; 00945900
|
|
IF Q = "7NODEB"THEN NODEBUGTOG ~ TRUE ; 00946000
|
|
IF Q = "5STUFF" THEN PATCHTOG ~ DEBUGSTUFF ~ TRUE ; 00946100
|
|
IF Q = "5B3500" THEN 00946200
|
|
BEGIN 00946300
|
|
ASMLTOG ~ TRUE ; 00946400
|
|
IF TAPETOG THEN ASMLEDIT(TBUFF,ASMLBUFF[2,*]) ; 00946500
|
|
END ; 00946600
|
|
IF Q = "5COBOL" THEN 00946700
|
|
BEGIN 00946800
|
|
COBOLTOG ~ TRUE ; 00946900
|
|
FILLCOBOL; 00947000
|
|
IF TAPETOG THEN COBOLEDIT(TBUFF,COBOLBUFF[2,*]) ; 00947100
|
|
END ; 00947200
|
|
IF Q = "5PRINT" THEN PRINTOG ~ TRUE ; 00947300
|
|
IF Q = "6BACKU" THEN 00947400
|
|
BEGIN 00947500
|
|
BACKIND ~1 ; 00947600
|
|
SAVEBACKUPTOG ~ TRUE ; 00947700
|
|
SCAN; IF Q = "4DISK " OR Q = "4DISC " THEN 00947800
|
|
BEGIN 00947900
|
|
BACKIND ~0; 00948000
|
|
SCAN; 00948100
|
|
END; 00948200
|
|
BACKUPTOG ~TRUE; 00948300
|
|
IF Q ! "6UPDAT" THEN GO TO L4 ; 00948400
|
|
BEGIN 00948500
|
|
LABEL RDB,EOFB ; 00948600
|
|
ARRAY T[0:15]; 00948700
|
|
RDB: CLEAR(T,14) ; 00948800
|
|
IF BACKIND = 0 THEN 00948900
|
|
READ (OLDBACKUP,15,T[*]) [EOFB] ELSE 00949000
|
|
READ(OLDBAC,15,T[*]) [EOFB] ; 00949100
|
|
WRITE(BACKUP,15,T[*]) ; 00949200
|
|
GO TO RDB ; 00949300
|
|
EOFB: IF BACKIND = 0 THEN 00949400
|
|
LOCK(OLDBACKUP,RELEASE) ELSE LOCK (OLDBAC,RELEASE) ; 00949500
|
|
END ; 00949600
|
|
END ; 00949700
|
|
GO TO L2 ; 00949800
|
|
RETURN: 00949900
|
|
IF TAPEPATCHES THEN CLOSE (CARD,RELEASE); 00950000
|
|
IF FIRSTDOLLAR THEN 00950100
|
|
BEGIN 00950200
|
|
ZSP ~ ZSPERM~ IF DOUBLEONLY THEN 2 ELSE 1; 00950300
|
|
FIRSTDOLLAR ~FALSE ; 00950400
|
|
IF DOCTOG AND NEWTOG THEN ERROR(9) ; 00950500
|
|
LISTOG ~ LISTOG OR DOCLISTOG ; 00950600
|
|
BMON ~ BLOCKTOG OR DOCTOG OR FLOWTOG ; 00950700
|
|
FLOWDOCBLOCKTOG ~ BMON ; 00950800
|
|
PRINTOG ~ PRINTOG OR NOT SAVEBACKUPTOG ; 00950900
|
|
BACKUPTOG ~ BACKUPTOG OR (LISTOG AND BMON) ; 00951000
|
|
ZLB ~ IF LISTOG AND LISTTOBACKUPTOG THEN 2 ELSE 00951100
|
|
IF LISTOG THEN 0 ELSE IF LISTTOBACKUPTOG THEN 1 ELSE -1 ; 00951200
|
|
ZF ~ IF LISTOG AND BMON THEN 1 ELSE 00951300
|
|
IF PRINTOG AND BACKUPTOG THEN 2 ELSE 00951400
|
|
IF PRINTOG THEN 0 ELSE IF BACKUPTOG THEN 1 ELSE -1 ; 00951500
|
|
IF BMON AND LISTOG THEN 00951600
|
|
BEGIN 00951700
|
|
LISTOG ~FALSE ; DOCLISTOG ~ TRUE ; 00951800
|
|
END ; 00951900
|
|
AUTOPRINT ~ DOCLISTOG AND PRINTOG; 00952000
|
|
IF UPDATETOG THEN BACKIND ~0; 00952100
|
|
IF BACKUPTOG AND (DOCTOG OR FLOWTOG) THEN 00952200
|
|
BEGIN 00952300
|
|
WRITE (BACKUP,15,BLANKARRAY[*]); 00952400
|
|
BKRCRDCOUNT ~BKRCRDCOUNT+1; 00952500
|
|
END; 00952600
|
|
IF CONTOG THEN 00952700
|
|
BEGIN 00952800
|
|
DOCTOG ~ TRUE; ZZF ~ZF; ZF ~-1; 00952900
|
|
END; 00953000
|
|
END ; 00953100
|
|
WHILE VOIDTOG DO READATAPE; 00953200
|
|
IF COPYTOG THEN COPY ; 00953300
|
|
END SETUPCONTROLS ; 00953400
|
|
COMMENT DOCUMENT* 23 * * * * * * * * * * * * * * * * * * * * * * * ; 00953500
|
|
PROCEDURE READATAPE ; 00953600
|
|
COMMENT RESPONSIBLE FOR READING SOURCE FILES AND PATCH CARDS,SELECTING 00953700
|
|
RECORDS BY SEQUENCE NUMBER, AND FOR DOING SOURCE FILE 00953800
|
|
MAINTENANCE (EXCEPT "COPY") AND LISTING ; 00953900
|
|
BEGIN 00954000
|
|
LABEL RETURN,L,LL,ENDREAD ; 00954100
|
|
LABEL MORE1,MORE2 ; 00954200
|
|
LABEL EOF,EOFOVER; 00954300
|
|
LABEL START ; 00954400
|
|
LABEL AROUND ; 00954500
|
|
LABEL LISTCARDS; 00954600
|
|
INTEGER TEMP ; 00954700
|
|
BOOLEAN TEMPTOG; 00954800
|
|
IF MONITOG THEN WRITE(PRINT,MONITFORM,"READAT","APE ") ;00954900
|
|
TEMPTOG ~ DOCOUTPUT; DOCOUTPUT ~ FALSE; 00955000
|
|
START: 00955100
|
|
NEWCARD ~ TRUE; 00955200
|
|
IF DEVICE = 1 THEN 00955300
|
|
BEGIN 00955400
|
|
IF LOOKFORDOLLAR THEN 00955500
|
|
BEGIN 00955600
|
|
L: READ(CARDS,10,CBUFF[*]) ; 00955700
|
|
IF CHECKDOLLAR(CBUFF[0]) THEN 00955800
|
|
BEGIN 00955900
|
|
IF CHECKDOLLAR(CARD(0))AND 00956000
|
|
WORDEQUAL(CBUFF[9],CARDS(9),1) THEN GO TO L ; 00956010
|
|
END ELSE 00956100
|
|
BEGIN 00956200
|
|
LISTOG ~ TRUE ; ZLB ~ 0 ; ZF ~ - 1 ; 00956300
|
|
LISTCARDTOG ~ TRUE ; 00956400
|
|
LOOKFORDOLLAR ~ FALSE ; 00956500
|
|
GO TO LISTCARDS; 00956600
|
|
END ; 00956700
|
|
END ELSE 00956800
|
|
BEGIN 00956900
|
|
LL: READ(CARDS,10,CBUFF[*])[EOFCARD] ; 00957000
|
|
END ; 00957100
|
|
IF NOT CHECKDOLLAR(CBUFF[0]) THEN 00957200
|
|
IF ASMLTOG THEN ASMLEDIT(CBUFF,ASMLBUFF[1,*]) ; 00957300
|
|
IF NOT CHECKDOLLAR(CBUFF[0]) THEN 00957400
|
|
IF COBOLTOG THEN COBOLEDIT(CBUFF,COBOLBUFF[1,*]) ; 00957500
|
|
IF SEQTOG THEN IF SEQCOMP(CBUFF[9],LCSEQ)! 1 THEN 00957600
|
|
DOCERROR(19) ; 00957700
|
|
MOVEWORDS (CBUFF[9],LCSEQ,1); 00957800
|
|
END ELSE 00957900
|
|
BEGIN 00958000
|
|
MORE1: 00958100
|
|
IF CASTOG THEN READCAST ELSE 00958200
|
|
READ(SWIN,10,TBUFF[*])[EOF] ; 00958300
|
|
IF ASMLTOG THEN ASMLEDIT(TBUFF,ASMLBUFF[2,*]) ; 00958400
|
|
IF COBOLTOG THEN COBOLEDIT(TBUFF,COBOLBUFF[2,*]) ; 00958500
|
|
IF NOT NEWPATCHTOG THEN 00958600
|
|
IF CHECKCHAR(TBUFF,0,"$") THEN GO TO MORE1 ; 00958700
|
|
IF SEQTOG THEN IF SEQCOMP(TBUFF[9],LTSEQ) ! 1 THEN 00958800
|
|
DOCERROR(20) ; 00958900
|
|
MOVEWORDS (TBUFF[9],LTSEQ,1); 00959000
|
|
END ; 00959100
|
|
GO TO EOFOVER; 00959200
|
|
EOF: 00959300
|
|
MOVEWORDS (NINES,TBUFF[9],1); 00959400
|
|
EOFOVER: 00959500
|
|
IF SEQCOMP(CBUFF[9],TBUFF[9]) ! 1 OR 00959600
|
|
NOT TAPETOG AND NOT ALLTOG THEN 00959700
|
|
BEGIN 00959800
|
|
DEVICE ~ 1 ; MOVEWORDS(CBUFF[0],GLOBE[0],10) ; 00959900
|
|
PATCHCARD ~ TRUE ; 00960000
|
|
SETCHAR(LISTBUFFER[12],3,PATCHLETTER) ; 00960100
|
|
PATCHFLAG ~FALSE ; 00960200
|
|
IF TAPETOG THEN IF SEQCOMP(CBUFF[9],TBUFF[9]) =2 THEN 00960300
|
|
IF NOT (SEQCOMP(TBUFF[9],NINES) =2 ) THEN 00960400
|
|
BEGIN 00960500
|
|
IF PATCHTOG THEN 00960600
|
|
BEGIN 00960700
|
|
MOVEWORDS(TBUFF[0],GLOBE[0],10) ; PATCHFLAG ~TRUE ; 00960800
|
|
IF DEBUGSTUFF THEN 00960900
|
|
BEGIN 00961000
|
|
SETCHAR(GLOBE[8],5,"%") ; 00961100
|
|
SETCHAR(GLOBE[8],6,"%") ; 00961200
|
|
END ; 00961300
|
|
WRITE(PUNCH,10,GLOBE[*]) ; 00961400
|
|
END ELSE PATCHFLAG ~FALSE ; 00961500
|
|
MORE2: 00961600
|
|
IF CASTOG THEN READCAST ELSE 00961700
|
|
READ(SWIN,10,TBUFF[*])[EOF] ; 00961800
|
|
IF ASMLTOG THEN ASMLEDIT(TBUFF,ASMLBUFF[2,*]) ; 00961900
|
|
IF COBOLTOG THEN COBOLEDIT(TBUFF,COBOLBUFF[2,*]) ; 00962000
|
|
IF NOT NEWPATCHTOG THEN 00962100
|
|
IF CHECKCHAR(TBUFF,0,"$") THEN GO TO MORE2 ; 00962200
|
|
IF SEQTOG THEN IF SEQCOMP(TBUFF[9],LTSEQ) =0 THEN 00962300
|
|
DOCERROR(20) ; 00962400
|
|
MOVEWORDS (TBUFF[9],LTSEQ,1); 00962500
|
|
END ; 00962600
|
|
END ELSE 00962700
|
|
BEGIN 00962800
|
|
DEVICE ~ 2 ; MOVEWORDS(TBUFF[0],GLOBE[0],10) ; 00962900
|
|
PATCHCARD ~FALSE ; 00963000
|
|
CLEAR(LISTBUFFER[12],0) ; 00963100
|
|
END ; 00963200
|
|
IF BPLFLOWTOG THEN 00963300
|
|
BEGIN 00963400
|
|
IF DEBUGREC(GLOBE[0],0) THEN 00963500
|
|
CLEARCHAR(GLOBE[0],0,2) ELSE CLEAR(GLOBE[0],8) ; 00963600
|
|
END ; 00963700
|
|
IF LISTCARDTOG THEN 00963800
|
|
BEGIN 00963900
|
|
LISTCARDS: 00964000
|
|
CLEAR(LISTBUFFER,14) ; 00964100
|
|
READ (CARDS,10,LISTBUFFER[*] ) [EOFCARD]; 00964200
|
|
IF SEQCOMP(LISTBUFFER[9],LCSEQ) ! 1 THEN 00964300
|
|
FOR I ~ 0 STEP 1 UNTIL 7 DO 00964400
|
|
SETCHAR(LISTBUFFER[11],I,"*") ; 00964500
|
|
MOVEWORDS(LISTBUFFER[9],LCSEQ,1); 00964600
|
|
WRITE(PRINT[DBL],15,LISTBUFFER[*]) ; 00964700
|
|
GO TO LISTCARDS; 00964800
|
|
END ; 00964900
|
|
MOVEWORDS(GLOBE[9],SEQ,1) ; 00965000
|
|
LASTSEQ ~ ISEQ; 00965100
|
|
DECTOOCT(SEQ,ISEQ); 00965200
|
|
IF VOIDTOG THEN IF SEQCOMP(SEQ,VOIDSEQ) } 1 THEN 00965300
|
|
VOIDTOG ~ FALSE ELSE GO TO RETURN; 00965400
|
|
DECTOOCT(GLOBE[9],TEMP) ; 00965500
|
|
NOTLAST ~ ( TEMP MOD 1000000) ! 999999 ; 00965600
|
|
LCR ~ MKABS(GLOBE[W]) ; NCR ~ LCR - W ; 00965700
|
|
DOLLARFLAG ~ EXAMINE (NCR) = "$" AND NOT NEWPATCHTOG; 00965800
|
|
IF PATCHTOG AND NOT PATCHCARD THEN GO TO START ; 00965900
|
|
IF DOCTOG OR REMOVEOVERTOG THEN 00966000
|
|
ASTERFLAG ~ EXAMINE(NCR) = "*" AND LOOKFORSTAR ; 00966100
|
|
IF ASTERFLAG THEN ASTERPATCHED~ 00966200
|
|
DEVICE=1 AND TAPETOG; 00966300
|
|
IF NOT DOLLARFLAG THEN CARDTALLY ~ CARDTALLY + 1 ; 00966400
|
|
IF ASMLTOG THEN 00966500
|
|
NOTBLANK~BLANKTEST(ASMLBUFF[DEVICE,1],9) OR 00966600
|
|
NOT CHECKCHAR(ASMLBUFF[DEVICE,0],7," ") ELSE 00966700
|
|
IF COBOLTOG THEN 00966800
|
|
NOTBLANK~ BLANKTEST(COBOLBUFF[DEVICE,1],9) OR 00966900
|
|
NOT CHECKCHAR(COBOLBUFF[DEVICE,0],6," ") OR 00967000
|
|
NOT CHECKCHAR(COBOLBUFF[DEVICE,0],7," ") ELSE 00967100
|
|
IF NEWPATCHTOG THEN NOTBLANK ~ TRUE ELSE 00967200
|
|
NOTBLANK ~ BLANKTEST(GLOBE,9) ; 00967300
|
|
IF FORTRTOG THEN 00967400
|
|
IF HOLTOG THEN 00967500
|
|
BEGIN 00967600
|
|
MOVEWORDS(GLOBE[0],COBACCUM[0],9); 00967700
|
|
HOLCONVERT(COBACCUM,GLOBE); 00967800
|
|
END ; 00967900
|
|
IF DEBLANKTOG AND NOT NOTBLANK THEN GO TO START ; 00968000
|
|
IF NODEBUGTOG AND DEBUGREC(GLOBE[8],5) THEN 00968100
|
|
NOTBLANK ~FALSE ; 00968200
|
|
IF REMOVEOVERTOG THEN 00968300
|
|
IF ASTERFLAG THEN 00968400
|
|
BEGIN 00968500
|
|
FIXCOL73(LCR); 00968600
|
|
SCAN; IF FINDCHAR(NCR,"%") THEN GO TO AROUND ; 00968700
|
|
SCAN ; IF Q = "4OVER " THEN GO TO START ELSE 00968800
|
|
DO BEGIN 00968900
|
|
IF Q ! "#INSER" THEN IF FINDCHAR(NCR,"%") THEN 00969000
|
|
GO TO AROUND ; 00969100
|
|
IF Q = "#INSER" THEN 00969200
|
|
BEGIN 00969300
|
|
REPLACEIT; GO TO AROUND; 00969400
|
|
END ; 00969500
|
|
SCAN ; 00969600
|
|
END UNTIL FALSE ; 00969700
|
|
AROUND: 00969800
|
|
END ; 00969900
|
|
IF RESEQTOG AND NOT DOLLARFLAG AND NOTBLANK THEN 00970000
|
|
IF NOTLAST THEN 00970100
|
|
BEGIN 00970200
|
|
MOVEWORDS(GLOBE[9],OLDSEQ,1) ; 00970300
|
|
IF NOT VOIDTOG THEN NEWSEQ ~ NEWSEQ + SEQINC ; 00970400
|
|
IF BLANKNEWSEQ THEN CLEAR(GLOBE[9],0) ELSE 00970500
|
|
OCTTODEC(NEWSEQ,GLOBE[9]) ; 00970600
|
|
MOVEWORDS(GLOBE[9],SEQ,1) ; 00970700
|
|
END ; 00970800
|
|
IF PATCHRESEQ THEN 00970900
|
|
BEGIN 00971000
|
|
MOVEWORDS(GLOBE[9],OLDSEQ,1); 00971100
|
|
IF LASTSEQ > ISEQ AND ISEQ = 0 THEN 00971200
|
|
BEGIN 00971300
|
|
NEWSEQ ~ FIRSTSEQ ~LASTSEQ; 00971400
|
|
NEWSEQ~NEWSEQ+SEQINC; 00971500
|
|
OCTTODEC(NEWSEQ,GLOBE[9]); 00971600
|
|
END ELSE 00971700
|
|
IF ISEQ = 0 AND LASTSEQ = 0 THEN 00971800
|
|
BEGIN 00971900
|
|
NEWSEQ~NEWSEQ+SEQINC; 00972000
|
|
OCTTODEC(NEWSEQ,GLOBE[9]); 00972100
|
|
END ELSE 00972200
|
|
IF LASTSEQ = 0 AND ISEQ =FIRSTSEQ THEN 00972300
|
|
BEGIN 00972400
|
|
NEWSEQ~NEWSEQ+SEQINC; 00972500
|
|
OCTTODEC(NEWSEQ,GLOBE[9]); 00972600
|
|
END; 00972700
|
|
MOVEWORDS(GLOBE[9],SEQ,1); 00972800
|
|
END; 00972900
|
|
IF NOT BLANKTEST(GLOBE[9],1) AND NOT DOLLARFLAG AND NOTBLANK 00973000
|
|
THEN 00973100
|
|
BEGIN 00973200
|
|
XREFSEQ ~ XREFSEQ + SEQINC ; 00973300
|
|
SEQBLANKTOG ~ TRUE ; 00973400
|
|
END ; 00973500
|
|
IF (LISTOG OR LISTTOBACKUPTOG OR 00973600
|
|
(DOCLISTOG AND BLOCKTOG) OR 00973700
|
|
(DOCLISTOG AND DOCLISTFLAG)) AND NOT 00973800
|
|
DOLLARFLAG AND NOT VOIDTOG AND NOT CONTCARD THEN 00973900
|
|
BEGIN 00974000
|
|
MOVEWORDS(GLOBE[0],LISTBUFFER[2],10) ; 00974100
|
|
IF (RESEQTOG AND NOTBLANK) OR PATCHRESEQ THEN 00974200
|
|
IF COBOLTOG OR ASMLTOG THEN 00974300
|
|
MOVECHARS(OLDSEQ,LISTBUFFER[13],2,2,6) 00974400
|
|
ELSE 00974500
|
|
MOVEWORDS(OLDSEQ,LISTBUFFER[13],1) ; 00974600
|
|
IF NOT (RESEQTOG OR PATCHRESEQ) AND NOT LISTONLYTOG 00974700
|
|
AND SEQBLANKTOG THEN 00974800
|
|
OCTTODEC(XREFSEQ,LISTBUFFER[11]) ; 00974900
|
|
IF REMOTETOG THEN 00975000
|
|
BEGIN 00975100
|
|
CLEAR(LISTBUFFER,14) ; 00975200
|
|
MOVEWORDS(GLOBE,LISTBUFFER,10) ; 00975300
|
|
END ; 00975400
|
|
IF ASMLTOG THEN 00975500
|
|
BEGIN 00975600
|
|
IF RESEQTOG THEN CLEAR(LISTBUFFER[0],11) ELSE 00975700
|
|
CLEAR(LISTBUFFER,14) ; 00975800
|
|
MOVEWORDS(ASMLBUFF[DEVICE,*],LISTBUFFER[2],10) ; 00975900
|
|
IF RESEQTOG THEN 00976000
|
|
MOVECHARS(GLOBE[9],LISTBUFFER[0],2,1,6); 00976100
|
|
END ; 00976200
|
|
IF COBOLTOG THEN 00976300
|
|
BEGIN 00976400
|
|
CLEAR(LISTBUFFER,14) ; 00976500
|
|
MOVEWORDS(COBOLBUFF[DEVICE,*],LISTBUFFER,10); 00976600
|
|
IF RESEQTOG THEN 00976700
|
|
MOVECHARS(GLOBE[9],LISTBUFFER[0],2,0,6); 00976800
|
|
END ; 00976900
|
|
IF RESEQTOG AND NOTBLANK OR NOT RESEQTOG THEN 00977000
|
|
IF DOUBLEONLY THEN ZPL(ZLB,2,LISTBUFFER) ELSE 00977100
|
|
ZPL(ZLB,1,LISTBUFFER); 00977200
|
|
END ; 00977300
|
|
IF ASTERFLAG AND DOCTOG THEN 00977400
|
|
BEGIN 00977500
|
|
OLDASEQ~ASAVESEQ ; 00977600
|
|
ASAVESEQ~ ISEQ; 00977700
|
|
IF SEQBLANKTOG THEN 00977800
|
|
BEGIN 00977900
|
|
OCTTODEC(XREFSEQ,SEQ) ; SEQBLANKTOG ~ FALSE ; 00978000
|
|
END ; 00978100
|
|
FIXCOL73(LCR) ; ASTERCONTROLS ; GO TO ENDREAD ; 00978200
|
|
END ; 00978300
|
|
IF DOLLARFLAG THEN 00978400
|
|
BEGIN 00978500
|
|
FIXCOL73(LCR) ; 00978600
|
|
SETUPCONTROLS ; GO TO ENDREAD ; 00978700
|
|
END ; 00978800
|
|
IF TRANSTOG THEN 00978900
|
|
MOVEWORDS(ASMLBUFF[DEVICE,0],GLOBE[0],10); 00979000
|
|
IF NEWTOG AND NOT VOIDTOG THEN 00979100
|
|
IF NOTLAST THEN 00979200
|
|
IF (RESEQTOG AND NOTBLANK) OR NOT RESEQTOG THEN 00979300
|
|
BEGIN 00979400
|
|
IF RESEQTOG THEN 00979500
|
|
IF COBOLTOG THEN 00979600
|
|
MOVECHARS(GLOBE[9],COBOLBUFF[DEVICE,0],2,0,6) ELSE 00979700
|
|
IF ASMLTOG THEN 00979800
|
|
MOVECHARS(GLOBE[9],ASMLBUFF[DEVICE,0],2,1,6); 00979900
|
|
IF NOT PUNCHTOG THEN 00980000
|
|
IF ASMLTOG THEN 00980100
|
|
WRITE(SWOUT,10,ASMLBUFF[DEVICE,*]) ELSE 00980200
|
|
IF COBOLTOG THEN 00980300
|
|
WRITE(SWOUT,10,COBOLBUFF[DEVICE,*]) ELSE 00980400
|
|
WRITE(SWOUT,10,GLOBE[*]) ; 00980500
|
|
IF PUNCHTOG THEN 00980600
|
|
IF ASMLTOG THEN 00980700
|
|
WRITE(NEWPUNCH[PUNCHSW],10,ASMLBUFF[DEVICE,*]) ELSE 00980800
|
|
IF COBOLTOG THEN 00980900
|
|
WRITE(NEWPUNCH[PUNCHSW],10,COBOLBUFF[DEVICE,*]) ELSE 00981000
|
|
WRITE(NEWPUNCH[PUNCHSW],10,GLOBE[*]); 00981100
|
|
END ; 00981200
|
|
IF NEWTOG THEN NEWTAPEOPENED ~ TRUE ; 00981300
|
|
IF INVTOG THEN 00981400
|
|
BEGIN 00981500
|
|
FOR IJUNK ~ 1 STEP 1 UNTIL INVCH[0] DO 00981600
|
|
SETCHAR(GLOBE[INVCH[IJUNK] DIV 8] , INVCH[IJUNK].[45:3], 00981700
|
|
12) ; IF NOT INVALLTOG THEN INVTOG ~FALSE ; 00981800
|
|
Q.[18:6] ~ "%" ; 00981900
|
|
END ; 00982000
|
|
ENDREAD: 00982100
|
|
IF SEQBLANKTOG THEN 00982200
|
|
BEGIN 00982300
|
|
SEQBLANKTOG ~ FALSE ; OCTTODEC(XREFSEQ,SEQ) ; 00982400
|
|
END ; 00982500
|
|
RETURN: 00982600
|
|
IF NOT TRANSTOG THEN 00982700
|
|
FIXCOL73(LCR) ; 00982800
|
|
IF ONLYTOG AND NOT VOIDTOG THEN GO TO START ; 00982900
|
|
IF FORTRTOG THEN 00983000
|
|
BEGIN 00983100
|
|
IF CHECKCHAR(GLOBE[0],0,"C") THEN GO TO START; 00983200
|
|
IF CHECKCHAR(GLOBE[0],0,"*") THEN GO TO START; 00983300
|
|
END ; 00983400
|
|
IF NEWMULTITOG THEN GO TO START ; 00983500
|
|
IF NOTLAST THEN 00983600
|
|
IF NOT TRANSTOG THEN 00983700
|
|
IF NOT NOTBLANK THEN GO TO START; 00983800
|
|
IF NOT VOIDTOG THEN 00983900
|
|
IF LISTONLYTOG OR RESEQONLY THEN GO TO START ; 00984000
|
|
DOCOUTPUT ~ TEMPTOG; 00984100
|
|
END READATAPE ; 00984200
|
|
COMMENT + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ; 00984300
|
|
COMMENT DOCUMENT* PAGE INDEX SKIP 2 * * * * * * * * * * * * * * * * 00984400
|
|
3. FIRST EXECUTABLE STATEMENT. 00984500
|
|
* SKIP 2 CODE 1* * * * * * * * * * * * * * * * * * * * * * * * * * * ; 00984600
|
|
DATE ~ "5 OC68" ; % % % % 00984700
|
|
DISCMCP ~TRUE ; DOCONLY ~ FALSE ; 00984800
|
|
NOSPOTOG ~ REMOTETOG ~ FALSE ; 00984900
|
|
STARTIME ~ TIME(1) ; 00985000
|
|
PROCTIME ~ TIME(2) ; 00985100
|
|
ZLCOUNTMAX~78; 00985200
|
|
PROGID~ "JONES "; 00985300
|
|
WRITE(SPOOUT,STARTJOB,PROGID,DATE); 00985400
|
|
CORESIZE ~ 6000 ; 00985500
|
|
IF DOCONLY THEN DOCTOG ~TRUE ; 00985600
|
|
BEGIN 00985700
|
|
COMMENT BLOCK TO COMPUTE CURRENT DATE ETC ; 00985800
|
|
ARRAY MONTHS[0:12] ; 00985900
|
|
COMMENT DOCUMENT* 35 * * * * * * * * * * * * * * * * * * * * * * * * ; 00986000
|
|
PROCEDURE DATECONVERT(YEAR,MONTH,DAY,HOUR,MINUTE,SECOND, 00986100
|
|
TIME0,TIME1) ; 00986200
|
|
VALUE TIME0,TIME1 ; 00986300
|
|
REAL TIME0,TIME1 ; 00986400
|
|
INTEGER YEAR,MONTH,DAY,HOUR,MINUTE,SECOND ; 00986500
|
|
COMMENT ASKS MCP FOR TIME AND CONVERTS ANSWER ; 00986600
|
|
BEGIN 00986700
|
|
INTEGER I,DAYS ; 00986800
|
|
REAL TEMP ; 00986900
|
|
LABEL GOOD,CONT ; 00987000
|
|
ARRAY MONDAYS[0:15] ; 00987100
|
|
FILL MONDAYS[*]WITH 0, 00987200
|
|
31,59,90,120,151,181,212,243,273,304,334,365 ; 00987300
|
|
COMMENT CHECK FOR LEAP YEAR AND FIX IT UP; 00987400
|
|
00987500
|
|
00987600
|
|
00987700
|
|
TEMP ~ TIME0 ; 00987800
|
|
DTOCT(TEMP,3,YEAR,2) ; DTOCT(TEMP,5,DAYS,3) ; 00987900
|
|
IF YEAR MOD 4 = 0 AND YEAR MOD 100 ! 0 THEN 00987910
|
|
FOR I ~ 2 STEP 1 UNTIL 12 DO 00987911
|
|
MONDAYS[I]~ MONDAYS[I] + 1 ; 00987912
|
|
FOR I ~ 1 STEP 1 UNTIL 12 DO 00988000
|
|
BEGIN 00988100
|
|
IF DAYS { MONDAYS[I] THEN GO TO GOOD ; 00988200
|
|
END ; 00988300
|
|
MONTH ~ 12 ; DAY ~ 31 ; GO TO CONT ; 00988400
|
|
GOOD: MONTH ~ I ; DAY ~ DAYS - MONDAYS[I-1] ; 00988500
|
|
CONT: TEMP ~ TIME1 ; 00988600
|
|
HOUR ~ TEMP DIV 216000.0 ; 00988700
|
|
MINUTE ~ (TEMP DIV 3600) MOD 60 ; 00988800
|
|
SECOND ~(TEMP DIV 60 ) MOD 60 ; 00988900
|
|
END DATECONVERT ; 00989000
|
|
COMMENT DOCUMENT* 31 * * * * * * * * * * * * * * * * * * * * * * * * ; 00989100
|
|
STREAM PROCEDURE FILLDATEBUFF(DAY,MONTHA,YEAR,DATEBUFF) ; 00989200
|
|
COMMENT SETS UP DATEBUFF WITH RESULT OF DATECONVERT AND TABLES ; 00989300
|
|
BEGIN 00989400
|
|
DI ~ DATEBUFF ; DS ~ 16 LIT " " ; 00989500
|
|
SI ~ DAY ; DI ~ DATEBUFF ; DS ~ 2 DEC ; 00989600
|
|
SI ~ MONTHA ; SI ~SI + 5 ; DI ~ DI + 1 ; DS ~ 3 CHR ; 00989700
|
|
SI ~ YEAR ; DI ~ DI + 1 ; DS ~ 2 DEC ; 00989800
|
|
SI ~ DATEBUFF ; IF SC ="0" THEN 00989900
|
|
BEGIN 00990000
|
|
SI ~SI + 9 ; DI ~ DATEBUFF ; DS ~ 1 LIT " " ; 00990100
|
|
END ; 00990200
|
|
END FILL DATEBUFF ; 00990300
|
|
FILL MONTHS[*] WITH 0,"JAN","FEB","MAR","APR","MAY", 00990400
|
|
"JUN","JUL","AUG","SEP","OCT","NOV","DEC" ; 00990500
|
|
DATECONVERT(YEAR,MONTH,DAY,HOUR,MINUTE,SECOND, 00990600
|
|
TIME(0),TIME(1)) ; 00990700
|
|
MONTHA ~ MONTHS[MONTH] ; 00990800
|
|
FILLDATEBUFF(DAY,MONTHA,YEAR,DATEBUFF) ; 00990900
|
|
END ; 00991000
|
|
MAXCOLS ~ IF REMOTETOG THEN 68 ELSE 118 ; 00991100
|
|
TEMP ~ 99999999; OCTTODEC (TEMP,NINES); 00991200
|
|
FILL SPOMESS[1,*] WITH "NO DOCUM","ENT FOUN","D ~ "; 00991300
|
|
FILL SPOMESS[2,*] WITH "DOCUMENT"," FOUND ~"; 00991400
|
|
FILL SPOMESS [3,*] WITH "FLOWCHAR","T FOUND ","~ "; 00991500
|
|
FILL SPOMESS[4,*] WITH "NO FLOWC","HART FOU","ND ~ "; 00991600
|
|
FILL REVISIONS [*] WITH " ", 00991700
|
|
" AA"," AB"," AC"," AD"," AE", 00991800
|
|
" AF"," AG"," AH"," AJ"," AK", 00991900
|
|
" AL"," AM"," AN"," AP"," AR", 00992000
|
|
" AS"," AT"," AU"," AV"," AW", 00992100
|
|
" AX"," AY"," AZ"," BA"," BB", 00992200
|
|
" BC"," BD"," BE"," BF"," BG", 00992300
|
|
" BH"," BJ"," BK"," BL"," BM", 00992400
|
|
" BN"," BP"," BR"," BS"," BT", 00992500
|
|
" BU"," BV"," BW"," BX"," BY", 00992600
|
|
" BZ"," CA"," CB"," CC"," CD", 00992700
|
|
" CE"," CF"," CG"," CH"," CJ", 00992800
|
|
" CK"," CL"," CM"," CN"," CP", 00992900
|
|
" CR"," CS"," CT"," CU"," CV", 00993000
|
|
" CW"," CX"," CY"," CZ"," DA", 00993100
|
|
" DB"," DC"," DD"," DE"," DF", 00993200
|
|
" DG"," DH"," DJ"," DK"," DL", 00993300
|
|
" DM"," DN"," DP"," DR"," DS", 00993400
|
|
" DT"," DU"," DV"," DW"," DX", 00993500
|
|
" DY"," DZ"," EA"," EB"," EC", 00993600
|
|
" ED"," EE"," EF"," EG"," EH"; 00993700
|
|
BEGIN 00993800
|
|
INTEGER BLOCKEXTENDER; 00993900
|
|
ZNOSKIP ~ FALSE; 00994000
|
|
PATCHPAGE ~ FALSE; 00994100
|
|
BACKIND ~0; 00994200
|
|
DOCOUTPUT ~ FALSE; 00994300
|
|
TTAPEOPENED ~ FALSE ; 00994400
|
|
LISTCARDTOG ~ FALSE ; 00994500
|
|
PROCFLAG ~ PROCTOG ~ XREFTOG ~ FALSE ; 00994600
|
|
DUMPFLAG ~ CASTOG ~VOIDTOG ~ LISTOG ~ FALSE ; 00994700
|
|
BUILDTOG ~ RESERVEDTOG ~ FALSE ; 00994800
|
|
LFPAGEID ~ TRUE ; PAGEID ~ " " ; 00994900
|
|
SAVEPAGEINC ~ PAGEINC ~ 1 ; 00995000
|
|
BUILDEBUG~ RESEQTOG ~ SEQTOG ~ NEWTOG ~ PRINTOG ~ FALSE ; 00995100
|
|
DOCDEBUG ~ FALSE ; 00995200
|
|
CLEARTITLETOG ~ FALSE ; 00995300
|
|
BACKUPTOG ~ PUNCHTOG ~ DEBUG ~ DOCLISTOG ~FALSE ; 00995400
|
|
BLANKNEWSEQ ~ PBACKONLY ~ FALSE ; 00995500
|
|
RESEQONLY ~ FALSE ; 00995600
|
|
DOUBLEONLY ~ TRUE ; SIXLINES ~ FALSE ; 00995700
|
|
PATCHLETTER ~ "*" ; 00995800
|
|
SNEWSEQ ~ 0 ; 00995900
|
|
DOCER ~ 0 ; 00996000
|
|
BEGINTOG ~ TRUE ; 00996100
|
|
FLOWTOG ~ SYNTAXTOG ~ FALSE ; 00996200
|
|
FSYNTAXTOG~FALSE; 00996300
|
|
MAKEIRTOG ~ MAKETOG ~ FALSE ; 00996400
|
|
LISTONLYTOG ~ FALSE ; 00996500
|
|
NAMEPUNCH ~ FALSE ; 00996600
|
|
BIGTOG ~ SHUFFLETOG ~FALSE ; 00996700
|
|
COUNTOG ~ CONTCARD ~ FALSE ; 00996800
|
|
BACKUPUSED ~ FALSE ; 00996900
|
|
CARDSOPEN ~ TRUE ; 00997000
|
|
BACKIND ~0 ; 00997100
|
|
ALLTOG ~ FROMTOG ~ TOENDTOG ~ FALSE ; 00997200
|
|
PUNCHTOG ~ ALPHATOG ~ FALSE ; 00997300
|
|
PATCHTOG ~PATCHFLAG ~FALSE ; 00997400
|
|
DOCXREFTOG ~ FALSE ; 00997500
|
|
ZPAGEN ~ZCONTPAGEN ~ 0; 00997600
|
|
PAGEPOINT ~0; 00997700
|
|
DECIMALSTOG~ FALSE; 00997800
|
|
MOVEWORDS (NINES,CTSEQ,1);CLEAR(LCSEQ,1); 00997900
|
|
HEADPOINT ~ 0 ; CLEAR(HEADING,14) ; 00998000
|
|
CLEAR(BLANKARRAY,14) ; 00998100
|
|
DATETOG ~ FIRSTDOLLAR ~ FALSE ; 00998200
|
|
TAPETOG ~ RESEQTOG ~ NOTLAST ~ FALSE ; 00998300
|
|
DEVICE ~ 1 ; COMMENT READ CARDS ; 00998400
|
|
FIRSTCHAR ~ 0 ; LASTCHAR ~""" ; 00998500
|
|
BINDENT ~ 2 ; 00998600
|
|
LOOKFORDOLLAR ~ TRUE ; 00998700
|
|
NWPR ~ 10 ; W ~ NWPR - 1 ; 00998800
|
|
CLEAR(GLOBE,14) ; 00998900
|
|
BLOCKTOG ~ FALSE; 00999000
|
|
LOGICTOG ~ FALSE ; 00999100
|
|
ONLYTOG ~ TRUE; 00999200
|
|
END; 00999300
|
|
MORECAST: 00999400
|
|
BEGIN 00999500
|
|
INTEGER BLOCKEXTENDER; 00999600
|
|
BKRCRDCOUNT ~ BKDIRCOUNT ~VOLUME~0; 00999700
|
|
NIDENT ~ PP ~ 0 ; RR ~ 1 ; 00999800
|
|
PLSAVE ~ GLSAVE ~ 1 ; GINDSAVE ~ 0 ; 00999900
|
|
PHSAVE ~ GHSAVE ~ 72 ; 01000000
|
|
NOPROC ~ PARLOW ~ 0 ; PARHIGH ~ 71 ; 01000100
|
|
BPOINT ~ 12 ; 01000200
|
|
IF NOT ONLYTOG THEN 01000300
|
|
FOR I ~ 0 STEP 1 UNTIL 125 DO STACK[I] ~ 0 ; 01000400
|
|
QUOTETOG ~ SEQBLANKTOG ~ FALSE ; 01000500
|
|
PRINTCLOSED ~ BACKUPCLOSED ~TRUE ; 01000600
|
|
DOCUMENTFOUND ~ FALSE ; 01000700
|
|
NAMETOG ~ PROCXREFLAG ~ PROCBLKFLAG ~ FALSE ; 01000800
|
|
STREAMTOG ~ COMMENTOG ~ FALSE ; 01000900
|
|
NENDS ~ CURBEG ~ BEGINDEX ~ 0 ; 01001000
|
|
CLEAR(GLOBE,14) ; 01001100
|
|
CLEAR(LISTBUFFER,14) ; CLEAR(OLDSEQ,0); 01001200
|
|
CARDTALLY ~ 0 ; 01001300
|
|
IF NOT ONLYTOG THEN 01001400
|
|
FOR I ~ 0 STEP 1 UNTIL 63 DO TALLIES[I] ~ 0 ; 01001500
|
|
NEWSEQ ~ 0 ; SEQINC ~ 1000 ; XREFSEQ ~ 99000000 ; 01001600
|
|
LASTCURSEQ ~ LASTSEQLINK ~ 0 ; 01001700
|
|
TOTAL ~ 0 ; 01001800
|
|
READATAPE ; 01001900
|
|
END; 01002000
|
|
COMMENT DOCUMENT* PAGE INDEX SKIP 2 * * * * * * * * * * * * * * * * * 01002100
|
|
4. MAJOR SUB-BLOCKS OF PROGRAM. 01002200
|
|
* SKIP PARAGRAPH 5,67,0 01002300
|
|
THESE ARE INCLUDED BECAUSE OF THEIR SIMILAR FUNCTION TO THAT OF 01002400
|
|
THE PROCEDURE PRINTDOCUMENT.; 01002500
|
|
IF TRANSTOG THEN 01002600
|
|
BEGIN 01002700
|
|
COMMENT DOCUMENT* INDEX INDENT 1 SKIP 3 UNDERLINE * * * * * * * * * * 01002800
|
|
BLOCK TO TRANSLATE ASSEMBLY LANGUAGE TO FLOW LANGUAGE. 01002900
|
|
* SKIP 01003000
|
|
THIS BLOCK TRANSLATES B3500 ASSEMBLY LANGUAGE INTO FLOWCHART 01003100
|
|
LANGUAGE. THE BASIC SCHEME IS TO USE REMARKS ("REMK" OR BLANK 01003200
|
|
OPCODES, COLS 63-80 ON OTHER CARDS) FOR BASIC BOXES AND TO 01003300
|
|
USE TEST, BRANCH, AND COMPARE INSTRUCTIONS FOR TEST BOXES AND 01003400
|
|
BRANCHES. CERTAIN OTHER INSTRUCTIONS, SUCH AS I/O COMMANDS, 01003500
|
|
CAUSE SPECIAL BOX TYPES. 01003600
|
|
* END ; 01003700
|
|
LABEL EOFF,RDD; 01003800
|
|
LABEL RDOVER; 01003900
|
|
INTEGER RBLANKS; 01004000
|
|
INTEGER RELAPOS; 01004100
|
|
INTEGER COUNTER,TYPE,NLINES,TCOUNTER,SVCOUNT; 01004200
|
|
INTEGER ASMSEQ; 01004300
|
|
INTEGER LEVEL,TEMP,SEGINDEX; 01004400
|
|
INTEGER RECORDS; 01004500
|
|
INTEGER TEMPSWIND ; 01004600
|
|
INTEGER LINECOUNT ; 01004700
|
|
LABEL NOTRELATION; 01004800
|
|
LABEL RD,EOF; 01004900
|
|
LABEL REMKSTAR; 01005000
|
|
BOOLEAN BOOL; 01005100
|
|
LABEL START ; 01005200
|
|
BOOLEAN ETOG,BTOG,CTOG,TOGTOG; 01005300
|
|
BOOLEAN ATOG; 01005400
|
|
BOOLEAN BOXCLOSED; 01005500
|
|
BOOLEAN ESKIP; 01005600
|
|
BOOLEAN FIRSTLINE,DATAFLAG ; 01005700
|
|
BOOLEAN BCTOG; 01005800
|
|
BOOLEAN SVNEWTOG; 01005900
|
|
ALPHA REL; 01006000
|
|
ALPHA OPCODE; 01006100
|
|
ALPHA ANUM ; 01006200
|
|
ARRAY FLOWBUF,TEMPBUF[0:20]; 01006300
|
|
ARRAY TEMPBUF2[0:15]; 01006400
|
|
ARRAY BUF[0:15]; 01006500
|
|
ARRAY INFO[0:25]; 01006600
|
|
ARRAY TEST, ENTER, T, F, QUIT, EQUALS, INR, IS, GOTO, 01006700
|
|
ENDR, BEGINR[0:0]; 01006800
|
|
ARRAY WITHR [0:0] ; 01006900
|
|
SAVE ARRAY BOX[0:0]; 01007000
|
|
ARRAY SINGLEWORDS [0:40] ; 01007100
|
|
ARRAY COMMENTR, SE [0:1]; 01007200
|
|
ARRAY DIF,AT[0:2]; 01007300
|
|
ARRAY SEQ, SLS, SGR [0:3]; 01007400
|
|
ARRAY SZ, S1, SD, SNQ, OFL, BOT, BZT [0:4]; 01007500
|
|
FORMAT IFORM1 (I6); 01007600
|
|
FORMAT AFORM(A6); 01007700
|
|
FORMAT SEGHEAD (" * BEGIN HEADING SEGMENT NUMBER", I5, " *"); 01007800
|
|
FORMAT TABLEFORM2 ( "%%") ; 01007900
|
|
DEFINE A =[12:18]#,B= [30:18]#,C=[1:1]#,D =[2:1]#; 01008000
|
|
DEFINE E = [3:1]#, G = [4:1] #; 01008100
|
|
COMMENT INFO[LEVEL].E TELLS IF DATAFLAG FOR THIS SEG, 01008200
|
|
INFO[LEVEL].G TELLS IF FIRSTLINE FOR THIS SEG; 01008300
|
|
DEFINE MASK = BUF[0] #; 01008400
|
|
COMMENT DOCUMENT* 35 * * * * * * * * * * * * * * * * * * * * * * * * *; 01008500
|
|
PROCEDURE WRITEDISK(A,COUNTER,CLEARTOG); 01008600
|
|
VALUE CLEARTOG; 01008700
|
|
BOOLEAN CLEARTOG; 01008800
|
|
INTEGER COUNTER; 01008900
|
|
ARRAY A[0]; 01009000
|
|
COMMENT WRITES BUFFERS IN DISK AND COUNTS RECORDS ; 01009100
|
|
BEGIN 01009200
|
|
IF MONITOG THEN WRITE(LINE,MONITFORM,"WRITED","ISK "); 01009300
|
|
IF DEBEATLETOG THEN WRITE(LINE,15,A[*]); 01009400
|
|
WRITE(SWOUT,10,A[*]); 01009500
|
|
RECORDS ~ RECORDS + 1; 01009600
|
|
IF CLEARTOG THEN CLEAR(A[0],14); 01009700
|
|
COUNTER ~ 0; 01009800
|
|
END WRITEDISK; 01009900
|
|
DEFINE CLOSEBOX = 01010000
|
|
BEGIN 01010100
|
|
BOXCLOSED ~ TRUE; 01010200
|
|
LINECOUNT ~ 0; 01010300
|
|
COUNTER ~ COUNTER + 1; 01010400
|
|
SETCHAR(FLOWBUF[COUNTER DIV 8],COUNTER.[45:3],"*"); 01010500
|
|
END#; 01010600
|
|
DEFINE MOVETEXT = 01010700
|
|
IF COUNTER + COUNT } 71 THEN 01010800
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01010900
|
|
IF COUNT > 72 THEN COUNT ~ 72; 01011000
|
|
IF COUNT > 63 THEN 01011100
|
|
BEGIN 01011200
|
|
MOVECHARS(BUF[0],FLOWBUF[COUNTER DIV 8],0, 01011300
|
|
COUNTER.[45:3],63); 01011400
|
|
COUNT ~ COUNT -63; 01011500
|
|
COUNTER ~ COUNTER + 63; 01011600
|
|
MOVECHARS(BUF[7],FLOWBUF[COUNTER DIV 8], 7, 01011700
|
|
COUNTER.[45:3],COUNT); 01011800
|
|
END ELSE 01011900
|
|
MOVECHARS(BUF[0],FLOWBUF[COUNTER DIV 8],0, 01012000
|
|
COUNTER.[45:3],COUNT); 01012100
|
|
COUNTER ~ COUNTER +COUNT; 01012200
|
|
IF COUNTER } 71 THEN 01012300
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01012400
|
|
#; 01012500
|
|
DEFINE GETOP = 01012600
|
|
TYPE ~ 1; 01012700
|
|
OPCODE ~ 0; 01012800
|
|
IF CHECKCHAR (GLOBE[0],16," ") THEN 01012900
|
|
MOVECHARS (GLOBE[0],OPCODE,13,5,3) ELSE 01013000
|
|
MOVECHARS(GLOBE[0],OPCODE,13,4,4) #; 01013100
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * *; 01013200
|
|
BOOLEAN STREAM PROCEDURE VARCONST(FIELD,SOURCE,DEST,DPOS); 01013300
|
|
VALUE FIELD,DPOS; 01013400
|
|
COMMENT PICKS OFF VARIANT FIELD AND ADDS TO IDENTIFIER ; 01013500
|
|
BEGIN 01013600
|
|
DI ~ DEST; DI ~ DI + DPOS; 01013700
|
|
SI ~ SOURCE; SI ~ SI + FIELD; 01013800
|
|
IF SC ! " " THEN BEGIN DS ~ 1 LIT "."; 01013900
|
|
SI ~ SI-1; IF SC! " " THEN DS~ 1 CHR ELSE SI~SI+1; 01014000
|
|
DS ~ 1 CHR; TALLY ~ 1 END 01014100
|
|
ELSE TALLY ~ 0; 01014200
|
|
DS ~ 1 LIT " "; 01014300
|
|
VARCONST ~ TALLY; 01014400
|
|
END; 01014500
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * *; 01014600
|
|
INTEGER STREAM PROCEDURE WORDCONST(FIELD,SOURCE,DEST,DPOS); 01014700
|
|
VALUE FIELD,DPOS; 01014800
|
|
COMMENT BUILDS AN ID USING INFO IN ADDRESS FIELD, INX, & TYPE; 01014900
|
|
BEGIN 01015000
|
|
DI ~ DEST; DI ~ DI + DPOS; 01015100
|
|
SI ~ SOURCE; SI ~ SI + FIELD; 01015200
|
|
IF SC = "*" THEN BEGIN DS ~ 4 LIT "SELF"; 01015300
|
|
SI~SI+6; TALLY ~4;END ELSE 01015400
|
|
6(IF SC ! " " THEN BEGIN DS ~ 1 CHR; 01015500
|
|
TALLY ~ TALLY + 1 END 01015600
|
|
ELSE SI ~ SI +1); 01015700
|
|
DS ~ 1 LIT "."; 01015800
|
|
IF SC ! "-" THEN DS ~ 1 LIT "+" ELSE DS ~ 1 LIT "-"; 01015900
|
|
IF SC = " " THEN SI ~ SI +1 ELSE IF SC = "+" 01016000
|
|
THEN SI ~ SI+1 ELSE IF SC ="-" THEN SI ~ SI + 1 ELSE 01016100
|
|
BEGIN DS ~ 1 CHR; TALLY ~ TALLY + 1; END; 01016200
|
|
IF SC = " " THEN SI ~ SI +1 ELSE BEGIN DS ~ 1 CHR; 01016300
|
|
TALLY ~ TALLY +1 END; 01016400
|
|
IF SC = " " THEN BEGIN SI ~ SI+1; DI ~DI-2; 01016500
|
|
DS~ 2 LIT " "; DI ~DI-2 END ELSE 01016600
|
|
BEGIN DS ~ 1 CHR; 01016700
|
|
TALLY ~ TALLY +3 END; 01016800
|
|
IF SC = "1" THEN BEGIN DS ~ 4 LIT ".IX1"; 01016900
|
|
TALLY ~ TALLY +4; END ELSE 01017000
|
|
IF SC = "2" THEN BEGIN DS ~ 4 LIT ".IX2"; 01017100
|
|
TALLY ~ TALLY +4 END ELSE 01017200
|
|
IF SC = "3" THEN BEGIN DS ~ 4 LIT ".IX3"; 01017300
|
|
TALLY ~ TALLY +4 END; 01017400
|
|
SI ~ SI +1; IF SC ! " " THEN BEGIN DS ~ 1 LIT "."; 01017500
|
|
DS ~ 2CHR; TALLY ~ TALLY + 3 END; 01017600
|
|
WORDCONST ~ TALLY; 01017700
|
|
END; 01017800
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * *; 01017900
|
|
BOOLEAN STREAM PROCEDURE LITCONST(SOURCE,FIELD,DEST,DPOS,NCHARS); 01018000
|
|
VALUE FIELD,DPOS,NCHARS; 01018100
|
|
COMMENT BUILDS LITERALS FROM ADDRESS FIELDS ; 01018200
|
|
BEGIN 01018300
|
|
LABEL L; 01018400
|
|
SI~SOURCE; SI~SI+FIELD; SI~ SI+10; 01018500
|
|
DI~ DEST; DI~ DI+DPOS; 01018600
|
|
IF SC= "N" THEN BEGIN SI ~ SI-10; DS~ NCHARS CHR; 01018700
|
|
GO TO L; END; 01018800
|
|
IF SC = "S" THEN BEGIN SI~SI-10; DS ~ NCHARS CHR; 01018900
|
|
DS ~ CHR ; 01019000
|
|
GO TO L END; 01019100
|
|
IF SC = "A" THEN BEGIN DS ~ 1 LIT """; TALLY ~1; 01019200
|
|
SI ~ SI-10; 01019300
|
|
DS ~ NCHARS CHR; DS ~ 1 LIT """; GO TO L END; 01019400
|
|
IF SC = "L" THEN BEGIN DS ~ 1 LIT "["; TALLY ~ 1; 01019500
|
|
SI ~ SI-10; 01019600
|
|
DS ~ NCHARS CHR; DS ~ 1 LIT "]"; GO TO L END; 01019700
|
|
L: LITCONST ~ TALLY; 01019800
|
|
END; 01019900
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * *; 01020000
|
|
BOOLEAN STREAM PROCEDURE LITTEST(SOURCE,FIELD); 01020100
|
|
VALUE FIELD; 01020200
|
|
COMMENT TRUE IF ADDRESS FIELD IS A LITERAL ; 01020300
|
|
BEGIN 01020400
|
|
SI~SOURCE; SI~ SI+ FIELD; 01020500
|
|
IF SC = "L" THEN TALLY ~1 ELSE TALLY ~ 0; 01020600
|
|
LITTEST ~ TALLY; 01020700
|
|
END; 01020800
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * *; 01020900
|
|
STREAM PROCEDURE REMKEDIT(S,D,SPOS,DPOS,NCHARS,COUNT); 01021000
|
|
VALUE SPOS,DPOS,NCHARS; 01021100
|
|
COMMENT FIXES REMARK FIELD TO BE LEGAL FLOW INPUT ; 01021200
|
|
BEGIN 01021300
|
|
LABEL L1,L2,L3; 01021400
|
|
LABEL L4; 01021500
|
|
LOCAL T1; 01021600
|
|
SI~S; SI~SI+ SPOS; DI~ D; DI~DI+DPOS; 01021700
|
|
NCHARS(IF SC! " " THEN JUMP OUT 1 TO L1; SI~SI+1;); 01021800
|
|
GO TO L2; 01021900
|
|
L1: NCHARS (L3: IF SC = "%" THEN JUMP OUT 1 TO L2; 01022000
|
|
IF SC = " " THEN BEGIN DS ~ 1 CHR; 01022100
|
|
NCHARS ( IF SC ! " " THEN JUMP OUT 1 TO L3; 01022200
|
|
SI~SI+ 1;);END; IF SC = "." 01022300
|
|
THEN BEGIN DS ~ 1 CHR; DS ~ 1 LIT "#" END ELSE IF SC = 01022400
|
|
"*" THEN BEGIN DS ~ 1 LIT """; DS ~ 1 CHR; 01022500
|
|
DS ~ 1 LIT """ ; END ELSE IF SC = ";" THEN BEGIN 01022600
|
|
DS ~ 1 LIT """; DS ~ 1 CHR; DS~ 1 LIT """ END ELSE 01022700
|
|
DS ~ 1 CHR;); 01022800
|
|
L2: 01022900
|
|
DS ~3 LIT ". %"; DI ~ T1; SI ~ D;SI~SI+DPOS; 01023000
|
|
L4: IF SC ! "%" THEN BEGIN DI~DI+8; SI~SI+1; GO TO L4; END; 01023100
|
|
SI ~LOC T1; T1 ~ DI; DI~ COUNT; DS ~ WDS; 01023200
|
|
END REMKEDIT; 01023300
|
|
COMMENT DOCUMENT* 33* * * * * * * * * * * * * * * * * * * * * * * * * ; 01023400
|
|
BOOLEAN PROCEDURE CHARSNOTBLANK (S,SPOS,N); 01023500
|
|
VALUE SPOS,N ; 01023600
|
|
REAL S; INTEGER SPOS,N; 01023700
|
|
COMMENT TRUE IF FIELD BLANK OR HEADED BY ESCAPE CHR; 01023800
|
|
BEGIN 01023900
|
|
LABEL F; 01024000
|
|
COMMENT DOCUMENT* 32* * * * * * * * * * * * * * * * * * * * * * * * * ; 01024100
|
|
REAL STREAM PROCEDURE CHRABS(A,POS) ; 01024200
|
|
VALUE POS ; 01024300
|
|
COMMENT GIVES ABSOLUTE ADDRESS OF A +POS; 01024400
|
|
BEGIN 01024500
|
|
DI ~A ; DI ~ DI+POS; CHRABS ~ DI; 01024600
|
|
END ; 01024700
|
|
IF CNBLANK (S,SPOS,N) THEN IF ESCAPETOG THEN 01024800
|
|
BEGIN 01024900
|
|
ESKIP ~ TRUE; 01025000
|
|
NCR ~ CHRABS(S,SPOS); 01025100
|
|
SCAN; 01025200
|
|
FOR I ~ 0 STEP 1 UNTIL ESIND DO 01025300
|
|
IF Q = ESTABLE[I] THEN 01025400
|
|
BEGIN 01025500
|
|
ESKIP ~ FALSE; GO TO F; 01025600
|
|
END ; 01025700
|
|
END ELSE 01025800
|
|
CHARSNOTBLANK ~ TRUE ELSE 01025900
|
|
F: CHARSNOTBLANK ~ FALSE; 01026000
|
|
END CHARSNOTBLANK ; 01026100
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * *; 01026200
|
|
INTEGER STREAM PROCEDURE MOVELABEL(S,D,SPOS,DPOS,MAXNO); 01026300
|
|
VALUE SPOS,DPOS,MAXNO; 01026400
|
|
COMMENT MOVES UP TO MAXNO CHRS AND ADDS COLON ; 01026500
|
|
BEGIN 01026600
|
|
SI~S; SI~SI+SPOS; DI~D; DI~DI+DPOS; 01026700
|
|
MAXNO(IF SC = " " THEN SI~ SI+ 1 ELSE BEGIN DS ~ 1 CHR; 01026800
|
|
TALLY ~ TALLY + 1 END); 01026900
|
|
DS ~ 2 LIT ": "; TALLY ~ TALLY +2; 01027000
|
|
MOVELABEL ~ TALLY ; 01027100
|
|
END; 01027200
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * *; 01027300
|
|
STREAM PROCEDURE NARRATE (D,DPOS,S,COUNT); 01027400
|
|
VALUE DPOS; 01027500
|
|
COMMENT MOVES TEXT FROM S TO SPOS, PUTS NP. CHRS IN COUNT ; 01027600
|
|
BEGIN 01027700
|
|
LOCAL T; 01027800
|
|
SI ~ S; DI~ LOC T; DI ~ DI + 7; DS ~ CHR; 01027900
|
|
DI ~ D; DI~ DI + DPOS; DS ~ 1 LIT " "; 01028000
|
|
DS ~ T CHR; DS ~ 1 LIT " "; 01028100
|
|
TALLY ~ T ; TALLY ~ TALLY +2; T ~ TALLY; 01028200
|
|
SI~ LOC T; DI ~ COUNT; DS ~ WDS; 01028300
|
|
END; 01028400
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * *; 01028500
|
|
BOOLEAN STREAM PROCEDURE NEXTCHAR(S,SPOS,CHAR); 01028600
|
|
VALUE SPOS,CHAR; 01028700
|
|
COMMENT TRUE IF NEXT CHR FROM S + SPOS IS CHAR ; 01028800
|
|
BEGIN 01028900
|
|
LABEL L; 01029000
|
|
SI~S; SI~ SI+ SPOS; DI~ LOC CHAR; DI ~ DI +7; 01029100
|
|
10(8(IF SC ! " " THEN JUMP OUT 2 TO L; SI ~SI+1;)); 01029200
|
|
L: IF SC = DC THEN TALLY ~ 1 ELSE TALLY ~ 0; 01029300
|
|
NEXTCHAR ~ TALLY; 01029400
|
|
END; 01029500
|
|
COMMENT DOCUMENT* 33 * * * * * * * * * * * * * * * * * * * * * * * * *; 01029600
|
|
PROCEDURE CONSTRUCT(FIELD); 01029700
|
|
VALUE FIELD; 01029800
|
|
INTEGER FIELD; 01029900
|
|
COMMENT BUILDS A BPL-LIKE IDENTIFIER FROM ASSEMBLY LANGUAGE ; 01030000
|
|
BEGIN 01030100
|
|
INTEGER ABCFIELD,ABF; 01030200
|
|
IF FIELD = 1 OR FIELD = 4 THEN 01030300
|
|
BEGIN 01030400
|
|
ABCFIELD ~ 21; ABF ~ 18; 01030500
|
|
END ELSE 01030600
|
|
IF FIELD = 2 THEN 01030700
|
|
BEGIN 01030800
|
|
ABCFIELD ~ 33; ABF ~ 20; 01030900
|
|
END ELSE ABCFIELD ~45; 01031000
|
|
IF FIELD = 1 OR FIELD = 2 THEN 01031100
|
|
BEGIN 01031200
|
|
IF LITTEST (GLOBE[0],ABCFIELD+11) THEN 01031300
|
|
BEGIN 01031400
|
|
DTOCT(GLOBE[0],ABF,COUNT,1); 01031500
|
|
IF COUNT > 6 THEN 01031600
|
|
BEGIN 01031700
|
|
WRITE(LINE,IFORM1,COUNT); 01031800
|
|
COUNT ~ 6; 01031900
|
|
END; 01032000
|
|
IF COUNT = 0 THEN COUNT ~ 6; 01032100
|
|
IF LITCONST(GLOBE[0],ABCFIELD,BUF,0,COUNT) THEN 01032200
|
|
COUNT ~ COUNT +2; 01032300
|
|
END ELSE 01032400
|
|
BEGIN 01032500
|
|
COUNT ~ WORDCONST (ABCFIELD,GLOBE[0],BUF[0],0); 01032600
|
|
IF VARCONST(ABF,GLOBE[0],BUF[0],COUNT) THEN 01032700
|
|
COUNT ~ COUNT + 3; 01032800
|
|
END; 01032900
|
|
END ELSE 01033000
|
|
COUNT ~ WORDCONST(ABCFIELD,GLOBE[0],BUF[0],0); 01033100
|
|
END CONSTRUCT; 01033200
|
|
COMMENT DOCUMENT* 32 * * * * * * * * * * * * * * * * * * * * * * * * ; 01033300
|
|
PROCEDURE UNLINK (TERMINAL); 01033400
|
|
VALUE TERMINAL; BOOLEAN TERMINAL; 01033500
|
|
COMMENT COLLECTS ALL RECORDS FROM EACH SEG TOGETHER ; 01033600
|
|
BEGIN 01033700
|
|
LABEL RD,NEXTSEG,EOF; 01033800
|
|
INTEGER I; 01033900
|
|
IF ALLSEGS THEN MAXSEG ~ SEGINDEX; 01034000
|
|
IF NOT TERMINAL THEN 01034100
|
|
REWIND (SWOUT); 01034200
|
|
FOR I ~ 0 STEP 1 UNTIL MAXSEG DO 01034300
|
|
BEGIN 01034400
|
|
READ SEEK(SWIN[CHOOSEG[I].A]); 01034500
|
|
RD: 01034600
|
|
READ (SWIN,10,BUF[*]) [EOF]; 01034700
|
|
IF CHECKCHAR(BUF[0],0,"%") THEN 01034800
|
|
IF CHECKCHAR (BUF[0],1,"0") THEN 01034900
|
|
IF TERMINAL OR BOOLEAN(CHOOSEG[I].C) THEN 01035000
|
|
BEGIN 01035100
|
|
CHOOSEG[I].D ~1; 01035200
|
|
IF (TEMP ~ BUF[1]) = 0 THEN GO TO NEXTSEG; 01035300
|
|
READ SEEK (SWIN[TEMP]); 01035400
|
|
GO TO RD; 01035500
|
|
END; 01035600
|
|
OCTTODEC(ASMSEQ,BUF[9]); 01035700
|
|
ASMSEQ ~ ASMSEQ +1000; 01035800
|
|
WRITE(SWOUT,10,BUF[*]); 01035900
|
|
GO TO RD; 01036000
|
|
NEXTSEG: 01036100
|
|
END; 01036200
|
|
EOF: 01036300
|
|
IF NOT TERMINAL THEN 01036400
|
|
BEGIN 01036500
|
|
FOR I ~ 0 STEP 1 UNTIL MAXSEG DO 01036600
|
|
IF BOOLEAN(CHOOSEG[I].D) THEN 01036700
|
|
BEGIN 01036800
|
|
FOR K ~ I+ 1 STEP 1 UNTIL MAXSEG DO 01036900
|
|
CHOOSEG [K-1] ~ CHOOSEG[K]; 01037000
|
|
MAXSEG ~ MAXSEG -1; 01037100
|
|
END; 01037200
|
|
SEGINDEX ~ MAXSEG; 01037300
|
|
END; 01037400
|
|
END UNLINK; 01037500
|
|
SWFOUTIND ~3; 01037600
|
|
IF ASMFLOWTOG OR NOT NEWTOG THEN SCRATCHTOG ~ TRUE; 01037700
|
|
SVNEWTOG~NEWTOG ; 01037800
|
|
NEWTOG~ FALSE; 01037900
|
|
DOCLISTFLAG ~ TRUE; 01038000
|
|
DOCLISTOG ~ LISTOG OR DOCLISTOG; LISTOG ~ FALSE; 01038100
|
|
BMON ~ FALSE; 01038200
|
|
GETOP ; 01038300
|
|
IF OPCODE = "0000" THEN READATAPE ; 01038400
|
|
IF DOCLISTOG THEN 01038500
|
|
BEGIN 01038600
|
|
CLEAR(LISTBUFFER[0],14); 01038700
|
|
MOVEWORDS (ASMLBUFF[DEVICE,*],LISTBUFFER [2],10); 01038800
|
|
IF DOUBLEONLY THEN ZPL(ZLB,2,LISTBUFFER) ELSE 01038900
|
|
ZPL(ZLB,1,LISTBUFFER); 01039000
|
|
END; 01039100
|
|
FILL SINGLEWORDS [*] WITH 01039200
|
|
"4OPEN ", "5CLOSE ", "5WRITE ", "4READ ", 01039300
|
|
"7OVERLAY", "8POSITIO", "N ", "4CALL ", 01039400
|
|
"4SEEK ", "6ZIP TO ", "DIOCU - ", "GET CH +", 01039500
|
|
" UNIT ", ":BOXONLY", " HALT ", "4DATE ", 01039600
|
|
"4EXIT ", "4PAGE ", "6ACCEPT ", "7DISPLAY", 01039700
|
|
":BOXONLY", " STOP ", "}ACCEPT/", "DISPLAY ", 01039800
|
|
":INITIAT", "E I/O ", "4DUMP ", "5TRACE ", 01039900
|
|
"BSET MOD", "E FLIP-F", "LOP ", "9READY I" , 01040000
|
|
"/O " ; 01040100
|
|
FILL TEST [*] WITH "4TEST ";FILL T[*] WITH "4TRUE "; 01040200
|
|
FILL BOX [*] WITH "3BOX ";FILL F[*] WITH "5FALSE "; 01040300
|
|
FILL QUIT[*] WITH "4QUIT ";FILL IS [*] WITH "2IS "; 01040400
|
|
FILL ENTER [*] WITH "5ENTER "; 01040500
|
|
FILL INR [*] WITH "2IN "; 01040600
|
|
FILL GOTO [*] WITH "5GO TO "; 01040700
|
|
FILL BEGINR [*] WITH "5BEGIN "; 01040800
|
|
FILL ENDR [*] WITH "3END "; 01040900
|
|
FILL EQUALS [*] WITH "6EQUALS "; 01041000
|
|
FILL COMMENTR [*] WITH ":COMMENT", " FLOW "; 01041100
|
|
FILL SE [*] WITH "}IF ONE ", "WAS THEN"; 01041200
|
|
FILL DIF [*] WITH "AIS DIFF", "ERENT FR", "OM "; 01041300
|
|
FILL AT [*] WITH "AIS RESU", "LT 0 Y", "ES "; 01041400
|
|
FILL SEQ [*] WITH "IIF ANY ", "BUT FIRS", "T WAS TH", 01041500
|
|
"EN "; 01041600
|
|
FILL SLS [*] WITH ".IF FIRS", "T CHR OF", " B WAS T", 01041700
|
|
"HEN "; 01041800
|
|
FILL SGR[*] WITH "HIF NONE", " OF CHRS", " WAS THE", 01041900
|
|
"N "; 01042000
|
|
FILL SNQ [*] WITH "KIF FIRS", "T CHR OF", " B OR NO", 01042100
|
|
"NE WAS T", "HEN "; 01042200
|
|
FILL SZ [*] WITH "OTEST SC", "AN UNTIL", " A DELIM", 01042300
|
|
"ITER ZON","E OF A, "; 01042400
|
|
FILL S1 [*] WITH "JONE OF ", "THE DELI", "MITERS G", 01042500
|
|
"IVEN IN ", "B, "; 01042600
|
|
FILL SD [*] WITH "JTEST SC", "AN UNTIL", " A DELIM", 01042700
|
|
"ITER OF ", "A, "; 01042800
|
|
FILL OFL [*] WITH "LIF LAST", " OPERATI", "ON SET O", 01042900
|
|
"VERFLOW ","THEN "; 01043000
|
|
FILL WITHR [*] WITH "4WITH "; 01043100
|
|
FILL BOT[*] WITH "ATEST BI","T ONE TE","ST "; 01043200
|
|
FILL BZT[*] WITH "BTEST BI","T ZERO T","EST "; 01043300
|
|
CLEAR (FLOWBUF[0],14); 01043400
|
|
CLEAR(TEMPBUF[0],14); 01043500
|
|
IF ALLSEGS THEN INFO[0].C ~ 1; 01043600
|
|
BOXCLOSED ~ TRUE; 01043700
|
|
SEGCOUNT ~ 0; 01043800
|
|
DATAFLAG ~ TRUE; 01043900
|
|
INFO[LEVEL].E ~ 1; 01044000
|
|
FIRSTLINE ~ TRUE ; 01044100
|
|
INFO[LEVEL].G ~ 1; 01044200
|
|
IF NOT ALLSEGS THEN 01044300
|
|
BEGIN 01044400
|
|
FOR I~ 0 STEP 1 UNTIL MAXSEG DO 01044500
|
|
IF SEGCOUNT =CHOOSEG[I] THEN GO TO RDOVER ; 01044600
|
|
DOCLISTFLAG ~ FALSE ; 01044700
|
|
DO BEGIN 01044800
|
|
READATAPE; IF NOT NOTLAST THEN GO TO EOF; 01044900
|
|
GETOP; 01045000
|
|
END UNTIL OPCODE = "SEGM" OR OPCODE = "ENSG"; 01045100
|
|
INFO[LEVEL].C ~ 0; 01045200
|
|
IF DOCLISTOG THEN 01045300
|
|
BEGIN 01045400
|
|
MOVEWORDS(GLOBE[0],LISTBUFFER[2],10); 01045500
|
|
IF DOUBLEONLY THEN ZPL(ZLB,2,LISTBUFFER) ELSE 01045600
|
|
ZPL(ZLB,1,LISTBUFFER); 01045700
|
|
END ; 01045800
|
|
END ; 01045900
|
|
GO TO RDOVER; 01046000
|
|
RD: READATAPE; 01046100
|
|
RDOVER: 01046200
|
|
IF DEBEATLETOG THEN WRITE(LINE,15,GLOBE[*]); 01046300
|
|
IF NOT NOTLAST THEN GO TO EOF; 01046400
|
|
IF BCTOG THEN 01046500
|
|
BEGIN 01046600
|
|
BCTOG ~ FALSE; 01046700
|
|
GO TO RD; 01046800
|
|
END ; 01046900
|
|
SETCHAR(GLOBE[10],0,"%"); 01047000
|
|
GETOP; 01047100
|
|
IF OPCODE = "CPA" OR OPCODE = "BZT" OR 01047200
|
|
OPCODE = "CPN" OR OPCODE = "BOT" THEN TYPE ~ 2 ELSE 01047300
|
|
IF OPCODE = " " THEN TYPE ~ 5 ELSE 01047400
|
|
IF OPCODE = "REMK" THEN TYPE ~5 ELSE 01047500
|
|
IF OPCODE = "SPEC" OR OPCODE = "LIST" 01047600
|
|
OR OPCODE = "NOLI" OR OPCODE = "FILE" OR OPCODE = "ENDF" 01047700
|
|
OR OPCODE = "CODE" OR OPCODE = 01047800
|
|
"NOCD" OR OPCODE = "RECD" OR OPCODE = "ENDR" 01047900
|
|
OR OPCODE = "SYNC" 01048000
|
|
OR OPCODE = "TIME" OR OPCODE = "EQIV" THEN TYPE ~ 0 ELSE 01048100
|
|
IF OPCODE = "DOCU" THEN TYPE ~ 0 ELSE 01048200
|
|
IF OPCODE = "SPAC" THEN TYPE ~ IF (GLOBE[2].[30:18] 01048300
|
|
= "PAG") THEN 27 ELSE 0 ELSE 01048400
|
|
IF OPCODE = "DATA" THEN TYPE ~ IF DATAFLAG THEN 7 01048500
|
|
ELSE 0 ELSE IF OPCODE = "CNST" OR OPCODE = "ACON" 01048600
|
|
THEN TYPE ~ IF DATAFLAG THEN 7 ELSE 0 ELSE %%%MAY CNG 01048700
|
|
IF OPCODE = "BCT" THEN TYPE ~ 9 ELSE 01048800
|
|
IF OPCODE = "OPEN" THEN TYPE ~10 ELSE 01048900
|
|
IF OPCODE = "CLOS" THEN TYPE ~ 11 ELSE 01049000
|
|
IF OPCODE = "WRIT" THEN TYPE ~ 12 ELSE 01049100
|
|
IF OPCODE = "READ" THEN TYPE ~ 13 ELSE 01049200
|
|
IF OPCODE = "OVLY" THEN TYPE~ 14 ELSE 01049300
|
|
IF OPCODE = "POSN" THEN TYPE ~ 15 ELSE 01049400
|
|
IF OPCODE = "LIBR" OR OPCODE = "NTR" THEN TYPE ~ 17 ELSE 01049500
|
|
IF OPCODE = "SEEK" THEN TYPE ~18 ELSE 01049600
|
|
IF OPCODE = "SMF" THEN TYPE ~ 38 ELSE 01049700
|
|
IF OPCODE = "INIT" THEN TYPE ~ 34 ELSE 01049800
|
|
IF OPCODE = "REDY" THEN TYPE ~ 41 ELSE 01049900
|
|
IF OPCODE = "IOCU" THEN TYPE ~ 20 ELSE 01050000
|
|
IF OPCODE = "DUMP" THEN TYPE ~ 36 ELSE 01050100
|
|
IF OPCODE = "TRAC" THEN TYPE ~ 37 ELSE 01050200
|
|
IF OPCODE="HBR" OR OPCODE="HBK" THEN TYPE~23 ELSE 01050300
|
|
IF OPCODE = "DATE" THEN TYPE ~ 25 ELSE 01050400
|
|
IF OPCODE = "EXT" THEN TYPE ~ 26 ELSE 01050500
|
|
IF OPCODE = "ZIPP" THEN TYPE ~ 19 ELSE 01050600
|
|
IF OPCODE = "ACPT" THEN TYPE ~ 28 ELSE 01050700
|
|
IF OPCODE = "DISP" THEN TYPE ~ 29 ELSE 01050800
|
|
IF OPCODE = "STOP" THEN TYPE ~ 30 ELSE 01050900
|
|
IF OPCODE = "SZE" OR OPCODE = "SDE" OR 01051000
|
|
OPCODE = "SDU" OR OPCODE = "SZU" THEN TYPE ~4 ELSE 01051100
|
|
IF OPCODE = "GEQ" OR OPCODE = "LEQ" OR OPCODE= "NEQ" OR 01051200
|
|
OPCODE = "EQL" OR OPCODE = "LSS" OR OPCODE = "GTR" OR 01051300
|
|
OPCODE = "BUN" OR OPCODE = "OFL" THEN TYPE ~ 3 ELSE 01051400
|
|
TYPE ~ 1; 01051500
|
|
START: 01051600
|
|
IF OPCODE = "SEGM" THEN 01051700
|
|
BEGIN 01051800
|
|
INTEGER BLOCKEXTENDER; 01051900
|
|
LABEL STOP; 01052000
|
|
IF ALLSEGS THEN 01052100
|
|
IF (SEGINDEX ~ SEGINDEX +1) } 500 THEN 01052200
|
|
BEGIN 01052300
|
|
TEMPSWIND ~ SWFININD ; 01052400
|
|
SWFININD ~ SWFOUTIND; 01052500
|
|
SWFOUTIND ~ IF SWFININD = 2 THEN 3 ELSE 2; 01052600
|
|
UNLINK(FALSE); 01052700
|
|
CLOSE (SWIN,PURGE) ; 01052800
|
|
SWFININD ~ TEMPSWIND ; 01052900
|
|
END; 01053000
|
|
IF NOT BOXCLOSED THEN 01053100
|
|
BEGIN 01053200
|
|
CLOSEBOX; COUNTER ~ COUNTER +2; 01053300
|
|
END; 01053400
|
|
IF COUNTER > 0 THEN WRITEDISK(FLOWBUF,COUNTER,TRUE); 01053500
|
|
IF BOOLEAN (INFO[LEVEL].C) THEN 01053600
|
|
BEGIN 01053700
|
|
INFO [LEVEL].A ~ RECORDS; 01053800
|
|
WRITEDISK(BLANKARRAY,IJUNK,FALSE); 01053900
|
|
END; 01054000
|
|
LEVEL ~ LEVEL +1; SEGCOUNT ~ SEGCOUNT+1; 01054100
|
|
IF ALLSEGS THEN 01054200
|
|
BEGIN 01054300
|
|
INFO[LEVEL].B ~ SEGINDEX; 01054400
|
|
GO TO STOP; 01054500
|
|
END; 01054600
|
|
FOR I ~ 0 STEP 1 UNTIL MAXSEG DO 01054700
|
|
IF SEGCOUNT = CHOOSEG[I] THEN 01054800
|
|
BEGIN 01054900
|
|
INFO [LEVEL].B ~ SEGINDEX ~ I; 01055000
|
|
GO TO STOP; 01055100
|
|
END; 01055200
|
|
DOCLISTFLAG ~ FALSE; 01055300
|
|
DO BEGIN 01055400
|
|
READATAPE; IF NOT NOTLAST THEN GO TO EOF; 01055500
|
|
GETOP; 01055600
|
|
END UNTIL OPCODE = "SEGM" OR OPCODE = "ENSG"; 01055700
|
|
INFO [LEVEL].C ~0; 01055800
|
|
IF DOCLISTOG THEN 01055900
|
|
BEGIN 01056000
|
|
MOVEWORDS(GLOBE[0],LISTBUFFER[2],10); 01056100
|
|
IF DOUBLEONLY THEN ZPL(ZLB,2,LISTBUFFER) ELSE 01056200
|
|
ZPL(ZLB,1,LISTBUFFER); 01056300
|
|
END; 01056400
|
|
GO TO START; 01056500
|
|
STOP: 01056600
|
|
DOCLISTFLAG ~ TRUE; 01056700
|
|
DATAFLAG ~ TRUE; INFO[LEVEL].E ~ 1; 01056800
|
|
FIRSTLINE ~ TRUE; INFO[LEVEL].G ~ 1; 01056900
|
|
INFO[LEVEL].C ~ 1; 01057000
|
|
CHOOSEG[SEGINDEX].A ~ RECORDS; 01057100
|
|
WRITE(BUF[*],SEGHEAD,SEGCOUNT); 01057200
|
|
WRITEDISK(BUF,IJUNK,FALSE); 01057300
|
|
TYPE ~ 1; 01057400
|
|
END; 01057500
|
|
IF OPCODE = "ENSG" THEN 01057600
|
|
BEGIN 01057700
|
|
INTEGER BLOCKEXTENDER; 01057800
|
|
IF INFO [LEVEL].C = 1 THEN 01057900
|
|
BEGIN 01058000
|
|
IF NOT BOXCLOSED THEN 01058100
|
|
BEGIN 01058200
|
|
CLOSEBOX; COUNTER ~ COUNTER + 2; 01058300
|
|
END; 01058400
|
|
IF CHARSNOTBLANK (GLOBE[0],7,6) THEN 01058500
|
|
BEGIN 01058600
|
|
IF NOT BOXCLOSED THEN 01058700
|
|
BEGIN 01058800
|
|
CLOSEBOX;COUNTER ~COUNTER +2; 01058900
|
|
END; 01059000
|
|
COUNT ~ MOVELABEL(GLOBE[0],BUF[0],7,0,6); 01059100
|
|
MOVETEXT; 01059200
|
|
END; 01059300
|
|
IF DATATABLE THEN IF DATAFLAG THEN 01059400
|
|
IF NOT FIRSTLINE THEN 01059500
|
|
BEGIN 01059600
|
|
WRITE(FLOWBUF[*],TABLEFORM2); 01059700
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01059800
|
|
END ; 01059900
|
|
NARRATE (BUF[0], 0, ENDR, COUNT); 01060000
|
|
MOVETEXT; 01060100
|
|
CLOSEBOX; 01060200
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01060300
|
|
BUF[0] ~ 0 ; 01060400
|
|
SETCHAR(BUF[0],0,"%"); 01060500
|
|
BUF[1] ~0; 01060600
|
|
WRITEDISK(BUF,IJUNK,FALSE); 01060700
|
|
CHOOSEG [INFO[LEVEL].B] .C~1; 01060800
|
|
END; 01060900
|
|
IF INFO[(LEVEL~LEVEL-1)].C = 1 THEN 01061000
|
|
BEGIN 01061100
|
|
DOCLISTFLAG ~ TRUE; 01061200
|
|
DATAFLAG ~ BOOLEAN(INFO[LEVEL].E); 01061300
|
|
FIRSTLINE ~ BOOLEAN(INFO[LEVEL].G) ; 01061400
|
|
BUF[0] ~ 0 ; 01061500
|
|
SETCHAR(BUF[0],0,"%"); 01061600
|
|
BUF[1] ~ RECORDS; 01061700
|
|
WRITE(SWOUT[INFO[LEVEL].A],10,BUF[*]); 01061800
|
|
READ SEEK (SWOUT[RECORDS]); 01061900
|
|
GO TO RD; 01062000
|
|
END; 01062100
|
|
DOCLISTFLAG ~ FALSE; 01062200
|
|
DO BEGIN 01062300
|
|
READATAPE; IF NOT NOTLAST THEN GO TO EOF; 01062400
|
|
GETOP; 01062500
|
|
END UNTIL OPCODE ="SEGM" OR OPCODE="ENSG"; 01062600
|
|
IF DOCLISTOG THEN 01062700
|
|
BEGIN 01062800
|
|
MOVEWORDS (GLOBE[0],LISTBUFFER[2],10); 01062900
|
|
IF DOUBLEONLY THEN ZPL(ZLB,2,LISTBUFFER) ELSE 01063000
|
|
ZPL(ZLB,1,LISTBUFFER); 01063100
|
|
END; 01063200
|
|
GO TO START; 01063300
|
|
END; 01063400
|
|
IF TYPE = 0 THEN GO TO RD; 01063500
|
|
IF TYPE = 7 AND NOT DATATABLE THEN GO TO RD; 01063600
|
|
IF DATATABLE THEN IF DATAFLAG THEN 01063700
|
|
IF TYPE ! 7 AND OPCODE ! "DATE" AND OPCODE ! "SPAC" AND 01063800
|
|
OPCODE ! "SEGM" AND OPCODE ! "ENSG" AND 01063900
|
|
OPCODE ! "BUN" AND 01064000
|
|
TYPE ! 5 THEN 01064100
|
|
BEGIN 01064200
|
|
DATAFLAG ~ FALSE; 01064300
|
|
INFO[LEVEL].E ~ 0; 01064400
|
|
IF NOT FIRSTLINE THEN 01064500
|
|
BEGIN 01064600
|
|
WRITE (FLOWBUF[*],TABLEFORM2); 01064700
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01064800
|
|
END ; 01064900
|
|
END ELSE 01065000
|
|
BEGIN 01065100
|
|
LABEL THISLAB,NEWLAB,READ2; 01065200
|
|
FORMAT TABLEFORM1 (" * TABLE" ); 01065300
|
|
IF TYPE = 5 THEN 01065400
|
|
BEGIN 01065500
|
|
IF FIRSTLINE THEN 01065600
|
|
BEGIN 01065700
|
|
IF NEXTCHAR(GLOBE[0],17,"*") THEN GO TO REMKSTAR; 01065800
|
|
FIRSTLINE ~ FALSE; 01065900
|
|
INFO[LEVEL] .G~ 0; 01066000
|
|
IF COUNTER > 0 THEN WRITEDISK(FLOWBUF,COUNTER,TRUE); 01066100
|
|
WRITE(FLOWBUF[*],TABLEFORM1); 01066200
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01066300
|
|
END ; 01066400
|
|
CLEAR( FLOWBUF,14); 01066500
|
|
MOVECHARS (GLOBE[0],FLOWBUF[0],7,0,6); 01066600
|
|
MOVECHARS (GLOBE[2],FLOWBUF[1],2,0,59); 01066700
|
|
WRITEDISK (FLOWBUF,COUNTER,TRUE); 01066800
|
|
GO TO RD ; 01066900
|
|
END ; 01067000
|
|
IF NOT CNBLANK(GLOBE[0],7,6 ) THEN GO TO RD; 01067100
|
|
NEWLAB: 01067200
|
|
IF TYPE ! 7 THEN GO TO RD; 01067300
|
|
IF NOT CHARSNOTBLANK(GLOBE[0],57,22) THEN GO TO RD ; 01067400
|
|
IF FIRSTLINE THEN 01067500
|
|
BEGIN 01067600
|
|
FIRSTLINE ~ FALSE; 01067700
|
|
INFO[LEVEL].G ~ 0; 01067800
|
|
IF COUNTER > 0 THEN WRITEDISK(FLOWBUF,COUNTER,TRUE); 01067900
|
|
WRITE(FLOWBUF[*],TABLEFORM1); 01068000
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01068100
|
|
END ; 01068200
|
|
MOVECHARS (GLOBE[0],FLOWBUF[0],7,0,6); 01068300
|
|
MOVECHARS (GLOBE[0],FLOWBUF[0],13,7,4); 01068400
|
|
THISLAB: 01068500
|
|
MOVECHARS(GLOBE[0],FLOWBUF[2],57,0,22); 01068600
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01068700
|
|
READ2: 01068800
|
|
READATAPE; IF NOT NOTLAST THEN GO TO EOF; 01068900
|
|
GETOP; 01069000
|
|
IF OPCODE = " " OR OPCODE = "REMK" THEN 01069100
|
|
BEGIN 01069200
|
|
MOVECHARS (GLOBE[0],FLOWBUF[0],7,0,6); 01069300
|
|
MOVECHARS (GLOBE[2],FLOWBUF[1],2,0,59); 01069400
|
|
WRITEDISK (FLOWBUF,COUNTER,TRUE); 01069500
|
|
GO TO READ2 ; 01069600
|
|
END ; 01069700
|
|
IF OPCODE = "ACON" OR OPCODE = "CNST" OR OPCODE = 01069800
|
|
"DATA" THEN TYPE ~ 7 ELSE GO TO RDOVER; 01069900
|
|
IF CNBLANK (GLOBE[0],7,6) THEN GO TO NEWLAB; 01070000
|
|
IF CHARSNOTBLANK(GLOBE[0],57,22) THEN GO TO THISLAB; 01070100
|
|
GO TO READ2 01070200
|
|
END ; 01070300
|
|
IF CNBLANK (GLOBE[0],7,6) THEN 01070400
|
|
BEGIN 01070500
|
|
IF NOT BOXCLOSED THEN 01070600
|
|
BEGIN 01070700
|
|
CLOSEBOX; 01070800
|
|
COUNTER ~ COUNTER +2; 01070900
|
|
END; 01071000
|
|
COUNT ~ MOVELABEL(GLOBE[0],BUF[0],7,0,6); 01071100
|
|
MOVETEXT; 01071200
|
|
END; 01071300
|
|
IF TYPE = 1 THEN 01071400
|
|
BEGIN 01071500
|
|
INTEGER BLOCKEXTENDER; 01071600
|
|
IF OPCODE="INC" OR OPCODE ="ADD" OR OPCODE ="DEC" 01071700
|
|
OR OPCODE="SUB" OR OPCODE ="MPY" 01071800
|
|
OR OPCODE="DIV" OR OPCODE = "FAD" OR OPCODE="FSU" 01071900
|
|
OR OPCODE ="FMP"OR OPCODE ="FDV" THEN ATOG ~TRUE; 01072000
|
|
IF CHARSNOTBLANK(GLOBE[0],57,22) THEN 01072100
|
|
BEGIN 01072200
|
|
IF BOXCLOSED THEN 01072300
|
|
BEGIN 01072400
|
|
NARRATE (BUF[0], 0, BOX, COUNT); 01072500
|
|
MOVETEXT; 01072600
|
|
BOXCLOSED ~ FALSE; 01072700
|
|
END; 01072800
|
|
CLEAR(BUF[0],8); 01072900
|
|
REMKEDIT(GLOBE[0],BUF[0],57,0,23,COUNT); 01073000
|
|
MOVETEXT; 01073100
|
|
LINECOUNT ~ LINECOUNT +1; 01073200
|
|
NLINES~0; 01073300
|
|
END; 01073400
|
|
GO TO RD; 01073500
|
|
END; 01073600
|
|
IF TYPE = 2 OR TYPE = 4 THEN 01073700
|
|
BEGIN 01073800
|
|
INTEGER BLOCKEXTENDER; 01073900
|
|
IF NOT BOXCLOSED THEN 01074000
|
|
BEGIN 01074100
|
|
CLOSEBOX; COUNTER ~ COUNTER +2; 01074200
|
|
END; 01074300
|
|
NLINES ~ 0; 01074400
|
|
CLEAR(TEMPBUF[0],14); 01074500
|
|
IF CHARSNOTBLANK(GLOBE[0],57,22) THEN 01074600
|
|
BEGIN 01074700
|
|
NARRATE (BUF[0], 0, BOX, COUNT); 01074800
|
|
MOVETEXT; 01074900
|
|
CLEAR(BUF[0],8); 01075000
|
|
REMKEDIT(GLOBE[0],BUF[0],57,0,23,COUNT); 01075100
|
|
MOVETEXT; 01075200
|
|
LINECOUNT ~LINECOUNT +1; 01075300
|
|
NLINES ~ 1; 01075400
|
|
BOXCLOSED ~ FALSE; 01075500
|
|
END; 01075600
|
|
IF TYPE = 4 THEN 01075700
|
|
BEGIN 01075800
|
|
CLEAR(TEMPBUF[0],14); CLEAR(TEMPBUF2[0],14); 01075900
|
|
IF OPCODE = "SZU" OR OPCODE = "SZE" THEN 01076000
|
|
NARRATE (TEMPBUF[0],0,SZ,TCOUNTER) ELSE 01076100
|
|
NARRATE (TEMPBUF[0],0,SD,TCOUNTER); 01076200
|
|
CONSTRUCT(1); 01076300
|
|
MOVECHARS(BUF[0],TEMPBUF[TCOUNTER DIV 8],0, 01076400
|
|
TCOUNTER.[45:3],COUNT); 01076500
|
|
TCOUNTER ~ TCOUNTER + COUNT; 01076600
|
|
SETCHAR(TEMPBUF[TCOUNTER DIV 8],TCOUNTER.[45:3],","); 01076700
|
|
TCOUNTER ~ TCOUNTER + 2; 01076800
|
|
IF OPCODE = "SZE" OR OPCODE = "SDE" THEN 01076900
|
|
NARRATE (TEMPBUF[TCOUNTER DIV 8], TCOUNTER.[45:3], 01077000
|
|
EQUALS, COUNT) ELSE 01077100
|
|
NARRATE (TEMPBUF[TCOUNTER DIV 8], TCOUNTER.[45:3], 01077200
|
|
DIF, COUNT); 01077300
|
|
NARRATE (TEMPBUF2[0], 0, S1, TCOUNTER); 01077400
|
|
CONSTRUCT (2); 01077500
|
|
MOVECHARS(BUF[0],TEMPBUF2[TCOUNTER DIV 8],0, 01077600
|
|
TCOUNTER.[45:3],COUNT); 01077700
|
|
TCOUNTER ~ TCOUNTER + COUNT; 01077800
|
|
SETCHAR(TEMPBUF2[TCOUNTER DIV 8],TCOUNTER.[45:3],"."); 01077900
|
|
TCOUNTER ~ TCOUNTER + 2; 01078000
|
|
ETOG ~ TRUE; BTOG ~ CTOG ~ FALSE; 01078100
|
|
ATOG~FALSE; 01078200
|
|
GO TO RD; 01078300
|
|
END; 01078400
|
|
IF OPCODE = "BZT" OR OPCODE = "BOT" THEN 01078500
|
|
BEGIN 01078600
|
|
IF OPCODE = "BZT" THEN NARRATE(TEMPBUF[0],0,BZT,TCOUNTER) 01078700
|
|
ELSE NARRATE(TEMPBUF[0],0,BOT,TCOUNTER); 01078800
|
|
SETCHAR (MASK,0,"""); 01078900
|
|
MOVECHARS(GLOBE[0],MASK,19,1,2); 01079000
|
|
SETCHAR(MASK,3,"""); 01079100
|
|
MOVECHARS(MASK,TEMPBUF[TCOUNTER DIV 8],0, 01079200
|
|
TCOUNTER.[45:3],4); 01079300
|
|
TCOUNTER ~ TCOUNTER + 4; 01079400
|
|
NARRATE (BUF[0],0,WITHR,COUNT); 01079500
|
|
MOVECHARS(BUF[0],TEMPBUF[TCOUNTER DIV 8],0, 01079600
|
|
TCOUNTER.[45:3],COUNT); 01079700
|
|
TCOUNTER ~ TCOUNTER + COUNT; 01079800
|
|
CONSTRUCT (1); 01079900
|
|
MOVECHARS(BUF[0],TEMPBUF[TCOUNTER DIV 8],0, 01080000
|
|
TCOUNTER.[45:3],COUNT); 01080100
|
|
TCOUNTER ~ TCOUNTER + COUNT; 01080200
|
|
BTOG~ TRUE; CTOG ~ ETOG ~ FALSE; 01080300
|
|
ATOG~FALSE; 01080400
|
|
END ELSE 01080500
|
|
IF OPCODE = "CPA" OR OPCODE = "CPN" THEN 01080600
|
|
BEGIN 01080700
|
|
NARRATE (TEMPBUF[0], 0, IS, TCOUNTER); 01080800
|
|
CONSTRUCT (2); 01080900
|
|
MOVECHARS(BUF[0],TEMPBUF[0],0,TCOUNTER,COUNT); 01081000
|
|
TCOUNTER ~ TCOUNTER + COUNT; 01081100
|
|
RELAPOS ~ TCOUNTER +2; 01081200
|
|
TCOUNTER ~ RELAPOS +2; 01081300
|
|
CONSTRUCT(1); 01081400
|
|
MOVECHARS (BUF[0],TEMPBUF[0],0,TCOUNTER,COUNT); 01081500
|
|
TCOUNTER ~ TCOUNTER + COUNT; 01081600
|
|
ATOG~FALSE; 01081700
|
|
CTOG ~ TRUE; BTOG ~ ETOG ~ FALSE; 01081800
|
|
END; 01081900
|
|
GO TO RD; 01082000
|
|
END; 01082100
|
|
IF TYPE = 3 THEN 01082200
|
|
BEGIN 01082300
|
|
INTEGER BLOCKEXTENDER; 01082400
|
|
LABEL NOTRELATION; 01082500
|
|
IF OPCODE = "BUN" OR OPCODE = "OFL" THEN 01082600
|
|
GO TO NOTRELATION; 01082700
|
|
IF CHARSNOTBLANK(GLOBE[0],57,22) THEN 01082800
|
|
BEGIN 01082900
|
|
IF NLINES = 0 THEN 01083000
|
|
BEGIN 01083100
|
|
IF NOT BOXCLOSED THEN 01083200
|
|
BEGIN 01083300
|
|
CLOSEBOX; COUNTER ~ COUNTER +2; 01083400
|
|
END; 01083500
|
|
NARRATE (BUF[0], 0, BOX, COUNT); 01083600
|
|
MOVETEXT; 01083700
|
|
END; 01083800
|
|
CLEAR(BUF[0],8); 01083900
|
|
REMKEDIT(GLOBE[0],BUF[0],57,0,23,COUNT); 01084000
|
|
MOVETEXT; 01084100
|
|
CLOSEBOX; COUNTER ~ COUNTER + 2; 01084200
|
|
NLINES ~ 0; 01084300
|
|
END ELSE 01084400
|
|
IF NOT BOXCLOSED THEN CLOSEBOX; 01084500
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01084600
|
|
IF ATOG THEN 01084700
|
|
BEGIN 01084800
|
|
IF OPCODE = "LSS" THEN REL~"<" ELSE 01084900
|
|
IF OPCODE = "GTR" THEN REL ~ ">" ELSE 01085000
|
|
IF OPCODE = "EQL" THEN REL~ "=" ELSE 01085100
|
|
IF OPCODE = "NEQ" THEN REL ~ "!" ELSE 01085200
|
|
IF OPCODE = "GEQ" THEN REL~"}" ELSE 01085300
|
|
REL~ "{"; 01085400
|
|
NARRATE (FLOWBUF[0], 0, AT, COUNTER); 01085500
|
|
SETCHAR(FLOWBUF[0],11,REL); 01085600
|
|
GO TO NOTRELATION; 01085700
|
|
END; 01085800
|
|
IF BTOG OR CTOG THEN 01085900
|
|
BEGIN 01086000
|
|
IF BTOG THEN TOGTOG ~ OPCODE ="GEQ" OR OPCODE="EQL" OR 01086100
|
|
OPCODE="LEQ"; 01086200
|
|
IF CTOG THEN 01086300
|
|
BEGIN 01086400
|
|
IF OPCODE = "LSS" THEN REL ~">" ELSE 01086500
|
|
IF OPCODE = "GTR" THEN REL~"<" ELSE 01086600
|
|
IF OPCODE = "LEQ" THEN REL ~ "}" ELSE 01086700
|
|
IF OPCODE = "GEQ" THEN REL~"{" ELSE 01086800
|
|
REL~"="; 01086900
|
|
SETCHAR(TEMPBUF[0],RELAPOS,REL); 01087000
|
|
TOGTOG ~ OPCODE !"NEQ" ; 01087100
|
|
END; 01087200
|
|
IF TOGTOG THEN NARRATE (FLOWBUF[0],0,T,COUNTER) ELSE 01087300
|
|
NARRATE (FLOWBUF[0],0,F,COUNTER) ; 01087400
|
|
WRITEDISK(TEMPBUF,IJUNK,FALSE); 01087500
|
|
END; 01087600
|
|
IF ETOG THEN 01087700
|
|
BEGIN 01087800
|
|
IF OPCODE = "EQL" THEN NARRATE (BUF[0],0,SEQ,COUNT) ELSE 01087900
|
|
IF OPCODE = "LEQ" THEN NARRATE (BUF[0],0,SE, COUNT) ELSE 01088000
|
|
IF OPCODE = "LSS" THEN NARRATE (BUF[0],0,SLS,COUNT) ELSE 01088100
|
|
IF OPCODE = "GTR" THEN NARRATE (BUF[0],0,SGR,COUNT) ELSE 01088200
|
|
IF OPCODE = "NEQ" THEN NARRATE (BUF[0],0, SNQ,COUNT) ELSE 01088300
|
|
GO TO NOTRELATION; 01088400
|
|
MOVETEXT ; 01088500
|
|
WRITEDISK(TEMPBUF,IJUNK,FALSE); 01088600
|
|
WRITEDISK(TEMPBUF2,IJUNK,FALSE); 01088700
|
|
END; 01088800
|
|
NOTRELATION: 01088900
|
|
IF OPCODE = "BUN" THEN IF NOT BOXCLOSED THEN 01089000
|
|
BEGIN 01089100
|
|
CLOSEBOX; 01089200
|
|
COUNTER ~ COUNTER + 2; 01089300
|
|
END; 01089400
|
|
IF OPCODE = "OFL" THEN 01089500
|
|
BEGIN 01089600
|
|
IF NOT BOXCLOSED THEN 01089700
|
|
BEGIN 01089800
|
|
CLOSEBOX; COUNTER ~ COUNTER +2; 01089900
|
|
END; 01090000
|
|
IF CHARSNOTBLANK(GLOBE[0],57,22) THEN 01090100
|
|
BEGIN 01090200
|
|
NARRATE (BUF[0], 0, BOX, COUNT); 01090300
|
|
MOVETEXT; 01090400
|
|
CLEAR(BUF[0],8); 01090500
|
|
REMKEDIT(GLOBE[0],BUF[0],57,0,23,COUNT); 01090600
|
|
MOVETEXT; 01090700
|
|
CLOSEBOX; COUNTER ~COUNTER +2; 01090800
|
|
END; 01090900
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01091000
|
|
NARRATE (FLOWBUF [0], 0, OFL, COUNT); 01091100
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01091200
|
|
END; 01091300
|
|
NARRATE (BUF[0],0, GOTO, COUNT); 01091400
|
|
MOVETEXT; 01091500
|
|
CONSTRUCT (1); 01091600
|
|
MOVETEXT; 01091700
|
|
CLOSEBOX; COUNTER ~ COUNTER + 2; 01091800
|
|
GO TO RD; 01091900
|
|
END; 01092000
|
|
IF TYPE = 9 THEN 01092100
|
|
BEGIN 01092200
|
|
INTEGER BLOCKEXTENDER; 01092300
|
|
BCTOG ~ TRUE; 01092400
|
|
ANUM ~ 0; 01092500
|
|
MOVECHARS(GLOBE[2],ANUM,1,4,4); 01092600
|
|
IF ANUM = "114" THEN TYPE ~ 13 ELSE %% READ 01092700
|
|
IF ANUM = "234" THEN TYPE ~ 12 ELSE %% WRITE 01092800
|
|
IF ANUM = "134" THEN TYPE ~ 10 ELSE %% OPEN 01092900
|
|
IF ANUM = "154" THEN TYPE ~ 11 ELSE %% CLOSE 01093000
|
|
IF ANUM = "394" THEN TYPE ~ 15 ELSE %% POSITION 01093100
|
|
IF ANUM = "274" THEN TYPE ~ 19 ELSE %% ZIP 01093200
|
|
IF ANUM = "194" THEN TYPE ~ 30 ELSE %% STOP 01093300
|
|
IF ANUM = "334" THEN TYPE ~ 37 ELSE %% TRACE 01093400
|
|
IF ANUM = "254" THEN TYPE ~ 32 ELSE %% ACCEPT/DISPLAY 01093500
|
|
IF ANUM = "500" THEN TYPE ~ 34 ELSE %% INIT 01093600
|
|
IF ANUM = "512" THEN TYPE ~ 30 ELSE %% STOP - BCP 01093700
|
|
IF ANUM = "506" THEN TYPE ~ 41 ELSE %% REDY 01093800
|
|
IF ANUM = "518" THEN TYPE ~ 20 ELSE %% IOCU 01093900
|
|
IF ANUM = "524" THEN TYPE ~ 36 ELSE %% DUMP - BCP 01094000
|
|
IF ANUM = "530" THEN TYPE ~ 37 ELSE %% TRACE - BCP 01094100
|
|
IF ANUM = "314" THEN TYPE ~ 18 ELSE %% SEEK 01094200
|
|
GO TO RD; 01094300
|
|
IF TYPE = 30 THEN BCTOG ~ FALSE ; 01094400
|
|
END ; 01094500
|
|
IF TYPE } 10 THEN 01094600
|
|
BEGIN 01094700
|
|
INTEGER BLOCKEXTENDER; 01094800
|
|
IF NOT BOXCLOSED THEN 01094900
|
|
BEGIN 01095000
|
|
CLOSEBOX; COUNTER ~ COUNTER + 2; 01095100
|
|
END; 01095200
|
|
NARRATE (BUF[0],0,SINGLEWORDS[TYPE- 10],COUNT); 01095300
|
|
MOVETEXT; 01095400
|
|
IF TYPE } 20 THEN 01095500
|
|
BEGIN 01095600
|
|
CLOSEBOX; COUNTER ~ COUNTER +2; 01095700
|
|
GO TO RD; 01095800
|
|
END; 01095900
|
|
IF NOT BCTOG THEN 01096000
|
|
BEGIN 01096100
|
|
CONSTRUCT(4); 01096200
|
|
MOVETEXT; 01096300
|
|
CLEAR(BUF [0],0); 01096400
|
|
SETCHAR(BUF [0],0,"."); 01096500
|
|
COUNT ~ 2; MOVETEXT ; 01096600
|
|
COUNTER ~ COUNTER +2; 01096700
|
|
END ; 01096800
|
|
IF CHARSNOTBLANK(GLOBE[0],57,22) THEN 01096900
|
|
BEGIN 01097000
|
|
CLEAR(BUF[0],8); 01097100
|
|
REMKEDIT(GLOBE[0],BUF[0],57,0,23,COUNT); 01097200
|
|
MOVETEXT; 01097300
|
|
LINECOUNT ~ LINECOUNT +1; 01097400
|
|
END; 01097500
|
|
CLOSEBOX; COUNTER ~ COUNTER + 2; 01097600
|
|
GO TO RD; 01097700
|
|
END; 01097800
|
|
REMKSTAR: 01097900
|
|
IF OPCODE = " " OR OPCODE = "REMK" THEN 01098000
|
|
BEGIN 01098100
|
|
INTEGER BLOCKEXTENDER; 01098200
|
|
IF NEXTCHAR(GLOBE[0],17,"*") THEN 01098300
|
|
BEGIN 01098400
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01098500
|
|
MOVECHARS(GLOBE[0],FLOWBUF[0],17,0,63); 01098600
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01098700
|
|
END ELSE 01098800
|
|
IF CHARSNOTBLANK(GLOBE[0],17,63) OR ESKIP THEN 01098900
|
|
BEGIN 01099000
|
|
IF BOXCLOSED THEN 01099100
|
|
BEGIN 01099200
|
|
NARRATE (BUF[0],0, BOX, COUNT); 01099300
|
|
MOVETEXT; 01099400
|
|
END ELSE 01099500
|
|
IF LINECOUNT } 20 THEN 01099600
|
|
BEGIN 01099700
|
|
CLOSEBOX; COUNTER ~ COUNTER + 2; 01099800
|
|
END ; 01099900
|
|
CLEAR(BUF[0],9) ; 01100000
|
|
REMKEDIT(GLOBE[0],BUF[0],17,0,63,COUNT); 01100100
|
|
LINECOUNT ~ LINECOUNT +1; 01100200
|
|
MOVETEXT; 01100300
|
|
BOXCLOSED ~ FALSE; 01100400
|
|
END; 01100500
|
|
GO TO RD; 01100600
|
|
END; 01100700
|
|
GO TO RD; 01100800
|
|
EOF: 01100900
|
|
CLOSE (SWIN,RELEASE); 01101000
|
|
IF COUNTER ! 0 THEN WRITEDISK(FLOWBUF,COUNTER ,TRUE); 01101100
|
|
IF DATATABLE THEN IF DATAFLAG THEN 01101200
|
|
IF NOT FIRSTLINE THEN 01101300
|
|
BEGIN 01101400
|
|
WRITE(FLOWBUF[*],TABLEFORM2); 01101500
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01101600
|
|
END ; 01101700
|
|
BUF[0] ~ 0; 01101800
|
|
SETCHAR(BUF[0],0,"%"); 01101900
|
|
BUF [1] ~ 0; 01102000
|
|
WRITEDISK(BUF,IJUNK,FALSE); 01102100
|
|
IF DEBEATLETOG THEN 01102200
|
|
BEGIN 01102300
|
|
WRITE(LINE[DBL]); 01102400
|
|
CLEAR(GLOBE[0],14); 01102500
|
|
REWIND(SWOUT); 01102600
|
|
RDD: 01102700
|
|
READ(SWOUT,10,GLOBE[*]) [EOFF]; 01102800
|
|
WRITE(LINE,15,GLOBE[*]); 01102900
|
|
GO TO RDD; 01103000
|
|
EOFF: 01103100
|
|
END; 01103200
|
|
SWFININD ~ SWFOUTIND; 01103300
|
|
SWFOUTIND ~ IF NOT SCRATCHTOG THEN 1 ELSE 01103400
|
|
IF SWFOUTIND =2 THEN 3 ELSE 2; 01103500
|
|
REWIND(SWOUT); 01103600
|
|
NARRATE (FLOWBUF[0], 0, COMMENTR, COUNTER); 01103700
|
|
ASMSEQ ~ 1000; 01103800
|
|
OCTTODEC (ASMSEQ,FLOWBUF[9]); 01103900
|
|
ASMSEQ ~ ASMSEQ + 1000; 01104000
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01104100
|
|
UNLINK(TRUE); 01104200
|
|
CLOSEBOX; COUNTER ~ COUNTER + 2; 01104300
|
|
NARRATE (BUF[0], 0, QUIT, COUNT); 01104400
|
|
MOVETEXT; 01104500
|
|
WRITEDISK(FLOWBUF,COUNTER,TRUE); 01104600
|
|
IF DEBEATLETOG THEN 01104700
|
|
BEGIN 01104800
|
|
LABEL RD3,EOF3; 01104900
|
|
WRITE(LINE[DBL]); 01105000
|
|
CLEAR(GLOBE[0],14); 01105100
|
|
REWIND(SWOUT); 01105200
|
|
RD3: READ(SWOUT,10,GLOBE[*]) [EOF3]; 01105300
|
|
WRITE(LINE,10,GLOBE[*]); 01105400
|
|
GO TO RD3; 01105500
|
|
EOF3: END ; 01105600
|
|
CLOSE(SWIN); 01105700
|
|
TRANSTOG ~ FALSE; 01105800
|
|
IF ASMFLOWTOG THEN 01105900
|
|
BEGIN 01106000
|
|
REWIND (SWOUT); 01106100
|
|
SWFININD ~ SWFOUTIND; 01106200
|
|
SWFOUTIND~1; 01106300
|
|
REWIND(SWOUT); 01106400
|
|
BMON ~ TRUE; 01106500
|
|
TAPETOG ~ TRUE; 01106600
|
|
MOVEWORDS(NINES,CBUFF[9],1); 01106700
|
|
DOCLISTOG~LISTOG; LISTOG~FALSE ; 01106800
|
|
DEVICE~ 2; 01106900
|
|
01107000
|
|
ASMLTOG ~ FALSE; 01107100
|
|
CLEAR(GLOBE,14); 01107200
|
|
FIXCOL73(LCR); 01107300
|
|
CLEAR( LISTBUFFER,14); 01107400
|
|
IF DOCLISTOG THEN ZPG(ZLB) ; 01107500
|
|
END ELSE 01107600
|
|
BEGIN 01107700
|
|
NEWTOG~SVNEWTOG ; 01107800
|
|
GO TO EOFCARD ; 01107900
|
|
END ; 01108000
|
|
END; 01108100
|
|
IF FLOWTOG THEN 01108200
|
|
BEGIN 01108300
|
|
COMMENT DOCUMENT* 7 * * * * * * * * * * * * * * * * * * * * * * * * * 01108400
|
|
BLOCK TO PRINT FLOW CHARTS. 01108500
|
|
* SKIP 01108600
|
|
THIS BLOCK EXAMINES FLOW CONTROLS AND DRAWS FLOWCHARTS. 01108700
|
|
* END; 01108800
|
|
DEFINE SCEN = SCAN; IF PERCENT THEN 01108900
|
|
BEGIN 01109000
|
|
SCAN; PATCHPAGE ~ PATCHPAGE OR PATCHCARD; 01109100
|
|
END# ; 01109200
|
|
DEFINE PROGPOINTLAB = 01109300
|
|
IF PERIOD OR PLUS OR MINUS THEN 01109400
|
|
BEGIN 01109500
|
|
LABPOINT ~ Q.[18:6] ; SCEN ; 01109600
|
|
END ELSE 01109700
|
|
LABPOINT ~ " " # ; 01109800
|
|
BOOLEAN CONB,COLTOG; 01109900
|
|
BOOLEAN IMAGEUSED ; 01110000
|
|
BOOLEAN LEFTJUST; 01110100
|
|
BOOLEAN PUNCHFLOWTOG,FLOWWIDETOG ; 01110110
|
|
BOOLEAN BOXTYPE,CODETOG,TABLETOG ; 01110200
|
|
BOOLEAN TEMPTOG ; 01110300
|
|
LABEL MOREFLOW, MAINSTART; 01110400
|
|
ARRAY GENLAB[0:50]; INTEGER G, GENER; 01110500
|
|
ARRAY STBOX[0:50,0:4] , IMAGE[0:75,0:15] , TIM[0:40,0:15] ; 01110600
|
|
ARRAY PBUFF[0:15] ; 01110610
|
|
ARRAY TYPEIND[0:10] ; 01110700
|
|
ARRAY HEADBUFF[0:15],AJUNK[0:7]; 01110800
|
|
ALPHA RBRANCH,LBRANCH ; 01110900
|
|
INTEGER MAXTIM,NLINES,LINTIM,COL,PARP,TEMP,I,MAXCOL; 01111000
|
|
ALPHA LABPOINT ; 01111100
|
|
INTEGER BEGINCOUNT,PAGELINES; 01111200
|
|
INTEGER PFSEQ ; 01111210
|
|
INTEGER TABLECOUNT ; 01111300
|
|
FORMAT FCONTENTS (X30, "TABLE OF CONTENTS"); 01111400
|
|
DEFINE FINDSEMI = DO SCAN UNTIL Q="1; " OR Q="1* " # , 01111500
|
|
SB = STBOX # , 01111600
|
|
SEMI = Q="1; " OR Q="1* " # ; 01111700
|
|
DEFINE PRINTINDEX = 01111800
|
|
PAGEQUAL ~ 2; 01111900
|
|
IF FLOWIND ! 0 THEN 01112000
|
|
BEGIN 01112100
|
|
WRITE (ZAR [*],FCONTENTS); ZPL (ZF,2,ZAR); 01112200
|
|
FOR I ~ 1 STEP 1 UNTIL FLOWIND DO 01112300
|
|
ZPL(ZF,2,FLOWINDEX[I,*]); 01112400
|
|
END#; 01112500
|
|
COMMENT DOCUMENT* 31* * * * * * * * * * * * * * * * * * * * * * * * *; 01112600
|
|
PROCEDURE GENSYM; 01112700
|
|
COMMENT CREATES GENERATED LABELS FOR IF STATEMENTS, ETC ; 01112800
|
|
BEGIN 01112900
|
|
GENER~ GENER+1; G~G+1; OCTTODEC(GENER, GENLAB[G]); 01113000
|
|
GENLAB[G].[12:12] ~ "5G"; 01113100
|
|
END GENSYM; 01113200
|
|
STREAM PROCEDURE SQUASH(S,D,SEQ) ; 01113210
|
|
BEGIN 01113212
|
|
SI ~ S ; DI ~ D ; SI ~ SI + 2 ; 01113214
|
|
DS ~ 36 CHR ; SI ~ SI + 1 ; DS ~ 1 CHR ; 01113216
|
|
SI ~ SI + 1 ; DS ~ 35 CHR ; 01113218
|
|
SI ~ SEQ ; DS ~ 8 DEC ; 01113220
|
|
END SQUASH ; 01113222
|
|
COMMENT DOCUMENT* 31* * * * * * * * * * * * * * * * * * * * * * * * *; 01113300
|
|
PROCEDURE PAGECONNECT ; 01113400
|
|
COMMENT DRAWS PAGE-CONNECTING FLOW LINES ; 01113500
|
|
BEGIN 01113600
|
|
LABEL RETURN ; 01113700
|
|
IF IMAGEUSED AND CONB THEN 01113800
|
|
BEGIN 01113900
|
|
TEMP ~ (COL-1) | 5 + 2 ; 01114000
|
|
FOR I ~ NLINES STEP 1 UNTIL PAGELINES + 1 DO 01114100
|
|
SETCHAR(IMAGE[I,TEMP],4,".") ; 01114200
|
|
TEMP ~ (COL-1) | 40 + 20 ; 01114300
|
|
FOR I ~20 STEP 1 UNTIL TEMP DO 01114400
|
|
SETCHAR(IMAGE[PAGELINES+1,I DIV 8],I.[45:3],".") ; 01114500
|
|
SETCHAR(IMAGE[PAGELINES+2,2],4,":") ; 01114600
|
|
SETCHAR(IMAGE[PAGELINES+3,2],4,"V") ; 01114700
|
|
PAGELINES ~ PAGELINES + 3 ; 01114800
|
|
END ; 01114900
|
|
RETURN: 01115000
|
|
END PAGECONNECT ; 01115100
|
|
COMMENT DOCUMENT* 31* * * * * * * * * * * * * * * * * * * * * * * * *; 01115200
|
|
PROCEDURE PRINTPAGE ; 01115300
|
|
COMMENT PRINTS A PAGE WHEN IMAGE HAS BEEN FILLED ; 01115400
|
|
BEGIN 01115500
|
|
LABEL RETURN,CONT ; 01115600
|
|
IF MONITOG THEN WRITE(LINE,MONITFORM,"PRINTP","AGE "); 01115700
|
|
IF NOT IMAGEUSED THEN GO TO RETURN ; 01115800
|
|
IF FSYNTAXTOG THEN 01115900
|
|
BEGIN 01116000
|
|
ZPG(-1); 01116100
|
|
NEWDOCPAGE; 01116200
|
|
GO TO CONT; 01116300
|
|
END; 01116400
|
|
IF PUNCHPAGES THEN 01116500
|
|
IF NOT PAGETOG THEN 01116600
|
|
BEGIN 01116700
|
|
IF CANTPAGEHERE THEN 01116800
|
|
BEGIN 01116900
|
|
FLOWERROR(36); 01117000
|
|
PUNCHPAGES ~ FALSE; 01117100
|
|
END; 01117200
|
|
IF INSTOG THEN 01117300
|
|
BEGIN 01117400
|
|
IF NOT INSERTROW THEN SAVEPAGEN ~PAGEN; 01117500
|
|
TEMP~PAGEN + INSINC; 01117600
|
|
OCTTODEC(TEMP,BLOCKBUFFER[3]); 01117700
|
|
PAGEINC ~ INSINC; 01117800
|
|
END; 01117900
|
|
CLEAR(OLDBUF[0],14); CLEAR(NEWBUF[0],14); 01118000
|
|
I ~ DELTANCR (WORDBUF[10],WORDBUF[11]) ;J~72-I; 01118100
|
|
MOVECHARS(WORDBUF[J DIV 8],NEWBUF[J DIV 8],J.[45:3], 01118200
|
|
J.[45:3],I); 01118300
|
|
IF NOT COLTOG THEN 01118400
|
|
BEGIN 01118500
|
|
MOVECHARS(WORDBUF[0],OLDBUF[0],0,0,J); 01118600
|
|
OCTTODEC(SAVESEQ,OLDBUF[9]); 01118700
|
|
IJUNK ~ SAVESEQ + 1; 01118800
|
|
SAVESEQ ~ SAVESEQ + 2; 01118900
|
|
END ELSE 01119000
|
|
BEGIN 01119100
|
|
I ~DELTANCR(SAVEBUF[10],SAVEBUF[11]) ; J~72-I; 01119200
|
|
MOVECHARS(SAVEBUF[0],OLDBUF[0],0,0, J); 01119300
|
|
OCTTODEC(SAVEBUF[12],OLDBUF[9]); 01119400
|
|
IJUNK ~ SAVEBUF[12] +1; 01119500
|
|
IF SAVEBUF[12] = SAVESEQ THEN SAVESEQ ~ SAVESEQ + 2; 01119600
|
|
END; 01119700
|
|
OCTTODEC(IJUNK,BLOCKBUFFER[9]); 01119800
|
|
OCTTODEC(SAVESEQ,NEWBUF[9]); 01119900
|
|
IF PUNCHTOG THEN 01120000
|
|
BEGIN 01120100
|
|
IF BLANKTEST(OLDBUF[0],9) OR COLTOG THEN 01120200
|
|
WRITE (PUNCH,10,OLDBUF[*]); 01120300
|
|
WRITE(PUNCH,10,BLOCKBUFFER[*]); 01120400
|
|
IF BLANKTEST(NEWBUF[0],9) OR COLTOG THEN 01120500
|
|
WRITE(PUNCH,10,NEWBUF[*]); 01120600
|
|
END ELSE 01120700
|
|
BEGIN 01120800
|
|
IF BLANKTEST(OLDBUF[0],9) OR COLTOG THEN 01120900
|
|
WRITE(LINE,15,OLDBUF[*]); 01121000
|
|
WRITE(LINE,15,BLOCKBUFFER[*]); 01121100
|
|
IF BLANKTEST(NEWBUF[0],9) OR COLTOG THEN 01121200
|
|
WRITE(LINE,15,NEWBUF[*]); 01121300
|
|
END; 01121400
|
|
END; 01121500
|
|
ZPL (ZF,1,PAGENUM); 01121600
|
|
IF PUNCHFLOWTOG THEN 01121610
|
|
BEGIN 01121612
|
|
IF TIGHTFULL THEN 01121614
|
|
BEGIN 01121616
|
|
MOVEWORDS(TITLEBUFF,PBUFF,9) ; 01121618
|
|
OCTTODEC(PFSEQ,PBUFF[9]); 01121620
|
|
PFSEQ ~ PFSEQ + 10 ; 01121622
|
|
WRITE(PNCH,10,PBUFF[*]) ; 01121624
|
|
END ; 01121626
|
|
IF HEADFULL THEN 01121628
|
|
BEGIN 01121630
|
|
MOVEWORDS(HEADBUFF,PBUFF,9) ; 01121632
|
|
OCTTODEC(PFSEQ,PBUFF[9]); 01121634
|
|
PFSEQ ~ PFSEQ + 10 ; 01121636
|
|
WRITE(PNCH,10,PBUFF[*]) ; 01121638
|
|
END ; 01121640
|
|
END ; 01121642
|
|
IF TIGHTFULL THEN IF HEADFULL THEN 01121700
|
|
ZPL (ZF,1,TITLEBUFF[*]) ELSE ZPL(ZF,2,TITLEBUFF[*]); 01121800
|
|
IF HEADFULL THEN ZPL (ZF,2,HEADBUFF[*]); 01121900
|
|
FOR I ~ 4 STEP 1 UNTIL PAGELINES DO 01122000
|
|
BEGIN 01122009
|
|
IF PUNCHFLOWTOG THEN 01122010
|
|
BEGIN 01122012
|
|
SQUASH(IMAGE[I,0],PBUFF,PFSEQ) ; 01122014
|
|
WRITE(PNCH,10,PBUFF[*]) ; 01122016
|
|
PFSEQ ~ PFSEQ + 10 ; 01122018
|
|
END ; 01122020
|
|
BEGIN 01122100
|
|
ZPL(ZF,1,IMAGE[I,*]); 01122200
|
|
CLEAR(IMAGE[I,0],14) ; 01122300
|
|
END ; 01122400
|
|
END ; 01122401
|
|
ZPG(ZF); 01122500
|
|
PATCHPAGE ~ PATCHPAGE OR TITLECHANGE OR HEADCHANGE; 01122600
|
|
NEWDOCPAGE; 01122700
|
|
CONT: IF DOCLISTOG THEN 01122800
|
|
BEGIN 01122900
|
|
FOR I ~ 0 STEP 1 UNTIL 15 DO SETCHAR(PAGENUM[3],I,"*") ; 01123000
|
|
DOCOUTPUT ~ FALSE; 01123100
|
|
ZPL(0,2,PAGENUM[*]); 01123200
|
|
DOCOUTPUT ~ TRUE; 01123300
|
|
FOR I ~0 STEP 1 UNTIL 15 DO SETCHAR (PAGENUM[3],I," "); 01123400
|
|
END ; 01123500
|
|
NLINES ~ 4 ; COL ~1 ; PAGELINES ~ 0 ; 01123600
|
|
RETURN: 01123700
|
|
PAGETOG ~ FALSE; 01123800
|
|
IMAGEUSED ~FALSE ; 01123900
|
|
END PRINTPAGE ; 01124000
|
|
COMMENT DOCUMENT* 32* * * * * * * * * * * * * * * * * * * * * * * * *; 01124100
|
|
PROCEDURE BUILDTITLE(A); 01124200
|
|
ARRAY A[*] ; 01124300
|
|
COMMENT PUTS TITLE FROM SOURCE FILE IN A AND ENTERS IN INDEX; 01124400
|
|
BEGIN 01124500
|
|
LABEL MORE,NEXT,RETURN; 01124600
|
|
IF MONITOG THEN 01124700
|
|
WRITE (PRINT,MONITFORM, "BUILDT","ITLE "); 01124800
|
|
PARP ~ 0 ;CLEAR(A,14) ; 01124900
|
|
SCAN; IF SEMI THEN TITLEFULL ~ FALSE ELSE 01125000
|
|
BEGIN 01125100
|
|
GO TO NEXT; 01125200
|
|
MORE: SCEN ; IF SEMI THEN GO TO RETURN; 01125300
|
|
NEXT: 01125400
|
|
IF PERCENT THEN GO TO MORE ; 01125500
|
|
IF PARP + COUNT > 70 THEN 01125600
|
|
BEGIN 01125700
|
|
FINDSEMI ; FLOWERROR(13) ; GO TO RETURN ; 01125800
|
|
END ; 01125900
|
|
MOVECHARS(ACCUM[1],A[PARP DIV 8],3,PARP.[45:3],COUNT) ; 01126000
|
|
PARP ~ PARP + COUNT ; 01126100
|
|
IF EXAMINE(NCR) = " " THEN PARP ~ PARP + 1 ; 01126200
|
|
GO TO MORE ; 01126300
|
|
RETURN: 01126400
|
|
TEMPTOG ~ PATCHCARD ; 01126500
|
|
IF FLOWIND < 200 THEN 01126600
|
|
BEGIN 01126700
|
|
FLOWIND ~ FLOWIND + 1 ; 01126800
|
|
CLEAR(FLOWINDEX[FLOWIND,*],14) ; 01126900
|
|
MOVEWORDS(A,FLOWINDEX[FLOWIND,2],13) ; 01127000
|
|
MOVECHARS (PAGENUM[7],FLOWINDEX[FLOWIND,0],4,0,12); 01127100
|
|
END ; 01127200
|
|
END; 01127300
|
|
END BUILDTITLE ; 01127400
|
|
COMMENT DOCUMENT* 31 * * * * * * * * * * * * * * * * * * * * * * * * *; 01127500
|
|
PROCEDURE BUILDHYPH; 01127600
|
|
COMMENT USED WHEN FLOW LABELS MAY HAVE SPECIAL CHARACTERS ; 01127700
|
|
BEGIN 01127800
|
|
LABEL L1,L2; 01127900
|
|
INTEGER FIDCOUNT; 01128000
|
|
IF MONITOG THEN WRITE(LINE,MONITFORM,"BUILDH","YPH "); 01128100
|
|
MOVEWORDS(ACCUM,COBACCUM,10); 01128200
|
|
FIDCOUNT ~ 3; 01128300
|
|
L1: 01128400
|
|
IF Q = "1* " OR Q = "1: " THEN GO TO L2; 01128500
|
|
IF Q = "1% " THEN GO TO L2; 01128600
|
|
IF Q = "1. " AND (EXAMINE(NCR) =" " OR 01128700
|
|
EXAMINE(NCR) ="#") THEN GO TO L2; 01128800
|
|
MOVECHARS(ACCUM[1],COBACCUM[1],3,FIDCOUNT,COUNT); 01128900
|
|
FIDCOUNT ~ FIDCOUNT + COUNT; 01129000
|
|
IF EXAMINE(NCR) = " " THEN GO TO L2; 01129100
|
|
IF FINDCHAR(NCR,":") THEN GO TO L2; 01129200
|
|
IF FINDCHAR (NCR,"(") THEN GO TO L2; 01129300
|
|
IF FINDCHAR (NCR,",") THEN GO TO L2; 01129400
|
|
IF FINDCHAR(NCR,"*") THEN GO TO L2; 01129500
|
|
SCAN; 01129600
|
|
GO TO L1; 01129700
|
|
L2: 01129800
|
|
FIDCOUNT ~ FIDCOUNT - 3; 01129900
|
|
COBACCUM[1].[12:6] ~ FIDCOUNT.[42:6]; 01130000
|
|
MOVEWORDS(COBACCUM,ACCUM,10); 01130100
|
|
Q ~ ACCUM[1]; 01130200
|
|
COUNT ~ FIDCOUNT; 01130300
|
|
END BUILDHYPH; 01130400
|
|
COMMENT DOCUMENT* 33 * * * * * * * * * * * * * * * * * * * * * * * * *; 01130500
|
|
PROCEDURE BUILDBOX(TYPE) ; 01130600
|
|
VALUE TYPE ; 01130700
|
|
INTEGER TYPE ; 01130800
|
|
COMMENT MAKES VARIOUS KINDS OF BOXES,DEPENDING ON TYPE; 01130900
|
|
BEGIN 01131000
|
|
LABEL MORE,RETURN,CONTINUE ; 01131100
|
|
BOOLEAN SKIPLINE ; 01131200
|
|
COMMENT TYPE 0 BOX , TYPE 1 TEST , TYPE 2 SWITCH ; 01131300
|
|
COMMENT TYPE 3 NOTE ; 01131400
|
|
DEFINE CENTERIT = 01131500
|
|
IF TYPE ! 3 AND NOT LEFTJUST THEN 01131600
|
|
IF (35-PARP) > 1 THEN 01131700
|
|
BEGIN 01131800
|
|
TEMP ~ ((35-PARP) DIV 2 ) + 1 ; CLEAR(AJUNK,6) ; 01131900
|
|
MOVECHARS(TIM[LINTIM,0],AJUNK[TEMP DIV 8],5,TEMP.[45:3], 01132000
|
|
PARP-5) ; 01132100
|
|
MOVECHARS(AJUNK[0],TIM[LINTIM,0],0,5,34) ; 01132200
|
|
END # ; 01132300
|
|
LINTIM ~ 0 ; 01132400
|
|
IF CONB THEN MOVEWORDS(STBOX[33,*],TIM[LINTIM,*],5) 01132500
|
|
ELSE CLEAR(TIM[LINTIM,0],4) ; LINTIM ~ LINTIM + 1 ; 01132600
|
|
IF TYPE = 1 THEN 01132700
|
|
BEGIN 01132800
|
|
MOVEWORDS(STBOX[35,*],TIM[LINTIM,*],5) ; 01132900
|
|
LINTIM ~ LINTIM + 1 ; 01133000
|
|
COMMENT 01133100
|
|
MOVEWORDS(STBOX[36,*],TIM[LINTIM,*],5) ; 01133200
|
|
COMMENT 01133300
|
|
LINTIM ~ LINTIM + 1 ; 01133400
|
|
END ; 01133500
|
|
CLEAR(TIM[LINTIM,0],4) ; 01133600
|
|
IF FLOWBOXTOG OR TYPE=1 OR TYPE=3 THEN 01133700
|
|
MOVEWORDS(STBOX[TYPEIND[TYPE],*],TIM[LINTIM,*],5) ELSE 01133800
|
|
IF CONB THEN 01133900
|
|
MOVEWORDS(STBOX[33,*],TIM[LINTIM,*],5) ; 01134000
|
|
PARP ~5 + COUNT + 1 ; 01134100
|
|
IF NOT (FLOWBOXTOG OR TYPE=1 OR TYPE=3) THEN 01134200
|
|
IF NOT BOXTYPE THEN CENTERIT ELSE 01134300
|
|
IF CONB THEN MOVEWORDS(STBOX[33,*],TIM[LINTIM,*],5) ; 01134400
|
|
LINTIM ~ LINTIM + 1 ; 01134500
|
|
PARP ~ 5; CLEAR(TIM[LINTIM,*],4) ; 01134600
|
|
GO TO CONTINUE ; 01134700
|
|
MORE: 01134800
|
|
IF QFLOWTOG THEN 01134900
|
|
BEGIN 01135000
|
|
DOCSCAN; 01135100
|
|
PATCHPAGE~PATCHPAGE OR PATCHCARD; 01135200
|
|
END ELSE SCEN ; 01135300
|
|
IF ASMFLOWTOG THEN IF TYPE = 1 THEN IF RESULT = 1 01135400
|
|
AND EXAMINE(NCR) ! "." THEN BUILDHYPH ; 01135500
|
|
SKIPLINE ~ FALSE ; 01135600
|
|
CONTINUE: IF SEMI OR 01135700
|
|
(TYPE = 1 AND Q = "3YES ") OR 01135800
|
|
(TYPE = 1 AND Q = "2NO ") OR 01135900
|
|
(TYPE = 1 AND Q = "4TRUE ") OR 01136000
|
|
(TYPE = 1 AND Q = "5FALSE") OR 01136100
|
|
(TYPE =1 AND Q = "4THEN ") OR 01136200
|
|
(TYPE = 2 AND Q = "2GO ") THEN GO TO RETURN ; 01136300
|
|
IF PERCENT THEN GO TO MORE ; 01136400
|
|
IF Q="1. " AND EXAMINE(NCR) =" " THEN 01136500
|
|
BEGIN 01136600
|
|
CENTERIT ; SKIPLINE ~ TRUE ; PARP ~ 35 ; 01136700
|
|
END ; 01136800
|
|
IF PARP + COUNT > 34 THEN 01136900
|
|
BEGIN 01137000
|
|
IF (FLOWBOXTOG OR TYPE = 1) AND TYPE ! 3 THEN 01137100
|
|
BEGIN 01137200
|
|
CENTERIT ; 01137300
|
|
SETCHAR(TIM[LINTIM,0],4,":") ; 01137400
|
|
SETCHAR(TIM[LINTIM,4],3,":") ; 01137500
|
|
END ELSE CENTERIT ; 01137600
|
|
LINTIM ~ LINTIM + 1; PARP ~ 5; 01137700
|
|
CLEAR(TIM[LINTIM,0],4) ; 01137800
|
|
IF LINTIM > MAXTIM THEN 01137900
|
|
BEGIN 01138000
|
|
FLOWERROR(14); FINDSEMI ; GO TO RETURN ; 01138100
|
|
END ; 01138200
|
|
END ; 01138300
|
|
IF SKIPLINE THEN GO TO MORE ; 01138400
|
|
IF COUNT > 28 THEN 01138500
|
|
BEGIN 01138600
|
|
FLOWERROR(26) ; GO TO MORE ; 01138700
|
|
END ; 01138800
|
|
MOVECHARS(ACCUM[1],TIM[LINTIM,PARP DIV 8],3, 01138900
|
|
PARP.[45:3],COUNT) ; 01139000
|
|
IF EXAMINE(NCR) = " " THEN PARP ~ PARP + 1 ; 01139100
|
|
PARP ~ PARP + COUNT ; 01139200
|
|
IF Q = "1. " AND EXAMINE (NCR) = "#" THEN 01139300
|
|
BEGIN 01139400
|
|
SCEN; PARP ~ PARP +1; 01139500
|
|
END; 01139600
|
|
GO TO MORE ; 01139700
|
|
RETURN: IF PARP ! 5 THEN 01139800
|
|
BEGIN 01139900
|
|
IF (FLOWBOXTOG OR TYPE = 1) AND TYPE ! 3 THEN 01140000
|
|
BEGIN 01140100
|
|
CENTERIT ; 01140200
|
|
SETCHAR(TIM[LINTIM,0],4,":") ; 01140300
|
|
SETCHAR(TIM[LINTIM,4],3,":") ; 01140400
|
|
END ELSE CENTERIT ; 01140500
|
|
LINTIM ~ LINTIM + 1 ; 01140600
|
|
END ; 01140700
|
|
IF FLOWBOXTOG OR TYPE=1 OR TYPE=3 THEN 01140800
|
|
BEGIN 01140900
|
|
MOVEWORDS(STBOX[TYPEIND[TYPE],*],TIM[LINTIM,*],5) ; 01141000
|
|
LINTIM ~ LINTIM + 1 ; 01141100
|
|
END ; 01141200
|
|
IF TYPE = 1 THEN 01141300
|
|
BEGIN 01141400
|
|
MOVEWORDS(STBOX[35,*],TIM[LINTIM,*],5) ; 01141500
|
|
LINTIM ~ LINTIM + 1 ; 01141600
|
|
END ; 01141700
|
|
END BUILDBOX ; 01141800
|
|
COMMENT DOCUMENT* 31* * * * * * * * * * * * * * * * * * * * * * * * *; 01141900
|
|
PROCEDURE EMIT ; 01142000
|
|
COMMENT MOVES BOX INTO IMAGE, CHECKING LINE COUNT ; 01142100
|
|
BEGIN 01142200
|
|
LABEL RETURN ; 01142300
|
|
IF MONITOG THEN WRITE(LINE,MONITFORM,"EMIT "," "); 01142400
|
|
IF ((NLINES + LINTIM) > MAXLINES ) OR COLTOG THEN 01142500
|
|
BEGIN 01142600
|
|
IF COL = MAXCOL THEN 01142700
|
|
BEGIN 01142800
|
|
PAGECONNECT ; PRINTPAGE ; 01142900
|
|
END ELSE 01143000
|
|
BEGIN 01143100
|
|
IF CONB THEN 01143200
|
|
BEGIN 01143300
|
|
TEMP ~ (COL-1) | 5 ; 01143400
|
|
MOVEWORDS(STBOX[8,0],IMAGE[NLINES,TEMP],5) ; 01143500
|
|
NLINES ~ NLINES + 1; 01143600
|
|
MOVEWORDS(STBOX[9,0],IMAGE[NLINES,TEMP],5) ; 01143700
|
|
TEMP ~ ((COL-1)|5) + 4 ; 01143800
|
|
FOR I ~ 4 STEP 1 UNTIL NLINES DO 01143900
|
|
SETCHAR(IMAGE[I,TEMP],7,".") ; 01144000
|
|
IF NLINES > PAGELINES THEN PAGELINES ~ NLINES ; 01144100
|
|
COL ~COL + 1 ; 01144200
|
|
NLINES ~ 4 ; TEMP ~ (COL-1)|5; 01144300
|
|
MOVEWORDS(STBOX[6,0],IMAGE[NLINES,TEMP],5) ; 01144400
|
|
NLINES ~ NLINES + 1 ; 01144500
|
|
MOVEWORDS(STBOX[7,0],IMAGE[NLINES,TEMP],5) ; 01144600
|
|
NLINES ~ NLINES + 1 ; 01144700
|
|
END ELSE 01144800
|
|
BEGIN 01144900
|
|
COL ~ COL + 1 ; 01145000
|
|
IF NLINES > PAGELINES THEN PAGELINES ~ NLINES ; 01145100
|
|
NLINES ~4 ; 01145200
|
|
END ; 01145300
|
|
END ; 01145400
|
|
END ; 01145500
|
|
IF COLTOG THEN GO TO RETURN ; 01145600
|
|
TEMP ~ (COL-1)|5 ; 01145700
|
|
FOR I ~ 0 STEP 1 UNTIL LINTIM - 1 DO 01145800
|
|
MOVEWORDS(TIM[I,0],IMAGE[NLINES+I,TEMP],5) ; 01145900
|
|
NLINES ~ NLINES+LINTIM ; LINTIM ~ 0 ; 01146000
|
|
RETURN: 01146100
|
|
IF NLINES > PAGELINES THEN PAGELINES ~ NLINES ; 01146200
|
|
IMAGEUSED ~ TRUE ; 01146300
|
|
END EMIT ; 01146400
|
|
COMMENT DOCUMENT* 31* * * * * * * * * * * * * * * * * * * * * * * * *; 01146500
|
|
PROCEDURE PRINTFLOW ; 01146600
|
|
COMMENT DOES ANALYSIS OF INPUT AND CALLS THE SUITABLE ROUTINES; 01146700
|
|
BEGIN 01146800
|
|
LABEL MORE, FINDHEAD, MORELAB, GOL1, LABLER, KI; 01146900
|
|
LABEL STARTL,FINISHL,QUITL,BEGINL,ENDL,BOXL,COMMENTL, 01147000
|
|
PAGEINCL, MAXCOLL , DATEL , 01147100
|
|
LEFTL, 01147200
|
|
NOTEL,BOXLL,TABLEL,CODEL,BOXONLYL,PTABLE, 01147300
|
|
HEADL,TITLEL,YESL,NOL,TOL,GOL,IFL,SWITCHL,ENTERL, 01147400
|
|
EXITL,PAGEL,LABELL,TERML,PAGEIDL,COLL,NOGOODL ; 01147500
|
|
SWITCH BOXSW ~ 01147600
|
|
STARTL,FINISHL,QUITL,BEGINL,ENDL,BOXL,COMMENTL, 01147700
|
|
HEADL,TITLEL,YESL,NOL,TOL,GOL,IFL,NOGOODL, 01147800
|
|
SWITCHL,ENTERL, 01147900
|
|
EXITL, PAGEL,NOGOODL, TERML,PAGEIDL,COLL,PAGEINCL, 01148000
|
|
MAXCOLL, DATEL, 01148100
|
|
NOTEL,TABLEL,CODEL,BOXONLYL, 01148200
|
|
YESL,NOL,IFL,NOGOODL ; 01148300
|
|
BOOLEAN GEN, GENS; INTEGER PARENCOUNT; 01148400
|
|
IF MONITOG THEN 01148500
|
|
WRITE (PRINT,MONITFORM, "PRINTF","LOW "); 01148600
|
|
MORE: 01148700
|
|
IF PUNCHPAGES THEN 01148800
|
|
IF SEMI OR Q = "1: " OR Q ="1) " 01148900
|
|
OR Q = "1( " THEN 01149000
|
|
BEGIN 01149100
|
|
MOVEWORDS(GLOBE[0],WORDBUF[0],9); 01149200
|
|
MOVEWORDS(NCR,WORDBUF[10],1); 01149300
|
|
MOVEWORDS(LCR,WORDBUF[11],1); 01149400
|
|
SAVESEQ ~ ISEQ; 01149500
|
|
END; 01149600
|
|
SCEN; 01149700
|
|
IF Q="1) " THEN 01149800
|
|
BEGIN IF (PARENCOUNT~PARENCOUNT-1) < 0 THEN GO TO KI 01149900
|
|
ELSE GO TO MORE; 01150000
|
|
END ELSE 01150100
|
|
IF Q="1( " THEN PARENCOUNT~PARENCOUNT+1 ELSE 01150200
|
|
PROGPOINTLAB; 01150300
|
|
IF RESULT ! 1 THEN GO TO MORE ; 01150400
|
|
IF Q = "4ELSE " THEN 01150500
|
|
BEGIN 01150600
|
|
FLOWERROR(33); 01150700
|
|
GO TO MORE; 01150800
|
|
END; 01150900
|
|
IF ASMFLOWTOG THEN IF NOT (EXAMINE(NCR)=" " OR 01151000
|
|
EXAMINE(NCR) = ":") THEN BUILDHYPH; 01151100
|
|
IF RESULT = 1 AND FINDCHAR(NCR,":") 01151200
|
|
THEN GO TO LABELL ; 01151300
|
|
IF Q = "7NOTEB" THEN GO TO NOTEL; 01151400
|
|
IF Q = "8LEFTJ" THEN GO TO LEFTL; 01151500
|
|
IF Q = "9SWITC" THEN GO TO SWITCHL ; 01151600
|
|
IF Q = "5PUNCH" THEN 01151610
|
|
BEGIN 01151612
|
|
PUNCHFLOWTOG ~ TRUE ; GO TO MORE ; 01151614
|
|
END ; 01151616
|
|
IF Q = "4WIDE " THEN 01151618
|
|
BEGIN 01151620
|
|
FLOWWIDETOG ~ TRUE ; GO TO MORE ; 01151622
|
|
END ; 01151624
|
|
IF SEARCHRESERVED THEN GO TO BOXSW[RESTYPE]; 01151700
|
|
GO TO BOXLL ; 01151800
|
|
STARTL: GO TO MORE ; 01151900
|
|
FINISHL: IF BEGINCOUNT ! 0 THEN 01152000
|
|
FLOWERROR(2) ; 01152100
|
|
PAGETOG ~ TRUE; 01152200
|
|
PRINTPAGE ; 01152300
|
|
PRINTINDEX ; 01152400
|
|
GO TO MOREFLOW ; 01152500
|
|
QUITL: QUITOG~ TRUE; 01152600
|
|
IF BEGINCOUNT !0 THEN 01152700
|
|
BEGIN 01152800
|
|
PAGETOG ~ TRUE; 01152900
|
|
PRINTPAGE ; 01153000
|
|
FLOWERROR(2) ; GO TO EOFCARD ; 01153100
|
|
END ; 01153200
|
|
PAGETOG ~ TRUE; 01153300
|
|
PRINTPAGE ; 01153400
|
|
PRINTINDEX ; 01153500
|
|
GO TO EOFCARD ; 01153600
|
|
BEGINL: IF BEGINCOUNT ! 0 THEN 01153700
|
|
BEGIN 01153800
|
|
FLOWERROR(3) ; FINDSEMI ; GO TO MORE ; 01153900
|
|
END ; 01154000
|
|
BEGINCOUNT ~1 ; 01154100
|
|
PAGETOG ~ TRUE; 01154200
|
|
PRINTPAGE; 01154300
|
|
PAGETOG ~ FALSE; 01154400
|
|
GO TO MORE; 01154500
|
|
ENDL : IF BEGINCOUNT ! 1 THEN 01154600
|
|
FLOWERROR(4) ; 01154700
|
|
BEGINCOUNT ~ 0 ; 01154800
|
|
PAGETOG ~ TRUE; 01154900
|
|
PRINTPAGE ; 01155000
|
|
DO SCAN UNTIL Q="5BEGIN" OR Q="6FINIS" OR Q="4QUIT "; 01155100
|
|
IF Q = "5BEGIN" THEN GO TO BEGINL ; 01155200
|
|
IF Q = "6FINIS" THEN GO TO FINISHL ; 01155300
|
|
IF Q = "4QUIT " THEN GO TO QUITL ; 01155400
|
|
BOXLL: BOXTYPE ~ TRUE ; BUILDBOX(0) ; BOXTYPE ~ FALSE ; 01155500
|
|
EMIT ; GO TO MORE ; 01155600
|
|
BOXL: IF Q = "3BOX " THEN 01155700
|
|
BEGIN 01155800
|
|
SCEN ; GO TO BOXLL ; 01155900
|
|
END ; 01156000
|
|
BUILDBOX(0) ; 01156100
|
|
EMIT ; GO TO MORE ; 01156200
|
|
COMMENTL: FINDSEMI ; GO TO MORE ; 01156300
|
|
NOTEL: 01156400
|
|
IF Q = "7NOTEB" THEN SCEN; 01156500
|
|
BOXTYPE ~TRUE; BUILDBOX(3); BOXTYPE ~ FALSE; 01156600
|
|
EMIT ; GO TO MORE ; 01156700
|
|
HEADL: 01156800
|
|
HEADFULL ~ TITLEFULL ~ TRUE; 01156900
|
|
BUILDTITLE (HEADBUFF); 01157000
|
|
HEADCHANGE ~ TEMPTOG ; 01157100
|
|
HEADFULL~TITLEFULL; 01157200
|
|
TITLEFULL ~FALSE; 01157300
|
|
GO TO MORE; 01157400
|
|
TITLEL: 01157500
|
|
TIGHTFULL ~TITLEFULL~ TRUE; 01157600
|
|
BUILDTITLE (TITLEBUFF); 01157700
|
|
TIGHTFULL~TITLEFULL; 01157800
|
|
TITLECHANGE ~ TEMPTOG ; 01157900
|
|
TITLEFULL ~FALSE; 01158000
|
|
GO TO MORE; 01158100
|
|
YESL: FLOWERROR(7) ; FINDSEMI ; GO TO MORE ; 01158200
|
|
NOL: FLOWERROR(8) ; FINDSEMI ; GO TO MORE ; 01158300
|
|
TOL: FLOWERROR(9) ; FINDSEMI ; GO TO MORE ; 01158400
|
|
GOL: SCEN ; IF Q = "2TO " THEN SCEN ; 01158500
|
|
PROGPOINTLAB ; 01158600
|
|
IF RESULT !1 THEN 01158700
|
|
BEGIN 01158800
|
|
FLOWERROR(10) ; FINDSEMI ; GO TO MORE ; 01158900
|
|
END ; 01159000
|
|
IF ASMFLOWTOG THEN BUILDHYPH; 01159100
|
|
GOL1: CONB ~ TRUE; 01159200
|
|
IF Q = "6GENSY" THEN 01159300
|
|
BEGIN 01159400
|
|
IF G = 0 THEN 01159500
|
|
BEGIN 01159600
|
|
FLOWERROR (32); 01159700
|
|
GO TO MORE; 01159800
|
|
END; 01159900
|
|
Q~ ACCUM[1] ~ GENLAB[G~G-1]; 01160000
|
|
GENLAB[G] ~ GENLAB[G+1]; 01160100
|
|
COUNT ~ 5; 01160200
|
|
END; 01160300
|
|
FOR I ~ 0,1,2,3 DO 01160400
|
|
MOVEWORDS(STBOX[16+I,0],TIM[LINTIM+I,0],5) ; 01160500
|
|
LINTIM ~ LINTIM + 4 ; 01160600
|
|
IF SORTSCRAMBLE THEN BUILDXREF ; 01160700
|
|
IF COUNT > 11 THEN COUNT ~ 11 ; 01160800
|
|
MOVECHARS(ACCUM[1],TIM[LINTIM-2,3],3,3,COUNT) ; 01160900
|
|
MOVECHARS(LABPOINT,TIM[LINTIM-2,3],7,2,1) ; 01161000
|
|
EMIT; CONB ~ FALSE ; 01161100
|
|
IF PAGETOG THEN 01161200
|
|
BEGIN 01161300
|
|
PAGECONNECT ; 01161400
|
|
PRINTPAGE; PAGETOG ~ FALSE ; 01161500
|
|
END ; 01161600
|
|
IF GEN THEN GO TO LABLER ; GO TO MORE ; 01161700
|
|
IFL: 01161800
|
|
BEGIN 01161900
|
|
INTEGER BLOCKEXTENDER; 01162000
|
|
IF Q = "4TEST " THEN SCEN; 01162100
|
|
BUILDBOX (1); 01162200
|
|
IF NOT ( Q= "3YES " OR Q = "4TRUE " OR Q = "2NO " 01162300
|
|
OR Q = "5FALSE" OR Q = "4THEN ") THEN 01162400
|
|
BEGIN 01162500
|
|
FLOWERROR(34); 01162600
|
|
IF FINDCHAR(NCR,")") THEN SCEN; 01162700
|
|
GO TO MORE; 01162800
|
|
END; 01162900
|
|
LBRANCH~IF (Q="3YES " OR Q="4TRUE " OR Q="4THEN ") THEN 01163000
|
|
"NO " ELSE "YES" ; 01163100
|
|
RBRANCH ~ IF LBRANCH = "YES" THEN "NO " ELSE "YES" ; 01163200
|
|
SCEN; IF Q="1( " THEN 01163300
|
|
BEGIN 01163400
|
|
LABPOINT ~" "; GEN ~ TRUE; GENSYM; 01163500
|
|
Q~ACCUM[1] ~ GENLAB[G]; COUNT ~ 5; 01163600
|
|
RBRANCH~IF (LBRANCH~RBRANCH)="NO " THEN "YES" ELSE "NO "; 01163700
|
|
END 01163800
|
|
ELSE 01163900
|
|
BEGIN 01164000
|
|
IF Q = "2GO " THEN SCEN; 01164100
|
|
IF Q = "2TO " THEN SCEN ; 01164200
|
|
PROGPOINTLAB ; 01164300
|
|
IF RESULT ! 1 THEN 01164400
|
|
BEGIN 01164500
|
|
FLOWERROR(15) ; FINDSEMI ; GO TO MORE ; 01164600
|
|
END ; 01164700
|
|
END; 01164800
|
|
IF ASMFLOWTOG THEN IF NOT GEN THEN BUILDHYPH; 01164900
|
|
FOR I ~ 0,1,2,3,4 DO 01165000
|
|
MOVEWORDS(STBOX[28+I,0],TIM[LINTIM+I,0],5) ; 01165100
|
|
LINTIM ~ LINTIM + 5 ; 01165200
|
|
IF SORTSCRAMBLE THEN BUILDXREF ; 01165300
|
|
IF COUNT > 11 THEN COUNT ~ 11 ; 01165400
|
|
MOVECHARS(ACCUM[1],TIM[LINTIM-3,3],3,3,COUNT) ; 01165500
|
|
MOVECHARS(LABPOINT,TIM[LINTIM-3,3],7,2,1) ; 01165600
|
|
MOVECHARS(LBRANCH,TIM[LINTIM-4,1],5,7,3) ; 01165700
|
|
MOVECHARS(RBRANCH,TIM[LINTIM-4,2],5,5,3) ; 01165800
|
|
IF GEN THEN 01165900
|
|
BEGIN 01166000
|
|
EMIT; 01166100
|
|
Q ~ "1( "; 01166200
|
|
PRINTFLOW; 01166300
|
|
END; 01166400
|
|
END; SCEN; IF SEMI AND GEN THEN 01166500
|
|
LABLER: BEGIN 01166600
|
|
Q ~ ACCUM[1] ~ GENLAB[G]; G~G-1; COUNT~5; GO TO LABELL;01166700
|
|
END; 01166800
|
|
IF Q = "1. " THEN SCEN; 01166900
|
|
IF SEMI THEN 01167000
|
|
BEGIN 01167100
|
|
EMIT ; GO TO MORE ; 01167200
|
|
END ; 01167300
|
|
IF Q = "4ELSE " THEN 01167400
|
|
BEGIN 01167500
|
|
IF GEN THEN IF PUNCHPAGES THEN 01167600
|
|
BEGIN 01167700
|
|
MOVEWORDS(GLOBE [0],WORDBUF[0],9); 01167800
|
|
MOVEWORDS(NCR,WORDBUF[10],1); 01167900
|
|
MOVEWORDS(LCR,WORDBUF[11],1); 01168000
|
|
SAVESEQ ~ ISEQ; 01168100
|
|
END ; 01168200
|
|
SCEN ; 01168300
|
|
END ; 01168400
|
|
IF Q = "2GO " AND NOT GEN THEN GO TO GOL; 01168500
|
|
IF GEN THEN IF SEMI THEN 01168600
|
|
BEGIN 01168700
|
|
SCEN ; IF Q ! "4PAGE " THEN 01168800
|
|
BEGIN 01168900
|
|
FLOWERROR(16); GO TO MORE ; 01169000
|
|
END ; 01169100
|
|
PAGETOG ~ TRUE ; 01169200
|
|
SCEN ; IF SEMI THEN SCEN ; 01169300
|
|
END ; 01169400
|
|
IF Q = "1( " AND GEN THEN 01169500
|
|
BEGIN 01169600
|
|
GENSYM; Q ~ ACCUM[1]~GENLAB[G]; GENLAB[G]~GENLAB[G-1]; 01169700
|
|
GENLAB[G-1]~ Q; COUNT~5; GENS~TRUE; GO TO GOL1; 01169800
|
|
END; 01169900
|
|
FLOWERROR(16) ; FINDSEMI ; GO TO MORE ; 01170000
|
|
SWITCHL: 01170100
|
|
IF Q = "9SWITC" THEN SCEN ; 01170200
|
|
BUILDBOX(2) ; 01170300
|
|
IF Q ! "2GO " THEN 01170400
|
|
BEGIN 01170500
|
|
FLOWERROR(23); GO TO MORE ; 01170600
|
|
END ; 01170700
|
|
IF Q = "2GO " THEN SCEN ; 01170800
|
|
IF Q = "2TO " THEN SCEN ; 01170900
|
|
PROGPOINTLAB ; 01171000
|
|
MORELAB: 01171100
|
|
IF ASMFLOWTOG THEN BUILDHYPH; 01171200
|
|
FOR I ~ 0,1,2,3 DO 01171300
|
|
MOVEWORDS(STBOX[12+I,0],TIM[LINTIM+I,0],5) ; 01171400
|
|
LINTIM ~ LINTIM + 4 ; 01171500
|
|
IF SORTSCRAMBLE THEN BUILDXREF ; 01171600
|
|
IF COUNT > 11 THEN COUNT ~ 11 ; 01171700
|
|
MOVECHARS(ACCUM[1],TIM[LINTIM-2,3],3,3,COUNT) ; 01171800
|
|
MOVECHARS(LABPOINT,TIM[LINTIM-2,3],7,2,1) ; 01171900
|
|
SCEN ; IF Q = "1( " THEN 01172000
|
|
BEGIN 01172100
|
|
SCEN ; IF RESULT !3 OR COUNT > 3 THEN 01172200
|
|
BEGIN 01172300
|
|
IF RESULT !3 THEN FLOWERROR(29) ELSE FLOWERROR(30) ; 01172400
|
|
CANTPAGEHERE ~ FALSE; 01172500
|
|
FINDSEMI ; GO TO MORE ; 01172600
|
|
END ; 01172700
|
|
MOVECHARS(ACCUM[1],TIM[LINTIM-2,2],3,6,COUNT) ; 01172800
|
|
SCEN ; IF Q ! "1) " THEN 01172900
|
|
BEGIN 01173000
|
|
FLOWERROR(31) ; % MISSING ) 01173100
|
|
CANTPAGEHERE ~ FALSE; 01173200
|
|
FINDSEMI ; GO TO MORE ; 01173300
|
|
END ; 01173400
|
|
SCEN ; 01173500
|
|
END ; 01173600
|
|
IF Q = "1, " THEN 01173700
|
|
BEGIN 01173800
|
|
EMIT ; 01173900
|
|
CANTPAGEHERE ~ TRUE; 01174000
|
|
SCEN ; PROGPOINTLAB ; GO TO MORELAB ; 01174100
|
|
END ; 01174200
|
|
CONB ~ FALSE ; 01174300
|
|
IF SEMI THEN 01174400
|
|
BEGIN 01174500
|
|
SETCHAR(TIM[LINTIM-1,2],4," ") ; 01174600
|
|
EMIT; 01174700
|
|
CANTPAGEHERE ~ FALSE; 01174800
|
|
GO TO MORE; 01174900
|
|
END ; 01175000
|
|
CANTPAGEHERE ~ FALSE; 01175100
|
|
FLOWERROR(17) ; FINDSEMI ; GO TO MORE ; 01175200
|
|
ENTERL: FOR I ~ 0 STEP 1 UNTIL 2 DO 01175300
|
|
MOVEWORDS(STBOX[1+I,0],TIM[LINTIM+I,0],5) ; 01175400
|
|
LINTIM ~ LINTIM + 3 ; EMIT ; 01175500
|
|
CONB ~ TRUE ; GO TO MORE ; 01175600
|
|
EXITL: MOVEWORDS(STBOX[12,0],TIM[LINTIM,0],6) ; 01175700
|
|
LINTIM ~ LINTIM +1 ; 01175800
|
|
FOR I ~ 0 STEP 1 UNTIL 2 DO 01175900
|
|
MOVEWORDS(STBOX[3+I,0],TIM[LINTIM+I,0],5) ; 01176000
|
|
LINTIM ~ LINTIM + 3 ; EMIT ; 01176100
|
|
CONB ~ FALSE ; GO TO MORE ; 01176200
|
|
DATEL: DATETOG ~ TRUE ; SCEN ; 01176300
|
|
IF Q = "5CLEAR" THEN DATETOG ~ FALSE ; 01176400
|
|
IF SEMI THEN GO TO MORE ; FINDSEMI ; GO TO MORE ; 01176500
|
|
PAGEL: SCEN ; IF RESULT = 3 THEN 01176600
|
|
DTOCT(ACCUM[1],3,PAGEINC,COUNT) ELSE PAGEINC~SAVEPAGEINC; 01176700
|
|
PAGETOG ~ TRUE; 01176800
|
|
IF Q = "2NO " THEN NOPAGETOG ~ TRUE ELSE 01176900
|
|
IF SEMI THEN 01177000
|
|
BEGIN 01177100
|
|
IF INSERTROW THEN PAGEN ~ SAVEPAGEN; 01177200
|
|
INSERTROW ~ FALSE; 01177300
|
|
END ELSE 01177400
|
|
IF Q = "#INSER" THEN 01177500
|
|
BEGIN 01177600
|
|
LABEL L; 01177700
|
|
INSERTOG ~TRUE; 01177800
|
|
IF NOT INSERTROW THEN SAVEPAGEN ~ PAGEN; 01177900
|
|
INSERTROW ~TRUE; 01178000
|
|
PAGEINC ~1; 01178100
|
|
SCEN; IF RESULT ! 3 THEN GO TO L; 01178200
|
|
DTOCT (ACCUM [1],3,PAGEN,COUNT); 01178300
|
|
SCEN; IF COMMA THEN SCAN; IF RESULT !3 THEN GO TO L; 01178400
|
|
DTOCT (ACCUM [1],3,PAGEINC,COUNT); 01178500
|
|
L: PAGEN~PAGEN -PAGEINC; 01178600
|
|
END; 01178700
|
|
PAGECONNECT; PRINTPAGE; 01178800
|
|
PAGETOG ~ FALSE; 01178900
|
|
IF SEMI THEN GO TO MORE; 01179000
|
|
FINDSEMI ; GO TO MORE ; 01179100
|
|
LABELL: IF CONB THEN TEMP ~ 20 ELSE TEMP ~ 24 ; 01179200
|
|
IF Q = "6GENSY" THEN 01179300
|
|
BEGIN 01179400
|
|
GENSYM; COUNT ~5; Q ~ ACCUM[1] ~ GENLAB[G]; 01179500
|
|
END; 01179600
|
|
FOR I ~ 0,1,2,3 DO 01179700
|
|
MOVEWORDS(STBOX[TEMP+I,0],TIM[LINTIM+I,0],5) ; 01179800
|
|
LINTIM ~ LINTIM + 4 ; 01179900
|
|
LABELUSE ~ TRUE ; 01180000
|
|
IF SORTSCRAMBLE THEN BUILDXREF ; 01180100
|
|
LABELUSE ~FALSE ; 01180200
|
|
IF COUNT > 11 THEN COUNT ~ 11 ; 01180300
|
|
MOVECHARS(ACCUM[1],TIM[LINTIM-2,0],3,2,COUNT) ; 01180400
|
|
MOVECHARS(LABPOINT,TIM[LINTIM-2,0],7,1,1) ; 01180500
|
|
EMIT; CONB ~ TRUE; IF Q="6GENSY" THEN GO TO MORE; 01180600
|
|
IF PUNCHPAGES THEN 01180700
|
|
BEGIN 01180800
|
|
MOVEWORDS(GLOBE[0],WORDBUF[0],9) ; 01180900
|
|
MOVEWORDS(NCR,WORDBUF[10],1); 01181000
|
|
MOVEWORDS(LCR,WORDBUF[11],1); 01181100
|
|
SAVESEQ ~ ISEQ ; 01181200
|
|
END ; 01181300
|
|
IF GENS THEN 01181400
|
|
BEGIN 01181500
|
|
GENS ~ FALSE; PRINTFLOW; GO TO LABLER; 01181600
|
|
END; 01181700
|
|
IF GEN THEN 01181800
|
|
BEGIN 01181900
|
|
GEN ~ FALSE; GO TO MORE; 01182000
|
|
END; 01182100
|
|
SCEN; IF Q ! "1: " THEN 01182200
|
|
BEGIN 01182300
|
|
FLOWERROR(11) ; FINDSEMI ; GO TO MORE ; 01182400
|
|
END ; 01182500
|
|
GO TO MORE ; 01182600
|
|
BOXONLYL: SCEN ; 01182700
|
|
TERML: BUILDBOX(0) ; EMIT ; 01182800
|
|
CONB ~ FALSE ; GO TO MORE ; 01182900
|
|
TABLEL: SCAN;IF RESULT = 3 THEN 01183000
|
|
DTOCT(ACCUM[1],3,TABLECOUNT,COUNT) ELSE 01183100
|
|
TABLECOUNT ~ 5000 ; 01183200
|
|
PAGETOG ~ TRUE; 01183300
|
|
PAGECONNECT ; PRINTPAGE ; 01183400
|
|
FLOWTABTOG ~ TABLETOG ~ TRUE ; 01183500
|
|
GO TO PTABLE ; 01183600
|
|
CODEL: SCAN; IF RESULT = 3 THEN 01183700
|
|
DTOCT(ACCUM[1],3,TABLECOUNT,COUNT) ELSE 01183800
|
|
TABLECOUNT ~ 5000 ; 01183900
|
|
PAGETOG ~ TRUE; 01184000
|
|
PAGECONNECT ; PRINTPAGE ; 01184100
|
|
FLOWTABTOG ~ TRUE ; CODETOG ~ TRUE ; 01184200
|
|
GO TO PTABLE ; 01184300
|
|
PTABLE: 01184400
|
|
IF PERCENT THEN SCAN ELSE READATAPE; 01184500
|
|
TABLECOUNT ~ TABLECOUNT - 1 ; 01184600
|
|
IF ASMLTOG THEN 01184700
|
|
BEGIN 01184800
|
|
IF CODETOG THEN 01184900
|
|
MOVEWORDS(ASMLBUFF[DEVICE,*],IMAGE[NLINES,*],10) ; 01185000
|
|
IF TABLETOG THEN 01185100
|
|
MOVEWORDS(GLOBE[0],IMAGE[NLINES,1],8) ; 01185200
|
|
END ELSE 01185300
|
|
IF CHECKCHAR(GLOBE[0],0,"%") THEN TABLECOUNT ~0 ELSE 01185400
|
|
MOVEWORDS(GLOBE,IMAGE[NLINES,0],9) ; 01185500
|
|
NLINES ~ NLINES + 1 ; 01185600
|
|
IMAGEUSED ~ TRUE ; 01185700
|
|
PAGELINES ~ NLINES ; 01185800
|
|
IF NLINES } MAXLINES THEN PRINTPAGE ; 01185900
|
|
IF TABLECOUNT !0 THEN GO TO PTABLE ; 01186000
|
|
PAGELINES ~ NLINES ; 01186100
|
|
IF NLINES ! 4 THEN PRINTPAGE ; 01186200
|
|
FLOWTABTOG ~ CODETOG ~ TABLETOG ~ FALSE ; 01186300
|
|
GO TO MORE ; 01186400
|
|
PAGEIDL: 01186500
|
|
BEGIN 01186600
|
|
INTEGER BLOCKEXTENDER; 01186700
|
|
INSERTROW ~ FALSE; 01186800
|
|
LFPAGEID~TRUE; PAGEN ~0; PAGEID~" "; 01186900
|
|
SCEN ; IF RESULT ! 3 THEN 01187000
|
|
BEGIN 01187100
|
|
FLOWERROR(18) ; FINDSEMI ; GO TO MORE ; 01187200
|
|
END ; 01187300
|
|
DTOCT(ACCUM[1],3,PAGEN,COUNT) ; 01187400
|
|
SCEN ; IF Q ! "1, " THEN 01187500
|
|
BEGIN 01187600
|
|
FLOWERROR(19); FINDSEMI ; GO TO MORE ; 01187700
|
|
END ; 01187800
|
|
SCEN ; IF Q = "1+ " THEN 01187900
|
|
BEGIN 01188000
|
|
LFPAGEID ~FALSE ; SCEN ; 01188100
|
|
END ; 01188200
|
|
IF RESULT = 5 THEN 01188300
|
|
BEGIN 01188400
|
|
IJUNK ~ IF COUNT > 7 THEN 6 ELSE COUNT - 2 ; 01188500
|
|
MOVECHARS(ACCUM[1],PAGEID,4,2,IJUNK) ; 01188600
|
|
END ELSE FLOWERROR(20) ; 01188700
|
|
IF IMAGEUSED THEN PAGEN ~PAGEN -PAGEINC ELSE NEWDOCPAGE; 01188800
|
|
SCEN; IF SEMI THEN GO TO MORE; 01188900
|
|
IF Q = "8DECIM" THEN 01189000
|
|
BEGIN 01189100
|
|
DECIMALSTOG ~TRUE; 01189200
|
|
PLACES ~2; 01189300
|
|
SCEN; IF Q = "2NO " THEN 01189400
|
|
BEGIN 01189500
|
|
DECIMALSTOG ~ FALSE; 01189600
|
|
FINDSEMI; 01189700
|
|
IF NOT IMAGEUSED THEN NEWDOCPAGE; 01189800
|
|
GO TO MORE; 01189900
|
|
END ELSE 01190000
|
|
IF RESULT = 3 THEN 01190100
|
|
DTOCT (ACCUM[1],3,PLACES,COUNT); 01190200
|
|
IF NOT IMAGEUSED THEN NEWDOCPAGE; 01190300
|
|
END; 01190400
|
|
FINDSEMI ; GO TO MORE ; 01190500
|
|
END; 01190600
|
|
MAXCOLL: SCEN ; IF RESULT = 3 THEN 01190700
|
|
BEGIN 01190800
|
|
DTOCT(ACCUM[1],3,MAXCOL,COUNT) ; 01190900
|
|
IF MAXCOL < 1 OR MAXCOL >3 THEN 01191000
|
|
BEGIN 01191100
|
|
MAXCOL ~ 3 ; FLOWERROR(21) ; 01191200
|
|
END ; 01191300
|
|
END ; 01191400
|
|
FINDSEMI ; GO TO MORE ; 01191500
|
|
PAGEINCL: SCEN ; IF RESULT ! 3 THEN PAGEINC ~ 1 ELSE 01191600
|
|
DTOCT(ACCUM[1],3,PAGEINC,COUNT) ; 01191700
|
|
SAVEPAGEINC ~PAGEINC ; GO TO MORE ; 01191800
|
|
LEFTL: 01191900
|
|
LEFTJUST ~ TRUE; 01192000
|
|
SCAN; IF SEMI THEN GO TO MORE; 01192100
|
|
IF Q = "2NO " THEN LEFTJUST ~ FALSE; 01192200
|
|
FINDSEMI; GO TO MORE; 01192300
|
|
NOGOODL: FLOWERROR(12); FINDSEMI ; GO TO MORE ; 01192400
|
|
COLL: 01192500
|
|
BEGIN 01192600
|
|
INTEGER BLOCKEXTENDER; 01192700
|
|
COLTOG ~ TRUE; 01192800
|
|
IF PUNCHPAGES THEN 01192900
|
|
BEGIN 01193000
|
|
FINDSEMI; 01193100
|
|
MOVEWORDS(WORDBUF[0],SAVEBUF[0],12); 01193200
|
|
SAVEBUF[12] ~ SAVESEQ; 01193300
|
|
MOVEWORDS(GLOBE[0],WORDBUF[0],9); 01193400
|
|
MOVEWORDS(NCR,WORDBUF[10],1); 01193500
|
|
MOVEWORDS(LCR,WORDBUF[11],1); 01193600
|
|
SAVESEQ ~ ISEQ; 01193700
|
|
END; 01193800
|
|
EMIT; 01193900
|
|
COLTOG ~ FALSE; 01194000
|
|
GO TO MORE; 01194100
|
|
END; 01194200
|
|
KI: END PRINTFLOW; 01194300
|
|
COMMENT RESTYPE-RESERVED FILL FOR FLOW 01194400
|
|
1 START 2 FINISH 3 QUIT 4 BEGIN 5 END 6 BOX 01194500
|
|
7 COMMENT 8 HEAD HEADING 9 TITLE 10 TRUE 01194600
|
|
11 FALSE 12 TO 13 GO 14 IF 16 SWITCH 17 ENTER 01194700
|
|
18 EXIT 19 PAGE 01194800
|
|
21 TERM TERMINATE 22 PAGEID 23 COL COLUMN 24 PAGEINC 25 MAXCOL 26 DATE 01194900
|
|
27 NOTE 33 DOES IS WAS 28 TABLE 29 CODE 30 BOXONLY 01195000
|
|
31 YES 01195100
|
|
32 NO 01195200
|
|
33 TEST ; 01195300
|
|
CONB ~ COLTOG ~ IMAGEUSED ~ LEFTJUST ~ BOXTYPE~ 01195400
|
|
CODETOG ~ TABLETOG ~ FALSE; 01195500
|
|
PUNCHFLOWTOG ~ FLOWWIDETOG ~ FALSE ; 01195510
|
|
MAXTIM~ NLINES ~LINTIM ~ COL ~ PARP ~ TEMP ~ I~MAXCOL~ 01195600
|
|
BEGINCOUNT ~ PAGELINES ~ TABLECOUNT ~ 0; 01195700
|
|
PFSEQ ~ 10 ; 01195710
|
|
FILLFLOW; 01195800
|
|
VOLUME ~ 0; 01195900
|
|
FILL SB[01,*]WITH" "," "," -------"," "," ";01196000
|
|
FILL SB[02,*]WITH" "," "," :ENTER:"," "," ";01196100
|
|
FILL SB[03,*]WITH" "," "," -------"," "," ";01196200
|
|
FILL SB[04,*]WITH" "," "," :EXIT :"," "," ";01196300
|
|
FILL SB[05,*]WITH" "," "," -------"," "," ";01196400
|
|
FILL SB[06,*]WITH"........","........","..... "," "," ";01196500
|
|
FILL SB[07,*]WITH" "," "," : "," "," ";01196600
|
|
FILL SB[08,*]WITH" "," "," : "," "," .";01196700
|
|
FILL SB[09,*]WITH" "," "," :...","........","........";01196800
|
|
FILL SB[10,*]WITH" ----","--------","--------","--------","---- ";01196900
|
|
FILL SB[11,*]WITH" * "," "," "," "," * ";01197000
|
|
FILL SB[11,*]WITH" * "," "," "," "," * ";01197100
|
|
FILL SB[12,*]WITH" "," "," : "," "," ";01197200
|
|
FILL SB[13,*]WITH" "," "," : "," "," ";01197300
|
|
FILL SB[14,*]WITH" "," "," :...","... "," ";01197400
|
|
FILL SB[15,*]WITH" "," "," : "," "," ";01197500
|
|
FILL SB[16,*]WITH" "," "," : "," "," ";01197600
|
|
FILL SB[17,*]WITH" "," "," : "," "," ";01197700
|
|
FILL SB[18,*]WITH" "," "," :...","... "," ";01197800
|
|
FILL SB[19,*]WITH" "," "," "," "," ";01197900
|
|
FILL SB[20,*]WITH" "," "," : "," "," ";01198000
|
|
FILL SB[21,*]WITH" "," "," : "," "," ";01198100
|
|
FILL SB[22,*]WITH" ......","........","..... "," "," ";01198200
|
|
FILL SB[23,*]WITH" "," "," : "," "," ";01198300
|
|
FILL SB[24,*]WITH" "," "," "," "," ";01198400
|
|
FILL SB[25,*]WITH" "," "," "," "," ";01198500
|
|
FILL SB[26,*]WITH" ......","........","..... "," "," ";01198600
|
|
FILL SB[27,*]WITH" "," "," : "," "," ";01198700
|
|
FILL SB[28,*]WITH" "," ",": : "," "," ";01198800
|
|
FILL SB[29,*]WITH" "," ",". . "," "," ";01198900
|
|
FILL SB[30,*]WITH" "," ",". ..","... "," ";01199000
|
|
FILL SB[31,*]WITH" "," ","..... "," "," ";01199100
|
|
FILL SB[32,*]WITH" "," "," : "," "," ";01199200
|
|
FILL SB[33,*]WITH" "," "," : "," "," ";01199300
|
|
FILL SB[34,*]WITH" * * ","* * * * ","* * : * ","* * * * ","* * ";01199400
|
|
FILL SB[35,*]WITH" **","********","********","********","** ";01199500
|
|
FILL SB[36,*]WITH" * "," "," "," "," * ";01199600
|
|
IF PUNCHPAGES THEN 01199700
|
|
IF INSTOG THEN FILL BLOCKBUFFER [*] WITH 01199800
|
|
"* PAGE ","INSERTPA","GE ",0,"* " ELSE 01199900
|
|
FILL BLOCKBUFFER[*] WITH 01200000
|
|
"* PAGE *"," ", " "; 01200100
|
|
MOREFLOW: 01200200
|
|
NLINES ~ 0; 01200300
|
|
PAGETOG ~ TRUE; 01200400
|
|
ZNOSKIP ~ FALSE; 01200500
|
|
PRINTXREF; 01200600
|
|
ZNOSKIP ~ TRUE; 01200700
|
|
FLOWTOG ~ TRUE; 01200800
|
|
TITLECHANGE ~ HEADCHANGE ~ FALSE; 01200900
|
|
FOR I ~ 0 STEP 1 UNTIL 125 DO STACK[I] ~0; 01201000
|
|
TOTAL ~ 0; 01201100
|
|
CLEAR(TITLEBUFF,14) ; CLEAR(HEADBUFF,14) ; 01201200
|
|
PAGEN ~0; 01201300
|
|
FLOWIND ~0 ; 01201400
|
|
GENER ~ G ~ 0; 01201500
|
|
FILL TYPEIND[*] WITH 10,11,10,34 ; 01201600
|
|
IF REMOTETOG THEN MAXCOL ~ 1 ELSE 01201700
|
|
MAXCOL ~ 3 ; COL ~ 1 ; 01201800
|
|
IF SIXLINES THEN MAXLINES ~ 54 ELSE 01201900
|
|
MAXLINES ~ 70 ; MAXTIM ~ 39 ; 01202000
|
|
FOR I ~ 0 STEP 1 UNTIL 75 DO CLEAR(IMAGE[I,*],14) ; 01202100
|
|
NLINES ~ 4 ; LINTIM ~0 ; 01202200
|
|
DOCOUTPUT~TRUE; 01202300
|
|
PAGETOG ~ TRUE; 01202400
|
|
ZNOSKIP~TRUE; 01202500
|
|
NEWVOL ~ TRUE; 01202600
|
|
ZPG(ZF); 01202700
|
|
PAGEQUAL ~ 0 ; 01202800
|
|
PAGETOG ~ FALSE; 01202900
|
|
NEWDOCPAGE; 01203000
|
|
FLOWFOUND ~ FALSE; 01203100
|
|
MAINSTART: DOCLISTFLAG ~ FALSE; 01203200
|
|
WHILE Q! "7COMME" DO SCAN ; 01203300
|
|
SCAN; IF Q.[18:24] ! "FLOW" THEN GO TO MAINSTART; 01203400
|
|
FLOWFOUND ~ TRUE; 01203500
|
|
IF DOCLISTOG THEN 01203600
|
|
IF ASMLTOG THEN 01203700
|
|
BEGIN 01203800
|
|
CLEAR(LISTBUFFER,14); 01203900
|
|
MOVEWORDS(ASMLBUFF[DEVICE,*],LISTBUFFER,10) ; 01204000
|
|
ZPL (0,2,LISTBUFFER); 01204100
|
|
END ELSE 01204200
|
|
BEGIN 01204300
|
|
CLEAR(LISTBUFFER,14) ; 01204400
|
|
MOVEWORDS(GLOBE,LISTBUFFER[2],9) ; 01204500
|
|
MOVEWORDS(SEQ,LISTBUFFER[11],1) ; 01204600
|
|
ZPL (0,2,LISTBUFFER); 01204700
|
|
END; 01204800
|
|
VOLUME ~ VOLUME + 1 ; 01204900
|
|
DOCLISTFLAG ~ TRUE; 01205000
|
|
PRINTFLOW ; 01205100
|
|
COMMENT ARRIVAL HERE MEANS NO QUIT OR FINISH CARD; 01205200
|
|
FLOWERROR(35); 01205300
|
|
PRINTPAGE; 01205400
|
|
PAGETOG ~ TRUE; 01205500
|
|
GO TO EOFCARD; 01205600
|
|
END BLOCK PRINTFLOW; 01205700
|
|
IF MERGETOG THEN 01205800
|
|
BEGIN 01205900
|
|
COMMENT DOCUMENT* 7 * * * * * * * * * * * * * * * * * * * * * * * * * 01206000
|
|
BLOCK TO MERGE OLD AND NEW DOCUMENTS. 01206100
|
|
* SKIP 01206200
|
|
COMPARES A NEW DOCUMENT WITH A PREVIOUS ONE TO DETERMINE WHICH 01206300
|
|
PAGES HAVE BEEN CHANGED. COMPARISON IS THROUGH DIRECTORIES 01206400
|
|
WHICH HAVE BEEN WRITTEN AT THE END OF THE TWO DOCUMENTS. 01206500
|
|
* END; 01206600
|
|
INTEGER LOCA; 01206700
|
|
INTEGER I,J,POINTER,LASTOLD,LASTNEW,DOCREV; 01206800
|
|
INTEGER TEMP; 01206900
|
|
INTEGER INXPOINT,CHGPOINT,K,VOL1; 01207000
|
|
INTEGER KJUNK; 01207100
|
|
BOOLEAN PAGEONE,DIFFERENT; 01207200
|
|
ALPHA ATEMP; 01207300
|
|
LABEL MORE,EOF,FINISHUP,NEWVOL; 01207400
|
|
LABEL PRINTPLACE; 01207500
|
|
LABEL STOPSHORT; 01207600
|
|
LABEL TCASE, TOVER; 01207700
|
|
LABEL FINI2; 01207800
|
|
FORMAT ZFORM(8I8); 01207900
|
|
FORMAT FORM1(3I8); 01208000
|
|
FORMAT FORM2(2I8); 01208100
|
|
FORMAT PAGEMARKER ("XXXXXXXX"); 01208200
|
|
FORMAT CHGHEAD (X26,"CHANGE INDEX"), 01208300
|
|
INXHEAD (X15," CURRENT REVISION INDEX",X15,A6); 01208400
|
|
FORMAT CHGTAB(X6,"PAGE",X8, "CONT PAGE",X8,"REVISION", 01208500
|
|
X6, "ACTION"), 01208600
|
|
INXTAB (X6,"PAGE",X13,"PRESENT REVISION", 01208700
|
|
X7, "NO. OF CONT. PAGES"); 01208800
|
|
ARRAY INDEX,RVCONT,ODR,NDR[0:1022,0:15]; 01208900
|
|
ARRAY ACTIONS [0:3]; 01209000
|
|
DEFINE ERRORCONDITION = 01209100
|
|
BEGIN 01209200
|
|
FORMAT GOOF ( X10,"ERROR CONDITION"); 01209300
|
|
WRITE(LINE,GOOF); 01209400
|
|
J~J+1; GO TO MORE; 01209500
|
|
END# ; 01209600
|
|
DEFINE ADDPAGE = 01209700
|
|
BEGIN 01209800
|
|
PAGEONE~FALSE; 01209900
|
|
ENTERCHANGE (NEWBUF[*],1); 01210000
|
|
ENTERINDEX; 01210100
|
|
IF NOT HOLDOFFTOG THEN 01210200
|
|
PRINTOUTP; 01210300
|
|
END#; 01210400
|
|
DEFINE CHANGEPAGE = 01210500
|
|
BEGIN 01210600
|
|
COMPARE; IF NOT DIFFERENT THEN NDR[J,0]~0 ELSE 01210700
|
|
BEGIN 01210800
|
|
ENTERCHANGE(NEWBUF[*],2); 01210900
|
|
IF NOT HOLDOFFTOG THEN 01211000
|
|
PRINTOUTP; 01211100
|
|
END; 01211200
|
|
END#; 01211300
|
|
DEFINE DELETEPAGE = ENTERCHANGE(ODR[I,*],3)#; 01211400
|
|
DEFINE PRINTCHANGES = 01211500
|
|
IF CHGPOINT > 0 THEN 01211600
|
|
BEGIN 01211700
|
|
ZLCOUNTMAX ~ IF SIXLINES THEN 56 ELSE 78; 01211800
|
|
IF DATOG THEN 01211900
|
|
BEGIN 01212000
|
|
DECIMALSTOG ~ TRUE ; PLACES~2; 01212100
|
|
PAGEN ~ 15; PAGEINC~1; 01212200
|
|
NEWDOCPAGE; 01212300
|
|
END ; 01212400
|
|
IF TITLETOG THEN ZPL(ZF,2,DOCTITLE ); 01212500
|
|
WRITE (WORDBUF[*],CHGHEAD); 01212600
|
|
ZPL(ZF,2 ,WORDBUF[*]); 01212700
|
|
WRITE (WORDBUF[*],CHGTAB); 01212800
|
|
ZPL(ZF,ZSP,WORDBUF[*]); 01212900
|
|
FOR K ~ 1 STEP 1 UNTIL CHGPOINT DO 01213000
|
|
BEGIN 01213100
|
|
IF ZLCOUNT } ZLCOUNTMAX THEN 01213200
|
|
BEGIN 01213300
|
|
ZPG(ZF); 01213400
|
|
IF DATOG THEN 01213500
|
|
BEGIN 01213600
|
|
PAGEN ~ PAGEN +1; 01213700
|
|
NEWDOCPAGE; 01213800
|
|
ZPL(ZF,2,DOCTITLE); 01213900
|
|
END ; 01214000
|
|
ZPL(ZF,ZSP,WORDBUF[*]) ; 01214100
|
|
END ; 01214200
|
|
ZPL(ZF,ZSP,INDEX[K,*]); 01214300
|
|
END ; 01214400
|
|
ZLCOUNTMAX ~ 100; 01214500
|
|
ZPG (ZF); 01214600
|
|
END #; 01214700
|
|
DEFINE WRINDEX = 01214800
|
|
IF INXPOINT > 0 THEN 01214900
|
|
BEGIN 01215000
|
|
ZLCOUNTMAX ~ IF SIXLINES THEN 56 ELSE 78; 01215100
|
|
IF DATOG THEN 01215200
|
|
BEGIN 01215300
|
|
PAGEN ~ 2 ; PAGEINC ~ 1; 01215400
|
|
DECIMALSTOG ~ TRUE; PLACES ~ 1; 01215500
|
|
NEWDOCPAGE; 01215600
|
|
END ; 01215700
|
|
IF TITLETOG THEN ZPL(ZF,2,DOCTITLE ); 01215800
|
|
MOVECHARS (REVISIONS [DOCREV],ATEMP,2,2,6); 01215900
|
|
WRITE (WORDBUF[*],INXHEAD,ATEMP); 01216000
|
|
ZPL(ZF,2 ,WORDBUF[*]); 01216100
|
|
WRITE (WORDBUF[*],INXTAB); 01216200
|
|
ZPL(ZF,ZSP,WORDBUF[*]); 01216300
|
|
FOR K~1 STEP 1 UNTIL INXPOINT DO 01216400
|
|
BEGIN 01216500
|
|
IF ZLCOUNT } ZLCOUNTMAX THEN 01216600
|
|
BEGIN 01216700
|
|
ZPG(ZF); 01216800
|
|
IF DATOG THEN 01216900
|
|
BEGIN 01217000
|
|
PAGEN ~ PAGEN +1; 01217100
|
|
NEWDOCPAGE; 01217200
|
|
ZPL(ZF,2,DOCTITLE); 01217300
|
|
END ; 01217400
|
|
ZPL(ZF,ZSP,WORDBUF[*]); 01217500
|
|
END ; 01217600
|
|
ZPL(ZF,ZSP,RVCONT[K,*]); 01217700
|
|
END ; 01217800
|
|
ZLCOUNTMAX ~ 100; 01217900
|
|
ZPG (ZF); 01218000
|
|
END #; 01218100
|
|
COMMENT DOCUMENT* 31* * * * * * * * * * * * * * * * * * * * * * * * *; 01218200
|
|
BOOLEAN PROCEDURE CANFIND; 01218300
|
|
COMMENT TRUE IF PAGE FROM NEWDOC IS FOUND IN OLDDOC DIRECTORY ; 01218400
|
|
BEGIN 01218500
|
|
INTEGER K; LABEL L; BOOLEAN B; 01218600
|
|
B~ FALSE; 01218700
|
|
IF NDR[J-1,0] ! 5 THEN 01218800
|
|
IF NDR[J-1,1] = NEWBUF [1] THEN GO TO L; 01218900
|
|
FOR K~ I+1 STEP 1 UNTIL LASTOLD DO 01219000
|
|
BEGIN 01219100
|
|
IF ODR[K,6] > VOL1 THEN GO TO L; 01219200
|
|
IF ODR[K,1] = NEWBUF[1] THEN 01219300
|
|
IF EQUAL(NEWBUF[8],ODR[K,8],24) THEN 01219400
|
|
BEGIN 01219500
|
|
POINTER ~ K; 01219600
|
|
B ~ TRUE; 01219700
|
|
GO TO L; 01219800
|
|
END; 01219900
|
|
END ; 01220000
|
|
L: 01220100
|
|
CANFIND~B; 01220200
|
|
END CANFIND; 01220300
|
|
PROCEDURE COMPARE; 01220400
|
|
BEGIN 01220500
|
|
COMMENT FOR FUTURE USE - COULD ADD A CHARACTER COMPARE ; 01220600
|
|
DIFFERENT ~TRUE; 01220700
|
|
END COMPARE; 01220800
|
|
COMMENT DOCUMENT* 31* * * * * * * * * * * * * * * * * * * * * * * * *; 01220900
|
|
PROCEDURE PRINTOUTP; 01221000
|
|
COMMENT PRINTS PAGE FROM NEWDOC GIVEN BY CURRENT DIRECTORY ENTRY ; 01221100
|
|
BEGIN 01221200
|
|
INTEGER K,KJUNK; 01221300
|
|
LABEL EOF; 01221400
|
|
KJUNK~ NEWBUF[4] -1; 01221500
|
|
K ~ NEWBUF[3]; 01221600
|
|
IF OLDONLYTOG THEN READ(OLDDOC[K],15,WORDBUF[*]) ELSE 01221700
|
|
READ (NEWDOC[K],15,WORDBUF[*]); 01221800
|
|
IF NEWBUF[7] = 1 THEN 01221900
|
|
IF NOT PRINTSELECTOG THEN 01222000
|
|
MOVECHARS (REVISIONS [DOCREV],WORDBUF[1],6,6,2); 01222100
|
|
ZPL (ZF,1,WORDBUF[*]); 01222200
|
|
IF OLDONLYTOG THEN READ(OLDDOC ,15,WORDBUF[*]) ELSE 01222300
|
|
READ (NEWDOC,15,WORDBUF[*]); 01222400
|
|
FOR K ~ K+ 1 STEP 1 UNTIL KJUNK DO 01222500
|
|
BEGIN 01222600
|
|
IF OLDONLYTOG THEN 01222700
|
|
READ(OLDDOC,15,WORDBUF[*])[EOF] ELSE 01222800
|
|
READ (NEWDOC,15,WORDBUF[*]) [EOF]; 01222900
|
|
ZPL (ZF,1,WORDBUF[*]); 01223000
|
|
END; 01223100
|
|
ZPG (ZF); 01223200
|
|
EOF: END PRINTOUTP; 01223300
|
|
COMMENT DOCUMENT* 33* * * * * * * * * * * * * * * * * * * * * * * * *; 01223400
|
|
PROCEDURE ENTERCHANGE (A,TYPE); 01223500
|
|
VALUE TYPE; 01223600
|
|
ARRAY A[*]; INTEGER TYPE; 01223700
|
|
COMMENT PUTS CHANGE IN CHANGE INDEX AND UPDATES PAGE REVISION ; 01223800
|
|
BEGIN 01223900
|
|
INTEGER K; 01224000
|
|
COMMENT TYPE 1 = ADDITION, 2= CHANGE, 3 = DELETION ; 01224100
|
|
CLEAR (WORDBUF[0],14); 01224200
|
|
IF TYPE = 3 THEN K~ OLDBUF [5] ELSE 01224300
|
|
NDR[J,5] ~ NEWBUF[5] ~ K~ DOCREV; 01224400
|
|
MOVEWORDS (A[10],WORDBUF[2],1); 01224500
|
|
MOVEWORDS ( REVISIONS[K],WORDBUF[4],1); 01224600
|
|
MOVEWORDS (A[8],WORDBUF[0],2); 01224700
|
|
MOVEWORDS (ACTIONS [TYPE],WORDBUF[6],1); 01224800
|
|
CHGPOINT ~ CHGPOINT +1; 01224900
|
|
WRITE (INDEX[CHGPOINT,*],15,WORDBUF[*]); 01225000
|
|
IF DEBEATLETOG THEN WRITE(LINE,15,WORDBUF[*]); 01225100
|
|
END ENTERCHANGE; 01225200
|
|
COMMENT DOCUMENT* 31 * * * * * * * * * * * * * * * * * * * * * * * * *; 01225300
|
|
PROCEDURE ENTERINDEX; 01225400
|
|
COMMENT ENTERS PAGE IN CURRENT REVISION INDEX ; 01225500
|
|
BEGIN 01225600
|
|
LABEL L; 01225700
|
|
IF J < LASTNEW THEN IF NEWBUF[6] = NDR[J+1,6] THEN 01225800
|
|
IF NEWBUF[1] = NDR [J+1,1] THEN GO TO L; 01225900
|
|
IF NEWBUF[5] ! DOCREV THEN NEWBUF[5] ~ OLDBUF[5]; 01226000
|
|
CLEAR (WORDBUF[0],14); 01226100
|
|
MOVEWORDS (NEWBUF[8],WORDBUF[0],2); 01226200
|
|
MOVEWORDS (NEWBUF[10],WORDBUF[6],1); 01226300
|
|
MOVEWORDS (REVISIONS [NEWBUF[5]],WORDBUF[3],1); 01226400
|
|
INXPOINT ~ INXPOINT +1; 01226500
|
|
WRITE ( RVCONT [INXPOINT,*],15,WORDBUF[*]); 01226600
|
|
IF DEBEATLETOG THEN WRITE(LINE,15,WORDBUF[*]); 01226700
|
|
IF PAGEONE THEN GO TO L; 01226800
|
|
FOR K ~ J STEP -1 WHILE NDR[K,1] = NEWBUF [1] DO 01226900
|
|
BEGIN 01227000
|
|
NDR [K,5] ~ NEWBUF [5]; 01227100
|
|
IF NEWBUF[7] = 1 THEN 01227200
|
|
BEGIN 01227300
|
|
READ (NEWDOC[NDR[K,3]],15,WORDBUF[*]); 01227400
|
|
MOVECHARS ( REVISIONS [NEWBUF[5]],WORDBUF[1],6,6,2); 01227500
|
|
WRITE (NEWDOC [NDR[K,3]],15,WORDBUF[*]); 01227600
|
|
END; 01227700
|
|
END; 01227800
|
|
L: END ENTERINDEX; 01227900
|
|
CLOSE(CARDS,RELEASE); 01228000
|
|
FILL ACTIONS[*] WITH 0, 01228100
|
|
" ADD "," CHANGE "," DELETE "; 01228200
|
|
IF DATOG THEN TITLETOG ~ TRUE; 01228300
|
|
READ (OLDDOC,FORM1,LOCA,LASTOLD,DOCREV); 01228400
|
|
IF DEBEATLETOG THEN WRITE(LINE,FORM1,LOCA,LASTOLD,DOCREV);01228500
|
|
READ (OLDDOC [LOCA +1],15,ODR[1,*]); 01228600
|
|
IF DEBEATLETOG THEN WRITE(LINE,15,ODR[1,*]); 01228700
|
|
READ (OLDDOC,15,WORDBUF[*]); 01228800
|
|
FOR I ~ 2 STEP 1 UNTIL LASTOLD DO 01228900
|
|
BEGIN 01229000
|
|
READ (OLDDOC,15,ODR [I,*]); 01229100
|
|
IF DEBEATLETOG THEN WRITE(LINE,15,ODR[I,*]); 01229200
|
|
END; 01229300
|
|
IF DIRTOG THEN 01229400
|
|
BEGIN 01229500
|
|
FORMAT DIRHEAD(X28,"DIRECTORY"); 01229600
|
|
SWITCH FORMAT DIRTAB ~ (/), 01229700
|
|
(X10," COLUMN 1 IS 1 IF PAGE IS PATCHED"), 01229800
|
|
(X10, " COLUMN 2 IS PAGE"), 01229900
|
|
(X10, " COLUMN 3 IS CONTINUATION PAGE"), 01230000
|
|
(X10, " COLUMN 4 IS RECORD NUMBER OF FIRST LINE"), 01230100
|
|
(X10, " COLUMN 5 IS RECORD NUMBER OF LAST LINE"), 01230200
|
|
(X10, " COLUMN 6 IS REVISION"), 01230300
|
|
(X10, " COLUMN 7 IS SECTION"), 01230400
|
|
(X5, " REST OF LINE IS FORMAT INFORMATION"); 01230500
|
|
WRITE (WORDBUF[*],DIRHEAD); 01230600
|
|
ZPL(ZF,2 ,WORDBUF[*]); 01230700
|
|
FOR I~2 STEP 1 UNTIL LASTOLD DO 01230800
|
|
BEGIN 01230900
|
|
WRITE (WORDBUF[*],ZFORM,FOR K~ 0 STEP 1 UNTIL 7 DO 01231000
|
|
ODR[I,K]); 01231100
|
|
MOVEWORDS (ODR[I,8],WORDBUF[8],3); 01231200
|
|
ZPL (ZF,1, WORDBUF[*]); 01231300
|
|
END; 01231400
|
|
FOR I ~ 0 STEP 1 UNTIL 8 DO 01231500
|
|
BEGIN 01231600
|
|
WRITE (WORDBUF[*],DIRTAB[I]); 01231700
|
|
ZPL (ZF,1,WORDBUF[*]); 01231800
|
|
END; 01231900
|
|
ZPG(ZF); 01232000
|
|
IF DIRONLYTOG THEN GO TO STOPSHORT; 01232100
|
|
END; 01232200
|
|
ZLCOUNTMAX ~ 100; 01232300
|
|
IF OLDONLYTOG THEN GO TO PRINTPLACE; 01232400
|
|
READ (NEWDOC,FORM1, LOCA, LASTNEW, TEMP); 01232500
|
|
DOCREV ~ IF TEMP > 1 THEN TEMP ELSE DOCREV +1; 01232600
|
|
IF DEBEATLETOG THEN WRITE(LINE,FORM2,LOCA,LASTNEW); 01232700
|
|
READ (NEWDOC[LOCA+1],15,NDR[1,*]); 01232800
|
|
READ(NEWDOC,15,WORDBUF[*]); 01232900
|
|
IF DEBEATLETOG THEN WRITE(LINE,15,NDR[1,*]); 01233000
|
|
FOR I~2 STEP 1 UNTIL LASTNEW DO 01233100
|
|
BEGIN 01233200
|
|
READ (NEWDOC,15,NDR[I,*]); 01233300
|
|
IF DEBEATLETOG THEN WRITE(LINE,15,NDR[I,*]); 01233400
|
|
END; 01233500
|
|
I~J~2; 01233600
|
|
VOL1~1; 01233700
|
|
PRINTOG~FALSE; 01233800
|
|
PAGEONE~TRUE; 01233900
|
|
INXPOINT ~ CHGPOINT ~ 0; 01234000
|
|
IJUNK ~I; KJUNK ~ J; 01234100
|
|
COMMENT ODR OR NDR[0] = 5 MEANS END OF SECTION; 01234200
|
|
WHILE ODR[IJUNK,0] ! 5 DO IJUNK ~ IJUNK +1; 01234300
|
|
WHILE NDR[KJUNK,0] ! 5 DO KJUNK ~ KJUNK +1; 01234400
|
|
DOCPATCHED ~ (NDR[KJUNK,1] = 1) ; 01234500
|
|
DOCREV ~ IF DOCPATCHED THEN ODR[IJUNK,2] +1 ELSE 01234600
|
|
ODR[IJUNK,2] ; 01234700
|
|
NDR[KJUNK,2] ~ DOCREV; 01234800
|
|
MORE : 01234900
|
|
IF J > LASTNEW THEN 01235000
|
|
BEGIN 01235100
|
|
IF I { LASTOLD THEN 01235200
|
|
FOR I ~ I STEP 1 UNTIL LASTOLD DO 01235300
|
|
IF ODR[I,0] { 1 THEN DELETEPAGE; 01235400
|
|
GO TO FINISHUP; 01235500
|
|
END; 01235600
|
|
IF I > LASTOLD THEN 01235700
|
|
BEGIN 01235800
|
|
FOR J~J STEP 1 UNTIL LASTNEW DO 01235900
|
|
BEGIN 01236000
|
|
MOVEWORDS (NDR[J,0],NEWBUF[0],15); 01236100
|
|
IF NEWBUF[6] ! VOL1 THEN GO TO NEWVOL; 01236200
|
|
IF NEWBUF[0] > 1 THEN GO TO TCASE; 01236300
|
|
ADDPAGE; 01236400
|
|
END; 01236500
|
|
GO TO FINISHUP; 01236600
|
|
END; 01236700
|
|
IF NDR[J,0] = 5 THEN 01236800
|
|
BEGIN 01236900
|
|
I ~ I+1; J~J+1; GO TO MORE; 01237000
|
|
END ; 01237100
|
|
COMMENT WHEN WE GET HERE BOTH DIRECTORIES STILL HAVE ENTRIES; 01237200
|
|
MOVEWORDS (ODR[I,0],OLDBUF[0],15); 01237300
|
|
MOVEWORDS (NDR[J,0],NEWBUF[0],15); 01237400
|
|
IF NEWBUF[6] ! VOL1 THEN GO TO NEWVOL; 01237500
|
|
COMMENT ARRAY WORD ONE IS PAGE NUMBER; 01237600
|
|
IF OLDBUF [1] ! NEWBUF[1] THEN 01237700
|
|
BEGIN 01237800
|
|
IF CANFIND THEN 01237900
|
|
BEGIN 01238000
|
|
FOR I ~ I STEP 1 UNTIL POINTER -1 DO 01238100
|
|
IF ODR[I,0] ! 3 THEN DELETEPAGE; 01238200
|
|
I~POINTER; 01238300
|
|
END ELSE 01238400
|
|
BEGIN 01238500
|
|
IF NEWBUF [0] ! 3 THEN ADDPAGE ; 01238600
|
|
J~J+1; 01238700
|
|
END; 01238800
|
|
GO TO MORE; 01238900
|
|
END; 01239000
|
|
COMMENT ARRAY WORD TWO HOLDS CONTIN PAGE NUMBER; 01239100
|
|
IF OLDBUF[2] ! NEWBUF[2] THEN ERRORCONDITION; 01239200
|
|
COMMENT ARRAY WORD 0 TELLS IF PATCHED PAGE; 01239300
|
|
IF NEWBUF[0] =1 THEN CHANGEPAGE ELSE 01239400
|
|
% TEST BLANK OUT CASE 01239500
|
|
IF NEWBUF[0] = 0 AND NEWBUF[4]- NEWBUF[3] ! OLDBUF[4]- 01239600
|
|
OLDBUF[3] THEN 01239700
|
|
BEGIN 01239800
|
|
CHANGEPAGE; 01239900
|
|
NEWBUF[0] ~ 1; 01240000
|
|
END ; 01240100
|
|
IF NEWBUF [0] { 1 THEN GO TO TOVER; 01240200
|
|
IF NEWBUF[0] = 3 THEN 01240300
|
|
BEGIN 01240400
|
|
COMMENT NEWBUF[0] = 3 MEANS DOCUMENT CONTROLS XREF; 01240500
|
|
PAGEONE ~ FALSE; 01240600
|
|
I~I+1; J~J+1; 01240700
|
|
GO TO MORE; 01240800
|
|
END; 01240900
|
|
IF NOT DOCPATCHED THEN GO TO TOVER ; 01241000
|
|
TCASE: 01241100
|
|
COMMENT NEWBUF[0] = 2 MEANS TABLE OF CONTENTS; 01241200
|
|
NDR[J,5] ~ NEWBUF[5] ~ K ~ DOCREV; 01241300
|
|
IF NOT HOLDOFFTOG THEN 01241400
|
|
PRINTOUTP; 01241500
|
|
TOVER: 01241600
|
|
ENTERINDEX; 01241700
|
|
PAGEONE~FALSE; 01241800
|
|
I~I+1; 01241900
|
|
J~J+1; 01242000
|
|
GO TO MORE; 01242100
|
|
NEWVOL: 01242200
|
|
PAGEONE~TRUE; 01242300
|
|
IF TITLETOG THEN 01242400
|
|
READ (NEWDOC[NDR[J-2,3] +1],15,DOCTITLE[*]) [EOF]; 01242500
|
|
PRINTCHANGES ; 01242600
|
|
WRINDEX ; 01242700
|
|
INXPOINT ~ CHGPOINT ~ 0; 01242800
|
|
IF NDR[J,0] = 5 THEN J~J+1; 01242900
|
|
IF ODR[I,0] = 5 THEN I~I+1; 01243000
|
|
01243100
|
|
01243200
|
|
VOL1 ~ NDR[J,6] ; 01243300
|
|
IJUNK ~I; KJUNK ~ J; 01243400
|
|
WHILE ODR[IJUNK,0] ! 5 DO IF IJUNK < LASTOLD THEN 01243500
|
|
IJUNK ~IJUNK + 1 ELSE GO TO FINI2; 01243600
|
|
WHILE NDR[KJUNK,0] ! 5 DO IF KJUNK < LASTNEW THEN 01243700
|
|
KJUNK ~ KJUNK +1 ELSE GO TO FINI2; 01243800
|
|
DOCPATCHED ~ (NDR[KJUNK,1] = 1) ; 01243900
|
|
DOCREV ~ IF DOCPATCHED THEN ODR[IJUNK,2] +1 ELSE 01244000
|
|
ODR[IJUNK,2] ; 01244100
|
|
NDR[KJUNK,2] ~ DOCREV; 01244200
|
|
GO TO MORE; 01244300
|
|
PRINTPLACE: 01244400
|
|
IF NOT PRINTALLTOG THEN 01244500
|
|
BEGIN 01244600
|
|
KJUNK ~ IF OLDONLYTOG THEN LASTOLD ELSE LASTNEW; 01244700
|
|
FOR I ~ 2 STEP 1 UNTIL KJUNK DO 01244800
|
|
BEGIN 01244900
|
|
IF OLDONLYTOG THEN MOVEWORDS(ODR[I,0],NEWBUF[0],15) ELSE 01245000
|
|
MOVEWORDS (NDR[I,0],NEWBUF[0],15); 01245100
|
|
FOR K ~ 1 STEP 1 UNTIL PAGEPOINT DO 01245200
|
|
IF PAGES[K] = NEWBUF[1] THEN PRINTOUTP; 01245300
|
|
END; 01245400
|
|
END; 01245500
|
|
IF OLDONLYTOG THEN GO TO STOPSHORT; 01245600
|
|
HOLDOFFTOG ~ FALSE; 01245700
|
|
EOF: 01245800
|
|
FINISHUP: 01245900
|
|
IF HOLDOFFTOG THEN GO TO PRINTPLACE; 01246000
|
|
ZLCOUNTMAX ~ IF SIXLINES THEN 60 ELSE 80; 01246100
|
|
IF TITLETOG THEN 01246200
|
|
READ (NEWDOC[NDR[J-2,3] +1],15,DOCTITLE[*]) [EOF] ; 01246300
|
|
PRINTCHANGES; 01246400
|
|
WRINDEX; 01246500
|
|
FINI2: 01246600
|
|
WRITE (NEWDOC[0],FORM1,LOCA,LASTNEW,DOCREV); 01246700
|
|
WRITE (NEWDOC[LOCA +1],15,NDR[1,*]); 01246800
|
|
FOR I ~ 2 STEP 1 UNTIL LASTNEW DO 01246900
|
|
WRITE (NEWDOC,15,NDR[I,*]); 01247000
|
|
REWIND (NEWDOC); 01247100
|
|
STOPSHORT: 01247200
|
|
IF PRINTALLTOG THEN PRINTBACKUP ; 01247300
|
|
REWIND (OLDDOC); 01247400
|
|
GO TO EOPROG; 01247500
|
|
END BLOCK MERGE ; 01247600
|
|
IF MAKEMULTOG THEN 01247700
|
|
BEGIN 01247800
|
|
COMMENT DOCUMENT* 7 * * * * * * * * * * * * * * * * * * * * * * * * * 01247900
|
|
BLOCK TO MAKE MULTIFILES. 01248000
|
|
* SKIP 01248100
|
|
THIS BLOCK CREATES MULTIFILE TAPE OR DISK FILES USING INPUT 01248200
|
|
FILES DESCRIBED BY DATA CARDS. 01248300
|
|
* END; 01248400
|
|
ARRAY A,B[0:15],AA[0:100,0:15] ; 01248500
|
|
ARRAY ZIPPER[0:15] ; 01248600
|
|
LABEL RD,EOF,RDD,EOFF ; 01248700
|
|
LABEL LDIF; 01248800
|
|
LABEL LOOP; 01248900
|
|
INTEGER I,J,K,N,SIND,SOUT,SEQ,COUNTLOC; 01249000
|
|
INTEGER TSIND; 01249100
|
|
SWITCH FILE SWIN~CARD,DISK,TAPE,TAP; 01249200
|
|
SWITCH FILE SWOUT ~ PUNCH,NEWDISK,NEWTAPE ; 01249300
|
|
FORMAT TEMPFORM ("FIRST FILE NAMES NOT THE SAME"); 01249400
|
|
FILE BACKUPDIR DISK SERIAL [20:50] "MULFILE" "DIRECT" 01249500
|
|
(1,10,150); 01249600
|
|
DEFINE SCON = SCAN; IF FINDCHAR(NCR,"%") THEN ENDCARDA ~ TRUE #; 01249700
|
|
COMMENT DOCUMENT* 31* * * * * * * * * * * * * * * * * * * * * * * * *; 01249800
|
|
PROCEDURE BUILDID; 01249900
|
|
COMMENT BUILDS ONE WORD OF FILE ID ; 01250000
|
|
BEGIN 01250100
|
|
LABEL LL1,LL2; 01250200
|
|
INTEGER FIDCOUNT; 01250300
|
|
CLEAR(COBACCUM[1],0); 01250400
|
|
SETCHAR(COBACCUM [1],0,"0"); 01250500
|
|
FIDCOUNT~ 0; 01250600
|
|
IF FINDCHAR(NCR,"%") THEN 01250700
|
|
BEGIN 01250800
|
|
ENDCARDA ~ TRUE; 01250900
|
|
GO TO LL2; 01251000
|
|
END; 01251100
|
|
SCON; 01251200
|
|
IF RESULT = 2 THEN ERROR(31); 01251300
|
|
IF COUNT > 7 THEN COUNT ~ 7; 01251400
|
|
MOVECHARS(ACCUM[1],COBACCUM[1],3,1,COUNT); 01251500
|
|
COMMENT COBACCUM IS ONLY TEMPORARY BUFFER; 01251600
|
|
FIDCOUNT ~ COUNT; 01251700
|
|
LL1: 01251800
|
|
IF ENDCARDA THEN GO TO LL2; 01251900
|
|
SCON; 01252000
|
|
IF Q = "1, " OR Q = "1/ " THEN 01252100
|
|
GO TO LL2; 01252200
|
|
IF FIDCOUNT < 7 THEN 01252300
|
|
BEGIN 01252400
|
|
IF COUNT > 7-FIDCOUNT THEN COUNT ~ 7 - FIDCOUNT; 01252500
|
|
MOVECHARS(ACCUM[1],COBACCUM[1],3,FIDCOUNT +1,COUNT); 01252600
|
|
FIDCOUNT ~ FIDCOUNT + COUNT; 01252700
|
|
END; 01252800
|
|
GO TO LL1; 01252900
|
|
LL2: 01253000
|
|
END BUILDID; 01253100
|
|
DEFINE BUILDFILEIDS = 01253200
|
|
BEGIN 01253300
|
|
BUILDID; IF Q = "1, " THEN 01253400
|
|
BEGIN 01253500
|
|
AA[I,0] ~ 0; 01253600
|
|
AA[I,1] ~ COBACCUM[1]; 01253700
|
|
END ELSE 01253800
|
|
IF Q = "1/ " THEN 01253900
|
|
BEGIN 01254000
|
|
AA [I,0] ~ COBACCUM[1]; 01254100
|
|
BUILDID; 01254200
|
|
IF Q ! "1, " THEN 01254300
|
|
BEGIN 01254400
|
|
ZPL(0,1,GLOBE[*]); 01254500
|
|
DOCERROR(39); 01254600
|
|
GO TO LOOP; 01254700
|
|
END; 01254800
|
|
AA [I,1] ~ COBACCUM[1]; 01254900
|
|
END ELSE 01255000
|
|
BEGIN 01255100
|
|
ZPL(0,1,GLOBE[*]); 01255200
|
|
DOCERROR(37); 01255300
|
|
GO TO LOOP; 01255400
|
|
END; 01255500
|
|
IF ENDCARDA THEN 01255600
|
|
BEGIN 01255700
|
|
ZPL(0,1,GLOBE[*]); 01255800
|
|
DOCERROR(37); GO TO LOOP; 01255900
|
|
END; 01256000
|
|
BUILDID; IF Q = "1, " OR ENDCARDA THEN 01256100
|
|
BEGIN 01256200
|
|
AA[I,2] ~ 0; 01256300
|
|
AA[I,3] ~ COBACCUM[1]; 01256400
|
|
END ELSE 01256500
|
|
BEGIN 01256600
|
|
AA [I,2] ~ COBACCUM[1]; 01256700
|
|
BUILDID; 01256800
|
|
AA[I,3] ~ COBACCUM[1]; 01256900
|
|
END; 01257000
|
|
END#; 01257100
|
|
IF DISKINTOG THEN SIND ~ 1 ELSE SIND ~ 2 ; 01257200
|
|
IF DISKOUTOG THEN SOUT ~1 ELSE SOUT ~ 2 ; 01257300
|
|
TSIND ~ 2 ; 01257400
|
|
FILL ZIPPER[*] WITH "CC REMOV","E ",0,0," ; END ."; 01257500
|
|
CLEAR(A,14) ; 01257600
|
|
I ~1; 01257700
|
|
IF DIRTOG THEN 01257800
|
|
BEGIN 01257900
|
|
CLEAR(AA[1,0],14); 01258000
|
|
FILL AA[1,*] WITH "MULFILE","DIRECT ","0000000","DIRECTO";01258100
|
|
AA[1,6] ~1; 01258200
|
|
ZIPPER[2] ~AA[1,0]; 01258300
|
|
ZIPPER[3] ~ AA[1,1]; 01258400
|
|
SETCHAR(ZIPPER[2],0," "); 01258500
|
|
SETCHAR(ZIPPER[3],0,"/"); 01258600
|
|
ZIP WITH ZIPPER[*]; 01258700
|
|
WRITE (BACKUPDIR,10,AA[1,*]); 01258800
|
|
I~2; 01258900
|
|
END; 01259000
|
|
LOOP: 01259100
|
|
CLEAR(B[0],14); 01259200
|
|
CLEAR(AA[I,0],14); 01259300
|
|
READ(CARD,10,GLOBE[*])[EOF]; 01259400
|
|
ENDCARDA ~ FALSE; 01259500
|
|
LCR ~ MKABS(GLOBE[W]); NCR ~ LCR-W; 01259600
|
|
FIXCOL73(LCR); 01259700
|
|
BUILDFILEIDS; 01259800
|
|
IF ALLONE THEN 01259900
|
|
BEGIN 01260000
|
|
IF DISKINTOG THEN AA[I,6] ~ 1 ELSE AA[I,6] ~2 ; 01260100
|
|
END ELSE 01260200
|
|
BEGIN 01260300
|
|
IF ENDCARDA THEN 01260400
|
|
BEGIN 01260500
|
|
ZPL(0,1,GLOBE[*]); 01260600
|
|
DOCERROR(38); 01260700
|
|
GO TO LOOP; 01260800
|
|
END; 01260900
|
|
SCAN; 01261000
|
|
IF Q ="4TAPE " THEN AA[I,6]~2 ELSE 01261100
|
|
IF Q ="4DISK " OR Q = "4DISC " THEN AA[I,6] ~1 ELSE 01261200
|
|
BEGIN 01261300
|
|
DOCERROR(38); 01261400
|
|
GO TO LOOP; 01261500
|
|
END; 01261600
|
|
END; 01261700
|
|
FOR K ~ 0,1,2,3 DO SETCHAR(AA[I,K],0,"0") ; 01261800
|
|
IF NOT DISKOUTOG THEN 01261900
|
|
IF (DIRTOG AND (AA[2,2] ! AA[I,2])) 01262000
|
|
OR (NOT DIRTOG AND (AA[1,2] ! AA [I,2])) THEN 01262100
|
|
BEGIN 01262200
|
|
ZPL(0,1,GLOBE[*]); 01262300
|
|
DOCERROR(40); 01262400
|
|
GO TO LOOP; 01262500
|
|
END; 01262600
|
|
IF DIRTOG THEN WRITE (BACKUPDIR,10,AA[I,*]); 01262700
|
|
I~I+1; 01262800
|
|
IF I { 100 THEN GO TO LOOP; 01262900
|
|
EOF: 01263000
|
|
IF DIRTOG THEN 01263100
|
|
BEGIN 01263200
|
|
AA[1,2]~AA[2,2]; %% REPLACE WITH MOVECHARS 01263300
|
|
WRITE (BACKUPDIR[0],10,AA[1,*]); 01263400
|
|
END; 01263500
|
|
N ~ I - 1 ; 01263600
|
|
LOCK (BACKUPDIR,SAVE); 01263700
|
|
CLOSE (CARD,RELEASE) ; 01263800
|
|
FOR I ~1 STEP 1 UNTIL N DO 01263900
|
|
BEGIN 01264000
|
|
IF AA[I,0] = 0 AND AA[I,1] =0 THEN J ~ 0 ELSE 01264100
|
|
BEGIN 01264200
|
|
IF DEBUG THEN WRITE(LINE[DBL],15,AA[I,*]); 01264300
|
|
IF SIND > 1 THEN CLOSE(SWIN[SIND],RELEASE) ; 01264400
|
|
SIND ~ IF AA[I,6] = 2 THEN TSIND ELSE 01264500
|
|
AA[I,6]; 01264600
|
|
J ~ SIND ; FILL SWIN[J] WITH AA[I,0],AA[I,1] ; 01264700
|
|
END ; 01264800
|
|
FILL SWOUT[SOUT] WITH AA[I,2],AA[I,3] ; 01264900
|
|
SEQ ~COUNT ~ 0 ; 01265000
|
|
IF DISKOUTOG THEN 01265100
|
|
BEGIN 01265200
|
|
ZIPPER[2] ~ AA[I,2] ; ZIPPER[3] ~ AA[I,3] ; 01265300
|
|
SETCHAR(ZIPPER[2],0," "); 01265400
|
|
SETCHAR(ZIPPER[3],0,"/"); 01265500
|
|
ZIP WITH ZIPPER[*] ; 01265600
|
|
END ; 01265700
|
|
IF LISTOG THEN WRITE(LINE[PAGE]); 01265800
|
|
DO BEGIN 01265900
|
|
READ(SWIN[J],10,A[*])[EOFF] ; 01266000
|
|
SEQ~ SEQ +1000; COUNTLOC ~ COUNTLOC +1; 01266100
|
|
IF J = 0 THEN OCTTODEC(SEQ,A[9]) ; 01266200
|
|
IF LISTOG THEN WRITE(LINE[DBL],15,A[*]) ; 01266300
|
|
WRITE(SWOUT[SOUT],10,A[*]); 01266400
|
|
END UNTIL FALSE ; 01266500
|
|
EOFF: 01266600
|
|
OCTTODEC(COUNTLOC,AA[I,5]); 01266700
|
|
IF PUNCHTOG THEN 01266800
|
|
BEGIN 01266900
|
|
CLEAR(B,14) ; 01267000
|
|
B[0] ~ AA[I,2] ; B[1] ~ AA[I,3] ; 01267100
|
|
B[2] ~ AA[I,2] ; B[3] ~ AA[I,3] ; 01267200
|
|
B[5] ~ AA[I,5] ; 01267300
|
|
WRITE(PUNCH,10,B[*]) ; 01267400
|
|
END ; 01267500
|
|
LDIF: 01267600
|
|
CLOSE(SWIN[J],*); 01267700
|
|
IF SIND >1 THEN 01267800
|
|
TSIND ~ IF SIND = 2 THEN 3 ELSE 2; 01267900
|
|
SIND ~ IF SIND = 2 THEN 3 ELSE 2 ; 01268000
|
|
IF SOUT = 1 THEN LOCK(NEWDISK,RELEASE) ELSE 01268100
|
|
CLOSE(NEWTAPE,*); 01268200
|
|
END ; 01268300
|
|
WRITE(LINE[PAGE]) ; 01268400
|
|
FOR I ~ 1 STEP 1 UNTIL N DO 01268500
|
|
BEGIN 01268600
|
|
FOR K ~ 0,1,2,3 DO SETCHAR(AA[I,K],0," ") ; 01268700
|
|
WRITE(LINE[DBL],15,AA[I,*]) ; 01268800
|
|
END ; 01268900
|
|
GO TO EOPROG; 01269000
|
|
END; 01269100
|
|
IF PROCPUNCH THEN 01269200
|
|
BEGIN 01269300
|
|
BOOLEAN STREAMTOG ; 01269400
|
|
LABEL MORE ; 01269500
|
|
MORE: SCAN ; 01269600
|
|
Q ~ Q ; 01269700
|
|
IF Q = "7COMME" THEN 01269800
|
|
BEGIN 01269900
|
|
DO SCAN UNTIL SEMICOLON ; GO TO MORE ; 01270000
|
|
END ; 01270100
|
|
IF Q = "6STREA" THEN 01270200
|
|
BEGIN 01270300
|
|
STREAMTOG ~TRUE ; GO TO MORE ; 01270400
|
|
END ; 01270500
|
|
IF Q = "9PROCE" THEN 01270600
|
|
BEGIN 01270700
|
|
ARRAY TEMP[0:15] ; 01270800
|
|
INTEGER I ; 01270900
|
|
FORMAT F1("$ TAPE LIST %") , F2("$ TAPE %") ; 01271000
|
|
IF STREAMTOG THEN 01271100
|
|
BEGIN 01271200
|
|
STREAMTOG ~ FALSE ; GO TO MORE ; 01271300
|
|
END ; 01271400
|
|
WRITE(TEMP[*],F1) ; 01271500
|
|
MOVEWORDS(GLOBE,TEMP[2],8) ; 01271600
|
|
I ~ ISEQ - 100 ; OCTTODEC(I,TEMP[9]) ; 01271700
|
|
WRITE(PNCH,10,TEMP[*]) ; 01271800
|
|
WRITE(TEMP[*],F2) ; 01271900
|
|
MOVEWORDS(GLOBE,TEMP[2],8) ; 01272000
|
|
I ~ ISEQ - 100 ; OCTTODEC(I,TEMP[9]) ; 01272100
|
|
WRITE(PNCH,10,TEMP[*]) ; 01272200
|
|
END ; 01272300
|
|
GO TO MORE ; 01272400
|
|
END ; 01272500
|
|
IF SORTOG THEN 01272600
|
|
BEGIN 01272700
|
|
LABEL ID,NBG ; 01272800
|
|
SWITCH SWRES ~ ID,NBG,NBG,NBG,NBG,NBG,NBG ; 01272900
|
|
NBG: SCAN ; 01273000
|
|
GO TO SWRES[RESULT] ; 01273100
|
|
ID: IF SORTSCRAMBLE THEN BUILDXREF ; 01273200
|
|
GO TO NBG ; 01273300
|
|
END ; 01273400
|
|
IF BUILDTOG THEN 01273500
|
|
BEGIN 01273600
|
|
RESTYPE ~ 0 ; 01273700
|
|
FOR IJUNK ~ 0 STEP 1 UNTIL 250 DO RESERVED[IJUNK] ~ 0 ; 01273800
|
|
FOR IJUNK ~ 0 STEP 1 UNTIL 63 DO RESTACK[IJUNK] ~ 0 ; 01273900
|
|
MOREBUILD: SCAN ; 01274000
|
|
IF RESULT = 3 THEN DTOCT(ACCUM[1],3,BRESTYPE,COUNT) ; 01274100
|
|
IF RESULT = 1 THEN 01274200
|
|
BEGIN 01274300
|
|
IF EXAMINE(NCR) ="-" THEN BUILDCOBID ; 01274400
|
|
IF NOT SEARCHRESERVED THEN BUILDRESERVED ; 01274500
|
|
END ; 01274600
|
|
GO TO MOREBUILD ; 01274700
|
|
END ; 01274800
|
|
IF NOT (COBOLTOG OR ASMLTOG OR ESPOLTOG OR BPLTOG ) 01274900
|
|
THEN IF NOT FORTRTOG 01275000
|
|
THEN IF NOT SIMULATOG 01275001
|
|
THEN FILLALGOL; 01275100
|
|
IF ASMLTOG THEN 01275200
|
|
DO BEGIN 01275300
|
|
LABC ~ GLOBE[6]; 01275400
|
|
FOR I ~ 1 STEP 1 UNTIL LABC DO 01275500
|
|
IF GLOBE[I].[12:36] ! " " THEN 01275600
|
|
BEGIN 01275700
|
|
MOVECHARS(GLOBE[I],ACCUM[1],2,3,6); 01275800
|
|
SETCHAR(ACCUM[1],2,"6") ; COUNT ~ 6 ; 01275900
|
|
Q ~ ACCUM[1]; 01276000
|
|
LABELUSE ~ GLOBE[I] < 0; 01276100
|
|
IF RESERVEDTOG OR NOT SEARCHRESERVED THEN 01276200
|
|
IF SORTSCRAMBLE THEN BUILDXREF ; 01276300
|
|
END ; 01276400
|
|
READATAPE ; 01276500
|
|
END UNTIL FALSE ; 01276600
|
|
IF COBOLTOG THEN 01276700
|
|
BEGIN 01276800
|
|
LABEL MORE ; 01276900
|
|
LABEL NEXT ; 01277000
|
|
DEFINE PICTURE = Q= "2PC " OR Q = "3PCT " OR Q = "7PICTU" #, 01277100
|
|
FINDELIM =SCAN; DO BEGIN IF Q.[18:6]="Z" THEN 01277200
|
|
SCAN; SCAN; IF Q ="2IS " THEN 01277300
|
|
SCAN ; IF Q .[18:6] = "Z" THEN 01277400
|
|
BEGIN SCAN; SCAN; END; 01277500
|
|
END UNTIL Q = "1. " OR EXAMINE(NCR)=" "; #; 01277600
|
|
BOOLEAN DATADIVFLAG ; 01277700
|
|
DO BEGIN 01277800
|
|
DATADIVFLAG ~ FALSE ; 01277900
|
|
MORE: SCAN ; 01278000
|
|
NEXT: 01278100
|
|
IF NOT IDENTIFIER THEN IF RESULT ! 3 THEN GO TO MORE 01278200
|
|
ELSE IF DATADIVFLAG THEN 01278300
|
|
IF NOTCOBIDPART(NCR) THEN GO TO MORE ; 01278400
|
|
BUILDCOBID ; 01278500
|
|
IF RESERVEDTOG OR NOT SEARCHRESERVED THEN 01278600
|
|
IF SORTSCRAMBLE THEN BUILDXREF ; 01278700
|
|
IF PICTURE THEN 01278800
|
|
BEGIN 01278900
|
|
FINDELIM ; 01279000
|
|
GO TO MORE ; 01279100
|
|
END ; 01279200
|
|
IF Q = "9PROCE" THEN 01279300
|
|
BEGIN 01279400
|
|
SCAN ; 01279500
|
|
IF Q = "8DIVIS" THEN DATADIVFLAG ~ FALSE ; 01279600
|
|
GO TO NEXT ; 01279700
|
|
END ; 01279800
|
|
IF Q = "4DATA " THEN 01279900
|
|
BEGIN 01280000
|
|
SCAN ; 01280100
|
|
IF Q = "8DIVIS" THEN DATADIVFLAG ~ TRUE; 01280200
|
|
GO TO NEXT ; 01280300
|
|
END ; 01280400
|
|
GO TO MORE ; 01280500
|
|
END UNTIL FALSE ; 01280600
|
|
END ; 01280700
|
|
IF LOGICTOG THEN 01280800
|
|
BEGIN 01280900
|
|
LABEL EOF ; 01281000
|
|
DO 01281100
|
|
BEGIN 01281200
|
|
READ(BUSTED,19,GLOBE[*])[EOF] ; 01281300
|
|
BSTICKFLAG ~ GLOBE[2].[42:6] = "B" ; 01281400
|
|
MOVECHARS(GLOBE[17],ACCUM[1],5,3,3) ; 01281500
|
|
MOVECHARS(GLOBE[18],ACCUM[1],2,6,6) ; 01281600
|
|
COUNT ~ 9 ; OCTTODEC(GLOBE[0],SEQ) ; Q ~ ACCUM[1] ; 01281700
|
|
ACCUM[1].[12:6] ~ COUNT ; 01281800
|
|
IF SORTSCRAMBLE THEN BUILDXREF ; 01281900
|
|
END UNTIL FALSE ; 01282000
|
|
EOF: REWIND(BUSTED) ; PRINTNAMES ; PRINTXREF ; 01282100
|
|
GO TO EOPROG ; 01282200
|
|
END ; 01282300
|
|
IF DOCTOG THEN 01282400
|
|
BEGIN 01282500
|
|
PRINTDOCUMENT ; 01282600
|
|
DO READ(CARDS,10,GLOBE[*])[EOFCARD] UNTIL FALSE ; 01282700
|
|
END ; 01282800
|
|
BEGIN 01282900
|
|
INTEGER BLOCKEXTENDER ; 01283000
|
|
LABEL RESCAN,NEXT,IDENTL,MOREFILL,SCRAML,MORCOM,SPCHARL,STRINGL;01283100
|
|
LABEL SCRAMLOVER; 01283200
|
|
RESCAN: NEWCARD ~ FALSE; 01283300
|
|
SCAN; 01283400
|
|
NEXT: 01283500
|
|
IF RESULT = 1 THEN GO TO IDENTL; 01283600
|
|
IF RESULT = 5 THEN 01283700
|
|
BEGIN 01283800
|
|
IF STRINGTOG THEN IF COUNT { STLENGTH THEN 01283900
|
|
IF SORTSCRAMBLE THEN BUILDXREF; GO TO RESCAN; 01284000
|
|
END; 01284100
|
|
IF RESULT = 3 THEN TALLIES[Q.[18:6]]~TALLIES[Q.[18:6]]+1; 01284200
|
|
IF PERCENT THEN IF FORTRTOG THEN 01284300
|
|
BEGIN 01284400
|
|
SCAN; IF RESULT ! 3 THEN GO TO NEXT ; 01284500
|
|
IF CNBLANK(GLOBE[0],0,5) THEN 01284600
|
|
BEGIN 01284700
|
|
LABELUSE ~ TRUE; 01284800
|
|
IF SORTSCRAMBLE THEN BUILDXREF; 01284900
|
|
LABELUSE ~ FALSE; 01285000
|
|
GO TO RESCAN; 01285100
|
|
END ; 01285200
|
|
TALLIES [Q.[18:6]]~TALLIES[Q.[18:6]] +1; 01285300
|
|
END ; 01285400
|
|
GO TO RESCAN ; 01285500
|
|
IDENTL: 01285600
|
|
IF NOT (RESFLAG ~ SEARCHRESERVED) THEN GO TO SCRAML; 01285700
|
|
IF RESTYPE = PROCEDUREV THEN GO TO SCRAML; 01285800
|
|
IF RESTYPE = COMMENTV THEN 01285900
|
|
BEGIN COMMENT SET QUOTETOG TO SHOW SCAN NOT TO JUMP OUT ON 01285902
|
|
PERCENT ; 01285904
|
|
QUOTETOG~TRUE; 01285906
|
|
IF NOT COMMENTOG THEN 01285908
|
|
BEGIN 01286000
|
|
FINDSEMICOLON ; GO TO RESCAN ; 01286100
|
|
END ; 01286200
|
|
END ; 01286202
|
|
IF FORTRTOG THEN 01286300
|
|
BEGIN 01286400
|
|
IF RESERVEDTOG THEN IF SORTSCRAMBLE THEN BUILDXREF; 01286500
|
|
IF RESTYPE = GOTOV OR RESTYPE = ASSIGNV THEN 01286600
|
|
BEGIN 01286700
|
|
NEWCARD ~ FALSE; SCAN ; 01286800
|
|
IF Q = "2TO " THEN IF NOT RESERVEDTOG THEN SCAN ; 01286900
|
|
WHILE NOT NEWCARD DO 01287000
|
|
BEGIN 01287100
|
|
IF RESULT = 1 OR RESULT = 3 THEN 01287200
|
|
IF SORTSCRAMBLE THEN BUILDXREF; 01287300
|
|
SCAN ; 01287400
|
|
END ; 01287500
|
|
GO TO NEXT ; 01287600
|
|
END ; 01287700
|
|
IF RESTYPE = DOV THEN 01287800
|
|
BEGIN 01287900
|
|
NEWCARD ~ FALSE ; SCAN ; 01288000
|
|
IF RESULT = 3 THEN IF SORTSCRAMBLE THEN BUILDXREF ; 01288100
|
|
GO TO RESCAN ; 01288200
|
|
END ; 01288300
|
|
IF RESTYPE = IFV THEN 01288400
|
|
BEGIN 01288500
|
|
DO BEGIN 01288600
|
|
NEWCARD ~ FALSE ; SCAN ; 01288700
|
|
IF RESULT = 1 THEN IF SORTSCRAMBLE THEN BUILDXREF ; 01288800
|
|
IF RESULT = 5 THEN IF STRINGTOG THEN 01288900
|
|
IF COUNT{STLENGTH THEN IF SORTSCRAMBLE THEN BUILDXREF; 01289000
|
|
END UNTIL Q = "1) "; 01289100
|
|
NEWCARD ~ FALSE; SCAN ; 01289200
|
|
IF RESULT ! 3 THEN GO TO NEXT ; 01289300
|
|
WHILE NOT NEWCARD DO 01289400
|
|
BEGIN 01289500
|
|
IF RESULT = 3 THEN IF SORTSCRAMBLE THEN BUILDXREF; 01289600
|
|
SCAN; 01289700
|
|
END ; 01289800
|
|
END ; 01289900
|
|
GO TO RESCAN ; 01290000
|
|
END ; 01290100
|
|
IF Q = "4WITH " THEN 01290200
|
|
BEGIN 01290300
|
|
DO 01290400
|
|
BEGIN 01290500
|
|
MOREFILL: 01290600
|
|
SCAN ; IF RESULT = 5 THEN GO TO MOREFILL ; 01290700
|
|
IF Q = "7COMME" THEN 01290800
|
|
IF (RESFLAG ~ SEARCHRESERVED) THEN 01290900
|
|
IF RESTYPE = COMMENTV THEN 01291000
|
|
BEGIN 01291100
|
|
QUOTETOG~TRUE; 01291102
|
|
FINDSEMICOLON ; GO TO MOREFILL ; 01291200
|
|
END ; 01291300
|
|
END UNTIL SEMICOLON OR Q = "3END " OR Q = "5UNTIL" OR 01291400
|
|
(SIMULATOG AND(Q="4WHEN " OR Q="9OTHER")) OR 01291401
|
|
Q = "4ELSE " ; 01291500
|
|
IF SEMICOLON THEN GO TO RESCAN ; 01291600
|
|
END ; 01291700
|
|
IF STREAMBODY THEN GO TO SCRAMLOVER; 01291800
|
|
IF RESTYPE < 900 THEN GO TO SCRAMLOVER; 01291900
|
|
SCRAML: 01292000
|
|
IF SORTSCRAMBLE THEN BUILDXREF; 01292100
|
|
SCRAMLOVER: 01292200
|
|
IF RESTYPE = STREAMV THEN 01292300
|
|
BEGIN 01292400
|
|
STREAMTOG ~ STREAMBODY ~TRUE ; 01292500
|
|
STREAMBEGCOUNT ~ BEGINDEX ; 01292600
|
|
END ; 01292700
|
|
IF Q = "5BEGIN" THEN IF LISTOG THEN BEGINCOUNT 01292800
|
|
ELSE BEGINDEX ~ BEGINDEX +1; 01292900
|
|
IF NOT FORTRTOG THEN 01293000
|
|
IF Q = "3END " THEN IF LISTOG THEN ENDCOUNT ELSE 01293100
|
|
BEGIN 01293200
|
|
BEGINDEX~BEGINDEX-1; 01293300
|
|
IF BEGINDEX = STREAMBEGCOUNT THEN STREAMBODY ~ FALSE; 01293400
|
|
END; 01293500
|
|
IF BLOCKTOG THEN 01293600
|
|
BEGIN 01293700
|
|
IF Q = "5BEGIN" THEN 01293800
|
|
BEGIN 01293900
|
|
BPOINT ~ BPOINT + BINDENT ; 01294000
|
|
IJUNK ~ BPOINT MOD 8 ; 01294100
|
|
MOVECHARS(ACCUM[1],BLOCKBUFFER[BPOINT DIV 8] , 01294200
|
|
3,IJUNK,5) ; 01294300
|
|
MOVEWORDS(SEQ,BLOCKBUFFER[0],1) ; 01294400
|
|
ZPL(ZF,1,BLOCKBUFFER) ; 01294500
|
|
CLEARCHAR(BLOCKBUFFER[BPOINT DIV 8],IJUNK,5) ; 01294600
|
|
SETCHAR(BLOCKBUFFER[BPOINT DIV 8],IJUNK,".") ; 01294700
|
|
CLEAR(BLOCKBUFFER,0) ; 01294800
|
|
ZPL(ZF,1,BLOCKBUFFER) ; 01294900
|
|
END ELSE 01295000
|
|
IF Q = "3END " THEN 01295100
|
|
BEGIN 01295200
|
|
IJUNK ~ BPOINT MOD 8 ; 01295300
|
|
MOVECHARS(ACCUM[1],BLOCKBUFFER[BPOINT DIV 8], 01295400
|
|
3,IJUNK,3) ; 01295500
|
|
MOVEWORDS(SEQ,BLOCKBUFFER[0],1) ; 01295600
|
|
ZPL(ZF,1,BLOCKBUFFER) ; 01295700
|
|
CLEARCHAR(BLOCKBUFFER[BPOINT DIV 8],IJUNK,3) ; 01295800
|
|
CLEAR(BLOCKBUFFER,0) ; 01295900
|
|
ZPL(ZF,1,BLOCKBUFFER) ; 01296000
|
|
BPOINT ~ BPOINT - BINDENT ; 01296100
|
|
END ELSE 01296200
|
|
IF PROCBLKFLAG THEN 01296300
|
|
BEGIN 01296400
|
|
ARRAY PROCEDURENAME[0:1] ; 01296500
|
|
INTEGER T1,T2 ; 01296600
|
|
FILL PROCEDURENAME[*] WITH OCT6263512521446047 , 01296700
|
|
OCT5146232524645125 ; 01296800
|
|
PROCBLKFLAG ~ FALSE ; 01296900
|
|
IJUNK ~ (BPOINT + BINDENT) MOD 8 ; 01297000
|
|
IF STREAMTOG THEN 01297100
|
|
BEGIN 01297200
|
|
T1 ~ 0 ; T2 ~ 16 ; STREAMTOG ~ FALSE ; 01297300
|
|
END ELSE 01297400
|
|
BEGIN 01297500
|
|
T1 ~ 7 ; T2 ~ 9 ; 01297600
|
|
END ; 01297700
|
|
MOVECHARS(PROCEDURENAME,BLOCKBUFFER[(BPOINT + BINDENT) 01297800
|
|
DIV 8],T1,IJUNK,T2) ; 01297900
|
|
IJUNK ~ (BPOINT + T2 + BINDENT + 2) MOD 8 ; 01298000
|
|
MOVECHARS(ACCUM[1],BLOCKBUFFER[(BPOINT + T2 + BINDENT+2) 01298100
|
|
DIV 8],3,IJUNK,COUNT) ; 01298200
|
|
MOVEWORDS(SEQ,BLOCKBUFFER[0],1) ; 01298300
|
|
ZPL(ZF,1,BLOCKBUFFER) ; 01298400
|
|
CLEARCHAR(BLOCKBUFFER[(BPOINT+T2+BINDENT+2) DIV 8], 01298500
|
|
IJUNK,COUNT) ; 01298600
|
|
IJUNK ~ (BPOINT + BINDENT) MOD 8 ; 01298700
|
|
CLEARCHAR(BLOCKBUFFER[(BPOINT+BINDENT ) DIV 8],IJUNK,T2) ;01298800
|
|
CLEAR(BLOCKBUFFER,0) ; 01298900
|
|
ZPL(ZF,1,BLOCKBUFFER) ; 01299000
|
|
END ; 01299100
|
|
END ; 01299200
|
|
IF NOT FORTRTOG THEN 01299300
|
|
IF Q = "3END "THEN 01299400
|
|
BEGIN 01299500
|
|
MORCOM: 01299600
|
|
SCAN ; IF SEMICOLON THEN GO TO RESCAN ; 01299700
|
|
IF COMMENTOG OR BNFTOG OR RESERVEDTOG OR SORTOG 01299800
|
|
THEN GO TO NEXT ; 01299900
|
|
IF Q = "3END " OR Q = "4ELSE " OR Q = "5UNTIL" OR 01300000
|
|
(SIMULATOG AND(Q="4WHEN " OR Q="9OTHER")) OR 01300001
|
|
Q = "1# " THEN 01300100
|
|
GO TO NEXT ELSE GO TO MORCOM ; 01300200
|
|
END ; 01300300
|
|
GO TO RESCAN ; 01300400
|
|
END ; 01300500
|
|
EOF: 01300600
|
|
EOFCARD: 01300700
|
|
TABLEUPPERBOUND ~ PP ; 01300800
|
|
IF SHUFFLETOG THEN 01300900
|
|
BEGIN 01301000
|
|
COMMENT DOCUMENT* SKIP 10 INDEX UNDERLINE INDENT 1 * * * * * * * * * 01301100
|
|
BLOCK TO SHUFFLE FILES. 01301200
|
|
THIS BLOCK READS DATA CARDS AND MOVES THE REQUESTED SECTIONS 01301300
|
|
FROM THE SOURCE FILE TO THE NEW SOURCE FILE. 01301400
|
|
* END ; 01301500
|
|
COMMENT DOCUMENT* SKIP CODE 2 * * * * * * * * * * * * * * * * * * * * ; 01301600
|
|
COMMENT DATA CARDS ARE OF THE FORM OLD START,OLD FINISH, NEW START, 01301700
|
|
INCREMENT ; 01301800
|
|
INTEGER MIN,MAX,NEW,SEQ,INC,POSSEQ ; 01301900
|
|
BOOLEAN NORESEQ ; 01302000
|
|
LABEL EOF,EOFT1,EOFT2,RD,MORE,RDD,CONT ; 01302100
|
|
ARRAY A[0:15] ; 01302200
|
|
LIST LDATA(MIN,MAX,NEWSEQ+SEQINC,SEQINC) ; 01302300
|
|
LIST LLDATA(MIN,MAX,NEW,INC) ; 01302400
|
|
FORMAT FDATA(10("*****")/ 01302500
|
|
"MIN",I8," MAX",I8," NEW",I8," INC",I8 , 01302600
|
|
/10("*****")/) ; 01302700
|
|
DEFINE OUTPUT = 01302800
|
|
NEWSEQ ~ NEWSEQ + SEQINC ; 01302900
|
|
MOVEWORDS(A[9],A[12],1) ; 01303000
|
|
OCTTODEC(NEWSEQ,A[9]) ; 01303100
|
|
IF BLANKNEWSEQ THEN CLEAR(A[9],0) ; 01303200
|
|
IF NORESEQ THEN 01303300
|
|
BEGIN 01303400
|
|
MOVEWORDS(A[12],A[9],1); 01303500
|
|
CLEAR(A[12],0) ; 01303600
|
|
END ; 01303700
|
|
IF LISTOG THEN WRITE(LINE[DBL],15,A[*]) ; 01303800
|
|
IF NOT PUNCHTOG THEN 01303900
|
|
IF NEWTOG THEN WRITE(SWOUT ,10,A[*]) ; 01304000
|
|
IF PUNCHTOG THEN WRITE(PNCH,10,A[*]) # ; 01304100
|
|
CLEAR(A,14) ; 01304200
|
|
RDD: POSSEQ ~ 0 ; REWIND(SWIN) ; 01304300
|
|
RD: READ(CARD[NO],10,A[*])[EOF] ; 01304400
|
|
IF NOT BLANKTEST(A,9) THEN 01304500
|
|
BEGIN 01304600
|
|
READ(CARD,10,A[*]) ; GO TO RD ; 01304700
|
|
END ; 01304800
|
|
IF CHECKDOLLAR(A) THEN 01304900
|
|
BEGIN 01305000
|
|
IF BLANKNEWSEQ THEN OUTPUT ELSE 01305100
|
|
BEGIN 01305200
|
|
BLANKNEWSEQ ~ TRUE ; OUTPUT ; 01305300
|
|
BLANKNEWSEQ ~ FALSE ; 01305400
|
|
END ; 01305500
|
|
WRITE(LINE[DBL],15,A[*]) ; 01305600
|
|
READ(CARD,10,A[*]) ; 01305700
|
|
GO TO RD ; 01305800
|
|
END ; 01305900
|
|
READ(CARD,/,LLDATA) ; 01306000
|
|
IF MIN = 99999999 THEN GO TO EOPROG ; 01306100
|
|
NORESEQ ~ (NEW=0) AND (INC=0) AND 01306200
|
|
((NOT RESEQTOG)) ; 01306300
|
|
IF RESEQTOG THEN GO TO CONT ; 01306400
|
|
IF NEW { NEWSEQ THEN DOCERROR(26) ; 01306500
|
|
NEWSEQ ~ NEW - INC ; 01306600
|
|
SEQINC ~ INC ; 01306700
|
|
CONT: WRITE(LINE,FDATA,LDATA) ; 01306800
|
|
IF MIN < POSSEQ THEN 01306900
|
|
BEGIN 01307000
|
|
DO BEGIN 01307100
|
|
READ REVERSE(SWIN,10,A[*])[EOFT1] ; 01307200
|
|
DECTOOCT(A[9],POSSEQ) ; 01307300
|
|
END UNTIL POSSEQ { MIN ; 01307400
|
|
IF POSSEQ < MIN THEN 01307500
|
|
BEGIN 01307600
|
|
DOCERROR(25) ; GO TO RD ; 01307700
|
|
END ; 01307800
|
|
END ELSE 01307900
|
|
IF MIN > POSSEQ THEN 01308000
|
|
BEGIN 01308100
|
|
DO BEGIN 01308200
|
|
READ(SWIN,10,A[*])[EOFT1] ; 01308300
|
|
DECTOOCT(A[9],POSSEQ) ; 01308400
|
|
END UNTIL POSSEQ } MIN ; 01308500
|
|
IF POSSEQ > MIN THEN 01308600
|
|
BEGIN 01308700
|
|
DOCERROR(25) ; GO TO RD ; 01308800
|
|
END ; 01308900
|
|
OUTPUT ; 01309000
|
|
END ; 01309100
|
|
MORE: READ(SWIN,10,A[*]) [EOFT2] ; 01309200
|
|
DECTOOCT(A[9],POSSEQ) ; 01309300
|
|
IF POSSEQ > MAX THEN 01309400
|
|
BEGIN 01309500
|
|
DOCERROR(25) ; GO TO RD ; 01309600
|
|
END ; 01309700
|
|
OUTPUT ; 01309800
|
|
IF POSSEQ = MAX THEN GO TO RD ; 01309900
|
|
GO TO MORE ; 01310000
|
|
EOFT1: DOCERROR(25) ; GO TO RDD; 01310100
|
|
EOFT2: DOCERROR(25) ; GO TO RDD; 01310200
|
|
EOF: 01310300
|
|
CLOSE(SWIN,RELEASE) ; 01310400
|
|
LOCK(SWOUT,RELEASE) ; 01310500
|
|
GO TO EOPROG ; 01310600
|
|
END ; 01310700
|
|
CLOSE(CARDS,RELEASE) ; 01310800
|
|
CARDSOPEN ~ FALSE ; 01310900
|
|
IF TAPETOG THEN CLOSE(SWIN,RELEASE) ; 01311000
|
|
IF PUNCHTOG THEN CLOSE(NEWPUNCH[PUNCHSW],RELEASE) ; 01311100
|
|
IF BIGTOG THEN 01311200
|
|
BEGIN 01311300
|
|
REWIND(XREFILE) ; 01311400
|
|
SORTITONDISK(XREFILE,XREFSORT) ; 01311500
|
|
END ; 01311600
|
|
IF PBACKONLY THEN 01311700
|
|
BEGIN 01311800
|
|
FOR IJUNK ~ 1 STEP 1 UNTIL NOBACKUPRINTS DO 01311900
|
|
PRINTBACKUP ; GO TO EOPROG ; 01312000
|
|
END ; 01312100
|
|
IF BUILDTOG THEN 01312200
|
|
BEGIN 01312300
|
|
PUNCHRESERVEDEFINES ; 01312400
|
|
PUNCHRESERVEDFILLSTATEMENTS ; GO TO EOPROG ; 01312500
|
|
END ; 01312600
|
|
IF DOCTOG THEN 01312700
|
|
BEGIN 01312800
|
|
IF DOCUMENTFOUND THEN UJUNK~2 ELSE BEGIN UJUNK~ 1 ; 01312900
|
|
GO TO BMONJ; END; 01313000
|
|
IF CONTOG THEN GO TO BMONJ; 01313100
|
|
IF DOCER ! 0 THEN 01313200
|
|
BEGIN 01313300
|
|
WRITE(LINE[PAGE]); 01313400
|
|
DOCERROR(0); 01313500
|
|
END; 01313600
|
|
IF NOT QUITOG THEN ERROR (14); 01313700
|
|
IF BNFTOG THEN PRINTNAMES 01313800
|
|
ELSE BEGIN INTEGER BLOCKEXTENDER;END; 01313900
|
|
IF NOT FINALDOCTOG OR DOCINDEXTOG THEN PRINTXREF; 01314000
|
|
END; 01314100
|
|
IF FLOWTOG THEN 01314200
|
|
BEGIN 01314300
|
|
IF FLOWFOUND THEN UJUNK ~3 ELSE BEGIN UJUNK ~4; 01314400
|
|
GO TO BMONJ; END; 01314500
|
|
IF FERR ! 0 THEN FLOWERROR (20+FERR); 01314600
|
|
NLINES ~0; 01314700
|
|
ZNOSKIP ~ FALSE; 01314800
|
|
PAGETOG ~ TRUE; 01314900
|
|
PRINTXREF; 01315000
|
|
NEWVOL ~ TRUE ; 01315100
|
|
ZPG(ZF) ; 01315200
|
|
END; 01315300
|
|
IF BLOCKTOG THEN 01315400
|
|
BEGIN 01315500
|
|
PRINTPROCEDUREIDS; 01315600
|
|
PRINTXREF; 01315700
|
|
END; 01315800
|
|
IF NEWTOG THEN 01315900
|
|
IF NEWMULTITOG THEN CLOSE(SWOUT,*) ELSE LOCK(SWOUT, 01316000
|
|
RELEASE) ; 01316100
|
|
IF NEWMULTITOG THEN GO TO CONTINUE ; 01316200
|
|
IF BMON THEN GO TO BMONJ; 01316300
|
|
IF NOT SORTOG THEN 01316400
|
|
IF NOT NAMETOG THEN 01316500
|
|
IF (NOT COUNTOG) AND (NOPROC ! 0) THEN 01316600
|
|
PRINTPROCEDUREIDS ; 01316700
|
|
IF NOT COUNTOG THEN PRINTXREF; 01316800
|
|
PRINTNAMES; 01316900
|
|
BMONJ: 01317000
|
|
IF BMON AND UPDATETOG THEN 01317100
|
|
BEGIN 01317200
|
|
LABEL RD,EOF; 01317300
|
|
REWIND (BACKUPDIR); 01317400
|
|
WRITE (BACKUP,ENDMARKER); 01317500
|
|
IJUNK ~ BKDIRCOUNT; 01317600
|
|
RD: READ (BACKUPDIR,15,GLOBE[*]) [EOF]; 01317700
|
|
WRITE (BACKUP,15,GLOBE[*]); 01317800
|
|
IJUNK~ IJUNK-1; 01317900
|
|
IF IJUNK > 0 THEN GO TO RD; 01318000
|
|
EOF: REWIND (BACKUP); 01318100
|
|
WRITE (BACKUP,HEADFORM,BKRCRDCOUNT,BKDIRCOUNT,1); 01318200
|
|
END; 01318300
|
|
IF AUTOPRINT THEN PRINTBACKUP; 01318400
|
|
IF SAVEBACKUPTOG THEN LOCK (BACKUP,RELEASE) 01318500
|
|
ELSE CLOSE (BACKUP,PURGE); 01318600
|
|
IF FLOWTOG OR DOCTOG THEN 01318700
|
|
BEGIN 01318800
|
|
SPOMESS [UJUNK, 3] ~ " "; 01318900
|
|
IF CASTOG THEN 01319000
|
|
BEGIN 01319100
|
|
HEADPOINT ~ 0; 01319200
|
|
MOVECHARS (HEADING[0],SPOMESS [UJUNK,3],0,2,6); 01319300
|
|
END; 01319400
|
|
WRITE(SPOOUT,6,SPOMESS[UJUNK,*]); 01319500
|
|
END; 01319600
|
|
CONTINUE: 01319700
|
|
IF ALLTOG THEN 01319800
|
|
BEGIN 01319900
|
|
INTEGER BLOCKEXTENDER; 01320000
|
|
HEADPOINT ~ 0 ; CLEAR(HEADING,14) ; 01320100
|
|
FCASTINDEX ~ JUNK ~ FCASTINDEX + 1 ; 01320200
|
|
IF FCASTINDEX > LCASTINDEX THEN GO TO EOPROG ; 01320300
|
|
MOVECHARS(CASTDIR[CASTLINKS[JUNK].[6:6], 01320400
|
|
CASTLINKS[JUNK].[12:6]],HEADING[HEADPOINT DIV 8 ], 01320500
|
|
CASTLINKS[JUNK].[18:6],HEADPOINT.[45:3], 01320600
|
|
CASTLINKS[JUNK].[24:6]) ; 01320700
|
|
IF NEWMULTITOG THEN 01320800
|
|
BEGIN 01320900
|
|
CLEAR(JUNKARRAY,14) ; 01321000
|
|
MOVEWORDS(MULTNAME[1],MULTNAME[3],2) ; 01321100
|
|
MOVEWORDS(MULTNAME[1],JUNKARRAY[0],4) ; 01321200
|
|
WRITE(PUNCH,10,JUNKARRAY[*]) ; 01321300
|
|
MULTNAME[2] ~ " " ; 01321400
|
|
IF CASTLINKS[JUNK].[24:6] > 7 THEN 01321500
|
|
JUNK ~ 7 ELSE JUNK ~ CASTLINKS[JUNK].[24:6] ; 01321600
|
|
MOVECHARS(HEADING[HEADPOINT DIV 8],MULTNAME[2], 01321700
|
|
HEADPOINT.[45:3],1,JUNK) ; 01321800
|
|
FILL NEWTAPE WITH MULTNAME[1],MULTNAME[2] ; 01321900
|
|
END ; 01322000
|
|
NCASTRECS ~ CASTLINKS[FCASTINDEX+1].[30:18] - 01322100
|
|
CASTLINKS[FCASTINDEX].[30:18] ; 01322200
|
|
NCASTRECS ~ NCASTRECS - 1 ; 01322300
|
|
GO TO MORECAST ; 01322400
|
|
END ; 01322500
|
|
COMMENT DOCUMENT* QUIT ; 01322600
|
|
EOPROG: 01322700
|
|
IF CASTOG THEN REWIND(CASTSW[CASTINDEX]) ; 01322800
|
|
BEGIN 01322900
|
|
INTEGER BLOCKEXTENDER; 01323000
|
|
IF DUMPFLAG THEN DUMPARRAYS; 01323100
|
|
IF DOCER ! 0 THEN 01323200
|
|
WRITE(SPOOUT,BADRUN,PROGID,DATE,DOCER) ELSE 01323300
|
|
IF NOT (LISTOG OR PRINTOG) THEN 01323400
|
|
WRITE(SPOOUT,GOODRUN,PROGID,DATE) ; 01323500
|
|
IF LISTOG OR PRINTOG AND DOCER ! 0 THEN 01323600
|
|
BEGIN 01323700
|
|
ZPG(ZF); 01323800
|
|
WRITE(LINE[DBL],BADRUN,PROGID,DATE,DOCER) ; 01323900
|
|
END ; 01324000
|
|
END; 01324100
|
|
CLOSE(PRINT,RELEASE) ; 01324200
|
|
END . 01324300
|
|
99999999
|