/* * Z-80 assembler. * Build up lines for the * listing file. */ #include "as.h" /* * Copy the data in the listing * code buffer to the listing file. * Produce no file if "lfp" is NULL. * Honour the listing mode stored * in the "lmode". */ list() { register char *wp; register int nb; if (lfp==NULL || lmode==NLIST) return; while (ep < &eb[NERR]) *ep++ = ' '; fprintf(lfp, "%.10s", eb); if (lmode == SLIST) { fprintf(lfp, "%31s %5d %s", "", line, ib); return; } fprintf(lfp, " %04x", laddr); if (lmode == ALIST) { fprintf(lfp, "%24s %5d %s", "", line, ib); return; } wp = cb; nb = cp - cb; list1(wp, nb, 1); fprintf(lfp, " %5d %s", line, ib); while ((nb -= 8) > 0) { wp += 8; fprintf(lfp, "%17s", ""); list1(wp, nb, 0); fprintf(lfp, "\n"); } } /* * Copy out a partial line * to the listing. Used for the first * and the extra lines in BLIST and * WLIST mode. */ list1(wp, nb, f) register char *wp; register int nb; { register int d; register int i; if (nb > 8) nb = 8; for (i=0; i