DataMuseum.dk

Presents historical artifacts from the history of:

RC4000/8000/9000

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC4000/8000/9000

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦0ead9c4e4⟧ TextFile

    Length: 26880 (0x6900)
    Types: TextFile
    Names: »guideline«

Derivation

└─⟦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« 

TextFile

\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◀