1
0
mirror of https://github.com/retro-software/B5500-software.git synced 2026-03-02 17:44:40 +00:00
Files
Paul Kimpel 2c72f7fd1d Commit CUBE Library version 13 of February 1972.
1. Commit library tape images, directories, and extracted text files.
2. Commit additional utilities under Unisys-Emode-Tools.
2018-05-27 11:24:23 -07:00

1915 lines
151 KiB
Plaintext

16181655 ... EXECUTE 00000100
8890914 ... DITTO 00000200
9400967 ... COPY 00000300
10041025 ... INLINE 00000400
8470857 ... ZIP 00000500
11421165 ... CHANGE 00000600
12451264 ... EDIT 00000700
14721478 ... SAVE 00000800
12791298 ... RESEQ 00000900
7520762 ... PUNCH 00001000
7170728 ... PRINT 00001100
13101320 ... DELETE 00001200
5390541 ... CLOSE 00001300
7740784 ... COMPILE 00001400
14871503 ... COLUMN 00001500
11861216 ... SCAN 00001600
8100824 ... LISTING 00001700
13451351 ... INC 00001800
14341453 ... TAB 00001900
13691396 ... PERCENT 00002000
6610676 ... QUICK 00002100
5690600 ... LIST 00002200
4480461 ... OPEN 00002300
15231530 ... MAIL 00002400
15791587 ... TEACH 00002500
6920698 ... REMOVE 00002600
14171419 ... REPLACE 00002700
15431560 ... END 00002800
BEGIN 00002810
COMMENT DOCUMENT 00002900
*DEFINE 01 = INDEX PAGE CENTER UNDERLINE SKIP 10* 00003000
* DEFINE 02 = INDEX PAGE NO CENTER UNDERLINE SKIP 10* 00003100
* DEFINE 03 = INDEX PAGE CENTER UNDERLINE* 00003110
*DEFINE 10 = PAGE INDENT 5 INDEX UNDERLINE SKIP 2 * 00003200
* DEFINE 11 = INDENT 10 INDEX SKIP 2 * 00003300
*DEFINE 12 = SKIP 2 PARAGRAPH 10,72,5 * 00003400
* DEFINE 13=SKIP 5 INDENT 5 INDEX UNDERLINE SKIP 2* 00003500
* DEFINE 15 = INDENT 15 SKIP 2 UNDERLINE* 00003600
*DEFINE 19 = INDEX INDENT 10 UNDERLINE SKIP 10 * 00003700
* DEFINE 20 = INDENT 15 INDEX UNDERLINE SKIP 2* 00003800
*DEFINE 21 = INDENT 15 INDEX SKIP 2 * 00003900
*DEFINE 22 = SKIP 2 PARAGRAPH 15,72,5 * 00004000
* DEFINE 23 = SKIP 1 PARAGRAPH 15,72,5* 00004100
*DEFINE 30 = INDENT 20 INDEX UNDERLINE SKIP 2 * 00004200
*DEFINE 31 = INDENT 20 INDEX SKIP 2 * 00004300
*DEFINE 32 = SKIP 2 PARAGRAPH 20,72,5 * 00004400
* DEFINE 33 = INDENT 20 SKIP 2* 00004410
*DEFINE 40 = INDENT 30 INDEX UNDERLINE SKIP 2 * 00004500
*DEFINE 41 = INDENT 30 INDEX SKIP 2 * 00004600
*DEFINE 42 = SKIP 2 PARAGRAPH 30,72,5 * 00004700
* DEFINE 51=INDENT 15 SKIP 2* 00004800
*SKIP 18 CENTER UNDERLINE 00004900
R/C 00005000
*CENTER UNDERLINE 00005100
REFERENCE 00005200
* CENTER UNDERLINE 00005300
MANUAL 00005400
*SKIP 24 INDENT 50 00005500
BY 00005600
* SKIP 2 INDENT 50 00005700
RON BRODY 00005800
* SKIP 2 INDENT 50 00005810
12/22/71 VERSION 94 00005820
* 03 00006000
INTRODUCTION 00006100
*12 00006400
R/C PERMITS A USER AT A REMOTE TELETYPEWRITER TO CREATE 00006500
AND MAINTAIN SOURCE OR DATA FILES ON THE B5500 00006600
SYSTEM DISK. FILE TYPES CREATED AND MAINTAINED WITH R/C ARE: 00006700
ALGOL, XALGOL, COBOL, FORTRAN, BASIC, AND DATA. THESE FILES REPRESENT 00006800
NORMAL (80 CHARACTER-PER-CARD) PUNCHED CARD DECKS EXCEPT THAT 00006900
THEY ARE STORED ON 00007000
THE DISK. EACH RECORD CAN BE THOUGHT OF AS ONE CARD. 00007100
*12 00007200
R/C ALLOWS THE USER TO: 00007300
*TAB 15,17 SKIP 1 00007400
*/CREATE A VARIETY OF FILES / 00007500
*/RESEQUENCE FILES / 00007600
*/PRINT OR PUNCH FILES / 00007700
*/DELETE OR INSERT RECORDS INTO A FILE/ 00007800
*/MODIFY RECORDS WITHIN A FILE/ 00007900
*/SCAN A FILE FOR THE OCCURRENCE OF A STRING/ 00008000
/(OPTIONALLY REPLACING IT WITH ANOTHER STRING)/ 00008100
*/REMOVE FILES / 00008200
*/COMPILE FILES/ 00008300
*/PERFORM MANY OTHER FUNCTIONS / 00008400
*12 00008500
THE TELETYPEWRITER (IN CONJUNCTION WITH THE PROGRAM R/C) 00008600
CAN BE CONSIDERED A KEYPUNCH EXTENSION WHICH ELIMINATES 00008700
PUNCHED CARDS. IT OFFERS GREAT FLEXIBILITY IN FILE HANDLING. 00008800
*12 00008900
R/C HAS TWO MAJOR RESTRICTIONS: 00009000
*22 00009100
WHILE THE SEQUENCE 00009200
NUMBER 99999999 IS PERMITTED FOR CONVENIENCE, THE MAXIMUM 00009300
SEQUENCE NUMBER IS 2097151 (2*21-1). 00009400
*22 00009500
THE MAXIMUM NUMBER OF 00009600
RECORDS PERMITTED IN A FILE IS 8191. 00009700
*12 00009800
IN THE DISCUSSION OF CERTAIN R/C VERBS, SOME OF THE 00009900
ELEMENTS OF THE SYNTAX ARE GIVEN AS <M>, <N>, <I>, 00010000
OR <J>. IN EACH CASE, THESE ELEMENTS REPRESENT INTEGER 00010100
VALUES WHICH MUST BE PROVIDED BY THE USER. THE VALUE MAY 00010200
BE A RECORD NUMBER FOR SOME VERBS, THE SEQUENCE NUMBER 00010300
FOR OTHERS, OR AN INCREMENT AMOUNT. THE BRACKETED CONSTRUCT 00010400
IS ONLY A FORM OF NOTATION USED TO REPRESENT AN INTEGER 00010500
PARAMETER. 00010600
* 03 00010800
PROGRAM OPERATION AND RECORD SEQUENCING 00011100
* 12 00011400
DURING CREATION AND FILE MAINTENANCE, R/C 00011500
AUTOMATICALLY ADVANCES (BY THE CURRENT VALUE OF THE 00011600
"INCREMENT") THE SEQUENCE NUMBER 00011700
OF EACH RECORD THAT IS INPUT. THE USER MAY 00011800
SET THIS INCREMENT TO ANY DESIRED VALUE THROUGH USE OF THE 00011900
"*INC" VERB (SEE BELOW). THE INCREMENT VALUE IS 00012000
INITIALIZED TO 100 WHEN THE USER FIRST RUNS R/C. 00012100
* 12 00012200
THE INITIAL SEQUENCE NUMBER IS SET TO THE INCREMENT 00012300
WHEN A NEW FILE IS OPENED BY A USER. FOR EXAMPLE, IF THE 00012400
CURRENT INCREMENT WERE 100, THE FIRST SEQUENCE NUMBER IN 00012500
THE FILE WOULD BE "100:". THIS INITIAL SEQUENCE NUMBER 00012600
MAY BE CHANGED BY THE USER THROUGH THE USE OF THE CONSTRUCT 00012700
"*<N>", (SEE BELOW). 00012800
* 12 00012900
AFTER EACH RECORD IS TYPED INTO THE FILE, THE SEQUENCE 00013000
NUMBER OF THE NEXT RECORD IN THE FILE IS SET TO THE LAST 00013100
SEQUENCE NUMBER PLUS THE INCREMENT. 00013200
THIS SEQUENCE NUMBER IS NEXT TYPED ON THE TELETYPEWRITER. 00013300
*12 00013400
IF THE FILE TYPE IS NOT "COBOL", THE SEQUENCE NUMBER IS FOLLOWED BY A 00013500
COLON. IF A RECORD ALREADY EXISTS WITH THIS SEQUENCE NUMBER, 00013600
LEADING ZEROS ARE TYPED AS A WARNING; OTHERWISE LEADING 00013700
ZEROS ARE SUPPRESSED. AFTER THE SEQUENCE NUMBER IS 00013800
TYPED OUT, THE USER MAY THEN ENTER THE DESIRED CONTENTS 00013900
FOR THAT SEQUENCE NUMBER OR MAY ENTER A VERB TO PERFORM 00014000
SOME OTHER FUNCTION. 00014100
*12 00014200
ALTERNATIVELY, THE USER MAY SET THE SEQUENCE TO SOME 00014300
OTHER VALUE THROUGH THE USE OF THE CONSTRUCT 00014400
"*<N>", WHERE <N> IS THE DESIRED SEQUENCE NUMBER. 00014500
NOTE THAT LEADING ZEROS ARE ACCEPTED BUT NOT 00014600
NECESSARY WITH THIS CONSTRUCT. 00014700
*12 00014800
BY USE OF THE "*<N>" CONSTRUCT AND THE "*INC" VERB 00014900
TO SET THE SEQUENCE NUMBER INCREMENT, THE USER MAY SET 00015000
UP HIS OWN NUMBERING SEQUENCE THROUGHOUT HIS FILE. 00015100
*12 00015200
THE EXAMPLES ILLUSTRATE THE SEQUENCE NUMBER OF THE 00015300
RECORD TYPED ON THE LEFT SIDE OF THE PAGE AS IT APPEARS 00015400
ON THE TELETYPEWRITER AND THE MANNER IN WHICH THESE 00015500
RECORDS ARE INCREMENTED. ALTHOUGH ALGOL, XALGOL, BASIC AND FORTRAN 00015600
FILES ACTUALLY CARRY THE 00015700
SEQUENCE NUMBER IN CHARACTER POSITIONS 73-80 OF THE RECORD, 00015800
R/C TYPES THE NUMBER ON THE LEFT MARGIN OF THE TELETYPEWRITER. 00015900
*03 00016100
PROGRAM EXECUTION 00016400
* 13 00016500
INITIAL REMOTE TERMINAL OPERATIONS 00016600
*12 00016700
FOR LOGGING-IN TO A TELETYPEWRITER, PRESS THE 00016800
"ORIG" BUTTON, WAIT FOR A DIAL TONE FROM THE SPEAKER, 00016900
AND DIAL THE 00017000
COMPUTER NUMBER. THE B5500 RESPONDS WITH THE MESSAGE: 00017100
* SKIP 2 CENTER UNDERLINE 00017200
BURROUGHS B-5500: <TT>/<BB> 00017300
*22 00017400
(THE STATION NUMBER IS <TT>/<BB> WHERE <TT> IS THE 00017500
TERMINAL NUMBER AND <BB> IS THE BUFFER NUMBER.) 00017600
*12 00017700
YOU MAY TYPE: 00017800
* SKIP 2 CENTER UNDERLINE 00017900
? LI: <USERCODE>/<AUTHENTICATION CODE>~ 00018000
*22 00018100
THIS LOG-IN MESSAGE MAY HAVE BEEN PRECEDED BY A "?BO~" 00018200
MESSAGE WHICH WOULD HAVE BLACKED OUT THE LINE ON WHICH 00018300
THE LOG-IN MESSAGE WAS TYPED. 00018400
*22 00018500
THE B5500 VALIDATES THE <USERCODE> AND <AUTHENTICATION- 00018600
CODE> AND RESPONDS BY TYPING OUT THE STATION NUMBER AND 00018700
THE TIME OF DAY OF THE LOG-IN. 00018800
*12 00018900
TO CONNECT A REMOTE TERMINAL TO R/C, ENTER: 00019000
*SKIP 2 CENTER UNDERLINE 00019100
?? RUN R/C;END.~ 00019200
*12 00019300
THE B5500 RESPONDS BY EITHER TYPING OUT A "BOJ" (BEGINNING 00019400
OF JOB) MESSAGE, A "SCHEDULED" MESSAGE, OR A "RUNNING" MESSAGE. 00019500
A "BOJ" MESSAGE INDICATES 00019600
THAT R/C WAS NOT PREVIOUSLY RUNNING BUT HAS NOW BEEN ENTERED 00019700
INTO THE MIX AND IS READY FOR USE. A "SCHEDULED" MESSAGE 00019800
INDICATES THAT R/C WAS NOT PREVIOUSLY RUNNING AND IS SCHEDULED. 00019900
IN THIS CASE, R/C 00020000
IS NOT BROUGHT INTO THE MIX UNTIL OTHER SYSTEM USERS COMPLETE THEIR 00020100
WORK. THE "RUNNING" MESSAGE INDICATES R/C IS ALREADY 00020200
IN THE MIX. 00020300
*12 00020400
WITH R/C IN THE MIX, IT AUTOMATICALLY SEARCHES OUT AND LOCKS ONTO 00020500
REMOTE TERMINALS WHICH HAVE REQUESTED CONNECTION (BY "RUN R/C"). 00020600
AS SOON AS YOUR TERMINAL IS LOCKED, R/C TYPES ONE OF THE 00020700
FOLLOWING MESSAGE SEQUENCES, ACCORDING TO THE MANNER IN 00020800
WHICH R/C ENDED DURING YOUR LAST R/C RUN (FIRST-TIME 00020900
USERS ARE CONSIDERED TO HAVE CAUSED NORMAL LAST ENTRIES): 00021000
* 51 00021100
INITIAL MESSAGE AFTER NORMAL TERMINATION OF LAST RUN: 00021200
* SKIP 2 INDENT 20 00021300
<R/C VERSION NUMBER> 00021350
HELLO <USERCODE> 00021400
: 00021500
*12 00021600
INITIAL MESSAGE AFTER "* END X" OR ABNORMAL LAST 00021700
RUN TERMINATION: 00021800
* INDENT 15 SKIP 1 00021900
IF A FILE WAS OPEN 00022000
* SKIP INDENT 20 00022100
<R/C VERSION NUMBER> 00022200
<FILE NAME OF OPEN FILE> 00022210
HELLO+<USERCODE> 00022300
<SEQUENCE NUMBER IN THE OPEN FILE>: 00022400
*INDENT 15 SKIP 1 00022500
OR IF NO FILE IS OPEN 00022600
*SKIP 1 INDENT 20 00022700
<R/C VERSION NUMBER> 00022750
HELLO+<USERCODE> 00022800
: 00022900
* 12 00023000
IF A MESSAGE HAS BEEN SENT FROM ANOTHER USER TO YOUR 00023100
USERCODE (SEE THE MAIL VERB), "MAIL %" IS TYPED INSTEAD OF "HELLO". 00023200
* 51 00024500
EXAMPLES: 00024600
* INDENT 20 SKIP 2 00024700
VERSION # 00024750
HELLO BLUM 00024800
: 00025000
* 22 00025100
THIS IS THE NORMAL INITIAL SEQUENCE FROM R/C. 00025200
* SKIP 3 INDENT 20 00025300
VERSION # 00025350
HELLO+ WILNER 00025400
: 00025600
*22 00025700
THIS SEQUENCE INDICATES THAT R/C REMEMBERS THE USERS STATE FROM 00025800
THE PREVIOUS RUN. THE STATE INCLUDES THE INCREMENT VALUE, TAB 00025900
AMOUNT, SAVE FACTOR, PERCENT ON-OFF, AND VERB 00026000
REPLACEMENTS. 00026100
* SKIP 3 INDENT 20 00026200
VERSION # 00026300
* INDENT 20 00026400
FILE/NAME 00026410
HELLO+ SHARPE 00026500
00050600: 00026600
* 22 00026700
THIS SEQUENCE INDICATES THAT USER HAS THE FILE "FILE/NAME" 00026800
OPEN AND IS AT THE RECORD WITH SEQUENCE NUMBER 50600. THE LEADING 00026900
ZEROS INDICATE THAT A RECORD ALREADY EXISTS WITH THAT NUMBER. 00027000
* 13 00027100
FINAL REMOTE TERMINAL OPERATIONS 00027200
*12 00027300
THE USER SHOULD TERMINATE HIS USE OF R/C WITH THE "* END" 00027400
COMMAND (SEE BELOW). 00027500
R/C WILL RESPOND WITH "GOOD BYE." 00027600
* 12 00027700
AFTER HE HAS ENDED R/C, 00027800
IF THE USER IS DONE WITH THE REMOTE TERMINAL HE SHOULD LOG-OUT 00027900
BY ENTERING: "?LO~" 00028000
* 13 00028100
R/C INPUT 00028200
*12 00028300
INPUT TO R/C IS EITHER COMMANDS OR RECORDS. 00028400
*12 00028500
COMMANDS ARE INDICATED BY THE CHARACTER "*" IN THE FIRST INPUT 00028600
POSITION. (IF THERE IS NO OPEN FILE, THE "*" IS OPTIONAL.) 00028650
ALL OTHER INPUT IS CONSIDERED RECORDS TO BE PLACED 00028700
IN THE OPEN FILE. THE FORMAT FOR A COMMAND IS THE "*" FOLLOWED 00028800
BY AN R/C VERB AND, IF NEEDED, ITS PARAMETERS. 00028900
THE VERB AND ITS PARAMETERS MUST BE SEPARATED BY A DELIMITER. 00029000
*12 00029100
A DELIMITER IS EITHER A SPACE OR ANY SPECIAL CHARACTER EXCEPT 00029200
A ";", A """, A ".", A "(", OR A "[". MULTIPLE DELIMITERS ARE 00029300
TREATED AS A SINGLE DELIMITER. 00029400
*12 00029500
A COMMAND MAY BE FOLLOWED BY ANOTHER INPUT (EITHER A COMMAND OR 00029600
A RECORD) IF IT IS TERMINATED BY A ";". 00029700
AN ERROR IN A COMMAND OF A MULTIPLE INPUT INHIBITS THE 00029800
PROCESSING OF THE REST OF THAT INPUT. 00029900
* 51 00030000
EXAMPLES: 00030100
* 51 00030200
100:* INC 50~ 00030300
*23 00030400
THIS IS AN EXAMPLE OF ONE OF THE INPUT COMMANDS. 00030500
*51 00030600
100:BEGIN~ 00030700
*23 00030800
THIS IS AN EXAMPLE OF PLACING A RECORD AT SEQUENCE NUMBER 100. 00030900
* 51 00031000
100:* INC 3;* RESEQ~ 00031100
*23 00031200
THIS IS AN EXAMPLE OF MULTIPLE COMMANDS. 00031300
* 51 00031400
100:*35; THIS RECORD GOES AT 35~ 00031500
*23 00031600
THIS IS AN EXAMPLE OF A COMMAND FOLLOWED BY A RECORD OF INPUT. 00031700
* 51 00031800
100:* OPEN A/B DATA;* PRINT FOR ME;*CLOSE~ 00031900
*23 00032000
THIS IS ANOTHER EXAMPLE OF MULTIPLE COMMANDS. 00032100
NOTE THAT THE "*" MUST APPEAR IN THE NEXT CHARACTER 00032200
POSITION FOLLOWING THE SEMICOLON OR THE REMAINDER OF 00032300
THE RECORD IS TREATED AS DATA. 00032400
* 12 00032500
AN INPUT LINE IS SENT TO THE COMPUTER BY TYPING THE CHARACTER 00032600
"~". TYPING ERRORS CAN BE CORRECTED, BY BACKSPACING 00032800
AND LINE ERASING, BEFORE A MESSAGE IS SENT. THE BACKSPACE 00032900
CHARACTER IS THE APOSTROPHE (SHIFT 7) AND THE LINE ERASE 00033000
CHARACTER IS THE UP-ARROW (SHIFT N). ALL THE FOLLOWING LINES 00033100
OF INPUT ARE EQUIVALENT (NOTE THE UNDERLINED CHARACTERS 00033200
REPRESENT USE OF THE SHIFT): 00033300
* 51 00033400
100:THIS IS IT~ 00033500
* INDENT 15 SKIP 1 00033600
100:THIS IS NOT, BUTNTHIS IS IT~ 00033700
* INDENT 35 00033800
- 00033900
* INDENT 15 00034000
100:THE7IS IS IT~ 00034100
* INDENT 22 00034200
- 00034300
* INDENT 15 00034400
100:THESE777IS IS IT~ 00034500
* INDENT 24 00034600
--- 00034700
*12 00034710
IF, AFTER BACKSPACING AND LINE ERASING, THE INPUT LINE CONTAINS 00034720
MORE THAN 240 CHARACTERS, THE INPUT IS DISCARDED WITH AN 00034730
"INPUT OVERFLW" ERROR MESSAGE. DATA RECORDS ARE ALSO DISCARDED 00034740
(WITH THE ERROR MESSAGE) IF THEY ARE TOO LARGE FOR THE FILE. 00034750
(I.E. GTR 66 FOR COBOL FILES; GTR 80 FOR DATA FILES; AND GTR 72 00034760
FOR ALL OTHER FILES) 00034770
*12 00034800
THERE ARE TWO CLASSES OF REQUESTS TO R/C: LONG AND SHORT. 00034900
LONG OPERATIONS ARE THOSE THAT USUALLY ARE SLOW TO EXECUTE 00035000
AND ARE CHARACTERIZED BY THE "WAIT..." MESSAGE. ALL 00035100
OTHER REQUESTS ARE CLASSIFIED AS SHORT OPERATIONS. LONG OPERATIONS 00035200
ARE SOMETIMES QUEUED BEFORE THE "WAIT..." MESSAGE, TO BE EXECUTED 00035300
ONE AT 00035400
A TIME. SHORT REQUESTS ARE DONE AS THEY ARE RECEIVED. 00035500
THE USERS IN THE LONG REQUEST QUEUE (AND THE USER PERFORMING A 00035600
LONG OPERATION IF IT IS NOT TYPING ON THE REMOTE) PERIODICALLY 00035700
RECEIVE A FEW "RUBOUT" CHARACTERS OF REASSURANCE. 00035800
R/C IGNORES ANY INPUT SENT BY USERS IN THE QUEUE OR BY THE USER 00035900
WHOSE LONG OPERATION IS BEING PROCESSED. 00036000
*12 00036100
IF A USER PRODUCES NO INPUT FOR FIVE MINUTES, 00036200
HE IS SENT THE MESSAGE "LOOK ALIVE". IF HE DOES NOT RESPOND 00036300
WITHIN ANOTHER FIVE MINUTE PERIOD, R/C PROCESSES A "* END DS" 00036400
FOR THAT USER. 00036500
* 13 00036600
R/C OUTPUT 00036700
* 12 00036800
OUTPUT TO THE TELETYPEWRITER OF THE SPECIAL CHARACTERS ~, !, <, {, 00036900
>, AND } IS REPLACED BY A "$" CHARACTER IN ORDER THAT THEY 00037000
DO NOT EVOKE TELETYPWRITER 00037100
CONTROL FUNCTIONS WITH WHICH THEY ARE ASSOCIATED. 00037200
(THESE INCLUDE LINE-FEED, CARRIAGE-RETURN, MESSAGE-END, AND 00037300
PAPER-TAPE-ON.) 00037400
*12 00037500
WHEN THE "BREAK" KEY IS DEPRESSED DURING OUTPUT, THE 00037600
OUTPUT IS TERMINATED WITH THE MESSAGE "BREAK". 00037700
* 03 00037900
R/C FILES 00038200
* 12 00038400
ALL FILES CREATED BY R/C ARE PERMANENT DISK FILES. THE SAVE 00038500
FACTOR IS NORMALLY 7 DAYS, BUT IT MAY BE CHANGED BY THE SAVE 00038600
VERB (SEE BELOW). 00038700
*13 00038800
FILE TYPES 00038900
*12 00039000
R/C ENABLES THE USER TO CREATE AND MAINTAIN ALGOL, COBOL, FORTRAN, 00039100
XALGOL, BASIC, AND 00039150
DATA FILES. THESE FILES HAVE 80 CHARACTER-LONG RECORDS, 00039200
(ONE CARD IMAGE). 00039300
*12 00039400
XALGOL, BASIC, 00039450
ALGOL AND FORTRAN FILES CONTAIN EIGHT DIGIT SEQUENCE NUMBERS 00039500
LOCATED IN THE POSITIONS 73-80 OF THE CARD IMAGE. 00039600
*12 00039700
COBOL FILES CONTAIN SIX-DIGIT SEQUENCE NUMBERS, PLACED IN 00039800
POSITIONS 1-6 OF THE RECORD. 00039900
*12 00040000
DATA FILES ARE NOT PHYSICALLY SEQUENCED ALTHOUGH 00040100
R/C MAINTAINS AN INTERNAL, EIGHT-DIGIT 00040200
NUMBER FOR EACH RECORD. 00040300
*13 00040400
FILE NAMES 00040500
*12 00040600
FILE NAMES MUST BE SUPPLIED TO R/C. 00040700
THE FORM OF A NAME IS <FILE PREFIX> / <FILE SUFFIX>. 00040800
THROUGHOUT THIS DOCUMENT, <FILE-NAME> IS 00040900
USED TO SPECIFY A FILE AND SHOULD BE IN THE FORM ABOVE. 00041000
THE <FILE PREFIX> AND THE <FILE SUFFIX> MAY EACH BE NO LONGER THAN 00041100
SEVEN CHARACTERS. 00041200
* 51 00041300
EXAMPLES: 00041400
* INDENT 20 SKIP 2 00041500
A/B 00041600
* SKIP 1 INDENT 20 00041700
GRIMY/GULCH 00041800
* SKIP 1 INDENT 20 00041900
ZAP/1 00042000
* SKIP 1 INDENT 20 00042100
16JAN/SUFFIX 00042200
* SKIP 1 INDENT 20 00042300
0000000/DISK 00042400
*13 00042500
RECORD REFERENCING 00042600
* 12 00042700
RECORDS IN THE OPEN FILE (SEE OPEN BELOW) ARE REFERRED TO 00042800
BY THEIR SEQUENCE NUMBER. "DATA" FILES ARE IMPLICITLY SEQUENCED 00042900
BY THE VALUE OF THE INCREMENT WHEN THEY ARE OPENED. 00043000
* 12 00043010
AN ALTERNATE METHOD OF REFERENCING RECORDS IN THE OPEN FILE IS 00043020
RELATIVE SEQUENCE NUMBERS. A RELATIVE SEQUENCE NUMBER IS AN INTEGER 00043030
PRECEEDED BY A + OR - SIGN. IT MAY BE USED ANYPLACE A SEQUENCE 00043040
NUMBER IS USED. IT IS TRANSLATED TO A SEQUENCE NUMBER BY MOVING 00043050
FORWARD OR BACKWARD THE INDICATED NUMBER OF RECORDS AND USING THE 00043060
SEQUENCE NUMBER OF THAT RECORD. 00043070
* 12 00043100
RECORDS IN A NON-OPEN FILE (EXTERNAL FILE) ARE REFERRED TO BY 00043200
THEIR RELATIVE POSITION WITHIN THE FILE. THE FIRST RECORD IS 1, 00043300
THE SECOND 2, ETC. ANY SEQUENCING THAT MAY BE ON THE RECORDS IS 00043400
IGNORED. 00043500
*03 00043700
FILE-HANDLING VERBS 00044000
*12 00044100
THIS SECTION DESCRIBES VERBS THAT HANDLE FILES AS A WHOLE, RATHER 00044200
THAN RECORDS WITHIN A FILE. HOWEVER, A FEW VERBS HAVE OPTIONS IN 00044300
R/C SYNTAX THAT PERMIT ACCESS TO RECORDS WITHIN THE FILE. THE 00044400
COMPLETE SYNTAX IS GIVEN FOR EACH VERB AS WELL AS 00044500
A DISCUSSION AND EXAMPLES OF ITS USE. AN ASTERISK ("*") MUST 00044600
ALWAYS BE THE FIRST CHARACTER IN THE INPUT STRING WHEN A COMMAND 00044700
IS ENTERED. IF THIS IS NOT FOLLOWED, AN EXISTING RECORD MAY 00044800
BE OVERWRITTEN BY THE COMMAND ITSELF. 00044900
*10 00045000
FILE OPENING AND CREATION (OPEN) 00045100
* 15 % OPEN 14 00045200
* OPEN <FILE-NAME> <FILE-TYPE> NEW 00045300
* 15 00045400
* OPEN <FILE-NAME> <FILE-TYPE> OLD 00045500
* 15 00045600
* OPEN <FILE-NAME> <FILE-TYPE> 00045700
*12 00045800
THE "* OPEN " VERB ATTACHES THE USER TO THE DISK FILE <FILE-NAME>. 00045900
THE <FILE-TYPE> MUST BE EITHER "ALGOL", "COBOL", "FORTRAN", "XALGOL", 00046000
"BASIC", OR "DATA". IF THE <OPEN TYPE> IS "NEW", A NEW DISK FILE IS 00046100
CREATED. IF THE <OPEN TYPE> IS "OLD", THE DISK FILE <FILE-NAME> IS 00046200
OPENED AND RESEQUENCED BY THE CURRENT VALUE OF THE INCREMENT. IF THE 00046300
<OPEN TYPE> IS NEITHER "NEW" NOR "OLD" THE DISK FILE <FILE-NAME> IS 00046400
OPENED AND IT IS READ TO DETERMINE ITS SEQUENCE NUMBERS. THIS LATTER 00046500
FORM IS SLOWER THAN THE OPEN "OLD". 00046600
* 51 00046700
EXAMPLES: 00046800
* SKIP 2 INDENT 21 00046900
:* OPEN PROGRAM/SOURCE ALGOL NEW~ 00047000
* INDENT 25 00047100
100: 00047200
*23 00047300
THIS CREATES A NEW DISK FILE CALLED PROGRAM/SOURCE. 00047400
* SKIP 2 INDENT 24 00047500
63500:* OPEN ANOTHER/PROG DATA OLD~ 00047600
* INDENT 25 00047700
4500: 00047800
*23 00047900
THIS OPENS THE FILE ANOTHER/PROG SEQUENCING IT BY THE CURRENT 00048000
INCREMENT VALUE. NOTE THAT THE FILE THAT WAS OPEN IS FIRST 00048100
CLOSED BEFORE THE NEXT FILE IS OPENED. 00048200
* SKIP 2 INDENT 21 00048300
:* OPEN YET/ANOTHER COBOL~ 00048400
* INDENT 21 00048410
WAIT... 00048420
* INDENT 21 00048500
READ ONLY FILE. 00048600
* INDENT 23 00048700
7504 00048800
*23 00048900
THIS OPENS THE FILE YET/ANOTHER USING THE SEQUENCE NUMBERS WITHIN THE 00049000
FILE. THE MESSAGE "READ ONLY FILE" INDICATES THAT THE USER 00049100
IS FORBIDDEN (BY THE FILE SECURITY SYSTEM) TO MODIFY THE FILE. 00049200
* 51 00049300
ERRORS: 00049400
* 33 00049700
DUP FILE: <FILE-NAME> 00049800
*22 00049900
A FILE, <FILE-NAME>, ALREADY EXISTS AND THE USER IS TRYING 00050000
TO CREATE A FILE WITH THAT NAME WITH AN "* OPEN ... NEW". 00050100
* 33 00050200
NO FILE: <FILE-NAME> 00050300
*22 00050400
THE USER IS TRYING TO OPEN A FILE, <FILE-NAME>, AND IT DOES NOT 00050500
EXIST ON DISK. 00050600
* 33 00050700
BAD FILE: <FILE-NAME> 00050800
*22 00050900
THE FILE <FILE-NAME> WHICH THE USER IS TRYING TO OPEN IS NOT 00051000
BLOCKED CORRECTLY. THE CORRECT BLOCKING IS 10-WORD RECORDS WITH 00051100
A MULTIPLE OF 3 RECORDS PER BLOCK. 00051200
* 33 00051300
INV USER: <FILE-NAME> 00051400
*22 00051500
THE USER IS TRYING TO OPEN A FILE TO WHICH HE HAS NO ACCESS. 00051600
IF THE USER HAS EITHER SECONDARY OR TERTIARY ACCESS, THE MESSAGE: 00051700
"READ ONLY FILE" IS TYPED. 00051800
* 33 00051900
FILE TOO LONG 00052000
*22 00052100
THE USER IS TRYING TO OPEN A FILE WITH MORE THAN 8191 RECORDS. 00052200
*33 00052300
SEQ OVERFLOW 00052400
*22 00052500
THE FILE THE USER IS OPENING CAUSES THE SEQUENCE COUNTER TO EXCEED 00052600
2,097,151. THE FILE IS OPENED, BUT THE USER SHOULD RESEQUENCE IT. 00052700
* 33 00052800
SEQ ERR-<N> 00052900
*22 00053000
THE FILE CONTAINS A RECORD WHOSE SEQUENCE NUMBER <N> IS LESS 00053100
THAN THE SEQUENCE NUMBER OF THE PRECEEDING RECORD. THE FILE 00053200
IS NOT OPENED. 00053300
* 33 00053500
BAD FILE TYPE: <FILE-TYPE> 00053600
*22 00053700
<FILE-TYPE> IS NOT "ALGOL", "COBOL", "FORTRAN", "XALGOL", 00053800
"BASIC", OR "DATA". 00053850
*10 00053900
FILE CLOSING (CLOSE) 00054000
*12 00054100
FILES ARE CLOSED BY USE OF THE FOLLOWING CONSTRUCT: 00054200
* 15 % CLOSE 3 00054300
* CLOSE 00054400
*12 00054500
THIS VERB DETATCHES THE OPEN FILE, FROM R/C. 00054600
* 51 00054700
EXAMPLES: 00054800
* SKIP 2 00054900
5600:* CLOSE~ 00055000
: 00055100
* 23 00055200
THIS IS AN EXAMPLE OF CLOSING A FILE THAT IS IN THE CORRECT 00055300
ORDER. 00055400
* SKIP 2 00055500
450:* RESEQ 100~ 00055600
9000:* CLOSE~ 00055700
WAIT... 00055710
: 00055800
* 23 00055900
THIS IS AN EXAMPLE OF CLOSING A FILE THAT IS NOT IN ORDER. 00056000
* 51 00056200
ERROR: 00056300
* 33 00056400
NO FILE OPEN: CLOSE 00056500
*22 00056600
THERE IS NO OPEN FILE TO CLOSE. 00056700
*10 00056800
LISTINGS ON THE TELETYPEWRITER (LIST) 00056900
*12 00057000
TO LIST FILES OR ANY OF THEIR SEPARATE RECORDS, THE FOLLOWING CONSTRUCTS00057100
APPLY: 00057200
* 15 % LIST 32 00057300
* LIST 00057400
* 15 00057500
* LIST <FILE-NAME> 00057600
* 15 00057700
* LIST <FILE-NAME> NO 00057800
* 15 00057900
* LIST <FILE-NAME> <M> 00058000
* 15 00058100
* LIST <FILE-NAME> <M> <N> 00058200
* 15 00058300
* LIST <M> 00058400
* 15 00058500
* LIST <M> <N> 00058600
*12 00058700
THE "LIST" VERB CAUSES AN ENTIRE FILE OR PORTIONS OF A FILE TO BE 00058800
LISTED ON THE TELETYPEWRITER. LISTING MAY BE DISCONTINUED BY 00058900
PRESSING THE BREAK KEY ON THE TELETYPEWRITER. 00059000
*22 00059100
THE FIRST FORM LISTS THE OPEN FILE. 00059200
*22 00059300
THE SECOND FORM LISTS THE FILE <FILE-NAME>. 00059400
*22 00059500
THE THIRD FORM LISTS THE FILE <FILE-NAME>, WITHOUT THE RECORD NUMBERS. 00059600
*22 00059700
THE FOURTH FORM LISTS <FILE-NAME> FROM THE <M>TH RECORD TO THE END. 00059800
*22 00060000
THE FIFTH FORM LISTS <FILE-NAME> FROM THE <M>TH TO THE <N>TH RECORDS. 00060100
*22 00060300
THE SIXTH FORM LISTS SEQUENCE NUMBER <M> OF THE OPEN FILE. 00060400
*22 00060500
THE LAST FORM LISTS SEQUENCE NUMBERS <M> THROUGH <N> OF THE OPEN FILE. 00060600
* 51 00060800
EXAMPLES: 00060900
* SKIP 2 00061000
500:* LIST~ 00061100
100:BEGIN 00061200
200: INTEGER I, J, K ; 00061300
300: REAL X, Y, Z ; 00061400
400: ARRAY A [0 : 9] ; 00061500
500: 00061600
* SKIP 1 00061700
5500:* LIST 8900,+3~ 00061800
8950: I := I + 5 ; 00061900
9125: GO TO NEXT ; 00062000
9300: HELP: 00062100
9400: 00062200
* SKIP 1 00062300
300* LIST 60~ 00062400
000060 MOVE A TO B. 00062500
000070 00062600
* SKIP 1 00062700
:* LIST SOME/FILE~ 00062800
1:BEGIN 00062900
2: INTEGER I, J, K ; 00063000
3: REAL X, Y, Z ; 00063100
4: ARRAY A [0 : 9] ; 00063200
5: A [I] := X ; 00063300
6:END. 00063400
: 00063500
* SKIP 1 00063600
500:* LIST SOME/FILE NO~ 00063700
BEGIN 00063800
INTEGER I, J, K ; 00063900
REAL X, Y, Z ; 00064000
ARRAY A [0 : 9] ; 00064100
A [I] := X ; 00064200
END. 00064300
500: 00064400
* SKIP 1 00064500
:* LIST LIBRARY/FILE 2,4~ 00064600
2:PROCEDURE READDATA 567,653 00064700
3:PROCEDURE WRITEDATA 654,789 00064800
4:PROCEDURE DATA 790,808 00064900
: 00065000
* SKIP 1 00065100
:* LIST SOME/FILE 5~ 00065200
5: A [I] := X ; 00065300
6:END. 00065400
: 00065500
* SKIP 1 00065600
:* LIST SOME/FILE 200,500~ 00065700
USE RECORD #S. 00065710
: 00065800
* 23 00065900
THE LAST EXAMPLE ILLUSTRATES THE COMMON ERROR OF REFERENCING 00066000
AN EXTERNAL FILE WITH SEQUENCE NUMBERS INSTEAD OF RECORD NUMBERS. 00066100
*10 00066200
COMPRESSED FILE LISTINGS (QUICK) 00066300
*12 00066400
A COMPRESSED FILE LISTING MAY BE OBTAINED FROM R/C BY USE OF THE 00066500
CONSTRUCTS: 00066600
* 15 % QUICK 16 00066700
* QUICK 00066800
* 15 00066900
* QUICK <FILE-NAME> 00067000
* 15 00067100
* QUICK <FILE-NAME> NO 00067200
* 15 00067300
* QUICK <FILE-NAME> <M> 00067400
* 15 00067500
* QUICK <FILE-NAME> <M> <N> 00067600
* 15 00067700
* QUICK <M> 00067800
* 15 00067900
* QUICK <M> <N> 00068000
*12 00068100
THE "* QUICK" VERB LISTS ON THE TELETYPEWRITER DELETING ALL CONTIGUOUS 00068200
BLANKS EXCEPT THE FIRST. THE FILE IS NOT AFFECTED BY THE VERB. 00068300
* 51 00068400
EXAMPLE: 00068500
* SKIP 2 00068600
4500:* LIST 4300,4400~ 00068700
4300: FOR I := A STEP -1 UNTIL 0 DO 00068800
4400: X [I] := SIN (Y) ; 00068900
4500:* QUICK -2, + 1~ 00069000
4300: FOR I := A STEP -1 UNTIL 0 DO 00069100
4400: X [I] := SIN (Y) ; 00069200
4500: 00069300
*10 00069400
FILE REMOVAL (REMOVE) 00069500
*12 00069600
TO REMOVE A FILE USE THE FOLLOWING CONSTRUCT: 00069700
* 15 % REMOVE 7 00069800
* REMOVE <FILE-NAME> 00069900
*22 00070000
THE REMOVE VERB REMOVES THE FILE <FILE-NAME> FROM DISK. 00070100
* 15 00070110
* REMOVE LISTING 00070120
* 22 00070130
REMOVES LINE/<USERCODE>, THE LISTING FILE FROM THE LAST COMPILATION. 00070140
* 51 00070200
EXAMPLES: 00070300
* SKIP 2 00070400
3200:* REMOVE A/B~ 00070500
3200: 00070600
* SKIP 1 00070700
546:* REMOVE ANOTHER/FILE~ 00070800
NO FILE: ANOTHER/FILE 00070900
546: 00071000
* SKIP 1 00071100
:* OPEN EXAMPLE/X COBOL OLD~ 00071200
46500* REMOVE EXAMPLE/X~ 00071300
: 00071400
*10 00071500
LINE-PRINTER FILE REPRODUCTION (PRINT) 00071600
*12 00071700
THE PRINT VERB: 00071800
* 15 % PRINT 12 00071900
*PRINT <A> <B> 00072000
*22 00072100
PRINTS THE OPENED FILE ON THE LINE PRINTER (LABELED <A> <B>). IF "<B>" 00072200
IS "DOUBLE" THEN DOUBLE SPACING IS USED. 00072300
* 15 00072400
* PRINT <A> <B> <M> 00072500
*22 00072600
AS ABOVE, STARTING WITH SEQUENCE NUMBER <M>. 00072700
* 15 00072800
* PRINT <A> <B> <M>, <N> 00072900
*22 00073000
AS ABOVE, STOPPING WITH SEQUENCE NUMBER <N>. 00073100
* 51 00073200
EXAMPLES: 00073300
* SKIP 2 00073400
:* OPEN TEST/CASE DATA;* PRINT TC DOUBLE;* CLOSE~ 00073500
: 00073600
* 23 00073700
THIS EXAMPLE ILLUSTRATES AN INSTANCE WHERE A SEQUENCED FILE 00073800
SHOULD BE TREATED AS DATA TO SHORTEN THE OPERATION. 00073900
IF THE FILE WAS OPENED "ALGOL OLD" IT WOULD HAVE BEEN 00074000
RESEQUENCED BY THE CURRENT VALUE OF THE INCREMENT AND THEN 00074100
WHEN IT WAS CLOSED IT WOULD HAVE BEEN RECOPIED. IF IT 00074200
WAS OPENED "ALGOL" IT WOULD HAVE BEEN READ TO DETERMINE ITS 00074300
SEQUENCE NUMBERS. EITHER WAY WOULD HAVE MADE THE WHOLE 00074400
OPERATION MUCH SLOWER THAN OPENING THE FILE "DATA". 00074500
* SKIP 1 00074600
8700:* PRINT FOR USER~ 00074700
WAIT... 00074710
8700: 00074800
*10 00074900
PUNCHED-CARD FILE REPRODUCTION (PUNCH) 00075000
*12 00075100
TO PUNCH A FILE: 00075200
* 15 % PUNCH 11 00075300
* PUNCH <A> <B> 00075400
*22 00075500
PUNCHES A CARD DECK (LABELED <A> <B>) OF THE OPENED FILE. 00075600
* 15 00075700
* PUNCH <A> <B> <M> 00075800
*22 00075900
AS ABOVE, STARTING WITH SEQUENCE NUMBER <M>. 00076000
* 15 00076100
* PUNCH <A> <B> <M>, <N> 00076200
*22 00076300
AS ABOVE, STOPPING WITH SEQUENCE NUMBER <N>. 00076400
* 51 00077100
EXAMPLE: 00077200
* SKIP 2 00077300
7600:* PUNCH A B 100,+10~ 00077600
WAIT... 00077610
7600: 00077700
*10 00077800
FILE COMPILATION (COMPILE) 00077900
*12 00078000
FILES MAY BE COMPILED TO THE B5500 LIBRARY BY THE FOLLOWING CONSTRUCT: 00078100
* 15 % COMPILE 11 00078200
* COMPILE <FILE-NAME> 00078300
*22 00078400
THIS VERB INITIATES THE COMPILATION OF THE OPEN FILE TO LIBRARY 00078500
USING THE COMPILER INDICATED IN THE OPEN STATEMENT. THE OBJECT 00078600
CODE IS NAMED <FILE-NAME>. THE LISTING OUTPUT OF THE COMPILATION 00078700
IS EQUATED TO "LINE/<USERCODE>" ON DISK. THE "* LISTING" VERB MAY 00078800
BE USED TO LIST THE SYNTAX ERRORS. 00078900
* 15 00079000
* COMPILE <FILE-NAME> <COMPILER> 00079100
* 22 00079200
COMPILES THE OPEN FILE USING THE SPECIFIED COMPILER. 00079300
* 51 00079400
EXAMPLES: 00079500
* SKIP 2 00079600
5700:* COMPILE OBJECT/CODE~ 00079700
WAIT... 00079710
: 00079800
* SKIP 1 00079900
479:* COMPILE TEST/OBJECT EZTRAN~ 00080000
QUEUED( 1).WAIT... 00080010
: 00080100
* 22 00080200
IN THE LAST EXAMPLE, THE "EZTRAN" COMPILER (EZTRAN/DISK) WILL 00080300
BE USED. IF THE FILE IS NOT IN ORDER, IT WILL BE REORDERED. 00080400
SINCE THIS IS A LONG OPERATION THE USER GETS A "WAIT" MESSAGE. 00080500
THE "QUEUED" MESSAGE INDICATES THAT ANOTHER USERS LONG OPERATION 00080600
IS BEING PROCESSED AND THAT THIS LONG OPERATION IS QUEUED UNTIL 00080700
THE OTHER IS DONE. THE "1" INDICATES THAT THIS IS THE FIRST REQUEST IN 00080800
THE QUEUE. 00080900
* 10 00081000
OUTPUT OF THE COMPILATION (LISTING) 00081100
* 12 00081200
THE LISTING FILE OF THE COMPILER IS EQUATED TO LINE/ 00081300
<USERCODE> ON DISK. THE FILE MAY BE ACCESSED BY THE USE 00081400
OF THE LISTING VERB: 00081500
* 15 % LISTING 15 00081600
* LISTING <FILE-TYPE> <S>, <L>, <U> 00081700
*22 00081800
LISTS THE SEQUENCE NUMBERS RELATED TO SEGMENT <S> FROM RELATIVE 00081900
ADDRESS <L> TO RELATIVE ADDRESS <U>. <FILE-TYPE> IS ALGOL, XALGOL, 00082000
BASIC, COBOL, OR FORTRAN AND INDICATES WHICH COMPILER CREATED THE 00082100
LISTING FILE "LINE/<USERCODE>". (THIS FILE IS AUTOMATICALLY 00082200
GENERATED BY THE COMPILE VERB). 00082300
* 15 00082400
* LISTING <FILE-TYPE> ERRORS 00082500
*22 00082600
LISTS THE SYNTAX ERRORS OF YOUR LAST COMPILATION. 00082700
* 15 00082800
* LISTING 00082900
*22 00083000
PRINTS THE LINE FILE OF YOUR LAST COMPILATION ON THE PRINTER. 00083100
*51 00083200
EXAMPLES: 00083300
* SKIP 2 00083400
:* LISTING ALGOL 5, 25, 35~ 00083500
WAIT... SEGMENT = 5: 00083510
4300: REL. ADDR. = 26. 00083600
4400: REL. ADDR. = 29. 00083700
9200: REL. ADDR. = 32. 00083800
9300: REL. ADDR. = 35. 00083900
:* LISTING ALGOL ERRORS~ 00084200
WAIT... 00084210
7800:ERROR 100 I. 00084300
: 00084400
* SKIP 1 00084500
8900:* LISTING~ 00084600
8900: 00084700
*10 00084800
FILE ZIPPED AS AN "EXECUTE" DECK (ZIP) 00084900
*12 00085000
TO IMPLEMENT THE B5500 ZIP FUNCTION THROUGH R/C, USE THE FOLLOWING 00085100
CONSTRUCT: 00085200
* 15 % ZIP 11 00085300
* ZIP 00085400
*22 00085500
THIS CONSTRUCT ZIPS THE OPENED FILE AFTER IT LINKS ALL THE CONTROL 00085600
CARDS AS INDICATED BY "?". SEE THE ALGOL REFERENCE MANUAL FOR A 00085700
DESCRIPTION OF THE "ZIP WITH FILE-ID" STATEMENT. 00085800
* 15 00085900
* ZIP <FILE-NAME> 00086000
*22 00086100
COPIES THE OPENED FILE CREATING <FILE-NAME> AND ZIPS <FILE-NAME>. NOTE 00086200
THIS "ZIP" CONSTRUCT DOES NOT DESTROY THE OPEN FILE, AS DOES THE FIRST 00086300
FORM. 00086400
*51 00086500
EXAMPLES: 00086600
* SKIP 2 00086700
:COLUMN ON "@";COLUMN 73~ 00086800
:OPEN MAKE/MANUAL DATA NEW;%%EXECUTE XREF/JONES.~ 00086900
200:%%FILE DISK = TEACHER/0000094.~ 00087000
300:%% DATA CARD.~ 00087100
400:$ DISK SIX DOCONLY DOCUMENT FINAL~ 00087200
500:@99999999~ 00087300
600:%% END.~ 00087400
700:* ZIP TEMP/NAME~ 00087500
WAIT... 00087600
700: 00087700
* 23 00087900
THIS EXAMPLE ILLUSTRATES HOW TO CREATE A CONTROL DECK AND 00088000
INITIATE ITS EXECUTION. THE DECK WAS SAVED (UNDER THE NAME 00088100
"MAKE/MANUAL") SINCE THE ZIP CONSTRUCT INCLUDED THE DUMMY FILE 00088200
"TEMP/NAME". (NOTE THAT THE ABOVE DECK WILL CREATE AN R/C 00088300
USERS MANUAL.) 00088400
* SKIP 2 00088500
:* OPEN MAKE/MANUAL DATA;* ZIP T/N;* CLOSE~ 00088600
WAIT... 00088610
: 00088700
*01 00088900
RECORD HANDLING VERBS 00089200
* 10 00089300
RECORD COPYING (DITTO) 00089400
*12 00089500
RECORDS MAY BE COPIED FROM ONE PLACE TO ANOTHER WITHIN A FILE BY 00089600
THE CONSTRUCT: 00089700
* 15 % DITTO 26 00089800
* DITTO <M> 00089900
*22 00090000
COPIES CARD IMAGE <M> AS THE NEXT RECORD. 00090100
* 15 00090200
* DITTO <M>, <N> 00090300
*22 00090400
COPIES THE CARD IMAGES <M> TO <N> AS THE NEXT RECORDS. 00090500
* 15 00090510
* DITTO OVERITE ON 00090520
* 15 00090530
* DITTO OVERITE OFF 00090540
* 15 00090542
* DITTO OVERITE 00090544
* 22 00090550
IF THE DITTO OVERITE IS OFF AND AN EXISTING RECORD IS ABOUT TO BE 00090560
OVERWRITTEN, THE DITTO TERMINATES WITH AN "OVERITE OFF" MESSAGE. 00090570
(IT IS INITIALLY OFF.) THE ABOVE COMMANDS ARE USED TO SET THE OPTION 00090580
AND TO PRINT ITS CURRENT SETTING. ITS SETTING MAY BE REVERSED FOR ONE 00090582
COMMAND BY PREFIXING THE DITTO WITH A -. (E.G. *-DITTO 10,50.) 00090584
* 15 00090586
* DITTO <M> MOVE 00090588
* 15 00090590
* DITTO <M>, <N> MOVE 00090592
* 22 00090594
THE MOVE OPTION, MOVES RECORDS <M> THRU <N> TO THE CURRENT 00090596
LOCATION. THIS OPTION IS VERY FAST, BUT OVERITING IS NOT ALLOWED. 00090598
*51 00090600
EXAMPLES: 00090700
* SKIP 2 00090800
500:* DITTO 200,300~ 00090900
700:* LIST~ 00091000
100:ONE 00091100
200:TWO 00091200
300:THREE 00091300
400:FOUR 00091400
500:TWO 00091500
600:THREE 00091600
700:* DITTO 200,300 MOVE;*LIST~ 00091700
100:ONE 00091710
400:FOUR 00091720
500:TWO 00091730
600:THREE 00091740
700:TWO 00091750
800:THREE 00091760
900: 00091770
*10 00092400
COPYING EXTERNAL FILES (COPY) 00092500
*12 00092600
WHOLE OR PARTIAL EXTERNAL FILES MAY BE COPIED INTO THE CURRENTLY 00092700
OPENED FILE BY THE CONSTRUCTS: 00092800
* 15 % COPY 28 00092900
* COPY <FILE-NAME> 00093000
* 15 00093100
* COPY <FILE-NAME> <M> 00093200
* 15 00093300
* COPY <FILE-NAME> <M>, <N> 00093400
* 15 00093410
* COPY <FILE-NAME> MERGE 00093420
*22 00093500
THE COPY VERB COPIES RECORDS FROM ANOTHER FILE (<FILE-NAME>). 00093600
*22 00093700
THE FIRST FORM COPIES THE WHOLE FILE. 00093800
THE SECOND FORM COPIES THE <M>-TH RECORD (WHERE THE FIRST RECORD 00093900
OF <FILE-NAME> IS 1, THE SECOND RECORD IS 2, THE THIRD IS 3, ETC.). 00094000
THE THIRD FORM COPIES THE <M>-TH THROUGH THE <N>-TH RECORDS. 00094100
THE LAST FORM USES THE SEQUENCE NUMBERS OF THE RECORDS OF 00094102
<FILE-NAME> TO DETERMINE THEIR POSITION IN THE OPEN FILE. 00094104
* 15 00094110
* COPY OVERITE ON 00094120
* 15 00094130
* COPY OVERITE OFF 00094140
* 15 00094142
* COPY OVERITE 00094144
* 22 00094150
IF THE COPY OVERITE IS OFF AND AN EXISTING RECORD IS ABOUT TO BE 00094160
OVERWRITTEN, THE COPY TERMINATES WITH AN "OVERITE OFF" MESSAGE. 00094170
(IT IS INITIALLY OFF.) THE ABOVE COMMANDS ARE USED TO SET THE OPTION 00094180
AND TO PRINT ITS CURRENT SETTING. ITS SETTING MAY BE REVERSED FOR ONE 00094182
COMMAND BY PREFIXING THE COPY WITH A -. (E.G. *-COPY A/B 10,50.) 00094184
* 51 00094200
EXAMPLES: 00094300
* SKIP 2 00094400
:* OPEN SOURCE/MARK7 ALGOL NEW~ 00094500
100:* COPY SOURCE/MARK6~ 00094600
WAIT... 00094610
8900: 00094700
* SKIP 1 00094800
500:* COPY LIBRARY/FILE 345, 368~ 00094900
WAIT... 00094910
2800: 00095000
* SKIP 1 00095005
:QUICK PATCH/FILE~ 00095010
1:A 00000050 00095015
2:B 00000150 00095020
3:C 00000200 00095025
4:X 00000175 00095030
5:Y 00000250 00095035
6:Z 00000250 00095040
:OPEN MY/SOURCE ALGOL OLD~ 00095045
400:* COPY OVERITE ON;*COPY PATCH/FILE MERGE~ 00095050
400:* LIST~ 00095055
50:A 00095060
100:1 00095065
150:B 00095070
175:X 00095075
200:C 00095080
250:Z 00095085
300:3 00095090
400: 00095095
*10 00095100
INTRA-RECORD EDITING (INLINE) 00095200
*12 00095300
RECORDS MAY BE EDITED BY USE OF THE "* INLINE" CONSTRUCTS 00095400
DESCRIBED IN THE NEXT PARAGRAPHS. 00095500
* 15 % INLINE 22 00095600
* INLINE <M> 00095700
* 15 00095800
* INLINE 00095900
* 15 00095910
* INLINE <M> <EDIT CHR> 00095920
* 15 00095930
* INLINE <EDIT CHR> 00095940
*12 00096000
THIS SETS UP LINE <M> FOR INLINE EDITING. IF THE SEQUENCE 00096100
NUMBER <M> IS NOT INCLUDED WITH THE COMMAND, THE PREVIOUS 00096200
RECORD IS USED AND THE INITIAL PRINTING OF IT IS SUPPRESSED. 00096300
* 15 00096310
* INLINE ECHO ON 00096320
* 15 00096330
* INLINE ECHO OFF 00096340
* 15 00096342
* INLINE ECHO 00096344
* 12 00096350
THE MODIFIED RECORD WILL BE TYPED ON THE TELETYPE IF THE INLINE ECHO 00096360
IS ON. (IT IS INITIALLY ON.) THE ABOVE COMMANDS ARE USED TO SET THE 00096370
OPTION AND TO PRINT ITS CURRENT SETTING. ITS SETTING MAY BE REVERSED 00096372
FOR ONE COMMAND BY PREFIXING THE INLINE WITH A -. (E.G. * -INLINE +3.) 00096374
*12 00096400
TO MODIFY A PORTION OF A RECORD (CARD IMAGE) USE THE "* INLINE" 00096500
VERB. R/C PRINTS THE RECORD NUMBER AND THE LINE, THEN GIVES A 00096600
CARRIAGE RETURN AND LINE FEED. IT NEXT SPACES THE PRINT BALL 00096700
(ON THE NEW LINE) DIRECTLY BELOW THE FIRST CHARACTER POSITION 00096800
OF THE OLD LINE, ABOVE. THE USER SPACES THE PRINT BALL TO THE 00096900
PROPER POSITION AND ACCOMPLISHES THE FOLLOWING ACTIONS: 00097000
*22 00097100
TO INSERT A STRING, TYPE THE LETTER "I" FOLLOWED BY THE STRING 00097200
AND A "~". 00097300
*22 00097400
TO DELETE A STRING, USE THE LETTER "D" FOLLOWED BY SPACES 00097500
UNDER THE CHARACTERS TO BE DELETED AND THEN A "~". 00097600
*22 00097700
TO REPLACE A STRING, USE THE LETTER "R" FOLLOWED BY THE NEW STRING 00097800
OF THE SAME LENGTH AND A "~". 00097900
*22 00098000
IF THE MODIFICATION IS TO BE DONE IN THE FIRST CHARACTER, THEN 00098100
INCLUDE THE "I", "R", OR "D" WITH THE INLINE COMMAND. 00098200
* SKIP 2 INDENT 10 00098300
EXAMPLES: 00098400
* 15 00098500
TO INSERT CHARACTERS INTO A RECORD: 00098600
* SKIP 2 INDENT 20 00098700
300:*INLINE 30500~ 00098800
* INDENT 18 00098900
30500:ABCDEFGHIJK 00099000
* INDENT 15 00099100
00030500: I12345~ 00099200
*INDENT 18 00099300
30500:ABC12345DEFGHIJK 00099400
* 15 00099500
TO DELETE CHARACTERS FROM A RECORD: 00099600
* SKIP 2 INDENT 19 00099700
7700:*INLINE 67700~ 00099800
* INDENT 18 00099900
67700:ABCDEFGHIJKLMNOP 00100000
* INDENT 15 00100100
00067700: D ~ 00100200
* INDENT 18 00100300
67700:ABHIJKLMNOP 00100400
* 15 00100500
TO REPLACE CHARACTERS IN A RECORD: 00100600
* SKIP 2 INDENT 20 00100700
600:* INLINE 551~ 00100800
* INDENT 20 00100900
551:ABCDEFGHIJKLMNOPQRST 00101000
* INDENT 15 00101100
00000551:R12345~ 00101200
* INDENT 20 00101300
551:A12345GHIJKLMNOPQRST 00101400
* 15 00101500
TO MODIFY A RECORD BEGINNING WITH ITS FIRST CHARACTER: 00101600
* 51 00101700
00006700:*INLINE 70800 D~ 00101800
* INDENT 18 00101900
70800:ABCDEFGHIJKLM 00102000
* INDENT 15 00102100
00070800: ~ 00102200
* INDENT 18 00102300
70800:DEFGHIJKLM 00102400
* INDENT 18 00102500
70900:* INLINE D; ~ 00102600
* INDENT 18 00102700
70800:EFGHIJKLM 00102800
*22 00102900
THE "R" AND "I" FORMS OF THIS LATTER CONSTRUCT OPERATE IN A 00103000
SIMILAR FASHION. 00103100
*10 00103200
STRINGS 00103300
*12 00103400
R/C SCANS FOR THE OCCURRENCE OF A STRING BY USE OF THE "* SCAN" 00103500
AND "* CHANGE" VERBS. 00103600
IN THIS APPLICATION THE FOLLOWING DEFINITION OF "STRING" APPLIES: 00103700
* 51 00103800
<STRING> ::= <LEFT> <TEXT> <RIGHT> <COLUMN RANGE> 00103900
* INDENT 25 00104000
<LEFT> ::= "/ ( / [ / . 00104100
<RIGHT> ::= "/ ) / ] / . 00104200
<TEXT> ::= {ANY STRING OF CHARACTERS 00104300
* INDENT 35 00104400
EXCLUDING THE <RIGHT> CORRESPONDING 00104500
TO THE <LEFT> CHARACTER USED.} 00104600
* INDENT 25 00104601
<COLUMN RANGE> ::= {EMPTY} / 00104602
* INDENT 35 00104603
@<INTEGER> / @<INTEGER>-<INTEGER> 00104604
* 12 00104605
IF THE STRING IS DELIMITED BY PERIODS, AN ADDED CHECK WILL BE 00104610
MADE BEFORE DETERMINING A MATCHED STRING. THIS CHECK INSURES 00104615
THAT THE MATCHED STRING WILL BE IMMEDIATELY PRECEEDED AND 00104620
FOLLOWED BY A NON-ALPHANUMERIC CHARACTER. HENCE THIS FORM 00104625
SHOULD BE USED FOR IDENTIFIERS. 00104630
* 12 00104635
IF THE <COLUMN RANGE> IS SPECIFIED, A MATCH WILL BE 00104640
FOUND ONLY IF THE FIRST CHARACTER APPEARS WITHIN THE RANGE. 00104645
* 51 00104700
EXAMPLES: 00104800
* SKIP 2 INDENT 20 00104900
"FD"@8 00105000
* SKIP 1 INDENT 20 00105100
.LIST. 00105200
* SKIP 1 INDENT 20 00105300
"M := IMAGE [5] ;"@15-25 00105400
* SKIP 1 INDENT 20 00105500
( WORD [I] := "SCAN" ;) 00105600
* SKIP 1 INDENT 20 00105700
["] 00105800
* SKIP 1 INDENT 20 00105900
"" 00106000
*10 00106100
CHANGING THE OCCURRENCE OF A STRING (CHANGE) 00106200
*12 00106300
ENTIRE STRINGS MAY BE CHANGED IN A FILE BY USE OF THE "* CHANGE" 00106400
VERB. 00106500
*15 % CHANGE 24 00106600
* CHANGE <STRING> TO <STRING> 00106700
*22 00106800
SCANS THE CURRENT RECORD REPLACING EVERY OCCURRENCE OF THE FIRST STRING 00106900
WITH THE SECOND. IF NO "<STRING> TO <STRING>" APPEARS THE PREVIOUSLY 00107000
USED STRINGS WILL BE USED AGAIN. 00107010
* 15 00107100
* CHANGE <M> <STRING> TO <STRING> 00107200
*22 00107300
AS ABOVE, FOR THE RECORD WITH SEQUENCE NUMBER <M>. 00107400
* 15 00107500
* CHANGE <M>, <N> <STRING> TO <STRING> 00107600
*22 00107700
AS ABOVE, FOR ALL RECORDS FROM SEQUENCE NUMBER <M> TO <N>. 00107800
* 15 00107810
* CHANGE ECHO ON 00107820
* 15 00107830
* CHANGE ECHO OFF 00107840
* 15 00107842
* CHANGE ECHO 00107844
* 22 00107850
THE MODIFIED RECORDS WILL BE TYPED ON THE TELETYPE IF THE CHANGE ECHO 00107860
IS ON. (IT IS INITIALLY OFF.) THE ABOVE COMMANDS ARE USED TO SET THE 00107870
OPTION AND TO PRINT ITS CURRENT VALUE. ITS SETTING MAY BE REVERSED FOR 00107872
A COMMAND BY PREFIXING THE CHANGE WITH A -. (E.G. *-CHANGE "X" TO "Z".) 00107874
* 51 00107900
EXAMPLES: 00108000
* SKIP 2 00108100
00004200:* CHANGE "REMOTE/CARD" TO "R/C";*CHANGE 5300~ 00108200
00005300: 00108300
* SKIP 1 00108400
8700:* -CHANGE -1 .TWX.@25-30 TO "TELETYPWRITER"~ 00108500
8600: THE OUPUT IS TYPED ON THE TELETYPWRITER IF 00108550
00008600: 00108600
* SKIP 1 00108700
450:* CHANGE 232, 448 "IMAGE [I]" TO (Z [J])~ 00108800
WAIT... 00108810
00000448: 00108900
* SKIP 1 00108910
47000:* CHANGE 2200+6 " "@1 " "~ 00108920
00002800:* CHANGE +1+3 " "@1 ""~ 00108930
00003200: 00108940
*10 00109000
SCANNING FOR OCCURRENCE OF A STRING (SCAN) 00109100
* 15 % SCAN 31 00109200
* SCAN <STRING> 00109300
*22 00109400
SCANS THE FILE FROM THE CURRENT SEQUENCE NUMBER TO THE END OF THE 00109500
FILE OR UNTIL THE FIRST OCCURRENCE OF <STRING>. IF THE STRING 00109600
IS FOUND THE RECORD CONTAINING IT IS TYPED ON THE TELETYPEWRITER. 00109700
IF <STRING> IS ACTUALLY TWO <STRING>S THE SCAN STOPS AT THE FIRST 00109800
OCCURRENCE OF EITHER <STRING>. IF NO <STRING> APPEARS WITH THE 00109810
COMMAND, IT IS ASSUMED TO BE THE SAME <STRING> AS IN THE LAST "* SCAN" 00109900
OR "* CHANGE" COMMAND. IF THE SCAN VERB IS PREFIXED BY A -, 00110000
THE SCAN WILL BE FOR RECORDS NOT CONTAINING THE <STRING>. 00110005
* 15 00110100
* SCAN <M> <STRING> 00110200
*22 00110300
AS ABOVE, EXCEPT THAT THE SCAN BEGINS AT SEQUENCE NUMBER <M>. 00110400
* 15 00110500
* SCAN <M>, <N> <STRING> 00110600
*22 00110700
AS ABOVE, EXCEPT THAT THE SCANNING STOPS AFTER SEQUENCE NUMBER <N>. 00110800
* 15 00110900
* SCAN <FILE-NAME> <STRING> 00111000
* 22 00111100
THE FILE <FILE-NAME> IS SCANNED FOR <STRING>. 00111200
EVERY RECORD IN WHICH <STRING> OCCURS IS TYPED ON THE TELETYPEWRITER. 00111300
* 15 00111400
* SCAN <FILE-NAME> <M> <STRING> 00111500
*22 00111600
AS ABOVE, EXCEPT THE SCAN BEGINS AT RECORD NUMBER <M>. 00111700
* 15 00111800
* SCAN <FILE-NAME> <M>, <N> <STRING> 00111900
*22 00112000
AS ABOVE, EXCEPT THAT THE SCAN STOPS AFTER THE <N>-TH RECORD. 00112100
* 51 00112200
EXAMPLES: 00112300
* SKIP 2 00112400
:* SCAN LIBRARY/FILE "TABLE OF CONTENTS"@3~ 00112500
WAIT... 00112510
1:% TABLE OF CONTENTS ... READDATA 00112600
98:% TABLE OF CONTENTS ... READDATA 00112700
99:% TABLE OF CONTENTS ... WRITEDATA 00112800
273:% TABLE OF CONTENTS ... WRITEDATA 00112900
274:% TABLE OF CONTNETS ... DATE 00113000
285:% TABLE OF CONTENTS ... DATE 00113100
: 00113200
* SKIP 1 00113300
8700:* SCAN 1 .PRINTER. .LINE.~ 00113400
WAIT... 00113410
100: FILE PRINTER 1 (2, 15) ; 00113500
101:* SCAN~ 00113600
WAIT... 00113610
2400: WRITE (LINE, F, LISTA) ; 00113700
2401:* SCAN~ 00113800
WAIT... 00113810
EOF NO STRING 00113900
8700: 00114000
* 10 00114100
RECORD FORMATING (EDIT) 00114200
*12 00114300
RECORDS MAY BE FORMATED BY THE FOLLOWING CONSTRUCTS: 00114400
* 15 % EDIT 20 00114500
* EDIT <M>, <N>: <F> 00114600
*22 00114700
EDITS EACH RECORD FROM SEQUENCE NUMBER <M> TO <N> ACCORDING TO THE 00114800
FORMAT RECORD WITH SEQUENCE NUMBER <F>. 00114900
*22 00115000
THE RESULT OF THE EDIT IS THAT EACH RECORD BECOMES IDENTICAL WITH 00115100
THE FORMAT RECORD EXCEPT WHERE THERE IS A "#" OR "@" CHARACTER IN 00115200
FORMAT RECORD. EACH "@" IS REPLACED BY THE NEXT CHARACTER OF THE 00115300
INPUT RECORD. EACH "#" SKIPS THE NEXT CHARACTER OF THE INPUT RECORD. 00115400
* 15 00115410
* EDIT ECHO ON 00115420
* 15 00115430
* EDIT ECHO OFF 00115440
* 15 00115442
* EDIT ECHO 00115444
* 22 00115450
THE MODIFIED RECORDS WILL BE TYPED ON THE TELETYPE IF THE EDIT ECHO 00115460
IS ON. (IT IS INITIALLY OFF.) THE ABOVE COMMANDS ARE USED TO SET THE 00115470
ECHO AND TO PRINT ITS CURRENT SETTING. IT SETTING MAY BE REVERSED FOR A 00115472
COMMAND BY PREFIXING THE EDIT WITH A -. (E.G. *- EDIT 200,800:2.) 00115474
* 51 00115500
EXAMPLE: 00115600
* 51 00115700
100:1234567890~ 00115900
200:ABCDEFGHIJK~ 00116000
300: @@@...@@. THIS IS THE WAY THE LINE ENDS...@##@@@~ 00116100
400:* -EDIT 100, 200:300~ 00116200
100: 123...45. THIS IS THE WAY THE LINE ENDS...690 00116300
200: ABC...DE. THIS IS THE WAY THE LINE ENDS...FIJK 00116400
*10 00117200
RESEQUENCING RECORD NUMBERS (RESEQ) 00117300
*12 00117400
FILE SEQUENCE NUMBERS MAY BE MODIFIED BY THE FOLLOWING CONSTRUCTS: 00117500
* 15 % RESEQ 20 00117600
* RESEQ 00117700
*22 00117800
RESEQUENCES THE FILE BY THE CURRENT INCREMENT COUNTER. 00117900
* 15 00118000
* RESEQ <I> 00118100
*22 00118200
SETS THE INCREMENT COUNTER TO <I> AND RESEQUENCES. 00118300
* 15 00118400
* RESEQ <M>, <N> 00118500
*22 00118600
RESEQUENCES THE SEQUENCE NUMBERS <M> THRU <N> BY THE CURRENT 00118700
INCREMENT COUNTER. THE FIRST SEQUENCE NUMBER IS <M>. 00118800
*15 00118900
* RESEQ <M>, <N>, <K> 00119000
*22 00119100
AS ABOVE, EXCEPT THAT THE FIRST SEQUENCE NUMBER IS <K>. 00119200
* 15 00119300
* RESEQ <M>, <N>, <K>, <I> 00119400
*22 00119500
AS ABOVE, EXCEPT THE INCREMENT IS SET TO <I> FIRST. 00119600
* 51 00119700
EXAMPLES: 00119800
* SKIP 2 00119900
895:* RESEQ~ 00120000
323:* RESEQ 100~ 00120100
32300: 00120200
*10 00120300
DELETION OF RECORDS (DELETE) 00120400
*12 00120500
RECORDS MAY BE DELETED FROM A FILE BY THE FOLLOWING CONSTRUCTS: 00120600
* 15 % DELETE 11 00120700
* DELETE <M> 00120800
*22 00120900
DELETES CARD IMAGE <M>. 00121000
* 15 00121100
* DELETE <M>, <N> 00121200
*22 00121300
DELETES CARD IMAGES <M> THROUGH <N>. 00121400
* 15 00121410
* DELETE 00121420
* 22 00121430
DELETES THE CURRENT CARD. 00121440
*51 00121500
EXAMPLES: 00121600
* SKIP 2 00121700
3400:* DELETE 3300~ 00121800
3300: 00121900
* SKIP 1 00122000
2100:* DELETE 1500, + 3;* LIST 1400,2000~ 00122100
1400: BEGIN 00122200
1900: GO TO ERROR ; 00122300
2000: END ; 00122400
2100: 00122500
* SKIP 1 00122510
2100:* 2000~ 00122520
2000: END ; 00122530
00002000:*DELETE~ 00122540
2000: 00122550
*01 00122700
OPERATIONAL COMMANDS 00123000
* 10 00123100
SET THE INCREMENT COUNTER (INC) 00123200
*12 00123300
THE INCREMENT COUNTER MAY BE SET BY 00123400
THE CONSTRUCT "* INC". 00123500
* 15 % INC 7 00123600
* INC <N> 00123700
*22 00123800
THIS CONSTRUCT SETS THE INCREMENT COUNTER TO <N>. 00123900
* 15 00123910
* INC 00123920
* 22 00123930
THIS CONSTRUCT PRINTS THE CURRENT VALUE. 00123940
*51 00124000
EXAMPLES: 00124100
* SKIP 2 00124200
100:BEGIN~ 00124300
200: INTEGER I, J, K ;~ 00124400
300:* INC 3~ 00124500
300: BOOLEAN B ;~ 00124600
303: REAL X, Y, Z ;~ 00124700
306: 00124800
*10 00124900
NON-TELETYPEWRITER CHARACTERS (PERCENT) 00125000
*12 00125100
SPECIAL CHARACTERS ON THE B5500 BUT NOT AVAILABLE ON THE 00125200
TELETYPEWRITER KEYBOARD (INCLUDING THE QUESTION MARK "?") 00125300
MAY BE INSERTED INTO R/C MAINTAINED FILES BY THE "* PERCENT" 00125400
CONSTRUCT. 00125500
* 15 % PERCENT 28 00125600
* PERCENT ON 00125700
* 15 00125800
* PERCENT OFF 00125900
* 15 00125910
* PERCENT 00125920
*22 00126000
THE "* PERCENT" CONSTRUCTS ALLOW A USER TO INPUT THE SPECIAL RESERVED 00126100
CHARACTERS (I.E. LEFT-ARROW, NEQ, LSS, GEQ, GTR, LEQ, AND ?). THE ABOVE 00126200
COMMANDS ARE USED TO SET THE OPTION AND TO PRINT ITS CURRENT SETTING. 00126300
WHEN THE PERCENT OPTION IS ON, INPUT FROM THE TELETYPEWRITER IS SCANNED 00126700
FOR SPECIAL CHARACTER PAIRS. IF A PAIR IS FOUND IT IS REPLACED BY THE 00126800
SINGLE CHARACTER AS FOLLOWS: 00126900
* SKIP 2 TAB 15, 35 00127000
CHARACTER PAIR/ INTERNAL CHARACTER / 00127100
--------------/ ------------------ / 00127200
* TAB 22, 44 00127300
%- / ~ (LEFT ARROW) / 00127400
%= / ! (NEQ) / 00127500
%( / < (LSS) / 00127600
%) / > (GTR) / 00127700
%[ / { (LEQ) / 00127800
%] / } (GEQ) / 00127900
%% / ? (QUESTION MARK) / 00128000
%* / * (STAR) (1ST CHR ONLY) / 00128100
*22 00128200
A "%" FOLLOWED BY ANY OTHER CHARACTER REMAINS AS IS. 00128300
WHEN THE PERCENT OPTION IS ON, THE TRANSLATION TAKES PLACE 00128400
IMMEDIATELY. HENCE ONLY ONE BACKSPACE (SHIFT 7) IS NEEDED. 00128500
*51 00128600
EXAMPLES: 00128700
* SKIP 2 00128800
100:* PERCENT OFF~ 00128900
100:%% COMPILE ... %= %( %A~ 00129000
200:* PERCENT ON~ 00129100
200:%% COMPILE ... %= %( %A~ 00129200
300:* LIST~ 00129300
100:%% COMPILE ... %= %( %A 00129400
200:? COMPILE ... ! < %A 00129500
300: 00129600
*22 00129700
NOTE THAT ON THE TELETYPWRITER THE CHARACTERS 00129800
"!" AND "<" WOULD HAVE BEEN TYPED AS A "$". 00129900
*10 00130000
R/C VERB RENAMING (REPLACE) 00130100
*12 00130200
R/C VERBS MAY BE REPLACED BY OTHER WORDS THROUGH THE CONSTRUCT 00130300
"* REPLACE". 00130400
* 15 % REPLACE 3 00130500
* REPLACE <A>:<B> 00130600
*22 00130700
THE REPLACE VERB RENAMES THE VERB <A> WITH THE WORD <B>. 00130800
* 51 00130900
EXAMPLES: 00131000
* SKIP 2 00131100
:* REPLACE LIST:TYPE~ 00131200
:* REPLACE INLINE:IN~ 00131300
:* REPLACE REPLACE:R~ 00131400
:* R CHANGE:C~ 00131500
: 00131600
*10 00131700
AUTOMATIC FIRST CHARACTER PLACEMENT (TAB) 00131800
*12 00131900
R/C USERS MAY INITIALLY (AUTOMATICALLY) PRE-POSITION THE 00132000
PRINT BALL AT ANY COLUMN BY USE OF THE "* TAB" CONSTRUCT. 00132100
* 15 % TAB 20 00132200
* TAB <N> 00132300
*22 00132400
SETS UP AUTOMATIC INDENTING TO POSITION <N>, WHERE 1 LEQ <N> LEQ 54. 00132500
* 15 00132510
* TAB +<N> 00132520
* 15 00132530
* TAB -<N> 00132540
* 22 00132550
ADJUSTS THE TAB AMOUNT BY THE VALUE OF <N>. 00132560
* 15 00132562
* TAB ON 00132564
* 15 00132566
* TAB OFF 00132567
* 15 00132568
* TAB 00132569
* 22 00132570
THE TAB OPTION PERMITS THE USER (BY SETTING THE OPTION OFF) TO 00132572
SURPRESS THE TAB SPACING ON THE TELETYPEWRITER. THE AUTOMATIC 00132574
INDENTING STILL APPLIES TO THE RECORDS CREATED. THE LAST CONSTRUCT 00132576
PRINTS BOTH THE SETTING OF THE OPTION AND THE TAB VALUE. 00132578
*51 00132600
EXAMPLE: 00132700
* SKIP 2 00132800
4500:* TAB 5~ 00132900
4500: BEGIN~ 00133000
4600: * TAB+2~ 00133100
4600: K := K + DELTAK ;~ 00133200
4700: * TAB - 2;END ;~ 00133300
4800: * TAB 1~ 00133400
4800: 00133500
* 10 00133600
SETTING THE SAVE FACTOR (SAVE) 00133700
* 12 00133800
THE SAVE FACTOR OF A DISK FILE IS THE NUMBER OF DAYS 00133900
AFTER ITS LAST ACCESS BEFORE IT WILL BE CONSIDERED EXPIRED. 00134000
THE SAVE FACTOR FOR A NEW USER IS SET AT 7 DAYS. IT MAY BE 00134100
CHANGED BY: 00134200
* 15 % SAVE 7 00134300
* SAVE <N> 00134400
* 22 00134500
SETS THE SAVE FACTOR AT <N> DAYS. 00134600
* 15 00134610
* SAVE 00134620
* 22 00134630
PRINTS THE CURRENT VALUE OF THE SAVE FACTOR. 00134640
*51 00134700
EXAMPLE: 00134800
* SKIP 2 00134900
:* SAVE 10~ 00135000
: 00135100
*10 00135200
TABULATING (COLUMN) 00135300
* 15 % COLUMN 17 00135400
* COLUMN <OPTIONAL STRING> 00135500
* 15 00135600
* COLUMN ON <OPTIONAL STRING> 00135700
* 15 00135800
* COLUMN OFF <OPTIONAL STRING> 00135900
* 15 00136000
* COLUMN <STP1> <STP2> <STP3> <STP4> <OPTL STRING> 00136100
* 22 00136200
THE COLUMN VERB IS USED TO SET UP COLUMN POSITIONS AND INDICATE 00136300
WHAT CHARACTER IS THE COLUMN CHARACTER. THE FIRST FORM PRINTS THE 00136400
CURRENT SETTINGS. THE SECOND AND THIRD FORMS ARE USED TO TURN THE 00136500
OPTION ON OR OFF. THE FOURTH FORM SETS UP FROM 1 TO 4 COLUMN 00136600
POSITIONS. ANY FORM MAY SET THE COLUMN CHARACTER. 00136700
* 22 00136800
WHEN THE OPTION IS ON, EACH OCCURENCE OF THE COLUMN CHARACTER 00136900
IN AN INPUT RECORD CAUSES BLANKS TO BE INSERTED TO THE NEXT 00137000
HIGHER COLUMN POSITION. 00137100
* 51 00137200
EXAMPLE: 00137300
* SKIP 2 00137400
:COLUMN ON "#";* COLUMN 10 20 25;COLUMN~ 00137500
COLUMN ON # 10 20 25 00137600
:OPEN COLUMN/SHOW ALGOL NEW~ 00137700
100:ABC#123#XYZ#IJK#789~ 00137800
200:* LIST~ 00137900
100:ABC 123 XYZ IJK#789 00138000
200:123456789012345678901234567890~ 00138100
300: 00138150
*01 00138250
AUXILIARY COMMANDS 00138500
*10 00138600
MESSAGES TO OTHERS (MAIL) 00138700
*12 00138800
MESSAGES MAY BE RECEIVED FROM, AND SENT TO, OTHER USERS OF R/C 00138900
BY THE "* MAIL" VERB DESCRIBED BELOW. 00139000
* 15 % MAIL 8 00139100
* MAIL 00139200
*22 00139300
THIS LISTS THE MAIL SENT TO YOU, AND REMOVES IT FROM YOUR "MAIL-BOX". 00139400
* 15 00139500
* MAIL TO <USERCODE>: MESSAGE 00139600
*22 00139700
THIS ADDS YOUR MESSAGE TO THE <USERCODE>-S MAIL. 00139800
*51 00139900
EXAMPLES: 00140000
* SKIP 2 00140100
:* MAIL~ 00140200
PLEASE SEE ME WHEN YOU GET A CHANCE-BALDWIN 00140300
THERE WILL NOT BE ANY REMOTE TIME 10/24/70-SYSTEM 00140400
:* MAIL TO BALDWIN:MY OFFICE- 10AM- FRIDAY~ 00140500
*10 00140600
HOW TO DETACH YOURSELF FROM R/C (END) 00140700
*12 00140800
THREE METHODS ARE AVAILABLE TO THE USER WHEN HE WISHES TO 00140900
MAKE AN EXIT FROM R/C: 00141000
* 15 % END 18 00141100
* END 00141200
* 15 00141300
* END <X> 00141400
* 15 00141500
* END DS 00141600
*22 00141700
THE FIRST CONSTRUCT DETACHES THE USER FROM R/C. 00141800
*22 00141900
THE SECOND CONSTRUCT CAUSES R/C TO REMEMBER, FROM ONE RUN TO THE NEXT, 00142000
THE VALUES OF THE OPTIONS AND THE EFFECTS OF THE "* REPLACE" VERB. THE 00142100
"* END" CONSTRUCT DOES NOT GENERATE THIS LASTING EFFECT. <X> DENOTES 00142200
ANY ALPHANUMERIC CHARACTER STRING. 00142300
*22 00142400
THE THIRD CONSTRUCT ALLOWS A USER TO END WITHOUT CLOSING THE OPEN 00142500
FILE. R/C REMEMBERS THE FILE STRUCTURE FOR THE NEXT TIME. HOWEVER THE 00142600
FILE SHOULD NOT BE ACCESSED BY ANY OTHER PROGRAM UNTIL IT IS CLOSED 00142700
USING R/C. THIS FORM CAN BE USED WHEN THE FILE EDITING IS SPLIT OVER 00142800
MORE THAN ONE RUNNING OF R/C. 00142850
*51 00142900
EXAMPLES: 00143000
* SKIP 2 00143100
:* END~ 00143200
GOOD BYE 00143300
* SKIP 1 00143400
634:* END X~ 00143500
WAIT... 00143510
GOOD BYE 00143600
* SKIP 1 00143700
892:* END DS~ 00143800
GOOD BYE 00143900
*10 00144000
LEARNING ABOUT R/C ON THE TELETYPWRITER (TEACH) 00144100
* 12 00144200
THE TEACH VERB ALLOWS A USER AT THE TELETYPWRITER TO LEARN 00144300
ABOUT THE R/C VERBS AND SPECIFICALLY WHAT VERBS HE MAY USE. 00144400
* 15 % TEACH 9 00144500
* TEACH 00144600
* 22 00144700
THIS LISTS THE VERBS THAT YOU ARE PERMITTED TO USE. THE LIST 00144800
REFLECTS THE USE OF REPLACE ON ANY OF THE VERBS. 00144900
* INDENT 1 00145000
* 15 00145100
* TEACH <VERB> 00145200
* 22 00145300
THIS LISTS THE SYNTAX AND SEMANTICS OF THE RESERVED WORD <VERB>. 00145400
* 51 00145500
EXAMPLES: 00145600
* SKIP 2 00145700
:* TEACH SAVE~ 00145800
* SAVE $N$ 00145900
SETS THE SAVE FACTOR AT $N$ DAYS. 00146000
* SAVE 00146010
PRINTS THE CURRENT VALUE OF THE SAVE FACTOR. 00146020
: 00146100
* SKIP 1 00146200
121970:* TEACH~ 00146300
THE VALID REQUESTS ARE: 00146400
EXECUTE DITTO COPY IN ZIP C EDIT 00146500
SAVE RESEQ PUNCH PRINT DELETE CLOSE COMPILE00146600
COLUMN SCAN LISTING INC TAB PERCENT QUICK 00146700
LIST OPEN MAIL TEACH REMOVE REPLACE END 00146800
FOR SYNTAX OF A VERB (E.G. TAB), INPUT: 00147000
* TEACH VERB. (E.G. * TEACH TAB) 00147050
121970: 00147100
* 22 00147200
NOTE THAT THE USE OF THE REPLACE VERB (FOR INLINE AND CHANGE) 00147300
IS REFLECTED BY THE TEACH VERB. 00147400
*01 00147404
MACRO VERB 00147410
*10 00147412
MACRO (EXECUTE) 00147414
*12 00147416
THE EXECUTE VERB GIVES R/C USERS A SIMPLE MACRO 00147418
CAPABILITY. 00147420
* 15 % EXECUTE 38 00147422
* EXECUTE <SOURCE> <OPTIONAL PARAMETER LIST> 00147424
*22 00147426
RECORDS ARE READ FROM THE <SOURCE> AND TREATED AS IF THEY CAME 00147428
FROM THE TELETYPE. HENCE, THEY MAY CONTAIN COMMANDS. 00147430
THE <OPTIONAL PARAMETER LIST>, IF PRESENT, CONTAINS FROM 0 00147432
TO 5 PARAMETERS ENCLOSED WITHIN PARENTHESIS AND MAY BE FOLLOWED 00147434
BY A REPEAT FACTOR. EACH PARAMETER MAY BE A SEQUENCE NUMBER, 00147436
A RELATIVE SEQUENCE NUMBER, A RECORD NUMBER, A FILE PREFIX, 00147438
A FILE SUFFIX, OR A VERB. WITHIN THE <SOURCE> THE PARAMETERS 00147440
ARE REFERRED TO BY #1, #2, ..., #5. THE REPEAT FACTOR IS AN 00147442
INTEGER FROM 0 TO 999 AND INDICATES THE NUMBER OF TIMES TO 00147444
PERFORM THE EXECUTE. IF IT IS NOT SPECIFIED, IT IS ASSUMED 00147446
TO BE 1. 00147448
* 15 00147450
* EXECUTE ECHO ON 00147452
* 15 00147453
* EXECUTE ECHO OFF 00147454
* 15 00147455
* EXECUTE ECHO 00147456
*22 00147458
IF THE EXECUTE ECHO IS ON, EACH RECORD WILL BE TYPED ON THE 00147460
TELETYPE BEFORE IT IS EXECUTED. IT IS INITIALLY OFF. IT MAY 00147462
BE REVERSED FOR ONE COMMAND BY PREFIXING THE COMMAND BY A -. 00147464
*15 00147466
* EXECUTE LIBRARY = <NAME> 00147468
* 15 00147469
* EXECUTE LIBRARY 00147470
*22 00147472
THE EXECUTE LIBRARY FACILITY ALLOWS THE USER TO ABBREVIATE: 00147474
* SKIP 1 00147476
* EXECUTE <FILE PREFIX>/<MACRO LIBRARY> (P1,P2,P3,P4)00147478
* SKIP 1 00147480
WITH: 00147482
*SKIP 1 00147484
* <FILE PREFIX> P1,P2,P3,P4 00147486
*22 00147488
THE <MACRO LIBRARY> IS "MACRO" AND ANY OTHER NAME DESIGNATED 00147490
THRU THE * EXECUTE LIBRARY = <NAME> COMMAND. 00147492
* 51 00147494
EXAMPLES: 00147496
* SKIP 2 00147498
:* OPEN CREATE/MACRO DATA NEW~ 00147500
100:%* OPEN #1/#2 #3 NEW~ 00147502
200:* CLOSE~ 00147504
:* CREATE MOVE/MACRO DATA~ 00147506
100:%* DITTO #1,#2 MOVE~ 00147508
200:*CLOSE~ 00147510
: 00147512
* SKIP 1 00147514
5700:* TEACH CC~ 00147516
1:* SCAN + 1 "$$"@1 00147518
2:* DELETE -1 00147520
3:? COMPILE SOME/JOB FORTRAN. 00147522
4:? DATA 00147524
5:FILE 6=FILE6, UNIT = PRINTER 00147525
5700:*1;* INC 10;*EXECUTE CC/MACRO ()@2~ 00147526
WAIT... 00147528
2200:$$ JOB 00147530
2900:$$ IBJOB 00147534
2840: 00147536
* PAGEID 1, " A-" 00147550
*01 00147600
APPENDIX A 00147700
* INDEX CENTER UNDERLINE 00147800
R/C SOURCE TAPE 00147900
*SKIP 10 PARAGRAPH 10,72,5 00148000
R/C RESIDES ON A SYSTEM DUMP TAPE CONTAINING THE FILES 00148100
* 51 00148200
1. RCSY94/RON 00148300
*INDENT 15 00148400
2. TEACHER/0000094 00148500
* INDENT 15 00148600
3. XREF/JONES 00148700
* 51 00148800
THE FILES SHOULD BE LOADED USING THE CONTROL DECK: 00148900
* SKIP 2 INDENT 11 00149000
* INVALID 1 00149010
LOAD FROM RC RCSY94/RON,TEACHER/0000094,XREF/JONES. 00149100
? END. 00149200
*12 00149300
RCSY94/RON IS THE SOURCE FILE FOR THE PROGRAM R/C. IT 00149400
SHOULD BE COMPILED WITH: 00149500
* 51 00149600
? COMPILE R/C WITH ALGOL FOR LIBRARY. 00149700
* INVALID 1 00149710
ALGOL FILE TAPE = RCSY94/RON SERIAL. 00149800
? STACK = 256. 00149900
? CORE = 2800. = 2500 + 100 | MAXUSERS. 00150000
? PRIORITY = 1. 00150100
? DATA 00150200
$ TAPE 00150300
* INDENT 63 00150400
99999999 00150500
* INDENT 15 00150600
? END. 00150700
*12 00150800
WHEN PATCHES ARE ISSUED THEY SHOULD BE PLACED AFTER THE 00150900
"$ TAPE" CARD AND R/C SHOULD BE RECOMPILED. 00151000
*12 00151100
THE MAXIMUM NUMBER OF USERS HANDLED BY R/C IS DEFINED 00151200
TO BE 3 IN RCSY94/RON. TO INCREASE THE NUMBER, A PATCH CARD 00151300
MUST BE ADDED. AS AN EXAMPLE, THE FOLLOWING CARD SHOULD 00151400
BE ADDED TO INCREASE THE MAXIMUM NUMBER OF USERS TO 5. 00151500
*TAB 13,66 00151600
DEFINE MAXUSERS = 5#, MAXUSER =4# ; /00002500 / 00151700
* 12 00152110
THE OUTPUT BUFFERS ARE DEFINED TO BE 56 CHARACTERS IN RCSY94/RON. 00152120
THEY MAY BE SET AT 28 CHARACTERS USING THE FOLLOWING PATCH CARDS: 00152130
* TAB 13,66 00152140
DEFINE CHRSPERBUFFER = 28#, % OR 56/00002600 / 00152150
WORDSPERBUFFER = 5#, % OR 8/00002700 / 00152160
WRDSPERBUFFER = 4# ; % OR 7/00002800 / 00152170
*12 00152200
TEACHER/0000094 IS AN AUXILIARY FILE USED BY R/C. IT 00152300
IS ALSO THE USERS REFERENCE MANUAL. THE PROGRAM XREF/JONES 00152400
IS PROVIDED FOR GENERATING THE REFERENCE MANUAL AND FOR 00152500
UPDATING THE TEACHER FILE. (NOTE, ONLY THE OBJECT CODE FOR 00152600
XREF/JONES IS INCLUDED. THE SOURCE CAN BE OBTAINED THROUGH 00152700
THE CUBE LIBRARY ON REQUEST.) 00152800
*12 00152900
THE FOLLOWING DECK WILL PRODUCE A USERS REFERENCE MANUAL. 00153000
* 51 00153100
? EXECUTE XREF/JONES. 00153200
* INVALID 1 00153290
FILE DISK = TEACHER/0000094. 00153300
? DATA CARD. 00153400
$ DISK SIX DOCONLY DOCUMENT FINAL 00153500
* INDENT 63 00153600
99999999 00153700
* INDENT 15 00153800
? END. 00153900
* 12 00154000
PATCHES TO R/C AND THE TEACHER FILE WILL BE ISSUED THRU CUBE. 00154100
RATHER THAN PATCH DECKS, NEW SYMBOLIC FILES WILL BE INCLUDED 00154200
ON THE CUBE TAPE. THE SEQUENCE NUMBERS WILL REMAIN THE SAME 00154300
EXCEPT IN THE PATCHED AREA. 00154400
* PAGEID 1, " B-" 00155700
*01 00155800
APPENDIX B 00155900
* INDEX CENTER UNDERLINE 00800300
R / C USER-S GUIDE 00800400
* PAGE 00800500
* CHANGE <STRING-1> TO <STRING-2> 00800600
* CHANGE <SEQ NUMBER> <STRING-1> TO <STRING-2> 00800700
* CHANGE <START SEQ NUMBER> <END SEQ NUMBER> <STRING-1> TO <STRING-2> 00800800
* CHANGE ECHO ON 00800900
* CHANGE ECHO OFF 00801000
* CHANGE ECHO 00801010
* -CHANGE <STRING-1> TO <STRING-2> 00801100
* -CHANGE <SEQ NUMBER> <STRING-1> TO <STRING-2> 00801200
* -CHANGE <START SEQ NUMBER> <END SEQ NUMBER> <STRING-1> TO <STRING-2> 00801300
* CLOSE 00801400
* COLUMN <OPTIONAL STRING> 00801410
* COLUMN ON <OPTIONAL STRING> 00801420
* COLUMN OFF <OPTIONAL STRING> 00801430
* COLUMN <STOP-1> <STOP-2> <STOP-3> <STOP-4> <OPTIOANL STRING> 00801440
* COMPILE <OBJECT FILE-NAME> 00801500
* COMPILE <OBJECT FILE-NAME> <COMPILER> 00801600
* COPY <FILE-NAME> 00801700
* COPY <FILE-NAME> <START RECORD NUMBER> 00801800
* COPY <FILE-NAME> <START RECORD NUMBER> <END RECORD NUMBER> 00801900
* COPY $(FILE-NAME> MERGE 00801910
* COPY OVERITE ON 00802000
* COPY OVERITE OFF 00802100
* COPY OVERITE 00802110
* -COPY <FILE-NAME> 00802200
* -COPY <FILE-NAME> <START RECORD NUMBER> 00802300
* -COPY <FILE-NAME> <START RECORD NUMBER> <END RECORD NUMBER> 00802400
* -COPY <FILE-NAME> MERGE 00802410
* DELETE <SEQ NUMBER> 00802500
* DELETE <START SEQ NUMBER> <END SEQ NUMBER> 00802600
* DELETE 00802610
* DITTO <SEQ NUMBER> 00802700
* DITTO <START SEQ NUMBER> <END SEQ NUMBER> 00802800
* DITTO OVERITE ON 00802900
* DITTO OVERITE OFF 00803000
* DITTO OVERITE 00803010
* -DITTO <SEQ NUMBER> 00803100
* -DITTO <START SEQ NUMBER> <END SEQ NUMBER> 00803200
* DITTO <SEQ NUMBER> MOVE 00803210
* DITTO <START SEQ NUMBER> <END SEQ NUMBER> MOVE 00803220
* EDIT <START SEQ NUMBER> <END SEQ NUMBER>:<FORMAT SEQ NUMBER> 00803300
* EDIT ECHO ON 00803400
* EDIT ECHO OFF 00803500
* EDIT ECHO 00803510
* -EDIT <START SEQ NUMBER> <END SEQ NUMBER>:<FORMAT SEQ NUMBER> 00803600
* END 00803700
* END <X> 00803800
* END DS 00803900
* EXECUTE <SOURCE> <OPTIONAL PARAMETER LIST> 00803902
*-EXECUTE <SOURCE> <OPTIONAL PARAMETER LIST> 00803904
* EXECUTE ECHO ON 00803906
* EXECUTE ECHO OFF 00803908
* EXECUTE ECHO 00803910
* EXECUTE LIBRARY = <NAME> 00803912
* EXECUTE LIBRARY 00803914
* INC <INCREMENT> 00804000
* INC 00804010
* INLINE <SEQ NUMBER> 00804100
* INLINE <SEQ NUMBER> I 00804200
* INLINE <SEQ NUMBER> R 00804300
* INLINE <SEQ NUMBER> D 00804400
* INLINE 00804500
* INLINE I 00804600
* INLINE R 00804700
* INLINE D 00804800
* INLINE ECHO ON 00804900
* INLINE ECHO OFF 00805000
* INLINE ECHO 00805010
* -INLINE <SEQ NUMBER> 00805100
* -INLINE <SEQ NUMBER> I 00805200
* -INLINE <SEQ NUMBER> R 00805300
* -INLINE <SEQ NUMBER> D 00805400
* -INLINE 00805500
* -INLINE I 00805600
* -INLINE R 00805700
* -INLINE D 00805800
* LIST 00805900
* LIST <FILE-NAME> 00806000
* LIST <FILE-NAME> NO 00806100
* LIST <FILE-NAME> <START RECORD NUMBER> 00806200
* LIST <FILE-NAME> <START RECORD NUMBER> <END RECORD NUMBER> 00806300
* LIST <SEQ NUMBER> 00806400
* LIST <START SEQ NUMBER> <END SEQ NUMBER> 00806500
* LISTING <FILE-TYPE> <SEGMENT> <LOW REL ADDR> <HIGH REL ADDR> 00806600
* LISTING <FILE-TYPE> ERRORS 00806700
* LISTING 00806800
* MAIL 00806900
* MAIL TO <USER-CODE>: <MESSAGE> 00807000
* OPEN <FILE-NAME> <FILE-TYPE> NEW 00807100
* OPEN <FILE-NAME> <FILE-TYPE> OLD 00807200
* OPEN <FILE-NAME> <FILE-TYPE> 00807300
* PERCENT ON 00807400
* PERCENT OFF 00807800
* PERCENT 00807810
* PRINT <IDENT-1> <IDENT-2> 00807900
* PRINT <IDENT-1> DOUBLE 00808000
* PRINT <IDENT-1> <IDENT-2> <START SEQ NUMBER> 00808100
* PRINT <IDENT-1> DOUBLE <START SEQ NUMBER> 00808200
* PRINT <IDENT-1> <IDENT-2> <START SEQ NUMBER> <END SEQ NUMBER> 00808300
* PRINT <IDENT-1> DOUBLE <START SEQ NUMBER> <END SEQ NUMBER> 00808400
* PUNCH <IDENT-1> <IDENT-2> 00808500
* PUNCH <IDENT-1> <IDENT-2> <START SEQ NUMBER> 00808600
* PUNCH <IDENT-1> <IDENT-2> <START SEQ NUMBER> <END SEQ NUMBER> 00808700
* QUICK 00808800
* QUICK <FILE-NAME> 00808900
* QUICK <FILE-NAME> NO 00809000
* QUICK <FILE-NAME> <START RECORD NUMBER> 00809100
* QUICK <FILE-NAME> <START RECORD NUMBER> <END RECORD NUMBER> 00809200
* QUICK <SEQ NUMBER> 00809300
* QUICK <START SEQ NUMBER> <END SEQ NUMBER> 00809400
* REMOVE <FILE-NAME> 00809500
* REPLACE <OLD VERB> : <NEW VERB> 00809600
* RESEQ 00809700
* RESEQ <INCREMENT> 00809800
* RESEQ <START SEQ NUMBER> <END SEQ NUMBER> 00809900
* RESEQ <START SEQ NUMBER> <END SEQ NUMBER> <NEW START SEQ NUMBER> 00810000
* RESEQ <START SEQ NUMBER> <END SEQ NUMBER> <NEW .. NUMBER> <INCREMENT>00810100
* SAVE <SAVE-FACTOR IN DAYS> 00810200
* SAVE 00810210
* SCAN <STRING> 00810300
* SCAN <START SEQ NUMBER> <STRING> 00810400
* SCAN <START SEQ NUMBER> <END SEQ NUMBER> <STRING> 00810500
* SCAN <FILE-NAME> <STRING> 00810600
* SCAN <FILE-NAME> <START RECORD NUMBER> <STRING> 00810700
* SCAN <FILE-NAME> <START RECORD NUMBER> <END RECORD NUMBER> <STRING> 00810800
* SCAN 00810900
* SCAN <START SEQ NUMBER> 00811000
* SCAN <START SEQ NUMBER> <END SEQ NUMBER> 00811100
* SCAN <FILE-NAME> 00811200
* SCAN <FILE-NAME> <START RECORD NUMBER> 00811300
* SCAN <FILE-NAME> <START RECORD NUMBER> <END RECORD NUMBER> 00811400
*-SCAN <STRING> 00811402
*-SCAN <START SEQ NUMBER> <STRING> 00811404
*-SCAN <START SEQ NUMBER> <END SEQ NUMBER> <STRING> 00811406
*-SCAN <FILE-NAME> <STRING> 00811408
*-SCAN <FILE-NAME> <START RECORD NUMBER> <STRING> 00811410
*-SCAN <FILE-NAME> <START RECORD NUMBER> <END RECORD NUMBER> <STRING> 00811412
*-SCAN 00811414
*-SCAN <START SEQ NUMBER> 00811416
*-SCAN <START SEQ NUMBER> <END SEQ NUMBER> 00811418
*-SCAN <FILE-NAME> 00811420
*-SCAN <FILE-NAME> <START RECORD NUMBER> 00811422
*-SCAN <FILE-NAME> <START RECORD NUMBER> <END RECORD NUMBER> 00811424
* TAB <COLUMN NUMBER> 00811500
* TAB + <OFF-SET NUMBER> 00811600
* TAB - <OFF-SET NUMBER> 00811700
* TAB ON 00811800
* TAB OFF 00811900
* TAB 00811910
* TEACH 00812000
* TEACH <VERB> 00812100
* ZIP 00812300
* ZIP <SCRATCH FILE-NAME> 00812400
* QUIT 02000000
* FINISH 02000010
; END. 02000020