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

概要

DM拡張BASICとは

DMシステム2の提供する各種機能をMSX-BASICの拡張命令(CALL文)から簡単に利用できるようにしたものです。

DM拡張BASICはMSX-BASICを拡張し、BASIC単体では困難とされた高度な機能を提供します。MSX-BASIC上でプログラミングするので、BASICのノウハウをそのまま継承できます。

DM拡張BASICのルール

DM拡張BASICはMSX-BASICの書式と互換性があります。プログラムの作成や修正も、もちろんMSX-BASICと同様ですが、以下の点に注意してプログラミングを始めてください。

  1. MSX-BASICの数式や文字列・文字式が流用できます。
    • CALL BGMVOL(ma,op,ps,sc)
    • CALL CHGPLT(128+a(pl))
    • CALL POKES(&h2000+(a mod 4)*128,string$(128,chr$(0)))
  2. VRAMの指定には必ず“@”を付けます。
    • CALL SETBIN(@&h3800)
    • CALL PCMON(@0,@4095,1)
    • CALL BLOCK(@&h1000,&h3000,4096)
  3. 65535を超える数値の指定には10進数を使用します。16進数ではMSX-BASICの仕様で“Overflow”エラーになってしまいます。
    • CALL SETBIN(@65536!)
    • CALL PCMON(@98304!,@98304!+&h1000,1)
  4. 存在しない変数へ数値・文字列を返そうとすると、その変数を新規作成します。
    • CALL FILES("*.bas",f)
    • CALL FSIZE("ds2basic.txt",a#)
    • CALL PEEKS(&hc000,12,a$(3))

命令一覧

[ ]で囲まれたパラメータは省略可能です。

漢字文字列の表示

CALL KINIT
装飾効果の初期化
CALL KINIT([設定][,影X][,影Y][,斜体table][,色table])
装飾効果の一般設定
CALL KBOLD([文字X][,文字Y][,縁X][,縁Y][,影X][,影Y])
太さ系装飾効果の設定
CALL KCOLOR([文字][,背景][,縁][,影])
色系装飾効果の設定
CALL KPRINT(文字列[,制限文字数])[,TPSET]
漢字の表示
CALL KPUT(文字列[,制限文字数])
漢字の高速表示
CALL KSIZE(横,縦[,文字間])
サイズ系装飾効果の設定

音楽(BGM)の演奏

CALL BGMON(開始アドレス[,loop])
BGMの演奏
CALL BGMOFF
BGMの停止
CALL BGMOFF(時間)
1/60秒割り込みによるフェードアウト
CALL BGMTMP(テンポ)
テンポの調節
CALL BGMTRS(音程)
音程の調節
CALL BGMVOL([マスター][,OPLL][,PSG][,SCC])
音量調節
CALL BGMWAIT
BGMの一時停止と解除

PCMの再生

CALL PCMON(開始アドレス,終了アドレス,rate[,loop])
PCMの発声

効果音(SE)の発声

CALL SEON(番号)
SEの発声
CALL SEOFF
SEの強制停止
CALL SETSE(設定アドレス)
SEテーブルの設定

圧縮データの展開

CALL EXT(展開元アドレス,展開先アドレス)
BPE圧縮による展開作業
CALL EXTCOPY(展開元アドレス,X,Y[,方向])[,TPSET]
BPE圧縮による矩形CG展開

画像加工

CALL CELLO(X0,Y0)-(X1,Y1),n0,n1,n2
RGB各輝度の操作
CALL HMMM(X0,Y0)-(X1,Y1) TO(X2,Y2)
VRAM間高速転送
CALL HMMV(X0,Y0)-(X1,Y1),色
長方形の高速塗りつぶし
CALL LMMM(X0,Y0)-(X1,Y1) TO(X2,Y2)[,TPSET]
VRAM間論理転送
CALL LMMV(X0,Y0)-(X1,Y1),色[,TPSET]
長方形の論理塗りつぶし
CALL YMMM(X0,Y0)-(X1,Y1) TO(X2,Y2)
Y軸方向のVRAM間高速転送
CALL VCOPY(X0,Y0)-(X1,Y1),P0 TO(X2,Y2)-(X3,Y3),P1[,角度][ON(X4,Y4)][,TPSET]
画像の変形

パレット処理・VDPマクロ

CALL SETPLT(設定アドレス)
パレットテーブルの設定
CALL CHGPLT(番号)
パレットの変更
CALL VMON(開始アドレス)
VDPマクロの実行
CALL VMON(開始アドレス,値)
VDPマクロ変数を初期化して実行
CALL VMOFF
VDPマクロの強制終了
CALL VMOFF(スレッド番号)
指定スレッドのVDPマクロの強制終了
CALL VMWAIT
VDPマクロの終了待ち
CALL COLOR=(色コード,赤,緑,青)
カラーの変更

デバイス入力

CALL DMMINI([mode][,sprite\_No.])
デバイス入力の設定
CALL DMM(変数[,時間])[,S]
デバイス入力
CALL DMMON
タイマー割り込みによるデバイス入力の開始
CALL DMMON(開始アドレス)
デバイス入力時にVDPマクロを実行
CALL DMMOFF
タイマー割り込みによるデバイス入力の終了

Pana Amusement Cartridge(PAC)

CALL PACLOAD(PACアドレス,転送先アドレス[,長さ])
PACの読み出し
CALL PACSAVE(先頭アドレス,PACアドレス[,長さ])
PACの書き込み

マッパRAM制御

CALL MALLOC([セグメント数][,変数])
マッパRAMを利用可能に

バイナリシステム

CALL SETBIN(設定アドレス)
バイナリテーブルの設定
CALL BINLOAD(番号,機能依存,転送アドレス,長さ)
バイナリシステムの起動

美味しい命令

メモリ操作関連

CALL BLOCK(転送元アドレス,転送先アドレス,長さ)
メモリ間の転送
CALL PEEK(アドレス[,変数])
1バイト読み出し
CALL PEEKS(先頭アドレス,長さ,文字変数)
文字変数へのメモリ読み出し
CALL PEEKW(アドレス[,変数])
2バイト読み出し
CALL POKE(アドレス,変数)
1バイト書き込み
CALL POKES(先頭アドレス,文字列)
文字変数でメモリ書き込み
CALL POKEW(アドレス,16ビットの数値)
2バイト書き込み

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

CALL CALL(先頭アドレス[,A][,HL][,DE][,BC][,IX][,IY])
マシン語のコール

CPUモードの切り替え

CALL CHGCPU([mode][,変数])
CPUモードの変更・獲得

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

CALL CHGDRV([drive_No.][,変数])
使用ドライブの変更・獲得
CALL FILES(filename,変数)
ファイル名の獲得
CALL FSIZE(filename,変数)
ファイルサイズの獲得
CALL LOAD(filename,転送先アドレス[,長さ][,offset])
ファイルの読み込み
CALL SAVE(filename,保存開始アドレス,長さ)
新規ファイルの書き出し
CALL SAVE(filename,保存開始アドレス,長さ,offset)
既存ファイルの部分更新

三角関数

CALL COS(変数,角度,数値)
余弦値の獲得
CALL SIN(変数,角度,数値)
正弦値の獲得

各種処理待ち

CALL INTWAIT
DMシステム2の割込処理待ち
CALL PAUSE(n)
n/1000秒の時間待ち
CALL VDPWAIT
VDPの処理終了待ち
CALL WAIT(n)
n/60秒の時間待ち

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

CALL UPPER(文字変数,文字列)
小文字英数の大文字変換

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

CALL XY(X座標,Y座標)
漢字表示位置の設定

DMシステム2自体の制御

CALL HELP
命令語一覧表示
CALL STATUS
ドライバ情報を表示
CALL SYSON
DMシステム2の起動・初期化
CALL SYSOFF
DMシステム2の終了
CALL SYSTEM
DMシステム2の終了

命令の解説

CALL KCOLOR

[機能] 色系装飾効果を設定します。
[書式] CALL KCOLOR([<文字色>][,<背景色>][,<縁色>][,<影色>])
※すべてを省略することはできません

[解説] 各機能の設定は1バイトの整数で、以下の通りです。

<文字色> 漢字自体の色
<背景色> 漢字の裏側に塗られる色
<縁色> 縁取り機能で有効な縁取りの色
<影色> 影機能で有効な影の色

[機能]…命令の内容を簡単に説明します。
[書式]…命令の書き方を示します。[ ]で囲まれた項目は省略できます。
[解説]…命令の使用法やオプションの意味などについて解説します。



Copyright © 2000 GIGAMIX, All rights reserved.