Contact us Heritage collections Image license terms
HOME ACL Associates Technology Literature Applications Society Software revisited
Further reading □ Introduction and contentsPart 1: Simple use of TASKPart 2: Advanced use of TASKPart 3: A complete specification of TASK
ACD C&A INF CCD CISD Archives Contact us Heritage archives Image license terms

Search

   
ACLLiteratureICL 1906A manualsTASK
ACLLiteratureICL 1906A manualsTASK
ACL ACD C&A INF CCD CISD Archives
Further reading

Introduction and contents
Part 1: Simple use of TASK
Part 2: Advanced use of TASK
Part 3: A complete specification of TASK

PART 3: A COMPLETE SPECIFICATION OF TASK

Introduction

This section gives detailed descriptions of all the facilities in the TASK macro.

Whilst most usage of TASK will be relatively simple it is unfortunately necessary to give strict definitions of the various features in order to define the more complex facilities. A basic understanding of the previous sections is assumed.

The TASK macro, as its name implies, does various tasks. A task can be anything from a complete compilation, consolidation and run of a binary program to the simple loading and running of a previously saved binary program. The macro will do one or more tasks in one activation or call and the parameters for each task are delimited by the word TASK or the end of the parameter list. There is no connection between the parameters of one task and those of another task except in very special cases. For example, a simple usage is:-

TASK FORTRAN,*CR FRED

where only one task is being done. To add on a second task the sequence could be:-

TASK FORTRAN,*CR FRED,TASK PLASYD,*CR JIM

where the second TASK shows the end of the parameters for the first and the beginning for the second task. Further tasks may be included, for example:-

TASK FORTRAN,*CR FRED,TASK PLASYD,*CR JIM,TASK FORTRAN,*CR JOHN 

where three tasks are being done.

Various parameters determine where the task should commence in the compilation, consolidation and run binary program process (eg FORTRAN or RUN) and others define how a task should end (eg NOCONS or NORUN). The latter type of parameter are called endtask parameters and the absence of an endtask parameter means the task will continue until an error is found or the binary program is run.

After completing a task, the system then commences the next task if any, and when it has completed all tasks it then does an endcall in a manner dictated by the presence or absence of various parameters.

Definition of Terms

call|
An activation of the TASK system to do one or more tasks.
dafilename
This specifies either a filestore *DA file which can have the same format as filename or an exofile which has the format (discpack number, exofilename).
default
This refers to a filename generated by TASK when a named file is implied (eg FRED-DAT in previous examples). The default name is generated by adding a minus sign and a three character suffix (eg -DAT) onto a default base (eg FRED). The generation of the default base is explained in the section on the DEFAULT parameter.
endcall
This defines the way the TASK call ends. If TASK is being run from a MOP terminal an 'ENDJOB' is obeyed. For a BACKGROUND job an 'EXIT' is done. If, however, a MON or EXIT parameter is present then this is executed instead.
endstring
This defines the means of an endtask or endcall. If endstring commences with a digit (eg 1ER) a GOTO endstring is used (eg GOTO 1ER), If endstring is enclosed in brackets, the contents are executed as a GEORGE command eg (GOTO 1ER) is executed as GOTO 1ER. If neither of these apply, the endstring is obeyed as a macro.
endtask
This defines the point of exit from a task> After executing endstring if any, TASK then processes any further tasks and then does an endcall, should a task give an error and the ER parameter is given, TASK executes this parameter then does an endcall, ignoring any further tasks.
filename
Any acceptable GEORGE filename which can optionally include appropriate generation number and qualifier. The filename may be relative to a username to any depth, eg :USER.SUBDIRECTORY.FRED(23/FORT).
local filename
As filename but must be local ie not contain :USER or directory.filename.
number
Any integer number.
online
For peripherals of type CR or TR this defines an input stream as being from the same source as the parameter which implied the online. For a parameter in the TASK macro call this implies the jobsource, and for a parameter in a STEER file it implies the STEER file. For peripherals of type LP, TP or CP this onlines the output stream to the monitoring file. For MT and DA type peripherals it onlines a device of that type (ie a magnetic tape or an exofile).
string
Any sequence of alphanumeric symbols which is valid in the stated context. Unless enclosed in ( ), string must not contain commas.
time
Any time expression acceptable to GEORGE - see JT parameter definition for formats.

Summary of Parameters

Below is given a brief summary of the parameters grouped under the appropriate sections of compilation, consolidation and run binary program. Parameters may be given in full or in some cases they can be truncated down to the minimum number of characters shown in brackets. If the parameter name is truncated, it must be followed by a space if the parameter has an argument.

Compilation

ALGOL                   (1) defines language being compiled
FORTRAN                 (1) defines language being compiled
PLAN                    (4) defines language being compiled
PLASYD                  (4) defines language being compiled
*CR filename                card source file
*CR/ATLAS/ filename         card source file in ATLAS  code (FORTRAN only)
*CR/EBCDIC/ filename        card source file in EBCDIC code (FORTRAN only)
*TR filename                paper tape source file
*TR/FULLMODE/ filename      paper tape FULL MODE (ALGOL only) 

All above are repeatable and considered by TASK in the order given.

Note for / / types, only the first character is significant and the remainder are optional.

Any above without filename - online source file.

*LP                         compiler output to monitoring file
*LP filename                compiler output to filename
COMP                    (2) semi-compiled output to default filename
COMP dafilename             semi-compiled output to dafilename
NOCONS                  (3) endtask after compiling
NOCONS endstring            endtask after compiling by executing endstring
OPT                     (1) use optimising compiler (FORTRAN only)
PD                          use default Program Description/Compiler steering parameters (PLAN only)
PD filename                 obtain Program Description from filename (FORTRAN and PLAN only)
*?? string                  obey string as a GEORGE command where string contains no commas.
*?? (string)                as above but string may contain commas

Consolidation

SEMI dafilename         (2) semi-compiled file to be used in consolidation (repeatable)
LIB dafilename              semi-compiled file searched as library at consolidation (repeatable)
CONS                    (3) non standard consolidation parameters read online
CONS filename               non standard consolidation parameters read from filename
OVERLAY                 (2) consolidate an overlay program to default filename
OVERLAY dafilename          consolidate an overlay program to dafilename
LINK                    (3) causes consolidation of all previously generated semi-compiled 
                            workfiles and any files named in SEMI or LIB parameters in the current task
LINK filename               as above but filename contains LIB and SEMI parameters which are to be 
                            included in the consolidation
SLINK                   (2) as LINK parameter but consolidation does not include previously 
SLINK filename              generated semi-compiled workfiles
DENSE                   (3) consolidate using LINK to dense binary program
NORUN                   (3) endtask after consolidation
NORUN endstring             endtask after consolidation by executing
SAVE                    (2) save binary into default filename
SAVE filename               save binary into filename
SV                      (2) alternate form of SAVE
SV filename                 alternate form of SAVE filename
BIN                     (1) write binary into default filename
BIN filename                write binary into dafilename

Running Binary Programs

#xxn filename               assign filename to peripheral type xx on GEORGE channel n, 
                            where xx is any standard ICL peripheral code eg CR, LP, TP 
                            etc. If n is omitted, zero is assumed
#xxn                        online peripheral type xx to GEORGE channel n
#DAn filename               assigns filestore DA files and onlines exofiles
#?? string                  obey string as a GEORGE command where string contains no commas
#?? (string)                as above but string may contain commas
MAC                     (1) obey default macro
MAC endstring               endtask by executing endstring after assigning peripherals to binary program
TI time                     time limit for binary program run
RUN filename            (2) run the binary program in filename

General Parameters

JT time                     jobtime for entire job (including all tasks)
MZ number                   maxsize of virtual core used (usually for FORTRAN compiler)
MON                     (2) retain monitoring file to default filename which must be a local filename
MON local filename          retain monitoring file to local filename
KEEP                    (1) retain monitoring file, compilation output and binary program run 
                            output (LP0 only) into default filenames unless otherwise specified
