rendered paste bodyFrom c80b43749874ade16e031a46acab3d22bb99cf90 Mon Sep 17 00:00:00 2001
From: Oliver McFadden <z3ro.geek@gmail.com>
Date: Sat, 7 Jun 2008 10:29:24 +0000
Subject: [PATCH] Experimental and untested support for Type-1 packets.
---
src/revenge_dump.c | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/src/revenge_dump.c b/src/revenge_dump.c
index 13f6148..70b8595 100644
--- a/src/revenge_dump.c
+++ b/src/revenge_dump.c
@@ -109,6 +109,25 @@ dump_packet0 (unsigned int packet_type, unsigned int packet_cnt,
}
static int
+dump_packet1 (unsigned int packet_type, unsigned int reg_index1,
+ unsigned int reg_index2, unsigned int *mem_map, FILE * file)
+{
+ if (option_debug)
+ {
+ printf ("%s: type = %d reg_index1 = 0x%04x reg_index2 = 0x%04x\n",
+ __func__, packet_type, reg_index1, reg_index2);
+ }
+
+ fprintf (file, "%08x\n", mem_map[0]);
+ dump_reg (reg_index1, mem_map[0]);
+
+ fprintf (file, "%08x\n", mem_map[1]);
+ dump_reg (reg_index2, mem_map[1]);
+
+ return 2;
+}
+
+static int
dump_packet2 (unsigned int packet_type, unsigned int packet_cnt,
unsigned int packet_bit15, unsigned int packet_reg,
unsigned int *mem_map, FILE * file)
@@ -154,6 +173,7 @@ dump_packets (unsigned int head, unsigned int tail, unsigned int *mem_map,
int i;
unsigned int packet_type, packet_cnt, packet_bit15, packet_reg,
packet_opcode;
+ unsigned int reg_index1, reg_index2;
unsigned int proc;
if (!(file = fopen (name, "w")))
@@ -174,6 +194,9 @@ dump_packets (unsigned int head, unsigned int tail, unsigned int *mem_map,
packet_bit15 = (mem_map[i] >> 15) & 0x1;
packet_reg = ((mem_map[i] >> 0) & 0x1fff) << 2;
+ reg_index1 = ((mem_map[i] >> 0) & 0x7ff) << 2;
+ reg_index2 = ((mem_map[i] >> 11) & 0x7ff) << 2;
+
packet_opcode = (mem_map[i] >> 8) & 0xff;
fprintf (file, "%08x\n", mem_map[i]);
@@ -185,6 +208,11 @@ dump_packets (unsigned int head, unsigned int tail, unsigned int *mem_map,
dump_packet0 (packet_type, packet_cnt, packet_bit15, packet_reg,
&mem_map[i + 1], file);
break;
+ case 0x1:
+ proc =
+ dump_packet1 (packet_type, reg_index1, reg_index2,
+ &mem_map[i + 1], file);
+ break;
case 0x2:
proc =
dump_packet2 (packet_type, packet_cnt, packet_bit15, packet_reg,
--
1.5.4.3