48#define KEY_ASTERISK 0xfe
55#define KEY_COMMODORE 0xfe
57#define KEY_CRSR_LEFT_RIGHT 0xfe
58#define KEY_CRSR_UP_DOWN 0xfe
76#define KEY_INSERT 0xfe
80#define KEY_LEFT_ARROW 0xfe
81#define KEY_LEFT_SHIFT 21
93#define KEY_RIGHT_SHIFT 21
94#define KEY_RUNSTOP 0xfe
96#define KEY_SEMICOLON 0xfe
101#define KEY_UP_ARROW 8
107#define KEY_BACKSLASH 19
108#define KEY_SQUARE_OPEN 0xfe
109#define KEY_SQUARE_CLOSED 0xfe
110#define KEY_SEMICOMMA 0xfe
111#define KEY_QUOTE 0xfe
116#define KEY_GRAPH 0xfe
123#define KEY_SELECT 0xfe
131#define KEY_DIVISION 0xfe
133#define KEYBOARD_CONFIG_DEFAULT_SYNC 1
135#define INPUT_DEFAULT_SEPARATOR ','
136#define INPUT_DEFAULT_SIZE 32
137#define INPUT_DEFAULT_CURSOR 95
138#define INPUT_DEFAULT_RATE 16
139#define INPUT_DEFAULT_DELAY 16
141#define SCREEN_CAPABILITIES ( ( 1<<BITMAP_NATIVE ) )
151#define JOYSTICK_CONFIG_DEFAULT_SYNC 1
153#define DEFAULT_PAINT_BUCKET_SIZE 1024
157#define BANK_BASE_ADDRESS 0
159#define DSTRING_DEFAULT_COUNT 255
160#define DSTRING_DEFAULT_SPACE 1024
182#define COLOR_BLACK 0x14
183#define COLOR_DARK_BLUE 0x04
184#define COLOR_BLUE 0x04
185#define COLOR_LIGHT_BLUE 0x15
186#define COLOR_DARK_RED 0x1c
187#define COLOR_RED 0x1c
188#define COLOR_LIGHT_RED 0x0c
189#define COLOR_MAGENTA 0x18
190#define COLOR_MAUVE 0x1d
191#define COLOR_PURPLE 0x05
192#define COLOR_LIGHT_MAGENTA 0x0d
193#define COLOR_DARK_GREEN 0x16
194#define COLOR_GREEN 0x16
195#define COLOR_LIGHT_GREEN 0x12
196#define COLOR_CYAN 0x06
197#define COLOR_DARK_CYAN 0x06
198#define COLOR_YELLOW 0x1e
199#define COLOR_PASTEL_BLUE 0x1f
200#define COLOR_ORANGE 0x0e
201#define COLOR_PINK 0x07
202#define COLOR_PASTEL_MAGENTA 0x0f
203#define COLOR_SEA_GREEN 0x02
204#define COLOR_LIGHT_CYAN 0x13
205#define COLOR_LIME 0x1a
206#define COLOR_PASTEL_GREEN 0x19
207#define COLOR_PASTEL_CYAN 0x1b
208#define COLOR_LIGHT_YELLOW 0x0a
209#define COLOR_PASTEL_YELLOW 0x03
210#define COLOR_DARK_WHITE 0x00
211#define COLOR_WHITE 0x00
212#define COLOR_LIGHT_WHITE 0x0b
216#define COLOR_VIOLET COLOR_PURPLE
217#define COLOR_BROWN COLOR_RED
218#define COLOR_DARK_GREY COLOR_BLACK
219#define COLOR_GREY COLOR_WHITE
220#define COLOR_LIGHT_GREY COLOR_WHITE
221#define COLOR_LAVENDER COLOR_VIOLET
222#define COLOR_GOLD COLOR_YELLOW
223#define COLOR_TURQUOISE COLOR_LIGHT_BLUE
224#define COLOR_TAN COLOR_BROWN
225#define COLOR_YELLOW_GREEN COLOR_YELLOW
226#define COLOR_OLIVE_GREEN COLOR_PASTEL_GREEN
227#define COLOR_PEACH COLOR_PINK
228#define COLOR_COUNT 16
230#define DEFAULT_PEN_COLOR COLOR_WHITE
231#define DEFAULT_PAPER_COLOR COLOR_BLACK
233#define TEXT_COLUMNS_COUNT 20
234#define TEXT_ROWS_COUNT 24
236#define BITMAP_MODE_GRAPHIC0 0
237#define BITMAP_MODE_GRAPHIC1 1
238#define BITMAP_MODE_GRAPHIC2 2
239#define BITMAP_MODE_GRAPHIC3 3
241#define BITMAP_MODE_DEFAULT BITMAP_MODE_GRAPHIC2
242#define BITMAP_MODE_STANDARD BITMAP_MODE_DEFAULT
244#define SPRITE_COUNT 0
245#define SPRITE_WIDTH 0
246#define SPRITE_HEIGHT 0
248#define SPRITE_X_MIN 0
249#define SPRITE_Y_MIN 0
250#define SPRITE_X_MAX 0
251#define SPRITE_Y_MAX 0
253#define SCREEN_SPRITE_RATIO_X 100
254#define SCREEN_SPRITE_RATIO_Y 100
255#define SCREEN_BORDER_X 0
256#define SCREEN_BORDER_Y 0
258#define IMAGE_WIDTH_SIZE 2
259#define IMAGE_WIDTH_OFFSET 0
260#define IMAGE_HEIGHT_SIZE 1
261#define IMAGE_HEIGHT_OFFSET 2
263#define DOUBLE_BUFFER_PAGE_0 0
264#define DOUBLE_BUFFER_PAGE_1 1
266#define MAX_AUDIO_CHANNELS 3
281#define CPC_GA_MASK( mask, value ) \
282 outline0( "LD B, $7F" ) \
283 outline0( "LD A, (GAVALUE)" ); \
284 outline1( "AND A, $%2.2x", (unsigned char) ~( (unsigned char) mask & 0xff ) ); \
285 outline1( "OR A, $%2.2x", (unsigned char) ( (unsigned char) value & 0xff ) ); \
286 outline0( "LD (GAVALUE), A" ); \
287 outline0( "LD C, A" ); \
288 outline0( "OUT (C), C" );
368Variable *
cpc_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 );
370void cpc_put_image(
Environment * _environment,
Resource * _image,
char * _x,
char * _y,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
char * _flags );
371void cpc_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 );
376void cpc_get_image(
Environment * _environment,
char * _image,
char * _x,
char * _y,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
int _palette );
390void cpc_slice_image_copy(
Environment * _environment,
char * _image,
char * _frame,
char * _sequence,
int _frame_size,
int _frame_count,
char * _destination );
401void cpc_dload(
Environment * _environment,
char * _filename,
char * _offset,
char * _address,
char * _size );
402void cpc_dsave(
Environment * _environment,
char * _filename,
char * _offset,
char * _address,
char * _size );
void cpc_horizontal_scroll(Environment *_environment, char *_displacement)
void cpc_background_color_semivars(Environment *_environment, int _index, char *_background_color)
cpc: emit code to change background color
void cpc_tiles_get(Environment *_environment, char *_result)
Variable * cpc_get_raster_line(Environment *_environment)
void cpc_wait_key(Environment *_environment, int _release)
void cpc_key_state(Environment *_environment, char *_scancode, char *_result)
void cpc_flash_off(Environment *_environment, char *_index)
void cpc_screen_rows(Environment *_environment, char *_rows)
void cpc_chain(Environment *_environment, char *_filename)
Variable * cpc_new_sequence(Environment *_environment, int _sequences, int _frames, int _width, int _height, int _mode)
void cpc_move_tiles(Environment *_environment, char *_image, char *_x, char *_y)
void(* CpcSliceImageFunction)(Environment *, char *, char *, char *, int, int, char *)
void cpc_sys_call(Environment *_environment, int _destination)
void cpc_get_image(Environment *_environment, char *_image, char *_x, char *_y, char *_frame, char *_sequence, int _frame_size, int _frame_count, int _palette)
void cpc_bank_select(Environment *_environment, int _bank)
void cpc_sprite_common_color(Environment *_environment, char *_index, char *_common_color)
cpc: emit code to change common sprite's color
void cpc_use_tileset(Environment *_environment, char *_tileset)
void cpc_cline(Environment *_environment, char *_characters)
void cpc_joy(Environment *_environment, int _port, char *_value)
void cpc_wait_fire(Environment *_environment, int _port, int _release)
void cpc_tiles_at(Environment *_environment, char *_address)
void cpc_screen_off(Environment *_environment)
void cpc_sprite_expand_horizontal(Environment *_environment, char *_sprite)
void cpc_flash_register(Environment *_environment, char *_index, char *_timer, char *_color)
void cpc_colors_vars(Environment *_environment, char *_foreground_color, char *_background_color)
void cpc_sprite_compress_vertical(Environment *_environment, char *_sprite)
void cpc_back(Environment *_environment)
void cpc_background_color(Environment *_environment, int _index, int _background_color)
cpc: emit code to change background color
void cpc_move_video_video(Environment *_environment, char *_from, char *_to, char *_size)
void cpc_scroll_text(Environment *_environment, int _direction, int _overlap)
void cpc_busy_wait(Environment *_environment, char *_timing)
void cpc_scroll(Environment *_environment, int _dx, int _dy)
void cpc_pget_color_vars(Environment *_environment, char *_x, char *_y, char *_result)
void cpc_wait_key_or_fire(Environment *_environment, int _port, int _release)
void cpc_hit(Environment *_environment, char *_sprite_mask, char *_result)
cpc: emit code to check for collision
void cpc_bitmap_enable(Environment *_environment, int _width, int _height, int _colors)
void cpc_sprite_disable(Environment *_environment, char *_sprite)
Variable * cpc_new_image(Environment *_environment, int _width, int _height, int _mode)
void cpc_colormap_at(Environment *_environment, char *_address)
void cpc_scancode(Environment *_environment, char *_scacode)
void cpc_flash_end(Environment *_environment)
void cpc_initialization(Environment *_environment)
void cpc_wait_key_or_fire_semivar(Environment *_environment, char *_port, int _release)
void cpc_scanshift(Environment *_environment, char *_shifts)
void cpc_key_pressed(Environment *_environment, char *_scancode, char *_result)
void cpc_tilemap_enable(Environment *_environment, int _width, int _height, int _colors, int _tile_width, int _tile_height)
void cpc_pset_vars(Environment *_environment, char *_x, char *_y, char *_c)
void cpc_keyshift(Environment *_environment, char *_shifts)
void cpc_dsave(Environment *_environment, char *_filename, char *_offset, char *_address, char *_size)
void cpc_tile_at(Environment *_environment, char *_x, char *_y, char *_result)
void cpc_move_memory_video(Environment *_environment, char *_from, char *_to, char *_size)
void cpc_wait_fire_semivar(Environment *_environment, char *_port, int _release)
Variable * cpc_collision(Environment *_environment, char *_sprite)
cpc: emit code to check for collision
void cpc_raster_at(Environment *_environment, char *_label, char *_positionlo, char *_positionhi)
cpc: emit code to set raster irq
void cpc_screen_on(Environment *_environment)
void cpc_bitmap_disable(Environment *_environment)
void cpc_get_width(Environment *_environment, char *_result)
void cpc_timer_set_counter(Environment *_environment, char *_timer, char *_counter)
void cpc_sprite_monocolor(Environment *_environment, char *_sprite)
void cpc_sprite_compress_horizontal(Environment *_environment, char *_sprite)
void cpc_asciicode(Environment *_environment, char *_asciicode)
void cpc_pset_int(Environment *_environment, int _x, int _y, int *_c)
void cpc_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 cpc_slice_image_extract(Environment *_environment, char *_image, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_destination)
void cpc_next_raster(Environment *_environment)
cpc: emit code to wait for next raster irq
void cpc_timer_set_status_on(Environment *_environment, char *_timer)
void cpc_clear_key(Environment *_environment)
void cpc_get_height(Environment *_environment, char *_result)
Variable * cpc_new_images(Environment *_environment, int _frames, int _width, int _height, int _mode)
void cpc_flash_begin(Environment *_environment, char *_index, char *_register)
void cpc_timer_set_init(Environment *_environment, char *_timer, char *_init)
void cpc_cls(Environment *_environment)
void cpc_put_tiles(Environment *_environment, char *_image, char *_x, char *_y, char *_w, char *_h)
void cpc_move_video_memory(Environment *_environment, char *_from, char *_to, char *_size)
void cpc_sprite_data_from(Environment *_environment, char *_sprite, char *_address)
void cpc_sprite_expand_vertical(Environment *_environment, char *_sprite)
void cpc_cls_box(Environment *_environment, char *_x1, char *_y1, char *_w, char *_h)
void cpc_sprite_at(Environment *_environment, char *_sprite, char *_x, char *_y)
void cpc_wait_vbl(Environment *_environment, char *_raster_line)
void cpc_sprite_priority(Environment *_environment, char *_sprite, char *_priority)
void cpc_textmap_at(Environment *_environment, char *_address)
void cpc_timer_set_address(Environment *_environment, char *_timer, char *_address)
void cpc_joy_vars(Environment *_environment, char *_port, char *_value)
int cpc_screen_mode_enable(Environment *_environment, ScreenMode *_screen_mode)
void cpc_timer_set_status_off(Environment *_environment, char *_timer)
Variable * cpc_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 cpc_sprite_multicolor(Environment *_environment, char *_sprite)
void cpc_dload(Environment *_environment, char *_filename, char *_offset, char *_address, char *_size)
void cpc_put_key(Environment *_environment, char *_string, char *_size)
int cpc_image_size(Environment *_environment, int _width, int _height, int _mode)
void cpc_flip_image(Environment *_environment, Resource *_image, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_direction)
void cpc_border_color(Environment *_environment, char *_border_color)
cpc: emit code to change border color
void cpc_inkey(Environment *_environment, char *_key)
void cpc_slice_image_copy(Environment *_environment, char *_image, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_destination)
void cpc_put_image(Environment *_environment, Resource *_image, char *_x, char *_y, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_flags)
void cpc_vertical_scroll(Environment *_environment, char *_displacement)
void cpc_next_raster_at(Environment *_environment, char *_label, char *_positionlo, char *_positionhi)
cpc: emit code to wait for next raster irq at different position
void cpc_fade(Environment *_environment, char *_ticks)
Variable * cpc_sprite_converter(Environment *_environment, char *_data, int _width, int _height, int _depth, RGBi *_color)
void cpc_sprite_data_set(Environment *_environment, char *_sprite, char *_address)
void cpc_bitmap_at(Environment *_environment, char *_address)
void cpc_hscroll_line(Environment *_environment, int _direction, int _overlap)
void cpc_background_color_get_vars(Environment *_environment, char *_index, char *_background_color)
cpc: emit code to retrieve background color
void cpc_hscroll_screen(Environment *_environment, int _direction, int _overlap)
void cpc_text(Environment *_environment, char *_text, char *_text_size, int _raw)
void cpc_sprite_enable(Environment *_environment, char *_sprite)
void cpc_calculate_sequence_frame_offset(Environment *_environment, char *_offset, char *_sequence, char *_frame, int _frame_size, int _frame_count)
void cpc_background_color_vars(Environment *_environment, char *_index, char *_background_color)
cpc: emit code to change background color
void cpc_screen_columns(Environment *_environment, char *_columns)
int cpc_palette_extract(Environment *_environment, char *_data, int _width, int _height, int _depth, int _flags, RGBi *_palette)
void cpc_finalization(Environment *_environment)
void cpc_sprite_color(Environment *_environment, char *_sprite, char *_color)
void cpc_put_tile(Environment *_environment, char *_image, char *_x, char *_y)
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.