III-l

SOCCER - A Concordance Program
Guy T. Hochgesang

1.

Introduction
S0CCER* was written in response to a need for a program which could

produce concordances of long texts . The program was written with three major
objectives:
1. It should be sufficiently fast to permit concordances ofmoderately long texts•(30,000 - 300,000 words)
2. It should produce concordances in an easily-read format•"Tokens"

or words in the concordance should be listed with as much context
as possible to reduce the need for references to the original text.
3. It should be simple to use, requiring a minimum amount of effort
to set up for each text.
Existing programs generally fail to meet one or more of these objectives.
These programs usually do not satisfy the most crucial criterion, that of speedof processing.

In order to make it economically feasible to produce concor-

dances of moderately long texts, a more efficient program was needed.

Byusing a balanced-merge tape sort with overlapped 1-0, S0CCER achieves asignificantly faster rate of processing than other concordance programs. It
is believed that this speed has been achieved without sacrificing anything in
the way of simplicity for the user or the utility of the concordance produced.

*S0CCER : Smart's Own Concordance Constructor, Extremely Rapid.

III-2
2.

The Concordance
A. Definitions
S0CCEF divides the standard character set into two groups: alpha-betic characters and special characters*

Alphabetic characters are defined

to be the characters included in the concordance, while special characters
are those characters to be ignored during the generation of a concordance.
A tcften is defined to be any string of consecutive alphabetic charactersdelimited by special characters, while a type is defined to be a class ofidentical tokens. As an example if one defines the alphabetic characters as
the letters of the alphabet, the string of characters to be or not to becontains the six tokens to, be, or, not, to, and be, but it contains only thefour types to, b£, or, and not*B. The Input Text
The input text to S0CCER should be punched on cards in columns 1-72.
Columns 73-80 of the cards are ordinarily ignored and may be blank or contain
serial numbers.

These cards must then be transferred to the INPUT tape in

unblocked BCD records of thirteen or more machine words. No special typing
conventions are necessary in punching the text cards. The end of the text
must be indicated by a card with ,!*ST0Pl! punched left-justified in columns
1-6, or by an end-of-file on the INPUT tape following the last card of thetext.
C. Processing the Text
Before starting to process the input text, S0CCER first reads thecontrol cards from A2.

(An explanation of the control cards will be foundin Part k of this report.) When the STABT control card is found, processing

in-3of the text begins from the INPUT tape.
As the cards of the text are read in, they are numbered sequentiallyand then written out on the 0UTPUT tape to provide a listing of the text.
Cards which have a "*" (the "space control character") in column one arelisted double-spaced; i.e., a blank line precedes their listing.

In addition,

cards which have either a "*" or a "$" (the "skip control character") are
net included in the concordance.

In effect this causes cards with an asterisk

or dollar sign in column one to be interpreted as comment cards.
Any card which does not have the skip control character or spacecontrol character in column one is included in the concordance.

These cards

are scanned for the tokens of the concordance in the following steps:
1. The right-most non-blank character is found.

If this characteris not a hyphen (a minus sign) step 2 is taken.

If thischaracter is a hyphen, the character and all blanks to theright of it axe deleted.

The next card is scanned from left

to right for alphabetic characters, with the scan terminating
at the first special character.

These alphabetic characters(if any) are then appended to the card with the hyphen andstep *2 is taken.

This procedure allows one to hyphenate

words from one card to another, provided that the hyphen
follows immediately after the last alphabetic character on
the first card and that the syllable on the second card
starts in column one.

Such hyphenated words appear in theconcordance with the syllables properly joined together andthe hyphen deleted.
2. If

n

consecutive blanks appear on the card,n-1

of theseblanks are deleted to allow as much significant context as
possible to be included with the tokens in step 3.
3. The card is then scanned for tokens. As each token is found
it is written out on an intermediate tape, SMRTAP, along with

III-Uthe context in which it occurs, and the number of the cardin which it is included.

