FULLMSXです。
MSXさいたまさんが「これ、MSXユーザーに伝えたほうがいいんじゃないの?」
というわけで、ブログにも残すことにしました。
もう1回やります。
コピー&ペーストは周知されていなかっただけでMSXなどのBASICで既にありました。
この前、発見しました。BASICの入門書などには全く載っていません;
コピー&ペーストができると非常に便利になります。
下のプログラムを見てください。
プログラミングしているかたであれば何か足りないことに気がつきます。
カーソルの移動処理のサブルーチンが全くありませんね。
実はINPUTでカーソルを移動できるのでFILESのファイル名をコピーできます。
ということはINPUTはコピーするか入力するかを選べたということになります。
一見するとこんなに短いならテキストアドベンチャーにも使えそうです。
通常の操作ではメニュー選択プログラムになりませんが、
インプットの時に「トケイ」の文字の行でENTERキーを押すとトケイの文字が入力されたようになります。
記憶できれば後は条件分岐で飛ばしてプログラムを起動できます。
変な表示になるのでKEY OFFをしておきます。
KEYOFFにするとファンクションキーの表示の23行まで有効なので
DISKBASICでは簡易ファイラーとして使えます。
普通ならVRAMやマシン語を使ってDOSをいじったりしますが、
これだけです。すごくシンプルですね。
最大で23ファイルの選択ができます。
カーソルをマウスのように移動させます。
:が表示されたら、カーソルを移動してEnterキーでクリックして
ファイルを選ぶだけでOKです。これはいいです。
VisualStudioやエクスプローラーの原型なのかもしれません。
マイクロソフトのMSXBASICは1990年を最後に
1991年からDOS5、QuickBASICに変わっています。
次世代MSXBASIC(仮)です。
まず、簡単なプログラムなら自動で作れるようにしたいです。
MSX2+なら漢字BASICでも作ることができますね。
メモ帳からMSXBASICプログラムを書いてロードすればカンタンです。
こんなふうにカンタンにメニューを階層化できるので
階層ディレクトリ、文字制限なしでエクスプローラーや
プログラムマネージャもどき、ファイル管理ソフトができてしまいます。
WIDTH15を指定すれば処理速度も上がります。
フェイルセーフのように使うなら画面色を変えて選択する方法もできるので
これはいいと思います。
これはMSX-DOS2でA:\がありますが、MSX-DOSはありません。
もっと活用するならB:\を入れるとかなり便利になりますね。
また自分でLOADしたいファイルをPRINT文で書いてもいいですね。
マイクロソフトは知っていてもユーザーには伝わっていなかったことです。
なぜ、発見されなかったと言えば、
テープの時代でFDDドライブの需要が上がったのはディスクゲームが増えてきたので
MSXBASICを深くまで考える人はいなかったのと
異常なデータでバグと認識してしまったのではないかと思います。
私もそう思いましたね。
間違いなら Redo from startみたいになるはずですよね
テキストアドベンチャーを作るならこんなふうになりますね。
「そうだ、思い出した。これ業界に話さないと」
当時(1980~1990年)ごろは
ライトノベル風のゲームブックというものがありました。
こんなふうに本のページを開くと選択肢があって、
かくれるなら123ページへ進みます。
面白すぎて何回もクリアできるまで遊んでいました。
終わりが巻末ではなく、どのページになるのかわかりません。
こんな本をコミケで販売すれば完売でしょうねw
当時は九州から東京へ引っ越した時期で
まだインターネットはもちろん日本の流通があまり発達していませんでした。
ですからゲームブックを知らないかたも多いと思います。
その後でT&TとかD&Dとかボードゲーム風のRPGとか
ドラゴンランス戦記とかソードワールドなど
テーブルトークのRPGラノベが流行った時代ですね。
多角形のさいころ(ダイス)を回して(ロール)
敵と遭遇したかの判定をしたりありましたね。
ラノベよりもっと挿絵が多くマンガに近いイメージのものでしたね。
日本語訳版の本もあったような気がします。
この時期に外国ではゲームブックなどがパソコン版になって
流行ったような気がします。10年くらいは流行ったと思います。
そういえばMSXでもディスクステーションで「魔導士ラルバ」ってありましたね。
でも、それ以上前まで影響があったのは驚きで
INPUTでは入力はもちろん選択肢をコピーできるプログラムに
進化したと推測されますね。忘れました;
というわけで三択問題などもカンタンにできます。
今度はエクセルのように数値を入れる方法です。
当時はコンピュータ=計算機のイメージでパソコンは電卓より優れているイメージがあったと思います。
それを使いこなしたい気持ちがありましたね。1次元で配列変数を作ります。
座標を使ってMID$など文字列操作を活用します。
プログラムを終了させる前にダイレクトコマンドに数値を入れてGOTO1025から
プログラムを復帰させるようにします。
カーソルを行に合わせます。こうすれば数式バーみたいに書くことができます。
と、いうことはMSXBASICを設計する段階で
いろいろなプログラムをテストしてみたような感じがします。
こんなふうにできると、気軽にプログラミングを楽しめますね。
次世代MSXBASICに期待していてください。
と、ここまではINPUT命令の話でまだあります。
FILES,Lを実行するとファイル属性とファイルサイズが表示されます。
MSX-DOSがなくても調べることができます。
そのほかはWindowsにはショートカットキーがありますが
このショートカットキーを使うことで格段にデバッグしやすくなります。
ちょっとMSXで書いてみます。ENTERキーを押さないように書きます。
まだ、いろいろとありますが私がデバッグしている時のコマンドを並べてみました。
ショートカットキーはまだありますが、各MSXBASICの入門書に載っています。
このコマンドを使えばセルのように書いてもショートカットキーで移動ができます。
SONYのMSXBASICの取扱説明書の巻末のほうにハンドアセンブラがありましたね。
これはDATAで書いたものでした。
MSXのTABキーは部分削除にも使えたりハンドアセンブラのソースに活用できそうです。
例えばラベルだけを削除する時にいいかもしれませんね。
また、MSXBASICではVDPとVPOKE、POKEをよく使っていました。
VDPでSETPAGEのようにグラフィックのON/OFFをしてたとえば
○を●にする時に作成中の画面では半円になったりをする状態を
消した状態にできます。これで若干速度が上がるような効果があります。
VPOKEは文字を修飾させる場合に使います。これは今月からホームページを解放しました。
POKEはナショナルのMSXBASICの取扱説明書で迷路があるのですが、
データが砂のように蓄積されていき領域(ヤード)を超えそうな場合に古いデータを消す作業を
ガベージコレクション、砂を搬出してゼロにするような処理をいいますが
この処理中は動作が中断されます。
この頻度が高まるので大きなテキストデータなどはPOKEで作成してRAMでロードするようになっていたようです。
しかもMSXBASICは98と違って本格的に使うとメモリ不足になりやすい欠点があります。
MSXBASICでは空白を詰めて書くことでメモリを節約できる隠し機能があります。
MSX-FANでこういう書き方を知ったのでアスキーでは知らなかったと思います。
さらにメモリを使わないでVRAMにテキストを書けるというのもMSXの機能ですね。
これは難解な疑問でしたが読み返すとアスキーの書籍に載っていました。
MSXBASICはテキスト(CRT:)、グラフィック(GRP:)、ファイル(A:)操作に命令が多くテクニカルになっています。
MSXのキャラクタを並べてみました。
いま制作中のラインエディタはテキストで文書を書いて保存します。
通常はGRPHキーを押しながら入力しますがWindowsのキーボードに刻印がないので
下段の文字をTABキーで選択してスペースで入力できます。
グラフィックモードでテキストファイルをLOADして画像と合わせます。
こんなふうにゲームの説明書などを書くこともできそうです。
この3つはOPEN命令で変えることができます。
また、ESCシーケンスを使うことで
行の削除(ESC+M)でカーソル以下が上がっていきます。
今度は行の挿入(ESC+L)でカーソル以下を下げました。
これをホームポジションで行えば縦スクロールがカンタンにできます。
これはMSXだけの盛りだくさんの機能したが8ビットでは処理が遅くメモリが少ない問題がでてきました。
PC98のV30はインテル8086互換の16ビットで日本語入力もできて速いし、
メモリ空間も16ビットだから大容量でBASICの環境が最高でした。と、他機種を褒めていますが
実は「友達の家を自分の家のように使っていました!(おい)」とまぁそんなこともありましたね。
N88BASICにはCONSOLE命令でスクロール行の指定があります。
仕事で使うデータなどは用途を限定しないと難しいですがホームコンピュータとしてはMSXは最適です。
家計簿などをMSXで管理する程度なら使うことは可能です。
あと、5月はファイル数がいっぱになったのでプライベートファイル(*.)の保存に対応します。
MSXは拡張子の区別はしていないので*.Tだったり*.TXTだったり*.MACだったりしても
例えばテキストが読めるファイルであれば何でも読み込むことはできます。
これは拡張子がないテープファイルと同じ形式の扱いになります。8文字まで保存できます。
8文字を超えてもSAVE"FULLMSXDATA”で可能ですがFULLMSXD.ATAになります。
また、MSX-DOSには階層ディレクトリがないので拡張子なしでもOKです。
プログラミングをすると5~6画面にもなってしまうので、いろいろな機能を活用して
もっとスリムにラクに使っていきたいと思考しているところですね。
ひとあしお先に作ってみましたがキャラの輪郭は白がいいですね。
ちゃんと2色以上に色分けしないとバックに模様がある場合は
同化してヤブみたいになって;何だかかわからない感じです。
またキャラに動きがないと同化されるので、
足踏みでもいいのでわかるようにしたほうがいい感じかなと。
半キャラ移動にすると左上、右上、左下、右下の4面の障害物の判定が必要になるので
どうしようかなと、まだ試用段階でどのように追加するかを考え中です。
では。