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

⟦77cec2c5e⟧ TextFile

    Length: 20736 (0x5100)
    Types: TextFile
    Names: »rc850jobs«

Derivation

└─⟦2c55ea56f⟧ Bits:30001844 SW-save af projekt 1000, Alarm-system
    └─⟦6b41451d2⟧ 
        └─⟦this⟧ »rc850jobs« 

TextFile

; rc850jobs

%
\f



(***********************
*   ep test 1          *
*   test 1 rc850 sys   *
***********************)

process progenitor(var s1,s2,s3 : semaphore);

var i,j : integer;

begin
printtext('start rc850#');
for i:=1 to 20 do
begin
writenl;
for j:=1 to i do writechar('*');
end;
end.


%
\f



(**********************
*   ep test 2         *
*   test statements   *
**********************)


process progenitor(var s1,s2,s3:semaphore);

type re = record
           a : integer;
           b : alfa;
         end;

     ar = array (1..6) of re;

var a : ar := ar ( re(1, 'no 1        '),  re(2, 'no 2        '),
                   re(3, 'no 3        '),  re(4, 'no 4        '),
                   re(5, 'no 5        '),  re(6, 'no 6        '));
p,q,i : integer;

label lab;

procedure casetest(l,u,v : integer);
begin
if (v<l) or (v>u) then begin
  writenl;
  printtext('case error');
  printnumber(l,4);
  printnumber(u,4);
  printnumber(v,4);
end
else writechar('c')
end;

begin
q:=1;
lab:
printtext('next #');  printnumber(q,4);
printtext('for up #');
for p:=q to 3 do writechar('+');
printtext(' : fordown #');
for p:=3 downto q do writechar('-');
writenl;  
printtext('repeat #');
p:=3;
repeat writechar('r');  p:=p+1; until p>q;
printtext(' :  while #');
p:=3;
while p>=q do begin writechar('w'); p:=p-1 end;
writenl;
with a(q) do begin
  printnumber(a,2);  printtext('   #');
  printtext(b)
end;
writenl;
q:=q+1;
if q<=6 then goto lab;

printtext('neg up/down');
for p:=-10 to -8 do writechar('-');
for p:=-2 to 1 do writechar('>');
for p:=1 downto -2 do writechar('<');
for p:=-8 downto -10 do writechar('+');

writenl;  printtext('case #');
for p:=1 to 10 do begin
printnumber(p, 3);  printtext(' #');

case p of
5: i:=5;
4: i:=4;
3: i:=3;
2: i:=2;
1: i:=1;
otherwise begin casetest(6,10,p); i:=p end;
end;
if 6>p then casetest(i,i,p);

case p of
1..3: casetest(1,3,p);
6..8: casetest(6,8,p);
4..5: casetest(4,5,p);
9,10: casetest(9,10,p);
end;

case p of
1..3: casetest(1,3,p);
6..8: casetest(6,8,p);
9:    casetest(9,9,p);
10:   casetest(10,10,p);
4..5: casetest(4,5,p);
end;

case p of
2: i:=2;
7: i:=7;
4: i:=4;
3: i:=3;
5: i:=5;
1: i:=1;
otherwise
if p=6 then casetest(6,6,p)
else
casetest(8,10,p);
end;
if not ( (p=6) or (p>7) ) then casetest(i,i,p);
end;
writenl;  printtext('case end.#');
end.


%


\f



(*************************
*   ep test 3            *
*   test rev, stv, stc   *
*************************)

process progenitor(var s1,s2,s3:semaphore);

type  pr = packed record
                    a,b,c,d : 0..63;
                    e : integer;
                    f : 0..255;
                  end;
const  ca = 41; cb = 42; cc = 43; cd = 44; ce = 45; 
       cf = 46;

var gr, gr1 : pr;
    sum : integer;
    i : integer;
    a1 : array (1..4) of integer;  (* 1,2,3,4*)
    a2 : array (1..4) of 0..255;   (* 5,6,7,8*)
    a3 : array (1..4) of pr;       (* a = 9,10,11,12 *)
                                   (* d = 13,14,15,16 *)
                                   (* e = 17,18,19,20 *)
                                   (* f = 21,22,23,24 *)


procedure error(i : integer);
begin
writenl;  printtext('error no #');
printnumber(i,1);
end;

