projects
/
YACASL2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
アセンブルモードと実行モードの初期化位置を修正
[YACASL2.git]
/
src
/
assemble.c
diff --git
a/src/assemble.c
b/src/assemble.c
index
811f670
..
f2f5978
100644
(file)
--- a/
src/assemble.c
+++ b/
src/assemble.c
@@
-10,6
+10,9
@@
WORD lptr;
/* 他のプログラムで参照する入口名 */
char *prog;
/* 他のプログラムで参照する入口名 */
char *prog;
+/* アセンブルモード: src, label, onlylabel, asdetail, onlyassemble */
+ASMODE asmode = {false, false, false, false, false};
+
/* 汎用レジスタを表す文字列「GR[0-7]」から、レジスタ番号[0-7]をWORD値で返す */
/* 文字列が汎用レジスタを表さない場合は、0xFFFFを返す */
/* is_xがtrueの場合は指標レジスタ。GR0は、COMET IIの仕様により、エラー発生 */
/* 汎用レジスタを表す文字列「GR[0-7]」から、レジスタ番号[0-7]をWORD値で返す */
/* 文字列が汎用レジスタを表さない場合は、0xFFFFを返す */
/* is_xがtrueの場合は指標レジスタ。GR0は、COMET IIの仕様により、エラー発生 */
@@
-143,7
+146,7
@@
bool assemblecmd(const CMDLINE *cmdl, PASS pass)
CMDARRAY ascmd[] = {
{ START, 0, 1, "START" },
{ END, 0, 0, "END" },
CMDARRAY ascmd[] = {
{ START, 0, 1, "START" },
{ END, 0, 0, "END" },
- { DC,
0
, OPDSIZE, "DC" },
+ { DC,
1
, OPDSIZE, "DC" },
{ DS, 1, 1, "DS" },
{ 0, 0, 0, NULL }
};
{ DS, 1, 1, "DS" },
{ 0, 0, 0, NULL }
};
@@
-314,6
+317,7
@@
bool cometcmd(const CMDLINE *cmdl, PASS pass)
/* オペランド数3 */
if(cmdl->opd->opdc == 3) {
if((x = getgr(cmdl->opd->opdv[2], true)) == 0xFFFF) {
/* オペランド数3 */
if(cmdl->opd->opdc == 3) {
if((x = getgr(cmdl->opd->opdv[2], true)) == 0xFFFF) {
+ setcerr(125, cmdl->cmd); /* not GR in operand x */
return false;
}
cmd |= x;
return false;
}
cmd |= x;