cmdl 83 src/assemble.c void assemble_start(const CMDLINE *cmdl, PASS pass); cmdl 92 src/assemble.c void assemble_ds(const CMDLINE *cmdl, PASS pass); cmdl 101 src/assemble.c void assemble_end(const CMDLINE *cmdl, PASS pass); cmdl 110 src/assemble.c void assemble_dc(const CMDLINE *cmdl, PASS pass); cmdl 130 src/assemble.c void assemble_in(const CMDLINE *cmdl, PASS pass); cmdl 152 src/assemble.c void assemble_out(const CMDLINE *cmdl, PASS pass); cmdl 171 src/assemble.c void assemble_rpush(const CMDLINE *cmdl, PASS pass); cmdl 191 src/assemble.c void assemble_rpop(const CMDLINE *cmdl, PASS pass); cmdl 211 src/assemble.c bool casl2cmd(CMD *cmdtbl, const CMDLINE *cmdl, PASS pass); cmdl 221 src/assemble.c bool assemble_comet2cmd(const CMDLINE *cmdl, PASS pass); cmdl 231 src/assemble.c bool assembletok(const CMDLINE *cmdl, PASS pass); cmdl 407 src/assemble.c void assemble_start(const CMDLINE *cmdl, PASS pass) cmdl 409 src/assemble.c if(cmdl->opd->opdc > 1) { cmdl 413 src/assemble.c if(!cmdl->label[0]) { cmdl 418 src/assemble.c strcpy(asptr->prog, cmdl->label); cmdl 420 src/assemble.c if(cmdl->opd->opdv[0] != NULL) { cmdl 421 src/assemble.c asptr->ptr = execptr->start = getadr(asptr->prog, cmdl->opd->opdv[0], pass); cmdl 425 src/assemble.c void assemble_end(const CMDLINE *cmdl, PASS pass) cmdl 427 src/assemble.c if(cmdl->opd->opdc > 0) { cmdl 442 src/assemble.c void assemble_ds(const CMDLINE *cmdl, PASS pass) cmdl 444 src/assemble.c if(cmdl->opd->opdc != 1) { cmdl 448 src/assemble.c for(int i = 0; i < atoi(cmdl->opd->opdv[0]); i++) { cmdl 456 src/assemble.c void assemble_dc(const CMDLINE *cmdl, PASS pass) cmdl 458 src/assemble.c if(cmdl->opd->opdc == 0 || cmdl->opd->opdc >= OPDSIZE) { cmdl 462 src/assemble.c for(int i = 0; i < cmdl->opd->opdc; i++) { cmdl 463 src/assemble.c writedc(cmdl->opd->opdv[i], pass); cmdl 470 src/assemble.c void assemble_in(const CMDLINE *cmdl, PASS pass) cmdl 474 src/assemble.c if(cmdl->opd->opdc == 0 || cmdl->opd->opdc > 2) { cmdl 480 src/assemble.c sprintf(line, " LAD GR1,%s", cmdl->opd->opdv[0]); cmdl 482 src/assemble.c sprintf(line, " LAD GR2,%s", cmdl->opd->opdv[1]); cmdl 490 src/assemble.c void assemble_out(const CMDLINE *cmdl, PASS pass) cmdl 494 src/assemble.c if(cmdl->opd->opdc == 0 || cmdl->opd->opdc > 2) { cmdl 500 src/assemble.c sprintf(line, " LAD GR1,%s", cmdl->opd->opdv[0]); cmdl 502 src/assemble.c sprintf(line, " LAD GR2,%s", cmdl->opd->opdv[1]); cmdl 513 src/assemble.c void assemble_rpush(const CMDLINE *cmdl, PASS pass) cmdl 517 src/assemble.c if(cmdl->opd->opdc > 0) { cmdl 528 src/assemble.c void assemble_rpop(const CMDLINE *cmdl, PASS pass) cmdl 532 src/assemble.c if(cmdl->opd->opdc > 0) { cmdl 543 src/assemble.c bool casl2cmd(CMD *cmdtbl, const CMDLINE *cmdl, PASS pass) cmdl 548 src/assemble.c if(strcmp(cmdl->cmd, cmdtbl[i].name) == 0) { cmdl 550 src/assemble.c (*cmdptr)(cmdl, pass); cmdl 557 src/assemble.c bool assemble_comet2cmd(const CMDLINE *cmdl, PASS pass) cmdl 565 src/assemble.c if(cmdl->opd->opdc == 0) { cmdl 566 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, NONE)) == 0xFFFF) { cmdl 567 src/assemble.c setcerr(112, cmdl->cmd); /* not command of no operand */ cmdl 573 src/assemble.c else if((r_r1 = grword(cmdl->opd->opdv[0], false)) != 0xFFFF) { cmdl 575 src/assemble.c if(cmdl->opd->opdc == 1) { cmdl 576 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, R_)) == 0xFFFF) { cmdl 577 src/assemble.c setcerr(108, cmdl->cmd); /* not command of operand "r" */ cmdl 584 src/assemble.c else if(cmdl->opd->opdc == 2 && (x_r2 = grword(cmdl->opd->opdv[1], false)) != 0xFFFF) { cmdl 585 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, R1_R2)) == 0xFFFF) { cmdl 586 src/assemble.c setcerr(109, cmdl->cmd); /* not command of operand "r1,r2" */ cmdl 594 src/assemble.c else if(cmdl->opd->opdc == 2 || cmdl->opd->opdc == 3) { cmdl 595 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, R_ADR_X)) == 0xFFFF) { cmdl 596 src/assemble.c setcerr(110, cmdl->cmd); /* not command of operand "r,adr[,x]" */ cmdl 601 src/assemble.c if(cmdl->opd->opdc == 3) { /* 第3オペランドは指標レジスタとして用いる汎用レジスタ */ cmdl 602 src/assemble.c if((x_r2 = grword(cmdl->opd->opdv[2], true)) == 0xFFFF) { cmdl 603 src/assemble.c setcerr(125, cmdl->cmd); /* not GR in operand x */ cmdl 608 src/assemble.c adr = getadr(asptr->prog, cmdl->opd->opdv[1], pass); /* 第2オペランドはアドレス */ cmdl 613 src/assemble.c setcerr(113, cmdl->cmd); /* operand too many in COMET II command */ cmdl 618 src/assemble.c else if(cmdl->opd->opdc == 1 || cmdl->opd->opdc == 2) { cmdl 619 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, ADR_X)) == 0xFFFF) { cmdl 620 src/assemble.c setcerr(111, cmdl->cmd); /* not command of operand "adr[,x]" */ cmdl 624 src/assemble.c if(cmdl->opd->opdc == 2) { /* 第2オペランドは指標レジスタとして用いる汎用レジスタ */ cmdl 625 src/assemble.c x_r2 = grword(cmdl->opd->opdv[1], true); cmdl 635 src/assemble.c adr = getlabel("", cmdl->opd->opdv[0]); cmdl 638 src/assemble.c adr = getadr(asptr->prog, cmdl->opd->opdv[0], pass); cmdl 647 src/assemble.c bool assembletok(const CMDLINE *cmdl, PASS pass) cmdl 650 src/assemble.c if(!cmdl->cmd[0]) { cmdl 654 src/assemble.c if(casl2cmd(ascmd, cmdl, pass) == false && casl2cmd(macrocmd, cmdl, pass) == false) { cmdl 656 src/assemble.c if(assemble_comet2cmd(cmdl, pass) == false) { cmdl 658 src/assemble.c setcerr(113, cmdl->cmd); /* operand too many in COMET II command */ cmdl 667 src/assemble.c CMDLINE *cmdl = NULL; cmdl 670 src/assemble.c cmdl = linetok(line); cmdl 672 src/assemble.c if(cmdl != NULL) { cmdl 674 src/assemble.c if(pass == FIRST && cmdl->label[0]) { cmdl 675 src/assemble.c stat = addlabel(asptr->prog, cmdl->label, asptr->ptr); cmdl 679 src/assemble.c stat = assembletok(cmdl, pass); cmdl 681 src/assemble.c FREE(cmdl->label); cmdl 682 src/assemble.c if(cmdl->opd != NULL) { cmdl 683 src/assemble.c for(int i = 0; i < cmdl->opd->opdc; i++) { cmdl 684 src/assemble.c FREE(cmdl->opd->opdv[i]); cmdl 687 src/assemble.c FREE(cmdl->opd); cmdl 688 src/assemble.c FREE(cmdl->cmd); cmdl 690 src/assemble.c FREE(cmdl); cmdl 101 src/token.c CMDLINE *cmdl = NULL; cmdl 116 src/token.c cmdl = malloc_chk(sizeof(CMDLINE), "cmdl"); cmdl 121 src/token.c cmdl->label = strdup_chk("", "cmdl->label"); cmdl 123 src/token.c cmdl->label = strndup_chk(p, i, "cmdl->label"); cmdl 126 src/token.c setcerr(104, cmdl->label); /* label length is too long */ cmdl 127 src/token.c FREE(cmdl->label); cmdl 139 src/token.c if(cmdl->label) { /* ラベルが定義されていて命令がない場合はエラー */ cmdl 142 src/token.c FREE(cmdl->label); cmdl 143 src/token.c FREE(cmdl); cmdl 148 src/token.c cmdl->cmd = strndup_chk(p, i, "cmdl.cmd"); cmdl 156 src/token.c cmdl->opd = opdtok(p); cmdl 159 src/token.c return cmdl;