procedure testout(s : alfa);
begin
writenl;  printtext(s);
end;


procedure pa;
var pa1 : pr;
    pa2 : pr;

   procedure pb;  
   var pb1 : pr := pr(21,22,23,24,25,26);
       pb2 : pr;

       procedure pc;
       var pc1 : pr;
           pc2 : pr;
           pc3 : pr;

           procedure pd;
           begin
             testout('pd called #');
             pc1.a:=pc1.a + gr.a;
             pc1.b:=pc1.b + gr.b;
             pc1.c:=pc1.c + gr.c;
             pc1.d:=pc1.d + gr.d;
             pc1.e:=pc1.e + gr.e;
             pc1.f:=pc1.f + gr.f;
             pa1.a:=ca;
             pa1.b:=cb;
             pa1.c:=cc;
             pa1.d:=cd;
             pa1.e:=ce;
             pa1.f:=cf;
             pc3:=pc1;
           end;
       (*c*)
       begin
         testout('pc called #');
         pc1.a:=31;  pc1.b:=32;  pc1.c:=33;  pc1.d:=34;
         pc1.e:=35;  pc1.f:=36;
         pc2:=pc1;
         pd;
         if pc2.a <> (pc1.a - gr.a) then error(1);
         if pc2.b <> (pc1.b - gr.b) then error(2);
         if pc2.c <> (pc1.c - gr.c) then error(3);
         if pc2.d <> (pc1.d - gr.d) then error(4);
         if pc2.e <> (pc1.e - gr.e) then error(5);
         if pc2.f <> (pc1.f - gr.f) then error(6);
         if pc3 <> pc1 then error(25);
         with pc2 do
         sum := a+b+c+d+e+f;
         writenl;   printtext('proc c sum');
         printnumber(sum,7);
       end; (*c*)
   (*b*)
   begin
     testout('pb called #');
     pb2:=pb1;
     pc;
     if pb2.a <> pb1.a then error(7);
     if pb2.b <> pb1.b then error(8);
     if pb2.c <> pb1.c then error(9);
     if pb2.d <> pb1.d then error(10);
     if pb2.e <> pb1.e then error(11);
     if pb2.f <> pb1.f then error(12);
     with pb2 do
     sum := a+b+c+d+e+f;
     writenl;  printtext('proc b sum');
     printnumber(sum,1);
   end; (*b*)
(*a*)
begin
testout('pa called #');
i:=11;  pa1.a:=i;    i:=12;  pa1.b:=i;    i:=13;  pa1.c:=i;
i:=14;  pa1.d:=i;    i:=15;  pa1.e:=i;    i:=16;  pa1.f:=i;
i:=41;  gr1.a:=i;    i:=42;  gr1.b:=i;    i:=43;  gr1.c:=i;
i:=44;  gr1.d:=i;    i:=45;  gr1.e:=i;    i:=46;  gr1.f:=i;
pa2:=pa1;
pb;
if (pa1.a - pa2.a) <> (ca-11) then error(13);
if (pa1.b - pa2.b) <> (cb-12) then error(14);
if (pa1.c - pa2.c) <> (cc-13) then error(15);
if (pa1.d - pa2.d) <> (cd-14) then error(16);
if (pa1.e - pa2.e) <> (ce-15) then error(17);
if (pa1.f - pa2.f) <> (cf-16) then error(18);
with pa2 do
sum:=a+b+c+d+e+f;
writenl; printtext('proc a sum');
printnumber(sum,4);
end; (*a*)

begin (*main*)
printtext('test rev o.l');
error(0);
testout('main #');
gr.a:=1;   gr.b:=2;   gr.c:=3;   gr.d:=4; 
gr.e:=5;   gr.f:=6;
for i:=1 to 3 do begin
a1(i):=i;
a2(i):=4+i;
with a3(i) do begin a:=8+i; d:=12+i; e:=16+i; f:=20+i end;
end;
a1(4):=4;  a2(4):=8;
with a3(4) do 
begin a:=12;  d:=16;  e:=20;  f:=24 end;

pa;

