All pastes #1041154 Raw Edit

Something

public text v1 · immutable
#1041154 ·published 2008-06-07 10:30 UTC
rendered paste body
From 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