ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
memload.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/* <usermanual>
42@keyword MEMLOAD
43
44@english
45
46The ''MEMLOAD'' instruction fetches a memory area with a specified length
47(see ''MEMLEN'') from a previously specified address in an expansion memory
48(see ''MEMPOS'') and stores it at an equally specified address on the target
49computer (see ''MEMOR''). The command takes into account the settings for the
50transfer type (see ''MEMCONT'') and for the autoload of the address and
51counting registers (see ''MEMRESTORE'').
52
53@italian
54
55L'istruzione ''MEMLOAD'' recupera un'area di memoria con una lunghezza
56specificata (vedere ''MEMLEN'') da un indirizzo precedentemente specificato in una
57memoria di espansione (vedere ''MEMPOS'') e la memorizza in un indirizzo ugualmente
58specificato sul computer di destinazione (vedere ''MEMOR''). Il comando tiene
59conto delle impostazioni per il tipo di trasferimento (vedere ''MEMCONT'') e per il
60caricamento automatico dei registri di indirizzo e conteggio (vedere ''MEMRESTORE'').
61
62@syntax MEMLOAD
63
64@example MEMLOAD
65
66@usedInExample tsb_memload.bas
67
68@seeAlso MEMLEN
69@seeAlso MEMPOS
70@seeAlso MEMOR
71@seeAlso MEMCONT
72@seeAlso MEMRESTORE
73@seeAlso MEMSAVE
74@seeAlso MEMSAVE
75@seeAlso BANK READ
76
77</usermanual> */
78
79void memload( Environment * _environment ) {
80
81 Variable * bank = variable_retrieve_or_define( _environment, "MEMBANK", VT_BYTE, 0 );
82 Variable * address1 = variable_retrieve_or_define( _environment, "MEMPOS", VT_ADDRESS, 0 );
83 Variable * address2 = variable_retrieve_or_define( _environment, "MEMOR", VT_ADDRESS, 0 );
84 Variable * size = variable_retrieve_or_define( _environment, "MEMLEN", VT_WORD, 0 );
85
86 bank_read_vars( _environment, bank->name, address1->name, address2->name, size->name );
87
88}
Variable * variable_retrieve_or_define(Environment *_environment, char *_name, VariableType _type, int _value)
int size
Definition _optimizer.c:678
void bank_read_vars(Environment *_environment, char *_bank, char *_address1, char *_address2, char *_size)
Emit ASM code for instruction BANK READ ....
Definition bank_read.c:107
void memload(Environment *_environment)
Definition memload.c:79
char * name
Definition ugbc.h:979
struct _Variable Variable
Structure of a single variable.
struct _Environment Environment
Structure of compilation environment.
@ VT_WORD
Definition ugbc.h:455
@ VT_BYTE
Definition ugbc.h:450
@ VT_ADDRESS
Definition ugbc.h:465