if gr1.a <> 41 then error(19);
if gr1.b <> 42 then error(20);
if gr1.c <> 43 then error(21);
if gr1.d <> 44 then error(22);
if gr1.e <> 45 then error(23);
if gr1.f <> 46 then error(24);
sum:=0;
with gr1 do sum:=a+b+c+d+e+f;
writenl;  printtext('gr1 sum');  printnumber(sum,1);
 
sum:=0;
for i:=1 to 4 do
sum:=sum + a1(i) + a2(i) + a3(i).a + a3(i).d + a3(i).e + a3(i).f;
writenl;
printtext('main sum #'); printnumber(sum,10);
writenl;
printtext('test end.#');











end.







%



\f



(******************************
*   ep test 4                 *
*   test int/bool operators   *
******************************)

process progenitor(var s1,s2,s3 : semaphore);

type rec = record a,b,c:integer end;

var a,b,c,d,b_no: integer;
    t,f :  boolean;
    g,h : rec;

procedure ta(x,y:integer);
begin
   b_no:=b_no+1;
   if x<>y then begin
     writenl;  printtext('error a #'); printnumber(b_no,1);
     printnumber(x,7);  printnumber(y,7);
   end;
end;

procedure teststart(a:alfa);
begin
  writenl;  printtext(a);
end;

procedure tb(x,y:boolean);
var er : boolean;
begin
  b_no:=b_no+1;
  if x then begin
     if y then er:=false else er:=true;
  end else
  if y then er:=true else er:=false;
if er then begin
  writenl;  printtext('error b #');
  printnumber(b_no,2);
  if x then printtext('true #') else printtext('false #');
  if y then printtext('true #') else printtext('false #');
end;
end;


begin
printtext('test int/boo');
printtext('l operators');
b_no:=0;

teststart('proc ta');    ta(1,2);  ta(1,1);
teststart('proc tb');
tb(true,true);    tb(true,false);
tb(false,true);   tb(false,false);
b_no:=0;


teststart('test =');
a:=5;  b:=6;  c:=-5;  d:=-6;
tb( a=b, false);
tb( a=a, true);

teststart('test <>');
tb( a<>b, true);
tb( a<>a, false);

teststart('test >');
tb( d>a, false);
tb( a>d, true);
tb( b>a, true);
tb( d>c, false);

teststart('test <');
tb( d<a, true);
tb( a<d, false);
tb( b<a, false);
tb( d<c, true);

teststart('test <>');
tb( d<=a, true);
tb( a<=d, false);
tb( b<=a, false);
tb( d<=c, true);
tb( a<=5, true);
tb( d<=-6, true);

teststart('test >=');
tb( d>=a, false);
tb( a>=d, true);
tb( b>=a, true);
tb( d>=c, false);
tb( a>=5, true);
tb( d>=-6, true);

teststart('test s =');
g:=rec(1,2,3);  h:=rec(3,4,5);
tb( g=g, true);
tb( g=h, false);

teststart('test not');
t:=true;  f:=false;
tb( not t, false);
tb( not f, true);

teststart('test or');
tb( t or t, true);
tb( t or f, true);
tb( f or t, true);
tb( f or f, false);

teststart('test and');
tb( t and t, true);
tb( t and f, false);
tb( f and t, false);
tb( f and f, false);

b_no:=0;

writenl;  printtext('test succ/pr');  printtext('ed/abs');
a:=10;  b:=-10;
ta( succ(a), 11);
ta( pred(a), 9);
ta( abs(a), 10);
ta( abs(b), 10);

waitd(255);

teststart('test +');
a:=-5;  b:=5;  c:=8;  d:=-8;
ta( a+b, 0);
ta( a+c, 3);
ta( b+d, -3);
ta( a+d, -13);

teststart('test -');
a:=5;
ta( a-b, 0);
ta( c-a, 3);
ta( b-c, -3);
ta( b-d, 13);

teststart('test div');
a:=0;  b:=28;
ta( a div b, 0);
ta( b div c, 3);
ta( b div d, -3);
a:=28;
ta( a div c, 3);
ta( a div d, -3);

teststart('test mod');
a:=0;
ta( a mod b, 0);
a:=24;  b:=8;
ta( a mod b, 0);
a:=-24;
ta( a mod b, 0);
a:=28;  b:=-28;
ta( a mod c, 4);
ta( b mod c, 4);
ta( a mod d, 4);
ta( b mod d, 4);

