|
|
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: 26880 (0x6900)
Types: TextFile
Names: »guideline«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦this⟧ »guideline«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦this⟧ »guideline«
\f
H. C. Ørsted Institute
Computer Department
Universitetsparken 5
DK-2100 København Ø
Guideline for description of
algol8 procedures for the HCØ RC8000 algol8
procedure library
and
programs for the HCØ RC8000
program library
"guideline"
Anders Lindgård
78/1
April 1978
revised 1980-10-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 and algol8 procedures of
common interest. Most programs and procedures may be used on the
RC4000 computer as well. The guidelines described here has the
purpose of making a uniform way of describing programs and algol8
procedures and having an easy way of updating and maintaining the
whole system.. The descriptions of programs, procedures and variab-
les will be available in files on the RC8000 backing store. All
descriptions are in english. An example of a description of a
procedure is found in Appendix III, and of a program in appendix
VI.
The library is divided into sub-libraries, and a list of user
relevant manuals is found in the file "listman".
\f
2
Submitting procedures to the library
------------------------------------
Users are invited to submit procedures of general interest to the
library. Slang coded procedures are normally not accepted to the
library. Exceptions are made if they are either very short or of
interest to a large number of users. There should be good reasons
for using assembly language. Speed is not considered a good reason
unless it is crucial.
The submitted material should contain:
1. a papertape in ISO (even parity) containing the procedure
text (Algol preferred), a suitable algol8 test program and
the necessary calls of file processor programs to be able
to compile the procedure and the test program. See Appendix
V.
2. a paper tape in ISO (even parity) which contains the
description of the procedure in a form which can be used
as an input for the program Compose (The RC8000 textcom-
posing system) see Appendix IV. Descriptions should resemb-
le the descriptions in chapter 9 of the algol6 users manual
(RCSL 31-D322) as much as possible. It should contain the
date of submitting and authors name and affiliation as
shown in Appendix III and IV.
3. A form stating authors name, affiliation, degree of main-
tenance of the procedure etc. A blank form exist on the
RC8000 backing store named 'procform'. See Appendix I.
4. A lineprinter copy of 1. and 2.
\f
3
Submitting programs to the library
----------------------------------
Users are invited to submit programs of general interest to the
library. Slang coded programs are normally not accepted to the
library. Exceptions are made if they are either very short or of
interest to a large number of users. There should be good reasons
for using assembly language. Speed is not considered a good reason
unless it is crucial.
The submitted material should contain:
1. a papertape in ISO (even parity) containing the program
text (Algol or pascal preferred), a suitable test data set
and the necessary calls of file processor programs to be
able to compile the program and run the program with the
test data set. See Appendix VIII.
2. a paper tape in ISO (even parity) which contains the
description of the program in a form which can be used as
an input for the program Compose (The RC8000 text composing
system) see Appendix VIII. Descriptions should resemble the
descriptions in System 3 Utility Programs. Part two (RCSL
31-D494) as much as possible. It should contain the date
of submitting and authors name and affiliation as shown in
Appendix VI and VII.
3. A form stating authors name, affiliation, degree of main-
tenance of the program etc. A blank form exist on the
RC8000 backing store named 'progform'. See Appendix II.
4. A lineprinter copy of 1. and 2.
\f
4
Preparation of a procedure for submitting
-----------------------------------------
The procedures should preferrable be programmed in Algol, unless it
is small fileprocessor manipulation procedure. Assembly language
coded procedures must be extensively commented and must obey all
the rules an algol procedure should fulfil see Code procedures in
algol 5 (RCSL 31-D199). Algol programmed procedures must be easily
readable. Use long and descriptive names for parameters and
variables. Vary left margin according to 'begin'-'end' structure.
Avoid labels if possible.
Do not try to make 'clever' programming. Straight forward procedu-
res are easier to read and maintain than trick coded. Use english
words only.
References to external algol8 procedures.
In the procedure all procedures from Regnecentralen and all system
procedures from the computer department may be called. Avoid use
of other external procedures.
Preparation of a program for submitting
---------------------------------------
The programs should preferrable be programmed in Algol or pascal,
unless it is small fileprocessor utility programs. Assembly lan-
guage coded programs must be extensively commented and must obey
all the rules an fp utility program should fulfil see System 3
Utility Programs Part three programs (RCSL 31-D379). Algol program-
med programs must be easily readable. Use long and descriptive
names for parameters and variables. Vary left margin according to
'begin'-'end' structure. Avoid labels if possible.
Do not try to make 'clever' programming. Straight forward programs
are easier to read and maintain than trick coded. Use english words
only.
References to external algol8 procedures.
In the program all procedures from Regnecentralen and all system
procedures from the computer department may be called. Avoid use
of other external procedures.
In pascal programs the algol external procedures are not acces-
sible.
\f
5
Maintenance levels
------------------
level RC Software from Regnecentralen is fully maintained
and updated by Regnecentralen. Error reports are
available from the operator.
As we do not have a service contract with Regnecen-
tralen and as updated versions of the RC software
is expensive theese errors will most likely never
be corrected.
level system Systems software developed by the Computer Depart-
ment is fully maintained by the department. Errors
together with documentation should be reported to
the departement.
level user Software developed by the users may be maintained
by the users. Errors should be reported directly
the user who developed the procedure with a copy to
the computer department.
level other Software from other installations which is main-
tained and updated by the other installation
level none Software which is not maintained at all.
\f
6
Appendix I
H. C. Ørsted Institute
Computer Department
Universitetsparken 5
DK-2100 København Ø
Form for submitting of a procedure to the H. C. Ørsted Institute
RC8000 algol 8 procedure library.
Date:
Name of procedure(s):
Type of procedure (cross out): ALGOL programmed/ SLANG programmed
File manipulation procedure library
Mathemathical procedure library
General Algol 7 procedure Library
Name of author(s):
Affiliation:
Maintenance (cross out): not maintained , maintained by author
The undersigned hereby grants any registered user of the H. C.
Ørsted Institute computers the right to use the above mentioned
procedure freely for research and education purposes.
The undersigned has no responsibility for errors or omission in
the procedure or the documentation, neither does the undersigned
garantee that the procedure is correct.
The H. C. Ørsted Institute has the right to correct and update
the procedure and the description of the procedure, but has no
obligation to do so.
The H. C. Ørsted Institute may give copies of the procedure and
the description of the procedure to other edp-installations under
the department of education (Undervisningsministeriet) to be used
on the same conditions as the users of the H. C. Ørsted Institute
computers.
signature
\f
7
Appendix II
H. C. Ørsted Institute
Computer Department
Universitetsparken 5
DK-2100 København Ø
Form for submitting of a program to the H. C. Ørsted Institute
RC8000 program library.
Date:
Name of program(s):
Type of program (cross out): ALGOL programmed/ SLANG programmed
File manipulation program library
Mathemathical program library
General Algol 7 program Library
Name of author(s):
Affiliation:
Maintenance (cross out): not maintained , maintained by author
The undersigned hereby grants any registered user of the H. C.
Ørsted Institute computers the right to use the above mentioned
program freely for research and education purposes.
The undersigned has no responsibility for errors or omission in
the program or the documentation, neither does the undersigned
garantee that the program is correct.
The H. C. Ørsted Institute has the right to correct and update
the program and the description of the program, but has no
obligation to do so.
The H. C. Ørsted Institute may give copies of the program and the
description of the program to other edp-installations under the
department of education (Undervisningsministeriet) to be used on
the same conditions as the users of the H. C. Ørsted Institute
computers.
signature
\f
8
Appendix III
1978-03-01
Anders Lindgård
boolean procedure cleararea
Every word of a file describing a backing store area is set to
zero.
Call: cleararea(file)
cleararea (return value, boolean). true if file is
cleared, false otherwise.
file (call value, string). The name of the file.
The string file must contain the name of an
existing backing store file.
The procedure checks that file is a catalog
entry and describes a backing store area and
that it may be used for exclusive access. In
case of an error an errormessage is written
on current output, but the program is not
terminated.
Language
--------
ALGOL
Maintenance level
-----------------
user
\f
9
Appendix IV
Input to the program "compose" generating Appendix III
This file is found under the name "careainp"
*pl 297,21,240,13,4*
*pn 0,0**lw 170* *ld 12* *ps*
*qr*
1978-03-01
Anders Lindgård
*nl2*
*ct*
boolean procedure cleararea
*nl2*
*rj**np*
Every word of a file describing a backing store area is set to zero.
*nl2*
Call: cleararea(file)*nl*
*lm55*
*mt 1, cleararea**cm 6 spaces*(return value, boolean).
true if file is cleared, false otherwise.*nl*
*mt 1, file*(call value, string). The name of
the file.
*nl2**np*
The string file must contain the name of an existing backing store file.
*np*
The procedure checks that file is a catalog entry
and describes a backing store area and
that it may be used for exclusive access.
In case of an error an errormessage is written on
current output, but the program is not terminated.
*lm0**nl4*
*ns 1,2,Language*
--------*nl*
ALGOL
*ns 1,2,Maintenance level*
-----------------*nl*
user
*ef*
\f
10
Appendix V
*i tcarea
*mode listing.yes list.yes
*cleararea=algol
c
1 1975-12-27
1 external
2 boolean procedure cleararea(file);
3 string file;
4 begin
5 boolean status;
6 integer result,segments,i;
7 integer array tail(1:10);
8 array name(1:3);
9
9 cleararray(name);
10 movestring(name,1,file);
11 result:=lookuptail(name,tail);
12 if result>0 or tail(1)<=0 then
13 begin
14 i:=1;
15 write(out,<:<10>**cleararea :>,string name(increase(i)),
16 <: entry:>);
17 if result=0 then write(out,<: size:>,tail(1)) else
18 write(out,<: lookup result :>,result);
19 end area improper
20 else
21 begin
22 result:=connectcuro(name);
23 segments:=tail(1);
24 status:=result=0 and segments>0;
25 if status then
26 begin
27 setposition(out,0,0);
28 outrec(out,128);
29 cleararray(out);
30 for segments:=segments-1 step -1 until 1 do outrec(out,128);
31 setposition(out,0,0);
32 unstackcuro;
33 end
34 else
35 begin
36 unstackcuro;
37 i:=1;
38 write(out,<:<10>**cleararea :>,string name(increase(i)),
39 result);
40 end;
41 end entry exist;
42 cleararea:=status;
43 end;
44 end
algol end 3
\f
11
*testclearar=set 50
*testclearar=algol
c
1 begin
2 array file(1:3);
3 integer i,tobecleared;
4
4 initfp;
5 for tobecleared:=1 step 1 until fpinareas do
6 begin
7 readinfp(file,tobecleared);
8 i:=1;
9 cleararea(string file(increase(i)));
10 end;
11 end;
algol end 42
*areatoclear=move tcarea
*print areatoclear text integer 10.16 508.518
areatoclear
10. lis 7104883
12. tin 7629166
14. g.y 6762105
16. es 6648608
areatoclear
508. rec 7497059
510. (ou 2649973
512. t,1 7613489
514. 28) 3291177
516. ; 3869216
518. 2105376
*testclearar areatoclear
end 26
*print areatoclear text integer 10.16 508.518
areatoclear
10. 0
12. 0
14. 0
16. 0
areatoclear
508. 0
510. 0
512. 0
514. 0
516. 0
518. 0
*mode 15.no list.no
\f
12
Appendix VI
1978-09-04
Anders Lindgård
listint
Lists the names of the currently existing internal processes,
their parents and the core adresses and maxbases.
Translation
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
-----------------
\f
13
User
\f
14
Appendix VII
Input ot the program "compose" generating Appendix VI
This file is found under the name "listintinp"
*pl 297,21,240,13,4*
*pn 0,0**lw 170* *ld 12* *ps*
*qr*
1978-09-04
Anders Lindgård
*nl2*
*ct*
listint
*nl2*
*rj**np*
Lists the names of the currently existing internal processes, their parents
and the core adresses and maxbases.
*nl2*
*ns 1,1,Translation*
*ns 1,2,Call:*
-----*nl2*
listint
*ns 1,2,Function:*
---------*nl*
*np*
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:*nl2*
<process name> <parent name> <first address> <last address>
*lm10**nl* <lower maxbase> <upper maxbase>*lm0**nl*
*np*
On the RC4000 <lower maxbase> and <upper maxbase> are left out.
*ns 1,2,Storage requirements:*
---------------------*nl2*
As for a normal ALGOL program.
*ns 1,2,Error messages:*
---------------*nl2*
None.
*lm0**nl2*
*ns 1,2,Language*
--------*nl2*
ALGOL
*ns 1,2,Maintenance level*
-----------------*nl2*
User
*ef*
\f
15
Appendix VIII
*i tlistint
*message listint
listint
*listint=set 4
*listint=algol connect.no
c
1 1978-09-05
1 begin
2 integer j,char,intproc,firstint,no_of_int,intsize;
3 boolean system2;
4 array internals(1:2);
5 integer field firstaddr,lastaddr,lowerbase,upperbase,namefirst,kind;
6 array field process,name,parent;
7 name:=2;
8 kind:=2;
9 namefirst:=4;
10 firstaddr:=24;
11 lastaddr:=firstaddr+2;
12 lowerbase:=78;
13 upperbase:=lowerbase+2;
14 system2:=lookupentry(<:system2:>)=0;
15 firstint:=wordload(78);
16 no_of_int:=(wordload(80)-firstint)//2;
17 intsize:=wordload(firstint+2)-wordload(firstint);
18 firstint:=wordload(firstint);
19 redefarray(internals,firstint,intsize*no_of_int);
20 write(out,"nl",1,<:name:>,"sp",8,<:parent:>,"sp",9,
21 <:first:>,"sp",3,<:last:>,"sp",5);
22 if -,system2 then write(out,<:lower:>,"sp",4,<:upper:>);
23 for intproc:=1 step 1 until no_of_int do
24 begin
25 process:=(intproc-1)*intsize;
26 parent:=wordload(firstint+process+50)-firstint;
27 if internals.process.namefirst<>0 and internals.process.kind=0 then
28 begin
29 j:=1;
30 char:=write(out,"nl",1,string internals.process.name(increase(j)));
31 write(out,"sp",13-char);
32 j:=1;
33 char:=if parent=-firstint then 0 else
34 if internals.parent.namefirst=0 then 0 else
35 write(out,string internals.parent.name(increase(j)));
36 write(out,"sp",12-char);
37 write(out,<< dddddd>,
38 internals.process.firstaddr,internals.process.lastaddr);
39 if -,system2 then write(out,<< -ddddddd>,
40 internals.process.lowerbase,internals.process.upperbase);
41 end internal found;
42 end internal;
43 end
algol end 25
\f
16
*listint
name parent first last lower upper
s 65198 262144 -8388607 8388605
driverproc 8 58970 -8388607 8388605
primo s 74122 82300 -8388607 8388605
tem s 82300 92708 -8388607 8388605
sos s 92708 114124 -8388607 8388605
b s 114124 220124 -8388607 8388605
sys sos 96578 112450 2020 2020
nr1sys b 117994 218346 2021 2021
end 13
*mode list.no
\f
▶EOF◀