sys                58 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               115 src/exec.c             sys->memory[sys->cpu->gr[1]] = sys->memory[sys->cpu->gr[2]] = 0x0;
sys               123 src/exec.c             if(sys->cpu->gr[1] + i > execptr->end) {
sys               128 src/exec.c             sys->memory[sys->cpu->gr[1] + i] = buf[i];
sys               130 src/exec.c         sys->memory[sys->cpu->gr[2]] = i + 1;
sys               139 src/exec.c         for(i = 0; i < sys->memory[sys->cpu->gr[2]]; i++) {
sys               140 src/exec.c             if(sys->cpu->gr[1] + i > execptr->end) {
sys               147 src/exec.c             if(((w = sys->memory[sys->cpu->gr[1]+i]) >= 0x20 && w <= 0x7E) ||    /* JIS X 0201ラテン文字 */
sys               160 src/exec.c         sys->cpu->fr = 0x0;
sys               163 src/exec.c             sys->cpu->fr += SF;
sys               167 src/exec.c             sys->cpu->fr += ZF;
sys               177 src/exec.c             setcerr(205, s = pr2str(sys->cpu->pr));    /* r/r1 in word #1 - not GR */
sys               190 src/exec.c             setcerr(206, s = pr2str(sys->cpu->pr));    /* r/r1 in word #1 - not GR */
sys               203 src/exec.c             a += sys->cpu->gr[x];
sys               213 src/exec.c         if((a = get_adr_x(adr, oprx)) >= sys->memsize) {
sys               214 src/exec.c             setcerr(207, s = pr2str(sys->cpu->pr + 1));    /* address in word #2 - out of memory */
sys               218 src/exec.c         return sys->memory[a];
sys               229 src/exec.c         sys->cpu->pr += 1;
sys               234 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               235 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] = get_val_adr_x(w[1], w[0]));
sys               236 src/exec.c         sys->cpu->pr += 2;
sys               241 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               242 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] = sys->cpu->gr[get_x_r2(w[0])]);
sys               243 src/exec.c         sys->cpu->pr += 1;
sys               248 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               249 src/exec.c         sys->memory[get_adr_x(w[1], w[0])] = sys->cpu->gr[get_r_r1(w[0])];
sys               250 src/exec.c         sys->cpu->pr += 2;
sys               255 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               256 src/exec.c         sys->cpu->gr[get_r_r1(w[0])] = get_adr_x(w[1], w[0]);
sys               257 src/exec.c         sys->cpu->pr += 2;
sys               264 src/exec.c         sys->cpu->fr = 0x0;
sys               267 src/exec.c         if((tmp = (short)(sys->cpu->gr[r]) + (short)val) > 32767 || tmp < -32768) {
sys               268 src/exec.c             sys->cpu->fr += OF;
sys               271 src/exec.c         sys->cpu->gr[r] = (WORD)(tmp & 0xFFFF);
sys               272 src/exec.c         if((sys->cpu->gr[r] & 0x8000) == 0x8000) {
sys               273 src/exec.c             sys->cpu->fr += SF;
sys               274 src/exec.c         } else if(sys->cpu->gr[r] == 0x0) {
sys               275 src/exec.c             sys->cpu->fr += ZF;
sys               281 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               283 src/exec.c         sys->cpu->pr += 2;
sys               288 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               289 src/exec.c         adda(get_r_r1(w[0]), sys->cpu->gr[get_x_r2(w[0])]);
sys               290 src/exec.c         sys->cpu->pr += 1;
sys               295 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               297 src/exec.c         sys->cpu->pr += 2;
sys               302 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               303 src/exec.c         adda(get_r_r1(w[0]), ~(sys->cpu->gr[get_x_r2(w[0])]) + 1);
sys               304 src/exec.c         sys->cpu->pr += 1;
sys               312 src/exec.c         o = sys->cpu->gr[r];
sys               313 src/exec.c         sys->cpu->fr = 0;    /* flag initialize */
sys               318 src/exec.c                 sys->cpu->fr += OF;
sys               322 src/exec.c                 sys->cpu->fr += OF;
sys               329 src/exec.c         sys->cpu->gr[r] = (WORD)s;
sys               332 src/exec.c             sys->cpu->fr += SF;
sys               335 src/exec.c             sys->cpu->fr += ZF;
sys               341 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               343 src/exec.c         sys->cpu->pr += 2;
sys               348 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               349 src/exec.c         addl_gr(get_r_r1(w[0]), sys->cpu->gr[get_x_r2(w[0])], true);
sys               350 src/exec.c         sys->cpu->pr += 1;
sys               355 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               357 src/exec.c         sys->cpu->pr += 2;
sys               362 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               363 src/exec.c         addl_gr(get_r_r1(w[0]), sys->cpu->gr[get_x_r2(w[0])], false);
sys               364 src/exec.c         sys->cpu->pr += 1;
sys               369 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               370 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] &= get_val_adr_x(w[1], w[0]));
sys               371 src/exec.c         sys->cpu->pr += 2;
sys               376 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               377 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] &= sys->cpu->gr[get_x_r2(w[0])]);
sys               378 src/exec.c         sys->cpu->pr += 1;
sys               383 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               384 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] |= get_val_adr_x(w[1], w[0]));
sys               385 src/exec.c         sys->cpu->pr += 2;
sys               390 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               391 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] |= sys->cpu->gr[get_x_r2(w[0])]);
sys               392 src/exec.c         sys->cpu->pr += 1;
sys               397 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               398 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] ^= get_val_adr_x(w[1], w[0]));
sys               399 src/exec.c         sys->cpu->pr += 2;
sys               404 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               405 src/exec.c         setfr(sys->cpu->gr[get_r_r1(w[0])] ^= sys->cpu->gr[get_x_r2(w[0])]);
sys               406 src/exec.c         sys->cpu->pr += 1;
sys               411 src/exec.c         sys->cpu->fr = 0;
sys               412 src/exec.c         if((short)sys->cpu->gr[r] < (short)val) {
sys               413 src/exec.c             sys->cpu->fr = SF;
sys               414 src/exec.c         } else if(sys->cpu->gr[r] == val) {
sys               415 src/exec.c             sys->cpu->fr = ZF;
sys               421 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               423 src/exec.c         sys->cpu->pr += 2;
sys               428 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               429 src/exec.c         cpa(get_r_r1(w[0]), sys->cpu->gr[get_x_r2(w[0])]);
sys               430 src/exec.c         sys->cpu->pr += 1;
sys               435 src/exec.c         sys->cpu->fr = 0x0;
sys               436 src/exec.c         if(sys->cpu->gr[r] < val) {
sys               437 src/exec.c             sys->cpu->fr = SF;
sys               438 src/exec.c         } else if(sys->cpu->gr[r] == val) {
sys               439 src/exec.c             sys->cpu->fr = ZF;
sys               445 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               447 src/exec.c         sys->cpu->pr += 2;
sys               452 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               453 src/exec.c         cpl(get_r_r1(w[0]), sys->cpu->gr[get_x_r2(w[0])]);
sys               454 src/exec.c         sys->cpu->pr += 1;
sys               459 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               461 src/exec.c         WORD sign = sys->cpu->gr[r] & 0x8000;
sys               464 src/exec.c         sys->cpu->fr = 0;
sys               465 src/exec.c         sys->cpu->gr[r] &= 0x7FFF;
sys               467 src/exec.c             last = sys->cpu->gr[r] & 0x4000;
sys               468 src/exec.c             sys->cpu->gr[r] <<= 1;
sys               470 src/exec.c         sys->cpu->gr[r] = sign | (sys->cpu->gr[r] & 0x7FFF);
sys               473 src/exec.c             sys->cpu->fr += OF;
sys               477 src/exec.c             sys->cpu->fr += SF;
sys               480 src/exec.c         if(sys->cpu->gr[r] == 0x0) {
sys               481 src/exec.c             sys->cpu->fr += ZF;
sys               483 src/exec.c         sys->cpu->pr += 2;
sys               488 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               490 src/exec.c         WORD sign = sys->cpu->gr[r] & 0x8000;
sys               493 src/exec.c         sys->cpu->fr = 0;
sys               494 src/exec.c         sys->cpu->gr[r] &= 0x7FFF;
sys               496 src/exec.c             last = sys->cpu->gr[r] & 0x1;
sys               497 src/exec.c             sys->cpu->gr[r] >>= 1;
sys               499 src/exec.c                 sys->cpu->gr[r] |= 0x4000;
sys               502 src/exec.c         sys->cpu->gr[r] = sign | sys->cpu->gr[r];
sys               505 src/exec.c             sys->cpu->fr += OF;
sys               509 src/exec.c             sys->cpu->fr += SF;
sys               512 src/exec.c         if(sys->cpu->gr[r] == 0x0) {
sys               513 src/exec.c             sys->cpu->fr += ZF;
sys               515 src/exec.c         sys->cpu->pr += 2;
sys               520 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               524 src/exec.c         sys->cpu->fr = 0x0;
sys               526 src/exec.c             last = sys->cpu->gr[r] & 0x8000;
sys               527 src/exec.c             sys->cpu->gr[r] <<= 1;
sys               531 src/exec.c             sys->cpu->fr += OF;
sys               534 src/exec.c         if((sys->cpu->gr[r] & 0x8000) > 0x0) {
sys               535 src/exec.c             sys->cpu->fr += SF;
sys               538 src/exec.c         if(sys->cpu->gr[r] == 0x0) {
sys               539 src/exec.c             sys->cpu->fr += ZF;
sys               541 src/exec.c         sys->cpu->pr += 2;
sys               546 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               550 src/exec.c         sys->cpu->fr = 0x0;
sys               552 src/exec.c             last = sys->cpu->gr[r] & 0x0001;
sys               553 src/exec.c             sys->cpu->gr[r] >>= 1;
sys               557 src/exec.c             sys->cpu->fr += OF;
sys               560 src/exec.c         if((sys->cpu->gr[r] & 0x8000) > 0x0) {
sys               561 src/exec.c             sys->cpu->fr += SF;
sys               564 src/exec.c         if(sys->cpu->gr[r] == 0x0) {
sys               565 src/exec.c             sys->cpu->fr += ZF;
sys               567 src/exec.c         sys->cpu->pr += 2;
sys               572 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               573 src/exec.c         if((sys->cpu->fr & (SF | ZF)) == 0) {
sys               574 src/exec.c             sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               576 src/exec.c             sys->cpu->pr += 2;
sys               582 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               583 src/exec.c         if((sys->cpu->fr & SF) > 0) {
sys               584 src/exec.c             sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               586 src/exec.c             sys->cpu->pr += 2;
sys               592 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               593 src/exec.c         if((sys->cpu->fr & ZF) == 0) {
sys               594 src/exec.c             sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               596 src/exec.c             sys->cpu->pr += 2;
sys               602 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               603 src/exec.c         if((sys->cpu->fr & ZF) > 0) {
sys               604 src/exec.c             sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               606 src/exec.c             sys->cpu->pr += 2;
sys               612 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               613 src/exec.c         if((sys->cpu->fr & OF) > 0) {
sys               614 src/exec.c             sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               616 src/exec.c             sys->cpu->pr += 2;
sys               622 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               623 src/exec.c         sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               628 src/exec.c         assert(sys->cpu->sp > execptr->end && sys->cpu->sp <= sys->memsize);
sys               629 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               630 src/exec.c         sys->memory[--(sys->cpu->sp)] = get_adr_x(w[1], w[0]);
sys               631 src/exec.c         sys->cpu->pr += 2;
sys               636 src/exec.c         assert(sys->cpu->sp > execptr->end);
sys               637 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr]};
sys               640 src/exec.c         if(sys->cpu->sp >= sys->memsize) {
sys               641 src/exec.c             setcerr(203, s = pr2str(sys->cpu->pr));        /* Stack Pointer (SP) - stack underflow */
sys               644 src/exec.c             sys->cpu->gr[get_r_r1(w[0])] = sys->memory[(sys->cpu->sp)++];
sys               645 src/exec.c             sys->cpu->pr += 1;
sys               651 src/exec.c         assert(sys->cpu->sp > execptr->end && sys->cpu->sp <= sys->memsize);
sys               652 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               653 src/exec.c         sys->memory[--(sys->cpu->sp)] = sys->cpu->pr + 1;
sys               654 src/exec.c         sys->cpu->pr = get_adr_x(w[1], w[0]);
sys               659 src/exec.c         assert(sys->cpu->sp <= sys->memsize);
sys               660 src/exec.c         if(sys->cpu->sp == sys->memsize) {
sys               662 src/exec.c         } else if(sys->cpu->sp < sys->memsize) {
sys               663 src/exec.c             sys->cpu->pr = sys->memory[(sys->cpu->sp)++] + 1;
sys               669 src/exec.c         WORD w[] = {sys->memory[sys->cpu->pr], sys->memory[sys->cpu->pr + 1]};
sys               682 src/exec.c         sys->cpu->pr += 2;
sys               699 src/exec.c         for (sys->cpu->pr = execptr->start; ; ) {
sys               703 src/exec.c                     fprintf(stdout, "#%04X: Register::::\n", sys->cpu->pr);
sys               707 src/exec.c                     fprintf(stdout, "#%04X: Memory::::\n", sys->cpu->pr);
sys               714 src/exec.c                 (execmode.monitor == true && sys->cpu->pr == execptr->start) ||
sys               715 src/exec.c                 execmode.step == true || getbps(sys->cpu->pr) == true)
sys               717 src/exec.c                 if(sys->cpu->pr == execptr->start) {
sys               723 src/exec.c             if(sys->cpu->pr >= sys->memsize) {
sys               724 src/exec.c                 setcerr(201, s = pr2str(sys->cpu->pr));        /* Program Register (PR) - memory overflow */
sys               728 src/exec.c             if(sys->cpu->sp <= execptr->end) {
sys               729 src/exec.c                 setcerr(202, s = pr2str(sys->cpu->pr));        /* Stack Pointer (SP) - stack overflow */
sys               734 src/exec.c             if((cmdptr = getcmdptr(sys->memory[sys->cpu->pr] & 0xFF00)) == NULL) {
sys               735 src/exec.c                 setcerr(204, s = pr2str(sys->cpu->pr));            /* OP in word #1 - not command code */
sys               756 src/exec.c             } while(clock_end - clock_begin < CLOCKS_PER_SEC / sys->clocks);
sys                30 src/load.c         end = start + fread(sys->memory + start, sizeof(WORD), sys->memsize - start, fp);
sys                31 src/load.c         if(end == sys->memsize) {
sys               333 src/monitor.c              fprintf(stdout, "#%04X: Register::::\n", sys->cpu->pr);
sys               343 src/monitor.c              fprintf(stdout, "#%04X: Register::::\n", sys->cpu->pr);
sys                 8 src/struct.c   SYSTEM *sys = NULL;
sys               270 src/struct.c       sys = malloc_chk(sizeof(SYSTEM), "sys");
sys               273 src/struct.c       sys->memsize = memsize;
sys               276 src/struct.c       sys->clocks = clocks;
sys               278 src/struct.c       sys->cpu = malloc_chk(sizeof(CPU), "comet2_init.cpu");
sys               282 src/struct.c       sys->memory = calloc_chk(sys->memsize, sizeof(WORD), "comet2_init.memory");
sys               294 src/struct.c           sys->cpu->gr[i] = 0x0;
sys               296 src/struct.c       sys->cpu->sp = sys->memsize;   /* スタックポインタ */
sys               297 src/struct.c       sys->cpu->pr = 0x0;            /* プログラムレジスタ */
sys               298 src/struct.c       sys->cpu->fr = 0x0;            /* フラグレジスタ */
sys               305 src/struct.c       memset(sys->memory, 0, sys->memsize * sizeof(WORD));
sys               334 src/struct.c       FREE(sys->memory);
sys               335 src/struct.c       FREE(sys->cpu);
sys               336 src/struct.c       FREE(sys);