teststart('test *');
a:=0;  b:=3;  c:=4;  d:=-4;
ta( a*b, 0);
ta( b*a, 0);
ta( b*0, 0);
a:=-3;
ta( a*c, -12);
ta( b*d, -12);
ta( a*d, 12);

teststart('test neg');
a:=-5;  b:=5;
ta( -a,  5);
ta( -b, -5);

writenl;  printtext('test end.');

end.


%


\f




(********************
*   ep test 5       *
*   test push/pop   *
********************)

process progenitor(var s1,s2,s3 : semaphore);

const n = 5;

var i : integer;
   b : boolean;
    r, stack, stc : reference;
    ans, sem : semaphore;
    p_one : pool n of integer;
    p_two : pool n;

procedure error(e : integer);
var a : array (1..1) of integer;
begin
  writenl;  printtext('error no #');
  printnumber(e,1);
  i:=a(3);  (* exception *)
end;

begin
writenl;  printtext('test push#');  printtext('/pop #');

for i:=1 to n do begin
  if not openpool(p_one) then error(1);
  alloc(r, p_one, ans);
  lock r as w:integer do w:=i;
  push(r, stc);
  if not openpool(p_two) then error(2);
  alloc(r, p_two, ans);
  push(r, stc);
end;

if openpool(p_one) or openpool(p_two) then error(3);

stc :=: stack;

lock stack as w:integer do
if w<>n then error(4);

i:=n;
while not nil(stack) do begin
  b:=empty(stack);
  pop(r, stack);
  if ownertest(p_one, r) then begin
    lock r as w:integer do
    if w <> i then error(5);
    if (i=1) and not b then error(6);
  i:=i-1;
  end;
  release(r);
end;

for i:=1 to n do begin
  if not openpool(p_one) then error(7);
  alloc(r, p_one, sem);
  return(r);
  if passive(sem) then error(8);
end;

if not open(sem) then error(9);

while open(sem) do begin
  wait(r,sem);
  release(r);
end;

if not passive(sem) then error(10);

writenl;   printtext('test end.');

end.


%




\f





(**********************
*   ep test 6         *
*   test create ...   *
**********************)

process progenitor(var s1,s2,s3 : semaphore);

var  sender,ty,n : integer;
     r : reference;
     fin1,fin2 : boolean;
     sem1, sem2, test : semaphore;
     sh1, sh2, sh3 : shadow;


process tick; external;

process one(var sem1, sem2, test_sem : semaphore);

const n = 6;

var  i,p: integer;
     r, test : reference;
     a_sem, test_answer : semaphore;
    po : pool n;
     t_p : pool 1 of alfa;

procedure test_out(a:alfa);
begin
  lock test as t:alfa do t:=a;
  signal(test, test_sem);
  wait(test, test_answer);
end;

begin

alloc(test, t_p, test_answer);
test^.u1:=1;  (*sender*)
test^.u2:=1;  (*test*)
test_out('started');

for i:=1 to n do begin
  alloc(r, po, a_sem);
  signal(r,sem1);
  test_out('send');
  waitd(49);
end;

alloc(r, po, a_sem);
release(r);
test_out('ready to rec');
waits(r,sem2);
release(r);
test_out('sensesem');
p:=n-2;
while p>0 do begin
  repeat
    sensesem(r, a_sem);
    if nil(r) then waitd(5);
  until not nil(r);
  test_out('received');
  p:=p-1;
  release(r);
end;
test_out('finis');
test^.u2:=2;  (*finis*)
signal(test, test_sem);
wait(test, test_answer);
end;  (* process one *)




process two(var sem1, sem2, test_sem : semaphore);

var  c: activation;
     rest : byte;
    r, test : reference;
     w_sem, test_answer : semaphore;
     p : pool 1 of alfa;

procedure test_out(a:alfa);
begin
  lock test as t:alfa do t:=a;
  signal(test, test_sem);
  wait(test, test_answer);
end;

begin
alloc(test, p, test_answer);
test^.u1:=2;  (*sender*)
test^.u2:=1;  (*text*)
test_out('started');

repeat

c:=waitsd(r, sem1, 200);
if c=a_semaphore then begin
  rest:=remdelay;
  test_out('received#');  printnumber(200-rest,4);
  signal(r, w_sem);
end;

