ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
music_storage.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#include "../../libs/midi.h"
37
38/****************************************************************************
39 * CODE SECTION
40 ****************************************************************************/
41
48/* <usermanual>
49@keyword MUSIC (storage)
50
51@english
52The ''MUSIC'' command, inserted inside a ''BEGIN STORAGE'' - ''ENDSTORAGE'' block,
53allows you to define the content of the mass storage element as a music. The basic
54syntax requires indicating the name of the ''source'' file that will be converted
55and inserted into the medium. If you don't want to use the same name, you can indicate
56an alias (''AS target'').
57
58@italian
59Il comando ''MUSIC'', inserito all'interno di un blocco ''BEGIN STORAGE'' -
60''ENDSTORAGE'', permette di definire il contenuto dell'elemento di memorizzazione
61di massa come musica. La sintassi di base prevede di indicare il nome del file
62sorgente che sarà convertito e inserito nel supporto. Se non si vuole utilizzare
63lo stesso nome, è possibile indicare un alias (''AS target'').
64
65@syntax MUSIC source AS target
66
67@example MUSIC "fugue.mid" AS "fugue"
68
69@target all
70</usermanual> */
71Variable * music_storage( Environment * _environment, char * _source_name, char * _target_name, int _bank_expansion ) {
72
73 file_storage( _environment, _source_name, _target_name, FSF_BINARY, 0 );
74
75 Variable * result = music_load_to_variable( _environment, _source_name, _target_name, _bank_expansion );
76
77 _environment->currentFileStorage->size = result->size;
78 _environment->currentFileStorage->content = result->valueBuffer;
79
80 return result;
81
82}
Variable * music_load_to_variable(Environment *_environment, char *_filename, char *_alias, int _bank_expansion)
Definition _music.c:732
void file_storage(Environment *_environment, char *_source_name, char *_target_name, FileStorageFormat _format, VariableType _type)
Emit code for FILE ... AS ....
Variable * music_storage(Environment *_environment, char *_source_name, char *_target_name, int _bank_expansion)
Emit code for LOAD MUSIC(...).
FileStorage * currentFileStorage
Definition ugbc.h:2536
int size
Definition ugbc.h:204
char * content
Definition ugbc.h:210
unsigned char * valueBuffer
Definition ugbc.h:1061
int size
Definition ugbc.h:1077
@ FSF_BINARY
Definition ugbc.h:251
struct _Variable Variable
Structure of a single variable.
struct _Environment Environment
Structure of compilation environment.