*/ void Dump_Bytes(REBYTE *bp, REBCNT limit) /* ** Dump memory into a string buffer; ** ***********************************************************************/ { #ifdef _DEBUG REBYTE buf[20480]; REBYTE str[40]; REBYTE *cp, *tp; REBYTE c; REBCNT l, n; REBCNT cnt = 0; cp = buf; for (l = 0; l < 150; l++) { cp = Form_Hex_Pad(cp, (REBCNT) bp, 8); *cp++ = ':'; *cp++ = ' '; tp = str; for (n = 0; n < 16; n++) { if (cnt++ >= limit) break; c = *bp++; cp = Form_Hex2(cp, c); if ((n & 3) == 3) *cp++ = ' '; if ((c < 32) || (c > 126)) c = '.'; *tp++ = c; } for (; n < 16; n++) { c = ' '; *cp++ = c; *cp++ = c; if ((n & 3) == 3) *cp++ = ' '; if ((c < 32) || (c > 126)) c = '.'; *tp++ = c; } *tp++ = 0; for (tp = str; *tp;) *cp++ = *tp++; *cp++ = '\n'; if (cnt >= limit) break; } *cp++ = 0; Debug_Str(buf); #endif }
*/ void Dump_Bytes(REBYTE *bp, REBCNT limit) /* ***********************************************************************/ { const max_lines = 120; REBYTE buf[2048]; REBYTE str[40]; REBYTE *cp, *tp; REBYTE c; REBCNT l, n; REBCNT cnt = 0; cp = buf; for (l = 0; l < max_lines; l++) { cp = Form_Hex_Pad(cp, (REBCNT) bp, 8); *cp++ = ':'; *cp++ = ' '; tp = str; for (n = 0; n < 16; n++) { if (cnt++ >= limit) break; c = *bp++; cp = Form_Hex2(cp, c); if ((n & 3) == 3) *cp++ = ' '; if ((c < 32) || (c > 126)) c = '.'; *tp++ = c; } for (; n < 16; n++) { c = ' '; *cp++ = c; *cp++ = c; if ((n & 3) == 3) *cp++ = ' '; if ((c < 32) || (c > 126)) c = '.'; *tp++ = c; } *tp++ = 0; for (tp = str; *tp;) *cp++ = *tp++; *cp = 0; Debug_Str(buf); if (cnt >= limit) break; cp = buf; } }