iP6 Plus のバグ を発見しました。

device.c 756行目あたり

case 0x73:	/* FM SOUND CARTRIDGE */
case 0xA3: if(sr_mode) 
            {
	     Value= ym2203_ReadStatus();
             }
	    break;

if(sr_mode) じゃなくて、機種で判別しないといけないような。。
これだと、機種がSRでも、旧機種互換モードで動いているときは、条件が成立せず、スルーしてしまう。。


if(P6Version ==2 || P6Version ==4) かな。。

あ、でも、FMカートリッジが刺さっているときは?
FM音源ない機種でも、FM音源を拡張するカートリッジ。。。そういえば、カートリッジが刺さっているかどうかを判別する変数ないぞ。。(汗)


いずれにしても、このままだと、Valueが初期化されないまま、return で返却するという経路が残ることになりますね。。。(汗)


あと、P6Version が機種なんですが、将来的には、マジックナンバーを廃止した方がいいですね。。

PC60      0
PC60M2    1
PC60SR    2
PC66      3
PC66SR    4

でよいかな?

自分でも、ときどき間違い欠けたりするらしい。。。(汗)