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