X-Git-Url: http://gitweb.hugovil.com/?a=blobdiff_plain;f=src%2Fopcode2c.pl;h=a80f651fe78feb0ef0a78f3fec40cd78443c671d;hb=67a0a710e077d824e90681614e867d0b78e26520;hp=3e3bdc7bc82738c6f8f7f641485c251e85c34932;hpb=da17471fcb26f0dbed0aa88f863aec043b9f8851;p=emu8051.git diff --git a/src/opcode2c.pl b/src/opcode2c.pl index 3e3bdc7..a80f651 100755 --- a/src/opcode2c.pl +++ b/src/opcode2c.pl @@ -116,7 +116,7 @@ while($ligne=) { $instargs[($instnumb << 2) + $i + 1]=$argstypes{$argslist[$i]}; } } - + if (not exists $insttext{$wordlist[2]}) { $insttext[$nbinst]=$wordlist[2]; $insttext{$wordlist[2]}=$nbinst++; @@ -215,8 +215,6 @@ for ($i=0 ; $i< 256; $i++) { print INST_IMP " ","*"x76,"/\n"; print INST_IMP "int\n"; print INST_IMP "cpu8051_OP_$a_opcodehex[$i](void)\n"; -# TEST hugo new... -# print INST_DEF "int OP_$a_opcodehex[$i]( );\n"; print INST_IMP "{\n"; if( $i == 0x85 ) { @@ -251,7 +249,7 @@ for ($i=0 ; $i< 256; $i++) { if ($op_destination == 5) { # @R1 print INST_IMP "unsigned char destination = cpu8051_ReadI ( cpu8051_ReadD( BANKPSW + _R1_ ) );\n"; } - + if ($op_destination == 6) { # R0 print INST_IMP "unsigned char destination = cpu8051_ReadD( BANKPSW + _R0_ );\n"; } @@ -612,7 +610,7 @@ for ($i=0 ; $i< 256; $i++) { print INST_IMP "unsigned int reladdr = ((char) memory_read8(PGM_MEM_ID, cpu8051.pc)) + (cpu8051.pc + 1);\n"; print INST_IMP "cpu8051_WriteD( _PSW_, ( cpu8051_ReadD( _PSW_ ) & 0x7F ) );\n"; print INST_IMP "if ( destination < source ) cpu8051_WriteD( _PSW_, ( cpu8051_ReadD( _PSW_ ) | 0x80 ) );\n"; - print INST_IMP "if ( destination != source ) cpu8051.pc = reladdr;\n"; + print INST_IMP "if ( destination != source ) cpu8051.pc = reladdr; else cpu8051.pc++; \n"; } # PUSH