|
|
DataMuseum.dkPresents historical artifacts from the history of: RC4000/8000/9000 |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about RC4000/8000/9000 Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 32256 (0x7e00)
Types: TextFile
Names: »fplibman«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »fplibman«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦this⟧ »fplibman«
\f
H. C. Ørsted Institute
Computer Department
Universitetsparken 5
DK-2100 København Ø
HCØ RC8000 program library
Utility Programs
"fplibman"
Anders Lindgård
(Editor)
80/8
1980-12-20
\f
1
Scope of the library
--------------------
The scope of the library is to provide the users of the RC8000
computer with a manual of all programs of common interest. Most
programs may be used on the RC4000 computer as well. A guideline
for description of programs and procedures is found in the file
"guideline".
The library is divided into sub-libraries, and a list of relevant
user manuals is found in the file "listman".
\f
2
Alphabetic list of new programs:
convert
device
describe
docmove
extract
listint
m
macro
mtread
multicopy
remsp
searchcon
stdvar
testbuf
writestd
\f
3
1980-10-22
Anders Lindgård
convert
Prints a textfile on a printer using the PRIMO module.
Call:
-----
<outfile>=convert <filelist> <outfile>::=<empty>/<filedescriptor>
The filedescriptor must describe a printer. If not specified the
printer "lp" is assumed.
<filelist>::=<file>/<filelist>
<file> must describe a text file on the RC8000 backing store. The
tail of the filedescriptor must contain zeroes in words 7 through
10.
Function:
---------
A message is send to PRIMO to print the files in the filelist.
The PRIMO transport numbers is written on current output with the
following format:
<file> transport <transport number>
Storage requirements:
---------------------
As for a normal ALGOL program.
Error messages:
---------------
** printfile <file> <errortext>
An error either with the PRIMO module or the
file descriptor describing the file or the
printer. This is only a warning and convert
proceeds with the next file.
Language: ALGOL
---------
Maintenance level: user
------------------
\f
4
1980-10-22
Anders Lindgård
device
Lists processes in the RC8000 monitor.
Call:
-----
<outfile>=device <parameters>
<outfile>::=<empty>/<filedescriptor>
If the filedescriptor for outfile does not exist a working file is
created.
<parameters>::=<namelist>/dev.<integer range>/all.<boolean>
<namelist>::=<name>/<namelist>
<name> must be a process name
<integer range>::=<integer>/<integer>.<integer>
<boolean>::=yes/no
Function:
---------
Processes in the RC8000 are listed with the following format:
<deviceno>:<kind> <name> <lower base> <upper base> ; <process
description address>
<deviceno> is only given for peripherals.
If "all.yes" is specified all processes are listed. For a namelist
all the names will be searched for and those found will be listed.
Specifying dev.<integer> lists that device if any. dev.<integer>.
<integer> lists the devices in that range.
Storage requirements:
---------------------
As for a normal ALGOL program.
Error messages:
---------------
None.
Language: ALGOL
---------
Maintenance level: user
------------------
\f
5
1908-10-29
Anders Lindgård
describe
Prints monitor data structures as messagebuffers, area processes
internal processes, external processes and disc/drum chains.
Example:
--------
The call:
describe buf.sos
will list the message buffers send or received by sos.
Call:
-----
<outfile>=describe <parameters><limitspec>
<outfile>::=<empty>/<filedescriptor>
If outfile is specified output is printed there else on current
output.
<parameters>::=<bufspec>/<areaspec>/<extspec>/<intspec>/
<chainspec>/<procspec>/table
<limitspec>::=<empty>/.<last>/.<first>.<last>
<bufspec> ::=buf.all/buf.used/buf.<name><sender or receiver>
<sender or receiver>::=<empty>/.s/.r/.s.r/.r.s
<areaspec> ::=area.all/area.used/area.<name><user or reserver>
<user or reserver>::=<empty>/.u/.r
<extspec> ::=ext.all/ext.<device number>/ext.<name><user or reserver>
<devicenumber>::=<integer>
<intspec> ::=int.all<detail>/int.used<detail>/
int.<name><detail>/int.<parent>.p.<detail>
<detail> ::=<empty>/.claims/.times/.registers/.bases
<parent> ::=<name>
<chainspec> ::=chain.all/chain.used/chain.<docname>
<docname> ::=<name>
<procspec> ::=proc.<name>
Function:
---------
The program scans the monitor tables and depending on the
parameters in the call parts of the monitor data structures are
listed.
The limit specification is used to suppress part of the output
as only the part of the datastructure between relative word "first"
and relative word "last" is printed. ("first" and "last" included).
buf
"buf.all" will print all message buffers in the message buffer
pool.
"buf.used" will print all used message buffers in the pool.
"buf.<name>.s will print all messages sent by the process <name>
and "buf.<name>.r" all message received. "buf.<name>" prints all
message sent or received by <name>.
area
\f
6
"area.all" will print all area processes and pseudo processes.
"area.used" will print all area processes and pseudo processes
actually used.
"area.<name>" will print an area or pseudo process with <name>
as name. "area.<name>.u" and "area.<name>.r" will print those area
processes with <name> as a user or reserver respectively.
ext
"ext.all" will print all external processes.
"ext.used" will print all named external processes.
"ext.<device number>" will print the external process with that
device number.
"ext.<name>" will print the external process with that name.
"ext.<name>.u" or "ext.<name>.r" will print the external proces-
ses which have <name> as user or reserver respectively.
int
If <detail> is non empty then the limit specification is void.
When one or more detail specifications are specified the program
prints interval, kind and name together with the specified details.
".claims" prints the backing storage claims.
".times" prints the run time, wait time and cpu time.
".registers" prints the working registers.
".bases" prints the max, standard and catalog bases.
"int.all" will print all internal processes.
"int.used" will print all named internal processes.
"int.<parent>.p"will print all internal processes with <parent>
as a parent.
"int.<name>" will print the internal process with name <name>.
chain
"chain.all" prints all chainheads in the drum/disc chains.
"chain.used" prints all chainheads which are not idle.
"chain.<docname>" prints the chainhead with the given document-
name.
proc
Prints the process with the given name, and a format depending
on kind.
table
This specification prints parts of the main monitor table from
halfword 66 and forward.
Storage requirements:
---------------------
As for a normal ALGOL program.
Error messages:
---------------
**<name> not found (<type>)
The process with the name <name> is not described in the monitor.
**<name> not external kind <kind>
The proces with the name <name> is an internal, area or pseodo process
**<name> not area or pseudo
\f
7
The process is not an area or pseudo process
**<name> not internal
The process with the name <name> is not an internal process
Language: algol
---------
Maintenance level: user
------------------
\f
8
1980-10-20
Anders Lindgård
docmove
Moves files from one backing store document to another.
Call:
-----
<doc>=docmove <files>
<doc>::=<name of a backing store document>
<files>::=<file>/<files> <file> must be an exiting backing store
file.
Function:
---------
The files specified in the call will be moved to the document
<doc> provided enough resources are available on <doc> for the
user.
Storage requirements:
---------------------
As for a normal ALGOL program.
Error messages:
---------------
***document name missing
No left side in the call
***<doc> is not a document
The left side is not a document name
**param <integer>
A parameter of the form .<integer> or <sp> <integer> was
given at the right side in the call
This is a warning only
**<file> does not exist
<file> does not exist in the catalog. The parameter is
skipped.
**<file> segment < 1
<file> describes a filedescriptor with segments <=0
The parameter is skipped.
**<file> xxxxxxxxxxxx create trouble. Probably no
resources on the document <doc>.
**<file> base interval
The working file could not be given the correct base interval.
Probably an error in permanenting the file. The file
may be left as temporary.
Language: ALGOL
---------
Maintenance level: user
------------------
\f
9
1908-10-27
Anders Lindgård
extract
Utility program for handling contract files. It can extract a
file (or number of files) from contract files with scope user
without specifying the contract files. It can extract all files
from a given contract file. Further files may be printed on a
printer using the PRIMO module.
Example:
--------
The call:
lp=extract myfile
search through all contract files with scope user (content=10). If
"myfile" is found, it will be created with scope day and further
printed on the printer lp.
Call:
-----
<printer>=extract <specifications>
<printer>::=<empty>/<filedescriptor>
If the printer specification is non empty it is checked that the
filedescriptor describes a printer.
<specifications> ::=<allspec>/<fromspec>/<filelist>
<allspec> ::=all.<contract file name>
<fromspec>::=from.<contract file name> <filelist>
<filelist>::=<filename>/<filelist>
A <contract file name> must describe an existing file with
content=10.
Function:
---------
The program extract files from contract files. The files are
created with scope day if possible else with scope login.
If a left side is given in the call this assumed to describe a
printer and the files extracted are printed on that printer using
the PRIMO moule.
If "all.<contract file name>" is specified then all files on that
contract file are extracted.
If "from.<contract file name>" is specified then the files given
in the filelist are extracted from that contract file. "extract
from.--- " is in most cases much faster than "contract from.--- ".
If only a <filelist> is specified then the program searches
through all contract files with scope user and those found are
extracted. If two contracted files have the same names it is
unpredictable which one is extracted.
It is mush faster to use <fromspec> than just a <filelist> as the
program in the latter case also has to scan the main catalog to
find the contract file.
Storage requirements:
---------------------
As for a normal ALGOL program.
\f
10
Error messages:
---------------
***extractfile printer error <printer>
<printer> did not describe a printer
***<contractfile> does not exist
In "from" or "all" the contract file specified does not exist or
some other serious error.
***<contractfile> is not a contract file
In "from" or "all" the contract file specified does not have
content=10.
**<filename> not found
The file name was not found in the specified contract file (from)
or not in any contract file (filelist only). Warning.
**<filename> create entry result <result>
The file <filename> could not be created. The result of create
entry is shown. The file is not copied. Warning.
**<filename> set entry base
The entry base of <filename> could not be set with user base.
Filename will probably be on login scope. Warning.
Language: ALGOL
---------
Maintenance level: user
------------------
\f
11
1978-09-04
Anders Lindgård
listint
Lists the names of the currently existing internal processes,
their parents and the core adresses and maxbases.
Call:
-----
listint
Function:
---------
The internal process descriptions in the monitor are searched and
for any existing process a line is written on current output with
the following format:
<process name> <parent name> <first address> <last address>
<lower maxbase> <upper maxbase>
On the RC4000 <lower maxbase> and <upper maxbase> are left out.
Storage requirements:
---------------------
As for a normal ALGOL program.
Error messages:
---------------
None.
Language: ALGOL
---------
Maintenance level: user
------------------
User
\f
12
1980-10-20
Anders Lindgård
m
macro
Creates and executes a file by modifying the file in the call by
the auxilliary parameters in the call.
Call:
-----
<outfile>=macro <file>.<par>
<outfile>::=<empty>/<filedescriptor>
<file> specifies the input file
<par> specifies the fp-parameters. Up to 10 parameters may be
defined. The parameters are separated by a . .
<outfile> If specified macro will use this as output file, else a
working file is created.
Function:
---------
The file specified is searched for the character !. If the next
character is a number the corresponding parameter from the parame-
terlist is inserted instead of the !<no> double character. Finally
the file is executed as if the program "i" was called. The program
should never be called inside a a parantheses.
Storage requirements:
---------------------
As for a normal ALGOL program.
Error messages:
---------------
**parameters missing
Too few paramters in the call
***connect input <file>
The input file <file> did not exist
Language: ALGOL
---------
Maintenance level: user
------------------
User
\f
13
1980-10-21
Anders Lindgård
mtread
Reads magnetic tape files with any blocklength. The tape must
contain text in either ascii, ebcd or ebcdic.
Call:
-----
<outfile>=mtread <file> <par>
<outfile>::=<empty>/<filedescriptor>
<file> specifies the magnetic tape name
<outfile> If specified mtread will use this as output file, else
a working file is created.
<par>::=ascii.<boolean>/ebcd.<boolean>/ebcdic.<boolean>/
cards.<boolean>/list.<boolean>/
lastchar.<integer>/file.<integer>/
max.<integer>
<boolean>::=yes/no
if no parameters are specified the default values are:
ascii.yes cards.no file.0 list.no lastchar.132 even.yes max.1000
Function:
---------
The program read 1600 bpi magnetic tapes in odd parity with a
maximum blocklength given by the parameter "max" (in RC8000 double
words (default 1000)). The content is converted to ISO characters.
The default file is file 0 and may be changed using the "file"
parameter.
if "list.yes" is specified the character values is written as
integers and no conversion takes place. if "list.no" then the
content is converted to ISO characters.
The basic modes of the program is determined by the parameters
"ascii","ebcd" and "ebcdic" of which only one can be true.
The program is very slow in reading magnetic tapes, so the user
should save <outfile> for later use rather than reread the tape.
ascii
This is the default mode. If "cards" is set then "lastchar" is
default 72 else 132. The program reads the text line by line and
only up to lastchar characters are written on the output file. NUL
characters are skipped and EM characters are replaced by the
sequence <25>. If cards is set a newline character is generated for
each card.
ebcd
In this mode the content of the tape should be ebcd characters.
"cards" is by default true and "lastchar" is 72.
ebcdic
As ebcd but the content of the tape should be ebcdic characters.
\f
14
Storage requirements:
---------------------
As for a normal ALGOL program+4*<max>+1190 halfwords.
Error messages:
---------------
**parity error
Parity error on the tape. This is a warning.
***input missing
No tape name was specified in the call
***blocklength error <blocklength>
increase blocklength
call: mtread max.<max>
where max > <oldmax>
The blocklength on the tape is larger than the one
given in the call. Increase blocklength.
Language: ALGOL
---------
Maintenance level: user
------------------
User
\f
15
1980-12-08
Anders Lindgård
multicopy
Copies a number of textfiles together to a single printfile and
theese are repeated the number of times specified. If the left side
of the call specifies a printer PRIMO is asked to print the
generated file on that printer.
Example:
--------
The fp-command
lp=multicopy fpnames insertproc copies.4
will create a working file with 4 copies of "fpnames" and
"insertproc" which then is converted by PRIMO to the printer lp.
Call:
-----
<outfile>=multicopy <filelist> <copyoption> <outfile>::=<empty>
/<filedescriptor>
If <empty> the standard printer "lp" is assumed for <outfile>. If
the <filedescriptor> describes a printer this printer is used else
the filelist is just copied to <outfile> as specified by <
copyoption>.
<filelist>::=<file>/<filelist>
<file> must describe a text file on the RC8000 backing store.
<copyoptions>::=copies.<integer>
Specifies the number of times the filelist should be copied.
Function:
---------
The filelist is scanned and the files are copied together to a
single file the number of times specified. If more than one 'ff'
character is found on a single line the rest of the 'ff' characters
are convert to 0-characters. If left side in the call specifies a
printer the merged file is copied using PRIMO onto that printer.
No left side corresponds to "lp". The PRIMO transport numbers is
written on current output with the following format:
<file> transport <transport number>
Storage requirements:
---------------------
As for a normal ALGOL program.
Error messages:
---------------
** printfile <file> <errortext>
An error either with the PRIMO module or the
file descriptor describing the file or the
printer. This is only a warning.
***connect input <file> <res>
An input file could not be connected.
***bs claims exceeded
It was not possible to create a working area.
***connect <file> <res>
It was not possible to connect to a working file or
\f
16
to the file in the left side of the call
Language: ALGOL
---------
Maintenance level: user
------------------
\f
17
1980-10-20
Anders Lindgård
remsp
Removes spaces from the right end of a line. This to decrease the
backing store requirements for FORTRAN programs from other instal-
lations.
Call:
-----
<outputfile>=remsp <inputfile> <parameters>
<outfile>::=<empty>/<filedescriptor>
<inputfile> specifies the input file
<parameters>::=last.<integer>
Default for "last" is 72.
<outfile> If specified remsp will use this as output file, else
current output is used.
Function:
---------
The file is read line by line and all spaces between the
rightmost character other than space and "last" (inclusive) is
removed. All characters to the right of "last" is removed.
Storage requirements:
---------------------
As for a normal ALGOL program.
Error messages:
---------------
None.
Language: ALGOL
---------
Maintenance level: user
------------------
\f
18
1908-10-20
Anders Lindgård
searchcon
Utility program for handling contract files. It can list all
contract files with scope user. It can make a list of the files
contracted. It can find a file contractted with a given name.
Example:
--------
The call:
searchcon
will list all files with scope user which are contract files.
The call:
searchcon list.yes
will further list all files on theese contract files.
To find a file on a contract file one can use the call:
searchcon myfile
which wil search through all the contract files (with scope user)
for the file "myfile". If it is found the contract file will be
listed.
Call:
-----
<outfile>=searchcon <searchfile> <options>
<outfile>::=<empty>/<filedescriptor>
<searchfile>::=<empty>/<filename>
<options>::=<empty>/list.<boolean>
<boolean>::=yes/no
Function:
---------
See above under example.
Storage requirements:
---------------------
As for a normal ALGOL program.
Error messages:
---------------
None.
Language: ALGOL
---------
Maintenance level: user
------------------
User
\f
19
1978-09-27
Anders Lindgård
stdvar
Creates standard variables for the ALGOL8 system. The variables
may be regarded as own variables with a specified value. If a
variable already exist in the catalog it is removed. The variables
are given scope temp if no other scope is specified.
Example
-------
The FP-command and program input:
varproc=stdvar scope.user
Anders Lindgård
1978 09 27
begin
real pi=3.14;
boolean nl=false add 10,ff=false add 12;
integer zero;
end;
will create a no type procedure "varproc" and a number of
filedescriptors having "varproc" as document name. Theese variables
can be used in an algol program and have initial values:
real pi has the value 3.14
boolean nl has the value false add 10 i.e. a NL-character
boolean ff has the value false add 12 i.e. a FF-character
integer zero has the value 0
Call:
-----
<left side>=stdvar <s> <scope spec> <list spec>
where:
<left side> becomes the name of a no type procedure and will
contain the initial values
<scope spec>::=scope.<scope>
scope::=temp/login/user/project
<list spec>::=list.yes/list.no
Function:
---------
A disc area of one segment with the name specified as <left side>
to the program call is created. Current input is read to a "begin"
is met. The variables are read according to the syntax. "end"
terminates reading. If the syntax check was ok the variables are
created as filedescriptors and if an initial value is specified
this is placed on the discarea.
On the RC4000 under system 2 <scope spec> is replaced by
key.<integer> where key is the catalog key.
\f
20
Syntax for input
----------------
A legal input for stdvar consist of:
<anything> begin <variabel list> end
<variabel list>::=<declarator> <identifierspeclist>;/
<variabellist> <variabellist>
<declarator>::=boolean/integer/real/long
<identifierspeclist>::=<identifierspec>/<identifierspec>,<identifierspeclist>
<identifierspec>::=<identifier>/<identifier>=<value spec>
<value spec> must be a <number> for integer, real and long
declarators. For boolean declarator it must be:
<value spec>::=true/false/false add <integer>
where <integer> must be in the range 0 to 128.
<identifier> has the restriction that it may only consist of one
letter followed by 10 small letters or digits.
Storage requirements:
---------------------
As for a normal ALGOL program.
Warnings
--------
**declarator <wrong declarator>
an illegal declarator was found. The wrong declarator is shown.
**identifier length <identifier>
more than 11 letters or digits in an identifier. The name of
the identifier is shown.
**delimiter <delimiter>
wrong delimiter. Value is shown.
**-delimiter
delimiter missing.
**create entry <identifier> , result <result>
An entry could not be created. The result of "create entry" is
shown.
**scope <identifier> , result <result>
The identifier could not obtain the desired scope. The result
is shown.
**changeentry <left side> , result <result>
The tail of <left siede> could not be set. The result of
"change entry" is shown.
Error messages:
---------------
***exhausted
the input file was exhausted before an "end" was met.
***left side missing
no left side in the call of "stdvar".
***connect left side <left side>
\f
21
the left side in the program call cannot be connected.
***create left side <left side> , result <result>
A file of 1 segment with <left side> as name could not be
created. The result of "create entry" is shown.
***scope left side <left side>
<left side> could not obtain the required scope.
***maxentry
more than 100 identifiers.
Language: ALGOL
---------
Maintenance level: user
------------------
User
\f
22
1979-05-09
Anders Lindgård
testbuf
List the the messagebuffers send by a process or received by a
process.
Example:
-------
The FP-command:
testbuf s.s punch.r
will list the messagebuffers which currently has the operating
system "s" as sender and the messagebuffers received by "punch"
Call:
-----
testbuf <list>
<list>::=<empty>/<processname>.s/<processname>.r/<list>
Function:
---------
The message buffer pool of monitor is scanned. For messagebuffers
which have <processname> as sender or receiver respectively the
bufferaddress and state is listed.
If neither sender or receiver is given in the call, the number of
available buffers will be listed.
Storage requirements:
---------------------
FP+512 halfwords
Error messages:
---------------
None.
Language: SLANG
---------
Maintenance level: computer department
------------------
\f
23
1979-05-08
Anders Lindgård
writestd
Lists a catalog entry according to its content key (FP manual
III). For ALGOL and FORTRAN programs and procedures the date of
translation is given. For external procedures the procedure type
and the parameter specification is given. For external variables
the initaial value is given. For a filedescriptor, which do not
describe a backing store area, information about the main reference
is given.
Example
-------
The FP-command:
writestd sin
will produce the output:
real procedure sin(value real); -8388607:8388605 key=3
entry in arctan
main entry algollib , 45 segments on drum
translated 80 04 16 12 51 59
alarm address std.fnct.2
Call:
-----
<left side>=writestd <identifier list> <parameter list> where:
<left side> if specified will contain the output from writestd.
<identifier list>::=<identifier>/<identifier list>
<identifier>::=<filedescriptor>
<parameterlist>::=segments.<boolean>/
details.<boolean>/
survey.<boolean>/
externals.<boolean>/
abswords.<boolean>/
points.<boolean>/<parameterlist>
<boolean>::=yes/no
Function:
---------
The parameter list is initialized to segments.yes
The parameters externals, abswords and points will cause a
listing of the external list, the abswords and the points for an
external procedure. Segments will cause a listing of the number of
segments used by the program or procedure. details corresponds to
setting of all parameters. survey gives a somewhat less detailed
listing.
Storage requirements:
---------------------
As for a normal ALGOL program.
\f
24
Warnings
--------
** procedure inconsistent
The segements belonging to this procedure cannot be an external
algol or fortran procedure as the content do not fulfil the
rules.
**alarm address nonsense
The alarm address in an assembly language coded procedure do
no contain a proper alarm address
**external error <name> <result>
**external error <name> 0 declared <list>
The external found on the segment does not exist in the catalog
or do not match the one found in the catalog.
Error messages:
---------------
***<identifier> unknown
The <identifier> was not described in the catalog.
***connect segment <name>
The backing store area for a main entry could not be connected.
The name is shown.
Language: ALGOL
---------
Maintenance level: user
------------------
\f
▶EOF◀