string?                     ignore this parameter (not allowed with MZ, MEDIA or JT parameters)
?string                     ignore this parameter (not allowed with MZ, MEDIA or JT parameters)
DEFAULT string          (2) overrides system generated default filename base by string
ER                          endcall if error found
ER endstring                endcall if error found by executing endstring
CONT                        ignore non fatal errors
EXIT                    (2) endcall by doing a GEORGE 'EXIT' instead of 'ENDJOB'
EXIT endstring              endcall by executing endstring
DY string                   change directory to string
STEER                   (2) obtain TASK parameters from jobsource
STEER filename              obtain TASK parameters from filename
NOLIST                  (3) suppress listing to lineprinter of LP0 output and monitor file 
NOLIST string               selective suppression of listing depending on string
PR string               (2) list LP0 and monitor file to lineprinter having property string
MEDIA (string)              define MT and DA on-line peripherals which the call requires
(parameter,parameter,...)   parameters for one task may be grouped together
TASK                    (2) delimits the parameters of different tasks and can 
TASK parameter              optionally be followed by any parameter

Method of Operation

Although referred to as a macro, TASK does the bulk of its work in a program which deals with all parameters except the MZ, JT and MEDIA. This allows greater flexibility in the facilities of TASK and also gives a much more efficient system for running work on the 1906A.

One such facility is the ability to truncate parameters down to the minimum given in the summary of parameters provided any argument is separated by a space, eg SEMI FRED-SEM can be truncated to SE FRED-SEM, COMP can go to CO, FORTRAN to F and so on. Mis-spelling of parameters is not catered for and any parameter a user wishes TASK to ignore must begin or end with a ?. Parameters are read serially, their order being unimportant unless stated in the specification, until the parameter TASK (actual or implied) - see TASK parameter definition - or a null parameter is read. Users who wish TASK to ignore any parameters (ie which are for use after TASK has finished) can have them following the TASK parameters, separated by a null parameter (ie ,,). TASK processes the first task, and then if the delimiter for the parameters was TASK, it commences to read further parameters from that point, and processes further tasks until a null parameter is read.

Parameters are unique to a task except for JT, MZ, MEDIA, PR and LINK. The first three are accessed by GEORGE and must be present in the first task and be sufficient for the total call. LINK is unique in that it permits the system to remember the semi-compiled workfiles created in preceding tasks. The maximum number of parameters in the macro activation is fifteen.

Parameters may also be read from a named file by use of the STEER parameter. Since these parameters are not available to the macro, JT, MZ and MEDIA are not allowed from this source. Any number of tasks and parameters is allowed and TASK switches back to reading parameters from the macro when a blank line or **** is encountered.

When a user repeats a parameter that is not repeatable, TASK ignores the second and subsequent occurrences and does not flag an error. This enables users to override parameters in a STEER file by putting them in the macro parameters before a STEER parameter.

Having read the parameters for a task, and listed them in the monitoring file, TASK then sets up any default filenames, outputs to the monitoring file that it has done so, retrieves all files that should exist (note: named output files are created and trapped as necessary by TASK) and then checks for errors in this stage and unless the CONT parameter is present, does an endtask if it finds any.

If all is well, TASK then commences at the point in the compilation / consolidation / run binary program process indicated by the parameters (eg FORTRAN, RUN, etc). For compilation it sets the semi-compiled output file (if the user has supplied a named file, this is created for him if it does not exist), and the lineprinter output files, loads the compiler and compiles the first source file. Should the compiler require further source files, TASK connects these as specified by the user (eg by additional *CR parameters) and carries on compilation.

A failed compilation or a NOCONS parameter causes an endtask.

Consolidation normally follows successful compilation or can be Commenced by the CONS parameter without a language, and is done either according to compiler generated information or b> automatic linking of semi-compiled by the LINK parameter or by user-supplied parameters via the CONS parameter. If compilation is successful the binary can be kept in the filestore by the SAVE parameter.

