void dump_code(proc_class_t proc_class) { unsigned int _64k_base; unsigned short i, j, k, index; gp_boolean all_zero_line; DirBlockInfo *dbi; dump_memmap(proc_class); printf("Formatted Code Dump:\n" "--------------------\n"); dbi = main_dir; do { _64k_base = gp_getu16(&dbi->dir[COD_DIR_HIGHADDR]) << 16; for (k = 0; k < COD_CODE_IMAGE_BLOCKS; k++) { index = gp_getu16(&dbi->dir[2 * (COD_DIR_CODE + k)]); if (index != 0) { read_block(temp, index); i = 0; do { for (j = 0, all_zero_line = true; j < 8; j++) { if (gp_getu16(&temp[(i + j) * 2])) { all_zero_line = false; } } if (all_zero_line) { i += 8; } else { printf("%06x: ", gp_processor_byte_to_org(proc_class, _64k_base + 2 * (i + k * 256))); for (j = 0; j < 8; j++) { printf("%04x ", gp_getu16(&temp[2 * i++])); } putchar('\n'); } } while (i < (COD_BLOCK_SIZE / 2)); putchar('\n'); } } putchar('\n'); dbi = dbi->next; } while (dbi != NULL); }
void dump_code(void) { int _64k_base; int i,j,k,all_zero_line,index; DirBlockInfo *dbi; dump_memmap(); printf("\n\nFormatted Code Dump\n"); printf("-------------------\n"); dbi = &main_dir; do { _64k_base = gp_getl16(&dbi->dir.block[COD_DIR_HIGHADDR]) << 15; for (k = 0; k <= 127; k++) { index = gp_getl16(&dbi->dir.block[2*(COD_DIR_CODE + k)]); if (index != 0) { read_block(temp, index); printf("\n"); i = 0; do { for(j=0, all_zero_line=1; j<8; j++) if( gp_getl16(&temp[(i+j)*2]) ) all_zero_line = 0; if(all_zero_line) i+=8; else { printf("\n%06x: ",addrsize*(_64k_base+i+k*256)); for(j=0; j<8; j++) printf("%04x ",gp_getl16(&temp[2*i++])); } }while (i<COD_BLOCK_SIZE/2); printf("\n"); } } dbi = dbi->next_dir_block_info; } while(dbi); }