ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
bank_get_address.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#if defined(__c128__)
38
49/* <usermanual>
50@keyword BANK ADDRESS
51
52@english
53
54The ''BANK ADDRESS'' function allows you to know the memory address where the swap
55window with the expanded memory appears, for the given bank. In the case of
56expansion memories with DMA access, this area does not exist and therefore the
57function returns zero. Exactly the same value returned in case there are no memory expansions.
58
59@italian
60
61La funzione ''BANK ADDRESS'' consente di conoscere l'indirizzo di memoria dove
62appare la finestra di scambio con la memoria espansa, per il dato banco. Nel caso di memorie di
63espansione con accesso DMA, questa zona non esiste e quindi la funzione restituisce
64zero. Esattamente lo stesso valore restituito in caso che non vi siano espansioni
65di memoria.
66
67@syntax = BANK ADDRESS(id)
68
69@example x = BANK ADDRESS(1)
70
71@seeAlso BANK
72@seeAlso BANK COUNT (constant)
73@target all
74</usermanual> */
75Variable * bank_get_address( Environment * _environment, int _bank ) {
76
77 Variable * result = variable_temporary( _environment, VT_ADDRESS, "(bank address)" );
78
79 variable_store( _environment, result->name, 0xde00 );
80
81 return result;
82
83}
84
95Variable * bank_get_address_var( Environment * _environment, char * _bank ) {
96
97 Variable * result = variable_temporary( _environment, VT_ADDRESS, "(bank address)" );
98
99 variable_store( _environment, result->name, 0xde00 );
100
101 return result;
102
103}
104
105#endif
Variable * variable_temporary(Environment *_environment, VariableType _type, char *_meaning)
Define a temporary variable.
Variable * variable_store(Environment *_environment, char *_destination, unsigned int _value)
Store a direct value to a variable.
Variable * bank_get_address_var(Environment *_environment, char *_bank)
Emit ASM code for instruction = BANK ADDRESS( ).
Variable * bank_get_address(Environment *_environment, int _bank)
Emit ASM code for instruction = BANK ADDRESS( ).
char * name
Definition ugbc.h:979
struct _Variable Variable
Structure of a single variable.
struct _Environment Environment
Structure of compilation environment.
@ VT_ADDRESS
Definition ugbc.h:465