+INT fcor;
+printmap(s,amap)
+STRING s; MAP *amap;
+{
+ int file;
+ file=amap->ufd;
+ printf("%s\t`%s'\n",s,(file<0 ? "-" : (file==fcor ? corfil : symfil)));
+ printf("b1 = 0x%-16x",amap->b1);
+ printf("e1 = 0x%-16x",amap->e1);
+ printf("f1 = 0x%-x",amap->f1);
+ printf("\nb2 = 0x%-16x",amap->b2);
+ printf("e2 = 0x%-16x",amap->e2);
+ printf("f2 = 0x%-x",amap->f2);
+ printf("\n");
+}
+
+#define NUMREGS 24 /* number of hardware registers */
+REGLIST reglist[];
+
+printregs()
+{
+ REG REGPTR p;
+
+ for (p=reglist; p < ®list[NUMREGS/2]; p++) {
+ printf("%4.4s/ ", p->rname);
+ prhex12(*(ADDR *)(((ADDR)&u)+p->roffs));
+ printf(" %4.4s/ ",(p+NUMREGS/2)->rname);
+ prhex(*(ADDR *)(((ADDR)&u)+(p+NUMREGS/2)->roffs));
+ printf("\n");
+ }
+ printpc();
+}
+
+printpc()
+{
+ dot= *(ADDR *)(((ADDR)&u)+PC);
+ prisploc();
+ printins('i',ISP,chkget(dot,ISP));
+ printf("\n");
+}
+
+/* print register */
+REGLIST reglist[];
+regout(name, prvar, fmt)
+char *name, *fmt; {
+ REG REGPTR p;
+ for (p=reglist; p< ®list[24]; p++) {
+ if (eqstr(name, p->rname)) {
+ printit(0, prvar, *(ADDR *)(((ADDR)&u)+p->roffs),
+ fmt[0] ? fmt : "d", N_GSYM, -1, 0, 0, DSP);
+ return(p->roffs);
+ }
+ }
+ error("Unknown register variable");
+ return(-1);
+}
+/* Print symbolic location of dot */
+prisploc() {
+ struct proct *procp;
+ int lineno;
+
+ printf("0x%x", dot);
+ procp = adrtoprocp(dot);
+ if (procp != badproc) {
+ printf(" (");
+ prlnoff(procp, dot);
+ printf("): \t");
+ } else
+ printf(": \t");
+}