VL-BASICのレイトレーシングで
コーンを表示しました
この記事はリニューアルしました
https://ulprojectmail.blogspot.com/2022/06/vl-basiccone.html
VL-BASICでコーン
VL-BASICのレイトレーシングで
コーンを表示しました
この記事はリニューアルしました
https://ulprojectmail.blogspot.com/2022/06/vl-basiccone.html
VL-BASICでコーン
VL-BASICのレイトレーシングで
コーンを表示しました
この記事はリニューアルしました
https://ulprojectmail.blogspot.com/2022/06/vl-basiccone.html
VL-BASICでコーン
このブログ記事で紹介してきたVL-BASIC用
サンプルリスト(~.bas)をNL-BASIC用
に変更したサンプルリスト(~.bas)を
下記リンクよりダウンロードできます。
NL-BASIC(N88-BASIC互換?)ホームページへのリンク
ホームページのNL-BASICダウンロードの下の方に
リンクがあります。
書いてあるパスワードを入力して、
Readme.txtを読んで、遊んで見て下さい。
プログラムリストはN88-BASICでも動くと思いますが、
動かないときはBASICという名の変数があるプログラム
(プログラムの初めの方に、BASIC = 1などの行があります。)
ではその値を変える、など対応願います。
また、どのようにしたら動いたかの情報
を知らせて頂ければ有難いです。
ツイッターで動画をアップしています。
Cのインラインアセンブラ(86系)の紹介
(いまさらとは思いますが一応紹介させて下さい)
アセンブラを動かす環境は、
エミュレータやデバッガーなど
色々出回っていると思います。
ここでは、Windows上で
Microsoft Visual Studio
(無料ダウンロード可)
で、C言語が動かせる環境が
あることを前提としておきます。
(別のCコンパイラーでも同じ
かもしれません。)
C言語には、インラインアセンブラと
いうものがあり、簡単にアセンブラを
組込む事ができます。
面倒なことはCで書けば、すべてを
アセンブラで書くよりハードルが
下がると思います。
1~10までの合計(55)を計算する例です。
#include <stdio.h>
void main(void)
{
short sum; /* 1~10の合計(16bit) */
__asm /* 次の{}内がアセンブラ */
{
mov ax,0 ; axレジスタ(16bit)を0にする
mov cx,1 ; cxレジスタ(16bit)を1にする
L1:
add ax,cx ; ax = ax + cx (ax += cx;)
inc cx ; cx = cx + 1 (cx++; )
cmp cx,10 ; cxと10の比較
jle L1 ; cx <= 10 なら L1へ
mov sum, ax ; sum = ax (sumはメモリ)
}
printf("1-10の合計 = %d\n", sum);
getchar(); /* キー入力待ち */
}
__asm {}がインラインアセンブラです。
(別のコンパイラーでは _ が1つ
または、無しだった記憶がありますが、
勘違いかもしれません)
WindowsのConsoleアプリケーション
(consoleアプリでコンパイルしたexeファイル)
は、実行が終了すると表示していたウインドウが
閉じてしまい、結果が分からなくなるので、
最後にキー入力待ちをしています。
VL-BASICのレイトレーシングで
コーンを表示しました
この記事はリニューアルしました
https://ulprojectmail.blogspot.com/2022/06/vl-basiccone.html
VL-BASICでコーン