adding option for disambler mode, disambler mode does not translate a binary file...
authorMagnus Olsen <magnus@greatlord.com>
Sat, 13 Jan 2007 12:23:25 +0000 (12:23 +0000)
committerMagnus Olsen <magnus@greatlord.com>
Sat, 13 Jan 2007 12:23:25 +0000 (12:23 +0000)
svn path=/trunk/; revision=25438

15 files changed:
rosapps/devutils/cputointel/CpuToIntel.c
rosapps/devutils/cputointel/From/ARM/ARM.h
rosapps/devutils/cputointel/From/ARM/ARMBrain.c
rosapps/devutils/cputointel/From/ARM/ARMopcode.c
rosapps/devutils/cputointel/From/PPC/PPC.h
rosapps/devutils/cputointel/From/PPC/PPCBrain.c
rosapps/devutils/cputointel/From/PPC/PPCopcode.c
rosapps/devutils/cputointel/From/dummycpu/Dummy.h
rosapps/devutils/cputointel/From/dummycpu/DummyBrain.c
rosapps/devutils/cputointel/From/dummycpu/Dummyopcode.c
rosapps/devutils/cputointel/From/m68k/M68kBrain.c
rosapps/devutils/cputointel/From/m68k/M68kopcode.c
rosapps/devutils/cputointel/From/m68k/m68k.h
rosapps/devutils/cputointel/ImageLoader.c
rosapps/devutils/cputointel/misc.h

index 40dfd91..579c6c9 100644 (file)
@@ -13,6 +13,7 @@ int main(int argc, char * argv[])
     char *outfile=NULL;
     char *cpuid=NULL;
     CPU_INT type=0;
+    CPU_INT mode = 1;
 
 
     printf("Usage :\n");
@@ -35,6 +36,7 @@ int main(int argc, char * argv[])
     printf("       -inBin filename  : the bin file you whant convert\n");
     printf("       -inExe filename  : the PE file you whant convert\n");
     printf("       -OutAsm filename : the Asm file you whant create\n");
+    printf("       -OutDis filename : Do disambler of the source file\n");
     printf("------------------------------------------------------------------\n");
     printf("More cpu will be added with the time or options, this is      \n");
     printf("version 0.0.1 of the cpu to intel converter writen by         \n");
@@ -42,10 +44,12 @@ int main(int argc, char * argv[])
     printf("yet, more that basic desgin how it should be writen.          \n");
     printf("Copyright 2006 by Magnus Olsen, licen under GPL 2.0 for now.  \n");
 
-    if (argc < 7)
-        return .110;
 
-    for (t=1; t<7;t+=2)
+    if (argc <4)
+        return 110;
+
+    /* fixme better error checking for the input param */
+    for (t=1; t<argc;t+=2)
     {
         if (stricmp(argv[t],"-in"))
         {
@@ -69,6 +73,11 @@ int main(int argc, char * argv[])
         {
             outfile = argv[t+1];
         }
+        if (stricmp(argv[t],"-OutDis"))
+        {
+            outfile = argv[t+1];
+            mode = 0;
+        }
         if (stricmp(argv[t],"-BaseAddress"))
         {
             BaseAddress = atol(argv[t+1]);
@@ -80,7 +89,8 @@ int main(int argc, char * argv[])
 
     }
 
-    return LoadPFileImage(infile,outfile,BaseAddress,cpuid,type);
+
+    return LoadPFileImage(infile,outfile,BaseAddress,cpuid,type, mode);
     //return LoadPFileImage("e:\\cputointel.exe","e:\\cputointel.asm",0,0,0);
 
 }
index 9ed48f2..1a69ff1 100644 (file)
@@ -6,10 +6,11 @@ CPU_INT ARMBrain(    CPU_BYTE *cpu_buffer,
                      CPU_UNINT cpu_size,
                      CPU_UNINT BaseAddress,
                      CPU_UNINT cpuarch,
-                     FILE *outfp);
+                     FILE *outfp,
+                     CPU_INT mode);
 
 /* here we put the prototype for the opcode api that brain need we show a example for it */
