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

⟦a0498a3f4⟧ TextFile

    Length: 4608 (0x1200)
    Types: TextFile
    Names: »htsysslut   «

Derivation

└─⟦110021343⟧ Bits:30007476 RC8000 Backup tape fra HT's bus-radio system
    └─⟦a957ba283⟧ 
        └─ ⟦this⟧ »htsysslut   « 

TextFile

sysslut.
:5: sysslut: initialisering
\f

message sysslut initialisering side 1 - 810406/cl;
begin
  zone z(128,1,stderror);
  integer i,coruid,j,k;
  integer array field cor;

  open(z,4,<:overvågede:>,0);
  for i:= read(z,coruid) while i > 0 do
  begin
    if coruid = 0 then
    begin
      for coruid:= 1 step 1 until maxcoru do
      begin
        cor:= coroutine(coruid);
        d.cor.corutestmask:= d.cor.corutestmask shift 1 shift (-1);
      end
    end
    else
    begin
      cor:= coroutine(coru_no(abs coruid));
      if cor > 0 then
      begin
        d.cor.corutestmask:=
          (d.cor.corutestmask shift 1 shift (-1)) add
          ((coruid > 0) extract 1 shift 11);
      end;
    end;
  end;
  close(z,true);

  læsfil(tf_systællere,1,k);
  rf:=iaf:= 4;
  systællere_nulstillet:= fil(k).rf;
  nulstil_systællere:= fil(k).iaf(1);
  if systællere_nulstillet=real<::> then
  begin
    systællere_nulstillet:= 0.0;
    nulstil_systællere:= -1;
  end;
  iaf:= 32;
  tofrom(opkalds_tællere,fil(k).iaf,max_antal_områder*10);
  iaf:= 192;
  tofrom(operatør_tællere,fil(k).iaf,max_antal_operatører*10);

end;
\f

message sysslut initialisering side 2 - 810603/cl;


  if låsning > 0 then
    <* låsning 1 : *>  lock(takeexternal,coru_term,mon,1); <* centrallogik *>

  if låsning > 1 then
    <* låsning 2 : *>  lock(readchar,1,write,2);

  if låsning > 2 then
    <* låsning 3 : *>  lock(activate,1,link,1,setposition,1);




  if låsning > 0 then
  begin
    i:= locked(ia);
    write(z_io,"nl",2,<:låsning::>,låsning,"nl",1,i,<: segmenter er låst:>);
  end;
\f

message sysslut initialisering side 3 - 810406/cl;

write(z_io,"nl",2,<:initialisering slut:>);
system(2)free core:(i,ra);
write(z_io,"nl",1,<:free core =:>,i,"nl",1);
setposition(z_io,0,0);
write(zbillede,"ff",0,"nl",1,<:initialisering slut :>,<<zddddd>,
      systime(5,0,r),".",1,r,"nl",1,<:free core=:>,i,
      "nl",1);
errorbits:= 3; <* ok.no warning.yes *>
:6: trapaktion
\f

message sysslut trapaktion side 1 - 810519/cl;
write(zbillede,"nl",2,"=",20,<: corutinemonitor :>,"=",20,"nl",1);
corutable(zbillede);
write(zbillede,"ff",1,<:***** simple semaphores *****:>,"nl",2,
  <: ref værdi prev next:>,"nl",1);
iaf:= firstsim;
repeat
  write(zbillede,<<dddd>,iaf,<< -dddd>,d.iaf.simvalue,<< dddd>,
    d.iaf(simcoru//2-1),d.iaf.simcoru,"nl",1);
  iaf:= iaf + simsize;
until iaf>=simref;
write(zbillede,"ff",1,<:***** chained semaphores *****:>,"nl",2,
  <: ref prev.coru next.coru   prev.op   next.op:>,"nl",1);
iaf:= firstsem;
repeat
  write(zbillede,<<dddd>,iaf,<<______dddd>,d.iaf(semcoru//2-1),
    d.iaf.semcoru,d.iaf(semop//2-1),d.iaf.semop,"nl",1);
  iaf:= iaf+semsize;
until iaf>=semref;
write(zbillede,"ff",1,<:***** operations *****:>,"nl",2);
iaf:= firstop;
repeat
  skriv_op(zbillede,iaf);
  iaf:= iaf+opheadsize+d.iaf.opsize;
until iaf>=optop;
write(zbillede,"ff",1,<:***** message extentions *****:>,"nl",2,
  <:  messref messcode   messop:>,"nl",1);
for i:= 1 step 1 until maxmessext do
  write(zbillede,<< dddddddd>,messref(i),messcode(i),messop(i),"nl",1);
write(zbillede,"nl",4,<:***** process extentions *****:>,"nl",2,
  <:  procref proccode   procop:>,"nl",1);
for i:= 1 step 1 until maxprocext do
  write(zbillede,<< dddddddd>,procref(i),proccode(i),procop(i),"nl",1);

:7: sysslut: finale
\f

message sysslut finale side 1 - 810530/cl;

slut_finale:

trap(exit_finale);

outchar(zrl,'em');
close(zrl,true);

write(zbillede,
        "nl",2,<:blocksread=:>,blocksread,
        "nl",1,<:blocksout= :>,blocksout,
        "nl",1,<:fillæst=   :>,fillæst,
        "nl",1,<:filskrevet=:>,filskrevet,
        "nl",3,<:********** billede genereret :>,<<zddddd>,
  systime(5,0,r),".",1,r,<: **********:>,"nl",1,"em",1);
close(zbillede,true);
monitor(42,zbillede,0,ia);
ia(6):= systime(7,0,0.0);
monitor(44,zbillede,0,ia);
setposition(z_io,0,0);
write(z_io,"nl",3,"sp",10,"*",15,<: busradio afsluttet :>,<<zddddd>,
  systime(5,0,r),".",1,r,"sp",1,"*",15,"nl",1,"em",1);
close(z_io,true);
exit_finale: trapmode:= 1 shift 10;
▶EOF◀