If a restriction or selection

list has been specified by the use of a

RESTRICT or SELECT

control card, this list is scanned before the token is written
on the intermediate tape*

If the RESTRICT card is used, tokens

appearing on the restriction list ,are not written on SMRTAP;
and if a selection list is specified by a SELECT card, only
those tokens appearing on the selection list are written on
SMRTAP.

Thus the use of a restriction list provides a method

for excluding common or unwanted words ("the", "of", "and" etc.)from the concordance, while the use of a selection list enables
one to include only certain words in the concordance, excluding
all others. Only one of the two types of lists may be active
during a single run.

It is permissible not to use either typeof list, i.e., to use neither the RESTRICT or SELECT control
card.
When S0CCER hits a card with "*ST0P" left-justified in columns 1-6,
or an end-of-file on the INPUT tape, the assumption is made that the entire
text has been processed.

The tokens appearing on SMRTAP are then sorted intoalphabetical order, using the scratch tapes, as described in Part 3. Afterthe sort of SMRTAP some control iriformation about the sort is written on the
0UTFUT tape.

This is further described in Part 6B. The concordance is thenwritten on the 0UTPUT tape following the complete listing of the text alreadyproduced.

The concordance consists of an alphabetical listing of the tokens

on SMRTAP, along with the context in which the tokens originally occurred,
and the number of the card from which the tokens were taken.

The number ofoccurrences (i.e., number of tokens) of each type is also given. Figures 1
and 2 show fragmentary examples of a typical text listing and concordance.
While writing the concordance on the 0OTPUT tape, S0CCER keeps trackof some useful statistics, which are written out following the concordanceIII-5
10/09/65

PAGE 116

THIS PHASE OF THE PROBLEM IS DEPENDENT UPON DEVELOPMENT OF WIDER USE OF MICROPRINT MATERIAL AMONG OUR
POTENTIAL AUDIENCE, TO INCREASE THE HABIT OF SUCH USE

6^5^
61*55
6U56

CONCORDANCE OP ADI SHORT PAPERS FOR I963

Excerpt from the listing of a text concorded *ty S0CCER.
(The line numbers to the right of each line are automaticallyprovided. In Figure 2 below is listed the occurrence of"WIDER" in line 6^55.)
Figure 1

CONCORDANCE OF ADI SHORT PAPERS FOR 1963

10/09/65

PAGE 17^8WIDER
DEPENDENT ON DEVELOPMENT OF WIDER USE OF MICROPRINT M
BACK TO THE SYMBOL OR, IN A WIDER SENSE, TO SYMBOLIC
TH,. HDWEVER, PRINTING WITH WIDER LINE SPACING CAN BES CAN BE MATCHED TO 3 KW OR WIDER BAND WIDTHS UP TO T
NUMBER OF OCCURRENCES k

6^55
9803
IOU17
12082

WIDESPREAD
ROLE .. THAT OF PREVENTING WIDESPREAD FOLLOWING OF FOMPUTER TECHNOLOGY AND MDRE WIDESPREAD DISTRIBUTION 0
AND CONCEPTS MAKE SWIFT AND WIDESPREAD COMMUNICATIONNUMBER OF OCCURRENCES 3

67I
129^
II767

WIDEST
CH IS CLASSIFICATION IN ITS WIDEST SENSE, IS THEREFORBLE IN ORDER TO PROVIDE THE WIDEST POSSIBLE SYSTEM FL
NUMBER OF OCCURRENCES 2

50^0
8ShO

Excerpt from a concordance produced by SOCCER.
(The amount of context provided by S0CCER has "been reduced toallow it to fit on this page. A normal run of S0CCER would
produce about twice as much context for each token. The
numbers to the right of each line refer to the number of theline of text in which the listed token originally occurred.)
Figure 2in-6listing.

These statistics include a count of the number of tokens processed;

the number of types found; the number of types with only one token, twotokens, three tokens, etc., up to the number of times each type occurred on
the restriction (or selection) list.

