BFC9Ehを書き換えるとスクロールする範囲を指定(1〜4の範囲)できます。
POKE &BFC9E,1 [RETURN]
とすると一番上のラインしか使用出来なくなります。
元に戻すには
POKE &BFC9E,4 [RETURN]
としてください。簡単に言えばN88BASICのCONSOLE命令の第2パラメータと同じようなもの(ちょっと違うけど)です。つまり、「1」ではなく「3」を書き込んだら上3行をスクロールさせて一番下の行にスコアを表示するという使いかたができる(といっても少し工夫が必要ですが・・・)のです。
なお、これとNo.006のテクニックと組み合わせることにより、表示に利用できるエリアを変えることができます。これを使って、簡易的に昔のポケコンをエミュレートすることができます。
機種名 | BFC9Dh | BFC9Eh | 注意点 |
PC-1250シリーズ | 24 | 1 | プログラムの最初にWAITをつける PRINT文やINPUT文の後ろには必ずCLSを付ける |
PC-1245シリーズ PC-1401シリーズ |
16 | 1 | 同 上 |
PC-1350シリーズ | 24 | 4 | プログラムの最初にWAITをつける CURSORをLOCATEに変える |
POKE &BFC9D,24,1 [RETURN]
とします。なお、簡易的なものなので、POKE、CALL、PEEKを使っているものや論理式を利用しているもの、その他機種依存している処理がある場合に関してはそのままでは正常に動作しません。当然のことながらマシン語プログラムは動作しません。あとゲームなどでは速すぎて困るというものがあるかもしれません(オイオイ)。
つまり、エミュレータといっても画面表示エリアのみのエミュレータ(?)であって、残りはBASICの文法の互換性により実現しているためなのです(笑)。
なお、プログラム終了時には
POKE &BFC9D,40,4 [RETURN]
として元の状態に戻してください。
このエミュレータに何の意味があるのかというと・・・このくらいしかこのテクニックが使えるものが思い浮かばなかったからです(笑)。
(注)POKEやCALLをしているプログラムは絶対にエミュレータで実行しないでください!
あとこのテクニックは意図的に表示エリアを小さくして表示速度を上げるというという使用方法もあります。これは、OPASと組み合わせることで効果が発揮出来ます。表示に使用できるのが画面左のみという制約がありますが、うまく使えば20%程度の表示の高速化が可能です。