X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Fexec.c;h=aa99076b72168519d513664d9768d4af4c780793;hp=36543e93f61c3f0731e8759b2d844c62ece2f263;hb=8993a52e06e3f33aad16c8bb842f62307cae8063;hpb=3964fd135fcf5f6309639096437dd7f07e0c035f diff --git a/src/exec.c b/src/exec.c index 36543e9..aa99076 100644 --- a/src/exec.c +++ b/src/exec.c @@ -100,7 +100,7 @@ void svcin() break; } if(sys->cpu->gr[1] + i > execptr->end) { - setcerr(208, NULL); /* SVC input - memory overflow */ + setcerr(208, ""); /* SVC input - memory overflow */ break; } sys->memory[sys->cpu->gr[1]+i] = *(buffer + i); @@ -119,12 +119,16 @@ void svcout() for(i = 0; i < sys->memory[sys->cpu->gr[2]]; i++) { if(sys->cpu->gr[1] + i > execptr->end) { - setcerr(209, NULL); /* SVC output - memory overflow */ + setcerr(209, ""); /* SVC output - memory overflow */ return; } - /* 「文字の組」の符号表に記載された文字と、改行(CR)/タブを表示 */ + /* 「JIS X 0201ラテン文字・片仮名用8ビット符号で規定する文字の符号表」 + に記載された文字と、改行(CR)/タブを表示 */ /* それ以外の文字は、「.」で表す */ - if(((w = sys->memory[sys->cpu->gr[1]+i]) >= 0x20 && w <= 0x7E) || w == 0xA || w == '\t') { + if(((w = sys->memory[sys->cpu->gr[1]+i]) >= 0x20 && w <= 0x7E) || /* JIS X 0201ラテン文字 */ + (w >= 0xA0 && w <= 0xFE) || /* JIS X 0201片仮名用8ビット符号 */ + w == 0xA || w == '\t') + { putchar((char)w); } else { putchar('.'); @@ -263,7 +267,6 @@ void lad() /** * ADDA命令のテンプレート\n * 汎用レジスタrに値valを算術加算 - * \relates exec */ void adda(WORD r, WORD val) { @@ -337,7 +340,6 @@ void suba_r1_r2() /** * ADDL命令のテンプレート\n * 汎用レジスタrに値valを論理加算 - * \relates exec */ void addl(WORD r, WORD val) { @@ -525,8 +527,6 @@ void cpa_r1_r2() */ void cpl(WORD r, WORD val) { - WORD w[1]; - w[0] = sys->memory[sys->cpu->pr]; sys->cpu->fr = 0x0; if(sys->cpu->gr[r] < val) { sys->cpu->fr = SF; @@ -563,8 +563,8 @@ void cpl_r1_r2() /** * SLA命令 - オペランドr,adr,x。語長2\n - * \relates exec * 算術演算なので、第15ビットは送り出されない + * \relates exec */ void sla() {