Finally SOCCER writes out the time it

took to process the text and exits.
D. The Output Format
All of the output produced by SOCCER is written on the 0UTFUT tapein blocked BCD records of varying length.

This tape includes a carriage

control character for each line and is meant to be printed off-line with aprinting program capable of handling blocked records and printer carriage
control.

3. Tape Usage...

A. Control Cards
The control cards for each run of S0CCER must be included as DATA
cards on the system input tape, A2. SOCCER always reads these caxd images
firom A2 before beginning to process the text.
B. The INFUT, 0UTPUT, and SMRTAP Tapes
As explained in Part 2B, the INPUT tape contains card images of
the text to be processed.

This tape may be mounted on any tape unit except

those used for the 0UTFUT and SMRTAP tapes. The most convenient unit to use
for the INPUT tape may be A2. In this case the cards of the text are simply
submitted as DATA cards immediately following the control cards on A2. The
logical tape number of the INPUT tape is controlled by the INPUT control card.
The 0UTFUT tape contains the listing of the text and the concordance,

321-7and is nonnally the system output tape, A3. The logical tape number of the
PUTPUT tape may not fee changed from A3 to another unit without changing thesource deck for S0CCER as described in Bart ?.
SMRTAP is the tape used as an intermediate tape for S0CCER and isdefined to be B2. Again this tape number may not be changed unless the
30CCER source deck is changed.
C. Scratch Tapes
The sort of SMRTAP done by SOCCER is a tape-merge sort requiring anequal number of scratch tapes on A-channel and B-channel.

The number ofscratch tapes required on each channel is equal to the order of the merge andis controlled by the 0RDER control card.

Below is a table of the scratch tapes

used by S0CCER:
Channel A

Channel B

A^
A5

B2
B3

A6

BI

A7
A8

B5
B6

If a merge-sort of ordercontrol card, the firstas scratch tapes.

nn

is specified by the use of the 0RDER

tapes on both channels A and B will be used

(Example - a merge of order

2 would use A**, A5, B2,

and B3.)The maximum order of the sort is five, while the minimum orderis two.

In general a high order sort will be faster than a lower order sortand consequently the processing will be faster.
Note that it is possible, by use of the INPUT control card, to specify
an INPUT tape which will also be used as a scratch tape. For instance, theuse of the control card INPUT k would specify the INPUT tape to be At, whichis also used as a scratch tape.

In cases such as this, the text on the INPUT

Ill-8tape will be destroyed, when the tape is also used as a scratch tape.
Examples of tape usage are given in Part 5.

U.

Control Cards
As previously explained, the control cards for S0CCER must appear

as DATA cards on A2, and are always read by S0CCER before processing. Eachcontrol card contains one control instruction, punched left-adjusted tocolumn one, except for types to be entered into a restriction or selection
list.

These types are punched, one per card, left-adjusted to column 7 andmust immediately follow the RESTRICT or SELECT control card.
card must be the last control card used.
cards is not necessary.

The START control

Further ordering of the control

The START card must be used for every run of S0CCER

but any of the other control cards may be omitted.

A listing of the twelve

control instructions is given below:
INSTRUCTIONFUNCTI0N

STARTThis card signals the end of the control
cards and causes processing of the text to start
immediately.

TITLE

The information punched in columns 7-60 of
this card is used as a page heading, and willappear at the top of each page of the concordancewith the date and page number.

If this card is not

used no page heading, date, or page numbers will be
used.
IDEN

This card causes the serial number, punched incolumns 73-78 of the text cards to be used to
identify the lines of text in the text and concordancelistings.

If this card is not used, columns 73-78

Ill-9of the cards of text are ignored.

Instead the linesof text in the text listing are numbered sequentiallyand these numbers are used to identify lines oftext in the concordance listing.
0RDEF

The order of the merge-sort is set equal to theinteger punched in column 7 of this card.

