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

Go to the source code of this file.

Macros

#define SET_VIDEOAT_ZERO   SAM_F0_CLR; SAM_F1_CLR; SAM_F2_CLR; SAM_F3_CLR; SAM_F4_CLR; SAM_F5_CLR; SAM_F6_CLR;
#define SET_VIDEOAT_0400   SET_VIDEOAT_ZERO; SAM_F1_SET;
#define SET_VIDEOAT_1C00   SET_VIDEOAT_ZERO; SAM_F2_SET; SAM_F3_SET; SAM_F4_SET;

Functions

void c6847_collision (Environment *_environment, char *_sprite_mask, char *_result)
 VIC-II: emit code to check for collision
void c6847_hit (Environment *_environment, char *_sprite_mask, char *_result)
 VIC-II: emit code to check for collision
void c6847_border_color (Environment *_environment, char *_border_color)
 VIC-II: emit code to change border color
void c6847_background_color (Environment *_environment, char *_index, char *_background_color)
 VIC-II: emit code to change background color
void c6847_sprite_common_color (Environment *_environment, char *_index, char *_common_color)
 VIC-II: emit code to change common sprite's color
void c6847_raster_at (Environment *_environment, char *_label, char *_positionlo, char *_positionhi)
 VIC-II: emit code to set raster irq
void c6847_next_raster (Environment *_environment)
 VIC-II: emit code to wait for next raster irq
void c6847_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 c6847_bank_select (Environment *_environment, int _bank)
void console_calculate (Environment *_environment)
void console_calculate_vars (Environment *_environment)
int c6847_screen_mode_enable (Environment *_environment, ScreenMode *_screen_mode)
void c6847_bitmap_enable (Environment *_environment, int _width, int _height, int _colors)
void c6847_bitmap_disable (Environment *_environment)
void c6847_tilemap_enable (Environment *_environment, int _width, int _height, int _colors, int _tile_width, int _tile_height)
void c6847_bitmap_at (Environment *_environment, char *_address)
void c6847_colormap_at (Environment *_environment, char *_address)
void c6847_textmap_at (Environment *_environment, char *_address)
void c6847_pset_int (Environment *_environment, int _x, int _y, int *_c)
void c6847_pset_vars (Environment *_environment, char *_x, char *_y, char *_c)
void c6847_pget_color_vars (Environment *_environment, char *_x, char *_y, char *_result)
void c6847_screen_on (Environment *_environment)
void c6847_screen_off (Environment *_environment)
void c6847_screen_rows (Environment *_environment, char *_rows)
void c6847_screen_columns (Environment *_environment, char *_columns)
void c6847_sprite_data_from (Environment *_environment, char *_sprite, char *_address)
void c6847_sprite_data_set (Environment *_environment, char *_sprite, char *_address)
void c6847_sprite_enable (Environment *_environment, char *_sprite)
void c6847_sprite_disable (Environment *_environment, char *_sprite)
void c6847_sprite_at (Environment *_environment, char *_sprite, char *_x, char *_y)
void c6847_sprite_priority (Environment *_environment, char *_sprite, char *_priority)
void c6847_sprite_expand_vertical (Environment *_environment, char *_sprite)
void c6847_sprite_expand_horizontal (Environment *_environment, char *_sprite)
void c6847_sprite_compress_vertical (Environment *_environment, char *_sprite)
void c6847_sprite_compress_horizontal (Environment *_environment, char *_sprite)
void c6847_sprite_multicolor (Environment *_environment, char *_sprite)
void c6847_sprite_monocolor (Environment *_environment, char *_sprite)
void c6847_sprite_color (Environment *_environment, char *_sprite, char *_color)
void c6847_tiles_at (Environment *_environment, char *_address)
void c6847_vertical_scroll (Environment *_environment, char *_displacement)
void c6847_horizontal_scroll (Environment *_environment, char *_displacement)
void c6847_get_width (Environment *_environment, char *_result)
void c6847_tiles_get (Environment *_environment, char *_result)
void c6847_get_height (Environment *_environment, char *_result)
void c6847_cls (Environment *_environment)
void c6847_cls_box (Environment *_environment, char *_x1, char *_y1, char *_w, char *_h)
void c6847_scroll_text (Environment *_environment, int _direction, int _overlap)
void c6847_text (Environment *_environment, char *_text, char *_text_size, int _raw)
void c6847_initialization (Environment *_environment)
void c6847_finalization (Environment *_environment)
void c6847_hscroll_line (Environment *_environment, int _direction, int _overlap)
void c6847_hscroll_screen (Environment *_environment, int _direction, int _overlap)
void c6847_back (Environment *_environment)
void c6847_cline (Environment *_environment, char *_characters)
int c6847_image_size (Environment *_environment, int _width, int _height, int _mode, int _transparent)
Variablec6847_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 c6847_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 c6847_put_image (Environment *_environment, Resource *_source, char *_x, char *_y, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_flags)
Variablec6847_new_image (Environment *_environment, int _width, int _height, int _mode)
Variablec6847_new_images (Environment *_environment, int _frames, int _width, int _height, int _mode)
Variablec6847_new_sequence (Environment *_environment, int _sequences, int _frames, int _width, int _height, int _mode)
void c6847_get_image (Environment *_environment, char *_image, char *_x, char *_y, char *_frame, char *_sequence, int _frame_size, int _frame_count, int _palette)
void c6847_scroll (Environment *_environment, int _dx, int _dy)
void c6847_put_tile (Environment *_environment, char *_tile, char *_x, char *_y)
void c6847_tile_at (Environment *_environment, char *_x, char *_y, char *_result)
void c6847_move_tiles (Environment *_environment, char *_tile, char *_x, char *_y)
void c6847_put_tiles (Environment *_environment, char *_tile, char *_x, char *_y, char *_w, char *_h)
void c6847_use_tileset (Environment *_environment, char *_tileset)
Variablec6847_get_raster_line (Environment *_environment)
void c6847_slice_image (Environment *_environment, char *_image, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_destination)
int c6847_palette_extract (Environment *_environment, char *_data, int _width, int _height, int _depth, int _flags, RGBi *_palette)
void c6847_calculate_sequence_frame_offset (Environment *_environment, char *_offset, char *_sequence, char *_frame, int _frame_size, int _frame_count)
void c6847_flip_image (Environment *_environment, Resource *_image, char *_frame, char *_sequence, int _frame_size, int _frame_count, char *_direction)
void c6847_screen (Environment *_environment, char *_x, char *_y, char *_c)

