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