1 /* Loglan82 Compiler&Interpreter
\r
2 Copyright (C) 1993 Institute of Informatics, University of Warsaw
\r
3 Copyright (C) 1993, 1994 LITA, Pau
\r
5 This program is free software; you can redistribute it and/or modify
\r
6 it under the terms of the GNU General Public License as published by
\r
7 the Free Software Foundation; either version 2 of the License, or
\r
8 (at your option) any later version.
\r
10 This program is distributed in the hope that it will be useful,
\r
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
13 GNU General Public License for more details.
\r
15 You should have received a copy of the GNU General Public License
\r
16 along with this program; if not, write to the Free Software
\r
17 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
\r
19 contacts: Andrzej.Salwicki@univ-pau.fr
\r
22 LITA Departement d'Informatique
\r
24 Avenue de l'Universite
\r
26 tel. ++33 59923154 fax. ++33 59841696
\r
28 =======================================================================
\r
32 gron((int *) ¶m[ 0 ].xword);
\r
46 point((int *) ¶m[ 0 ].xword, (int *) ¶m[ 1 ].xword);
\r
50 move((int *) ¶m[ 0 ].xword, (int *) ¶m[ 1 ].xword);
\r
54 draw((int *) ¶m[ 0 ].xword, (int *) ¶m[ 1 ].xword);
\r
58 hfill((int *) ¶m[ 0 ].xword);
\r
62 vfill((int *) ¶m[ 0 ].xword);
\r
66 color((int *) ¶m[ 0 ].xword);
\r
70 style((int *) ¶m[ 0 ].xword);
\r
74 patern((int *) ¶m[ 0 ].xword, (int *) ¶m[ 1 ].xword,
\r
75 (int *) ¶m[ 2 ].xword, (int *) ¶m[ 3 ].xword);
\r
79 intens((int *) ¶m[ 0 ].xword);
\r
83 pallet((int *) ¶m[ 0 ].xword);
\r
87 border((int *) ¶m[ 0 ].xword);
\r
91 if (member(¶m[ 0 ].xvirt, &am))
\r
92 if (M[ am ] >= 0x8000L/sizeof(word))
\r
93 video(normalize((char *) &M[ am+3 ]));
\r
94 else errsignal(RTEILLAB);
\r
95 else errsignal(RTEREFTN);
\r
99 i = (int) param[ 1 ].xword;
\r
100 if (i == 0) graphmode = FALSE;
\r
102 if (i == 1) graphmode = TRUE;
\r
103 hpage((int *) ¶m[ 0 ].xword, &i,
\r
104 (int *) ¶m[ 2 ].xword);
\r
108 param[ 0 ].xword = nocard(NULL);
\r
120 param[ 0 ].xword = inxpos(NULL);
\r
124 param[ 0 ].xword = inypos(NULL);
\r
128 param[ 2 ].xword = inpix((int *) ¶m[ 0 ].xword,
\r
129 (int *) ¶m[ 1 ].xword);
\r
133 t1 = abs(param[ 0 ].xword-inxpos(NULL))+1; /* cols */
\r
134 t2 = abs(param[ 1 ].xword-inypos(NULL))+1; /* rows */
\r
135 t1 = (4+t1*t2+sizeof(word)-1)/sizeof(word); /* no. of words, pixel=byte */
\r
136 newarry((word) 1, t1, (word)AINT, ¶m[ 2 ].xvirt, &am);
\r
137 getmap((int *) ¶m[ 0 ].xword, (int *) ¶m[ 1 ].xword,
\r
138 normalize((char *) &M[ am+3 ]));
\r
142 if (member(¶m[ 0 ].xvirt, &am))
\r
143 putmap(normalize((char *) &M[ am+3 ]));
\r
144 else errsignal(RTEREFTN);
\r
148 if (member(¶m[ 0 ].xvirt, &am))
\r
149 ormap(normalize((char *) &M[ am+3 ]));
\r
150 else errsignal(RTEREFTN);
\r
154 if (member(¶m[ 0 ].xvirt, &am))
\r
155 xormap(normalize((char *) &M[ am+3 ]));
\r
156 else errsignal(RTEREFTN);
\r
160 track((int *) ¶m[ 0 ].xword, (int *) ¶m[ 1 ].xword);
\r
164 param[ 0 ].xword = inkey(NULL);
\r
168 hascii((int *) ¶m[ 0 ].xword);
\r
172 hfont((int *) ¶m[ 0 ].xword, (int *) ¶m[ 1 ].xword);
\r
176 param[ 0 ].xword = 0;
\r
177 param[ 1 ].xword = 0;
\r
178 hfont8((int *) ¶m[ 0 ].xword, (int *) ¶m[ 1 ].xword);
\r
182 t1 = strings+param[ 0 ].xword;
\r
183 outhli((int *) &M[ t1 ], (char *) &M[ t1+1 ]);
\r
187 r1 = param[ 3 ].xreal;
\r
188 r2 = param[ 4 ].xreal;
\r
189 cirb((int *) ¶m[ 0 ].xword, (int *) ¶m[ 1 ].xword,
\r
190 (int *) ¶m[ 2 ].xword, &r1, &r2,
\r
191 (int *) ¶m[ 5 ].xword, (int *) ¶m[ 6 ].xword,
\r
192 (int *) ¶m[ 7 ].xword, (int *) ¶m[ 8 ].xword);
\r
198 ax = mouse(0, ¶m[ 0 ].xword, &cx, &dx);
\r
199 param[ 1 ].xbool = lbool(ax);
\r
203 mouse(1, &bx, &cx, &dx);
\r
207 mouse(2, &bx, &cx, &dx);
\r
211 mouse(3, &bx, ¶m[ 0 ].xword, ¶m[ 1 ].xword);
\r
212 param[ 2 ].xbool = lbool(bx & 0x01);
\r
213 param[ 3 ].xbool = lbool(bx & 0x02);
\r
214 param[ 4 ].xbool = lbool(bx & 0x04);
\r
218 mouse(4, &bx, ¶m[ 0 ].xword, ¶m[ 1 ].xword);
\r
223 i = ( nrproc == GETPRESS ? 5 : 6 );
\r
224 bx = param[ 0 ].xword;
\r
225 ax = mouse(i, &bx, ¶m[ 1 ].xword, ¶m[ 2 ].xword);
\r
226 param[ 4 ].xbool = lbool(ax & 0x01);
\r
227 param[ 5 ].xbool = lbool(ax & 0x02);
\r
228 param[ 6 ].xbool = lbool(ax & 0x04);
\r
229 param[ 3 ].xword = bx;
\r
233 mouse(7, &bx, ¶m[ 0 ].xword, ¶m[ 1 ].xword);
\r
234 mouse(8, &bx, ¶m[ 2 ].xword, ¶m[ 3 ].xword);
\r
238 mouse(10, ¶m[ 0 ].xword, ¶m[ 1 ].xword,
\r
239 ¶m[ 2 ].xword);
\r
243 mouse(11, &bx, ¶m[ 0 ].xword, ¶m[ 1 ].xword);
\r
247 mouse(15, &bx, ¶m[ 0 ].xword, ¶m[ 1 ].xword);
\r
252 r.x.cx = param[ 0 ].xword;
\r
253 r.x.dx = param[ 2 ].xword;
\r
254 r.x.si = param[ 1 ].xword;
\r
255 r.x.di = param[ 3 ].xword;
\r
256 int86(0x33, &r, &r);
\r
259 case SETTHRESHOLD :
\r
260 mouse(19, &bx, &cx, ¶m[ 0 ].xword);
\r