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

⟦93b16560f⟧ TextFile

    Length: 2304 (0x900)
    Types: TextFile
    Names: »chngentrptx «

Derivation

└─⟦01e83a425⟧ Bits:30008166 Bånd med SW8010 og SW8500 source code
    └─⟦75ff9bef3⟧ 
        └─⟦this⟧ »chngentrptx « 

TextFile


;  chng_entr_pr
;  ************

if listing.yes
char 10 12 10

chng_entr_pr = set 1 0

chng_entr_pr = algol

external integer procedure changeentryproc(name, tail);  
_______________________________________________________
long array name;  
integer array tail;  
<*
changeentryproc (return integer)  0  ok
_                                 1  change kind impossible
_                                 2  cat i/o error,
_                                    doc. not mounted or not ready
_                                 3  name not found
_                                 4  name protected
_                                 5  name in use
_                                 6  name format illegal
_                                 7  catalog inconsistent
_                                 8  change bs device impossible
_                                 9  claims exceeded

name            (call, long array)  contains the entry name

tail            (call, integer array) contains new entry tail
*>
begin integer i;  
  integer array ia(1:10);  
  zone zhelp(1, 1, stderror);  
  i:=1;  open(zhelp, 0, string name(increase(i)), 0);  
  i:=monitor(42<*lookup*>, zhelp, 0, ia);  
  if i<>0 then
  begin changeentryproc:=i;  goto exit_changeentryproc end;  
  if tail(1)<0 or ia(1)<0 then
  begin
    if tail(1)>=0 or ia(1)>=0 then
    begin changeentryproc:=1;  goto exit_changeentryproc end;  
    goto change
  end;  
  if tail(2)=0 or tail(2)=1 then goto change;  
  if tail(3) extract 8=0 then tail(4):=tail(5):=0;  
  if tail(2)<>ia(2) or tail(3)<>ia(3) or
  tail(4)<>ia(4) or tail(5)<>ia(5) then
  begin changeentryproc:=8;  goto exit_changeentryproc end;  
  change:
  for i:=1 step 1 until 10 do ia(i):=tail(i);  <*fielding possible*>
  i:=monitor(44<*change*>, zhelp, 0, ia);  
  if i=6 then i:=9;  
  changeentryproc:=i;  
  exit_changeentryproc:
end changeentryproc;  

end

if ok.no
mode warning.yes

if warning.yes
(mode 0.yes
message chng_entr_pr not ok
lookup chng_entr_pr)
▶EOF◀