X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=as%2Fhc08%2Fm08adr.c;h=aa904650f70cf8b1b74119862c800f7c93c8e1e7;hb=7ddac4cf56954cd0063d010df958b3e03f3fcdc7;hp=61e10b4c152f7f4e5c4991b6fd2bf6fe928e4575;hpb=59e2bc2dfca815432afbe1d782ecd3a8f1095390;p=fw%2Fsdcc diff --git a/as/hc08/m08adr.c b/as/hc08/m08adr.c index 61e10b4c..aa904650 100644 --- a/as/hc08/m08adr.c +++ b/as/hc08/m08adr.c @@ -18,114 +18,114 @@ int addr(esp) register struct expr *esp; { - register int c; - register struct area *espa; - register Addr_T espv; - char *tcp; - - if ((c = getnb()) == '#') { - expr(esp, 0); - esp->e_mode = S_IMMED; - } else if (c == ',') { - switch(admode(axs)) { - default: - aerr(); - - case S_X: - c = S_IX; - break; - - case S_S: - c = S_IS; - break; - - case S_XP: - c = S_IXP; - break; - } - esp->e_mode = c; - } else if (c == '*') { - expr(esp, 0); - esp->e_mode = S_DIR; - if (esp->e_addr & ~0xFF) - err('d'); - if (more()) { - comma(); - tcp = ip; - switch(admode(axs)) { - case S_X: - esp->e_mode = S_IX1; - break; - - case S_S: - esp->e_mode = S_SP1; - break; - - case S_XP: - esp->e_mode = S_IX1P; - break; - - default: - ip = --tcp; - } - } - } else { - unget(c); - if ((esp->e_mode = admode(axs)) != 0) { - ; - } else { - expr(esp, 0); - espa = esp->e_base.e_ap; - espv = esp->e_addr; - if (more()) { - comma(); - c = admode(axs); - if (esp->e_flag == 0 && - espa == NULL && - (espv & ~0xFF) == 0) { - switch(c) { - default: - aerr(); - - case S_X: - c = S_IX1; - break; - - case S_S: - c = S_SP1; - break; - - case S_XP: - c = S_IX1P; - break; - } - } else { - switch(c) { - default: - aerr(); - - case S_X: - c = S_IX2; - break; - - case S_S: - c = S_SP2; - break; - - case S_XP: - c = S_IX2P; - break; - } - } - esp->e_mode = c; - } else { - esp->e_mode = S_EXT; - } - } - } - return (esp->e_mode); + register int c; + register struct area *espa; + register Addr_T espv; + const char *tcp; + + if ((c = getnb()) == '#') { + expr(esp, 0); + esp->e_mode = S_IMMED; + } else if (c == ',') { + switch(admode(axs)) { + default: + aerr(); + + case S_X: + c = S_IX; + break; + + case S_S: + c = S_IS; + break; + + case S_XP: + c = S_IXP; + break; + } + esp->e_mode = c; + } else if (c == '*') { + expr(esp, 0); + esp->e_mode = S_DIR; + if (esp->e_addr & ~0xFF) + err('d'); + if (more()) { + comma(); + tcp = ip; + switch(admode(axs)) { + case S_X: + esp->e_mode = S_IX1; + break; + + case S_S: + esp->e_mode = S_SP1; + break; + + case S_XP: + esp->e_mode = S_IX1P; + break; + + default: + ip = --tcp; + } + } + } else { + unget(c); + if ((esp->e_mode = admode(axs)) != 0) { + ; + } else { + expr(esp, 0); + espa = esp->e_base.e_ap; + espv = esp->e_addr; + if (more()) { + comma(); + c = admode(axs); + if (esp->e_flag == 0 && + espa == NULL && + (espv & ~0xFF) == 0) { + switch(c) { + default: + aerr(); + + case S_X: + c = S_IX1; + break; + + case S_S: + c = S_SP1; + break; + + case S_XP: + c = S_IX1P; + break; + } + } else { + switch(c) { + default: + aerr(); + + case S_X: + c = S_IX2; + break; + + case S_S: + c = S_SP2; + break; + + case S_XP: + c = S_IX2P; + break; + } + } + esp->e_mode = c; + } else { + esp->e_mode = S_EXT; + } + } + } + return (esp->e_mode); } - + /* * Enter admode() to search a specific addressing mode table * for a match. Return the addressing value on a match or @@ -135,22 +135,22 @@ int admode(sp) register struct adsym *sp; { - register char *ptr; - register int i; - register char *ips; - - ips = ip; - unget(getnb()); - - i = 0; - while ( *(ptr = &sp[i].a_str[0]) ) { - if (srch(ptr)) { - return(sp[i].a_val); - } - i++; - } - ip = ips; - return(0); + register char *ptr; + register int i; + register const char *ips; + + ips = ip; + unget(getnb()); + + i = 0; + while ( *(ptr = &sp[i].a_str[0]) ) { + if (srch(ptr)) { + return(sp[i].a_val); + } + i++; + } + ip = ips; + return(0); } /* @@ -160,26 +160,26 @@ int srch(str) register char *str; { - register char *ptr; - ptr = ip; - - while (*ptr && *str) { - if(ccase[*ptr & 0x007F] != ccase[*str & 0x007F]) - break; - ptr++; - str++; - } - if (ccase[*ptr & 0x007F] == ccase[*str & 0x007F]) { - ip = ptr; - return(1); - } - - if (!*str) - if (any(*ptr," \t\n,];")) { - ip = ptr; - return(1); - } - return(0); + register const char *ptr; + ptr = ip; + + while (*ptr && *str) { + if(ccase[*ptr & 0x007F] != ccase[*str & 0x007F]) + break; + ptr++; + str++; + } + if (ccase[*ptr & 0x007F] == ccase[*str & 0x007F]) { + ip = ptr; + return(1); + } + + if (!*str) + if (any(*ptr," \t\n,];")) { + ip = ptr; + return(1); + } + return(0); } /* @@ -190,16 +190,16 @@ any(c,str) int c; char*str; { - while (*str) - if(*str++ == c) - return(1); - return(0); + while (*str) + if(*str++ == c) + return(1); + return(0); } -struct adsym axs[] = { /* a, x, or s registers */ - { "a", S_A }, - { "x", S_X }, - { "s", S_S }, - { "x+", S_XP }, - { "", 0x00 } +struct adsym axs[] = { /* a, x, or s registers */ + { "a", S_A }, + { "x", S_X }, + { "s", S_S }, + { "x+", S_XP }, + { "", 0x00 } };