30 assert(isdigit(str[0]) || str[0] ==
'-');
35 n = strtol(str, &check, 10);
41 if(n < -32768 || n > 32767) {
49 assert(str[0] ==
'#');
54 if(*str ==
'-' || strlen(str) > 4) {
59 w = (
WORD)strtol(str, &check, 16);
71 { 114,
"not integer" },
73 { 116,
"out of hex range" },
86 assert(
sizeof(
WORD) * 8 == 16);
90 if(!isdigit(*str) && *str !=
'-' && *str !=
'#') {
112 s[d++] = word % 10 +
'0';
113 }
while((word /= 10) > 0);
131 bit[i++] = (word & mask) ?
'1' :
'0';
132 }
while((mask >>= 1) > 0);
141 if(logicalmode ==
true) {
142 fprintf(stdout,
"%6u", word);
144 fprintf(stdout,
"%6d", (
signed short)word);
146 fprintf(stdout,
" = #%04X = %s", word, bit);
148 if(word >= 0x20 && word <= 0x7E) {
149 fprintf(stdout,
" = \'%c\'", word);
150 }
else if(word == 0xA) {
151 fprintf(stdout,
" = \'\\n\'");
152 }
else if(word ==
'\t') {
153 fprintf(stdout,
" = \'\\t\'");
void addcerrlist(int cerrc, CERR cerrv[])
エラーリストを作成・追加する
void setcerr(int num, const char *str)
現在のエラーを設定する
#define FREE(ptr)
メモリを解放するマクロ
char * strrev(const char *s)
逆にした文字列を返す
#define ARRAYSIZE(array)
配列のサイズを返すマクロ
void * malloc_chk(size_t size, const char *tag)
mallocを実行し、0で初期化する
WORD n2word(const char *str)
10進数値を表す文字列をWORD値に変換する
WORD nh2word(const char *str)
10進数または16進数の文字列をWORD値に変換する
WORD h2word(const char *str)
16進数の文字列をWORD値に変換する
void print_dumpword(WORD word, bool logicalmode)
WORD値を解析して表示する
char * word2bit(const WORD word)
WORD値を2進数の文字列に変換する
char * word2n(WORD word)
WORD値を10進数値を表す文字列に変換する
void addcerrlist_word()
wordデータ型についてのエラーをエラーリストに追加する
static CERR cerr_word[]
wordのエラー定義
unsigned short WORD
16ビットの数値を表すデータ型