home *** CD-ROM | disk | FTP | other *** search
- /* 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;
- }
-