ugBASIC 1.18
An isomorphic BASIC language compiler for retrocomputers
Loading...
Searching...
No Matches
gb.c File Reference
#include "../ugbc.h"
#include <math.h>

Go to the source code of this file.

Macros

#define PROGRAM_FREQUENCY(c, f)
#define PROGRAM_FREQUENCY_V(c, f)
#define PROGRAM_FREQUENCY_SV(c, f)
#define PROGRAM_DURATION(c, d)
#define WAIT_DURATION(c)
#define PROGRAM_PITCH(c, f)
#define PROGRAM_PITCH_V(c, f)
#define PROGRAM_PITCH_SV(c, f)
#define PROGRAM_PULSE(c, p)
#define PROGRAM_PULSE_V(c, p)
#define PROGRAM_PULSE_SV(c, p)
#define STOP_FREQUENCY(c)
#define STOP_FREQUENCY_V(c)
#define STOP_FREQUENCY_SV(c)

Functions

void gb_joy (Environment *_environment, int _port, char *_value)
void gb_joy_vars (Environment *_environment, char *_port, char *_value)
void gb_inkey (Environment *_environment, char *_key)
void gb_wait_key (Environment *_environment, int _release)
void gb_wait_key_or_fire (Environment *_environment, int _port, int _release)
void gb_wait_key_or_fire_semivar (Environment *_environment, char *_port, int _release)
void gb_wait_fire (Environment *_environment, int _port, int _release)
void gb_wait_fire_semivar (Environment *_environment, char *_port, int _release)
void gb_key_state (Environment *_environment, char *_scancode, char *_result)
void gb_scancode (Environment *_environment, char *_result)
void gb_asciicode (Environment *_environment, char *_result)
void gb_key_pressed (Environment *_environment, char *_scancode, char *_result)
void gb_scanshift (Environment *_environment, char *_shifts)
void gb_keyshift (Environment *_environment, char *_shifts)
void gb_clear_key (Environment *_environment)
void gb_sys_call (Environment *_environment, int _destination)
void gb_timer_set_status_on (Environment *_environment, char *_timer)
void gb_timer_set_status_off (Environment *_environment, char *_timer)
void gb_timer_set_counter (Environment *_environment, char *_timer, char *_counter)
void gb_timer_set_init (Environment *_environment, char *_timer, char *_init)
void gb_timer_set_address (Environment *_environment, char *_timer, char *_address)
void gb_dload (Environment *_environment, char *_filename, char *_offset, char *_address, char *_size)
void gb_dsave (Environment *_environment, char *_filename, char *_offset, char *_address, char *_size)
void gb_put_key (Environment *_environment, char *_string, char *_size)
RGBigb_image_nearest_system_color (RGBi *_color)
Variablegb_collision (Environment *_environment, char *_sprite)
 GB: emit code to check for collision
void gb_hit (Environment *_environment, char *_sprite_mask, char *_result)
 GB: emit code to check for collision
void gb_border_color (Environment *_environment, char *_border_color)
 GB: emit code to change border color
void gb_background_color (Environment *_environment, int _index, int _background_color)
 GB: emit code to change background color
void gb_background_color_vars (Environment *_environment, char *_index, char *_background_color)
 GB: emit code to change background color
void gb_background_color_semivars (Environment *_environment, int _index, char *_background_color)
 GB: emit code to change background color
void gb_background_color_get_vars (Environment *_environment, char *_index, char *_background_color)
 GB: emit code to retrieve background color
void gb_sprite_common_color (Environment *_environment, char *_index, char *_common_color)
 GB: emit code to change common sprite's color
void gb_raster_at (Environment *_environment, char *_label, char *_positionlo, char *_positionhi)
 GB: emit code to set raster irq
void gb_next_raster (Environment *_environment)
 GB: emit code to wait for next raster irq
void gb_next_raster_at (Environment *_environment, char *_label, char *_positionlo, char *_positionhi)
 GB: emit code to wait for next raster irq at different position
