void print_memory_page2(int mem_index) { int i,j; int pagesize = 256; // printf("\n printf( \%04x ,mem_index);"); for(i=mem_index; i<mem_index + 16; ++i) { /* printf(" ----'----\n");*/ printf("%02x ", conv_bitstr2int(memory[i],0,7)); /* printf("%i ", conv_bitstr2int(memory[i],0,7)); */ /* printf("%s ", memory[i]); */ /* for(j=0;memory[i][j]; j++) */ /* printf("%c", memory[i][j]); */ } printf("sdfsdf\n"); /* printf(" ----'----");*/ printf(" "); for(i=0; i<16; i++) { printf("%02x ",i); } i=0; for(j=0; j<4; ++j) { printf("\n%02x ", pagesize*mem_index+j*16+i); for(i=0; i<16; ++i) { // printf(" ----'----\n"); printf("%02x ", conv_bitstr2int(memory[pagesize*mem_index+j*16+i],0,7)); /* printf("%i ", conv_bitstr2int(memory[i],0,7)); */ /* printf("%s ", memory[i]); */ /* for(j=0;memory[i][j]; j++) */ /* printf("%c", memory[i][j]); */ } } }
int pc2int(){ int i,j; i = conv_bitstr2int(pcl, 0, 7); j = conv_bitstr2int(pch, 0, 7); j = (j<<8) + i; return j; }
void print_stack(struct _6510_cpu* cpu, char memory[][9]){ int spi = conv_bitstr2int(cpu->sp,0,7); int i; for(i=spi-2;i<spi+3;i++){ printf("mem[%02x'%02x] = \t %02x\n", 1, i%256, conv_bitstr2int(memory[i%256+256],0,7)); } }
void monitor_print_mem(int mem_index, int rows, int cols){ int i,j; int pc = pc2int(); clear();//move(0,0); mon_print_opcodeinfo0(); mon_print_registers(); mon_print_src_line(pc); printw("\n "); for(i=0;i<cols;i++){ printw("%02x ",(mem_index+i)%256); } i=0; for(j=0; j<rows; ++j) { printw("\n%04x ", mem_index +j*cols); for(i=0; i<cols; ++i) { if(pc==mem_index+ j*cols+i){ printw("%02x ",conv_bitstr2int(memory[mem_index + j*cols+i],0,7)); //print_color(conv_bitstr2int(memory[mem_index + j*cols+i],0,7)); //printf(RED "%02x " RESET ,conv_bitstr2int(memory[mem_index + j*cols+i],0,7)); } else { printw("%02x ",conv_bitstr2int(memory[mem_index + j*cols+i],0,7)); // mvprintw(0,0,"%02x",conv_bitstr2int(memory[mem_index + j*cols+i],0,7)); //print_color(conv_bitstr2int(memory[mem_index + j*cols+i],0,7)); // printf("%02x ", conv_bitstr2int(memory[mem_index + j*cols+i],0,7)); } } } printw("\n"); doupdate(); refresh(); }
void printm(struct _6510_cpu* cpu, char memory[][9]){ int adr = 12 ; printf("\nmem[%02x'%02x] = \t %02x\n", conv_bitstr2int(cpu->pch,0,7), conv_bitstr2int(cpu->pcl,0,7), conv_bitstr2int(memory[adr],0,7)); print_stack(cpu, memory); printf("abrl: \t\t %02x\n", conv_bitstr2int(cpu->abrl,0,7)); printf("abrh: \t\t %02x\n", conv_bitstr2int(cpu->abrh,0,7)); printf("dbr: \t\t %02x\n", conv_bitstr2int(cpu->dbr,0,7)); printf("***********************************\n\n"); }
void print_memory_page0(char memory[][9], int adr){ int i=0,j; // char (*mem)[9] = (char*) &(memory[adr]); for(j=0;j<5;j++){ printf("%04x ", adr+j*16); for(i=0;i<16;i++){ // printf(" %02x ", conv_bitstr2int(mem++,0,7)); printf(" %02x ", conv_bitstr2int(memory[adr + j*16+i],0,7)); } printf(" \n"); } }
void print_cpu_dis(struct _6510_cpu* cpu, char memory[][9] ) { char dis_txt[] = " \n"; int pc = pc2int(cpu); //dis(cpu, (char*)memory[pc], dis_txt); dis(cpu, memory+pc, dis_txt); printf("AC XR YR SP NV-BDIZC \n"); printf("%02x %02x %02x %02x %c%c%c%c%c%c%c%c %s\n", conv_bitstr2int(cpu->rega,0,7), conv_bitstr2int(cpu->regx,0,7), conv_bitstr2int(cpu->regy,0,7), conv_bitstr2int(cpu->sp,0,7), cpu->flags[NFLAG], cpu->flags[OFLAG], '-', cpu->flags[BFLAG], cpu->flags[DFLAG], cpu->flags[IFLAG], cpu->flags[ZFLAG], cpu->flags[CFLAG], dis_txt ); }
void print_memory_page0(int mem_index) { int rows = 6; int cols = 16; int i,j; printf("\n "); for(i=0; i<cols; i++) { printf("%02x ",(mem_index+i)%256); } i=0; for(j=0; j<rows; ++j) { printf("\n%04x ", mem_index +j*cols); for(i=0; i<cols; ++i) { printf("%02x ", conv_bitstr2int(memory[mem_index + j*cols+i],0,7)); } } printf("\n"); }
void print_dis_memory(char memory[][9], int adr){ int i=0,j; char dis[40]; int bytes = dis_mem(memory, adr, dis) ; for(j=0;j<5;j++){ printf("%04x", adr); for(i=0;i<bytes;i++){ printf(" %02x", conv_bitstr2int(memory[adr+i],0,7)); } for(i=0;i<3-bytes;i++){ // printf(" ", conv_bitstr2int(memory[adr+i],0,7)); printf(" "); } printf(" %s", dis); printf(" \n"); adr = adr + bytes; bytes = dis_mem(memory, adr, dis) ; } }
void mon_print_registers(){ printw(" PC AC XR YR SP NV-BDIZC IR \n"); printw("%02x%02x %02x %02x %02x %02x %c%c%c%c%c%c%c%c %02x \n", conv_bitstr2int(pch,0,7), conv_bitstr2int(pcl,0,7), conv_bitstr2int(acc,0,7), conv_bitstr2int(idx,0,7), conv_bitstr2int(idy,0,7), conv_bitstr2int(sp,0,7), getSignflag(flags), getOverflowflag(flags), '1', getBRKflag(flags), getDflag(flags), getIRQflag(flags), getZeroflag(flags), getCarryflag(flags), conv_bitstr2int(ir,0,7)); }
// print_cpu void print_cpu(struct _6510_cpu* cpu) { printf("pc AC XR YR SP NV-BDIZC \n"); printf("%02x%02x %02x %02x %02x %02x %c%c%c%c%c%c%c%c\n", conv_bitstr2int(cpu->pch,0,7), conv_bitstr2int(cpu->pcl,0,7), conv_bitstr2int(cpu->rega,0,7), conv_bitstr2int(cpu->regx,0,7), conv_bitstr2int(cpu->regy,0,7), conv_bitstr2int(cpu->sp,0,7), cpu->flags[NFLAG], cpu->flags[OFLAG], '-', cpu->flags[BFLAG], cpu->flags[DFLAG], cpu->flags[IFLAG], cpu->flags[ZFLAG], cpu->flags[CFLAG] ); }
void mon_print_opcodeinfo0(){ struct cpu_operator* optr; optr = (struct cpu_operator*) getop(ir); printw("CMD: %s\nopcode: %02x\nfct: %s\nflags: %s\n", optr?optr->mnemonic:"XXX", conv_bitstr2int(ir,0,7), optr->action, optr->flagsettings); }