Added upstream version.
[vlp.git] / examp / taktto1.log
1 program talk;
2
3 #include "classes/ansi.inc"
4
5
6 unit ekran : ANSI process(node:integer;rozm:rozmowca);
7
8    unit rejestruj : procedure(r:rozmowca);
9    begin
10         rozm := r;
11    end rejestruj;
12
13    unit odbior_zdalny : procedure(s:char);
14    begin
15       call GotoXy(hy, hisline);
16       call Bold;
17       writeln(s);
18       hy := hy+1;
19       if s=chr(13) then hisline := hisline + 1;hy:=1; fi;
20       if hy = 80 then hy := 1; hisline:=hisline+1 fi;
21       call Normal;
22       if hisline = 12 then 
23          hisline := 1; 
24          (* call Rect(1,1,11,80);  *)
25       fi;
26    end odbior_zdalny;
27
28    unit odbior_lokalny : procedure(s:char);
29    begin
30        call GotoXY(my, myline);
31        write(s);
32        my := my+1;
33        if s=chr(13) then myline := myline + 1;my:=1; fi;
34        if my = 80 then my := 1; myline := myline+1 fi;
35        if myline = 25 then
36           myline := 13;
37           (* call Rect(13,1,24,80); *)
38        fi;
39    end odbior_lokalny;
40
41    unit kasuj_lokalny : procedure;
42    begin
43       my := my - 1;
44       if my<0 then my := 0 fi;
45       call GotoXY(my, myline);
46       write(" ");
47    end kasuj_lokalny;
48
49    unit kasuj_zdalny : procedure;
50    begin
51        hy := hy - 1;
52        if hy<0 then hy := 0 fi;
53        call GotoXY(hy, hisline);
54        write(" ");
55    end kasuj_zdalny;
56
57
58    unit koniec : procedure;
59    begin
60       knc := true;
61    end koniec;
62
63    var knc:boolean,
64          myline,hisline,my,hy:integer,
65          s:char, name:string;
66     
67     
68 begin
69    knc := false;
70    myline := 13;
71    hisline := 1;
72    my := 1;
73    hy := 1;
74    call Clear;
75    call GotoXY(1, 12);
76    call Bold;
77    write("-------------------------ESC - koniec ----------------------------");
78    call Normal;
79    return;
80    accept rejestruj;
81     while not knc do
82      accept odbior_lokalny, odbior_zdalny, kasuj_lokalny, kasuj_zdalny, koniec;
83     od ;
84    call rozm.koniec;
85
86 end ekran;
87
88
89 (*---------------------------------*)    
90     
91 unit rozmowca : IIUWgraph process(node: integer;el,ez:ekran);    
92
93    var knc:boolean, s:char, i:integer;
94
95    unit koniec : procedure;
96    begin
97       knc := true;
98    end koniec;
99
100 begin
101     knc := false;
102     return;
103
104      enable koniec; 
105      while  not knc 
106      do
107        i := inkey;
108        if i<>0 then
109          s := chr(i);
110          if i=8 then
111                call el.kasuj_lokalny;
112                call ez.kasuj_zdalny;    
113          else
114                call el.odbior_lokalny(s); 
115                call ez.odbior_zdalny(s); 
116         fi;
117         if i = 27 then 
118            call ez.koniec;
119            call el.koniec;
120         fi; 
121        fi;  
122     od;
123 end rozmowca;
124
125
126 var p1,p2:rozmowca,
127     e1,e2:ekran;
128
129 begin
130     e1 := new ekran(0,none);
131     resume(e1);
132     e2 := new ekran(1,none);
133     resume(e2);
134     p1 := new rozmowca(0,e1,e2);
135     p2 := new rozmowca(1,e2,e1);
136     call e1.rejestruj(p1);
137     call e2.rejestruj(p2);
138     resume(p1);
139     resume(p2);
140 end\0\0