-CPU_INT ARM_(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
+CPU_INT ARM_(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
 
 
 /* Export comment thing see m68k for example 
index 1a570ea..4a4bcd5 100644 (file)
@@ -5,7 +5,33 @@
 #include "ARM.h"
 #include "../../misc.h"
 
-/* retun 
+/* 
+ * DummyBrain is example how you create you own cpu brain to translate from 
+ * cpu to intel assembler, I have not add DummyBrain to the loader it is not
+ * need it in our example. When you write you own brain, it must be setup in
+ * misc.c function LoadPFileImage and PEFileStart, PEFileStart maybe does not
+ * need the brain you have writen so you do not need setup it there then.
+ *
+ * input param: 
+ *         cpu_buffer   : the memory buffer with loaded program we whant translate
+ *         cpu_pos      : the positions in the cpu_buffer 
+ *         cpu_size     : the alloced memory size of the cpu_buffer
+ *         BaseAddress  : the virtual memory address we setup to use.
+ *         cpuarch      : the sub arch for the brain, example if it exists more one
+ *                        cpu with same desgin but few other opcode or extend opcode
+ *         outfp        : the output file pointer
+ *
+ *           mode       : if we should run disambler of this binary or
+ *                        translate it, Disambler will not calc the
+ *                        the row name right so we simple give each
+                          row a name. In translations mode we run a 
+ *                        analys so we getting better optimzing and 
+ *                        only row name there we need.
+ *                        value for mode are :
+ *                                             0 = disambler mode
+ *                                             1 = translate mode intel
+ *
+ * return value
  *         0            : Ok 
  *         1            : unimplemt 
  *         2            : Unkonwn Opcode
@@ -18,7 +44,8 @@ CPU_INT ARMBrain(  CPU_BYTE *cpu_buffer,
                    CPU_UNINT cpu_size,
                    CPU_UNINT BaseAddress,
                    CPU_UNINT cpuarch,
-                   FILE *outfp)
+                   FILE *outfp,
+                   CPU_INT mode)
 {
     CPU_UNINT cpu_oldpos;
     CPU_INT cpuint;
@@ -37,7 +64,7 @@ CPU_INT ARMBrain(  CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte32(cpuARMInit_))) == ConvertBitToByte32(cpuARMInit_))
         {
             retsize = ARM_( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                 BaseAddress, cpuarch);
+                                 BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
index eb6cd6b..f3aa86f 100644 (file)
  *                             pentinum-mmx so on, use this flag to specify which type 
  *                             of cpu you whant or do not use it if it does not exists
  *                             other or any sub model.
+ *
+ *                mode       : if we should run disambler of this binary or
+ *                             translate it, Disambler will not calc the
+ *                             the row name right so we simple give each
+                               row a name. In translations mode we run a 
+ *                             analys so we getting better optimzing and 
+ *                             only row name there we need.
+ *                             value for mode are :
+ *                                                  0 = disambler mode
+ *                                                  1 = translate mode intel
  *
  * Return value :
  *               value -1            : unimplement 
@@ -23,7 +34,8 @@
  */
  
 CPU_INT ARM_( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                   CPU_INT mode)
 
 {
     /* 
index 4d9a7af..4b7969c 100644 (file)
@@ -6,11 +6,12 @@ CPU_INT PPCBrain(    CPU_BYTE *cpu_buffer,
                      CPU_UNINT cpu_size,
                      CPU_UNINT BaseAddress,
                      CPU_UNINT cpuarch,
-                     FILE *outfp);
+                     FILE *outfp,
+                     CPU_INT mode);
 
 
 /* here we put the prototype for the opcode api that brain need we show a example for it */
-CPU_INT PPC_Addx(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
+CPU_INT PPC_Addx(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
 
 
 /* Export comment thing see m68k for example 
index 1b6314e..010bf96 100644 (file)
  *                        cpu with same desgin but few other opcode or extend opcode
  *         outfp        : the output file pointer
  *
+ *           mode       : if we should run disambler of this binary or
+ *                        translate it, Disambler will not calc the
+ *                        the row name right so we simple give each
+                          row a name. In translations mode we run a 
+ *                        analys so we getting better optimzing and 
+ *                        only row name there we need.
+ *                        value for mode are :
+ *                                             0 = disambler mode
+ *                                             1 = translate mode intel
+ *
  * return value
  *         0            : Ok 
  *         1            : unimplemt 
@@ -34,7 +44,8 @@ CPU_INT PPCBrain(    CPU_BYTE *cpu_buffer,
                      CPU_UNINT cpu_size,
                      CPU_UNINT BaseAddress,
                      CPU_UNINT cpuarch,
-                     FILE *outfp)
+                     FILE *outfp,
+                     CPU_INT mode)
 {
     CPU_UNINT cpu_oldpos;
     CPU_INT cpuint;
@@ -53,7 +64,7 @@ CPU_INT PPCBrain(    CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte32(cpuPPCInit_Addx))) == ConvertBitToByte32(cpuPPCInit_Addx))
         {
             retsize = PPC_Addx( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                 BaseAddress, cpuarch);
+                                 BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
index 2d2bf28..9f7e864 100644 (file)
@@ -24,7 +24,8 @@
  */
  
 CPU_INT PPC_Addx( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                   CPU_INT mode)
 
 {
     /* 
index fab485d..d5b17b1 100644 (file)
@@ -6,10 +6,11 @@ CPU_INT DummyBrain(  CPU_BYTE *cpu_buffer,
                      CPU_UNINT cpu_size,
                      CPU_UNINT BaseAddress,
                      CPU_UNINT cpuarch,
-                     FILE *outfp);
+                     FILE *outfp,
+                     CPU_INT mode);
 
 /* here we put the prototype for the opcode api that brain need we show a example for it */
-CPU_INT DUMMY_Add(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
+CPU_INT DUMMY_Add(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
 
 
 /* Export comment thing see m68k for example 
index db58c11..2d4d33c 100644 (file)
  *                        cpu with same desgin but few other opcode or extend opcode
  *         outfp        : the output file pointer
  *
+ *           mode       : if we should run disambler of this binary or
+ *                        translate it, Disambler will not calc the
+ *                        the row name right so we simple give each
+                          row a name. In translations mode we run a 
+ *                        analys so we getting better optimzing and 
+ *                        only row name there we need.
+ *                        value for mode are :
+ *                                             0 = disambler mode
+ *                                             1 = translate mode intel
+ *
  * return value
  *         0            : Ok 
  *         1            : unimplemt 
@@ -36,7 +46,8 @@ CPU_INT DummyBrain(  CPU_BYTE *cpu_buffer,
                      CPU_UNINT cpu_size,
                      CPU_UNINT BaseAddress,
                      CPU_UNINT cpuarch,
-                     FILE *outfp)
+                     FILE *outfp,
+                     CPU_INT mode)
 {
     CPU_UNINT cpu_oldpos;
     CPU_INT cpuint;
@@ -54,7 +65,7 @@ CPU_INT DummyBrain(  CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuDummyInit_Add))) == ConvertBitToByte(cpuDummyInit_Add))
         {
             retsize = DUMMY_Add( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                 BaseAddress, cpuarch);
+                                 BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
index 51ae803..9630d62 100644 (file)
  *                             of cpu you whant or do not use it if it does not exists
  *                             other or any sub model.
  *
+ *                mode       : if we should run disambler of this binary or
+ *                             translate it, Disambler will not calc the
+ *                             the row name right so we simple give each
+                               row a name. In translations mode we run a 
+ *                             analys so we getting better optimzing and 
+ *                             only row name there we need.
+ *                             value for mode are :
+ *                                                  0 = disambler mode
+ *                                                  1 = translate mode intel
+ *
  * Return value :
  *               value -1            : unimplement 
  *               value  0            : wrong opcode or not vaild opcode
@@ -24,7 +34,8 @@
  */
  
 CPU_INT DUMMY_Add( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                   CPU_INT mode)
 
 {
     /* 
index df74174..b7222ae 100644 (file)
@@ -5,7 +5,33 @@
 #include "m68k.h"
 #include "../../misc.h"
 
-/* retun 
+/* 
+ * DummyBrain is example how you create you own cpu brain to translate from 
+ * cpu to intel assembler, I have not add DummyBrain to the loader it is not
+ * need it in our example. When you write you own brain, it must be setup in
+ * misc.c function LoadPFileImage and PEFileStart, PEFileStart maybe does not
+ * need the brain you have writen so you do not need setup it there then.
+ *
+ * input param: 
+ *         cpu_buffer   : the memory buffer with loaded program we whant translate
+ *         cpu_pos      : the positions in the cpu_buffer 
+ *         cpu_size     : the alloced memory size of the cpu_buffer
+ *         BaseAddress  : the virtual memory address we setup to use.
+ *         cpuarch      : the sub arch for the brain, example if it exists more one
+ *                        cpu with same desgin but few other opcode or extend opcode
+ *         outfp        : the output file pointer
+ *
+ *           mode       : if we should run disambler of this binary or
+ *                        translate it, Disambler will not calc the
+ *                        the row name right so we simple give each
+                          row a name. In translations mode we run a 
+ *                        analys so we getting better optimzing and 
+ *                        only row name there we need.
+ *                        value for mode are :
+ *                                             0 = disambler mode
+ *                                             1 = translate mode intel
+ *
+ * return value
  *         0            : Ok 
  *         1            : unimplemt 
  *         2            : Unkonwn Opcode
@@ -18,7 +44,8 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
                      CPU_UNINT cpu_size,
                      CPU_UNINT BaseAddress,
                      CPU_UNINT cpuarch,
-                     FILE *outfp)
+                     FILE *outfp,
+                     CPU_INT mode)
 {
     CPU_UNINT cpu_oldpos;
     CPU_INT cpuint;
@@ -36,7 +63,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Abcd))) == ConvertBitToByte(cpuM68kInit_Abcd))
         {
             retsize = M68k_Abcd( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                 BaseAddress, cpuarch);
+                                 BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -46,7 +73,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Add))) == ConvertBitToByte(cpuM68kInit_Add))
         {
             retsize = M68k_Add( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -56,7 +83,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Addi))) == ConvertBitToByte(cpuM68kInit_Addi))
         {
             retsize = M68k_Addi( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                 BaseAddress, cpuarch);
+                                 BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -66,7 +93,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Addq))) == ConvertBitToByte(cpuM68kInit_Addq))
         {
             retsize = M68k_Addq( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                 BaseAddress, cpuarch);
+                                 BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -76,7 +103,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Addx))) == ConvertBitToByte(cpuM68kInit_Addx))
         {
             retsize = M68k_Addx( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                 BaseAddress, cpuarch);
+                                 BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -86,7 +113,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_And))) == ConvertBitToByte(cpuM68kInit_And))
         {
             retsize = M68k_Add( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -96,7 +123,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Andi))) == ConvertBitToByte(cpuM68kInit_Andi))
         {
             retsize = M68k_Andi( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                 BaseAddress, cpuarch);
+                                 BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -110,7 +137,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
             {
                 cpu_pos++;
                 retsize = M68k_AndToCCR( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                         BaseAddress, cpuarch);
+                                         BaseAddress, cpuarch, mode);
                 if (retsize<0)
                     retcode = 1;
                 else
@@ -126,7 +153,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Bhi))) == ConvertBitToByte(cpuM68kInit_Bhi))
         {
             retsize = M68k_Bhi( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -137,7 +164,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Bls))) == ConvertBitToByte(cpuM68kInit_Bls))
         {
             retsize = M68k_Bls( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -148,7 +175,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Bcc))) == ConvertBitToByte(cpuM68kInit_Bcc))
         {
             retsize = M68k_Bcc( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -159,7 +186,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Bcs))) == ConvertBitToByte(cpuM68kInit_Bcs))
         {
             retsize = M68k_Bcs( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -170,7 +197,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Bne))) == ConvertBitToByte(cpuM68kInit_Bne))
         {
             retsize = M68k_Bne( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -181,7 +208,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Beq))) == ConvertBitToByte(cpuM68kInit_Beq))
         {
             retsize = M68k_Beq( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -192,7 +219,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Bvc))) == ConvertBitToByte(cpuM68kInit_Bvc))
         {
             retsize = M68k_Bvc( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -203,7 +230,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Bvs))) == ConvertBitToByte(cpuM68kInit_Bvs))
         {
             retsize = M68k_Bvs( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -214,7 +241,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Bpl))) == ConvertBitToByte(cpuM68kInit_Bpl))
         {
             retsize = M68k_Bpl( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -225,7 +252,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Bmi))) == ConvertBitToByte(cpuM68kInit_Bmi))
         {
             retsize = M68k_Bmi( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -236,7 +263,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Bge))) == ConvertBitToByte(cpuM68kInit_Bge))
         {
             retsize = M68k_Bge( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -247,7 +274,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Blt))) == ConvertBitToByte(cpuM68kInit_Blt))
         {
             retsize = M68k_Blt( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -258,7 +285,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Bgt))) == ConvertBitToByte(cpuM68kInit_Bgt))
         {
             retsize = M68k_Bgt( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
@@ -269,7 +296,7 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
         if ((cpuint - (cpuint & GetMaskByte(cpuM68kInit_Ble))) == ConvertBitToByte(cpuM68kInit_Ble))
         {
             retsize = M68k_Ble( outfp, cpu_buffer, cpu_pos, cpu_size,
-                                BaseAddress, cpuarch);
+                                BaseAddress, cpuarch, mode);
             if (retsize<0)
                  retcode = 1;
             else
index 5bfb339..8eaffaf 100644 (file)
@@ -6,7 +6,8 @@
 
 
 CPU_INT M68k_Abcd( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                   CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -15,7 +16,8 @@ CPU_INT M68k_Abcd( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Add(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                 CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                 CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                 CPU_INT dismode)
 {
     CPU_INT opmode;
     CPU_INT mode;
@@ -87,7 +89,8 @@ CPU_INT M68k_Add(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Addi( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                   CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -96,7 +99,8 @@ CPU_INT M68k_Addi( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Addq( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                   CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -105,7 +109,8 @@ CPU_INT M68k_Addq( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Addx( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                   CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -114,7 +119,8 @@ CPU_INT M68k_Addx( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_And( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -123,7 +129,8 @@ CPU_INT M68k_And( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Andi( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                   CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                   CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -132,7 +139,8 @@ CPU_INT M68k_Andi( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_AndToCCR( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                       CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                       CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                       CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -141,7 +149,8 @@ CPU_INT M68k_AndToCCR( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Asl( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -150,7 +159,8 @@ CPU_INT M68k_Asl( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Asr( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -159,7 +169,8 @@ CPU_INT M68k_Asr( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Bhi( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -168,7 +179,8 @@ CPU_INT M68k_Bhi( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Bls( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -177,7 +189,8 @@ CPU_INT M68k_Bls( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Bcc( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -186,7 +199,8 @@ CPU_INT M68k_Bcc( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Bcs( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -195,7 +209,8 @@ CPU_INT M68k_Bcs( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Bne( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -204,7 +219,8 @@ CPU_INT M68k_Bne( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Beq( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -213,7 +229,8 @@ CPU_INT M68k_Beq( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Bvc( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -222,7 +239,8 @@ CPU_INT M68k_Bvc( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Bvs( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -231,7 +249,8 @@ CPU_INT M68k_Bvs( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Bpl( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -240,7 +259,8 @@ CPU_INT M68k_Bpl( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Bmi( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -249,7 +269,8 @@ CPU_INT M68k_Bmi( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Bge( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -258,7 +279,8 @@ CPU_INT M68k_Bge( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Blt( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -267,7 +289,8 @@ CPU_INT M68k_Blt( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Bgt( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
@@ -276,7 +299,8 @@ CPU_INT M68k_Bgt( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
 }
 
 CPU_INT M68k_Ble( FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos,
-                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch)
+                  CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch,
+                  CPU_INT mode)
 {
     fprintf(out,"Line_0x%8x :\n",BaseAddress + cpu_pos);
 
index 124e7a4..e6be2a6 100644 (file)
@@ -5,33 +5,34 @@ CPU_INT M68KBrain(   CPU_BYTE *cpu_buffer,
                      CPU_UNINT cpu_size,
                      CPU_UNINT BaseAddress,
                      CPU_UNINT cpuarch,
-                     FILE *outfp);
+                     FILE *outfp,
+                     CPU_INT mode);
 
 
-CPU_INT M68k_Abcd(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Add(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Addi(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Addq(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Addx(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_And(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Andi(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_AndToCCR(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Asl(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Asr(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Bhi(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Bls(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Bcc(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Bcs(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Bne(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Beq(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Bvc(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Bvs(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Bpl(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Bmi(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Bge(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Blt(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Bgt(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
-CPU_INT M68k_Ble(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch);
+CPU_INT M68k_Abcd(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Add(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Addi(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Addq(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Addx(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_And(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Andi(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_AndToCCR(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Asl(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Asr(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Bhi(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Bls(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Bcc(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Bcs(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Bne(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Beq(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Bvc(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Bvs(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Bpl(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Bmi(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Bge(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Blt(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Bgt(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
+CPU_INT M68k_Ble(FILE *out, CPU_BYTE * cpu_buffer, CPU_UNINT cpu_pos, CPU_UNINT cpu_size, CPU_UNINT BaseAddress, CPU_UNINT cpuarch, CPU_INT mode);
 
 extern CPU_BYTE M68k_Rx[16];
 extern CPU_BYTE M68k_RM[16];
index 03d05f9..7587174 100644 (file)
 #include "From/PPC/PPC.h"
 
 /*
- *
+ * infileName       file name to convert or disambler 
+ * outputfileName   file name to save to
+ * BaseAddress      the address we should emulate
+ * cpuid            the cpu we choice not vaild for pe loader
+ * type             the loading mode Auto, PE, bin
+ * mode             disambler mode : 0 the arch cpu.
+ *                  translate mode : 1 intel
+ * 
  */
 
 CPU_INT LoadPFileImage( char *infileName, char *outputfileName, 
                      CPU_UNINT BaseAddress, char *cpuid,
-                     CPU_UNINT type)
+                     CPU_UNINT type, CPU_INT mode)
 {
     FILE *infp;
     FILE *outfp;
@@ -102,7 +109,7 @@ CPU_INT LoadPFileImage( char *infileName, char *outputfileName,
 
     if (type==0) 
     {
-       if ( PEFileStart(cpu_buffer, 0, BaseAddress, cpu_size, outfp) !=0)
+       if ( PEFileStart(cpu_buffer, 0, BaseAddress, cpu_size, outfp, mode) !=0)
        {
             type=1;
        }
@@ -111,24 +118,24 @@ CPU_INT LoadPFileImage( char *infileName, char *outputfileName,
     if (type== 1)
     {
         if (stricmp(cpuid,"m68000"))
-                return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68000,outfp);
+                return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68000,outfp,mode);
         else if (stricmp(cpuid,"m68010"))
-                return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68010,outfp);
+                return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68010,outfp,mode);
         else if (stricmp(cpuid,"m68020"))
-                return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68020,outfp);
+                return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68020,outfp,mode);
         else if (stricmp(cpuid,"m68030"))
-                return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68030,outfp);
+                return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68030,outfp,mode);
         else if (stricmp(cpuid,"m68040"))
-                return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68040,outfp);
+                return M68KBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,68040,outfp,mode);
         else if (stricmp(cpuid,"ppc"))
-                return PPCBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,0,outfp);
+                return PPCBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,0,outfp,mode);
         else if (stricmp(cpuid,"arm4"))
-                return ARMBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,4,outfp);
+                return ARMBrain(cpu_buffer,cpu_pos,cpu_size,BaseAddress,4,outfp,mode);
     }
 
     if (type==2) 
     {
-       return PEFileStart(cpu_buffer, 0, BaseAddress, cpu_size, outfp);
+       return PEFileStart(cpu_buffer, 0, BaseAddress, cpu_size, outfp, mode);
 
     }
 
