cmdl 96 src/assemble.c void assemble_start(const CMDLINE *cmdl, PASS pass); cmdl 105 src/assemble.c void assemble_ds(const CMDLINE *cmdl, PASS pass); cmdl 114 src/assemble.c void assemble_end(const CMDLINE *cmdl, PASS pass); cmdl 123 src/assemble.c void assemble_dc(const CMDLINE *cmdl, PASS pass); cmdl 143 src/assemble.c void assemble_in(const CMDLINE *cmdl, PASS pass); cmdl 165 src/assemble.c void assemble_out(const CMDLINE *cmdl, PASS pass); cmdl 184 src/assemble.c void assemble_rpush(const CMDLINE *cmdl, PASS pass); cmdl 203 src/assemble.c void assemble_rpop(const CMDLINE *cmdl, PASS pass); cmdl 223 src/assemble.c bool casl2cmd(CMD *cmdtbl, const CMDLINE *cmdl, PASS pass); cmdl 233 src/assemble.c bool assemble_comet2cmd(const CMDLINE *cmdl, PASS pass); cmdl 243 src/assemble.c bool assembletok(const CMDLINE *cmdl, PASS pass); cmdl 472 src/assemble.c void assemble_start(const CMDLINE *cmdl, PASS pass) cmdl 474 src/assemble.c if(cmdl->opd->opdc > 1) { cmdl 478 src/assemble.c if(!cmdl->label[0]) { cmdl 483 src/assemble.c strcpy(asptr->prog, cmdl->label); cmdl 485 src/assemble.c if(cmdl->opd->opdv[0] != NULL) { cmdl 486 src/assemble.c asptr->ptr = execptr->start = getadr(asptr->prog, cmdl->opd->opdv[0], pass); cmdl 490 src/assemble.c void assemble_end(const CMDLINE *cmdl, PASS pass) cmdl 492 src/assemble.c if(cmdl->opd->opdc > 0) { cmdl 507 src/assemble.c void assemble_ds(const CMDLINE *cmdl, PASS pass) cmdl 509 src/assemble.c if(cmdl->opd->opdc != 1) { cmdl 513 src/assemble.c for(int i = 0; i < atoi(cmdl->opd->opdv[0]); i++) { cmdl 521 src/assemble.c void assemble_dc(const CMDLINE *cmdl, PASS pass) cmdl 523 src/assemble.c if(cmdl->opd->opdc == 0 || cmdl->opd->opdc >= OPDSIZE) { cmdl 527 src/assemble.c for(int i = 0; i < cmdl->opd->opdc; i++) { cmdl 528 src/assemble.c writedc(cmdl->opd->opdv[i], pass); cmdl 535 src/assemble.c void assemble_in(const CMDLINE *cmdl, PASS pass) cmdl 539 src/assemble.c if(cmdl->opd->opdc == 0 || cmdl->opd->opdc > 2) { cmdl 545 src/assemble.c sprintf(line, " LAD GR1,%s", cmdl->opd->opdv[0]); cmdl 547 src/assemble.c sprintf(line, " LAD GR2,%s", cmdl->opd->opdv[1]); cmdl 555 src/assemble.c void assemble_out(const CMDLINE *cmdl, PASS pass) cmdl 559 src/assemble.c if(cmdl->opd->opdc == 0 || cmdl->opd->opdc > 2) { cmdl 565 src/assemble.c sprintf(line, " LAD GR1,%s", cmdl->opd->opdv[0]); cmdl 567 src/assemble.c sprintf(line, " LAD GR2,%s", cmdl->opd->opdv[1]); cmdl 578 src/assemble.c void assemble_rpush(const CMDLINE *cmdl, PASS pass) cmdl 582 src/assemble.c if(cmdl->opd->opdc > 0) { cmdl 593 src/assemble.c void assemble_rpop(const CMDLINE *cmdl, PASS pass) cmdl 597 src/assemble.c if(cmdl->opd->opdc > 0) { cmdl 608 src/assemble.c bool casl2cmd(CMD *cmdtbl, const CMDLINE *cmdl, PASS pass) cmdl 613 src/assemble.c if(strcmp(cmdl->cmd, cmdtbl[i].name) == 0) { cmdl 615 src/assemble.c (*cmdptr)(cmdl, pass); cmdl 622 src/assemble.c bool assemble_comet2cmd(const CMDLINE *cmdl, PASS pass) cmdl 630 src/assemble.c if(cmdl->opd->opdc == 0) { cmdl 631 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, NONE)) == 0xFFFF) { cmdl 632 src/assemble.c setcerr(112, cmdl->cmd); /* not command of no operand */ cmdl 638 src/assemble.c else if((r_r1 = grword(cmdl->opd->opdv[0], false)) != 0xFFFF) { cmdl 640 src/assemble.c if(cmdl->opd->opdc == 1) { cmdl 641 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, R_)) == 0xFFFF) { cmdl 642 src/assemble.c setcerr(108, cmdl->cmd); /* not command of operand "r" */ cmdl 649 src/assemble.c else if(cmdl->opd->opdc == 2 && (x_r2 = grword(cmdl->opd->opdv[1], false)) != 0xFFFF) { cmdl 650 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, R1_R2)) == 0xFFFF) { cmdl 651 src/assemble.c setcerr(109, cmdl->cmd); /* not command of operand "r1,r2" */ cmdl 659 src/assemble.c else if(cmdl->opd->opdc == 2 || cmdl->opd->opdc == 3) { cmdl 660 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, R_ADR_X)) == 0xFFFF) { cmdl 661 src/assemble.c setcerr(110, cmdl->cmd); /* not command of operand "r,adr[,x]" */ cmdl 666 src/assemble.c if(cmdl->opd->opdc == 3) { /* 第3オペランドは指標レジスタとして用いる汎用レジスタ */ cmdl 667 src/assemble.c if((x_r2 = grword(cmdl->opd->opdv[2], true)) == 0xFFFF) { cmdl 668 src/assemble.c setcerr(125, cmdl->cmd); /* not GR in operand x */ cmdl 673 src/assemble.c adr = getadr(asptr->prog, cmdl->opd->opdv[1], pass); /* 第2オペランドはアドレス */ cmdl 678 src/assemble.c setcerr(113, cmdl->cmd); /* operand too many in COMET II command */ cmdl 683 src/assemble.c else if(cmdl->opd->opdc == 1 || cmdl->opd->opdc == 2) { cmdl 684 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, ADR_X)) == 0xFFFF) { cmdl 685 src/assemble.c setcerr(111, cmdl->cmd); /* not command of operand "adr[,x]" */ cmdl 689 src/assemble.c if(cmdl->opd->opdc == 2) { /* 第2オペランドは指標レジスタとして用いる汎用レジスタ */ cmdl 690 src/assemble.c x_r2 = grword(cmdl->opd->opdv[1], true); cmdl 700 src/assemble.c adr = getlabel("", cmdl->opd->opdv[0]); cmdl 703 src/assemble.c adr = getadr(asptr->prog, cmdl->opd->opdv[0], pass); cmdl 712 src/assemble.c bool assembletok(const CMDLINE *cmdl, PASS pass) cmdl 715 src/assemble.c if(!cmdl->cmd[0]) { cmdl 719 src/assemble.c if(casl2cmd(ascmd, cmdl, pass) == false && casl2cmd(macrocmd, cmdl, pass) == false) { cmdl 721 src/assemble.c if(assemble_comet2cmd(cmdl, pass) == false) { cmdl 723 src/assemble.c setcerr(113, cmdl->cmd); /* operand too many in COMET II command */ cmdl 732 src/assemble.c CMDLINE *cmdl = NULL; cmdl 735 src/assemble.c cmdl = linetok(line); cmdl 737 src/assemble.c if(cmdl != NULL) { cmdl 739 src/assemble.c if(pass == FIRST && cmdl->label[0]) { cmdl 740 src/assemble.c stat = addlabel(asptr->prog, cmdl->label, asptr->ptr); cmdl 744 src/assemble.c stat = assembletok(cmdl, pass); cmdl 746 src/assemble.c FREE(cmdl->label); cmdl 747 src/assemble.c if(cmdl->opd != NULL) { cmdl 748 src/assemble.c for(int i = 0; i < cmdl->opd->opdc; i++) { cmdl 749 src/assemble.c FREE(cmdl->opd->opdv[i]); cmdl 752 src/assemble.c FREE(cmdl->opd); cmdl 753 src/assemble.c FREE(cmdl->cmd); cmdl 755 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;