Variables

int lastUsedSlotInCommonPalette = 0

Macro Definition Documentation

◆ SET_VIDEOAT_0400

#define SET_VIDEOAT_0400   SET_VIDEOAT_ZERO; SAM_F1_SET;

Definition at line 259 of file 6847.c.

◆ SET_VIDEOAT_1C00

#define SET_VIDEOAT_1C00   SET_VIDEOAT_ZERO; SAM_F2_SET; SAM_F3_SET; SAM_F4_SET;

Definition at line 260 of file 6847.c.

◆ SET_VIDEOAT_ZERO

Definition at line 257 of file 6847.c.

Function Documentation

◆ c6847_back()

void c6847_back ( Environment * _environment)

Definition at line 1201 of file 6847.c.

◆ c6847_background_color()

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

VIC-II: 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 171 of file 6847.c.

◆ c6847_bank_select()

void c6847_bank_select ( Environment * _environment,
int _bank )

Definition at line 253 of file 6847.c.

◆ c6847_bitmap_at()

void c6847_bitmap_at ( Environment * _environment,
char * _address )

Definition at line 780 of file 6847.c.

◆ c6847_bitmap_disable()

void c6847_bitmap_disable ( Environment * _environment)

Definition at line 755 of file 6847.c.

◆ c6847_bitmap_enable()

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

Definition at line 735 of file 6847.c.

◆ c6847_blit_image()

