79void mmob(
Environment * _environment,
char * _sprite,
char * _sx,
char * _sy,
char * _zx,
char * _zy,
char * _gr,
char * _sp ) {
107 cpu_label( _environment, yExpandedLabel );
111 cpu_label( _environment, nExpandedLabel );
158 0, loopDoneLabel, 1 );
170 cpu_jump( _environment, loopLabel );
172 cpu_label( _environment, loopDoneLabel );
void cpu_and_8bit_const(Environment *_environment, char *_left, int _right, char *_result)
void cpu_compare_and_branch_16bit_const(Environment *_environment, char *_source, int _destination, char *_label, int _positive)
CPU 6309: emit code to compare two 8 bit values and jump if they are equal/different
void cpu_label(Environment *_environment, char *_label)
void cpu_jump(Environment *_environment, char *_label)
void cpu_compare_and_branch_8bit_const(Environment *_environment, char *_source, int _destination, char *_label, int _positive)
CPU 6309: emit code to compare two 8 bit values and jump if they are equal/different
Variable * variable_retrieve(Environment *_environment, char *_name)
Variable * variable_move(Environment *_environment, char *_source, char *_destination)
Store the value of a variable inside another variable by converting it.
Variable * variable_xor(Environment *_environment, char *_left, char *_right)
Calculate logical "xor" and return it as the result.
Variable * variable_temporary(Environment *_environment, VariableType _type, char *_meaning)
Define a temporary variable.
Variable * variable_or(Environment *_environment, char *_left, char *_right)
Calculate logical "or" and return it as the result.
void wait_ticks_var(Environment *_environment, char *_timing)
Emit ASM code for WAIT [expression] TICKS.
void wait_ticks(Environment *_environment, int _timing)
Emit ASM code for WAIT # [integer] TICKS.
void sprite_at_vars(Environment *_environment, char *_sprite, char *_x, char *_y)
Emit ASM code for SPRITE [expression] AT ([expression],[expression]).
void sprite_expand_horizontal_var(Environment *_environment, char *_sprite)
Emit ASM code for SPRITE [expression] EXPAND HORIZONTAL.
void sprite_expand_vertical_var(Environment *_environment, char *_sprite)
Emit ASM code for SPRITE [expression] EXPAND VERTICAL.
Variable * create_path(Environment *_environment, char *_x0, char *_y0, char *_x1, char *_y1)
Emit ASM code to implement CREATE PATH command.
void mmob(Environment *_environment, char *_sprite, char *_sx, char *_sy, char *_zx, char *_zy, char *_gr, char *_sp)
Emit code for MOVE ....
Variable * travel_path(Environment *_environment, char *_p, char *_x, char *_y, char *_times, char *_limited)
Emit ASM code to implement TRAVEL PATH command.
#define MAX_TEMPORARY_STORAGE
struct _Variable Variable
Structure of a single variable.
struct _Environment Environment
Structure of compilation environment.
#define CRITICAL_MMOB_NEEDS_SPRITE(v)