The

order must be less than six and greater than one.
If this card is not used the order of the merge is
five.
INPUT

The logical tape number of the INPUT tape (thetape containing the text) is set to the integer
punched left-adjusted to column 7 of this card.

If

this card is not used the input tape is A2 (logicalnumber 5)* The INPUT tape cannot be A3 or B2(logical 6 or 2 ) .
ALPH

The single character punched in column 7 ofthis card is defined to be an "alphabetic" character(see Part 2A). The alphabetic characters are
initially defined to be the letters of the alphabet
and will be interpreted as such if this card andthe SPEC card are not used.

If column 7 of thiscard is left blank, the character blank is defined
to be an alphabetic character.
SPEC

The single character punched in column 7 ofthis card is defined to be a "special" character(see Part 2A). The set of special characters
initially contains all characters which are notletters of the alphabet, and will remain as such if
the ALPH and SPEC cards are not used.

If column 7of this card is blank, the character "blank" isdefined to be an ordinary special character and thedeletion of consecutive blanks described in Part 2C
does not occur.

If column 7 of this card contains

111-10a hyphen (minus punch), a hyphen is defined as an
ordinary special character and the hyphenation
feature described in Part 2C is not in effect.
RESTRICTThis card specifies that the types punchedon the cards that follow are to be included in a
restriction list (see Part 2C). The types to be
included in the restriction list are punched one
per card left-adjusted to column 7 on cards
following the RESTRICT card.

Occurrences of thesetypes in the text are not listed in the concordance.
This card may not be used in addition to the SELECT
card.

If this card is not used, no restriction

list is used for the text.

As many as 205 types

may appear on the restriction list.
SELECT

This card specifies that the types punched on
the cards that follow are to be included in a
selection list (see Part 2C). The types are punched
one per card, left-adjusted to column 7 on cards
following the SELECT card.

Occurrences of only

these types will be listed in the concordance.

The

SELECT card may not be used in addition to the
RESTRICT card.

If the SELECT card is not used, alltypes not on the restriction list (if any) arelisted in the concordance.

As many as 205 types

may appear on the selection list.
SKIP

The single character punched in column 7 of thiscard is defined to be the "skip" control character• (see.Part 2C). All cards of the text with thischaracter included in column 1 will be numbered andlisted in the text, but will not be included in theconcordance.

A blank in column 7 of the SKIP cardcauses the skip control option to be deleted; i»e.,no cards of the text are "skipped".

If the SKIP

card is not used, the skip control character is a

III-lldollar sign ($).
SPACE

The single character punched in column 7 ofthis card is defined to be the "space control
character" (see Part 2C). All cards of text
having this character in column 1 are numbered
and listed in the text preceded by a blank line,
but are not included in the concordance*

A blank

in column 7 of the SPACE card causes the spacecontrol option to be deleted; i.e., no cards ofthe text are "spaced" over in this manner. If
the SPACE card is not used the space control
character is an asterisk or "star" (*).
N0DUMP

Before starting its tape sort, S0CCER normallydumps core storage onto tape BU to make available
as much room as possible for internal sorting.
After the sort, the program restores core and returns
tape B^ to its original position.

If Bt is notavailable for this purpose the N0DUMP card should be
used to suppress the core dump-

Most installations

use Bif as the system punch tape, and since B^ isrestored by S0CCER after the core dump, Bfc- should
be available. Using this core dump speeds up thetape sort for long tasks.

5. Examples of S0CCER Usage
Example Aa) Input Deck
Binary deck for S0CCER (labeled "SCR")
Binary decks for SPECTR (labeled "SMER" and "CVRT")
Binary deck for IN0T
(labeled "IN0T")
Binary deck for CL0CK (labeled nCL0CK2")*AA/\/VAADATATITLE SAMPLE S0CCER RUN

111-12START
Deck of cards for text
*ST0P
End-of-file cardb) Explanation
The INPUT tape is A2, since no INPUT control card is used, andtherefore the text follows the two control cards as DATA cards. The tapesort is of order five, since no 0RDER control card is used, and the tapes
Ah, A5, A6, A7, A8, B2, B3, Bl, B U , and B5 are used for scratch tapes as
explained in Part 3C.
The title "SAMPLE S0CCER RUN" appears as a page heading for theconcordance oince the TITLE control card is used.

