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