diff libcommon/hexdump.c @ 107:f1836c8d36cb

hexdump output commands reworked to support redirection
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 19 Feb 2021 06:43:01 +0000
parents f7145c77b7fb
children
line wrap: on
line diff
--- a/libcommon/hexdump.c	Fri Feb 19 06:24:06 2021 +0000
+++ b/libcommon/hexdump.c	Fri Feb 19 06:43:01 2021 +0000
@@ -2,35 +2,43 @@
 #include <stdio.h>
 #include "simresp.h"
 
-display_sim_resp_in_hex()
+display_sim_resp_in_hex(outf)
+	FILE *outf;
 {
 	unsigned off, cc, n, c;
 
 	for (off = 0; off < sim_resp_data_len; off += cc) {
-		printf("%02X:", off);
+		fprintf(outf, "%02X:", off);
 		cc = 16;
 		if (sim_resp_data_len - off < cc)
 			cc = sim_resp_data_len - off;
 		for (n = 0; n < 16; n++) {
 			if (n == 0 || n == 8)
-				putchar(' ');
-			putchar(' ');
+				putc(' ', outf);
+			putc(' ', outf);
 			if (n < cc)
-				printf("%02X", sim_resp_data[off + n]);
+				fprintf(outf, "%02X", sim_resp_data[off + n]);
 			else {
-				putchar(' ');
-				putchar(' ');
+				putc(' ', outf);
+				putc(' ', outf);
 			}
 		}
-		putchar(' ');
-		putchar(' ');
+		putc(' ', outf);
+		putc(' ', outf);
 		for (n = 0; n < cc; n++) {
 			c = sim_resp_data[off + n];
 			if (c < 0x20 || c > 0x7E)
 				c = '.';
-			putchar(c);
+			putc(c, outf);
 		}
-		putchar('\n');
+		putc('\n', outf);
 	}
 	return(0);
 }
+
+cmd_sim_resp(argc, argv, outf)
+	char **argv;
+	FILE *outf;
+{
+	return display_sim_resp_in_hex(outf);
+}