The "START" card tells

S0CCER to begin processing the text, while the "*ST0P" card indicates theend of the text.

No restriction or selection list is used.

Example Ba) Input Deck
Binary decks as in Example A*<\A\.V\ADATAINPUT.^12
0RDERA3
ALPHA ^0
ALFHAAIALPHA.V2
ALPHAA3
ALPHAA
ALPHA A-5
ALPHA N6
ALFH*XA7
ALPHA N8
ALPH-A9

RESTRICTAAAAAATHESTART
End-of-file card

111-13b) Explanation
The INPUT tape is A7 (logical number 12) and a tape containing thetext to be processed must be mounted on unit A7. The text must be the first
file on this tape and must end with a "*ST0P" card or an end-of-file.

Since

a tape sort of order three is specified, tapes on units A^, A5, A6, B2, B3,
and £1 are used as scratch tapes.
The ten ALPH control cards imply that numbers are included in theconcordance*

None of the occurrences of the types "0F,f or "THE" will belisted in the concordance due to the RESTRICT control card.

6.

Subroutines used by S0CCER
A. IN0T
IN0T is a double-buffered input-output routine which uses the datachannel traps to allow simultaneous data channel transmission and central
processing unit operation.

This allows S0CCER to overlap input-output andCPU operations to such an extent that it becomes tape-limited in most of
its processing; i.e., it can process text as fast as it can read and write
the necessary tapes.
The FAP calling sequence to write a BCD record with II$T is:
TSX $0DEC,UTSX TAPE,0
TSX FIRST,0
TSX HALF,0
TSX BL0CK,O
TSX REC0RD,O

write BCD entry point;
location of word containing F0RTRAN tape number;address of lowest word in buffer;word count of one half of buffer;word count of block to be transmitted;
record size.

Each call to 0DEC starts the transmission of a buffer-half of words
to the specified tape unit, starting with the lower half of the buffer. When
0DEC returns, the results of the previous transmission are returned in the
AC as follows:m-ifcprefix:zero if normal transmission,-1 if a tape error,-2 if end-of-tape was hit;decrement:tag:address:

count of "words transmitted;
zero;
address +1 of last word transmitted.

The PAP calling sequence to read a BCD record is:
TSX fcEDEC,^TSX TAPE,0
TSX FIRST,0
TSX HALF,0
TSX BL0CK,O
TSX C0DE,O

read BCD entry point;
location of word containing F0RTRAN tape number;address of lowest word in buffer;word count of one half of buffer;word count of block to be transmitted;
zero to read one record; one to read a block ofrecords.

The first call to IDEC reads a record (or records, if C0DE does notequal zero) into the lowest buffer half and starts transmission of a second
record (or block of records).

Subsequent calls to IDEC finish the lasttransmission and start a new one. Exit data is returned in the AC as for
0DEC, except that a prefix of minus two indicates an end-of-file rather
than an end-of-tape.
Since each call to 0DEC or IDEC finishes a transmission and starts
a new one, a special entry point, I0END, is needed to terminate a transmission.

Exit data is returned as for 0DEC and IDEC, and the calling

sequence is:
TSX $I0EM)>
TSX TAPE,0.
When 0DEC, IDEC, or I0END return negative exit data for a transmission to or from a particular unit, they refuse all subsequent transmissions to or from that unit until the unit is reset by a call to I0HDY.
A call to I0RDY causes amy transmission for that unit to be dropped
immediately.

The unit is reset so that the next call to 0DEC or IDEC forthat unit is treated as the first use of the unit.

