46#define RGB2GIME( r, g, b ) ( ( (r/64) & 0x02 ) << (5-1) ) | ( ( (g/64) & 0x02 ) << (4-1) ) | ( ( (b/64) & 0x02 ) << (3-1) ) | ( ( (r/64) & 0x01 ) << 2 ) | ( ( (g/64) & 0x01 ) << 1 ) | ( ( (b/64) & 0x01 ) )
48#define COLOR_BLACK 0x00
49#define COLOR_BLUE 0x08
50#define COLOR_DARK_BLUE 0x01
51#define COLOR_LIGHT_BLUE 0x09
52#define COLOR_DARK_RED 0x04
54#define COLOR_MAGENTA 0x28
55#define COLOR_MAUVE 0x2a
56#define COLOR_LIGHT_RED 0x24
57#define COLOR_PURPLE 0x05
58#define COLOR_LIGHT_MAGENTA 0x2d
59#define COLOR_DARK_GREEN 0x02
60#define COLOR_GREEN 0x10
61#define COLOR_CYAN 0x18
62#define COLOR_DARK_CYAN 0x03
63#define COLOR_YELLOW 0x30
64#define COLOR_WHITE 0x38
65#define COLOR_PASTEL_BLUE 0x1d
66#define COLOR_ORANGE 0x26
67#define COLOR_PINK 0x3c
68#define COLOR_PASTEL_MAGENTA RGB2GIME( 0xff, 0x00, 0xff )
69#define COLOR_LIGHT_GREEN 0x12
70#define COLOR_SEA_GREEN RGB2GIME( 0x00, 0xf0, 0x20 )
71#define COLOR_LIGHT_CYAN 0x1b
72#define COLOR_DARK_WHITE 0x07
73#define COLOR_LIGHT_WHITE 0x3f
74#define COLOR_DARK_GREY 0x00
75#define COLOR_GREY 0x07
76#define COLOR_LIGHT_GREY 0x38
78#define COLOR_TURQUOISE 0x0b
79#define COLOR_YELLOW_GREEN 0x32
80#define COLOR_BROWN 0x06
81#define COLOR_LAVENDER 0x39
82#define COLOR_OLIVE_GREEN 0x32
83#define COLOR_VIOLET 0x2d
85#define COLOR_LIME RGB2GIME( 0xcc, 0xff, 0x00 )
86#define COLOR_PASTEL_GREEN COLOR_LIGHT_GREEN
87#define COLOR_PASTEL_CYAN COLOR_LIGHT_CYAN
88#define COLOR_LIGHT_YELLOW RGB2GIME( 0xf0, 0xf0, 0x00 )
89#define COLOR_PASTEL_YELLOW COLOR_LIGHT_YELLOW
92#define COLOR_GOLD COLOR_YELLOW
93#define COLOR_PEACH COLOR_PINK
96#define DEFAULT_PEN_COLOR COLOR_WHITE
97#define DEFAULT_PAPER_COLOR COLOR_BLACK
99#define TEXT_COLUMNS_COUNT 40
100#define TEXT_ROWS_COUNT 25
102#define TILEMAP_MODE( x ) (0x00 | ( x & 0x0f ) )
103#define BITMAP2_MODE( x ) (0x40 | ( x & 0x1f ) )
104#define BITMAP4_MODE( x ) (0x60 | ( x & 0x1f ) )
105#define BITMAP16_MODE( x ) (0xe0 | ( x & 0x1f ) )
110#define TILEMAP_MODE_32X24 TILEMAP_MODE( 0 )
111#define TILEMAP_MODE_32X25 TILEMAP_MODE( 1 )
112#define TILEMAP_MODE_32X28 TILEMAP_MODE( 2 )
113#define TILEMAP_MODE_40X24 TILEMAP_MODE( 3 )
114#define TILEMAP_MODE_40X25 TILEMAP_MODE( 4 )
115#define TILEMAP_MODE_40X28 TILEMAP_MODE( 5 )
116#define TILEMAP_MODE_64X24 TILEMAP_MODE( 6 )
117#define TILEMAP_MODE_64X25 TILEMAP_MODE( 7 )
118#define TILEMAP_MODE_64X28 TILEMAP_MODE( 8 )
119#define TILEMAP_MODE_80X24 TILEMAP_MODE( 9 )
120#define TILEMAP_MODE_80X25 TILEMAP_MODE( 10 )
121#define TILEMAP_MODE_80X28 TILEMAP_MODE( 11 )
126#define BITMAP_MODE_128x192x2 BITMAP2_MODE( 0 )
127#define BITMAP_MODE_128x200x2 BITMAP2_MODE( 1 )
128#define BITMAP_MODE_128x225x2 BITMAP2_MODE( 2 )
130#define BITMAP_MODE_160x192x2 BITMAP2_MODE( 3 )
131#define BITMAP_MODE_160x200x2 BITMAP2_MODE( 4 )
132#define BITMAP_MODE_160x225x2 BITMAP2_MODE( 5 )
134#define BITMAP_MODE_256x192x2 BITMAP2_MODE( 6 )
135#define BITMAP_MODE_256x200x2 BITMAP2_MODE( 7 )
136#define BITMAP_MODE_256x225x2 BITMAP2_MODE( 8 )
138#define BITMAP_MODE_320x192x2 BITMAP2_MODE( 9 )
139#define BITMAP_MODE_320x200x2 BITMAP2_MODE( 10 )
140#define BITMAP_MODE_320x225x2 BITMAP2_MODE( 11 )
142#define BITMAP_MODE_512x192x2 BITMAP2_MODE( 12 )
143#define BITMAP_MODE_512x200x2 BITMAP2_MODE( 13 )
144#define BITMAP_MODE_512x225x2 BITMAP2_MODE( 14 )
146#define BITMAP_MODE_640x192x2 BITMAP2_MODE( 15 )
147#define BITMAP_MODE_640x200x2 BITMAP2_MODE( 16 )
148#define BITMAP_MODE_640x225x2 BITMAP2_MODE( 17 )
153#define BITMAP_MODE_64x192x4 BITMAP4_MODE( 0 )
154#define BITMAP_MODE_64x200x4 BITMAP4_MODE( 1 )
155#define BITMAP_MODE_64x225x4 BITMAP4_MODE( 2 )
157#define BITMAP_MODE_80x192x4 BITMAP4_MODE( 3 )
158#define BITMAP_MODE_80x200x4 BITMAP4_MODE( 4 )
159#define BITMAP_MODE_80x225x4 BITMAP4_MODE( 5 )
161#define BITMAP_MODE_128x192x4 BITMAP4_MODE( 6 )
162#define BITMAP_MODE_128x200x4 BITMAP4_MODE( 7 )
163#define BITMAP_MODE_128x225x4 BITMAP4_MODE( 8 )
165#define BITMAP_MODE_160x192x4 BITMAP4_MODE( 9 )
166#define BITMAP_MODE_160x200x4 BITMAP4_MODE( 10 )
167#define BITMAP_MODE_160x225x4 BITMAP4_MODE( 11 )
169#define BITMAP_MODE_256x192x4 BITMAP4_MODE( 12 )
170#define BITMAP_MODE_256x200x4 BITMAP4_MODE( 13 )
171#define BITMAP_MODE_256x225x4 BITMAP4_MODE( 14 )
173#define BITMAP_MODE_320x192x4 BITMAP4_MODE( 15 )
174#define BITMAP_MODE_320x200x4 BITMAP4_MODE( 16 )
175#define BITMAP_MODE_320x225x4 BITMAP4_MODE( 17 )
177#define BITMAP_MODE_512x192x4 BITMAP4_MODE( 18 )
178#define BITMAP_MODE_512x200x4 BITMAP4_MODE( 19 )
179#define BITMAP_MODE_512x225x4 BITMAP4_MODE( 20 )
181#define BITMAP_MODE_640x192x4 BITMAP4_MODE( 21 )
182#define BITMAP_MODE_640x200x4 BITMAP4_MODE( 22 )
183#define BITMAP_MODE_640x225x4 BITMAP4_MODE( 23 )
188#define BITMAP_MODE_64x192x16 BITMAP16_MODE( 0 )
189#define BITMAP_MODE_64x200x16 BITMAP16_MODE( 1 )
190#define BITMAP_MODE_64x225x16 BITMAP16_MODE( 2 )
192#define BITMAP_MODE_80x192x16 BITMAP16_MODE( 3 )
193#define BITMAP_MODE_80x200x16 BITMAP16_MODE( 4 )
194#define BITMAP_MODE_80x225x16 BITMAP16_MODE( 5 )
196#define BITMAP_MODE_128x192x16 BITMAP16_MODE( 6 )
197#define BITMAP_MODE_128x200x16 BITMAP16_MODE( 7 )
198#define BITMAP_MODE_128x225x16 BITMAP16_MODE( 8 )
200#define BITMAP_MODE_160x192x16 BITMAP16_MODE( 9 )
201#define BITMAP_MODE_160x200x16 BITMAP16_MODE( 10 )
202#define BITMAP_MODE_160x225x16 BITMAP16_MODE( 11 )
204#define BITMAP_MODE_256x192x16 BITMAP16_MODE( 12 )
205#define BITMAP_MODE_256x200x16 BITMAP16_MODE( 13 )
206#define BITMAP_MODE_256x225x16 BITMAP16_MODE( 14 )
208#define BITMAP_MODE_320x192x16 BITMAP16_MODE( 15 )
209#define BITMAP_MODE_320x200x16 BITMAP16_MODE( 16 )
210#define BITMAP_MODE_320x225x16 BITMAP16_MODE( 17 )
212#define BITMAP_MODE_DEFAULT BITMAP_MODE_128x192x2
213#define BITMAP_MODE_STANDARD BITMAP_MODE_DEFAULT
215#define DOUBLE_BUFFER_PAGE_0 0
216#define DOUBLE_BUFFER_PAGE_1 8
218#define SPRITE_COUNT 0
219#define SPRITE_WIDTH 0
220#define SPRITE_HEIGHT 0
221#define SPRITE_X_MIN 0
222#define SPRITE_Y_MIN 0
223#define SPRITE_X_MAX 0
224#define SPRITE_Y_MAX 0
226#define SCREEN_SPRITE_RATIO_X 100
227#define SCREEN_SPRITE_RATIO_Y 100
228#define SCREEN_BORDER_X 0
229#define SCREEN_BORDER_Y 0
231#define SPRITE_COUNT 0
232#define SPRITE_WIDTH 0
233#define SPRITE_HEIGHT 0
235#define IMAGE_WIDTH_SIZE 2
236#define IMAGE_WIDTH_OFFSET 0
237#define IMAGE_HEIGHT_SIZE 1
238#define IMAGE_HEIGHT_OFFSET 2
304Variable *
gime_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 );
305void gime_put_image(
Environment * _environment,
Resource * _image,
char * _x,
char * _y,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
char * _flags );
306void gime_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 );
310void gime_get_image(
Environment * _environment,
char * _image,
char * _x,
char * _y,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
int _palette );
317void gime_slice_image(
Environment * _environment,
char * _image,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
char * _destination );
void gime_back(Environment *_environment)
void gime_cline(Environment *_environment, char *_characters)
void gime_hscroll_screen(Environment *_environment, int _direction, int _overlap)
void gime_collision(Environment *_environment, char *_sprite_mask, char *_result)
VIC-II: emit code to check for collision
void gime_cls_box(Environment *_environment, char *_x1, char *_y1, char *_w, char *_h)
Variable * gime_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 gime_move_tiles(Environment *_environment, char *_image, char *_x, char *_y)
void gime_sprite_common_color(Environment *_environment, char *_index, char *_common_color)
VIC-II: emit code to change common sprite's color
void gime_sprite_priority(Environment *_environment, char *_sprite, char *_priority)
void gime_tiles_get(Environment *_environment, char *_result)
void gime_calculate_sequence_frame_offset(Environment *_environment, char *_offset, char *_sequence, char *_frame, int _frame_size, int _frame_count)
void gime_scroll(Environment *_environment, int _dx, int _dy)
void gime_sprite_multicolor(Environment *_environment, char *_sprite)
void gime_get_height(Environment *_environment, char *_result)
void gime_screen_rows(Environment *_environment, char *_rows)
void gime_sprite_data_set(Environment *_environment, char *_sprite, char *_address)
void gime_next_raster(Environment *_environment)
VIC-II: emit code to wait for next raster irq
void gime_sprite_monocolor(Environment *_environment, char *_sprite)
void gime_finalization(Environment *_environment)
void gime_background_color_get_vars(Environment *_environment, char *_index, char *_background_color)
void gime_sprite_color(Environment *_environment, char *_sprite, char *_color)
Variable * gime_get_raster_line(Environment *_environment)
void gime_sprite_compress_horizontal(Environment *_environment, char *_sprite)
void gime_sprite_compress_vertical(Environment *_environment, char *_sprite)
void gime_next_raster_at(Environment *_environment, char *_label, char *_positionlo, char *_positionhi)
VIC-II: emit code to wait for next raster irq at different position
void gime_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)
Variable * gime_new_image(Environment *_environment, int _width, int _height, int _mode)
void gime_text(Environment *_environment, char *_text, char *_text_size, int _raw)
void gime_sprite_at(Environment *_environment, char *_sprite, char *_x, char *_y)
void gime_vertical_scroll(Environment *_environment, char *_displacement)
void gime_tilemap_enable(Environment *_environment, int _width, int _height, int _colors, int _tile_width, int _tile_height)
void gime_initialization(Environment *_environment)
void gime_sprite_data_from(Environment *_environment, char *_sprite, char *_address)
void gime_slice_image(Environment *_environment, char *_image, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_destination)
void gime_put_tile(Environment *_environment, char *_image, char *_x, char *_y)
void gime_tile_at(Environment *_environment, char *_x, char *_y, char *_result)
void gime_cls(Environment *_environment)
void gime_hscroll_line(Environment *_environment, int _direction, int _overlap)
void gime_bitmap_enable(Environment *_environment, int _width, int _height, int _colors)
void gime_tiles_at(Environment *_environment, char *_address)
void gime_pset_int(Environment *_environment, int _x, int _y, int *_c)
void gime_border_color(Environment *_environment, char *_border_color)
VIC-II: emit code to change border color
void gime_hit(Environment *_environment, char *_sprite_mask, char *_result)
VIC-II: emit code to check for collision
void gime_screen_on(Environment *_environment)
void gime_screen_off(Environment *_environment)
void gime_raster_at(Environment *_environment, char *_label, char *_positionlo, char *_positionhi)
VIC-II: emit code to set raster irq
int gime_screen_mode_enable(Environment *_environment, ScreenMode *_screen_mode)
void gime_sprite_disable(Environment *_environment, char *_sprite)
void gime_background_color(Environment *_environment, char *_index, char *_background_color)
VIC-II: emit code to change background color
int gime_palette_extract(Environment *_environment, char *_data, int _width, int _height, int _depth, int _flags, RGBi *_palette)
void gime_sprite_expand_horizontal(Environment *_environment, char *_sprite)
void gime_put_image(Environment *_environment, Resource *_image, char *_x, char *_y, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_flags)
void gime_bitmap_disable(Environment *_environment)
void gime_get_width(Environment *_environment, char *_result)
void gime_bank_select(Environment *_environment, int _bank)
void gime_use_tileset(Environment *_environment, char *_tileset)
void gime_scroll_text(Environment *_environment, int _direction, int _overlap)
Variable * gime_new_images(Environment *_environment, int _frames, int _width, int _height, int _mode)
void gime_put_tiles(Environment *_environment, char *_image, char *_x, char *_y, char *_w, char *_h)
void gime_bitmap_at(Environment *_environment, char *_address)
void gime_colormap_at(Environment *_environment, char *_address)
void gime_get_image(Environment *_environment, char *_image, char *_x, char *_y, char *_frame, char *_sequence, int _frame_size, int _frame_count, int _palette)
void gime_pset_vars(Environment *_environment, char *_x, char *_y, char *_c)
int gime_image_size(Environment *_environment, int _width, int _height, int _mode)
void gime_screen_columns(Environment *_environment, char *_columns)
void gime_sprite_enable(Environment *_environment, char *_sprite)
void gime_pget_color_vars(Environment *_environment, char *_x, char *_y, char *_result)
void gime_screen(Environment *_environment, char *_x, char *_y, char *_c)
Variable * gime_new_sequence(Environment *_environment, int _sequences, int _frames, int _width, int _height, int _mode)
void gime_flip_image(Environment *_environment, Resource *_image, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_direction)
void gime_sprite_expand_vertical(Environment *_environment, char *_sprite)
void gime_textmap_at(Environment *_environment, char *_address)
void gime_horizontal_scroll(Environment *_environment, char *_displacement)
struct _ScreenMode ScreenMode
struct _Resource Resource
struct _RGBi RGBi
Structure to store color components (red, green and blue).
struct _Variable Variable
Structure of a single variable.
struct _Environment Environment
Structure of compilation environment.