until c=a_delay;

test_out('time out');
wait(r, w_sem);
release(r);
waitd(50);
if locked(sem2) then test_out('sem 2 locked')
else test_out('sem2 error');
wait(r,w_sem);
signal(r,sem2);
while open(w_sem) do begin
  waits(r, w_sem);
  return(r);
  test_out('send');
  waitd(10);
end;
test_out('finis');
test^.u2:=2;  (*finis*)
signal(test, test_sem);
wait(test, test_answer);
end;  (* process two*)


begin

writenl;  printtext('test routines');  writenl;

n:=create( one(sem1, sem2, test),  sh1,  500);
start(sh1, 100);

n:=create( two(sem1, sem2, test),  sh2,  500);
start(sh2, 100);

link('tickproc', tick);
n:=create(tick, sh3, 300);
start(sh3,250);

fin1:=false;    fin2:=false;
n:=-1;

repeat
  wait(r,test);
  sender:=r^.u1;   ty:=r^.u2;
  if ty = 1 then begin
    n:=n+1;
    if (n mod 4) = 0 then writenl;
    if sender=1 then printtext(' $a #')
    else printtext(' $b #');
    lock r as t:alfa do printtext(t);
  end
  else
  begin
    if sender = 1 then begin
      fin1:=true;
    end
    else
    begin
      fin2:=true;
    end;
  end;
  return(r);
until fin1 and fin2;

waitd(255);  waitd(255);  waitd(255);

writenl;  printtext('test end.');

end.



%
\f




(*****************
*   ep test 7    *
*   test set     *
*****************)

process progenitor(var s1,s2,s3 : semaphore);

const

c1 = (. 0..5, 12..17, 24..29, 36..41, 48..53, 60..63 .);

c2 = (. 3..8, 15..20, 27..32, 39..44, 51..56, 63 .);

c3 = (. 0..5, 12..17, 24..29, 36..41 .);

c4 = (. 3..8, 15..20, 27..32, 39..44 .);

c5 = (. 15,16 .);

c6 = (. 16 .);

c7 = (. 31,32 .);

c8 = (. 31 .);

var  a : set of 0..63;
     b : set of 0..47;
     c : set of 0..127;
     b_no , i, j :integer;

procedure os(a : integer;  s: set of 0..63; b,n : integer);
begin
  writenl;  printnumber(n,2);
  printtext('.  #');
  for i:=0 to 63 do
  if i in s then writechar('1') else writechar('0');
  if (a<>1) or (b<>2) then printtext('  error#');
end;

procedure tb(x,y : boolean);
begin
  b_no:=b_no+1;
  if x<>y then begin
    writenl;  printtext('error #');
    printnumber(b_no,2);
    if x then printtext('  true #') else printtext(' false #');
    if y then printtext('  true #') else printtext(' false #');
  end;
end;

begin
printtext('test set');  writenl;
b_no:=0;
tb(true, true);  tb(true,false);  tb(false,true);  tb(false,false);
os(0, c1, 2, 91);  os(1, c2, 3, 92);
os(1, c3, 2, 93);
b_no:=0;

writenl;  printtext('test +');
os(1, c1+c2, 2,1);
os(1, c3+c2, 2,2);
os(1, c1+c4, 2,3);

writenl;  printtext('test *');
os(1, c1*c2, 2,4);
os(1, c3*c2, 2,5);
os(1, c1*c4, 2,6);

writenl;  printtext('test -');
os(1, c1-c2, 2, 7);
os(1, c3-c2, 2, 8);
os(1, c1-c4, 2, 9);

writenl; printtext('test <=');
tb( c6<=c5, true);
tb( c5<=c6, false);
tb( c5<=c5, true);
tb( c7<=c8, false);
tb( c8<=c7, true);

writenl; printtext('test >=');
tb( c6>=c5, false);
tb( c5>=c6, true);
tb( c5>=c5, true);
tb( c7>=c8, true);
tb( c8>=c7, false);

writenl; printtext('test =');
tb( c7=c7, true);
tb( c7=c8, false);
tb( c8=c7, false);

writenl; printtext('test <>');
tb( c7<>c7, false);
tb( c7<>c8, true);
tb( c8<>c7, true);
 
writenl;  printtext('test in');
tb( 0 in c1, true);
tb( 100 in c1, false);