The calling sequence is:111-15
TSX $I0RDY,k
TSX TAPE,0.
B. SPECTR
2
3PECTRIs a tape sorting routine) modified from an earlier program

called SMERSIr) written by Michael Lesk of the SMART project. SMERSH inkturn is a modified version of SWISH , written at the Mitre Corporation in
1962.

SPECTR does a tape merge sort, using the data channel traps, withinternal radix exchange sorting*Because the efficiency of the sort depends highly on the amountcf memory available, SEECTR uses the area between the program and common
breaks for buffer space, and attempts to enlarge this area by dumping as
much core as possible onto BU.
Sorting by SPECTR is done in two basic steps. First the input tapeis read and converted into sorted sequences. The keys upon which items are
sorted are converted according to the collating sequence given in the CVRT
table before sorting, and are restored during the last pass. After theblocks of items are sorted they are written onto the first set of scratchtapes.

The second step consists of merging the sorted sequences from one

set of scratch tapes onto the other. These merge passes are repeated until
the sorted sequences are merged onto one output tape.
The messages printed by SPECTR give the following information: theinput tape unit, the scratch tape units, the occurrences of an E0F on the
input tape, the number of items and records to be sorted, the number ofmerge passes and sorted sequences, the maximum record capacity (computed
2. SPECTR: Smersh Program Edited by Change Tape Reads
3. SMERSH: Stolen from Mitre, Extensively Revised Start-Harvard
k. SWISH: Sorting With Incredible Speed-Hollerith111-16
for a density of 800 bpi), the timing of the sort and merge passes, and theoutput tape unit.
In the FAP calling sequence to SEBCTR, all arguments must be symbolic(i.e., they must be the address of a location containing the actual argument).
In addition, all actual arguments are F0RTRAN integers unless otherwise
specified.
The calling sequence is:
TSX $SMERSH,4
TSX ITEM,0
TSX IREC,0
TSX 0REC,OTSX P,0
TSX PAD,0
TSX 0RDER,O
TSX SMRTAP,0
TSX FILES,0
TSX S11,0
TSX 312,0
TSX S21,0
TSX S22,0
TSX KEYS,0
TSX PKEY1,0
TSX LKEY1,0
TSX PKEY2,0
TSX LKEY2,0... ...
TSX 0TAP,O

entry to sort a BCD tape; use SPECTR for a binary
tape;number of words per item
+ sign for core dump on B^- sign for suppress dump;
number of words per input record;
number of words per output record;= 0 for no padding of short output records• 1 for padding of short output records;
6 Hollerith padding characters(if P * 0, then PAD = 0 ) ;order of merge;
logical number of input tape+ sign to ignore input tape after use- sign to rewind input tape after use;
number of input files+ sign for all files on same reel- sign for each file on separate reel;number of first tape in first set of scratchtapes;
number of second tape in first set of scratchtapes;
etc. for remaining tapes in first set;
number of first tape in second set of scratchtapes;
number of second tape in second set of scratchtapes;
etc. for remaining tapes in second set;
number of keys on which to sort;position relative to beginning of item of leftmost
character of first key;number of characters in first key;same as PKEY1 for second key;same as LKEY1 for second key;etc. for remaining keys;
output tape number(will equal 0 if an error occurs).

111-17c. CL0CK
CL0CK is a subroutine which reads the printer clock. The FAP
calling sequence is:
TSX $CL0CK,U
TSX TIME,0This call causes the time in tenths of minutes to be stored inlocation TIME as a P0RTRAN integer.

The time in floating-point minutes

and tenths of minutes is returned in the accumulator.

7.

Some Details About the S0CCER Program
A. Source Deck Changes
Three sections of SOCCER are purposely written in such a way as

to facilitate changes in the source deck. These are the program parameters,
the tape assignments, and the character tables.
Cards SCR01210 to SCR01680 of the source deck define program parameters which control the format of the concordance listing. These parameters may be changed in accordance with the instructions given in the
program documentation on the cards.

