Tool to dump contents of a data buffer in traditional terminal format. Some VT100 color commands used.

Dependents:   KL25Z_MLX90620

Revision:
4:c3c8b072f80f
Parent:
3:4a6123f2a4c9
--- a/PrintBuffer.cpp	Thu May 14 16:40:04 2015 +0000
+++ b/PrintBuffer.cpp	Wed Apr 27 22:21:21 2016 +0000
@@ -58,6 +58,43 @@
 
 //--------------------------------------------------------------------------------------------------------------------------------------//
 // Used for doing a hex and ascii dump of the buffer.  BufferLines tells PrintBuffer how
+// many 16 byte lines to print.  Added external ability to add to the buffer base address for display purposes
+
+int PrintBuffer::dump_a(const char* title, int BufferLines, int BufferOffset, const char buffer[], int addr) {
+    pc.printf("\n%s%s - lines: %d   starting at: 0x%04x%s\r\n", DOMAGENTA, title, BufferLines, BufferOffset + addr, DONONE);
+    for(int i = BufferOffset; i < BufferLines * 16 + BufferOffset; i = i + 16) {
+        pc.printf("%04x_%04x  ", (i + addr) >> 16, (i + addr) & 0xffff);
+        for(int s = 0; s < 8; s++) {
+            pc.printf("%02x ", buffer [s + i]);
+        }
+        pc.printf("  ");
+        for(int s = 0; s < 8; s++) {
+            pc.printf("%02x ", buffer[s + i + 8]);
+        }
+        pc.printf("  ");
+        for(int s = 0; s < 8; s++) {
+            if((buffer[s + i] < 0x20) || (buffer[s + i] > 0x7f)) { 
+                pc.printf("%s.%s", DOCYAN, DONONE);
+            } else {
+                pc.printf("%c", buffer[s + i]);
+            }
+        }
+        pc.printf(" ");
+        for(int s = 0; s < 8; s++) {
+            if((buffer[s + i + 8] < 0x20) || (buffer[s + i + 8] > 0x7f)) { 
+                pc.printf("%s.%s", DOCYAN, DONONE);
+            } else {
+                pc.printf("%c", buffer[s + i + 8]);
+            }
+        }
+        pc.printf("\r\n");
+    }
+    pc.printf("\r\n");
+    return(0);
+}
+
+//--------------------------------------------------------------------------------------------------------------------------------------//
+// Used for doing a hex and ascii dump of the buffer.  BufferLines tells PrintBuffer how
 // many 16 byte lines to print.
 
 int PrintBuffer::dump_t(const char* title, int BufferLines, int BufferOffset, const uint8_t buffer[]) {