//-------------------------------------------------------------------------- // конец текста void N78K_footer(void) { char buf[MAXSTR]; char *const end = buf + sizeof(buf); if (ash.end != NULL){ MakeNull(); #if IDP_INTERFACE_VERSION > 37 char *ptr = tag_addstr(buf, end, COLOR_ASMDIR, ash.end); char name[MAXSTR]; if (get_colored_name(BADADDR, inf.beginEA, name, sizeof(name)) != NULL){ register int i = strlen(ash.end); do APPCHAR(ptr, end, ' '); while(++i < 8); APPEND(ptr, end, name); } MakeLine(buf,inf.indent); #else register char *p = tag_addstr(buf, COLOR_ASMDIR, ash.end); const char *start = get_colored_name(inf.beginEA); if(start != NULL) { *p++ = ' '; strcpy(p, start); } MakeLine(buf); #endif } else gen_cmt_line("end of file"); }
static int out_equ(ea_t ea) { char buf[MAXSTR]; char *const end = buf + sizeof(buf); segment_t *s = getseg(ea); if ( s != NULL && s->type == SEG_IMEM && ash.a_equ != NULL) { char nbuf[MAXSTR]; char *name = get_name(BADADDR, ea, nbuf, sizeof(nbuf)); if ( name != NULL && ((ash.uflag & UAS_PBYTNODEF) == 0 || !IsPredefined(name)) ) { get_colored_name(BADADDR, ea, buf, sizeof(buf)); uchar off = uchar(ea - get_segm_base(s)); do_out_equ(buf, ash.a_equ, off); if ( (ash.uflag & UAS_AUBIT) == 0 && (off & 0xF8) == off ) { char *ptr = tag_on(tail(buf), end, COLOR_SYMBOL); APPCHAR(ptr, end, ash.uflag & UAS_NOBIT ? '_' : '.'); APPCHAR(ptr, end, '0'); tag_off(ptr, end, COLOR_SYMBOL); for ( int i=0; i < 8; i++ ) { const ioport_bit_t *b = find_bit(off, i); char *p2 = ptr; if ( b == NULL || b->name == NULL ) ptr[-1] = '0' + i; else p2 = tag_addstr(ptr-1, end, COLOR_HIDNAME, b->name); tag_off(p2, end, COLOR_SYMBOL); do_out_equ(buf, ash.a_equ, off+i); } MakeNull(); } } else { gl_name = 0; MakeLine(""); } return 1; } if ( ash.uflag & UAS_NODS ) { if ( !isLoaded(ea) && s->type == SEG_CODE ) { adiff_t org = ea - get_segm_base(s) + get_item_size(ea); btoa(buf, sizeof(buf), org); printf_line(inf.indent, COLSTR("%s %s", SCOLOR_ASMDIR), ash.origin, buf); return 1; } } return 0; }
//-------------------------------------------------------------------------- void idaapi footer(void) { char name[MAXSTR]; get_colored_name(BADADDR, inf.beginEA, name, sizeof(name)); const char *end = ash.end; if ( end == NULL ) printf_line(inf.indent,COLSTR("%s end %s",SCOLOR_AUTOCMT), ash.cmnt, name); else printf_line(inf.indent,COLSTR("%s",SCOLOR_ASMDIR) " " COLSTR("%s %s",SCOLOR_AUTOCMT), ash.end, ash.cmnt, name); }
// Generate disassembly footer void footer(void) { char buf[MAXSTR]; char *const end = buf + sizeof(buf); if ( ash.end != NULL ) { MakeNull(); register char *p = tag_addstr(buf, end, COLOR_ASMDIR, ash.end); char name[MAXSTR]; if ( get_colored_name(BADADDR, inf.beginEA, name, sizeof(name)) != NULL ) { APPCHAR(p, end, ' '); APPEND(p, end, name); } MakeLine(buf, inf.indent); } else { gen_cmt_line("end of file"); } }