ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
begin_gameloop.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
52/* <usermanual>
53@keyword BEGIN GAMELOOP
54
55@english
56Define the starting point of a game loop. A game loop is nothing more
57than an implicit loop, within which all the logic of the program (or
58of the game) runs. The end point of a game loop can correspond to
59the end of the program or to the ''END GAMELOOP'' statement.
60
61In some platforms, it will implictly "sync" the activity with the
62vertical blank, so the action inside the loop should be executed
63in a single "frame" of game.
64
65@italian
66Definisce il punto di partenza di un loop di gioco. Un loop di
67gioco non è altro che un ciclo implicito, all'interno del quale
68tutta la logica del programma (o del gioco) viene eseguita.
69Il punto finale di un ciclo di gioco può corrispondere al termine
70del programma o all'istruzione ''END GAMELOOP''.
71
72In alcune piattaforme, "sincronizza" implicitamente l'attività con il
73"vertical blank", quindi l'azione all'interno del ciclo dovrebbe
74essere eseguita in un unico "frame" di gioco.
75
76@syntax BEGIN GAMELOOP
77
78@example BEGIN GAMELOOP
79
80@target coleco
81</usermanual> */
82void begin_gameloop( Environment * _environment ) {
83
85
86 Loop * loop = malloc( sizeof( Loop ) );
87 memset( loop, 0, sizeof( Loop ) );
88 loop->label = strdup( label );
89 loop->type = LT_GAMELOOP;
90 loop->next = _environment->loops;
91 _environment->loops = loop;
92
93 cpu_label( _environment, loop->label );
94
95 _environment->hasGameLoop = 1;
96
97}
void cpu_label(Environment *_environment, char *_label)
Definition 6309.c:356
void begin_gameloop(Environment *_environment)
Emit ASM code for BEGIN GAMELOOP.
int hasGameLoop
Definition ugbc.h:2646
Loop * loops
Definition ugbc.h:2669
void * malloc(YYSIZE_T)
void loop(Environment *_environment, char *_label)
struct _Environment Environment
Structure of compilation environment.
@ LT_GAMELOOP
Definition ugbc.h:1402
struct _Loop Loop
Structure of a single loop.
#define MAKE_LABEL
Definition ugbc.h:3351