writenl;  printtext('test setst');
a:=c7;
os(1, a, 2, 10);
b:=c8;
os(1, b, 2, 11);
a:=c1;
os(1, a, 2, 12);
c:=c1;
os(1, c, 2, 13);

writenl;  printtext('test setcr');
i:=3;  j:=7;
a:=(. i, j, i+j..j*j, 60.);
os(1, a, 2, 14);

writenl;  printtext('test end.');

end.


%

\f




(******************
*   ep test 8     *
*   test array    *
******************)

process progenitor(var s1,s2,s3:semaphore);

type  tx = packed array (1..4) of 0..31;
      ty = array (1..4) of tx;

var

b : ty := ty( tx(1,0,1,0),  tx(0,1,1,0),  tx(0,0,0,1),  tx(1,1,0,1));

a : ty := ty( tx(1,2,3,4),  tx(5,6,7,8),
              tx(9,10,11,12),  tx(13,14,15,16));

c : ty := ty( 4 *** tx(0,0,0,0));

i,p,q,s : integer;

procedure out;
begin
writenl;
for p:=1 to 4 do begin
for q:=1 to 4 do printnumber( a(p,q),3);
printtext('    #');
for q:=1 to 4 do printnumber( b(p,q),3);
printtext('    #');
for q:=1 to 4 do printnumber( c(p,q),3);
writenl;
end;
end;

begin

writenl;  printtext('test array');  writenl;
out;
for p:=1 to 4 do
for q:=1 to 4 do begin
s:=0;
for i:=1 to 4 do s:=s+a(p,i)*b(i,q);
c(p,q):=s;
end;
out;
printtext('test end.');
end.


%
\f




(***********************
*    ep test 9         *
*    test init pool    *
***********************)

process progenitor(var s1,s2,s3 : semaphore);

type

r1 = record a,b:integer; c:char end;
r2 = array (1..10) of integer;

t1 = pool 1 of alfa;

t2 = array (0..2) of pool 3 of r1;

t3 = array (1..3,1..4) of pool 4 of byte;

ty = record
       a : pool 5;
       b : array (3..5) of pool 6 of integer;
    end;

t4 = array (-1..2) of ty;

t5 = record
       a : pool 7 of r2;
       b : t2;
       c : ty;
     end;

var  p1 : t1;
     p2 : t2;
     p3 : t3;
     p4 : t4;
     p5 : t5;
     no : integer :=0;
     i,j : integer;
     r : reference;
     sem, st : semaphore;

procedure ck(n,s:integer; var pul : pool 1);
var i : integer;  ok : boolean := true;
    p : integer := 1;
begin
writenl;  printtext('pool #');
no:=no+1; printnumber(no,3);
printtext('   #');  printnumber(n,3);  printnumber(s,5);
if (no mod 20) = 0 then waitd(200);

alloc(r,pul,sem);
if r^.size <> s then ok:=false;
signal(r,st);
while openpool(pul) do begin
  alloc(r, pul, sem);  p:=p+1;
  signal(r,st);
end;
if p<>n then ok:=false;
for i:=1 to p do begin
  wait(r,st);
  release(r);
end;
if ok then printtext(' ok  ') else printtext(' not ok ');
end;


begin
printtext('test pool');
ck(2,12,p1);
ck(1,10,p1);
ck(1,12,p1);

for i:=0 to 2 do ck(3,5,p2(i));

for i:=1 to 3 do
for j:=1 to 4 do ck(4,1,p3(i,j));

for i:=-1 to 2 do begin
  ck(5,0,p4(i).a);
  for j:=3 to 5 do ck(6,2,p4(i).b(j));
end;

ck(7,20,p5.a);
for i:=0 to 2 do ck(3,5,p5.b(i));
ck(5,0,p5.c.a);
for i:=3 to 5 do ck(6,2,p5.c.b(i));

end.


%

\f




(*****************************
*     ep test 10             *
*    test exception/trace    *
*****************************)

process progenitor(var s1,s2,s3 : semaphore);

procedure pip(n : integer);
begin
  trace(51);
  waitd(255);
  if n=0 then exception(68)
  else
  pip(n-1);
end;
begin
  trace(50);
  pip(10);
end.


%


▶EOF◀