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

⟦bc08437c2⟧ TextFile

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

Derivation

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

TextFile

process ncth(
var sys_vector:system_vector;
var reserve_sem : semaphore;
var ncth_sem:semaphore;
pu,formatter_prio,comint_prio:integer);

const
mess_type=7;
inbuf_type=9;
outbuftype=10;
vers = "ncth vers. 81.05.27/1";

ill_opcode=4;
not_mess=44;
formatter_stack_sz= 600;
comint_stack_sz=1900;

var
formatter_sem:semaphore;
formatter_sh:shadow;

comint_sem:semaphore;
comint_sh:shadow;

ncp_mess_ref:reference;
  
i:integer;
 
  
process formatter(
var sys_vector:system_vector;
var reserve_sem :semaphore;
var formatter_sem:semaphore);
external;

process comint(
var comint_sem:semaphore;
var sys_vector:system_vector;
var formatter_sem:semaphore);
external;

begin     (* body of ncth  *)

i:=link("formatter   ",formatter);
i:= create("formatter   ",formatter(sys_vector,reserve_sem,formatter_sem),
formatter_sh,formatter_stack_sz);
if i = 0 then start(formatter_sh,formatter_prio);

i:=link("comint      ",comint);
i:=create("comint      ",comint(comint_sem,sys_vector,formatter_sem),
comint_sh,comint_stack_sz);
if i = 0 then start(comint_sh,comint_prio);

while true do
begin
wait(ncp_mess_ref,ncth_sem);
if ncp_mess_ref^.u2=7 then
case ncp_mess_ref^.u1 of
9:signal(ncp_mess_ref,comint_sem);
10:signal(ncp_mess_ref,formatter_sem)
otherwise
begin
ncp_mess_ref^.u2:=ill_opcode;
return(ncp_mess_ref);
end
end
else
begin
ncp_mess_ref^.u2:=not_mess;
return(ncp_mess_ref);
end; (* of if ncp_mess---- *)
end; (* of while true do *)


end. (* of ncth   *)
▶EOF◀