--- hatari/src/uae-cpu/readcpu.c 2019/04/01 07:12:19 1.1.1.5 +++ hatari/src/uae-cpu/readcpu.c 2019/04/01 07:14:56 1.1.1.8 @@ -10,7 +10,14 @@ * This file is distributed under the GNU Public License, version 2 or at * your option any later version. Read the file gpl.txt for details. */ -char ReadCpu_rcsid[] = "Hatari $Id: readcpu.c,v 1.1.1.5 2019/04/01 07:12:19 root Exp $"; + + +/* 2008/04/26 [NP] Handle sz_byte for Areg as a valid srcmode if current instruction is a MOVE */ +/* (e.g. move.b a1,(a0) ($1089)) (fix Blood Money on Superior 65) */ + + + +const char ReadCpu_rcsid[] = "Hatari $Id: readcpu.c,v 1.1.1.8 2019/04/01 07:14:56 root Exp $"; #include #include @@ -19,7 +26,7 @@ char ReadCpu_rcsid[] = "Hatari $Id: read int nr_cpuop_funcs; -struct mnemolookup lookuptab[] = { +const struct mnemolookup lookuptab[] = { { i_ILLG, "ILLEGAL" }, { i_OR, "OR" }, { i_CHK, "CHK" }, @@ -292,7 +299,7 @@ static void build_insn (int insn) bitval[bitc] = bitval[bitC]; pos = 0; - while (opcstr[pos] && !isspace(opcstr[pos])) { + while (opcstr[pos] && !isspace((unsigned)opcstr[pos])) { if (opcstr[pos] == '.') { pos++; switch (opcstr[pos]) { @@ -327,7 +334,7 @@ static void build_insn (int insn) mnemonic[mnp] = 0; /* now, we have read the mnemonic and the size */ - while (opcstr[pos] && isspace(opcstr[pos])) + while (opcstr[pos] && isspace((unsigned)opcstr[pos])) pos++; /* A goto a day keeps the D******a away. */ @@ -521,7 +528,8 @@ static void build_insn (int insn) { srcgather = 0; } - if (srcmode == Areg && sz == sz_byte) +// if (srcmode == Areg && sz == sz_byte) + if (srcmode == Areg && sz == sz_byte && strcmp ( mnemonic , "MOVE" ) != 0 ) // [NP] move.b is valid on 68000 goto nomatch; if (opcstr[pos] != ',')