void gb_bank_select (Environment *_environment, int _bank)
int gb_screen_mode_enable (Environment *_environment, ScreenMode *_screen_mode)
void console_calculate (Environment *_environment)
void console_calculate_vars (Environment *_environment)
void gb_bitmap_enable (Environment *_environment, int _width, int _height, int _colors)
void gb_bitmap_disable (Environment *_environment)
void gb_tilemap_enable (Environment *_environment, int _width, int _height, int _colors, int _tile_width, int _tile_height)
void gb_bitmap_at (Environment *_environment, char *_address)
void gb_colormap_at (Environment *_environment, char *_address)
void gb_textmap_at (Environment *_environment, char *_address)
void gb_pset_int (Environment *_environment, int _x, int _y, int *_c)
void gb_pset_vars (Environment *_environment, char *_x, char *_y, char *_c)
void gb_pget_color_vars (Environment *_environment, char *_x, char *_y, char *_result)
void gb_screen_on (Environment *_environment)
void gb_screen_off (Environment *_environment)
void gb_screen_rows (Environment *_environment, char *_rows)
void gb_screen_columns (Environment *_environment, char *_columns)
void gb_sprite_data_set (Environment *_environment, char *_sprite, char *_address)
void gb_sprite_data_from (Environment *_environment, char *_sprite, char *_image)
void gb_sprite_enable (Environment *_environment, char *_sprite)
void gb_sprite_disable (Environment *_environment, char *_sprite)
void gb_sprite_at (Environment *_environment, char *_sprite, char *_x, char *_y)
void gb_sprite_expand_vertical (Environment *_environment, char *_sprite)
void gb_sprite_expand_horizontal (Environment *_environment, char *_sprite)
void gb_sprite_compress_vertical (Environment *_environment, char *_sprite)
void gb_sprite_compress_horizontal (Environment *_environment, char *_sprite)
void gb_sprite_multicolor (Environment *_environment, char *_sprite)
void gb_sprite_monocolor (Environment *_environment, char *_sprite)
void gb_sprite_color (Environment *_environment, char *_sprite, char *_color)
void gb_sprite_priority (Environment *_environment, char *_sprite, char *_priority)
void gb_tiles_at (Environment *_environment, char *_address)
void gb_vertical_scroll (Environment *_environment, char *_displacement)
void gb_horizontal_scroll (Environment *_environment, char *_displacement)
void gb_busy_wait (Environment *_environment, char *_timing)
void gb_get_width (Environment *_environment, char *_result)
void gb_tiles_get (Environment *_environment, char *_result)
void gb_get_height (Environment *_environment, char *_result)
void gb_cls (Environment *_environment)
void gb_cls_box (Environment *_environment, char *_x1, char *_y1, char *_w, char *_h)
void gb_scroll_text (Environment *_environment, int _direction, int _overlap)
void gb_text (Environment *_environment, char *_text, char *_text_size, int _raw)
void gb_initialization (Environment *_environment)
void gb_finalization (Environment *_environment)
void gb_hscroll_line (Environment *_environment, int _direction, int _overlap)
void gb_hscroll_screen (Environment *_environment, int _direction, int _overlap)
void gb_back (Environment *_environment)
void gb_cline (Environment *_environment, char *_characters)
int gb_image_size (Environment *_environment, int _width, int _height, int _mode)
Variablegb_sprite_converter (Environment *_environment, char *_source, int _width, int _height, int _depth, RGBi *_color, int _slot_x, int _slot_y)
Variablegb_image_converter (Environment *_environment, char *_data, int _width, int _height, int _depth, int _offset_x, int _offset_y, int _frame_width, int _frame_height, int _mode, int _transparent_color, int _flags)
void gb_blit_image (Environment *_environment, char *_sources[], int _source_count, char *_blit, char *_x, char *_y, char *_frame, char *_sequence, int _frame_size, int _frame_count, int _flags)
void gb_put_image (Environment *_environment, Resource *_image, char *_x, char *_y, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_flags)
void gb_wait_vbl (Environment *_environment, char *_raster_line)
void gb_screen_on_off (Environment *_environment, int _on_off)
Variablegb_new_image (Environment *_environment, int _width, int _height, int _mode)
Variablegb_new_images (Environment *_environment, int _frames, int _width, int _height, int _mode)
Variablegb_new_sequence (Environment *_environment, int _sequences, int _frames, int _width, int _height, int _mode)
void gb_get_image (Environment *_environment, char *_image, char *_x, char *_y, char *_frame, char *_sequence, int _frame_size, int _frame_count, int _palette)
void gb_scroll (Environment *_environment, int _dx, int _dy)
void gb_put_tile (Environment *_environment, char *_tile, char *_x, char *_y)
void gb_move_tiles (Environment *_environment, char *_tile, char *_x, char *_y)
void gb_put_tiles (Environment *_environment, char *_tile, char *_x, char *_y, char *_w, char *_h)
void gb_tile_at (Environment *_environment, char *_x, char *_y, char *_result)
void gb_use_tileset (Environment *_environment, char *_tileset)
Variablegb_get_raster_line (Environment *_environment)
void gb_move_memory_video (Environment *_environment, char *_from, char *_to, char *_size)
void gb_move_video_memory (Environment *_environment, char *_from, char *_to, char *_size)
void gb_colors_vars (Environment *_environment, char *_foreground_color, char *_background_color)
void gb_slice_image (Environment *_environment, char *_image, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_destination)
void gb_slice_image_copy (Environment *_environment, char *_image, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_destination)
void gb_slice_image_extract (Environment *_environment, char *_image, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_destination)
int gb_palette_extract (Environment *_environment, char *_data, int _width, int _height, int _depth, int _flags, RGBi *_palette)
void gb_calculate_sequence_frame_offset (Environment *_environment, char *_offset, char *_sequence, char *_frame, int _frame_size, int _frame_count)
void gb_flip_image (Environment *_environment, Resource *_image, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_direction)
void gb_start (Environment *_environment, int _channels)
void gb_set_volume (Environment *_environment, int _channels, int _volume)
void gb_set_program (Environment *_environment, int _channels, int _program)
void gb_set_parameter (Environment *_environment, int _channels, int _parameter, int _value)
void gb_set_frequency (Environment *_environment, int _channels, int _frequency)
void gb_set_pitch (Environment *_environment, int _channels, int _pitch)
void gb_set_note (Environment *_environment, int _channels, int _note)
void gb_stop (Environment *_environment, int _channels)
void gb_start_var (Environment *_environment, char *_channels)
void gb_set_volume_vars (Environment *_environment, char *_channels, char *_volume)
void gb_set_volume_semi_var (Environment *_environment, char *_channel, int _volume)
void gb_set_program_semi_var (Environment *_environment, char *_channels, int _program)
void gb_set_frequency_vars (Environment *_environment, char *_channels, char *_frequency)
void gb_set_pitch_vars (Environment *_environment, char *_channels, char *_pitch)
void gb_set_note_vars (Environment *_environment, char *_channels, char *_note)
void gb_stop_vars (Environment *_environment, char *_channels)
void gb_music (Environment *_environment, char *_music, int _size, int _loop)
void gb_set_duration (Environment *_environment, int _channel, int _duration)
void gb_wait_duration (Environment *_environment, int _channel)
void gb_set_duration_vars (Environment *_environment, char *_channel, char *_duration)
void gb_wait_duration_vars (Environment *_environment, char *_channel)
void gb_screen (Environment *_environment, char *_x, char *_y, char *_c)

