Blogger(VL,NL,XL-BASIC,サンプルダウンロードなど)

VL,NL,XL-BASIC(ver0.0028o4)公開中 2023/3/23(木)

VL(PC-98風?+CPU-RealTimeRayTracing)

NL(PC-9821+一部PC-9821の256色)

XL(PC-8801FA?MML,Z80)

N88-BASIC互換BASIC

 

マウス左ダブルクリックと:ELSE:のエラーを修正
詳しくはReadme.txt参照して下さい

 

PRINT関係で不具合がある場合

?LBasic/Doc/?LBasic01.txtを?LBasic/?LBasic01.txtにコピーし
?コマンドの数値を4減らすと動く場合があります

 

 

2023/3/21(火)

N88-BASICで春分の日(2023)

 

https://ulprojectmail.blogspot.com/2021/10/n88-basic-2.html

N88-BASICで天体の軌道 (2回目)

 

の日付と表示日数を変更し表示しています

 

火星までの表示の場合

4320 DATA 2023, 1, 1.0       '--- 元期d=0(表示開始日)

4360 DATA   80, 1            '--- 表示期間(日),経過時間(日)

 

冥王星まで表示する場合

4550 DATA 2023, 1, 1.0       '--- 元期d=0(表示開始日)

4590 DATA   80, 1            '--- 表示期間(日),経過時間(日)

 

2023/1/1~2023/3/21(春分)までの

80日間(31+28+21)を1日ずつ表示しています

 

NL-BASICとnl~.zip(shun023.bas)は

以下のリンクからダウンロードできます

https://ulprojectmail.blogspot.com

Readme.txtを読んで遊んで下さい

 

 

 

2023/3/17(金)

N88-BASICでZ80アセンブリ (2回目)

 

N88-BASIC(PC-8801)互換?XL-BASICのMONで

アセンブリを動かして見ます

 

XLBasic01.exeをダブルクリックして

XL-BASICを起動して下さい

 

mon

でモニターに入り

a9000

でアセンブリを打って行きます

LD A,1  … Aレジスタに1を入れる

LD B,2  … Bレジスタに2を入れる

ADD A,B … A = A + B

RET     … サブルーチンの終わり

 

l9000,+6

9000h~6バイトの逆アセンブルを表示します

 

l9000,+6,d

DATA文として逆アセンブルを

XLBasic01prn.txtに出力します

 

LOADすると行番号が付加されます

 

BASICプログラムからアセンブリを実行するのに

使用して下さい

 

XL-BASIC付属のアセンブリのサンプル

(XLBasic/AZ/z1.bas~z3.bas)は

この方法で作成しています

 

XLBasic/Doc/ReferenceXL.txtの

MONの所にコマンドの説明がありますので

参照して下さい

 

また、TRONの状態でBASICからマシン語を

呼び出す(CALL,USR)とMONに入るので

tコマンドでトレース出来ます

 

 

N88-BASIC互換?XL-BASICは

以下のリンクからダウンロードできます

https://ulprojectmail.blogspot.com

Readme.txtを読んで遊んで下さい

 

 

 

 

 

 

2023/3/16(木)

N88-BASICでZ80アセンブリ (1回目)

 

N88-BASIC(PC-8801)互換?XL-BASICの

MONで

お手軽に

Z80アセンブリを

動かして見ます

 

(実機のmonと機能が違うので注意して下さい)

 

XLBasic01.exeをダブルクリックして

XL-BASICを起動して下さい

 

mon

でモニターに入り

a9000

でアセンブリを打って行きます

LD A,1  … Aレジスタに1を入れる

LD B,2  … Bレジスタに2を入れる

ADD A,B … A = A + B

RET     … サブルーチンの終わり

 

xでレジスターの内容を表示出来ます

g9000

9000から1命令実行

t

で続き(PCが示すアドレス)から1命令実行

t-

RET実行まで進みます

(途中のCALL,RETのペアでは停止しません)

 

最終的に

Aレジスターに1+2の結果3が入ります

 

l9000,+6

9000番地から6バイト逆アセンブルできます

 

XL-BASICでは

CALLされていない(RETでSPが0になる)

状態でRETが実行されると

それ以上実行されないようにしてあります

 

CLEAR ,&H8FFFなどでSPが書き変わった後は

安全処置が働かなくなるので注意して下さい

 

Ctrl+bまたはBreakキーでMONを終了し

BSAVE "ファイル名.bin",&H9000,6

(6はバイト数)

でセーブ

BLOAD "ファイル名.bin"

でロード

できます

 

注意

アセンブリの実行は固まって動かなくなることが

ありますので保存(セーブ)を忘れないようにして下さい

 

余談

普段あまり厳密に使い分けていないので

間違いがあるかもしれませんが

アセンブリとアセンブラの違いについて書いておきます

 

機械語(16進数の集まり、マシン語)と1:1で

対応している言語をアセンブリ言語と言う

 

アセンブリ言語を機械語に変換するプログラムを

アセンブラと言う

 

N88-BASIC互換?XL-BASICは

以下のリンクからダウンロードできます

https://ulprojectmail.blogspot.com

Readme.txtを読んで遊んで下さい