50 switch( variable->
type ) {
154 memset(
string, 0, variable->
size + 1 );
160 for (i=0; i<(variable->
size-1); ++i ) {
161 if ( ( ( i + 1 ) % 16 ) == 0 ) {
178 memset(
string, 0, variable->
size + 1 );
184 for (i=0; i<(variable->
size-1); ++i ) {
218 for (i=0; i<(variable->
size-1); ++i ) {
222 }
else if ( variable->
value ) {
227 for(
int i=0; i<(variable->
size/4)-1; ++i ) {
228 out4(
"$%2.2x, $%2.2x, $%2.2x, $%2.2x, ", (
unsigned int)( variable->
value & 0xff ), (
unsigned int)( ( variable->
value >> 8 ) & 0xff ), (
unsigned int)( ( variable->
value >> 16 ) & 0xff ), (
unsigned int)( ( variable->
value >> 24 ) & 0xff ) );
230 out4(
"$%2.2x, $%2.2x, $%2.2x, $%2.2x", (
unsigned int)( variable->
value & 0xff ), (
unsigned int)( ( variable->
value >> 8 ) & 0xff ), (
unsigned int)( ( variable->
value >> 16 ) & 0xff ), (
unsigned int)( ( variable->
value >> 24 ) & 0xff ) );
236 for(
int i=0; i<(variable->
size/2)-1; ++i ) {
237 out2(
"$%2.2x, $%2.2x,", (
unsigned int)( variable->
value & 0xff ), (
unsigned int)( ( variable->
value >> 8 ) & 0xff ) );
239 out2(
"$%2.2x, $%2.2x", (
unsigned int)( variable->
value & 0xff ), (
unsigned int)( ( variable->
value >> 8 ) & 0xff ) );
267 variable = variable->
next;
287 switch( variable->
type ) {
295 if ( bitCount == 8 ) {
303 variable = variable->
next;
307 if ( bitCount > 0 ) {
337 actual = actual->
next;
346 out1(
"OFFSETS%4.4x: dw ", actual->
size );
347 for( i=0; i<actual->
count; ++i ) {
349 if ( i < ( actual->
count - 1 ) ) {
355 actual = actual->
next;
365 for (i=0; i<(len-1); ++i ) {
378 variable_cleanup_entry( _environment, variable );
379 variable_cleanup_entry_bit( _environment, variable );
382 outhead0(
"BITMASK: defm $01,$02,$04,$08,$10,$20,$40,$80");
383 outhead0(
"BITMASKN: defm $fe,$fd,$fb,$f7,$ef,$df,$bf,$7f");
391 variable_cleanup_entry( _environment, variable );
392 variable_cleanup_entry_bit( _environment, variable );
397 variable_cleanup_entry( _environment, variable );
398 variable_cleanup_entry_bit( _environment, variable );
403 actual = actual->
next;
410 while( dataSegment ) {
412 if ( dataSegment->
data ) {
418 while( dataDataSegment ) {
419 if ( dataSegment->
type ) {
421 out1(
"$%2.2x,", (
unsigned char)(dataDataSegment->
size) );
422 out1(
"\"%s\"", dataDataSegment->
data );
424 for( i=0; i<(dataDataSegment->
size-1); ++i ) {
425 out1(
"$%2.2x,", (
unsigned char)(dataDataSegment->
data[i]&0xff) );
427 out1(
"$%2.2x", (
unsigned char)(dataDataSegment->
data[i]&0xff) );
431 out1(
"$%2.2x,", (
unsigned char)(dataDataSegment->
type) );
432 out1(
"$%2.2x,", (
unsigned char)(dataDataSegment->
size) );
433 out1(
"\"%s\"", dataDataSegment->
data );
435 out1(
"$%2.2x,", (
unsigned char)(dataDataSegment->
type) );
436 for( i=0; i<(dataDataSegment->
size-1); ++i ) {
437 out1(
"$%2.2x,", (
unsigned char)(dataDataSegment->
data[i]&0xff) );
439 out1(
"$%2.2x", (
unsigned char)(dataDataSegment->
data[i]&0xff) );
442 dataDataSegment = dataDataSegment->
next;
443 if ( dataDataSegment ) {
448 dataSegment = dataSegment->
next;
456 while( staticStrings ) {
458 staticStrings = staticStrings->
next;
void vars_emit_constants(Environment *_environment)
void vars_emit_strips(Environment *_environment, char *_name, Strip *_strips)
#define VT_FLOAT_NORMALIZED_POW2_WIDTH(p)
void vars_emit_word(Environment *_environment, char *_name, int _value)
void vars_emit_dword(Environment *_environment, char *_name, int _value)
void vars_emit_number(Environment *_environment, char *_name, int _value)
void vars_emit_byte(Environment *_environment, char *_name, int _value)
char * escape_newlines(char *_string)
void variable_cleanup(Environment *_environment)
Emit source and configuration lines for variables.
char BANK_TYPE_AS_STRING[][16]
Description of BANK TYPE, in readable format.
#define DSTRING_DEFAULT_SPACE
void banks_generate(Environment *_environment)
void generate_cgoto_address_table(Environment *_environment)
void variable_on_memory_init(Environment *_environment, int _imported_too)
StaticString * valueString
struct _DataDataSegment * next
struct _DataSegment * next
Variable * tempResidentVariables
Bank * banks[BANK_TYPE_COUNT]
Variable * tempVariables[MAX_PROCEDURES]
DataSegment * dataSegment
FILE * debuggerLabelsFile
TileDescriptors * descriptors
struct _Offsetting * next
struct _StaticString * next
unsigned char * valueBuffer
StaticString * valueString
FloatTypePrecision arrayPrecision
#define out4(s, a, b, c, d)
#define BANK_TYPE_COUNT
Maximum number of bank types.
struct _Offsetting Offsetting
#define outline3(s, a, b, c)
struct _Variable Variable
Structure of a single variable.
#define outline2(s, a, b)
struct _Environment Environment
Structure of compilation environment.
#define outhead4(s, a, b, c, d)
struct _Constant Constant
Structure of a single constant.
struct _StaticString StaticString
Structure of a single (static) string.
#define outhead2(s, a, b)
#define CRITICAL_DATATYPE_UNSUPPORTED(k, v)
struct _DataDataSegment DataDataSegment
struct _DataSegment DataSegment
struct _Bank Bank
Structure of a single bank.
char DATATYPE_AS_STRING[][16]