通称「Z」の罠
デモで敵が死亡すると「おかしな命令」エラーで落ちる。WinX68k高速版の Debug Trace 機能でさがしたら・・・・ リターンアドレスを PUSH して強制的に rts で抜ける(ジャンプする)ルーチン発見。こんな初歩的な罠にはまるとは・・・まだまだ修行が足りないな・・・
ちなみに 6502 にはバグがあって、JSR 命令でスタックに格納される復帰先アドレスの値は「実際の値マイナス1」の値が格納されて、RTS 時に(自動的に)復帰先アドレスをプラス1することで整合性を保っている。
例)A000:
JSR $1234 →スタックには $02,$a0 が積まれる。
A003:
次の命令
それで、デモループが一通り正常に回るようになったので、11/1 バージョンとして、ここで本当に一旦〆。ここまでで、ざっと二週間程度。残作業は横画面(ローテート)対応とサウンドCPU対応かな?その辺はバーニンラバーのノウハウがあるので、スムーズに進行すると思う(思いたい・・)。