/* Copyright (c) 1990 by Sozobon, Limited. Authors: Johann Ruegg, Don Dugger * * Permission is granted to anyone to use this software for any purpose * on any computer system, and to redistribute it freely, with the * following restrictions: * 1) No charge may be made other than reasonable charges for reproduction. * 2) Modified versions must be clearly marked as such. * 3) The authors are not responsible for any harmful consequences * of using this software, even if they result from defects in it. * * prt.c */ #include "adb.h" prtf(fmt, ap) char *fmt; int ap; { extern char *ccodes[], *sizes[]; register long *lp, l; register int *p, opc; register char c, **cp; p = ≈ while (c = *fmt++) switch (c) { case '%': switch (c = *fmt++) { case 'i': l = (long)*p++; if (l < 0) { l = -l; putchr('-'); } prtn(l, 0); break; case 'I': lp = (long *)p; if ((l = *lp++) < 0) { l = -l; putchr('-'); } prtn(l, 0); p = (int *)lp; break; case 'A': lp = (long *)p; l = *lp++; prtad(l); p = (int *)lp; break; case 'd': putchr('d'); putchr('0' + *p++); break; case 'a': if ((opc = *p++) == 7) prt("sp"); else { putchr('a'); putchr('0' + opc); } break; case 'c': putchr(*p++); break; case 's': cp = (char **)p; prt(*cp++); p = (int *)cp; break; } break; default: putchr(c); break; } return; }