diff --git a/exec/load/hexdump_lib.js b/exec/load/hexdump_lib.js
new file mode 100644
index 0000000000000000000000000000000000000000..b40af8f51586f2d8ca59fced677669b9c6e85c92
--- /dev/null
+++ b/exec/load/hexdump_lib.js
@@ -0,0 +1,42 @@
+// $Id$
+
+function hexdump(title, val)
+{
+	var i;
+
+	if(!val) {
+		printf("%s: (null)\n", title);
+		return false;
+	}
+	printf("%s: %u bytes\n", title, val.length);
+	var ascii = '';
+	for(i=0; i < val.length; i++) {
+		var ch = val.charCodeAt(i);
+		if(i && i%16 == 0) {
+			printf("  %s\n", ascii);
+			ascii = '';
+		}
+		else if(i && i%8 == 0)
+			printf("- ");
+		printf("%02X ", ch);
+		ascii += format("%c", (ch >= 0x20 && ch < 0x7f) ? ch : '.');
+	}
+	if(ascii) {
+		var gap = 0;
+		if(i%16) {
+			gap = (16-(i%16))*3;
+			if((i%16) < 8)
+				gap += 2;
+		}
+		printf("%*s  %s\n", gap, "", ascii);
+	}
+	print();
+	return true;
+}
+
+function hexdump_file(file)
+{
+	var buf = file.read();
+
+	hexdump(file.name, buf);
+}
\ No newline at end of file