aboutsummaryrefslogtreecommitdiff
path: root/dumpfont.pl
diff options
context:
space:
mode:
authorB. Watson <yalhcru@gmail.com>2017-09-22 16:09:17 -0400
committerB. Watson <yalhcru@gmail.com>2017-09-22 16:09:17 -0400
commitb2cad8050e2077f09535607a829183a842023da7 (patch)
tree1f51d630c7596355b023a8cb4583fe46e3d066a7 /dumpfont.pl
downloaddefender-b2cad8050e2077f09535607a829183a842023da7.tar.gz
initial commit
Diffstat (limited to 'dumpfont.pl')
-rwxr-xr-xdumpfont.pl35
1 files changed, 35 insertions, 0 deletions
diff --git a/dumpfont.pl b/dumpfont.pl
new file mode 100755
index 0000000..2d2e448
--- /dev/null
+++ b/dumpfont.pl
@@ -0,0 +1,35 @@
+#!/usr/bin/perl -w
+
+use bytes;
+
+# dump rom as 4-color bitmap, each byte is 4 pixels wide
+$/ = \1;
+$addr = 0x8000;
+#@chars = (" ", "X", "o", ".");
+@chars = ("\x1b[30;40m ", "\x1b[30;42m ", "\x1b[30;41m ", "\x1b[30;47m ");
+
+$start = hex(shift) || 0x950a;
+$end = hex(shift) || 0x9641;
+@ARGV="defender.rom" unless @ARGV;
+
+my $pos = 0;
+my $count = 0;
+while(<>) {
+ my $str = "";
+ my @pairs;
+ my $byte = ord($_);
+ my $tmp = $byte;
+ for(my $i = 0; $i < 4; $i++) {
+ my $pixel = $tmp & 3;
+ $str = $chars[$pixel] . $str;
+ $str = $chars[$pixel] . $str;
+ $tmp >>= 2;
+ }
+ $str .= "\x1b[0m";
+ if($addr >= $start && $addr <= $end) {
+ printf "%04x: %02x |%s|\n", $addr, $byte, $str;
+ $count++;
+ print ("\n"), $count = 0 if $count == 8;
+ }
+ $addr++;
+}