ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
color_border.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
46/* <usermanual>
47@keyword COLOR BORDER
48
49@english
50
51The ''COLOR BORDER'' command allows you to redefine the color used by the graphics chipset
52for the border, where this is possible. "Redefinition" means assigning one of the possible
53colors to specific registers called "palette registers".
54
55On some systems this is not possible at all, due to limitations of the chipset or
56the absence of registers or even of the border: for this reason, in such cases the
57command is ignored. On other systems this corresponds to the modification of specific
58registers, to which one of the available colors is assigned. On others it is possible
59to assign certain shades, which therefore go beyond the number of available colors.
60
61Where it is possible to assign a shade, the value can range from ''0'' to the constant
62''SHADES''. However, it may be more practical to use the ''RGB'' function, which
63allows you to calculate the shade starting from the color components (red, green and blue).
64
65
66@italian
67
68Il comando ''COLOR BORDER'' consente di ridefinire il colore utilizzato dal chipset grafico
69per il bordo, laddove ciò sia possibile. "Ridefinire" significa assegnare uno dei colori
70possibili a registri specifici chiamati "registri palette".
71
72Su alcuni sistemi questo non è affatto possibile, a causa di limitazioni del chipset o
73dell'assenza di registri o addirittura del bordo: per questo motivo, in tali casi il
74comando viene ignorato. Su altri sistemi ciò corrisponde alla modifica di registri
75specifici, a cui viene assegnato uno dei colori disponibili. Su altri è possibile assegnare
76determinate tonalità, che quindi vanno oltre il numero di colori disponibili.
77
78Dove è possibile assegnare una tonalità, il valore può variare da ''0'' alla costante
79''SHADES''. Tuttavia, può essere più pratico utilizzare la funzione ''RGB'', che consente
80di calcolare la tonalità a partire dalle componenti del colore (rosso, verde e blu).
81
82@syntax COLOR BORDER value
83
84@example COLOR BORDER #$1
85
86@usedInExample control_uncond_jumps_01.bas
87@usedInExample control_uncond_jumps_02.bas
88
89@seeAlso COLOR
90@seeAlso SHADES (constant)
91@seeAlso RGB
92@alias BORDER
93@target c128
94</usermanual> */
95void color_border( Environment * _environment, int _color ) {
96
97 vic2_border_color( _environment, _color );
98
99}
100
110void color_border_var( Environment * _environment, char * _color ) {
111
112 // Safety check -- expression must exists (it should be always true)
113 Variable * color = variable_retrieve( _environment, _color );
114
115 vic2_border_color_vars( _environment, color->realName );
116
117}
Variable * variable_retrieve(Environment *_environment, char *_name)
void color(Environment *_environment, int _index, int _shade)
Emit ASM code for instruction COLOR [int], [int].
Definition color.c:59
void color_border_var(Environment *_environment, char *_color)
Emit ASM code for instruction COLOR BORDER [expression].
void color_border(Environment *_environment, int _color)
Emit ASM code for instruction COLOR BORDER [int]x.
struct _Variable Variable
Structure of a single variable.
struct _Environment Environment
Structure of compilation environment.
void vic2_border_color(Environment *_environment, int _border_color)
Definition vic2.c:637
void vic2_border_color_vars(Environment *_environment, char *_border_color)
VIC-II: emit code to change border color
Definition vic2.c:653