[FM]FULLMSX for BLOG

詳しいMSXパソコンなどの情報はホームページで!
https://fullmsx.web.fc2.com/

次作ドットエディタの自動ドロー機能あれこれ

2009-09-22 17:57:30 | Weblog
MSXのDeは立ち絵風に拡張しましたが、
やはり1点からスタートというのは気が遠くなり気力が半減する感じが
私でもします。
MSXの次作としては256色を選べるSCREEN8で
グラフィックのライン、ボックス、サークルを
取り込めるようなモノにします。
たとえばBASICで赤と黄色でオレンジになるような減法混色させるプログラムを
やってみようと思います。
ビットマップで8ドット移動をめざします。
そういえば
ExcelのVisualBasicで作ったドットエディタで
カラーをコピーして複数のセルを選択すると白くなるので
作業がはやいです。こんな複数セルを描けるのがいいです。
また飛行機を数分で描きましたが
こんなサンプルを入れるとすぐにできますね。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

BASICのメモリエディタ

2009-09-20 09:31:52 | Weblog
今日の話はちょっと難しい。
BASICでプログラミングすると
どんなふうにメモリされていくかを見てみたい。
メモリを表示させるプログラムで文字数字の順番になっている。
識別子としては'と:をデータの区切りとして使っている。
10行だけをMSXという文字にしてやってみた。
最初の0C80というのは20行のアドレスになっている。
MSXの文字の最後が00で1B80とリンクポインタ(800CH)となっている。
ここからが次の行になる。
試してもらいたいのはMSXの文字をHELLOなどと文字数を増やしてみよう。
これでポインタが変わっていくのがわかる。
何に使うのかといえば先ほどのポインタに変えることで
8000H(&H8000)を(&H801B)
20行からのメモリを表示させることができるし、
MSXは中間コードにないのでBASICでマシン語を書く場合は
このMを開始アドレスとしていきながらやっていけば
コードに変換することなく直接コードが書ける。
MSXBASICの文字数まで直接書いて足りなくなれば
20行の'へジャンプするとよい。
長くなるので今回はこのへんで
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

99BASICでSCREEN8

2009-09-17 00:06:37 | Weblog
MSXBASICを拡張することを目的とした
「次世代MSXBASICを考える」
という研究用のアプリとしてやっています。
今までMSX限定で誰でも使うことができなかったものが
99BASICで簡単な設定を行えばMSXのように使えるというものです。
エミュレータというのは今ではアプリを実機どおりに作ることでしたが
温故知新というのか、そのアプリとエミュレータ機能というのが
エミュレータの始まりで99BASICはそれに合っていると思いますね。
エミュレータというのはそのマシンに似せるクローンというものではないですね。
それはさておいて
うれしい事はMSXではできない解像度でSCREEN8が楽しめそうな感じです。
MSXユーザーには「MSX3は解像度を上げて欲しい」などの要望があります。
ここでは実際にこれを評価版として考えてみることができるというものです。
今回はFULLMSXサイトに評価版をアップしておきました。
2010年にはいろいろな事ができそうです。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

MSXBASICから流行りの言語へ

2009-09-10 17:16:52 | Weblog
 今はVisualC++を勉強しています。
現在までのフィールドは
MSXBASIC→VisualBasiC(VBA)→turboDelphi→
という道順です。
プログラム環境がMSXパソコンからWindowsPCに変わる時期は
 個人の事務形態もワープロからPCへ移行していたので
何もかもが新しい環境でした。
一番よかったのは事務(表計算程度ですが)とプログラムが覚えられた事ですね。
誰でも思ったことでしょうが、
「VisualBasicが覚えられるのか。」と、感動モノでした。
BASICは表計算の素となるものは昔は誰でも知っていましたが、
これがまた新たなカタチとなって結びつくのは凄いと思いました。
そして、turboDelphiですが
Delphiは今でもなかなか専門書が書店で見つからないです。
 書店で立ち読みをしてペラペラと見て気に入ってしまったのです。
Webブラウザが簡単にできるのかなと思ってやってみましたら
できてしまったというわけです。
 そう考えると便利になったなぁと思いますね。
今やっているのは.NETです。
また書きます。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

99BASICでワイヤフレーム作成

2009-09-05 11:16:17 | Weblog
モデリングで色要素がない線のみ描画をワイヤフレームと呼んでいる。
昔はワイヤフレームを表示させるだけで驚くほどのものだった。
前回に引き続いて、このプログラムは簡易ワイヤフレーム作成のエディタだ。
画像は99BASICのものだ。MSXと異なりカラーが赤になっている。
実行するとFILENAME:と表示される。先にファイル名を決める方式だ。
私の場合は3D7ファイルがMSX画像ファイルで3D9が99BASIC画像ファイルとしている。
まぁ何でもわかりやすければいい。Aでもかまわない。
するとF1キーにファイル名が入るので便利になるだろう。
操作方法はどちらを使っても同じになっている
カーソルまたはテンキーで\のポインター移動、EnterまたはReturnで始点指定。
SPACEで終点指定。連続線は次点でSPACE。
指定した点が見つからない場合は何かキーを押して復帰して
始点指定から行う。
Deleteで削除の終点を指定。ESCで保存をして終了する。
99BASICのスプライトの話はプログラム構文で判断して実行はしていなかった。
少し、あせったがSCREEN @0,ONという命令を加えればスプライト移動ができる。
これが第一の難関で
LINE命令仕様の変更でMSXBASICのままできないことがわかって
いろいろとやっていると変数がかぶって処理を見失って
チンプンカンプンになってしまった^^;
これが第二の難関だった。
この99BASICはプログラムリストを印刷できるので何とかできた。
こんな偉そうなコトを言って出来なかったら、
どうしようかと思った。
ダウンロードしたファイルの
99BASICのスプライトはLINE命令で即席風ですので
MSXのようにビットイメージで行えるように改良する予定。

