STOPキーで停止後の復帰できない現象について

BASICで LIST や FILES 実行中に STOP キーを押せば一時停止できますが、その後の復帰ができません(HB-F1XVのROMを使用)。 止まってしまう部分は以下のようなコードになっています。

050B : 21 9B FC    LD  HL,0FC9Bh
050E : F3          DI
050F : 7E          LD  A,(HL)
0510 : FB          EI
0511 : 36 00       LD  (HL),00h
0513 : A7          AND A
0514 : 28 F8       JR  Z,050Eh

FC9Bh は Ctrl+Stop を押した時に 03h、Stop キーを押した時には 04h が設定されます(vsync割り込みで処理される)。

どうやら、割り込みが上手く発生していないようです(fMSX98 は CPU の実行命令数から割り込みのタイミングを得るから。-ifreq を指定しても割り込みの発生のタイミングは CPU の実行命令数に依存します)。 しかも、割り込みが発生し00h以外が設定されても、LD (HL),00h でフラグがクリアされてしまうので検出しにくくなっています。

というわけで、以下のように変更してみました。

050B : 21 9B FC    LD  HL,0FC9Bh
050E : FB          EI
050F : 7E          LD  A,(HL)
0510 : A7          AND A
0511 : 28 FC       JR  Z,050Fh
0513 : 36 00       LD  (HL),00h
0515 : 00          NOP

FC9Bh のクリアを最後だけにしましたので、確実にループから抜けることができます。