+void
+show_product(int tlev)
+{
+ struct pchrstr *pp;
+ int i;
+ char *lev;
+
+ pr("product cost raw materials avail reso dep level p.e.\n");
+
+ for (pp = pchr; pp->p_sname; pp++) {
+ if (!pp->p_sname[0])
+ continue;
+ pr("%7.7s %c $%-3d ",
+ pp->p_sname,
+ pp->p_type < 0 ? ' ' : ichr[pp->p_type].i_mnem,
+ pp->p_cost);
+ BUILD_ASSERT(MAXPRCON <= 3); /* output has only three columns */
+ for (i = 0; i < 3; i++) {
+ if (i < MAXPRCON && pp->p_camt[i]
+ && pp->p_ctype[i] > I_NONE && pp->p_ctype[i] <= I_MAX)
+ pr(" %2d%c", pp->p_camt[i], ichr[pp->p_ctype[i]].i_mnem);
+ else
+ pr(" ");
+ }
+ pr(" %8d", pp->p_bwork);
+ if (pp->p_nrndx)
+ pr(" %5.5s %3d ",
+ symbol_by_value(pp->p_nrndx, resources), pp->p_nrdep);
+ else
+ pr(" ");
+ if (pp->p_nlndx < 0)
+ pr("1.0\n");
+ else {
+ lev = symbol_by_value(pp->p_nlndx, level);
+ pr("(%.4s%+d)/(%.4s%+d)\n",
+ lev, -pp->p_nlmin, lev, pp->p_nllag - pp->p_nlmin);
+ }
+ }
+}
+