Variables

int lastUsedSlotInCommonPalette = 0

Macro Definition Documentation

◆ PROGRAM_DURATION

#define PROGRAM_DURATION ( c,
d )
Value:
outline1("LD A, $%2.2x", ( d & 0xff ) ); \
outline0("LD E, A" ); \
outline1("LD A, $%2.2x", ( ( d >> 8 ) & 0xff ) ); \
outline0("LD D, A" ); \
if ( ( c & 0x01 ) ) \
outline0("CALL GBPROGDUR0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL GBPROGDUR1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL GBPROGDUR2" ); \
if ( ( c & 0x08 ) ) \
outline0("CALL GBPROGDUR3" );
#define outline1(s, a)
Definition ugbc.h:4253

Definition at line 2367 of file gb.c.

◆ PROGRAM_FREQUENCY

#define PROGRAM_FREQUENCY ( c,
f )
Value:
outline1("LD A, $%2.2x", ( f & 0xff ) ); \
outline0("LD E, A" ); \
outline1("LD A, $%2.2x", ( ( f >> 8 ) & 0xff ) ); \
outline0("LD D, A" ); \
if ( ( c & 0x01 ) ) \
outline0("CALL GBPROGFREQ0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL GBPROGFREQ1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL GBPROGFREQ2" ); \
if ( ( c & 0x08 ) ) \
outline0("CALL GBPROGFREQ3" );

Definition at line 2329 of file gb.c.

◆ PROGRAM_FREQUENCY_SV