In particular, if it is necessary toobtain an unblocked output tape for printing the text and concordance,
the parameter MAXREC should be changed to "MAXREC EQU 22".
The tape assignments are controlled by cards SCR17^20 to SCR17720*
If it is necessary to change the scratch tapes or output tape to different
units, this m a y b e done by changing the appropriate cards.
The two tables of characters on cards SCR07950 to SCR08600, and
SCRO967O to SCR10320 give the basic assignments of characters to the"alphabetic" or "special" character sets*

If one wishes to change theIll-18
assignment of a character to one of these sets, and does not wish to use the
ALPH or SPEC control cards for each run of SOCCER, these tables may bechanged.

Such changes are made by changing the transfer address for theappropriate character.
B. Timing
The time taken by S0CCER to process a text is dependent on thelength of the text, the number of tokens included in the concordance, thetape assignments, and the order of the merge for the tape sort.

In general

it is faster to have the input tape on channel A and to use the highest
possible merge order for the sort.
If one considers the merge order to be constant, then the processing
time is roughly linearly dependent on the number of tokens in the text. Mostof the runs of S0CCER to date have used a merge of order four and a restriction
list which excluded between ho and 50 per cent of the tokens from the concordance.

Under these circumstances a text of 33,0^2 tokens (^318 cards)

took 12.7 minutes of execution time, producing 597 pages of output.

A textcontaining 113,130 tokens (13,356 cards) produced 1770 pages of output in
36.9 minutes of execution time, listing 7925 types containing a total of58,190 tokens. The remaining 5^>9^0 tokens were included on the restrictionlist.

111-19

Appendix3_

read in a control cardfrom A2

YES

is card invalid ?

does card - "START")—SSL-W'sTART

N0process card*

Flowchart of S0CCER Program* See note on last page of flowchart

m-ao

<

=

>

ENDFLG

0FF

sort RESTRICTI0N or SELECTI0N
list into ascending order andwrite it on 0UTTAPINLINE"K^ENDFLG

w

YES
>

ST0PIN

read in card of text
from INTAP<C E0F hit on INTAP ? ~^>

^ -

J±L
ENDFLG <- 0N

does card » "*ST0P"?^>~

N0
write card on 0UTTAPYESKdoes column 1 of card
contain SKIP or SPACE
character ?

Flowchart of S0CCER (continued)

111-21NEWLIN1\

are there more charactersto scan on this card ?

YESscan characters ofcard for next T0KEN*

is there a R E S T R I C T I 0 N \or SELECTI0N list ?
/

\

N0

N0

RESTRIC- SELECTI0N
list
TION.
is T0KENlist^
on list ?

N0

is T0KENon list ?

YESAwrite out T0KEN andcontext on SMRTAP\s

Flowchart of S0CCER (continued)* See note on last page of flowchart

YES

22

read in T0KEN and C0NTEXT
from SMRTAP

-X
T0KEN

TYPE

i

write out TYPE on #UTTAPNUMBER4 r e a d i n T0KEN and
C0NTEXT from SMRTAP<(E0F hit, on SMRTAP ? > •<JTYPE = T0KEN ?

YES
ENDTAP^ 3 L TYPE

T0KEN

A.

YES

w r i t e out NUMBER
on Q^UTTAP

dC(^LINC^-NUMBERv
NUMBER•0

K

write out TYPE
on 0UTTAP-NUMBER + 1

write out T0KEN and
1C0NTEXT on 0UTTAP

Flowchart of SOCCER (continued)

111-23

EMDTAPw r i t e o u t NUMBER
on 0UTTAP

JL
write out number ofi
types, tokens, etc'
on 0UTTAP*;

Flowchart of S0CCER' (continued)* Note: This flowchart represents only the main IOPIC of S0CCER.
Details of certain operations are omitted but are included in the
documentation of the source deck.