画面初期化など

  • 投稿日:
  • by
  • カテゴリ:

ローダーのBASICプログラムで

screen 3,2,2:console ,,,0:exec &HF900

として、画面モードの初期化とキークリック音のオフ処理をしていましたが、フルーツフィールド本体の頭でやるようにしました。

PC-8001のように、パラメータ文字列を渡して、SCREENやCONSOLEを呼び出す方法があるようですが、これやると ?OM Error と言われてしまいます。多分、触っちゃいけないレジスタとか触っちゃってるんでしょうけれど調べるの面倒くさいので、別の方法で。

CONSOLEの方は単にキークリック音をOFFするために呼び出すだけなのですが、これは単に、システムのワーエリア 0FA2DHに0を書き込むだけでOKですので、これで終了。

XOR A
LD (0FA2DH),A

SCREENの方は、パラメータそれぞれに設定用のエントリーポイントがあります。

SCREEN <モード>,<使用ページ>,<表示ページ>

に対して、それぞれ、モード:1390H、使用ページ:140CH、表示ページ:13EDHで、Aレジスタに設定したい値-1をセットしてCALLします。なので、SCREEN 3,2,2なら、

LD A,2
CALL 1390H
LD A,1
CALL 140CH
LD A,1
CALL 13EDH

と、すればよさげですが、これやると ?FC Errorが発生します。最初のモード3への移行が画面1に対しては行えずエラーになるのです。要は呼び出す順番なので、これを最後に回せばエラーはでなくなります。

LD A,1
CALL 140CH
LD A,1
CALL 13EDH
LD A,2
CALL 1390H

簡単な話ですが、知らないと躓くポイントじゃないかと思います。私自身、躓いたので、この辺りはBASICでやってたんですが、実機で2:50ほど、ただ真っ暗な画面が出続けているのもいかがなものかと思い、ロード中は "Loading Program..."のメッセージを出して、生きてる感を出すようにしました。