|
|
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: 9216 (0x2400)
Types: TextFile
Names: »getexterntx«
└─⟦621cfb9a2⟧ Bits:30002817 RC8000 Dump tape fra HCØ. Detaljer om "HC8000" projekt.
└─⟦0364f57e3⟧
└─⟦baac87bee⟧ »gi«
└─⟦667bb35d6⟧ Bits:30007480 RC8000 Dump tape fra HCØ.
└─⟦4334b4c0b⟧
└─⟦baac87bee⟧ »gi«
└─⟦this⟧
comment predit text * page 1 3 03 80, 15.14
0 1 2 3 4 5 6 7 8 9 ;
comment case 14, getextern
create name leverer et workname til workfile
workfile creater et non_area entry
;
begin
integer i, n, t, firstm, procnumbers, shiftv, scope,cskift;
boolean auto, from, copy, gbtx, not_clear;
real array contra, comp, devi, myst(1:2);
integer array zdes(1:20);
integer array tail(1:10), headm(1:17), alpha(0:255);
long array save(1:128);
zone zbr, zmulti, zm(128, 1, stderror);
integer field word, inf;
real array field name;
long array field zn;
procedure stop(s); string s;
system(9, 0*write(out, <:<10>***:>, s, nl, 1), <:getextern:>);
comment procedure for transfer of procnames;
procedure transproc;
begin
integer i;
repeat
i := read_string(zbr, save, 1);
write(zmulti, save);
until i > 0;
set_position(zbr, 0, 0);
end;
procedure shiftchar(ch);
value ch; integer ch;
begin
contra.inf := contra.inf + ch shift shiftv;
shiftv := shiftv - 8;
if shiftv = -8 then
begin
inf := inf + 2; shiftv := 16;
end;
end;
\f
comment predit text * page 2 3 03 80, 15.14
0 1 2 3 4 5 6 7 8 9 ;
name := 6;
first_m := 3;
zn :=
word := 2;
shiftv := 1;
n :=
procnumbers :=
scope := 0;
devi(1) :=
devi(2) := real <::>;
from :=
gbtx :=
auto := false;
if readparam(comp) <> -1 then
_ stop(<:param error - left hand:>);
for i := readparam(contra) while i <> 0 and n < 3 do
begin
if i = 2 then
begin
n := n + 1;
t := nr_string(t, 4, string(contra(1)), case t of (
_ <:auto:>, <:scope:>, <:from:>, <:gbtx:>)) - 1;
if t = 0 then n := 4;
end
else
\f
<* predit text * page 3 3 03 80, 15.14
0 1 2 3 4 5 6 7 8 9 *>
if i = 4 then
begin
case (if t < 4 then t else 3) of
begin
begin <* auto *>
auto := contra(1) = real <:yes:>;
firstm := firstm + 2;
if auto then stop(<:auto not implemented:>);
end;
begin
if shiftv = 1 then
begin
scope := nr_string(scope, 4, string(contra(1)),
_ case scope of (
_ <:proj:>, <:user:>, <:login:>, <:clear:>)) -1;
if scope = 0 then
_ stop(<:param error illegal scope:>);
firstm := firstm + 2;
end
else
if shiftv = 2 then
begin
devi(1) := contra(1);
devi(2) := contra(2);
firstm := firstm + 1;
end;
shiftv := shiftv + 1;
end;
begin
from := t = 3;
gbtx := t = 4;
myst(1) := contra(1);
myst(2) := contra(2);
end;
end;
end
else
stop(<:param error illegal sequence:>);
end;
not_clear := scope <> 4;
for i := readparam(contra) while i <> 0 do;
for i := 1 step 1 until firstm do readparam(contra);
if -, from and -, gbtx and not_clear then
stop (<:param error not getextern call:>);
if not_clear then
begin
open (zm, 4, string pump (myst), 0);
if monitor (76, zm, 0, headm) > 0 or headm(16) shift (-12) <> 10 then
stop (<:contract file does not exist:>);
inrec6(zm,512);
n := zm(128) extract 24;
cskift := if zm.word shift (-12) = (n+14)//15 then
_ -12 else -6;
setposition(zm, 0, 0);
end;
\f
comment predit text * page 4 3 03 80, 15.14
0 1 2 3 4 5 6 7 8 9 ;
open (zbr, 4, <::>, 0);
tail (1) := 1;
for t := 2 step 1 until 10 do tail(t) := 0;
i := monitor(40)create entry:(zbr, 0, tail);
if i <> 0 then stop(<:temp work store not created:>);
get_zone(zbr, zdes);
comment file for compresstext created;
if scope = 0 then
begin
scope := if fp_mode(1) then 1 else
_ if fp_mode(2) then 2 else
_ if fp_mode(3) then 3 else 0;
end;
open(z_multi, 4, string pump(comp), 0);
tail(1) := 1;
for t := 2 step 1 until 10 do tail(t) := 0;
i := monitor (40) create entry:(zmulti, 0, tail);
if i <> 0 and i <> 3 then
stop(<:resultfile create trouble:>);
if i = 3 then
begin
monitor(48)remove entry:(zmulti, 0, tail);
i := monitor(40)create entry:(zmulti, 0, tail);
if i <> 0 then stop(<:resultfile create trouble:>);
end;
if monitor(50)permanent entry:(zmulti, 2, tail) <>0 then
stop(<:no login resources to resultfile:>);
indateproc(zmulti);
comment entry for multiprogram created;
for i := 0 step 1 until 127 do
_ alpha(i) := 6 shift 12 add i;
alpha(0) :=
alpha(127) := 0;
alpha(25) := 8 shift 12 add 25;
intable(alpha);
for i := readparam(contra) while i <> 0 do
begin
if i <> 2 then stop(<:param error illegal sequence:>);
if from then
begin
i := readparam(comp);
if i <> 4 then stop(<:param error illegal sequence:>);
end
else
\f
<* predit text * page 5 3 03 80, 15.14
0 1 2 3 4 5 6 7 8 9 *>
begin <* gbtx *>
comp(1) := contra(1);
comp(2) := contra(2);
contra(1) :=
contra(2) := real <::>;
in_f := 2;
shift_v := 16;
for t := comp.inf shift (-shiftv) extract 8 while t <> 0 do
_ shiftchar(t);
shiftchar(116); <* t *>
shiftchar(120); <* x *>
end of gbtx;
if not_clear then
begin
copy := false;
setposition(zm, 0, 0);
for t := 1 step 1 until n do
begin
inrec_6(zm, 34);
if zm.name(1) = contra(1) and
_ zm.name(2) = contra(2) then
begin
copy := true;
firstm := if zm.word shift(cskift) = 0 then zm.word else
_ zm.word shift(cskift);
write(zbr, string pump(comp), sp, 1, <:,<10>:>);
procnumbers := procnumbers + 1;
if procnumbers = 1 then
begin
if devi(1) <> real <::> then
_ write(zmulti, nl, 2, string pump(comp),
_ <: = set 1 :>, string pump(devi));
write(zmulti, nl, 2, string pump(zdes.zn),
<: = set bs :>, string pump(headm.name), nl, 1);
end;
write(zmulti, nl, 2, string pump(zdes.zn), <: = changeentry :>,
string pump(zdes.zn), sp, 1, string pump(headm.name),
sp, 1, string pump(zdes.zn), sp, 1,
string pump(zdes.zn), sp, 1, firstm, nl, 1,
<:i :>, string pump(zdes.zn), nl, 1);
t := n;
end ifcop;
comment one procedure transferred with warning;
end nstep;
if -, copy then
begin
write(out, nl, 1, string pump(contra), <: not in textstorage:>);
setfpmode(0, true);
end;
\f
comment predit text * page 6 3 03 80, 15.14
0 1 2 3 4 5 6 7 8 9 ;
end
else
begin
procnumbers := procnumbers + 1;
write(zbr, string pump(comp), sp, 1, <:,:>, nl, 1);
end;
end pnulpar;
write(zbr, nl, 2, em, 1);
setposition(zbr, 0, 0);
if not_clear then
begin
write(zmulti, ff, 1, nl, 2,
_ <: if 0.no :>, nl, 1, <:(:>, nl, 1);
for t := readchar(zbr, i) while i <> 32 do
_ outchar (zmulti , i);
write(zmulti, <: = compresslib <44><10>:>);
transproc;
if scope > 0 then
begin
write(zmulti, ff, 1, nl, 2, <: if 0.no :>, nl, 1, <:(:>, nl, 1,
_ <:scope :>, case scope of (<:project:>, <:user:>, <:login:>),
_ <:,:>, nl, 1);
transproc;
write(zmulti, <:):>, nl, 2);
end;
write (zmulti, <:<10> <12><10> lookup , <10>:>);
transproc;
write(zmulti, <:<10> message :>, procnumbers,
<: procedures translated<10><41>:>);
end
else
begin comment clear;
write(zmulti, nl, 3, <:scope temp,:>, nl, 1);
transproc;
write(zmulti, nl, 3, <:clear temp,:>, nl, 1);
transproc;
write(zmulti, nl, 3, <:if ok.yes :>, nl, 1,
_ <:message :>, procnumbers, <: procedures :>,
_ <:cleared:>);
end;
write(zmulti, nl, 2, <:clear temp :>, string pump(zdes.zn),
<:<10>end<10>finis<10><25>:>);
close(zmulti, true);
close(zm, true);
<*remove entry*>
monitor(48, zbr, 1, zdes);
close(zbr, true);
end case 14, getextern;
▶EOF◀