#include #include #include "assemble.h" /******************************************************************** * Read in mnemonics and put in linked list pointed to by head * ********************************************************************/ void read_mnemonics(char *filename, Command_Node *head) { FILE *f; char name[4]; unsigned char mode[14]; int i, tmp; if ((f = fopen(filename, "r")) != NULL) { fscanf (f, "%s", name); while (!feof(f)) { for (i=0; i<14; i++) { fscanf (f, "%x", &tmp); mode[i] = (unsigned char) tmp; } add_mnemonic_element (head, name, mode); fscanf (f, "%s", name); } fclose (f); } else { fprintf (stderr, "Mnemonics definition file not found\n"); exit (EXIT_FAILURE); } } /******************************************************************** * Read in labels and put in linked list pointed to by head * ********************************************************************/ void read_labels(char *filename, Label_Node *head) { FILE *f; char name[30]; long value; if ((f = fopen(filename, "r")) != NULL) { while (!feof(f)) { fscanf (f, "%s %lx", name, &value); add_label_element (head, name, value); } fclose (f); } else { fprintf (stderr, "Labels definition file not found\n"); exit (EXIT_FAILURE); } }