|
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: 3840 (0xf00) Types: TextFile Names: »spas«
└─⟦a41ae585a⟧ Bits:30001842 SW-save af projekt 1000, Alarm-system └─⟦72244f0ef⟧ └─⟦this⟧ »spas«
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◀