projects
/
YACASL2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Makefileの修正
[YACASL2.git]
/
src
/
exec.c
diff --git
a/src/exec.c
b/src/exec.c
index
73b30cd
..
aa99076
100644
(file)
--- a/
src/exec.c
+++ b/
src/exec.c
@@
-100,7
+100,7
@@
void svcin()
break;
}
if(sys->cpu->gr[1] + i > execptr->end) {
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);
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) {
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;
}
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('.');
putchar((char)w);
} else {
putchar('.');
@@
-523,8
+527,6
@@
void cpa_r1_r2()
*/
void cpl(WORD r, WORD val)
{
*/
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;
sys->cpu->fr = 0x0;
if(sys->cpu->gr[r] < val) {
sys->cpu->fr = SF;