diff --git a/scp.c b/scp.c index 1d419167..c0213cc5 100644 --- a/scp.c +++ b/scp.c @@ -6976,7 +6976,8 @@ void sim_debug_bits(uint32 dbits, DEVICE* dptr, BITFIELD* bitdefs, uint32 before, uint32 after, int terminate) { if (sim_deb && (dptr->dctrl & dbits)) { - fprintf(sim_deb, "%s", sim_debug_prefix(dbits, dptr)); /* print prefix if required */ + if (!debug_unterm) + fprintf(sim_deb, "%s", sim_debug_prefix(dbits, dptr)); /* print prefix if required */ fprint_fields (sim_deb, (t_value)before, (t_value)after, bitdefs); /* print xlation, transition */ if (terminate) fprintf(sim_deb, "\r\n"); @@ -7051,11 +7052,13 @@ if (sim_deb && (dptr->dctrl & dbits)) { for (i = j = 0; i < len; ++i) { if ('\n' == buf[i]) { - if (i > j) { - if (debug_unterm) - fprintf (sim_deb, "%.*s\r\n", i-j, &buf[j]); - else /* print prefix when required */ - fprintf (sim_deb, "%s%.*s\r\n", debug_prefix, i-j, &buf[j]); + if (i >= j) { + if ((i != j) || (i == 0)) { + if (debug_unterm) + fprintf (sim_deb, "%.*s\r\n", i-j, &buf[j]); + else /* print prefix when required */ + fprintf (sim_deb, "%s%.*s\r\n", debug_prefix, i-j, &buf[j]); + } debug_unterm = 0; } j = i + 1; @@ -7065,7 +7068,7 @@ if (sim_deb && (dptr->dctrl & dbits)) { if (debug_unterm) fprintf (sim_deb, "%.*s", i-j, &buf[j]); else /* print prefix when required */ - fprintf (sim_deb, "DBG(%.0f)%s> %s %s: %.*s", debug_prefix, i-j, &buf[j]); + fprintf (sim_deb, "%s%.*s", debug_prefix, i-j, &buf[j]); } /* Set unterminated flag for next time */