A consolidation failure or a NORUN parameter causes an endtask, and in the latter the binary is left in core ready to run. If consolidation is successful or if a binary program run is initialised by the RUN parameter, TASK loads the binary program, assigns LP0 and default CR0 files, if they have not been specified by the user, and any other specified peripherals (via #xx parameter). If a MAC parameter is present, an endtask is done, the binary being left in core ready to run, otherwise TASK runs the binary and then does an endtask.

At each endtask via a parameter (eg NOCONS, NORUN or MAC) without an argument or at the end of a binary program run, TASK commences the next task, if any. If no more tasks exist then an endcall is done by doing a GEORGE 'ENDJOB' for MOP jobs or an 'EXIT' for background jobs. These can be overridden by MON or EXIT parameters. MON causes a GEORGE 'ENDJOB' and retains the monitoring file in the filestore and EXIT on its own causes a GEORGE 'EXIT' from the TASK macro.

For cases where NOCONS, NORUN, MAC (and also EXIT and ER) are given arguments (endstring in the definitions), TASK takes appropriate action. If endstring commences with a digit TASK does a GOTO endstring. If it is enclosed in brackets endstring is executed as a GEORGE command and otherwise it is OBEYed as a macro. Note that a user must exit from a macro call back into TASK if any further tasks are to be done. A user leaving TASK in any other manner cannot process any more tasks.

If an endtask is done due to an error (ie compilation failure), TASK checks for an ER parameter and executes it if one is found in the manner indicated above. If ER has no argument or if control returns to TASK where ER has an argument, then TASK forces an endcall and ignores any further tasks. A binary program run is deemed to have ended in error if it does not HALT AH or HH, or DELETE OK or 00 which are the correct endings for the binary program from the various ICL compilers.

TASK attempts to provide a more readable monitoring file by inserting comments about which section of the compilation, consolidation, or binary program run it is currently in. As TASK does all the analysing of parameters internally it need only issue GEORGE commands to access the filestore and to do its own external housekeeping. These can sometimes generate command errors which TASK will attempt to overcome (ie file traps not open) but in cases of fatal errors an endtask will be done. In order to find as many errors as possible in a run, the occurrence of errors is checked at intervals and an early error can cause spurious errors later, which are related to the initial error(s).

TASK attempts to inform the user of everything it assumes and all default filenames that it generates are noted in the monitoring file. Broadcasts are also made to MOP users about the outcome of their tasks.

The program used by TASK has two normal exits, HALTED LD or DELETED **. It also gives occasional displays which all start with a * and should be ignored. All other displays are done by the compiler, consolidator or user binary program and have the meanings as given in ICL documentation. TASK in some instances amplifies these by a message.

Should any displays or halts beginning with a ! occur, then these are TASK internal (and often fatal) errors. In such cases, if TASK crashes, a postmortem is taken and the monitoring file and all other output should be returned via the 1906A Fault Reporting service for the error to be rectified.

Full Specification of Parameters

On the following pages is a complete description of all the parameters TASK will accept, arranged in alphabetical order, * and # being last. Users are referred to the previous sections for a fuller description of the relationships between various parameters and the finer points of their usage.

ALGOL

Not present
FORTRAN, PLAN, PLASYD, CONS, MAC or RUN must be present otherwise TASK will endtask with an error.
ALGOL

Compiler XALH is used to compile ALGOL from sources specified by the *CR or *TR parameters. Full mode paper tape can be used by specifying it via the *TR parameter. PMD is not implemented, neither is semi-compiled input.

If the compiler reaches the end of the sourcefile, either by reading off the end (NOT recommended) or by reading **** or //// before the 'BEGIN's and 'END's all match, the next sourcefile in the parameter list will be assigned and compilation continued. When no more sourcefiles exist a FINISH will be simulated.

The normal compilation failure ZZ, causes an endtask as do any other non-standard compiler exits.

The successful compilation of a program will call the consolidator unless a NOCONS parameter is present. Successful compilation of segments (DISPLAY EC) will assume a NOCONS parameter unless a LINK or CONS parameter is present. The library used is SRA4.

Examples
TASK ALGOL,*CR FRED      Source in card file
TASK ALGOL,*TR FREDP     Source in paper tape file
TASK ALGOL,*TR/F/ FREDF  Source in full mode paper tape file

The above will compile, consolidate and run the binary program if no error occurs.


BIN

Not present
Binary program is lost after running it.
BIN

Write binary program into default filename eg FEED-BIN. If a file of this name already exists, it will be overwritten.

This should only be used where a binary is required in Standard 1900 direct access binary format. The program must contain a DUMP ON statement in the Program Description, or be consolidated with a consolidator parameter *OUT or be LINKed by TASK.

Users are recommended to use the SAVE parameter instead of BIN as the binary produced is more compact and easier to generate. A binary produced by a BIN parameter is acceptable to the RUN parameter.

BIN dafilename
As above but to dafilename.
Examples
TASK F, *CR FRED,BIN

Compile and consolidate binary of program FRED into FRED-BIN. The binary is then loaded and run. FRED contains a DUMP ON statement in the Program Description.

TASK F, *CR FRED,BIN FREDBINARY, LINK

As above, but consolidation is done using the LINK system which ignores the consolidation directives in the Program Description. The binary is written to FREDBINARY.


COMP

Not present
Semicompiled output is sent to a workfile, from where the consolidator will obtain it.
COMP
Semi-compiled output is to be a default DA filename, eg FRED-SEM. The DA file will be created if it does not exist and traps will be forced to allow writing if necessary.
COMP dafilename
As above but uses a named DA file or exofile. The user is responsible for the creation of the exofile but not for a named DA file. Traps will be forced as necessary in the latter.
Examples
TASK F,*CR FRED                  Semi-compiled goes to workfile
TASK F,*CR FRED,COMP             Semi-compiled goes to FRED-SEM
TASK F,*CR FRED,COMP SEM         Semi-compiled goes to file SEM
TASK F,*CR FRED,COMP (76,SEMI)   Semi-compiled goes to exofile on disc pack 76

CONS

Do parameter driven consolidation.

Not present
Automatic consolidation occurs as dictated by the program description lines (or those assumed by default) fed into the compiler, unless a LINK parameter present.
CONS and no LINK parameter
Do a free standing consolidation and get the required driving parameters (eg *IN(A), *LIB(A), *LIST etc)
online. The parameters must be followed by ****. As in the *CR parameter, online is defined as the source from which the CONS parameter was read and this can be either a jobsource (background job only) or a STEER file where the consolidator-driving parameters should follow the TASK parameters, separated from them by a blank line. For example, if a user had two FORTRAN semi-compiled files S1 and S2 then he could consolidate them by having a file CONSFILE:-
CONS
SEMI S1        TASK steering parameters
SEMI S2
NORUN
SAVE BIN
*LIST
*IN(A)         Consolidator parameters
*IN(B)
*LIB(C)
****
which can be called by TASK STEER CONSFILE and consolidation will be done according to the parameters following the TASK parameters. Consolidation would include S1 and S2 and the FORTRAN library SRF8 (which is connected automatically in a freestanding consolidation).
CONS + LINK parameters
Do a freestanding consolidation using the LINK system to provide the consolidator driving parameters. The previous example could have been achieved by:-
TASK CONS,SEMI S1,SEMI S2,LINK,NORUN,SAVE SBIN
or if S1 was to be regenerated from S1 SOURCE by:-
TASK F,*CR S1SOURCE,COMP S1,SEMI S2,LINK, NORUN,SAVE SBIN
CONS filename
As above but consolidator parameters obtained from filename. In this case consolidation after compilation is also catered for (in previous formats this is not allowed due to the usual online restriction that the compilers also read on CR0). Thus if CONSFILE contains:-
*LIST
*IN(A)
*IN(B)
*LIB(C)
****
The consolidation of S1 and S2 could be done by:-
TASK CONS CONSFILE,SEMI SI,SEMI S2,NORUN,-
SAVE SBIN
or if S1 was to be regenerated from S1SOURCE by:-
TASK F,*CR S1SOURCE,COMP S1,SEMI S2,CONS -
CONSFILE,NORUN,SAVE SBIN

CONT

Carry on despite nonfatal errors.

Not present
If any error occurs then an endtask is done, except where TASK can ignore or correct the error, eg file traps not set correctly, (See also ER parameter.)
CONT
All errors are ignored except where they would be fatal and crash TASK. This is intended to avoid jobs failing because of, say, an error in a data filename which would not have affected the compilation and allowed the user at least to check for compilation errors. Users are warned that this parameter could still get TASK in a mess and may crash it in extreme cases.

DEFAULT

Specifies the default base

Not present
The default filename is obtained from the following sources in order of precedence:-
  1. The first sourcefile name/CONS filename/ RUN filename, except where they imply an online source.
  2. The name of the STEER file.
  3. NO-NAME
In all cases the default name is found by truncating the filename at either a space, a - or a ( or after eight characters whichever is the sooner.
DEFAULT string
This overrides the above rules and uses string as the default base
TASK call                       default base
TASK F,*CR FRED                   FRED
TASK RUN FRED-BIN                 FRED
TASK STEER FREDSTEER1             FRED
and FREDSTEER1 contains:
C  F
C  *CRFRED
C  SAVE
C  NORUN
****
TASK STEER FREDSTEER2             FREDSTEE
where FREDSTEER2 contains:
C  F 
C  *CR 
C  SAVE 
C  NORUN
      MASTER ABCD
      ...........
      FORTRAN program
      .......
      FINISH
****
TASK F,*CR                        NO-NAME 
      MASTER ABCD
      ..........
      FORTRAN program
      ...........
      FINISH
****
where the above is a background job
TASK F,*CR FRED,DEFAULT JIM       JIM
where DEFAULT is used to override the normal default.

DENSE

Consolidate a dense (as opposed to sparse) program when using LINK. This is only necessary in very special cases where a 22AM/EBM program is required to be dense code.

Example
TASK F, *CR FRED,DENSE,LINK 
Consolidate FRED as a dense program.

DY

Defines filestore directory.

Not present
All filestore entrants are assumed to be in the directory or pseudo directory from which TASK was called, unless they are relative to a directory name (ie :USER.FILE).
DY string
Change directory to string which must be preceded by a : if it is not a subdirectory of the current directory.
A DY parameter applies for the whole of the call unless changed by a further DY parameter. Unlike most other parameters, it is implemented immediately it is read and all filenames etc. are accessed relative to the last DY parameter of the call. The only exception is for those parameters which are also implemented immediately they are encountered and these are done relative to the last DY parameter which preceded them. Examples of these parameters are DY, STEER and LINK. Care is needed with the STEER system when the STEER file contains a DY parameter and more than one task is to be done. The STEER file for the tasks after the DY parameter would be accessed relative to the new directory and this would cause an error. This can be easily overcome by giving the STEER filename relative to a directory, ie :USER.STEERFILE.
Examples
TASK F,*CR FRED,DY iFREDDIR
where the user called TASK from a different directory to that containing FRED, and its datafile FRED-DAT.
RJ MOPUSER,:USER,TASK F,*CR FRED,DY :FREDDIR
As above but illustrating the RUNJOB user of DY command, where :FREDDIR is a pseudo user.
TASK PLAS,*CR PI,COMP,NOC,TASK F,*CR FI,DY :FIDIR,SEMI :PIDIR.PI-SEM
The user calls TASK in :PIDIR and gets semi-compiled PI-SEM, then switches directions to :FIDIR, and compiles and consolidates FI with PI-SEM now referenced back to directory :PIDIR.
TASK STEER :USER.FILE
Full directory filename for STEER file given so user can change directories in FILE.

ER

Defines the action to be taken in case of error.

Not present
If any error occurs then an endtask is done, except where TASK is able to correct or ignore the error, for example if the traps are incorrectly set on an output file or a broadcast is done and the MOP user has logged out.
ER
If any error occurs an endcall of TASK will occur and all the following tasks are ignored. This is intended for a sequence of events where it is wished to abort the job should an error occur in any part. Errors could be due to TASK parameter errors, files not existing, compilation failures (Fail ZZ) or other non standard compiler halts, consolidation failures (other than consolidated with segments missing) and any binary program run which does not HALT AH or HH, "or DELETE 00, or OK (these being the usual ends for binaries produced by the standard compilers).
ER endstring
As above but executes endstring
Examples
JOB JOBNAME,:USER 
TASK F,*CR,ER 1ER
...
FORTRAN program
.....
1ER
EJ
****
would be used in a background job to jump to label 1ER in case of error to avoid obeying the program as GEORGE commands.
TASK F,*CR FRED,SAVE,ER,TASK RUN FRED-BIN,#CR FRED-DAT1
Fred is compiled, saved in to binary program FRED-BIN and then run with default datafile FRED-DAT. The second task uses the same binary with FRED-DAT I as data. Had a compilation error occurred then the second task would have been ignored.

EXIT

Do an EXIT from a call of TASK.

Not present
For a call from a MOP console TASK will endcall by doing a GEORGE 'ENDJOB'. From a background call of TASK a GEORGE 'EXIT' will be done back into the job or macro which called TASK.
EXIT
An endcall does an EXIT.
EXIT endstring
As above but endstring is executed.
Example
JOB JOBNAME,:USER
TASK F,*CR,NORUN,EXIT 10K,ER 1ER
....
10K
....
1ER
....
****
The background job above exits to label 10K if the compilation is successful and 1ER if not.

FORTRAN

Compile a FORTRAN program.

Not present
ALGOL, PLAN, PLASYD, CONS, MAC or RUN must be present otherwise TASK will endtask with an error.
FORTRAN
Compiler XFIH (or XFEH if the OPT parameter is given) is used to compile FORTRAN for sources specified by the *CR or *TR parameters. In addition to 1900 card code, EBCDIC and ATLAS codes can be used by specifying these via the *CR parameter. In the absence of a Program Description (Compiler DISPLAY C2) a default of:-
PROGRAM  (FORT) 
INPUT   1,5=CR0 
OUTPUT  2,6=LP0
END
is provided.
A PD parameter followed by a filename causes the Program Description to be read from filename. If the compiler reaches the end of the sourcefile, either by reading off the end (NOT recommended) or by reading **** or //// before a FINISH is encountered, the next sourcefile in the parameter list will be assigned and compilation continued. When no more sourcefiles exist, a FINISH will be simulated. The normal compilation failure, ZZ causes an endtask as do any other non standard compiler exits. The successful compilation of a program will call the consolidator unless a NOCONS parameter is present. Successful compilation of segments (DISPLAY EC) will assume a NOCONS parameter unless a LINK or CONS parameter is present. The library used is SRF8 and the HEP switch always on.
Example
TASK FORTRAN,*CR FRED,*CR/A/ FRED1,*CR/E/ FRED2,*CR FRED3
Compile, consolidate and run the binary program from the compilation of FRED, FRED1, FRED2 and FRED3, of which FRED1 is in ATLAS card code, FRED2 is in EBCDIC card code and FRED and FRED3 are in 1900 card code. The first three files must not contain a FINISH and should preferably end with either **** or ////.

JT

This specifies the jobtime for the whole TASK call. This must be sufficient for the time given to binaries (eg compilers and binary programs) and also the overheads on TASK and GEORGE. Users are warned that excessive filestore usage can incur a very heavy overhead and the jobtime consumed will be out of all proportion to the milltime clocked by the binary. If the job exceeds the jobtime, it will be abandoned by GEORGE.

Not present
The default installation value is assumed and is currently 120 seconds (2 mins).
JT time
This specifies the jobtime for this call of TASK, This parameter is looked at by GEORGE and must be correct. It it is wrong the default jobtime will be given. Acceptable formats are:-
number       (same as number SECS)
number SECS
number MINS
Note the plural for SECS etc is always required.
As far as TASK is concerned the JT parameter has the additional meaning that the difference between the times of the JT and TI parameters gives the time for the compilation and consolidation. Thus with the default values this difference is 120 - 30 = 90 seconds, the compilation and consolidation is allocated 85 seconds, 5 seconds being allowed for TASK and GEORGE overheads. Users requiring more than 85 seconds for compilation should specify an appropriate jobtime so that JT-TI-5 seconds is the compilation and consolidation time. TASK checks the calculation and actually uses the greater of 85 seconds or that calculated.
Further complications occur when there is more than one task as the jobtime must be enough for the complete call. The JT parameter is carried forward to each task and the calculation made previously is done to find the compilation time (if any). Hence the first compilation time will be far longer than need be but unless the compiler gets in a loop this is of no consequence.
In calculating such an overall jobtime, an overhead for TASK and GEORGE of 5 secs per task is recommended.
This parameter has no effect if it is in a STEER file and it should precede any call of a STEER file which contains more than one task.
Examples
JT 50
JT 50SECS
JT 5MINS
TASK JT5MINS,STEER S
where S contains STEERING parameters which can include more than one task.
TASK F,*CR FRED,JT  60,TI  20 
Compilation time allowed is 35 sees, binary run time is 20 sees.
TASK RUN FRED-BIN,JT  60,TI  55 
Binary run time is 55 sees and jobtime is 60 sees.
TASK F,*CR FRED,JT 1MINS,TASK F,*CR JIM
The total compilation and binary run rime of FRED and JIM must not exceed 1MINS (Note the plural).

KEEP

This parameter is intended for remote users and KEEPs all the output from a job in the filestore. Listing is done as normal to the line-printers unless a NOLIST parameter is present.

Not present
Unless a MON,*LP or #LP parameter is present all output goes via workfiles to the lineprinters.
KEEP
This is equivalent to the following parameters where default base is defined as normal:-
*LP  default base-OUT
#LP0 default base-RES 
MON  default base-MON
Note the presence of any of these parameters will override the KEEP default. Users are warned that as this uses default filenames, repeated runs of the same program will overwrite previous output. This can be useful where the previous runs had, say, compilation errors but when production results are required to be kept in the filestore from several runs then these will overwrite previous results. This can be overcome by either:-
  1. Specify a different file by use of one of the parameters KEEP is equivalent to. This will override the default name generated.
  2. Specify a different name for default by use of DEFAULT parameter.
Examples
TASK F,*CR FRED,KEEP
Compiler output to FRED-OUT, binary LP0 results to FRED-RES and monitor file to FRED-MON. All files are listed on the lineprinters.
TASK F,*CR FRED,KEEP,DEF JIM,#CR FRED-DAT
As above but output now to JIM-OUT, JIM-RES and JIM-MON. Note the #CR parameter as the default datafile is JIM-DAT.
TASK F,*CR FRED,KEEP,#LP OUT 
As first example but binary results to OUT.

LIB

Not present
As per absence of SEMI parameter.
LIB dafilename
As per SEMI parameter but if the LINK parameter is used, dafilename is scanned as a library and its semi-compiled only included to satisfy outstanding cues. (See also LINK parameter),

LINK

Consolidate all semi-compiled files.

Not present
Automatic consolidation occurs as dictated by the Program Description lines (or those assumed by default) fed into the compiler unless a CONS parameter is present.
LINK
This parameter behaves in a similar way to CONS except that it generates the necessary consolidator-driving parameters itself.
It overrides the automatic consolidation, ignores the Program Description parameters relating to consolidation and consolidates all the semi-compiled specified in the task either as normal semi-compiled if specified by a SEMI parameter, or as a library if specified by a LIB parameter (ie only those routines that are called by the program are included), along with any semi-compiled from this task and the library appropriate to the language used. It also consolidates all the unnamed semi-compiled output from previous tasks in this job (ie semi-compiled which has gone to workfiles). If the user has used a COMP parameter in a previous task then to include this semi-compiled in the consolidation, there must be an appropriate SEMI (or LIB) parameter in the task which contains the LINK parameter. TASK will go on to run the binary unless told otherwise (ie via NORUN parameter). For example:-
TASK PLAS,*CR P1,NOCON,ER,TASK F,*CR E2,- 
LINK,SAVE PBIN
This compiles the PLASYD P1 in the first task, and in the second task compiles the FORTRAN in P2, then consolidates both together, along with the FORTRAN library saves the binary to PBIN and then runs it. Note the ER parameter to abort the call if a compilation error occurs in P1.
The semi-compiled is consolidated in the following order. First, any semi-compiled from a compilation in this task, followed by any from the SEMI or LIB parameters in the order they are given, with workfiles from previous tasks included at the position of the LINK parameter. The appropriate library is consolidated last (FORTRAN library SRF8 being used if no compilation has occurred).
If, however, a SEMI or LIB filename is identical to that given with the COMP (or implied by default), the semi-compiled from the compilation will be consolidated at that point and not first. For example:-
TASK FORTRAN,*CR JIM,COMP JIM-SEM,LINK,-
SEMI FRED-SEM,SEMI JIM-SEM,LIB(26,NAGLIBF),- 
SAVE BIN,NORUN
where FRED-SEM is consolidated before JIM-SEM with routines from the NAGLIBF and FORTRAN libraries being included as required.
TASK will only ignore an identical name and the use of generation numbers and language codes in semi-compiled filenames is not recommended in this instance.
LINK filename
As above but additional SEMI and LIB parameters will be obtained from filename which will be read in the same way to a STEER file (and can be called from a STEER file) and must end with a blank record or ****. This allows a user to have a library of semi-compiled and to recompile one and then link it to the others. For example:-
TASK F,*CR JIM,COMP,LINK FRED-LIB,SAVE BIN,NORUN
where FRED-LIB contains:-
SEMI  FRED-SEM 
SEMI  JIM-SEM 
LIB(26,NAGLIBF)
****
The duplication of JIM-SEM by the default COMP filename and the SEMI parameter means it is consolidated after FRED-SEM.
Consolidation on its own could be done by:
TASK CONS,LINK FRED-LIB,SAVE BIN,NORUN
Note that parameters other than SEMI and LIB may occur in a LINK file but no TASK or STEER parameters are allowed. Other parameters are treated exactly as in the STEER system. (See also the section "Consolidation of LINK parameter" in Part 2).

MAC

Specify macro to control binary program run.

Not present
In the absence of a NOCONS or NORUN parameter and if compilation and consolidation is successful (or if binary loaded directly using the RUN parameter) the binary program will be connected to the default peripheral channels CR0 and LP0 (unless overridden by the user), and all peripherals specified via #xx or #?? parameters. Provided there are no errors (which can be overridden by the CONT parameter), the binary program is run by obeying an EN 0. After the binary program has ended TASK does an endtask unless the binary did not end correctly when any ER parameter present will be executed.
MAC
As above but instead of an EN 0, a default macro name (eg FRED-MAC) is obeyed. In this manner the user can assign additional peripherals, enter the binary program and take care of the various HALTS etc. If the macro does a GEORGE 'EXIT' then control will return to TASK which will do an endtask and any further tasks that are outstanding. Users who use the ER parameter are warned that they must exit their macro with the binary having halted correctly to avoid TASK taking error action.
MAC endstring
As above but endstring is executed. If endstring is a macro then the only difference between NORUN and MAC is that the latter is entered after all the default and specified peripherals have been connected to the binary program. NORUN omits this stage. Both leave the binary program in core ready to run with an output file on LP0.
MAC may also be the only parameter in a task and this is intended for users wishing to run say a preprocessing system before doing a TASK compilation. It is only meaningful where endstring is a macro.
If an ER parameter is used, the remaining tasks will be aborted if the macro does not end correctly.
MAC and the NOCONS and NORUN parameters
The MAC parameter is a master parameter in the sense that if it is present along with either NOCONS or NORUN, then the MAC parameter is executed when either the NOCONS or NORUN is obeyed. The main use of this is in default macro names which MAC alone can generate. The action of NOCONS or NORUN followed by endstring and a MAC parameter is undefined.
Examples
TASK F,*CR FRED,MAC
If compilation and consolidation are successful TASK assigns FRED-DAT if it exists and obeys FRED-MAC.
TASK F,*CR FRED,MAC MYMACRO
As above but obeys MYMACRO.
TASK RUN FRED-BIN,MAC (EN 5)
The binary FRED-BIN is loaded and FRED-DAT assigned if it exists. The binary program is entered at entry point 5 instead of 0.
TASK MAC (FORTIDY *CR FRED), TASK F,*CR FRED
FRED is put through the FORTIDY system and also compiled and run by TASK.

MEDIA

Declares a program is going to require online exofiles or magnetic tapes.

Not present
Should the program request an online magnetic tape or exofile (other than one on the system library disc 26), it will be abandoned by HLS by setting the jobtime to zero causing it to fail jobtime exceeded.
MEDIA (string)
This declares what online peripherals are to be used and the parameter is repeatable. string has the format medium, number, details and only details is optional. medium can be any one of the following:-
TAPE7 - indicating 7-track magnetic tape 
TAPE9 - indicating 9-track magnetic tape 
EDS   - indicating exchangeable disc drive
number indicates the number of devices of the type medium which will be required by a job.
details has the form (serial1,serial2,..) where serial1 etc are the magnetic tape serial numbers or disc pack numbers which will be onlined during a job.
Examples
MEDIA (TAPE7,1,(700031)) User requires a 7-track tape, serial number 700031
MEDIA (TAPE9,2)          Two 9-track worktapes are required.
MEDIA (EDS,2,(032,040))  Disc packs 032 and 040 are required.

MON

This parameter is intended for MOP users who wish to look at their job monitoring file as soon as TASK has run, and retain the monitoring file in the filestore.

Not present
The jobs monitoring file is output to the lineprinters in the normal way.
MON
The monitoring file is put into a default filename eg FRED-MON. The monitoring file is also listed on the lineprinters in the normal manner unless a NOLIST parameter is present. Note there is a GEORGE restriction that filename must be a local name, eg FRED-MON and not :USER.FRED-MON.
MON local filename
As above but the monitoring file is put in local filename. Any previous contents of local filename are lost.
The monitoring file is a special type of file and can be listed in the normal manner on a MOP console but not edited. Each line will be prefixed by four characters of GEORGE redtape and these should be ignored. If it is required to list one of these files on the lineprinter the command
LF filename,*LP,SP 
should be used.
A macro MON also exists and this is called by MON string and acts on a file called string-MON and hence means the monitor filename must end in -MON (eg if you use MON on its own as a parameter then the default base (eg FRED) should be put as string in the call of MON).
The macro converts the monitor file to a basic peripheral file and enters the editor. The user can then skip down his monitor file looking at relevant sections. The macro is exited by doing a 'Q' to the editor. The macro can be repeatedly applied to the same file but after the first application the editor can be used in the normal manner and the file can also be listed normally. The macro may also be called by
MON filename,*LP
which outputs the file onto the lineprinters but does not enter the editor.
Examples
TASK F,*CR FRED,MON
Monitor file listed and also put in FRED-MON, overwriting the previous contents (if any).
TASK F,*CR,MON FREDM,NOLIST 
Monitor file is not listed and is put in FREDM.
In the first example a MOP user on receiving the broadcasts that the job has finished could type
MON FRED 
and then inspect the monitoring file using the editor.

MZ

This gives the maximum SIZE of virtual core the job will occupy.

Not present
The default installation value is assumed. (Currently 100000).
MZ number
The parameter is looked at by GEORGE and must be correct. The unit of number is words.
The main use for this is when the FORTRAN compiler is used on a very large program. In order to avoid the job being held up by the compiler wishing to use more core and issuing a MZ command to do so (this effectively puts you at the back of the jobqueue and as you cannot be SAVED by the HLS this gives a high probability of losing the job in a GEORGE crash), it is advisable to forewarn TASK of this via the MZ parameter, TASK then loads the FORTRAN compiler with this virtual core. This parameter has no effect if put in a STEER file and must occur in the parameters of the macro.
Example
TASK F,*CR FRED,MZ120000
where FRED is a large program and causes the FORTRAN compiler to require a virtual core of 120000 words.

NOCONS

endtask after compilation.

Not present
If compilation is successful the consolidation is commenced. If compilation fails then an endtask is done.
NOCONS
endtask after compilation.
NOCONS string
As above but by executing endstring.
NOCONS and MAC parameter
See MAC parameters.
Examples
TASK F,*CR FRED,COMP,NOCONS 
endtask after compilation and putting semi-compiled in FRED-SEM.
TASK F,*CR FRED,COMP,NOCONS 1CONS 
endtask by GOTO 1CONS after compilation. Only valid in background job.

NOLIST

Suppresses listing of output to lineprinters

Not present
The compiler, consolidator, binary program output on LP0 and the monitoring file are listed on the lineprinters.
NOLIST
No listing to the lineprinters is done by TASK.
NOLIST string
NOLIST may optionally be followed by a string which defines which output is not to be listed. This string may be one or more of the following
*LP    No listing of compilation, consolidation (and the results of the binary 
       program run if it is to the same sink) is done.
#LP    No listing of the binary program results is done.
MON    No listing of the monitoring file is done.
Note only the first character is significant and that the presence of all three of the above is equivalent to NOLIST without string.
Examples
TASK F,*CR FRED,KEEP,NOLIST
The output goes to the default filenames generated by the KEEP parameter and no listing of output occurs.
TASK F,*CR FRED,NOLIST *LP,#LP
The compilation and consolidation output is not listed and the results go to the monitoring file which is listed. Note that if the #LP had not been present, the results would also not have been listed as they would have gone to the same file as the compilation output.
TASK F,*CR FRED,NOLIST *LPMON,#LP RESULTS
No listing of either the compilation, consolidation or monitoring file is done. The binary program results are listed. Note that *LPMON could be shortened to *M as only the * and M are significant.
TASK RUN FRED-BIN,NOLIST M
The binary program results are listed as normal but no listing of the monitoring file is done.

NORUN

endtask after consolidation.

Not present
After successful consolidation, the user's binary will be loaded, peripherals assigned, and if no MAC parameter is present an ENTER 0 is done.
NORUN
Do an endtask after consolidation leaving the binary loaded into core, with LP0 attached to a file containing the compilation and consolidation output.
NORUN endstring
As above but by executing endstring.
NORUN and MAC parameters
See MAC parameter. Note also the difference between MAC and NORUN as explained in MAC.
Examples
TASK F,*CR FRED,SAVE,NORUN
Compile and consolidate FRED. Save the binary to FRED-BIN and then endtask.
TASK F,*CR FRED,SAVE,NORUN FRED-MAC
As above but obey FRED-MAC after consolidation, FRED-MAC could add the peripherals, run the binary and cater for the various program halts.

OPT

Provides optimising compiler XFEH (FORTRAN only) See FORTRAN parameter.


OVERLAY

Consolidate an overlay program.

Not present
The semicompiled is consolidated in the normal manner.
OVERLAY
Consolidate the semicompiled as an OVERLAY program and put the binary in default filename eg FRED-BIN. The program must have a DUMP ON statement in its Program Description or be LINKed BY TASK, Note that OVERLAY is the equivalent of SAVE in a non overlay program (though it is not optional as the binary must have somewhere to keep the overlays).
OVERLAY dafilename
As above but binary put in dafilename. (See also the LINK parameter and the section "Overlay Programs" in Part 2.)
Examples
TASK F, *CR FRED, OVERLAY
FRED is an overlay program with DUMP ON and OVERLAY PROGRAM statements in the Program Description, the binary being put in FRED-BIN. It is compiled, consolidated and run, with data optionally from FRED-DAT.
TASK F, *CR FRED, OVERLAY FREDBINARY, LINK, SEMI JIM-SEM
As above but the binary is put in FREDBINARY and LINKed with an overlay semi-compiled in JIM-SEM.

PD

Provides Program Description/Steering lines file. See PLAN and FORTRAN parameters.


PLAN

Compile a PLAN program.

Not present
ALGOL, FORTRAN, PLASYD, CONS, MAC or RUN must be present otherwise TASK will endtask with an error.
PLAN
Compiler XPLT is used to compile PLAN from sources specified by the *CR or *TR parameters.
The PD parameter without an argument will include the default set of steering lines of:-
PROG (PLAN) 
NEXT (#XPCH)
BIN
OUT (A)
WSF (SUBROUTINE)
STEER (LIST,OBJECT)
PLAN (CR)
PD followed by filename gets steering lines from filename. The use of the PD parameter is NOT recommended as it is very inefficient. It is much better to include the steering lines in the program.
PLAN programs and segments should commence with a #PROGRAM and end with #END, with a PLAN(CR) between each segment and the whole program must end with an ENDPROG.
If no ENDPROG is found, the compiler will read off the end of the source file and the next source file in the parameter list will be assigned and compilation continued. If no more source files exist an ENDPROG will be simulated.
The normal compilation failure, ZZ, causes an endtask as do any other non standard compiler exits.
The successful compilation of a program will call the consolidates unless a NOCONS parameter is present. Successful compilation of segments (DISPLAY EC) will assume a NOCONS parameter unless a LINK or CONS parameter is present.
The library used is S-RS.
Examples
TASK PLAN,*CR FRED        Card file source
TASK PLAN,*TR FREDP       Paper tape file source
The above will compile, consolidate and run the binary program if no errors are found.

PLASYD

Compile a PLASYD program.

Not present
ALGOL, FORTRAN, PLAN, CONS, MAC or RUN must be present otherwise TASK will endtask with an error.
PLASYD
Compiler YAPQ is used to compile PLASYD from sources specified by the *CR or *TR parameters. If the compiler reaches the end of the source file by reading off the end (NOT recommended), the next source file in the parameter list is assigned and compilation continued.
The normal compilation failure, ZZ causes an endtask. as do any other non standard compiler exits.
The successful compilation of a program will call the consolidator unless a NOCONS parameter is present. Successful compilation of segments (DISPLAY EC) will assume a NOCONS parameter unless a LINK or CONS parameter is present. The library used is S-RS.
Examples
TASK PLASYD,*CR FRED       Source on cards
TASK PLASYD,*TR FREDT      Source on papertape
The above will compile, consolidate and run the binary program if no errors occur.

PR

Defines the property of the lineprinter to which the LP output and monitor file is to be sent. This is intended for a remote MOP user wishing his output to come to a nearby RJE station. All jobs input from an RJE station have their output automatically returned to it and do not require a PR parameter unless they wish to send it somewhere else. The ACL lineprinters have the property CENTRAL.

Not present
All listing is done to the main lineprinters or the RJE station the job originated from.
PR string
All listing of *LP, #LP and monitor files output is done to a lineprinter having the property string. The property is carried forward through all tasks in that call and therefore need only be given in the first task. If the property does not exist, the listing will he done to the ACL printers or to the RJE station from which the job originated.
Examples
TASK F,*CR FRED,PR GLASGOW
All output from this task is sent to a lineprinter having the property GLASGOW.
TASK F,*CR FRED,PR GLASGOW, TASK F,*CR JIM
Output from both tasks will be sent to a lineprinter having the property GLASGOW. The properties currently used are:-
EXETER
BELFAST 
ROE 
RGO 
GLASGOW
LONDON
MANCHESTER
LIVERPOOL
SOUTHAMPTON
SUSSEX

RUN

Load and run a binary program.

Not present
ALGOL, FORTRAN, PLAN, PLASYD, MAC or CONS must be present or TASK will endtask with an error.
RUN filename
Load the binary program in assign default CR0 and LP0 (unless overridden by the user) and all #xx and #?? peripherals. EN 0 unless a MAC parameter is present in which case execute it.
Examples
TASK RUN FRED-BIN
Binary FRED-BIN is loaded, a workfile assigned to LP0 and FRED-DAT assigned to CR0 if it exists. The time limit for the binary program is the default value of 30 seconds.
TASK RUN FRED-BIN,JT 140,TI 135,#LP0 JUNK,#CR0 DATA
As above but output now to JUNK, data is obtained from DATA and time limit is 135 seconds. Jobtime is increased to 140 seconds to cover this.

SAVE

Save binary program in filestore.

Not present
Binary program is lost after running it.
SAVE
Save the binary program into default filename eg FRED-BIN. If a file of this name already exists, it will be overwritten. Note that this only occurs after successful compilation and consolidation so that a failure in either would leave any old saved binary program intact.
SAVE filename
As above but to filename.
SV and SV filename
Alternate parameter for SAVE.
Examples
TASK F,*CR FRED,SAVE
Compile and consolidate binary and save into FRED-BIN. The binary is then run.
TASK F,*CR FRED,SV FREDBINARY 
As above but binary saved to FREDBINARY.

SEMI

Semicompiled DA files to be included in consolidation.

Not present
Consolidation will include only the semi-compiled output (from a DA file or workfile) from the compilation along with the normal library associated with the compiler.
SEMI dafilename
Consolidation in addition to the above includes the semi-compiled in dafilename. The parameter can be repeated and unless LINK is used the consolidator must be told about the semi-compiled via either the Program Description of the source code or in parameters via a CONS parameter.
Note that if a semicompiled filename is given in Program Description section of a source program it is only a dummy. For example,in a FORTRAN program description SEMICOMPILED(A) where A is a dummy filename.
Semicompiled is consolidated in the order the SEMI (and/or LIB) parameters are given and this must agree with the order of SEMICOMPILED (and/or LIBRARY) statements in the FORTRAN Program Description or the *IN (and/or *LIB) parameters if the CONS parameter is used.
Examples
TASK F,*CR FRED,SEMI PLANSEMI
If FRED contains a SEMICOMPILED program description statement as above then the semi-compiled PLANSEMI is consolidated in.
An easier way is to leave out the SEMICOMPILED statements in the FORTRAN Program Description and to use the LINK parameter. The TASK call above now becomes:-
TASK F,*CR FRED,SEMI PLANSEMI,LINK

SLINK

This behaves in an identical manner to the LINK parameter except that workfiles from preceding tasks are not consolidated in.


STEER

Read parameters for TASK from the specified file or from jobsource.

Not present
TASK obtains all its parameters from the macro call and stops looking for parameters when it finds a null.
STEER filename
On reading this parameter TASK immediately switches to filename to read further parameters. It continues to read down the file until a blank record or **** is found and it then reverts back to reading parameters from the macro. Any STEER parameters in the STEER file will switch to the appropriate file but note this is only meaningful as the last parameter and does not allow any additional tasks in the subsequent STEER files. The first blank record or **** will always revert reading back to the macro parameters.
Multiple tasks are allowed in the same manner as for normal macro parameters and TASK records the macro parameter which called the STEER file and the depth at which the new task was found. The second task will fail if the user does a change of directory (via a DY parameter) in the STEER file unless the STEER filename is referenced to a directory. It is strongly recommended that the STEER file be put in the same directory as the files it references or better still used as described below.
Parameters not allowed in STEER files are JT, MZ and MEDIA since these are not available to GEORGE. These must be given (if required) in the macro parameters before the STEER parameter, so that they form part of the first task.
Parameters in a STEER file are written one per line in the file. They need not be left justified and can optionally be preceded by "C " which must be left justified.
If the STEER file contains the parameters *CR or #CR without filenames, this tells TASK to obtain the program or data from this file (ie online) and this can be one of the best uses of STEER files. By inserting the TASK parameters at the front of the sourcefile of a FORTRAN program, the user does not have to remember what parameters the compilation requires. If these parameters are prefixed by "C " then the program can also be compiled in the normal manner, the TASK parameters being treated as comments by the FORTRAN compiler. TASK parameters on the front of source files for other languages do not have this facility and must be removed if the source file is to be compiled in the normal manner.
For example, if a user had a file FRED containing:-
C FORTRAN 
C *CR
      MASTER ABCD
      ..........
      END
      FINISH
****
to compile and run the binary program he would use
TASK STEER FRED
The default datafile would be FRED-DAT as normal. The task
TASK F,*CR FRED
would also work as the parameters would be treated as comments by the FORTRAN compiler.
Datafiles may also contain- TASK parameters for example, if the file FRED-DAT had
RUN FRED-BIN
*CR
data
****
this could be used by
TASK STEER FRED-DAT
Note that this facility has the restriction that in between the parameters being read from the STEER file and its use as either a program source or a datafile, no use must be made of GEORGE channel CR0. Hence it is not possible to have both data and program source in a STEER file. Also note that if multiple tasks are used, the online must occur in the last task.
STEER
This acts as above but the STEER parameters are read from the job source and hence it is only applicable to background use. For example, a job might be:-
JOB JOBNAME,:USER
TASK STEER
FORTRAN
*CR
DEFAULT FRED
      MASTER ABCD
      .........
      FINISH
EJ 
****
where the FORTRAN is read online from the job source. This facility saves the repunching of the TASK call if parameters are to be changed and avoids one possibility of error. Note the use of DEFAULT to get the default base of FRED instead of NO-NAME.
Examples
If a file, say, DRIVE contained:-
F
*CR FRED
SV
ER
NORUN
TASK RUN FRED-BIN
#CR DATA1
TASK RUN FRED-BIN
#CR DATA2
****
then the call
TASK JT 180 STEER DRIVE
would compile FRED and if no errors occurred, would run its binary with DATA1 and DATA2.

string? or ?string

Any parameter followed by a ? will be ignored, from both macro or STEER files, except for JT, MZ and MEDIA commands which are accessed by GEORGE and must therefore be correct. Parameters preceded by a ? will also be ignored.

Example
TASK F,*CR FRED,LIB (27,NAGLIB?,LIB (26,NAGLIB) 
The first LIB is ignored.

TASK

Delimits parameters on different tasks.

Not present
The parameters for the call of TASK (both in the macro and any STEER file) must constitute a single task (but see later).
TASK
The parameters following this parameter belong to another task and are not read until the current task is completed.
TASK parameter
As above but the parameter TASK and the first parameter of the following task may be separated by a space instead of a comma. This is to achieve syntactic agreement with the macro call.
implied TASK parameter
If a language (eg FORTRAN) or RUN parameter occurs after a language or RUN parameter has been found already in a task, then it is deemed to be prefixed by a TASK parameter and delimits the parameters following as being part of a second task.
Examples
The following are identical in their actions:-
TASK JT 180,F,*CR FRED,TASK F,*CR JIM,SV,TASK RUN JIM-BIN 
TASK JT 180,F,*CR FRED,TASK,F,*CR JIM,SV,TASK,RUN JIM-BIN 
TASK JT 180,F,*CR FRED,F,*CR JIM,SV,RUN JIM-BIN
The above example consists of three tasks and achieves in one call what the following three calls would achieve in a much more inefficient manner. Note the increase in jobtime to cater for all three tasks in the multitask case:-
TASK F,*CR FRED 
TASK F,*CR JIM,SV 
TASK RUN JIM-BIN

TI

This specifies the milltime the run of a binary program may consume.

Not present
A default time of 30 seconds is allocated.
TI time
This overrides the default time. The format of time is given in the JT parameter.
Examples
TASK F,*CR FRED,TI 5 
Run of binary program has limit of 5 seconds.
TASK F,*CR FRED,JT 6MINS,TI 5MINS
Run of binary program has limit of 5 minutes. Note the JT value to allow time for the compilation.
TASK RUN FRED-BIN,TI 25SECS
Binary program FRED-BIN is run for maximum of 25 seconds. Since the default JT value is 120 seconds, this need not be increased.

*CR and *TR

Not present
If the parameter ALGOL, FORTRAN, PLAN or PLASYD is given this is an error (but see below).
*CR filename
*CR/ATLAS/ filename
*CR/EBCDIC/ filename
The source file for compilation is to be read from a cardfile filename. The / / prefixes define non 1900 cardcodes, the first character only being significant. A is for ATLAS cardcode, E is for IBM EBCDIC cardcode and they are only valid for FORTRAN. The remaining characters inside the / / are optional and are not checked. Any number of *CR (and *TR) parameters in any combination are allowed and the source files are compiled in the order given, those after the first being picked up at compiler DISPLAY EF or running off the end of the source file (the latter being very inefficient). The maximum number of *CR (and *TR) parameters is fifteen.
filename
/ATLAS/ filename
/EBCDIC/ filename
The *CR is optional provided the following rules apply:-
  1. filename must be the first parameter after the language code (eg FORTRAN) and any additional filename parameters must follow directly after (unless prefixed by *CR).
  2. The whole of filename must not constitute the first characters of a TASK parameter.
  3. The first characters of filename must not constitute the whole of a TASK parameter.
  4. If any *CR parameter is used, no more optional *CR parameters may occur.
Users in doubt should always include the *CR.
*CR
*CR/ATLAS/
*CR/EBCDIC/
The source file is read from the same source as the parameters. Thus in a background job this implies the jobsource and for a STEER file it implies the STEER file (see also STEER parameter).
*TR filename
*TR/FULLMODE/ filename
As per *CR case but filename is a papertape file. For the FULLMODE case this is only applicable to ALGOL and only the F is significant.
*TR
As for the *CR case but only online from the jobsource is allowed.
Examples
The following are valid:-
TASK F,*CR FRED,*CR/ATLAS/ FRED1,*CR/E/ FRED2 
TASK F,FRED,/ATLAS/ FRED1,/E/ FRED2 
TASK F,FORTFILE
but
TASK F,FOR
is wrong because FOR are the initial characters of the parameter FORTRAN.
TASK F,FORTRANFILE 
is wrong because FORTRANFILE contains the whole of parameter FORTRAN.
TASK F,*CR FRED,FRED1
is wrong since *CR is present.

*LP

Define output sink for compilation and consolidation listing.

Not present
The compiler and consolidator output are sent to workfiles and subsequently listed to the lineprinters. Should the user not define a #LP for his binary run (if any) then output to LP0 will follow the consolidation output and prefixed by a TASK message to that effect. If parameter NOLIST is present then no listing to the lineprinters is done.
*LP
As above but all output is to the monitoring file.
*LP filename
As above but output is to filename. Traps will be forced if filename has not the correct traps for writing.
Examples
TASK F,*CR FRED           Compiler etc output via workfiles to lineprinters.
TASK F,*CR FRED,*LP       Compiler etc output to monitor file.
TASK F,*CR FRED,*LP JUNK  Compiler etc output to JUNK which is listed on lineprinters.

*?? string

Obey string as a GEORGE command as per #?? parameter but before compilation or a stand alone consolidation.

Example
TASK F,*CR FRED,*??(ON 5)
Do a FORTRAN compilation with switch 5 on.

#xxn

Connect a peripheral to GEORGE channel n of a binary program where xx can be any of CR, CP, TR, TP, LP, ED, DA, CI, FW, FR, MT. n can be omitted and 0 will be assumed.

Not present
When a binary program is run only the peripherals CR0 and LP0 are catered for. CR0 has the default datafile assigned to it (eg FRED-DAT) and no error occurs if it does not exist, as TASK assumes no data is required. LP0 is left as it was assigned to the compiler and consolidator and output is added after a message from TASK that is running the binary program. In the case of a RUN parameter a workfile is created and used.
If the KEEP parameter is present then a default output file is used for LP0, eg FRED-RES.
All LP0 output is listed on the lineprinter unless a NOLIST parameter is present.
#CRn
#TRn
The data is read online (ie from jobsource or, when a binary program is being RUN, from the STEER file - #CR0 only).
#CRn
#TRn
#LPn
Output is sent to the monitoring file.
#MTn
Onlines a scratch worktape - note the appropriate MEDIA parameter must also be present.
#CIn
Online a CI channel.
#EDn
#DAn
#FWn
#FRn
Will cause an error when GEORGE attempts to implement them.
#xxn filename
Assign filename to peripheral channel type xx. Traps will be forced as necessary for output files. Output to #LP0 will be listed to the lineprinters unless a NOLIST parameter is present.
#DAn filename
#EDn filename
For filestore DA files this is identical to above.
For exofiles, denoted by the brackets, the file is onlined. This is suitable for read only as no qualifiers are permitted. If the file is a user exofile, it must be declared in a MEDIA parameter. To achieve any other peripheral connection the #?? facility must be used, again with appropriate MEDIA parameters if they involve user magnetic tapes or exofiles.
The connection of peripherals is done in the following order. First the default (if any) CR0 and LP0 are assigned, then all other # parameters (including #??) are implemented in the order given.
Examples
TASK PARAMETER        GEORGE COMMAND GENERATED     ACTION
#MT                     OL *MT0                    Scratch worktape
#CR9                    OL *CR9                    CR9 Data online
#LP4                    OL *LP4                    LP4 Output to monitoring file
#LP1 JUNK(-0)(APPEND)   AS *LP1,JUNK(-0)(APPEND)   LP1 Output appended to JUNK(-0)
#MT9 TAPE(WRITE)        AS *MT9,TAPE(WRITE)        MT9 I/O into simulated magnetic tapefile TAPE
#DA1 DISC               AS *DA1,DISC               DA1 Input from discfile DISC
#DA5 (76,DADATA)        OL *DA5,(76,DADATA)        DA5 gets input from exofile DADATA on disc 76

#?? string

Obey string as a GEORGE command before running a binary program. If string contains a comma, it must be enclosed in brackets.

string can be any GEORGE command allowed in core image context and is primarily intended for connecting up peripherals, eg online magnetic tapes, not catered for by TASK. Except for the switch, commands ON and OFF, #?? must not be used to change or print the core image of the binary program as this is not loaded at this point. It can, however, be used for Broadcasts, Displays, etc.

Note, however, that TASK will endtask if this parameter generates a GEORGE command error, unless a CONT parameter is present. The macro facilities for the NORUN and MAC parameters are recommended for users with many non-standard requirements.

Examples
#??(OL *MT7(WRITE),(1234X,MYXENOTAPE))
#??(DP 2,PLEASE LOAD MAG TAPE 3761)
#??LD

(parameter,parameter,...)

This permits a user to overcome the restriction on 15 parameters in a macro call of TASK. Parameter may be any TASK parameter except those accessed by GEORGE - ie JT, MZ or MEDIA and the contents of the brackets must apply to only one task. STEER and LINK parameters are allowed but should these lead to a further task then the result is undefined. The *CR on source file names is not optional if this parameter is within the brackets. This facility is not available within a STEER or LINK file. Parameter may be null and will be ignored by TASK. Nesting of bracketed parameters is not allowed.

Example
TASK (F,*CR FRED)
will compile, consolidate and run FRED.
⇑ Top of page
© Chilton Computing and UKRI Science and Technology Facilities Council webmaster@chilton-computing.org.uk
Our thanks to UKRI Science and Technology Facilities Council for hosting this site