DataMuseum.dk

Presents historical artifacts from the history of:

RC3500

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about RC3500

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download

⟦281e8f74c⟧ TextFileVerbose

    Length: 3840 (0xf00)
    Types: TextFileVerbose
    Names: »spas«

Derivation

└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system
    └─⟦72244f0ef⟧ 
        └─⟦this⟧ »spas« 

TextFileVerbose


process s (          (*     for  a ts in alarm system       *)
procname : alfa;
sv       : system_vector);



(*---------------------------------------------------------------*)

process eva ( pn: alfa; sv: system_vector);

const
 version = "vers s2.00 /" ;


var
lamtab : lam_tab;
sem : ts_sem_vector;
semp : ts_pointer;
sh  : array(1..15) of shadow;
cv  : integer;
msg : reference;
opsem: sempointer;
stopsem : semaphore;
console : zone;


process test ( pn: alfa; sv: system_vector; var sem: ts_sem_vector);
external;


process lam ( pn: alfa; sv: system_vector; pu, level:integer; 
var sem1: semaphore );
external;

(*  old format

process vcatc ( pn: alfa; sv: system_vector;
var messem, vchsem, lamsem, timsem: semaphore;
dc: macroaddr; mic, chn: integer);
external;

  *)

process tap ( pn: alfa; opsem: sempointer;;
var semp: !ts_pointer );
external;


process tssuper(
procname : alfa;
sv       : system_vector;
var sem : ts_sem_vector );
external;

 

process vagt(
procname : alfa;
sv       : system_vector;
(*
var  main_sem,timeout_sem,lam_sem: semaphore);
*)
var sem : ts_sem_vector );
external;
  


function createok(cv: integer) : boolean;
begin
if cv=0 then createok:= true
else
begin
testout(console,"createerror ",cv);
createok:= false;
end
end;
\f


  
(*-----------------------------------------------------------*)

begin

own.incname:= pn;
opsem:= sv(operatorsem);
testopen ( console, own.incname, opsem);
testout ( console, version, al_env_version);


link("tssupervisor",tssuper);
(*
testout ( console, "link        ", 1);
*)
cv:= create(tssuper("tssupervisor",sv,
sem),
sh(1),tss_size,0);
(*
testout ( console, "create      ", cv);
*)
if createok(cv) then start(sh(1),tss_pri);
(*
testout ( console, "tss started ", cv);
*)

(*   no lam

link ("lam         ", lam);
cv:= create ( lam ("lam         ", sv, 0, 5, sem(lam_sem_no)),
     sh(12), lam_size, pu_no);
if createok ( cv) then start ( sh(12), lam_pri);
(*
testout ( console,"lam started ", cv);
*)


 
link("vagt        ",vagt);
cv:= create ( vagt (
"vagt        ", sv, sem),
  sh(14), vc_sim_size, pu_no);
if createok(cv) then start(sh(14),vc_sim_pri);
(*
testout ( console,"vagt started",cv);
*)



semp.w:= ref ( sem(28));
semp.s:= ref ( sem(29));
link ("tap         ", tap);
cv:= create ( tap ( "tap         ", opsem, semp ),
sh(3), 2040, 0);
if createok ( cv) then start ( sh(3), -1);


link ("test        ", test);
cv:= create ( test ("test        ", sv, sem), sh(11), 512, 0);
if createok ( cv) then start ( sh(11), 0);


testout ( console, "all started.", 3);
 
repeat
wait(msg,stopsem);
testout(console,"msg to eva  ",msg^.u4);
release(msg);
until false
  
end;    (*  of eva  *)

(*-------------------------------------------------------------*)


var
main_sem: semaphore;           (*  for at undgaa end.   *)
inc : shadow;
msg : reference;
cv : integer;

begin   (*  s  *)

cv:= create ( eva ("eva         ", sv), inc, 1024, 0 );
start ( inc, -1);
wait ( msg, main_sem );    (*  stop here  *)

end.

«eof»