#define PROGRAM_FREQUENCY_SV ( c,
f )
Value:
outline1("LD A, $%2.2x", ( f & 0xff ) ); \
outline0("LD E, A" ); \
outline1("LD A, $%2.2x", ( ( f >> 8 ) & 0xff ) ); \
outline0("LD D, A" ); \
if ( c == NULL ) { \
outline0("LD A, $3"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL GBFREQ2" );

Definition at line 2355 of file gb.c.

◆ PROGRAM_FREQUENCY_V

#define PROGRAM_FREQUENCY_V ( c,
f )
Value:
outline1("LD A, (%s)", f ); \
outline0("LD E, A" ); \
outline1("LD A, (%s)", address_displacement(_environment, f, "1") ); \
outline0("LD D, A" ); \
if ( c == NULL ) { \
outline0("LD A, $3"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL GBFREQ" );
char * address_displacement(Environment *_environment, char *_address, char *_displacement)

Definition at line 2343 of file gb.c.

◆ PROGRAM_PITCH

#define PROGRAM_PITCH ( c,
f )
Value:
outline1("LD A, $%2.2x", ( f & 0xff ) ); \
outline0("LD E, A" ); \
outline1("LD A, $%2.2x", ( ( f >> 8 ) & 0xff ) ); \
outline0("LD D, A" ); \
if ( ( c & 0x01 ) ) \
outline0("CALL GBPROGFREQ0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL GBPROGFREQ1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL GBPROGFREQ2" ); \
if ( ( c & 0x08 ) ) \
outline0("CALL GBPROGFREQ3" );

Definition at line 2391 of file gb.c.

◆ PROGRAM_PITCH_SV

#define PROGRAM_PITCH_SV ( c,
f )
Value:
outline1("LD A, $%2.2x", ( f & 0xff ) ); \
outline0("LD E, A" ); \
outline1("LD A, $%2.2x", ( ( f >> 8 ) & 0xff ) ); \
outline0("LD D, A" ); \
if ( c == NULL ) { \
outline0("LD A, $3"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL GBPROGFREQ" );

Definition at line 2417 of file gb.c.

◆ PROGRAM_PITCH_V

#define PROGRAM_PITCH_V ( c,
f )
Value:
outline1("LD A, (%s)", f ); \
outline0("LD E, A" ); \
outline1("LD A, (%s)", address_displacement(_environment, f, "1") ); \
outline0("LD D, A" ); \
if ( c == NULL ) { \
outline0("LD A, $3"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL GBPROGFREQ" );

Definition at line 2405 of file gb.c.

◆ PROGRAM_PULSE

#define PROGRAM_PULSE ( c,
p )
Value:
outline1("LD A, $%2.2x", ( p & 0xff ) ); \
outline0("LD E, A" ); \
outline1("LD A, $%2.2x", ( ( p >> 8 ) & 0xff ) ); \
outline0("LD D, A" ); \
if ( ( c & 0x01 ) ) \
outline0("CALL GBPROGPULSE0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL GBPROGPULSE1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL GBPROGPULSE2" ); \
if ( ( c & 0x08 ) ) \
outline0("CALL GBPROGPULSE3" );

Definition at line 2429 of file gb.c.

◆ PROGRAM_PULSE_SV

#define PROGRAM_PULSE_SV ( c,
p )
Value:
outline1("LD A, $%2.2x", ( p & 0xff ) ); \
outline0("LD E, A" ); \
outline1("LD A, $%2.2x", ( ( p >> 8 ) & 0xff ) ); \
outline0("LD D, A" ); \
if ( c == NULL ) { \
outline0("LD A, $3"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL GBPROGPULSE" );

Definition at line 2455 of file gb.c.

◆ PROGRAM_PULSE_V

#define PROGRAM_PULSE_V ( c,
p )
Value:
outline1("LD A, (%s)", p ); \
outline0("LD E, A" ); \
outline1("LD A, (%s)", address_displacement(_environment, p, "1") ); \
outline0("LD D, A" ); \
if ( c == NULL ) { \
outline0("LD A, $3"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL GBPROGPULSE" );

Definition at line 2443 of file gb.c.

◆ STOP_FREQUENCY

#define STOP_FREQUENCY ( c)
Value:
if ( ( c & 0x01 ) ) \
outline0("CALL GBSTOP0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL GBSTOP1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL GBSTOP2" ); \
if ( ( c & 0x08 ) ) \
outline0("CALL GBSTOP3" );

Definition at line 2467 of file gb.c.

◆ STOP_FREQUENCY_SV

#define STOP_FREQUENCY_SV ( c)
Value:
if ( c == NULL ) { \
outline0("LD A, $3"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL GBSTOP" );

Definition at line 2485 of file gb.c.

◆ STOP_FREQUENCY_V

#define STOP_FREQUENCY_V ( c)
Value:
if ( c == NULL ) { \
outline0("LD A, $3"); \
} else { \
outline1("LD A, (%s)", c ); \
} \
outline0("CALL GBSTOP" );

Definition at line 2477 of file gb.c.

◆ WAIT_DURATION

#define WAIT_DURATION ( c)
Value:
if ( ( c & 0x01 ) ) \
outline0("CALL GBWAITDUR0" ); \
if ( ( c & 0x02 ) ) \
outline0("CALL GBWAITDUR1" ); \
if ( ( c & 0x04 ) ) \
outline0("CALL GBWAITDUR2" ); \
if ( ( c & 0x08 ) ) \
outline0("CALL GBWAITDUR3" );

Definition at line 2381 of file gb.c.

Function Documentation

◆ console_calculate()

void console_calculate ( Environment * _environment)

Definition at line 745 of file gb.c.

◆ console_calculate_vars()

void console_calculate_vars ( Environment * _environment)

Definition at line 759 of file gb.c.

◆ gb_asciicode()

void gb_asciicode ( Environment * _environment,
char * _result )

Definition at line 132 of file gb.c.

◆ gb_back()

void gb_back ( Environment * _environment)

Definition at line 1330 of file gb.c.

◆ gb_background_color()

void gb_background_color ( Environment * _environment,
int _index,
int _background_color )

GB: emit code to change background color

This function can be used to issue code aimed at changing the background color of the screen.

Parameters
_environmentCurrent calling environment
_indexIndex of the background color
_background_colorBackground color to use

Definition at line 448 of file gb.c.

◆ gb_background_color_get_vars()

void gb_background_color_get_vars ( Environment * _environment,
char * _index,
char * _background_color )

GB: emit code to retrieve background color

This function can be used to issue code aimed at retrieving the background color of the screen.

Parameters
_environmentCurrent calling environment
_indexIndex of the background color
_background_colorBackground color to use

Definition at line 559 of file gb.c.

◆ gb_background_color_semivars()

void gb_background_color_semivars ( Environment * _environment,
int _index,
char * _background_color )

GB: emit code to change background color

This function can be used to issue code aimed at changing the background color of the screen.

Parameters
_environmentCurrent calling environment
_indexIndex of the background color
_background_colorBackground color to use

Definition at line 530 of file gb.c.

◆ gb_background_color_vars()

void gb_background_color_vars ( Environment * _environment,
char * _index,
char * _background_color )

GB: emit code to change background color

This function can be used to issue code aimed at changing the background color of the screen.

Parameters
_environmentCurrent calling environment
_indexIndex of the background color
_background_colorBackground color to use

Definition at line 474 of file gb.c.

◆ gb_bank_select()

void gb_bank_select ( Environment * _environment,
int _bank )

Definition at line 665 of file gb.c.

◆ gb_bitmap_at()

void gb_bitmap_at ( Environment * _environment,
char * _address )

Definition at line 818 of file gb.c.

◆ gb_bitmap_disable()

void gb_bitmap_disable ( Environment * _environment)

Definition at line 790 of file gb.c.

◆ gb_bitmap_enable()

void gb_bitmap_enable ( Environment * _environment,
int _width,
int _height,
int _colors )

Definition at line 767 of file gb.c.

◆ gb_blit_image()

void gb_blit_image ( Environment * _environment,
char * _sources[],
int _source_count,
char * _blit,
char * _x,
char * _y,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
int _flags )

Definition at line 1717 of file gb.c.

◆ gb_border_color()

void gb_border_color ( Environment * _environment,
char * _border_color )

GB: emit code to change border color

This function can be used to issue code aimed at changing the border color of the screen.

Parameters
_environmentCurrent calling environment
_border_colorBorder color to use

Definition at line 434 of file gb.c.

◆ gb_busy_wait()

void gb_busy_wait ( Environment * _environment,
char * _timing )

Definition at line 990 of file gb.c.

◆ gb_calculate_sequence_frame_offset()

void gb_calculate_sequence_frame_offset ( Environment * _environment,
char * _offset,
char * _sequence,
char * _frame,
int _frame_size,
int _frame_count )

Definition at line 2213 of file gb.c.

◆ gb_clear_key()

void gb_clear_key ( Environment * _environment)

Definition at line 163 of file gb.c.

◆ gb_cline()

void gb_cline ( Environment * _environment,
char * _characters )

Definition at line 1342 of file gb.c.

◆ gb_cls()

void gb_cls ( Environment * _environment)

Definition at line 1023 of file gb.c.

◆ gb_cls_box()

void gb_cls_box ( Environment * _environment,
char * _x1,
char * _y1,
char * _w,
char * _h )

Definition at line 1030 of file gb.c.

◆ gb_collision()

Variable * gb_collision ( Environment * _environment,
char * _sprite )

GB: emit code to check for collision

This function can be used to issue code aimed at verifying if a sprite has had a collision with another sprite. The result (0 = no collision, 0xff = collision occurred) is returned in the output variable.

Parameters
_environmentCurrent calling environment
_sprite_maskSprite mask to use
_resultWhere to store the result

Definition at line 402 of file gb.c.

◆ gb_colormap_at()

void gb_colormap_at ( Environment * _environment,
char * _address )

Definition at line 822 of file gb.c.

◆ gb_colors_vars()

void gb_colors_vars ( Environment * _environment,
char * _foreground_color,
char * _background_color )

Definition at line 2116 of file gb.c.

◆ gb_dload()

void gb_dload ( Environment * _environment,
char * _filename,
char * _offset,
char * _address,
char * _size )

Definition at line 278 of file gb.c.

◆ gb_dsave()

void gb_dsave ( Environment * _environment,
char * _filename,
char * _offset,
char * _address,
char * _size )

Definition at line 282 of file gb.c.

◆ gb_finalization()

void gb_finalization ( Environment * _environment)

Definition at line 1285 of file gb.c.

◆ gb_flip_image()

void gb_flip_image ( Environment * _environment,
Resource * _image,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
char * _direction )

Definition at line 2264 of file gb.c.

◆ gb_get_height()

void gb_get_height ( Environment * _environment,
char * _result )

Definition at line 1016 of file gb.c.

◆ gb_get_image()

void gb_get_image ( Environment * _environment,
char * _image,
char * _x,
char * _y,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
int _palette )

Definition at line 1907 of file gb.c.

◆ gb_get_raster_line()

Variable * gb_get_raster_line ( Environment * _environment)

Definition at line 2088 of file gb.c.

◆ gb_get_width()

void gb_get_width ( Environment * _environment,
char * _result )

Definition at line 1002 of file gb.c.

◆ gb_hit()

void gb_hit ( Environment * _environment,
char * _sprite_mask,
char * _result )

GB: emit code to check for collision

This function can be used to issue code aimed at verifying if a sprite has had a collision with a tile. The result (0 = no collision, 0xff = collision occurred) is returned in the output variable.

  • Parameters
    _environmentCurrent calling environment
    _sprite_maskSprite mask to use
    _resultWhere to store the result

Definition at line 421 of file gb.c.

◆ gb_horizontal_scroll()

void gb_horizontal_scroll ( Environment * _environment,
char * _displacement )

Definition at line 982 of file gb.c.

◆ gb_hscroll_line()

void gb_hscroll_line ( Environment * _environment,
int _direction,
int _overlap )

Definition at line 1302 of file gb.c.

◆ gb_hscroll_screen()

void gb_hscroll_screen ( Environment * _environment,
int _direction,
int _overlap )

Definition at line 1317 of file gb.c.

◆ gb_image_converter()

Variable * gb_image_converter ( Environment * _environment,
char * _data,
int _width,
int _height,
int _depth,
int _offset_x,
int _offset_y,
int _frame_width,
int _frame_height,
int _mode,
int _transparent_color,
int _flags )

Definition at line 1554 of file gb.c.

◆ gb_image_nearest_system_color()

RGBi * gb_image_nearest_system_color ( RGBi * _color)

Definition at line 298 of file gb.c.

◆ gb_image_size()

int gb_image_size ( Environment * _environment,
int _width,
int _height,
int _mode )

Definition at line 1380 of file gb.c.

◆ gb_initialization()

void gb_initialization ( Environment * _environment)

Definition at line 1076 of file gb.c.

◆ gb_inkey()

void gb_inkey ( Environment * _environment,
char * _key )

Definition at line 71 of file gb.c.

◆ gb_joy()

void gb_joy ( Environment * _environment,
int _port,
char * _value )

Definition at line 51 of file gb.c.

◆ gb_joy_vars()

void gb_joy_vars ( Environment * _environment,
char * _port,
char * _value )

Definition at line 61 of file gb.c.

◆ gb_key_pressed()

void gb_key_pressed ( Environment * _environment,
char * _scancode,
char * _result )

Definition at line 139 of file gb.c.

◆ gb_key_state()

void gb_key_state ( Environment * _environment,
char * _scancode,
char * _result )

Definition at line 118 of file gb.c.

◆ gb_keyshift()

void gb_keyshift ( Environment * _environment,
char * _shifts )

Definition at line 156 of file gb.c.

◆ gb_move_memory_video()

void gb_move_memory_video ( Environment * _environment,
char * _from,
char * _to,
char * _size )

Definition at line 2098 of file gb.c.

◆ gb_move_tiles()

void gb_move_tiles ( Environment * _environment,
char * _tile,
char * _x,
char * _y )

Definition at line 1974 of file gb.c.

◆ gb_move_video_memory()

void gb_move_video_memory ( Environment * _environment,
char * _from,
char * _to,
char * _size )

Definition at line 2107 of file gb.c.

◆ gb_music()

void gb_music ( Environment * _environment,
char * _music,
int _size,
int _loop )

Definition at line 2947 of file gb.c.

◆ gb_new_image()

Variable * gb_new_image ( Environment * _environment,
int _width,
int _height,
int _mode )

Definition at line 1814 of file gb.c.

◆ gb_new_images()

Variable * gb_new_images ( Environment * _environment,
int _frames,
int _width,
int _height,
int _mode )

Definition at line 1838 of file gb.c.

◆ gb_new_sequence()

Variable * gb_new_sequence ( Environment * _environment,
int _sequences,
int _frames,
int _width,
int _height,
int _mode )

Definition at line 1872 of file gb.c.

◆ gb_next_raster()

void gb_next_raster ( Environment * _environment)

GB: emit code to wait for next raster irq

This function outputs assembly code needed to wait for the next raster. Meanwhile, the execution of the main code will resume where it left off.

Parameters
_environmentCurrent calling environment

Definition at line 644 of file gb.c.

◆ gb_next_raster_at()

void gb_next_raster_at ( Environment * _environment,
char * _label,
char * _positionlo,
char * _positionhi )

GB: emit code to wait for next raster irq at different position

This function outputs assembly code needed to wait for the next raster on a different position with a different code to execute. Meanwhile, the execution of the main code will resume where it left off.

Parameters
_environmentCurrent calling environment
_labelLabel to jump to when vertical raster reach the value given
_positionloThe vertical position to wait for (bits 7..0)
_positionhiThe vertical position to wait for (bit 8)

Definition at line 661 of file gb.c.

◆ gb_palette_extract()

int gb_palette_extract ( Environment * _environment,
char * _data,
int _width,
int _height,
int _depth,
int _flags,
RGBi * _palette )

Definition at line 2199 of file gb.c.

◆ gb_pget_color_vars()

void gb_pget_color_vars ( Environment * _environment,
char * _x,
char * _y,
char * _result )

Definition at line 838 of file gb.c.

◆ gb_pset_int()

void gb_pset_int ( Environment * _environment,
int _x,
int _y,
int * _c )

Definition at line 830 of file gb.c.

◆ gb_pset_vars()

void gb_pset_vars ( Environment * _environment,
char * _x,
char * _y,
char * _c )

Definition at line 834 of file gb.c.

◆ gb_put_image()

void gb_put_image ( Environment * _environment,
Resource * _image,
char * _x,
char * _y,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
char * _flags )

Definition at line 1776 of file gb.c.

◆ gb_put_key()

void gb_put_key ( Environment * _environment,
char * _string,
char * _size )

Definition at line 287 of file gb.c.

◆ gb_put_tile()

void gb_put_tile ( Environment * _environment,
char * _tile,
char * _x,
char * _y )

Definition at line 1949 of file gb.c.

◆ gb_put_tiles()

void gb_put_tiles ( Environment * _environment,
char * _tile,
char * _x,
char * _y,
char * _w,
char * _h )

Definition at line 2020 of file gb.c.

◆ gb_raster_at()

void gb_raster_at ( Environment * _environment,
char * _label,
char * _positionlo,
char * _positionhi )

GB: emit code to set raster irq

This function outputs assembly code needed to initialize a raster routine. In other words, asynchronously and in parallel with the execution of the main program, the routine starting from the label provided will be executed when the vertical brush on the screen reaches the value of _position. This function is particularly useful when the position is communicated is given as an integer.

Parameters
_environmentCurrent calling environment
_labelLabel to jump to when vertical raster reach the value given
_positionloThe vertical position to wait for (bits 7..0)
_positionhiThe vertical position to wait for (bit 8)

Definition at line 630 of file gb.c.

◆ gb_scancode()

void gb_scancode ( Environment * _environment,
char * _result )

Definition at line 125 of file gb.c.

◆ gb_scanshift()

void gb_scanshift ( Environment * _environment,
char * _shifts )

Definition at line 149 of file gb.c.

◆ gb_screen()

void gb_screen ( Environment * _environment,
char * _x,
char * _y,
char * _c )

Definition at line 3007 of file gb.c.

◆ gb_screen_columns()

void gb_screen_columns ( Environment * _environment,
char * _columns )

Definition at line 862 of file gb.c.

◆ gb_screen_mode_enable()

int gb_screen_mode_enable ( Environment * _environment,
ScreenMode * _screen_mode )

Definition at line 692 of file gb.c.

◆ gb_screen_off()

void gb_screen_off ( Environment * _environment)

Definition at line 850 of file gb.c.

◆ gb_screen_on()

void gb_screen_on ( Environment * _environment)

Definition at line 842 of file gb.c.

◆ gb_screen_on_off()

void gb_screen_on_off ( Environment * _environment,
int _on_off )

Definition at line 1807 of file gb.c.

◆ gb_screen_rows()

void gb_screen_rows ( Environment * _environment,
char * _rows )

Definition at line 858 of file gb.c.

◆ gb_scroll()

void gb_scroll ( Environment * _environment,
int _dx,
int _dy )

Definition at line 1933 of file gb.c.

◆ gb_scroll_text()

void gb_scroll_text ( Environment * _environment,
int _direction,
int _overlap )

Definition at line 1034 of file gb.c.

◆ gb_set_duration()

void gb_set_duration ( Environment * _environment,
int _channel,
int _duration )

Definition at line 2965 of file gb.c.

◆ gb_set_duration_vars()

void gb_set_duration_vars ( Environment * _environment,
char * _channel,
char * _duration )

Definition at line 2977 of file gb.c.

◆ gb_set_frequency()

void gb_set_frequency ( Environment * _environment,
int _channels,
int _frequency )

Definition at line 2657 of file gb.c.

◆ gb_set_frequency_vars()

void gb_set_frequency_vars ( Environment * _environment,
char * _channels,
char * _frequency )

Definition at line 2882 of file gb.c.

◆ gb_set_note()

void gb_set_note ( Environment * _environment,
int _channels,
int _note )

Definition at line 2669 of file gb.c.

◆ gb_set_note_vars()

void gb_set_note_vars ( Environment * _environment,
char * _channels,
char * _note )

Definition at line 2914 of file gb.c.

◆ gb_set_parameter()

void gb_set_parameter ( Environment * _environment,
int _channels,
int _parameter,
int _value )

Definition at line 2653 of file gb.c.

◆ gb_set_pitch()

void gb_set_pitch ( Environment * _environment,
int _channels,
int _pitch )

Definition at line 2663 of file gb.c.

◆ gb_set_pitch_vars()

void gb_set_pitch_vars ( Environment * _environment,
char * _channels,
char * _pitch )

Definition at line 2898 of file gb.c.

◆ gb_set_program()

void gb_set_program ( Environment * _environment,
int _channels,
int _program )

Definition at line 2493 of file gb.c.

◆ gb_set_program_semi_var()

void gb_set_program_semi_var ( Environment * _environment,
char * _channels,
int _program )

Definition at line 2722 of file gb.c.

◆ gb_set_volume()

void gb_set_volume ( Environment * _environment,
int _channels,
int _volume )

Definition at line 2320 of file gb.c.

◆ gb_set_volume_semi_var()

void gb_set_volume_semi_var ( Environment * _environment,
char * _channel,
int _volume )

Definition at line 2709 of file gb.c.

◆ gb_set_volume_vars()

void gb_set_volume_vars ( Environment * _environment,
char * _channels,
char * _volume )

Definition at line 2692 of file gb.c.

◆ gb_slice_image()

void gb_slice_image ( Environment * _environment,
char * _image,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
char * _destination )

Definition at line 2149 of file gb.c.

◆ gb_slice_image_copy()

void gb_slice_image_copy ( Environment * _environment,
char * _image,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
char * _destination )

Definition at line 2153 of file gb.c.

◆ gb_slice_image_extract()

void gb_slice_image_extract ( Environment * _environment,
char * _image,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
char * _destination )

Definition at line 2173 of file gb.c.

◆ gb_sprite_at()

void gb_sprite_at ( Environment * _environment,
char * _sprite,
char * _x,
char * _y )

Definition at line 920 of file gb.c.

◆ gb_sprite_color()

void gb_sprite_color ( Environment * _environment,
char * _sprite,
char * _color )

Definition at line 962 of file gb.c.

◆ gb_sprite_common_color()

void gb_sprite_common_color ( Environment * _environment,
char * _index,
char * _common_color )

GB: emit code to change common sprite's color

This function can be used to issue code aimed at changing the common color of the sprites.

Parameters
_environmentCurrent calling environment
_indexIndex of the background color
_common_colorIndex of the color to use

Definition at line 611 of file gb.c.

◆ gb_sprite_compress_horizontal()

void gb_sprite_compress_horizontal ( Environment * _environment,
char * _sprite )

Definition at line 950 of file gb.c.

◆ gb_sprite_compress_vertical()

void gb_sprite_compress_vertical ( Environment * _environment,
char * _sprite )

Definition at line 946 of file gb.c.

◆ gb_sprite_converter()

Variable * gb_sprite_converter ( Environment * _environment,
char * _source,
int _width,
int _height,
int _depth,
RGBi * _color,
int _slot_x,
int _slot_y )

Definition at line 1508 of file gb.c.

◆ gb_sprite_data_from()

void gb_sprite_data_from ( Environment * _environment,
char * _sprite,
char * _image )

Definition at line 880 of file gb.c.

◆ gb_sprite_data_set()

void gb_sprite_data_set ( Environment * _environment,
char * _sprite,
char * _address )

Definition at line 866 of file gb.c.

◆ gb_sprite_disable()

void gb_sprite_disable ( Environment * _environment,
char * _sprite )

Definition at line 908 of file gb.c.

◆ gb_sprite_enable()

void gb_sprite_enable ( Environment * _environment,
char * _sprite )

Definition at line 896 of file gb.c.

◆ gb_sprite_expand_horizontal()

void gb_sprite_expand_horizontal ( Environment * _environment,
char * _sprite )

Definition at line 942 of file gb.c.

◆ gb_sprite_expand_vertical()

void gb_sprite_expand_vertical ( Environment * _environment,
char * _sprite )

Definition at line 938 of file gb.c.

◆ gb_sprite_monocolor()

void gb_sprite_monocolor ( Environment * _environment,
char * _sprite )

Definition at line 958 of file gb.c.

◆ gb_sprite_multicolor()

void gb_sprite_multicolor ( Environment * _environment,
char * _sprite )

Definition at line 954 of file gb.c.

◆ gb_sprite_priority()

void gb_sprite_priority ( Environment * _environment,
char * _sprite,
char * _priority )

Definition at line 966 of file gb.c.

◆ gb_start()

void gb_start ( Environment * _environment,
int _channels )

Definition at line 2303 of file gb.c.

◆ gb_start_var()

void gb_start_var ( Environment * _environment,
char * _channels )

Definition at line 2681 of file gb.c.

◆ gb_stop()

void gb_stop ( Environment * _environment,
int _channels )

Definition at line 2675 of file gb.c.

◆ gb_stop_vars()

void gb_stop_vars ( Environment * _environment,
char * _channels )

Definition at line 2940 of file gb.c.

◆ gb_sys_call()

void gb_sys_call ( Environment * _environment,
int _destination )

Definition at line 167 of file gb.c.

◆ gb_text()

void gb_text ( Environment * _environment,
char * _text,
char * _text_size,
int _raw )

Definition at line 1046 of file gb.c.

◆ gb_textmap_at()

void gb_textmap_at ( Environment * _environment,
char * _address )

Definition at line 826 of file gb.c.

◆ gb_tile_at()

void gb_tile_at ( Environment * _environment,
char * _x,
char * _y,
char * _result )

Definition at line 2052 of file gb.c.

◆ gb_tilemap_enable()

void gb_tilemap_enable ( Environment * _environment,
int _width,
int _height,
int _colors,
int _tile_width,
int _tile_height )

Definition at line 794 of file gb.c.

◆ gb_tiles_at()

void gb_tiles_at ( Environment * _environment,
char * _address )

Definition at line 970 of file gb.c.

◆ gb_tiles_get()

void gb_tiles_get ( Environment * _environment,
char * _result )

Definition at line 1009 of file gb.c.

◆ gb_timer_set_address()

void gb_timer_set_address ( Environment * _environment,
char * _timer,
char * _address )

Definition at line 253 of file gb.c.

◆ gb_timer_set_counter()

void gb_timer_set_counter ( Environment * _environment,
char * _timer,
char * _counter )

Definition at line 205 of file gb.c.

◆ gb_timer_set_init()

void gb_timer_set_init ( Environment * _environment,
char * _timer,
char * _init )

Definition at line 229 of file gb.c.

◆ gb_timer_set_status_off()

void gb_timer_set_status_off ( Environment * _environment,
char * _timer )

Definition at line 189 of file gb.c.

◆ gb_timer_set_status_on()

void gb_timer_set_status_on ( Environment * _environment,
char * _timer )

Definition at line 173 of file gb.c.

◆ gb_use_tileset()

void gb_use_tileset ( Environment * _environment,
char * _tileset )

Definition at line 2073 of file gb.c.

◆ gb_vertical_scroll()

void gb_vertical_scroll ( Environment * _environment,
char * _displacement )

Definition at line 974 of file gb.c.

◆ gb_wait_duration()

void gb_wait_duration ( Environment * _environment,
int _channel )

Definition at line 2971 of file gb.c.

◆ gb_wait_duration_vars()

void gb_wait_duration_vars ( Environment * _environment,
char * _channel )

Definition at line 2995 of file gb.c.

◆ gb_wait_fire()

void gb_wait_fire ( Environment * _environment,
int _port,
int _release )

Definition at line 100 of file gb.c.

◆ gb_wait_fire_semivar()

void gb_wait_fire_semivar ( Environment * _environment,
char * _port,
int _release )

Definition at line 109 of file gb.c.

◆ gb_wait_key()

void gb_wait_key ( Environment * _environment,
int _release )

Definition at line 78 of file gb.c.

◆ gb_wait_key_or_fire()

void gb_wait_key_or_fire ( Environment * _environment,
int _port,
int _release )

Definition at line 82 of file gb.c.

◆ gb_wait_key_or_fire_semivar()

void gb_wait_key_or_fire_semivar ( Environment * _environment,
char * _port,
int _release )

Definition at line 91 of file gb.c.

◆ gb_wait_vbl()

void gb_wait_vbl ( Environment * _environment,
char * _raster_line )

Definition at line 1801 of file gb.c.

Variable Documentation

◆ lastUsedSlotInCommonPalette

int lastUsedSlotInCommonPalette = 0

Definition at line 292 of file gb.c.