|
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: 4608 (0x1200) Types: TextFile Names: »lookupprotx«, »lookupprotx «
└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code └─⟦75ff9bef3⟧ └─⟦this⟧ »lookupprotx « └─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code └─⟦75ff9bef3⟧ └─⟦592c22808⟧ »proctxpack « └─⟦c7b1c7cfc⟧ └─⟦this⟧ »lookupprotx«
; lookup_proc * page 1 19 01 82, 12.54; ; *********** if listing.yes char 10 12 10 lookup_proc = set 1 0 lookup_proc = algol external integer procedure lookup_proc(scope, name, tail); _________________________________________________________ long array scope, name; integer array tail; <* lookupproc (return, integer) 0 found _ 1 the call param scope does not _ contain a legal scope name _ 2 cat i/o error _ 3 not found _ 6 name format illegal scope (call, long array) contains the name of a scope or <::> _ if scope(1)=long<::> then scope will be _ a return parameter, which may be <:***:> name (call, long array) contains the name of the entry tail (return, integer array) _ contains tail of the entry _ 1 size or modekind _ 2:5 docname _ 6 shortclock, in case shortclock _ is found in the entry _ 7:10 remaining tail *> begin integer scopeno, i; long l1, l2; integer array bases(1:8), ba(1:2), head_and_tail(1:17); zone zhelp(1, 1, stderror); lookupproc:=0; scopeno:=if scope(1)=long<::> then 0 else if scope(1)=long<:temp:> then 1 else if scope(1)=long<:login:> then 2 else if scope(1)=long<:user:> then 3 else if scope(1)=long<:proje:> add 99 and scope(2)=long<:t:> then 4 else if scope(1)=long<:syste:> add 109 then 5 else 6; if scopeno=6 then begin lookupproc:=1; goto zeros end; system(11, i, bases); open(zhelp, 0, <::>, 0); close(zhelp, true); i:=if scopeno<3 then 3 else if scopeno=3 then 5 else 7; ba(1):=bases(i); ba(2):=bases(i+1); monitor(72<*set cat base*>, zhelp, 0, ba); i:=1; open(zhelp, 0, string name(increase(i)), 0); \f comment lookup_proc * page 2 19 01 82, 12.54; i:=monitor(76<*head and tail*>, zhelp, 0, head_and_tail); if i<>0 then begin lookupproc:=i; goto zeros end; if scopeno>0 and scopeno<5 and ( extend head_and_tail(2)<>extend ba(1) or extend head_and_tail(3)<>extend ba(2)) then goto lookup_not_found; i:=head_and_tail(1) extract 3; if scopeno=1 and i<>0 or scopeno=2 and i<>2 or scopeno>2 and i<>3 then goto lookup_not_found; if scopeno=5 then begin if -, (extend head_and_tail(2)<extend ba(1) or extend head_and_tail(3)>extend ba(2)) then goto lookup_not_found end; if false then begin lookup_not_found: lookupproc:=3; zeros: for i:=1 step 1 until 10 do tail(i):=0; goto if scopeno=6 then exit_lookupproc else reset_base; end; if scopeno=0 then begin case i+1 of begin comment key 0, maybe temp; if extend head_and_tail(2)=extend bases(3) and extend head_and_tail(3)=extend bases(4) then scopeno:=1 else scopeno:=6; comment key 1; scopeno:=6; comment key 2, maybe login; if extend head_and_tail(2)=extend bases(3) and extend head_and_tail(3)=extend bases(4) then scopeno:=2 else scopeno:=6; comment key 3, user, project, system; begin l1:=head_and_tail(2); l2:=head_and_tail(3); if l1=extend bases(5) and l2=extend bases(6) then scopeno:=3 else if l1=extend bases(7) and l2=extend bases(8) then scopeno:=4 else if l1<=extend bases(7) and l2>=extend bases(8) then scopeno:=5 else scopeno:=6 end key 3; end cases; scope(1):=long(case scopeno of (<:temp:>, <:login:>, <:user:>, <:proje:> add 99, <:syste:> add 109, <:***:>)); scope(2):=if scopeno=4 then long<:t:> else long<::>; end; \f comment lookup_proc * page 3 19 01 82, 12.54; monitor(42<*lookup*>, zhelp, 0, tail); reset_base: close(zhelp, false); open(zhelp, 0, <::>, 0); monitor(72<*set cat bases*>, zhelp, 0, bases); exit_lookupproc: end lookup_proc; end if ok.no mode warning.yes if warning.yes (mode 0.yes message lookup_proc not ok lookup lookup_proc) ▶EOF◀