sys                55 include/struct.h extern SYSTEM *sys;
sys               352 src/assemble.c     if(adr >= sys->memsize) {
sys               357 src/assemble.c     (sys->memory)[adr] = word;
sys               789 src/assemble.c     fwrite(sys->memory, sizeof(WORD), execptr->end, fp);
sys               236 src/disassemble.c         cmd = sys->memory[i] & 0xFF00;
sys               239 src/disassemble.c         if(sys->memory[i] == 0) {
sys               246 src/disassemble.c             disassemble_dc(sys->memory[i], i);
sys               249 src/disassemble.c                 disassemble_cmd_adr_x(cmdtype, cmdname, sys->memory[i], sys->memory[i+1], i);
sys               252 src/disassemble.c                 disassemble_cmd_r(cmdtype, cmdname, sys->memory[i], i);
sys                 9 src/dump.c         fprintf(stdout, "#%04X: adr :", sys->cpu->pr);
sys                10 src/dump.c         if(end > sys->memsize) {
sys                11 src/dump.c             end = sys->memsize;
sys                13 src/dump.c         for(int i = 0; i < sys->memsize && i < col; i++) {
sys                22 src/dump.c                 fprintf(stdout, "#%04X: %04X: ", sys->cpu->pr, i);
sys                29 src/dump.c             fprintf(stdout, "%04X", sys->memory[i]);
sys                40 src/dump.c         char *sp = word2bit(sys->cpu->sp);
sys                41 src/dump.c         char *pr = word2bit(sys->cpu->pr);
sys                42 src/dump.c         char *fr = word2bit(sys->cpu->fr);
sys                47 src/dump.c             fprintf(stdout, "#%04X: GR%d: ", sys->cpu->pr, i);
sys                48 src/dump.c             print_dumpword(sys->cpu->gr[i], execmode.logical);
sys                51 src/dump.c         fprintf(stdout, "#%04X: SP:  %6d = #%04X = %s\n", sys->cpu->pr, sys->cpu->sp, sys->cpu->sp, sp);
sys                52 src/dump.c         fprintf(stdout, "#%04X: PR:  %6d = #%04X = %s\n", sys->cpu->pr, sys->cpu->pr, sys->cpu->pr, pr);
sys                53 src/dump.c         fprintf(stdout, "#%04X: FR (OF SF ZF): %s\n", sys->cpu->pr, fr + L3BIT); /* FRは下位3けたを表示 */
sys               103 src/exec.c             sys->memory[sys->cpu->gr[1]] = sys->memory[sys->cpu->gr[2]] = 0x0;
sys               111 src/exec.c             if(sys->cpu->gr[1] + i > execptr->end) {
sys               115 src/exec.c             sys->memory[sys->cpu->gr[1] + i] = buf[i];
sys               117 src/exec.c         sys->memory[sys->cpu->gr[2]] = i + 1;
sys               126 src/exec.c         for(i = 0; i < sys->memory[sys->cpu->gr[2]]; i++) {
sys               127 src/exec.c             if(sys->cpu->gr[1] + i > execptr->end) {
sys               134 src/exec.c             if(((w = sys->memory[sys->cpu->gr[1]+i]) >= 0x20 && w <= 0x7E) ||    /* JIS X 0201ラテン文字 */
sys               147 src/exec.c         sys->cpu->fr = 0x0;
sys               150 src/exec.c             sys->cpu->fr += SF;
sys               154 src/exec.c             sys->cpu->fr += ZF;
sys               164 src/exec.c             setcerr(205, s = pr2str(sys->cpu->pr));    /* r/r1 in word #1 - not GR */
sys               177 src/exec.c             setcerr(206, s = pr2str(sys->cpu->pr));    /* r/r1 in word #1 - not GR */
sys               190 src/exec.c             a += sys->cpu->gr[x];
sys               200 src/exec.c         if((a = get_adr_x(adr, oprx)) >= sys->memsize) {
sys               201 src/exec.c             setcerr(207, s = pr2str(sys->cpu->pr + 1));    /* address in word #2 - out of memory */
sys               205 src/exec.c         return sys->memory[a];
sys               216 src/exec.c         sys->cpu->pr += 1;
sys               221 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               222 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] = get_val_adr_x(w[1], w[0]));
sys               223 src/exec.c         sys->cpu->pr += 2;
sys               228 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               229 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] = sys->cpu->gr[get_x_r2(w[0])]);
sys               230 src/exec.c         sys->cpu->pr += 1;
sys               235 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               236 src/exec.c         sys->memory[get_adr_x(w[1], w[0])] = sys->cpu->gr[get_r_r1(w[0])];
sys               237 src/exec.c         sys->cpu->pr += 2;
sys               242 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               243 src/exec.c         sys->cpu->gr[get_r_r1(w[0])] = get_adr_x(w[1], w[0]);
sys               244 src/exec.c         sys->cpu->pr += 2;
sys               251 src/exec.c         sys->cpu->fr = 0x0;
sys               254 src/exec.c         if((tmp = (short)(sys->cpu->gr[r]) + (short)val) > 32767 || tmp < -32768) {
sys               255 src/exec.c             sys->cpu->fr += OF;
sys               258 src/exec.c         sys->cpu->gr[r] = (WORD)(tmp & 0xFFFF);
sys               259 src/exec.c         if((sys->cpu->gr[r] & 0x8000) == 0x8000) {
sys               260 src/exec.c             sys->cpu->fr += SF;
sys               261 src/exec.c         } else if(sys->cpu->gr[r] == 0x0) {
sys               262 src/exec.c             sys->cpu->fr += ZF;
sys               268 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               270 src/exec.c         sys->cpu->pr += 2;
sys               275 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               276 src/exec.c         adda(get_r_r1(w[0]), sys->cpu->gr[get_x_r2(w[0])]);
sys               277 src/exec.c         sys->cpu->pr += 1;
sys               282 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               284 src/exec.c         sys->cpu->pr += 2;
sys               289 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               290 src/exec.c         adda(get_r_r1(w[0]), ~(sys->cpu->gr[get_x_r2(w[0])]) + 1);
sys               291 src/exec.c         sys->cpu->pr += 1;
sys               299 src/exec.c         o = sys->cpu->gr[r];
sys               300 src/exec.c         sys->cpu->fr = 0;    /* flag initialize */
sys               305 src/exec.c                 sys->cpu->fr += OF;
sys               309 src/exec.c                 sys->cpu->fr += OF;
sys               316 src/exec.c         sys->cpu->gr[r] = (WORD)s;
sys               319 src/exec.c             sys->cpu->fr += SF;
sys               322 src/exec.c             sys->cpu->fr += ZF;
sys               328 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               330 src/exec.c         sys->cpu->pr += 2;
sys               335 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               336 src/exec.c         addl_gr(get_r_r1(w[0]), sys->cpu->gr[get_x_r2(w[0])], true);
sys               337 src/exec.c         sys->cpu->pr += 1;
sys               342 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               344 src/exec.c         sys->cpu->pr += 2;
sys               349 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               350 src/exec.c         addl_gr(get_r_r1(w[0]), sys->cpu->gr[get_x_r2(w[0])], false);
sys               351 src/exec.c         sys->cpu->pr += 1;
sys               356 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               357 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] &= get_val_adr_x(w[1], w[0]));
sys               358 src/exec.c         sys->cpu->pr += 2;
sys               363 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               364 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] &= sys->cpu->gr[get_x_r2(w[0])]);
sys               365 src/exec.c         sys->cpu->pr += 1;
sys               370 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               371 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] |= get_val_adr_x(w[1], w[0]));
sys               372 src/exec.c         sys->cpu->pr += 2;
sys               377 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               378 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] |= sys->cpu->gr[get_x_r2(w[0])]);
sys               379 src/exec.c         sys->cpu->pr += 1;
sys               384 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               385 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] ^= get_val_adr_x(w[1], w[0]));
sys               386 src/exec.c         sys->cpu->pr += 2;
sys               391 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               392 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] ^= sys->cpu->gr[get_x_r2(w[0])]);
sys               393 src/exec.c         sys->cpu->pr += 1;
sys               398 src/exec.c         sys->cpu->fr = 0;
sys               399 src/exec.c         if((short)sys->cpu->gr[r] < (short)val) {
sys               400 src/exec.c             sys->cpu->fr = SF;
sys               401 src/exec.c         } else if(sys->cpu->gr[r] == val) {
sys               402 src/exec.c             sys->cpu->fr = ZF;
sys               408 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               410 src/exec.c         sys->cpu->pr += 2;
sys               415 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               416 src/exec.c         cpa(get_r_r1(w[0]), sys->cpu->gr[get_x_r2(w[0])]);
sys               417 src/exec.c         sys->cpu->pr += 1;
sys               422 src/exec.c         sys->cpu->fr = 0x0;
sys               423 src/exec.c         if(sys->cpu->gr[r] < val) {
sys               424 src/exec.c             sys->cpu->fr = SF;
sys               425 src/exec.c         } else if(sys->cpu->gr[r] == val) {
sys               426 src/exec.c             sys->cpu->fr = ZF;
sys               432 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               434 src/exec.c         sys->cpu->pr += 2;
sys               439 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               440 src/exec.c         cpl(get_r_r1(w[0]), sys->cpu->gr[get_x_r2(w[0])]);
sys               441 src/exec.c         sys->cpu->pr += 1;
sys               446 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               448 src/exec.c         WORD sign = sys->cpu->gr[r] & 0x8000;
sys               451 src/exec.c         sys->cpu->fr = 0;
sys               452 src/exec.c         sys->cpu->gr[r] &= 0x7FFF;
sys               454 src/exec.c             last = sys->cpu->gr[r] & 0x4000;
sys               455 src/exec.c             sys->cpu->gr[r] <<= 1;
sys               457 src/exec.c         sys->cpu->gr[r] = sign | (sys->cpu->gr[r] & 0x7FFF);
sys               460 src/exec.c             sys->cpu->fr += OF;
sys               464 src/exec.c             sys->cpu->fr += SF;
sys               467 src/exec.c         if(sys->cpu->gr[r] == 0x0) {
sys               468 src/exec.c             sys->cpu->fr += ZF;
sys               470 src/exec.c         sys->cpu->pr += 2;
sys               475 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               477 src/exec.c         WORD sign = sys->cpu->gr[r] & 0x8000;
sys               480 src/exec.c         sys->cpu->fr = 0;
sys               481 src/exec.c         sys->cpu->gr[r] &= 0x7FFF;
sys               483 src/exec.c             last = sys->cpu->gr[r] & 0x1;
sys               484 src/exec.c             sys->cpu->gr[r] >>= 1;
sys               486 src/exec.c                 sys->cpu->gr[r] |= 0x4000;
sys               489 src/exec.c         sys->cpu->gr[r] = sign | sys->cpu->gr[r];
sys               492 src/exec.c             sys->cpu->fr += OF;
sys               496 src/exec.c             sys->cpu->fr += SF;
sys               499 src/exec.c         if(sys->cpu->gr[r] == 0x0) {
sys               500 src/exec.c             sys->cpu->fr += ZF;
sys               502 src/exec.c         sys->cpu->pr += 2;
sys               507 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               511 src/exec.c         sys->cpu->fr = 0x0;
sys               513 src/exec.c             last = sys->cpu->gr[r] & 0x8000;
sys               514 src/exec.c             sys->cpu->gr[r] <<= 1;
sys               518 src/exec.c             sys->cpu->fr += OF;
sys               521 src/exec.c         if((sys->cpu->gr[r] & 0x8000) > 0x0) {
sys               522 src/exec.c             sys->cpu->fr += SF;
sys               525 src/exec.c         if(sys->cpu->gr[r] == 0x0) {
sys               526 src/exec.c             sys->cpu->fr += ZF;
sys               528 src/exec.c         sys->cpu->pr += 2;
sys               533 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               537 src/exec.c         sys->cpu->fr = 0x0;
sys               539 src/exec.c             last = sys->cpu->gr[r] & 0x0001;
sys               540 src/exec.c             sys->cpu->gr[r] >>= 1;
sys               544 src/exec.c             sys->cpu->fr += OF;
sys               547 src/exec.c         if((sys->cpu->gr[r] & 0x8000) > 0x0) {
sys               548 src/exec.c             sys->cpu->fr += SF;
sys               551 src/exec.c         if(sys->cpu->gr[r] == 0x0) {
sys               552 src/exec.c             sys->cpu->fr += ZF;
sys               554 src/exec.c         sys->cpu->pr += 2;
sys               559 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               560 src/exec.c         if((sys->cpu->fr & (SF | ZF)) == 0) {
sys               561 src/exec.c             sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               563 src/exec.c             sys->cpu->pr += 2;
sys               569 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               570 src/exec.c         if((sys->cpu->fr & SF) > 0) {
sys               571 src/exec.c             sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               573 src/exec.c             sys->cpu->pr += 2;
sys               579 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               580 src/exec.c         if((sys->cpu->fr & ZF) == 0) {
sys               581 src/exec.c             sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               583 src/exec.c             sys->cpu->pr += 2;
sys               589 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               590 src/exec.c         if((sys->cpu->fr & ZF) > 0) {
sys               591 src/exec.c             sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               593 src/exec.c             sys->cpu->pr += 2;
sys               599 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               600 src/exec.c         if((sys->cpu->fr & OF) > 0) {
sys               601 src/exec.c             sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               603 src/exec.c             sys->cpu->pr += 2;
sys               609 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               610 src/exec.c         sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               615 src/exec.c         assert(sys->cpu->sp > execptr->end && sys->cpu->sp <= sys->memsize);
sys               616 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               617 src/exec.c         sys->memory[--(sys->cpu->sp)] = get_adr_x(w[1], w[0]);
sys               618 src/exec.c         sys->cpu->pr += 2;
sys               623 src/exec.c         assert(sys->cpu->sp > execptr->end);
sys               624 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               627 src/exec.c         if(sys->cpu->sp >= sys->memsize) {
sys               628 src/exec.c             setcerr(203, s = pr2str(sys->cpu->pr));        /* Stack Pointer (SP) - stack underflow */
sys               631 src/exec.c             sys->cpu->gr[get_r_r1(w[0])] = sys->memory[(sys->cpu->sp)++];
sys               632 src/exec.c             sys->cpu->pr += 1;
sys               638 src/exec.c         assert(sys->cpu->sp > execptr->end && sys->cpu->sp <= sys->memsize);
sys               639 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               640 src/exec.c         sys->memory[--(sys->cpu->sp)] = sys->cpu->pr + 1;
sys               641 src/exec.c         sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               646 src/exec.c         assert(sys->cpu->sp <= sys->memsize);
sys               647 src/exec.c         if(sys->cpu->sp == sys->memsize) {
sys               649 src/exec.c         } else if(sys->cpu->sp < sys->memsize) {
sys               650 src/exec.c             sys->cpu->pr = sys->memory[(sys->cpu->sp)++] + 1;
sys               656 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               669 src/exec.c         sys->cpu->pr += 2;
sys               686 src/exec.c         for (sys->cpu->pr = execptr->start; ; ) {
sys               690 src/exec.c                     fprintf(stdout, "#%04X: Register::::\n", sys->cpu->pr);
sys               694 src/exec.c                     fprintf(stdout, "#%04X: Memory::::\n", sys->cpu->pr);
sys               701 src/exec.c                 (execmode.monitor == true && sys->cpu->pr == execptr->start) ||
sys               702 src/exec.c                 execmode.step == true || getbps(sys->cpu->pr) == true)
sys               704 src/exec.c                 if(sys->cpu->pr == execptr->start) {
sys               710 src/exec.c             if(sys->cpu->pr >= sys->memsize) {
sys               711 src/exec.c                 setcerr(201, s = pr2str(sys->cpu->pr));        /* Program Register (PR) - memory overflow */
sys               715 src/exec.c             if(sys->cpu->sp <= execptr->end) {
sys               716 src/exec.c                 setcerr(202, s = pr2str(sys->cpu->pr));        /* Stack Pointer (SP) - stack overflow */
sys               721 src/exec.c             if((cmdptr = getcmdptr(sys->memory[sys->cpu->pr] & 0xFF00)) == NULL) {
sys               722 src/exec.c                 setcerr(204, s = pr2str(sys->cpu->pr));            /* OP in word #1 - not command code */
sys               743 src/exec.c             } while(clock_end - clock_begin < CLOCKS_PER_SEC / sys->clocks);
sys                37 src/load.c         end = start + fread(sys->memory + start, sizeof(WORD), sys->memsize - start, fp);
sys                38 src/load.c         if(end == sys->memsize) {
sys               319 src/monitor.c          reset(sys->memsize, sys->clocks);     /* COMET II仮想マシンのリセット */
sys               327 src/monitor.c              fprintf(stdout, "#%04X: Register::::\n", sys->cpu->pr);
sys               337 src/monitor.c              fprintf(stdout, "#%04X: Register::::\n", sys->cpu->pr);
sys                 7 src/struct.c   SYSTEM *sys = NULL;
sys               255 src/struct.c       sys = malloc_chk(sizeof(SYSTEM), "sys");
sys               257 src/struct.c       sys->memsize = memsize;
sys               259 src/struct.c       sys->clocks = clocks;
sys               261 src/struct.c       sys->memory = calloc_chk(sys->memsize, sizeof(WORD), "memory");
sys               263 src/struct.c       sys->cpu = malloc_chk(sizeof(CPU), "cpu");
sys               265 src/struct.c           sys->cpu->gr[i] = 0x0;
sys               267 src/struct.c       sys->cpu->sp = sys->memsize;   /* スタックポインタ */
sys               268 src/struct.c       sys->cpu->pr = 0x0;            /* プログラムレジスタ */
sys               269 src/struct.c       sys->cpu->fr = 0x0;            /* フラグレジスタ */
sys               281 src/struct.c       FREE(sys->memory);
sys               282 src/struct.c       FREE(sys->cpu);
sys               283 src/struct.c       FREE(sys);