1 case GRON: switch (param[0].xword)
\r
3 case 0: GrSetMode(GR_width_height_graphics,
\r
8 case 1: GrSetMode(GR_width_height_graphics,
\r
13 case 2: GrSetMode(GR_width_height_graphics,
\r
19 case 3: GrSetMode(GR_width_height_graphics,
\r
24 case 4: GrSetMode(GR_width_height_graphics,
\r
29 case 5: GrSetMode(GR_width_height_graphics,
\r
34 case 6: GrSetMode(GR_width_height_graphics,
\r
39 case 7: GrSetMode(GR_width_height_graphics,
\r
44 case 8: GrSetMode(GR_width_height_graphics,
\r
49 case 9: GrSetMode(GR_width_height_graphics,
\r
54 default: GrSetMode(GR_width_height_graphics,
\r
62 case POINT: CurX=param[0].xword;
\r
63 CurY=param[1].xword;
\r
64 GrPlot(CurX,CurY,Couleur);
\r
67 case INPIX: CurX=param[0].xword;
\r
68 CurY=param[1].xword;
\r
69 param[2].xword=GrPixel(CurX,CurY);
\r
72 case MOVE: CurX=param[0].xword;
\r
73 CurY=param[1].xword;
\r
76 case COLOR: Couleur=param[0].xword;
\r
79 case PALETT: Coul[Pal++]=param[0].xword;
\r
82 GrSetColor(Coul[0],Coul[1],Coul[2],Coul[3]);
\r
87 case GROFF: if(MOUSE_PRESENT) MouseUnInit();
\r
88 GrSetMode(GR_80_25_text);
\r
91 case DRAW: GrLine(CurX,CurY,param[0].xword,param[1].xword,Couleur);
\r
92 CurX=param[0].xword;
\r
93 CurY=param[1].xword;
\r
96 case HFILL: GrHLine(CurX,param[0].xword,CurY,Couleur);
\r
97 CurX=param[0].xword;
\r
100 case VFILL: GrVLine(CurX,CurY,param[0].xword,Couleur);
\r
101 CurY=param[0].xword;
\r
104 case CLS: GrClearScreen(Fond);
\r
107 case BORDER: Fond=param[0].xword;
\r
110 case INXPOS: param[0].xword=CurX;
\r
113 case INYPOS: param[0].xword=CurY;
\r
118 char *Texte= (char *)(M + strings + param[ 2 ].xword + 1);
\r
119 if(param[0].xint==-1) ax=CurX;
\r
120 else ax=param[0].xint;
\r
121 if(param[1].xint==-1) bx=CurY;
\r
122 else bx=param[1].xint;
\r
123 if(param[3].xint==-1) cx=Couleur;
\r
124 else cx=param[3].xint;
\r
125 if(param[4].xint==-1) dx=Fond;
\r
126 else dx=param[4].xint;
\r
127 GrTextXY(ax,bx,Texte,cx,dx);
\r
128 if(param[0].xint==-1 && param[1].xint==-1)
\r
130 CurX+=8*strlen(Texte);
\r
142 char *Texte=(char *)¶m[ 0 ].xword;
\r
143 GrTextXY(CurX,CurY,Texte,Couleur,Fond);
\r
159 param[0].xword=getkey();
\r
167 GrContext *Destination;
\r
169 w=abs(param[0].xword-CurX)+1;
\r
170 h=abs(param[1].xword-CurY)+1;
\r
171 newarry((word)1,3,(word)AINT,¶m[2].xvirt,&am);
\r
172 Destination=GrCreateContext(w,h,
\r
174 M[am+3]=(int)Destination;
\r
177 GrBitBlt(Destination,0,0,
\r
178 NULL,CurX,CurY,param[0].xword,param[1].xword,
\r
183 case PUTMAP : if (member(¶m[0].xvirt,&am))
\r
184 GrBitBlt(NULL,CurX,CurY,
\r
185 (GrContext *)M[am+3],0,0,M[am+4],M[am+5],GrWRITE);
\r
187 errsignal(RTEREFTN);
\r
190 case ORMAP : if (member(¶m[0].xvirt,&am))
\r
191 GrBitBlt(NULL,CurX,CurY,
\r
192 (GrContext *)M[am+3],0,0,M[am+4],M[am+5],GrOR);
\r
194 errsignal(RTEREFTN);
\r
197 case XORMAP : if (member(¶m[0].xvirt,&am))
\r
198 GrBitBlt(NULL,CurX,CurY,
\r
199 (GrContext *)M[am+3],0,0,M[am+4],M[am+5],GrXOR);
\r
201 errsignal(RTEREFTN);
\r
209 if(member(¶m[1].xvirt,&am1) && member(¶m[2].xvirt,&am2))
\r
211 if(param[0].xint>30) param[0].xint=30;
\r
212 for(i=0;i<param[0].xint;i++)
\r
214 pt1[i][0]=M[am1+3+i];
\r
215 pt1[i][1]=M[am2+3+i];
\r
217 if(param[4].xint!=0)
\r
218 GrFilledPolygon(param[0].xint,pt1,param[3].xint);
\r
220 GrPolygon(param[0].xint,pt1,param[3].xint);
\r
223 errsignal(RTEREFTN);
\r
228 if(param[5].xint!=0)
\r
229 GrFilledBox(param[0].xint,param[1].xint,param[2].xint,param[3].xint,param[4].xint);
\r
231 GrBox(param[0].xint,param[1].xint,param[2].xint,param[3].xint,param[4].xint);
\r
233 case TRACK : afficheinteger(param[0].xint,param[1].xint,param[2].xint,param[3].xint,
\r
236 case HFONT : param[9].xint=gscanfnum(param[0].xint,param[1].xint,param[2].xint*8,
\r
237 param[3].xint,param[4].xint,param[5].xint,
\r
238 param[6].xint,param[7].xint,param[8].xint);
\r
242 char *Texte= (char *)(M + strings + param[ 4 ].xword + 1);
\r
244 ret=gschar(param[0].xint,param[1].xint,param[2].xint,¶m[3].xint,
\r
245 Texte,param[5].xint,param[6].xint,param[7].xint);
\r
247 newarry((word) 0, param[3].xint-2,(word) AINT,¶m[8].xvirt,&ax);
\r
255 ax=param[0].xint-param[2].xint; /* x */
\r
256 bx=param[1].xint-param[3].xint; /* y */
\r
257 cx=param[2].xint*2; /* rax */
\r
258 dx=param[3].xint*2; /* ray */
\r
259 if(param[7].xint!=0)
\r
260 GrFilledEllipseArc(ax,bx,cx,dx,param[4].xint,param[5].xint,
\r
263 GrEllipseArc(ax,bx,cx,dx,param[4].xint,param[5].xint,
\r
269 case INIT : mousenit(param[0].xint,param[1].xint);
\r
284 MouseWarp(param[0].xint,param[1].xint);
\r
290 ax=mouse(&v,&p,&h,&l,&r,&c);
\r
291 param[ 5 ].xint = c;
\r
292 param[ 4 ].xint = r;
\r
293 param[ 3 ].xint = l;
\r
294 param[ 2 ].xint = p;
\r
295 param[ 1 ].xint = v;
\r
296 param[ 0 ].xint = h;
\r
297 /* parametre en retour*/
\r
299 param[ 6 ].xbool = TRUE;
\r
301 param[ 6 ].xbool = FALSE;
\r
305 MouseSetLimits(param[0].xint,param[1].xint,param[2].xint,param[3].xint);
\r
312 MouseEventEnable(param[1].xint,param[0].xint);
\r
316 MouseSetSpeed(param[0].xint);
\r
319 case SETTHRESHOLD :
\r