GIGAMIX DM-SYSTEM2 第2章 拡張BASICリファレンス

メモリ操作関連

CALL BLOCK

[機能] メモリ内容をブロック転送します。
[書式] CALL BLOCK(<転送元アドレス>,<転送先アドレス>,<長さ>)
[解説] <転送先アドレス>で示されるメモリから<長さ>分を<転送先アドレス>ヘコピーします。
<転送元アドレス><転送先アドレス>ともに、先頭に“@”を付けるとVRAM指定になります。
<転送元アドレス><転送先アドレス>に65535以上のRAMのアドレスを指定すると、マッパRAM指定になります。65535+<利用可能なセグメント数>×16384が上限となり、これを超える値を指定すると“Out of memory”エラーになります。


CALL PEEK

[機能] RAM 1バイトの値を読みます。
[書式] CALL PEEK(<アドレス>,<変数>)
[解説] <アドレス>で示されるRAMを読み込み、<変数>へ返します。
<アドレス>の先頭に“@”を付けるとVRAM指定になります。
8000h未満のRAMは裏RAMになります。


CALL PEEKS

[機能] メモリの連続したバイトの値を文字変数に変換して読みます。
[書式] CALL PEEKS(<アドレス>,<長さ>,<文字変数>
[解説] <アドレス>で示されるメモリから<長さ>分を読み込み、<文字変数>へ返します。
<アドレス>の先頭”@”を付けるとVRAM指定になります。
8000h未満のRAMは裏RAMになります。
各バイトは0〜255の半角文字に変換され、<文字変数>へ返します。


CALL PEEKW

[機能] RAM 2バイトの値を読みます。
[書式] CALL PEEKW(<アドレス>,<変数>)
[解説] <アドレス>で示されるRAMから2バイトを読み込み、<変数>へ返します。
<アドレス>の先頭に“@”を付けるとVRAM指定になります。
8000h未満のRAMは裏RAMになります。
2バイトの表現は“ザイログ式”に基づき、下位8ビット・上位 8ビットの順で読み込み、<変数>に返します。


CALL POKE

[機能] RAM 1バイトの値を書きます。
[書式] CALL POKE(<アドレス>,<数値>)
[解説] <アドレス>で示されるRAMに<数値>を書きます。
<アドレス>の先頭に“@”を付けるとVRAM指定になります。
8000h未満のRAMは裏RAMになります。


CALL POKES

[機能] メモリの連続したバイトの値を文字変数から書きます。
[書式] CALL POKES(<アドレス>,<文字変数>)
[解説] <アドレス>で示されるメモリからく文字変数>分を書きます。
<アドレス>の先頭に“@”を付けるとVRAM 定になります。
8000h未満のRAMは裏RAMになります。
<文字変数>の半角文字は文字コード(0〜255)に変換されます。


CALL POKEW

[機能] RAM 2バイトの値を書きます。
[書式] CALL POKEW(<アドレス>,<数値>)
[解説] <アドレス>で示されるRAM 2バイトの<数値>を書きます。
<アドレス>の先頭に“@”を付けるとVRAM指定になります。
8000h未満のRAMは裏RAMになります。
2バイトの表現はザイログ式に基づき、下位8ビット・上位8ビットの順で書き込みます。



マシン語ルーチンの呼び出し

CALL CALL

[機能] マシン語ルーチンをコールします。
[書式] CALL CALL(<アドレス>[,<A>][,<HL>][,<DE>][,<BC>][,<IX>][,<IY>])
[解説] <A><HL><DE><BC><IX><IY>をそれぞれのレジスタに代入して<アドレス>をコールします。
マシン語から復帰した状態のレジスタの値はDMシステム2のイ フォメーションエリアに格納します。
<A>に16ビットの値を指定すると、上位8ビットをFレジスタに代入します。
マシン語ルーチンをコールした時点ではページ0はメインROM、それ以外のページはRAMになっています。



CPUモードの切り替え

CALL CHGCPU

[機能] CPUモードを変更・獲得します。
[書式] CALL CHGCPU([<CPUモード>][,<変数>])
[解説] <変数>へ現在のCPUモードの数値を返し、<CPUモード>のモードに切り替えます。<変数>の値はturbo Rと同名のBIOSと同じ1バイトの値です。

bit0〜1 CPUモード (O:Z80 1:R800-ROM 2:R800-DRAM)
bit2〜6 無効
bit7 高速モードLEDの反映 (O:OFF 1:ON)

この命令はMSX2/2+/fMSXでは無視します。<変数>には0を返します。
マッパRAM保護のため、R800-ROMモードで駆動している状態で DMシステム2をインストールすると、R800-DRAMモードヘの変更はできません。



ディスク/ファイル操作関連

CALL CHGDRV

[機能] カレントドライプを変更・獲得します。
[書式] CALL CHGDRV([<ドライブ番号>][,<変数>])
[解説] カレントドライプを<変数>へ返し、<ドライプ番号>に切り替えます。
<ドライプ番号>変数>は1〜8でそれぞれA:〜H:を表します。


CALL FILES

[機能] ファイル名を獲得します。
[書式] CALL FILES(<検索ファイル>,<変数>)
[解説] <検索ファイル>に該当するファイルを検索し 該当数を<変数>へ返します。
<検索ファイル>はワイルドカードでの指定も可能です。
該当したファイル名はDMシステム2のワークエリアである7AOOhから12バイト単位で格納します。実行後速やかにCALL PEEKS命令やCALL BLOCK命令で取り出すようにしてください。


CALL FSIZE

[機能] ファイルのサイズを獲得します。
[書式] CALL FSIZE(<ファイル名>,<変数>)
[解説] 対象ファイルのサイズが極端に大きいとき、<変数>が倍精度実数型でないと“Overflow”エラーを引き起こす場合があります。

CALL LOAD

[機能] ファイルの内容を強引にメモリヘ転送します。
[書式] CALL LOAD(<ファイル名>,<転送アドレス>[,<長さ>][,<オフセット>])
[解説] <ファイル名>の<オフセット>から<長さ>分の内容を<転送アドレス>へ転送します。
<転送アドレス>の先頭に“@”を付けるとVRAM指定になります。
<長さ>は転送するバイト数で、省略するとファイル全体を転送します。
<オフセット>はファイルの先頭からのステップ値で、省略するとファイルの先頭(0バイト目)になります。


CALL SAVE@

[機能] メモリの内容をファイルに保存します。
[書式] CALL SAVE(<ファイル名>,<保存開始アドレス>,<長さ>)
[解説] <保存開始アドレス>から<長さ>分の内容を<ファイル名>として新規保存します。同名のファイルが存在する場合は、古いファイルの内容は完全に失われます。
<保存開始アドレス>の先頭に“@”を付けるとVRAM指定になります。


CALL SAVEA

[機能] メモリの内容を既存ファイルに更新します。
[書式] CALL SAVE(<ファイル名>,<保存開始アドレス>,<長さ>,<オフセット>)
[解説] <保存開始アドレス>から<長さ>分の内容をくファイル>の<オフセット>先へ追加保存します。
<保存開始アドレス>の先頭に“@”を付けるとVRAM指定になります。
<オフセット>はファイルの先頭からのステップ値で、メモリの内容をファイルの任意位置へ書き込みます。対象ファイルの長さより大きな値を指定すると、内容不定のデータ列で隙間が埋められます。



三角関数

CALL COS

[機能] コサイン関数(余弦値)を獲得します。
[書式] CALL COS(<変数>,<角度>,<数値>)
[解説] <角度>のコサイン値に<数値>をかけた値を2バイト整数で<変数>へ返します。角度は360度で一回転します。

CALL SIN

[機能] サイン関数(正弦値)を獲得します。
[書式] CALL SIN(<変数>,<角度>,<数値>)
[解説] <角度>のサイン値に<数値>をかけた値を2バイト整数で<変数>へ返します。角度は360度で一回転します。


各種処理待ち

CALL INTWAIT

[機能] DMシステム2の各種割り込み処理が終了するまで待ちます。
[書式] CALL INTWAIT
[解説] この命令を実行すると、割り込み処理がすべて終了するまでBASICの処理を中断します。
BGMのフェードアウトやVDPマクロの終了確認などの用途に便利です。
待っている途中に Ctrl+STOP を押すと強制的にBASICの処理を再開し、次の命令の実行に移ります。


CALL PAUSE

[機能] 1/1000秒単位のウェイトをかけます。
[書式] CALL PAUSE(<時間>)
[解説] 機能的にはturbo RのCALL PAUSE命令と同等です。<時間>は整数で指定し、<時間>×1/1000秒間何もせずに待ちます。
MSX2/2+/fMSXでは待ち時間が1/60秒単位となるように自動的に換算します。端数は四捨五入となります。
待っている途中に Ctrl+STOP を押すと処理を中断します。


CALL VDPWAIT

[機能] VDPコマンドの処理が終了するまで待ちます
[書式] CALL VDPWAIT
[解説] VDPの処理が終了するまで何もせずに待ちます。
待っている途中に Ctrl+STOP を押すと処理を中断します。


CALL WAIT

[機能] 1/60秒単位のウェイトをかけます。
[書式] CALL WAIT(<時間>)
[解説] <時間>は整数で指定し、<時間>×1/60秒間何もせずに待ちます。
待っている途中に Ctrl+STOP を押すと処理を中断します。



文字列の小文字→大文字変換

CALL UPPER

[機能] 文字列中の小文字英数を大文字に変換します。
[書式] CALL UPPER(<文字変数>,<文字列>)
[解説] <文字列>を大文字に変換して、<文字変数>に代入します。


グラフィックアキュームレータの設定

CALL XY

[機能] グラフィック使用時の座標を設定します。
[書式] CALL XY(<X座標>,<Y座標>)
[解説] 単なる座標設定で、MSXシステムワークの“グラフィックアキュムレータ“へ座標を書き出します。
DMシステム2の漢字表示機能を利用する際、この命令で<Y座標>に0未満か256以上の数値を設定しておくと、アクティブページ以外のページを設定することができます。






© Gigamix, All rights reserved.