50 switch( variable->
type ) {
73 outhead1(
"%s: .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0", variable->
realName);
80 outhead1(
"%s: .db 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0", variable->
realName);
186 for (i=0; i<(variable->
size-1); ++i ) {
187 if ( ( ( i + 1 ) % 16 ) == 0 ) {
202 for (i=0; i<(variable->
size-1); ++i ) {
203 if ( ( ( i + 1 ) % 16 ) == 0 ) {
223 for (i=0; i<(variable->
size-1); ++i ) {
258 for (i=0; i<(variable->
size-1); ++i ) {
262 }
else if ( variable->
value ) {
267 for(
int i=0; i<(variable->
size/4)-1; ++i ) {
268 out4(
"0x%2.2x, 0x%2.2x, 0x%2.2x, 0x%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 ) );
270 out4(
"0x%2.2x, 0x%2.2x, 0x%2.2x, 0x%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 ) );
276 for(
int i=0; i<(variable->
size/2)-1; ++i ) {
277 out2(
"0x%2.2x, 0x%2.2x,", (
unsigned int)( variable->
value & 0xff ), (
unsigned int)( ( variable->
value >> 8 ) & 0xff ) );
279 out2(
"0x%2.2x, 0x%2.2x", (
unsigned int)( variable->
value & 0xff ), (
unsigned int)( ( variable->
value >> 8 ) & 0xff ) );
285 for(
int i=0; i<(variable->
size)-1; ++i ) {
286 out1(
"0x%2.2x,", (
unsigned int)( variable->
value & 0xff ) );
288 out1(
"0x%2.2x", (
unsigned int)( variable->
value & 0xff ) );
293 for(
int i=0; i<(variable->
size)-1; ++i ) {
294 out1(
"0x%2.2x,", (
unsigned char)(variable->
value?0xff:0x00) );
296 out1(
"0x%2.2x", (
unsigned char)(variable->
value?0xff:0x00) );
322 variable = variable->
next;
342 switch( variable->
type ) {
350 if ( bitCount == 8 ) {
358 variable = variable->
next;
362 if ( bitCount > 0 ) {
392 actual = actual->
next;
401 out1(
"OFFSETS%4.4x: .dw ", actual->
size );
402 for( i=0; i<actual->
count; ++i ) {
404 if ( i < ( actual->
count - 1 ) ) {
412 while( actualVariable ) {
418 actualVariable = actualVariable->
next;
453 actual = actual->
next;
462 values[count] = actual->
size;
464 sprintf( address[count],
"fs%4.4xoffsetframe", actual->
size );
465 actual = actual->
next;
481 for (i=0; i<(len-1); ++i ) {
494 while( staticStrings ) {
495 out2(
"cstring%d: .db %d,", staticStrings->
id, (
int)strlen(staticStrings->
value) );
496 for( i=0; i<((int)strlen(staticStrings->
value)-1); ++i ) {
497 out1(
"0x%2.2x,", (
unsigned char)(staticStrings->
value[i]&0xff) );
499 out1(
"0x%2.2x", (
unsigned char)(staticStrings->
value[i]&0xff) );
501 staticStrings = staticStrings->
next;
509 variable_cleanup_entry( _environment, variable );
510 variable_cleanup_entry_bit( _environment, variable );
513 outhead0(
"BITMASK: .db 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80");
514 outhead0(
"BITMASKN: .db 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f");
522 variable_cleanup_entry( _environment, variable );
523 variable_cleanup_entry_bit( _environment, variable );
528 variable_cleanup_entry( _environment, variable );
529 variable_cleanup_entry_bit( _environment, variable );
534 actual = actual->
next;
555 outhead0(
"sreg: .dw 0, 0, 0, 0, 0, 0, 0, 0, 0");
567 while( dataSegment ) {
569 if ( dataSegment->
data ) {
575 while( dataDataSegment ) {
576 if ( dataSegment->
type ) {
581 for( i=0; i<(dataDataSegment->
size-1); ++i ) {
582 out1(
"0x%2.2x,", (
unsigned char)(dataDataSegment->
data[i]&0xff) );
592 out1(
"0x%2.2x,", (
unsigned char)(dataDataSegment->
type) );
593 for( i=0; i<(dataDataSegment->
size-1); ++i ) {
594 out1(
"0x%2.2x,", (
unsigned char)(dataDataSegment->
data[i]&0xff) );
596 out1(
"0x%2.2x", (
unsigned char)(dataDataSegment->
data[i]&0xff) );
599 dataDataSegment = dataDataSegment->
next;
600 if ( dataDataSegment ) {
605 dataSegment = dataSegment->
next;
629 outhead1(
"BANKWINDOWID%2.2x: .db 0xFF, 0xFF", i );
void vars_emit_constants(Environment *_environment)
void vars_emit_strips(Environment *_environment, char *_name, Strip *_strips)
void cpu_address_table_build(Environment *_environment, char *_table, int *_values, char *_address[], int _count)
void cpu_address_table_lookup(Environment *_environment, char *_table, int _count)
#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)
void buffered_prepend_output(Environment *_environment)
void buffered_push_output(Environment *_environment)
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]
int maxExpansionBankSize[MAX_RESIDENT_SHAREDS]
Variable * tempVariables[MAX_PROCEDURES]
DataSegment * dataSegment
FILE * debuggerLabelsFile
TileDescriptors * descriptors
struct _Offsetting * next
OffsettingVariable * variables
struct _Variable * variable
struct _OffsettingVariable * next
struct _StaticString * next
unsigned char * valueBuffer
StaticString * valueString
FloatTypePrecision arrayPrecision
#define out4(s, a, b, c, d)
#define deploy_inplace_preferred(s, e)
#define BANK_TYPE_COUNT
Maximum number of bank types.
#define MAX_TEMPORARY_STORAGE
struct _Offsetting Offsetting
#define MAX_RESIDENT_SHAREDS
struct _Variable Variable
Structure of a single variable.
#define outline2(s, a, b)
struct _Environment Environment
Structure of compilation environment.
struct _OffsettingVariable OffsettingVariable
#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]