cmdl 93 src/assemble.c void assemble_start(const CMDLINE *cmdl, PASS pass); cmdl 104 src/assemble.c void assemble_ds(const CMDLINE *cmdl, PASS pass); cmdl 115 src/assemble.c void assemble_end(const CMDLINE *cmdl, PASS pass); cmdl 126 src/assemble.c void assemble_dc(const CMDLINE *cmdl, PASS pass); cmdl 148 src/assemble.c void assemble_in(const CMDLINE *cmdl, PASS pass); cmdl 172 src/assemble.c void assemble_out(const CMDLINE *cmdl, PASS pass); cmdl 193 src/assemble.c void assemble_rpush(const CMDLINE *cmdl, PASS pass); cmdl 215 src/assemble.c void assemble_rpop(const CMDLINE *cmdl, PASS pass); cmdl 235 src/assemble.c bool casl2cmd(CMD *cmdtbl, const CMDLINE *cmdl, PASS pass); cmdl 245 src/assemble.c bool assemble_comet2cmd(const CMDLINE *cmdl, PASS pass); cmdl 255 src/assemble.c bool assembletok(const CMDLINE *cmdl, PASS pass); cmdl 431 src/assemble.c void assemble_start(const CMDLINE *cmdl, PASS pass) cmdl 433 src/assemble.c if(cmdl->opd->opdc > 1) { cmdl 437 src/assemble.c if(!cmdl->label[0]) { cmdl 442 src/assemble.c strcpy(asptr->prog, cmdl->label); cmdl 444 src/assemble.c if(cmdl->opd->opdv[0] != NULL) { cmdl 445 src/assemble.c asptr->ptr = execptr->start = getadr(asptr->prog, cmdl->opd->opdv[0], pass); cmdl 449 src/assemble.c void assemble_end(const CMDLINE *cmdl, PASS pass) cmdl 451 src/assemble.c if(cmdl->opd->opdc > 0) { cmdl 466 src/assemble.c void assemble_ds(const CMDLINE *cmdl, PASS pass) cmdl 468 src/assemble.c if(cmdl->opd->opdc != 1) { cmdl 472 src/assemble.c for(int i = 0; i < atoi(cmdl->opd->opdv[0]); i++) { cmdl 480 src/assemble.c void assemble_dc(const CMDLINE *cmdl, PASS pass) cmdl 482 src/assemble.c if(cmdl->opd->opdc == 0 || cmdl->opd->opdc >= OPDSIZE) { cmdl 486 src/assemble.c for(int i = 0; i < cmdl->opd->opdc; i++) { cmdl 487 src/assemble.c writedc(cmdl->opd->opdv[i], pass); cmdl 494 src/assemble.c void assemble_in(const CMDLINE *cmdl, PASS pass) cmdl 498 src/assemble.c if(cmdl->opd->opdc == 0 || cmdl->opd->opdc > 2) { cmdl 504 src/assemble.c sprintf(line, " LAD GR1,%s", cmdl->opd->opdv[0]); cmdl 506 src/assemble.c sprintf(line, " LAD GR2,%s", cmdl->opd->opdv[1]); cmdl 514 src/assemble.c void assemble_out(const CMDLINE *cmdl, PASS pass) cmdl 518 src/assemble.c if(cmdl->opd->opdc == 0 || cmdl->opd->opdc > 2) { cmdl 524 src/assemble.c sprintf(line, " LAD GR1,%s", cmdl->opd->opdv[0]); cmdl 526 src/assemble.c sprintf(line, " LAD GR2,%s", cmdl->opd->opdv[1]); cmdl 537 src/assemble.c void assemble_rpush(const CMDLINE *cmdl, PASS pass) cmdl 541 src/assemble.c if(cmdl->opd->opdc > 0) { cmdl 552 src/assemble.c void assemble_rpop(const CMDLINE *cmdl, PASS pass) cmdl 556 src/assemble.c if(cmdl->opd->opdc > 0) { cmdl 567 src/assemble.c bool casl2cmd(CMD *cmdtbl, const CMDLINE *cmdl, PASS pass) cmdl 572 src/assemble.c if(strcmp(cmdl->cmd, cmdtbl[i].name) == 0) { cmdl 574 src/assemble.c (*cmdptr)(cmdl, pass); cmdl 581 src/assemble.c bool assemble_comet2cmd(const CMDLINE *cmdl, PASS pass) cmdl 589 src/assemble.c if(cmdl->opd->opdc == 0) { cmdl 590 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, NONE)) == 0xFFFF) { cmdl 591 src/assemble.c setcerr(112, cmdl->cmd); /* not command of no operand */ cmdl 597 src/assemble.c else if((r_r1 = grword(cmdl->opd->opdv[0], false)) != 0xFFFF) { cmdl 599 src/assemble.c if(cmdl->opd->opdc == 1) { cmdl 600 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, R_)) == 0xFFFF) { cmdl 601 src/assemble.c setcerr(108, cmdl->cmd); /* not command of operand "r" */ cmdl 608 src/assemble.c else if(cmdl->opd->opdc == 2 && (x_r2 = grword(cmdl->opd->opdv[1], false)) != 0xFFFF) { cmdl 609 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, R1_R2)) == 0xFFFF) { cmdl 610 src/assemble.c setcerr(109, cmdl->cmd); /* not command of operand "r1,r2" */ cmdl 618 src/assemble.c else if(cmdl->opd->opdc == 2 || cmdl->opd->opdc == 3) { cmdl 619 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, R_ADR_X)) == 0xFFFF) { cmdl 620 src/assemble.c setcerr(110, cmdl->cmd); /* not command of operand "r,adr[,x]" */ cmdl 625 src/assemble.c if(cmdl->opd->opdc == 3) { /* 第3オペランドは指標レジスタとして用いる汎用レジスタ */ cmdl 626 src/assemble.c if((x_r2 = grword(cmdl->opd->opdv[2], true)) == 0xFFFF) { cmdl 627 src/assemble.c setcerr(125, cmdl->cmd); /* not GR in operand x */ cmdl 632 src/assemble.c adr = getadr(asptr->prog, cmdl->opd->opdv[1], pass); /* 第2オペランドはアドレス */ cmdl 637 src/assemble.c setcerr(113, cmdl->cmd); /* operand too many in COMET II command */ cmdl 642 src/assemble.c else if(cmdl->opd->opdc == 1 || cmdl->opd->opdc == 2) { cmdl 643 src/assemble.c if((cmd = getcmdcode(cmdl->cmd, ADR_X)) == 0xFFFF) { cmdl 644 src/assemble.c setcerr(111, cmdl->cmd); /* not command of operand "adr[,x]" */ cmdl 648 src/assemble.c if(cmdl->opd->opdc == 2) { /* 第2オペランドは指標レジスタとして用いる汎用レジスタ */ cmdl 649 src/assemble.c x_r2 = grword(cmdl->opd->opdv[1], true); cmdl 659 src/assemble.c adr = getlabel("", cmdl->opd->opdv[0]); cmdl 662 src/assemble.c adr = getadr(asptr->prog, cmdl->opd->opdv[0], pass); cmdl 671 src/assemble.c bool assembletok(const CMDLINE *cmdl, PASS pass) cmdl 674 src/assemble.c if(!cmdl->cmd[0]) { cmdl 678 src/assemble.c if(casl2cmd(ascmd, cmdl, pass) == false && casl2cmd(macrocmd, cmdl, pass) == false) { cmdl 680 src/assemble.c if(assemble_comet2cmd(cmdl, pass) == false) { cmdl 682 src/assemble.c setcerr(113, cmdl->cmd); /* operand too many in COMET II command */ cmdl 691 src/assemble.c CMDLINE *cmdl = NULL; cmdl 694 src/assemble.c cmdl = linetok(line); cmdl 696 src/assemble.c if(cmdl != NULL) { cmdl 698 src/assemble.c if(pass == FIRST && cmdl->label[0]) { cmdl 699 src/assemble.c stat = addlabel(asptr->prog, cmdl->label, asptr->ptr); cmdl 703 src/assemble.c stat = assembletok(cmdl, pass); cmdl 705 src/assemble.c FREE(cmdl->label); cmdl 706 src/assemble.c if(cmdl->opd != NULL) { cmdl 707 src/assemble.c for(int i = 0; i < cmdl->opd->opdc; i++) { cmdl 708 src/assemble.c FREE(cmdl->opd->opdv[i]); cmdl 711 src/assemble.c FREE(cmdl->opd); cmdl 712 src/assemble.c FREE(cmdl->cmd); cmdl 714 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;