+
+prhex(v)
+long v; {
+ if (v < 0) {
+ v = -v;
+ printf("-");
+ }
+ if (v <= 9)
+ printf("%d", v);
+ else
+ printf("0x%x", v);
+}
+
+/* print hex number in field of length 12 */
+prhex12(v)
+long v; {
+ if (v >= -9 && v <= 9)
+ printf("%-12d", v);
+ else
+ printf("0x%-12x", v);
+}
+
+/* print line number followed by offset */
+prlnoff(procp, v)
+struct proct *procp; ADDR v; {
+ int lineno, diff;
+ char *name;
+ name = procp->pname;
+ if (name[0] == '_') {
+#ifndef FLEXNAMES
+ printf("%.7s", name+1);
+#else
+ printf("%s", name+1);
+#endif
+ lineno = -1;
+ } else {
+#ifndef FLEXNAMES
+ printf("%8s", name);
+#else
+ printf("%s", name);
+#endif
+ lineno = adrtolineno((ADDR) v);
+ }
+ if (lineno == -1)
+ diff = v - procp->paddr;
+ else {
+ printf(":%d", lineno);
+ diff = v - lnfaddr; /* set by adrtolineno() */
+ }
+ if (diff) {
+ printf("+");
+ prhex(diff);
+ }
+}