/* * create a new empty assembly */ Assembly* new_assembly() { Assembly* assembly; /* allocate structuere memory */ assembly = malloc(sizeof(Assembly)); /* create all segments */ assembly->code = malloc(sizeof(Segment)); assembly->code->data = MS_Open(DEFCODESIZE); assembly->code->mask = MS_Open(DEFCODESIZE>>3); assembly->code->segment = CODE; assembly->lit = malloc(sizeof(Segment)); assembly->lit->data = MS_Open(DEFLITSIZE); assembly->lit->mask = MS_Open(DEFLITSIZE>>3); assembly->lit->segment = LIT; assembly->data = malloc(sizeof(Segment)); assembly->data->data = MS_Open(DEFDATASIZE); assembly->data->mask = MS_Open(DEFDATASIZE>>3); assembly->data->segment = DATA; assembly->bss_size = 0; assembly->labels = HT_Create(); /* return */ return assembly; }
char inventory_create(){ g_inventory = HT_Create(100); return g_inventory != 0; }