4 LABELTAB *labels[LABELTABSIZE];
7 WORD getlabel(const char *label)
11 for(np = labels[hash(label, LABELTABSIZE)]; np != NULL; np = np->next){
12 if(strcmp(label, np->name) == 0) {
20 bool addlabel(const char *label, WORD adr)
25 if(getlabel(label) != 0xFFFF){
26 setcerr(101, label); /* label already defined */
29 np = (LABELTAB *) malloc(sizeof(*np));
30 if(np == NULL || (np->name = strdup(label)) == NULL){
31 setcerr(102, NULL); /* label table is full */
34 hashval = hash(label, LABELTABSIZE);
35 np->next = labels[hashval];
46 for(i = 0; i < LABELTABSIZE; i++){
47 for(np = labels[i]; np != NULL; np = np->next){
48 fprintf(stdout, "%s ---> #%04X\n", np->name, np->adr);
58 for(i = 0; i < LABELTABSIZE; i++){
59 for(np = labels[i]; np != NULL; np = nq){