昔PC-9801で遊んだという方、今は実機が手に入らなくてエミュレータも動かせないという方に、PC-9801を使っているような気分になれるソフト(for windows)を紹介します。

VL-BASIC,NL-BASIC開発者のULprojectです。

 

VL-BASICホームページへのリンク

 

NL-BASICホームページへのリンク

上記ホームページから最新バージョンをダウンロードできます。

 

VLBasic01.exeを実行するとVL-BASICが立ち上がります。

Readme.txtを読んで、サンプルプログラムやこのブログで

紹介しているプログラムを走らせる事ができます。

以下のリンクのPC-9801(N88BASIC)用お絵かきプログラムは

おすすめです。

 

BASICでお絵かき

あやおりとーの さんのホームページです。

 

元々このお絵かきプログラムを走らせたくて

1年前(2019年9月~11月)にVL-BASICを作りました。

 

PC-9801を使っている気分その1

 

長めのプログラムをLOADしてLISTを流している間に、

ctrl+q、ctrl+w、ctrl+shift+q、ctrl+shift+wを押して見て下さい。

PC-9801特有のスムーズスクロールを見ることができます。

PRINT文の繰り返し表示でもスムーズスクロールを見ることができます。(表示速度の問題で全角文字を使用していない

リストの方がスムーズです。)

 

PC-9801を使っている気分その2

 

まず、長めのプログラムをLOADしてEDITを実行し、

カーソル下でリストを画面いっぱいに表示させてから

カーソル上を押していくとリストが逆スクロールして表示

されます。PGUP、PGDNも再現しています。

 

PC-9801を使っている気分その他

 

monを使って直接Text-VRAMやGVRAMを書き換えてみる。

width 40,20でテキストの文字数をいじってみる。

ctrl+eでカーソル以降の文字を消してみるなど...。

 

アセンブラなどは非対応ですが、

NL-BASICではRGBプレーン方式のGVRAMなども

再現し、DEF SEG=&HA800:BLOAD "blue.bin"

などもできます。

 

BASICのみでPC-9801を使うなつかしさは

味わえると思います。

まずはVL-BASIC、NL-BASICで遊んでみて

N88-BASICを懐かしんで下さい。

 

VL-BASICでは、

1998年ごろに開発した簡易リアルタイム

レイトレーシングを利用できる拡張命令を搭載しています。

もともとOpenGLのレイトレーシング版を作ろうと思い

簡易版リアルタイムレイトレーシングライブラリUL

(user libraryという意味、未公開)を開発しました。

これをVL-BASICで使えるようにしました。

ULprojectはULの開発者という意味で名付けました。

ULは、プリミティブという基本図形を組み合わせた

図形を表示する簡易型のレイトレーシングライブラリ

ですが、球のみ対応の半影を表示する機能や、

遅いですがパスレイトレーシングやフォトンマッピング

等の機能も利用できます。

まずはサンプルプログラムなどを書き換えたりして

遊んで見て下さい。

 

VL-BASIC、NL-BASICのAlt+vについて

 

最新版ではAlt+vで、クリップボード

の内容をペーストできます。

 

例えば、ウェブサイトの

行番号付きBASICプログラムを選び

Ctrl+cでコピーし、VL-BASIC、NL-BASIC

の画面で、Alt+vを押すと、ペースト

され、改行(\r\n)はenterに変換しますので

プログラムを入力できます。

 

行番号なしプログラムをペーストすると、

1行ずつ実行されてしまい記憶せれません。

 

ペーストによって、思わぬ行が上書きされ、

入力中のプログラムが台無しになるのを防ぐため、

使い慣れたCtrl+vではなく、使い慣れないAlt+vに

割当てました。

Alt+vを押すのに慣れて、作成中のプログラムを

上書きしてしまわない様注意して下さい。

 

最新版のVL-BASIC、NL-BASICは、次の

ホームページからダウンロードして下さい。

 

VL-BASIC(N88-BASIC互換?)ホームページへのリンク

 

NL-BASIC(N88-BASIC互換?)ホームページへのリンク

 

ホームページに書いてあるパスワードを入力して、

Readme.txtを読んで、遊んで見て下さい。

 

VL-BASICの3DCGのしくみについて

 

 モデルモード(物体の位置決め)

GPU MATRIX(MODE, MODEL)    モデルモード 

GPU ROTATE                 3.移動した状態で回転

GPU TRANSLATE              2.移動する

GPU ROTATE                 1.その場で回転

GPU SPHERE                 SPHEREに近い方から適用される

行の下から上へと適用されるのは、

行列の計算順序が関係しています。

座標=TRpはTranslate、Rotate、sphereの順で

プログラムを書きますが、

Rの方がp(sphere)に近いので先に効果が

でるといったイメージです。

 

この動作は、OpenGLと同じです。

 

VL-BASICのROTATE、TRANSLATE、行列

などの3DCG用のコマンドは、

数値を変えたりして、どういう動作を

するかを体験しながら慣れていくのが

良いかと思います。

 

より詳しく理解するには、

このブログの

N88-BASICで3DCGの行列(matrix)

シリーズでを見て頂くのが良いかと

思います。

(説明が分かりにくいかもしれませんが

ご了承下さい。)

 

VL-BASIC(N88-BASIC互換?)ホームページへのリンク

ホームページに書いてあるパスワードを入力して、

Readme.txtを読んで、遊んで見て下さい。