From c80b43749874ade16e031a46acab3d22bb99cf90 Mon Sep 17 00:00:00 2001 From: Oliver McFadden 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