void c6847_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 2566 of file 6847.c.

◆ c6847_border_color()

void c6847_border_color ( Environment * _environment,
char * _border_color )

VIC-II: 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 145 of file 6847.c.

◆ c6847_calculate_sequence_frame_offset()

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

Definition at line 2872 of file 6847.c.

◆ c6847_cline()

void c6847_cline ( Environment * _environment,
char * _characters )

Definition at line 1205 of file 6847.c.

◆ c6847_cls()

void c6847_cls ( Environment * _environment)

Definition at line 970 of file 6847.c.

◆ c6847_cls_box()

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

Definition at line 982 of file 6847.c.

◆ c6847_collision()

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

VIC-II: 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 117 of file 6847.c.

◆ c6847_colormap_at()

void c6847_colormap_at ( Environment * _environment,
char * _address )

Definition at line 787 of file 6847.c.

◆ c6847_finalization()

void c6847_finalization ( Environment * _environment)

Definition at line 1155 of file 6847.c.

◆ c6847_flip_image()

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

Definition at line 2919 of file 6847.c.

◆ c6847_get_height()

void c6847_get_height ( Environment * _environment,
char * _result )

Definition at line 963 of file 6847.c.

◆ c6847_get_image()

void c6847_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 2760 of file 6847.c.

◆ c6847_get_raster_line()

Variable * c6847_get_raster_line ( Environment * _environment)

Definition at line 2842 of file 6847.c.

◆ c6847_get_width()

void c6847_get_width ( Environment * _environment,
char * _result )

Definition at line 949 of file 6847.c.

◆ c6847_hit()

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

VIC-II: 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 132 of file 6847.c.

◆ c6847_horizontal_scroll()

void c6847_horizontal_scroll ( Environment * _environment,
char * _displacement )

Definition at line 945 of file 6847.c.

◆ c6847_hscroll_line()

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

Definition at line 1172 of file 6847.c.

◆ c6847_hscroll_screen()

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

Definition at line 1188 of file 6847.c.

◆ c6847_image_converter()

Variable * c6847_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 2472 of file 6847.c.

◆ c6847_image_size()

int c6847_image_size ( Environment * _environment,
int _width,
int _height,
int _mode,
int _transparent )

Definition at line 1231 of file 6847.c.

◆ c6847_initialization()

void c6847_initialization ( Environment * _environment)

Definition at line 1059 of file 6847.c.

◆ c6847_move_tiles()

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

Definition at line 2829 of file 6847.c.

◆ c6847_new_image()

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

Definition at line 2673 of file 6847.c.

◆ c6847_new_images()

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

Definition at line 2697 of file 6847.c.

◆ c6847_new_sequence()

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

Definition at line 2728 of file 6847.c.

◆ c6847_next_raster()

void c6847_next_raster ( Environment * _environment)

VIC-II: 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 232 of file 6847.c.

◆ c6847_next_raster_at()

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

VIC-II: 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 249 of file 6847.c.

◆ c6847_palette_extract()

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

Definition at line 2856 of file 6847.c.

◆ c6847_pget_color_vars()

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

Definition at line 848 of file 6847.c.

◆ c6847_pset_int()

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

Definition at line 798 of file 6847.c.

◆ c6847_pset_vars()

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

Definition at line 821 of file 6847.c.

◆ c6847_put_image()

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

Definition at line 2618 of file 6847.c.

◆ c6847_put_tile()

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

Definition at line 2821 of file 6847.c.

◆ c6847_put_tiles()

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

Definition at line 2833 of file 6847.c.

◆ c6847_raster_at()

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

VIC-II: 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 218 of file 6847.c.

◆ c6847_screen()

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

Definition at line 2961 of file 6847.c.

◆ c6847_screen_columns()

void c6847_screen_columns ( Environment * _environment,
char * _columns )

Definition at line 881 of file 6847.c.

◆ c6847_screen_mode_enable()

int c6847_screen_mode_enable ( Environment * _environment,
ScreenMode * _screen_mode )

