|
|
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: 3840 (0xf00)
Types: TextFile
Names: »progentrytx«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦80900d603⟧ »giprocfile«
└─⟦00964e8f7⟧ Bits:30007478 RC8000 Dump tape fra HCØ.
└─⟦b2ec5d50f⟧
└─⟦80900d603⟧ »giprocfile«
└─⟦this⟧
; prog_entry_tx * page 1 27 09 77, 13.31;
; prog_entry
; **********
if listing.yes
char 10 12 10
prog_entry = set 1
prog_entry = algol
external integer procedure prog_entry
_____________________________________
_ (t, t_max, name);
value t_max;
integer t, t_max;
string name;
comment
the procedure is designed as an aid to the problem of packing
several small algol programmes on one or a few slices in order
save backing storage. assume that e.g. three minor programmes
p, q, rx should be packed together. the programmes are then
arranged as statement cases surrounded by a block with an integer
declaration. the programmes are then called as string parameters
in the procedure and the integer variable is the first parameter.
the second parameter is the number of programs packed, here 3;
<*example: programs p, q, rx.
multi entry program as follows:
begin integer t;
case prog_entry(t, 3, case t of (<:p:>, <:q:>, <:rx:>)) of
begin
<program text of p>;
<program text of q>;
<program text of rx>;
end *>
comment
the name of the translated programme is designated as the
<main name> and the others are called <aux name1>, aux name2> , ,
all <aux names> should then have catalog entries with the
<main name> as their document name and with the last 5 word of
their tail as the <main name> tail;
<* example of fp comm:
let q be <main name>, and p and rx <aux namees>
fp-comm:
z = assign q ; convenient work name if q were a long name
p = entry bs q z z z z z
rx = entry bs q z z z z z
possible scope comm may follow*>
\f
comment prog_entry_tx * page 2 27 09 77, 13.31
0 1 2 3 4 5 6 7 8 9 ;
comment
then main name
prog_entry (return) integer
the value of t when name is the same as the prog_name in the
fp-command activating the programme. if no matching name is
found a system(9 - alarm with the string <:progentr:>is given.
t (call) integer
the controlled variable in a jensen device using call by name
of then string name. t steps from 1 to t_max.
t_max (call) integer
the upper limit of the value of t.
name (call) string
the name/names of the candidate entry/entries.
the actual call is case t of (name1, name2, ... nametmax)
;
begin
integer i;
array prog_name, comp_name(1:2);
comment look for prog name after =;
i := system(4, 1, prog_name);
comment look for prog name first;
if i shift (-12) <> 6 then
i := system(4, 0, prog_name);
comment alarm for strange param, alarm value = 0;
if i extract 12 <> 10 then
system(9)alarm:(0, <:<10>progentr:>);
i := 0;
comment compare names;
for t := 1 step 1 until tmax do
begin
comp_name(1) := comp_name(2) := real <::>;
if move_string_1(comp_name, 1, name) < 0 then
system(9)alarm:(t, <:<10>progentr:>); <*alarm value = t*>
if prog_name(1) = comp_name(1)
and prog_name(2) = comp_name(2) then
begin
prog_entry := i := t;
t := t_max;
end;
end t-loop;
if i = 0 then system(9)alarm:(-1, <:<10>progentr:>);
end prog_entry;
end
if warning.yes
(mode 0.yes
message prog_entry not ok
lookup prog_entry)
▶EOF◀