ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
bitmap_at.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
41#if defined(__coco__) || defined(__d32__) || defined(__d64__)
42
59/* <usermanual>
60@keyword BITMAP AT
61
62@english
63
64The ''BITMAP AT'' instruction allows you to change the starting address of the bitmap,
65in the graphics modes of the video chipset. Since not all chipsets can address
66any address, it is possible that the input value is normalized. This normalized
67address will then be used by ugBASIC for subsequent graphics operations.
68
69@italian
70
71L'istruzione BITMAP AT permette di modificare l'indirizzo di partenza della bitmap,
72nelle modalità grafiche del chipset video. Poiché non tutti i chipset possono
73indirizzare qualsiasi indirizzo, è possibile che il valore in ingresso venga
74normalizzato. Tale indirizzo normalizzato sarà quindi utilizzato da ugBASIC per le
75successive operazioni grafiche.
76
77@syntax BITMAP AT address
78
79@example BITMAP AT $8000
80
81@target coco
82@target d32
83@target d64
84</usermanual> */
85void bitmap_at( Environment * _environment, int _address ) {
86
87 char addressString[MAX_TEMPORARY_STORAGE]; sprintf(addressString, "#$%4.4x", _address );
88
89 c6847_bitmap_at( _environment, addressString );
90
91}
92
109void bitmap_at_var( Environment * _environment, char * _address ) {
110
111 Variable * address = variable_retrieve_or_define( _environment, _address, VT_ADDRESS, 0x0c00 );
112
113 c6847_bitmap_at( _environment, address->realName );
114
115}
116
117#endif
void c6847_bitmap_at(Environment *_environment, char *_address)
Definition 6847.c:780
Variable * variable_retrieve_or_define(Environment *_environment, char *_name, VariableType _type, int _value)
void bitmap_at(Environment *_environment, int _address)
Emit ASM implementation for BITMAP AT [int] instruction.
Definition bitmap_at.c:85
void bitmap_at_var(Environment *_environment, char *_address)
Emit ASM implementation for BITMAP AT [expression] instruction.
Definition bitmap_at.c:109
char * realName
Definition ugbc.h:982
#define MAX_TEMPORARY_STORAGE
Definition ugbc.h:563
struct _Variable Variable
Structure of a single variable.
struct _Environment Environment
Structure of compilation environment.
@ VT_ADDRESS
Definition ugbc.h:465