@@ -137,7 +144,7 @@ CPU_INT LoadPFileImage( char *infileName, char *outputfileName,
 
 CPU_INT PEFileStart( CPU_BYTE *memory, CPU_UNINT pos,
                      CPU_UNINT base,  CPU_UNINT size,
-                     FILE *outfp)
+                     FILE *outfp, CPU_INT mode)
 {
     PIMAGE_DOS_HEADER DosHeader;
     PIMAGE_NT_HEADERS NtHeader;
@@ -329,7 +336,7 @@ CPU_INT PEFileStart( CPU_BYTE *memory, CPU_UNINT pos,
                case IMAGE_FILE_MACHINE_POWERPC:
                     printf("CPU POWERPC Detected no CPUBrain implement for it\n");
                          //PPCBrain(memory, pos, cpu_size, base, 0, outfp);
-                    return PPCBrain(memory+SectionHeader->PointerToRawData,  0, SectionHeader->SizeOfRawData, 0, 0, outfp);
+                    return PPCBrain(memory+SectionHeader->PointerToRawData,  0, SectionHeader->SizeOfRawData, 0, 0, outfp,mode);
 
                     return 3;
 
index 4a876bb..b453af1 100644 (file)
@@ -11,8 +11,8 @@
 #define CPU_BYTE    unsigned char
 
 /* Prototypes for misc stuff */
-CPU_INT LoadPFileImage(char *infileName, char *outputfileName, CPU_UNINT BaseAddress, char *cpuid, CPU_UNINT type);
-CPU_INT PEFileStart( CPU_BYTE *memory, CPU_UNINT pos, CPU_UNINT base,  CPU_UNINT size, FILE *outfp);
+CPU_INT LoadPFileImage(char *infileName, char *outputfileName, CPU_UNINT BaseAddress, char *cpuid, CPU_UNINT type, CPU_INT mode);
+CPU_INT PEFileStart( CPU_BYTE *memory, CPU_UNINT pos, CPU_UNINT base, CPU_UNINT size, FILE *outfp, CPU_INT mode);
 
 CPU_UNINT ConvertBitToByte(CPU_BYTE *bit);
 CPU_UNINT GetMaskByte(CPU_BYTE *bit);