それから、先のプロジェクトは
3Dで一つのオブジェクトを作るのではなくて、
ゲーム画面を作る基準になるものにして
あたらしいゲームとして考えるようにしていきたい。
タクティカルRPGとか、そのあたりの用途になるだろう。

FULLMSX SITE:
http://www.geocities.jp/fullmsx2/u-yan/
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

99BASIC互換のクォータービューの面作成

2009-09-05 01:58:12 | Weblog
いよいよ作成にとりかかる。
99BASICでできそうなプログラムでやっている。
前回の話からスプライト、移動、描画、ロード、セーブの処理を加えてみると
MSXでカンタンに3Dのような画面ができるようになった。
問題は処理速度だが、やはりMSX2では重かった^^;
もちろんSINとかCOSとかも使っていない単純処理だが、
これがMSXかと思わせるモノだ。
キークリックした点の周囲から
グリッドの点をキークリックしたようにするクリッピングの機能が入っている。
市販ソフトのCADのようなことができてしまう、おいしい機能だ。
そこで、今回は裏技を使ってみた。
まず、クリッピングは周囲の点を検出するとFORを強制中断。
FOR命令の0から9の繰り返しで6だった場合、後の789は処理させない。
あとはDEFINTA-Zかな。
これで何となく速くなったような気がする。
気になるのはグリットは描いていない。
グリットを描くとXYの面になってしまい
立体感がなくなるということでやっていない。
結果はカーソルかテンキー操作に対応したが、
やはりマウスがスムーズでいいような気がする。
MSXBASICでは動作をしたので99BASICにとりかかりたい。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

99BASICのスプライトは?

2009-09-03 20:38:31 | Weblog
99BASICにスプライト機能がある。
MSXBASICから即席でやってみたが、どうも動かない。
ヘルプを見てみると1ドットが256色を指定して
ビットマップのパターン定義らしい。
99BASICのスプライトがわからなくて
MSXBASICのスプライトを勉強するのはやめたほうがいいと思う。
MSXは8ドットごとの単色ビットの定義になっている。
99BASICにスプライト機能の魅力は
ビットマップに描いたものをすぐにスプライトにできるトコロだろう。
まず、16ドットで○でも□でも描いてみよう。
MSXBASICではそんな事はできない。
だからSCREEN8の256色のビットマップでどうしてもやりたいなら
あらかじめ地形パーツにキャラクタをかぶせて
座標を変えて8ドットガタガタ移動しているようにみせる。
ここでのポイントは8ドット地形パターンと16ドットキャラだ。
なめらかに移動させると地形パーツがコピーされて
トランプの山のように画像がズレてしまう。
背景パーツが同じでないとできない制約だが、
そうすればスプライト定義しなくてもできちゃう余談でした。

URL:
http://www.geocities.jp/fullmsx2/u-yan/msxi-gr17.html
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

99BASIC、N88BASICでもプログラムを実行可能にする

2009-09-03 19:02:35 | Weblog
まずは99BASICとMSXBASICで移植しやすいプログラムを考えてみる。
BASICには方言がある。この方言をクリアすれば他のBASICで書くことができる。
99BASICはテキスト画面でもグラフィック命令を描くことができる利点がある。
実行後はグラフィックとプログラムリストが同時に表示されるわけだ。
今回はこの部分をちょ~っとやってみたい。
プログラムはBASIC_Code=という環境変数のようなモノを設けている。
ここにBASIC_Code=MSXであれば分岐からMSXの処理が行われる。
サンプルのプログラムはクォータービューの面を作成するものだ。
まだ、メッシュが引かれていないが
設定した任意の点から近い点を検出するようにしている。
これをクリッピングと呼んでいるが、
これができれば正確に図面を描くことができる。
99BASICでは何とか表示できたが、
N88BASICに対応するにはカラーコード15をカラーコード7にしないと
エラーが出るかもしれない。
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

次世代J-INのプロトタイプが見えてきたその3

2009-09-01 19:12:36 | Weblog
前回は試しに表示をしてみた。
今回はコンソール部のアンダーバーの点滅を考えてみる。
MSXではカーソルの点滅はしないがカーソルは点滅したほうが自然だろう。
点滅は入力待機状態にしているから、この時に割り込みが必要になる。
TIME関数で割り込みを作ることにする。そして
CorsolBrinkTime=30というように次世代方式の記述をしてみることにする。
そして、1chipMSX向けにSelectキーのモード切り替えを試んでみる。
1chipMSXでは半角/全角キーがSelectキーになっている。
ESCキーの下にあるキーであるから何かと便利に使えるだろう。

コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする