やってみましょう!MSXBASICその5

その4へ戻る
・漢字を表示
・ハードウェアスクロール
・MSX2+のYJKモード
・テキストモード詳細
・CLOCK−ICを使う


・漢字を表示:■を表示

NEW命令で全てプログラムを消去して次のプログラムを実行してください。

100 SCREEN5

120 I=&H2333
130 PUT KANJI(100,100),I,15
140 A$=INPUT$(1):I=I+1:GOTO 130

MSX2+以降からシフトJISを入力できる漢字BASICを使うことができます。

MSX2+パソコンで表を計算する:
http://www.geocities.jp/fullmsx2/u-yan/word-process4-2.html

・ハードウェアスクロール
 SET SCROOL

この命令はMSX2+以降でハードウェアスクロール命令が加わりました。

 SET SCROOL 0,3,1,1

 Y方向に3ドットスクロールして、左端をボーダー色で隠すように設定(1)しました。
最後の1は裏のページにスクロールするようになります。

 これまでの説明でスプライトなども解説しました。さて、MSX2+では 次の自然画モードが追加されました。
すこし、難しい説明になります。参照:スプライト、16進数、論理演算

■SCREEN12

YJKは色データではなく、テレビ画面の信号の輝度、色差情報をデジタル計算した映像信号データです。

<YJK方式画面のデータ構造>

・横4ドットごとに色相、1ドットごとに輝度を指定。
従来のモードでは表せない色が表示できる、ただし、文字表示は難しい。

b7b6b5b4b3b2b1b0
■■■■■□□□Kl
■■■■■□□□KH
■■■■■◆◆◆Jl
■■■■■◆◆◆JH

■:Y □:K ◆:J

表ではビットマップの割り当てを表示しています。
これまで色の指定は1ドットでしたが4ドットごとに一辺に塗ってしまいます。


■SCREEN10,11

<混在方式の画面>

・1ドットごとにYJK方式とRGB方式を選択可能。VRAMのビット3が
 b3のA(アトリビュート)が
 0ならばYJK方式、
 1ならばビット7からビット4で指定されるパレットの色

b7b6b5b4b3b2b1b0
■■■■A□□□Kl
■■■■A□□□KH
■■■■A◆◆◆Jl
■■■■A◆◆◆JH

---

<RGBとYJKの変換式>

Y=(2R+G+4B)/8
J=(6R-G-4B)/8
K(-2R+7G−4B)/8

R=Y+J
G=Y+K
B=1.25Y-0.5J-0.25K




・ジョイスティックで移動

FORI=0TO1:I=STICK(0):NEXT:PRINT I

 上のプログラムをダイレクトで実行してI=の結果が0以外の数値が入ります。
0は差し込まれたポート番号です。この場合はキーボードになります。
カーソルキーの右を押すと4が表示されます。移動処理する場合はX=X+1になります。
PUTSPRITE0,(X,110),15,1などというふうにXの数値を変化させて使用します。


・AボタンとBボタン

FORI=0TO1:I=−STRIG(0):NEXT

押されると-1が入りますが-(−1)なので+1になります。

・キーのコードの調べ方

? ASC(INPUT$(1))

リターンを押すと13が表示されます。プログラムにすると
I$=INPUT$(1)
IF I$=CHR$(13) THEN PRINT”RETURN”
というふうになります。



・テキストモードの詳細

SCREEN0
WIDTH1〜40
WIDTH41〜80
SCREEN1
WIDTH1〜32

・CLOCK−ICを使う。

■日付と時刻の表示
 GETDATE A$:GETTIME B$:? A$,B$
■日付と時刻の変更
 SETDATE”04/09/03”:SETTIME”10:00:00”
■文字幅の設定
 SCREEN1:WIDTH 32
■COLOR
 COLOR15,4,7
■画面色の記憶
 SETSCREEN
■実行終了メッセージ
 SETPROMPT”おーけー”
■ハードウェアパスワード:起動時に表示
 SETPASSWORD”U−YAN”
■タイトルに文字を入れ、色を変える
 SETTITLE”U−YAN”,4
■ビープ音を変える
 SETBEEP4,4:BEEP
■画面調整
 SETADJUST(−2,−5)

※スーパーインポーズは省いています。


・テキスト漢字モード

CALLKANJI
Synatax error
Ok


・テキストファイルを見たい

>「ねこいらず」があります。
>もし、エラー出るようでしたら、GIGAMIXさんのソフトにDM#8 の中にねこいらずがありま すので、そのあたりで代用が可能!
>テキストドキュメントを見たい場合の代用策です。

・文字を入力したい

>残念ながら自作するしかないですが、打開策として、あかりがあります。
>ただし条件があります。
>このDM−SYSTEM2インストールしてから、AKARI−W.BASを実行します。
>現在のところ漢字コード一覧から打ち込むようになっています。
>コードの音引きがめんどう、音訓が欲しいという要望があり、現在改良中。

・なぜMSXでは漢字辞書がフロッピーにないの?

 それはNECのPC88とPC98シリーズでは2DDではなく、2HDということなどハード面が異なる、高価なパ ソコンです。
そういうこともありMSXではなかなかできないのです。MSX−JE実装のMSXでは内蔵辞書RAMを使っています。
 というか、この分野はゲームとは異なるので安易でない上、市場性もないなど誰も技を凝らした開発はしないでしょう。
と、言いながらもSDカードのストレージがある1chipMSXなら問題なく単語変換辞書をやってしまいましたが。(爆)
環境を整えればMSX2、漢字ROM搭載機でMSX2+と同等にシフトJISが打ち込めるようになりました。

★次世代MSXはどんなもの?

キーボード付きのMSXとしたかったのですが、コストを抑えて1chipMSXとしたようです。
それでもレガシースロット2基のMSX2相当の機能が入ったのはよかったと思います。
私が今考えているのはMSXBASICでメモリ管理をしたいと思います。
1chipMSXは数バイトのブロック保存すれば限界を気にしないで使えます。
ただ、メモリデータを再配置したりするとDM-SYSTEM2になるのか…


いかがでしょうか? もし、MSXBASICに興味をもたれましたら、数々の講座のページを見ながらBASIC命令セットを調べてみてください。
いろいろなページをダウンロードすればグラフィックを動かしたり、キャラクタを動かしたりできるようになります。
おすすめのページはこれです。

MSXドット絵アプリ制作講座
http://www.geocities.jp/fullmsx2/u-yan/msxi-sp.html
MSXスプライト徹底講座
http://www.geocities.jp/fullmsx2/u-yan/basic/sprite.html
SPトップページ開発センター
http://f28.aaa.livedoor.jp/%7Euyanexp/sp/page010.html

もどる