Definition at line 325 of file 6847.c.

◆ c6847_screen_off()

void c6847_screen_off ( Environment * _environment)

Definition at line 873 of file 6847.c.

◆ c6847_screen_on()

void c6847_screen_on ( Environment * _environment)

Definition at line 869 of file 6847.c.

◆ c6847_screen_rows()

void c6847_screen_rows ( Environment * _environment,
char * _rows )

Definition at line 877 of file 6847.c.

◆ c6847_scroll()

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

Definition at line 2817 of file 6847.c.

◆ c6847_scroll_text()

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

Definition at line 1001 of file 6847.c.

◆ c6847_slice_image()

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

Definition at line 2852 of file 6847.c.

◆ c6847_sprite_at()

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

Definition at line 901 of file 6847.c.

◆ c6847_sprite_color()

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

Definition at line 933 of file 6847.c.

◆ c6847_sprite_common_color()

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

VIC-II: 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 199 of file 6847.c.

◆ c6847_sprite_compress_horizontal()

void c6847_sprite_compress_horizontal ( Environment * _environment,
char * _sprite )

Definition at line 921 of file 6847.c.

◆ c6847_sprite_compress_vertical()

void c6847_sprite_compress_vertical ( Environment * _environment,
char * _sprite )

Definition at line 917 of file 6847.c.

◆ c6847_sprite_data_from()

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

Definition at line 885 of file 6847.c.

◆ c6847_sprite_data_set()

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

Definition at line 889 of file 6847.c.

◆ c6847_sprite_disable()

void c6847_sprite_disable ( Environment * _environment,
char * _sprite )

Definition at line 897 of file 6847.c.

◆ c6847_sprite_enable()

void c6847_sprite_enable ( Environment * _environment,
char * _sprite )

Definition at line 893 of file 6847.c.

◆ c6847_sprite_expand_horizontal()

void c6847_sprite_expand_horizontal ( Environment * _environment,
char * _sprite )

Definition at line 913 of file 6847.c.

◆ c6847_sprite_expand_vertical()

void c6847_sprite_expand_vertical ( Environment * _environment,
char * _sprite )

Definition at line 909 of file 6847.c.

◆ c6847_sprite_monocolor()

void c6847_sprite_monocolor ( Environment * _environment,
char * _sprite )

Definition at line 929 of file 6847.c.

◆ c6847_sprite_multicolor()

void c6847_sprite_multicolor ( Environment * _environment,
char * _sprite )

Definition at line 925 of file 6847.c.

◆ c6847_sprite_priority()

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

Definition at line 905 of file 6847.c.

◆ c6847_text()

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

Definition at line 1021 of file 6847.c.

◆ c6847_textmap_at()

void c6847_textmap_at ( Environment * _environment,
char * _address )

Definition at line 791 of file 6847.c.

◆ c6847_tile_at()

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

Definition at line 2825 of file 6847.c.

◆ c6847_tilemap_enable()

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

Definition at line 759 of file 6847.c.

◆ c6847_tiles_at()

void c6847_tiles_at ( Environment * _environment,
char * _address )

Definition at line 937 of file 6847.c.

◆ c6847_tiles_get()

void c6847_tiles_get ( Environment * _environment,
char * _result )

Definition at line 956 of file 6847.c.

◆ c6847_use_tileset()

void c6847_use_tileset ( Environment * _environment,
char * _tileset )

Definition at line 2838 of file 6847.c.

◆ c6847_vertical_scroll()

void c6847_vertical_scroll ( Environment * _environment,
char * _displacement )

Definition at line 941 of file 6847.c.

◆ console_calculate()

void console_calculate ( Environment * _environment)

Definition at line 262 of file 6847.c.

◆ console_calculate_vars()

void console_calculate_vars ( Environment * _environment)

Definition at line 316 of file 6847.c.

Variable Documentation

◆ lastUsedSlotInCommonPalette

int lastUsedSlotInCommonPalette = 0

Definition at line 100 of file 6847.c.