81void ellipse(
Environment * _environment,
char * _x,
char * _y,
char * _rx,
char * _ry,
char * _c,
int _preserve_color ) {
144 sprintf( forLabel1,
"%sfor1", label );
146 sprintf( endForLabel1,
"%sendfor1", label );
225 cpu_jump( _environment, forLabel1 );
236 sprintf( forLabel2,
"%sfor2", label );
238 sprintf( endForLabel2,
"%sendfor2", label );
343 cpu_jump( _environment, forLabel2 );
377 cpu_call( _environment,
"lib_ellipse");
void cpu_label(Environment *_environment, char *_label)
void cpu_call(Environment *_environment, char *_label)
void cpu_jump(Environment *_environment, char *_label)
void cpu_return(Environment *_environment)
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_add(Environment *_environment, char *_source, char *_destination)
Add two variable and return the sum of them.
Variable * variable_retrieve(Environment *_environment, char *_name)
Variable * variable_retrieve_or_define(Environment *_environment, char *_name, VariableType _type, int _value)
Variable * variable_mul2_const(Environment *_environment, char *_destination, int _steps)
Double a variable for various times and return the result.
void variable_decrement(Environment *_environment, char *_source)
Decrement a variable by one.
Variable * variable_less_than(Environment *_environment, char *_source, char *_destination, int _equal)
Compare two variable and return the result of comparation.
Variable * variable_move(Environment *_environment, char *_source, char *_destination)
Store the value of a variable inside another variable by converting it.
void variable_increment(Environment *_environment, char *_source)
Increment a variable by one.
Variable * variable_define(Environment *_environment, char *_name, VariableType _type, int _value)
Define a variable for the program.
Variable * variable_mul(Environment *_environment, char *_source, char *_destination)
Make a multiplication between two variable and return the product of them.
void variable_add_inplace_vars(Environment *_environment, char *_source, char *_destination)
Add two variable and return the sum of them on the first.
Variable * variable_sub(Environment *_environment, char *_source, char *_dest)
Make a differenze between two variable and return the difference of them.
Variable * variable_temporary(Environment *_environment, VariableType _type, char *_meaning)
Define a temporary variable.
Variable * variable_store(Environment *_environment, char *_destination, unsigned int _value)
Store a direct value to a variable.
Variable * variable_greater_than_const(Environment *_environment, char *_source, int _destination, int _equal)
void plot(Environment *_environment, char *_x, char *_y, char *_c, int _preserve_color)
void ellipse(Environment *_environment, char *_x, char *_y, char *_rx, char *_ry, char *_c, int _preserve_color)
Emit code for ELLIPSE command.
void end_if_then(Environment *_environment)
Emit ASM code for ENDIF.
void if_then(Environment *_environment, char *_expression)
Emit ASM code for IF ... THEN ....
#define MAX_TEMPORARY_STORAGE
struct _Variable Variable
Structure of a single variable.
struct _Environment Environment
Structure of compilation environment.