ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
box.c
Go to the documentation of this file.
1/*****************************************************************************
2 * ugBASIC - an isomorphic BASIC language compiler for retrocomputers *
3 *****************************************************************************
4 * Copyright 2021-2026 Marco Spedaletti (asimov@mclink.it)
5 *
6 * Licensed under the Apache License, Version 2.0 (the "License");
7 * you may not use this file except in compliance with the License.
8 * You may obtain a copy of the License at
9 *
10 * http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 *----------------------------------------------------------------------------
18 * Concesso in licenza secondo i termini della Licenza Apache, versione 2.0
19 * (la "Licenza"); è proibito usare questo file se non in conformità alla
20 * Licenza. Una copia della Licenza è disponibile all'indirizzo:
21 *
22 * http://www.apache.org/licenses/LICENSE-2.0
23 *
24 * Se non richiesto dalla legislazione vigente o concordato per iscritto,
25 * il software distribuito nei termini della Licenza è distribuito
26 * "COSÌ COM'È", SENZA GARANZIE O CONDIZIONI DI ALCUN TIPO, esplicite o
27 * implicite. Consultare la Licenza per il testo specifico che regola le
28 * autorizzazioni e le limitazioni previste dalla medesima.
29 ****************************************************************************/
30
31/****************************************************************************
32 * INCLUDE SECTION
33 ****************************************************************************/
34
35#include "../../ugbc.h"
36
37/****************************************************************************
38 * CODE SECTION
39 ****************************************************************************/
40
51/* <usermanual>
52@keyword BOX
53
54@english
55This instruction draws a rectangle on the screen, starting from the coordinates ''(x1, y1)''
56to arrive at the coordinates ''(x2, y2)'', using the color ''c''. The start
57coordinates can be omitted: in this case, ugBASIC will draw starting from
58the last drawn position. If the color is
59omitted, the last color selected with the ''INK'' or ''PEN'' command will be used.
60Finally, the default line style is full but a 16 bit bitmask can be set with the ''SET LINE''
61command.
62
63@italian
64Questa istruzione disegna un rettangolo sullo schermo, a partire dalle coordinate ''(x1,y1)''
65per arrivare alle coordinate ''(x2,y2)'', utilizzando il colore ''c''. Le coordinate di inizio
66possono essere omesse: in tal caso, ugBASIC disegnerà
67a partire dall'ultima posizione disegnata.
68Se il colore viene omesso sarà utilizzato l'ultimo colore selezionato con il comando ''INK''
69oppure ''PEN'. Infine, lo stile della linea di default è pieno ma può essere impostata una
70bitmask di 16 bit con il comando ''SET LINE''.
71
72@syntax BOX [x1], [y1] TO x2, y2[, c ]
73@syntax BOX TO x2, y2[, c ]
74
75@example BOX 10,10 TO 100,100,WHITE
76@example BOX TO 100,100
77@example BOX ,10 TO ,100
78@usedInExample graphics_lines_02.bas
79
80@alias REC
81
82@target all
83</usermanual> */
84void box( Environment * _environment, char * _x1, char * _y1, char * _x2, char * _y2, char * _c, int _preserve_color ) {
85
86 draw( _environment, _x1, _y1, _x2, _y1, _c, _preserve_color );
87 draw( _environment, _x1, _y1, _x1, _y2, _c, _preserve_color );
88 draw( _environment, _x1, _y2, _x2, _y2, _c, _preserve_color );
89 draw( _environment, _x2, _y1, _x2, _y2, _c, _preserve_color );
90
91}
void box(Environment *_environment, char *_x1, char *_y1, char *_x2, char *_y2, char *_c, int _preserve_color)
Emit ASM code to implement BOX command.
Definition box.c:84
void draw(Environment *_environment, char *_x0, char *_y0, char *_x1, char *_y1, char *_c, int _preserve_color)
Emit ASM code to implement DRAW command.
Definition draw.c:153
struct _Environment Environment
Structure of compilation environment.