MIMPIv3のマニュアルより抜粋(一部v4の内容に更新)

7.歌詞表示機能

 MIMPIV3 では曲ファイルと同じ名前の 拡張子 .WRD があると それを表示しながら演奏します。

 WRDファイルは普通のテキストファイルですからエディタやワープロで作成することができます。MS−DOSのTYPEコマンドで表示できるものであればWRDとして利用できます。

 WRDファイルは通常1小節に1行ずつ表示していきます。 ただし行末が ;(半角セミコロン)で終っている時は、続けて次の行も表示します。

 WRDファイルは単に歌詞表示に留らず、マクロコマンドにより各種の制御が可能となっています。

 行の先頭が @ で始る時はマクロコマンドと解釈し、実行します。
 マクロコマンド行の行末が ; の場合は、続けて次の行を処理します。
 またマクロコマンドは1行に複数記述することができます。

7−1.WRDファイルのマクロコマンド

@STARTUP(ver)

:@STARTUP以降の文を演奏が始まる前に実行します。
<ver 無指定>   基本的にはV4仕様だが一部タイミングがV3仕様
<verが 380 未満> Ver3.7m 相当のWRD仕様で実行。
<verが 380〜399> @GLINE()が8色対応である以外はV4のWRD仕様で実行
<verが 400 以上> V4仕様で実行

@WMODE(n<,mode>)

:通常は1小節に1行の表示を行ないますが @WMODEはこの表示タイミングを変更し、より細かな表示制御を可能とします。
具体的な n の値は次の通りです。
n = 5 16分音符
n = 11 8分音符
n = 23 4分音符
n = 47 2分音符
n = 95  全音符


'_' は1タイミング待つだけで表示されません。
'|' はこれで囲まれた文字列を1タイミングで表示し ます。2文字以上を1タイミングで表示する時に使用します。

@WAIT(bar,<step>)

:barで示す小節まで待ちます。

(例) 4分の4拍子の曲で10小節3拍目まで待つ
@WAIT(10,144)

@OFFSET(nnn)

:@WAIT() で指定する小節番号に対して @OFFSET()で指定した数値が加算されます。

@REST(bar,<step>)

:barで示す小節だけ何も表示せずに待ちます。

@LOCATE(y;x)

:カーソルを移動させます。

@TON(sw)

:テキスト表示をON/OFFします。

@COLOR(c)

:文字色を指定します
c=0既定の属性 c=1ハイライト(モノクロのみ)
c=2バーティカルライン c=4アンダーライン
c=5ブリンク c=7リバース
c=16 8シークレット
c=30黒 淡(暗) c=18 34
c=17 31c=19 35
c=20 32c=22 36水色
c=21 33黄色c=23 37白 濃(明)
c=40リバース 黒c=41リバース 赤
c=42リバース 緑c=43リバース 黄色
c=44リバース 青c=45リバース 紫
c=46リバース 水色c=47リバース 白

@TCLS(x1,y1,x2,y2,color,char)

:テキスト画面のx1,y1,x2,y2で指定した矩形範囲を消去します。
各パラメータのデフォルトは
x1=1 , y1=1 , x2=80 , y2=25 , color=0 (黒), char=32 (space)
となっており、省略されたパラメータはデフォルト値となり、@TCLS()とてを省略すると全画面をスペースで消去することになります。

@SCROLL(x1,y1,x2,y2,mode,color,char)

テキスト画面のx1,y1,x2,y2で指定した矩形範囲をスクロールさせます。
各パラメータのデフォルトは
x1=1 , y1=1 , x2=80 , y2=25
mode=0 , color=0(黒) , char=32 (space)
となっており省略された場合はデフォルト値となります。

@GINIT()

:グラフィックを初期化します。

@GCLS(sw)

:グラフィックのアクティブ画面を消去します。
sw の bit0 が1の時は BLUE
sw の bit1 が1の時は RED
sw の bit2 が1の時は GREEN
sw の bit3 が1の時は 16色 VRAM をクリアします。

@GSCREEN(act,dsp)

:actとdspでそれぞれ、アクティブ画面ディスプレイ画面を指定します。
アクティブ画面とはグラフィック描画や消去を行なう時に書込みが行なわれる画面です。ディスプレイ画面とは実際に表示される画面です。

@GON(sw)

:グラフィック表示のON/OFFを行ないます。
sw=0 でOFF、sw=1 でONになります。
@GON(0) ではグラフィック画面の表示が消えますがグラフィックVRAMが消去された訳ではないので@GON(1)を実行することで再び表示されます。

@GLINE(X1,Y1,X2,Y2,P1,SW,P2)

:グラフィック画面に直線または四角形を描画します。
X1,Y1 描画開始点
X2,Y2 描画終了点
P1   描画する色(0〜15で指定)
SW    0の時直線を描画
1の時四角形を描画
2の時四角形を塗りつぶす
P2   SW=0,SW=1の時はラインスタイル
ただしP2が0の場合は実線で描画する。
    SW=2の時は塗りつぶしの色(0〜15で指定)

@GCIRCLE(X,Y,R,P1,SW,P2)

グラフィック画面に円を描画します。
X,Y 中心点
R 半径
P1 描画する色(0〜15で指定)
SW 0、1の時、円周のみ描画。
2の時、円を塗りつぶす。
P2   SW=2の時は塗りつぶしの色(0〜15で指定)

@PLOAD(file_name)

:PHOファイルをロードします。

@PAL(rgb1,・・・rgb16)

:rgb1〜rgb16 までをカラーパレットに設定します。

@PAL(#p,rgb1,rgb2・・・rgb16)

:p で示すパレットメモリに値をセットします。
#0 カレントパレットで実際にパレット変更が行なわれた場合更新されます。
@PAL() @FADE() @MAG() で更新されます。
ただし@MAG()でパレットを読み込まない指定がされていれば更新されません。

#1〜#16 汎用パレットメモリ

#17 @MAG() が実行された場合、にそのMAGデータのパレットがセットされます。

#18 アクテイブ画面が表の状態で@MAG()が実行された場合にそのパレットがセットされます。

#19 アクテイブ画面が裏の状態で@MAG()が実行された場合にそのパレットがセットされます。

(注) #17〜#19は @MAG() でパレットを読み込まない指定があってもセットされます。

@GSCREEN()の状態により次のようにメモリにセットされます。
@GSCREEN(0,x) #17 と #18
@GSCREEN(1,x) #17 と #19
パレットも読み込んだ場合はさらに#0にもセットされます。

@PALREV(p)

p で指定されるパレットメモリーの値を反転させます。

@FADE(p1,p2<,speed>)

p1からp2 のパレットメモリへ変化させます。

@PALCHG(file_name)

:file_name の拡張子が .PAL の場合はWCGIのパレットファイルを読み込みます。
拡張子が .PLC の場合は PCHNG.EXE が使うPLCファイルを読み込み実行します。
(注) WCGI 及び PCHNG は WAI・WAI-NET 佐渡のメンバーが開発したフリーウェアです。

@GMODE(sw)

@GLINE(),@GMOVE(),@GCIRCLE() において特定のグラフィックプレーンへの書込みの禁止/許可を指定します。
デフォルトは sw=15 で全てのプレーンが書込み許可状態になっています。
(bit0〜3が全て"1"の時は16進で 0Fh となり、これを十進数で表わすと'15' になります。従って sw=15 で全プレーン書込み許可となります。)

@GMOVE(x1,y1,x2,y2,xd,yd<,vs><,vd><,sw>)

:x1,y1,x2,y2 の矩形をxd,ydの座標にコピーします。

@MAG(file_name,x,y,s,p)

:MAG形式の画像ファイルを読み込みます。

@ESC(str)

:ESC[ を画面に出力後strの文字列を表示します。

@EXEC(file_name)

:file_nameで示される実行ファイルを実行します。

@PATH(*)

:@PLOAD @EXEC で指定するPATHをMIMPIV3の起動ディレクトリに設定します。

@PATH(@)

:@PLOAD @EXEC で指定するPATHを曲ファイルのあるディレクトリに設定します。

@PATH()

:@PLOAD @EXEC で指定するPATHをカレントディレクトリに設定します。

@PATH(str)

:@PLOAD @EXEC で指定するPATHを str で示すディレクトリに設定します。

@INKEY(str)

:何かキーが押されるか str で示される小節に到達するまで待ちます。

@END()

:曲の演奏が終了するまで待ちます。

@END();
曲終了

@LOOP(str)

:繰返し回数を str で示す数にセットします。

@STOP()

:強制的に曲の演奏を終了させます。

 マクロのパラメータに対するチェックはほとんど行なっていません。
 予想されないパラメータが与えられた場合の動作は保証できません。

 Ballade系の.SNG以外のデータの場合、データ中の小節線は無視して拍子で既定される1小節あたりのステップ数により小節をカウントしているので考慮してWRDを作成してください。

[使用例]

   @STARTUP() @GON(0) ;
      @PLOAD(PHOTO.PHO)
      @WAIT(10) @GON(1)
      さいた
   さいた
   チューリップの
   はなが
   @END();
   曲が終わりました。

  まず演奏前にグラフィック表示をOFFにし、PHOTO.PHO をロードします。
 (1行目の行末が ; なので、2行目も同時に処理される。)
 10小節になるまで待って、グラフィック表示をONします。
 そして「さいた/さいた/チューリップの/はなが」を小節が替るたびに表示していきます。
 最後に演奏が終わった時に「曲が終わりました」を表示します。

 また、@WMODE()コマンドを利用することによって、1文字づつ表示させることもできます。

      @WMODE(23,1)
      さいた_さいた_|チュー||リッ|プのはなが

 このようにすると4分音符のタイミングで1文字づつ表示されていきます。
 '_' は表示されずに、1タイミングだけ待ちます。
 |チュー| と |リッ| はそれぞれ1タイミングでまとめて表示されます。

  パソコン通信のネットワーク上にはWRD機能を利用した楽しいデータが数多くアップロード(登録)されています。
 実際の使い方のコツはそのようなデータを参考にすると良いでしょう。

7−2.MAG形式画像の利用

  曲と同じ名前で拡張子 .MAG のファイルがあると、その画像を表示しながら演奏を始めます。WRDファイルからはさらに高度な利用が可能です。
 WRDファイルの@MAG()コマンドの詳細は次の通りです。

@MAG(file_name<,x><,y><,s><,p>)

file_name : MAG形式データのファイル名を書きます。

x,y    : 表示開始ポジションです。

s     : 縮小率です。省略時は1となります。
p    : MAGファイル読み込みスタイルの指定です。

《例》

       @MAG(TEST1.MAG)            単純に表示します。

       @MAG(TEST1.MAG,,,2)        1/2の縮小表示

       @MAG(TEST1.MAG,100,150)    X100,Y150のポジションから表示します。

      @MAG(TEST1.MAG,100,150,4)  1/4に縮小してX100,Y150 に表示します。

       @MAG(TEST1.MAG,,,,1)       画像を表示しますがパレットは変化しません。

       @MAG(TEST1.MAG,,,,2)    パレットだけを読み込み設定します。

<p>パラメータは裏画面に表と異なるパレットを持つデータを読み込む時 p=1でパレットを無視して読み込ませることにより表示色をそのままにできます。

裏画面を表示させる時にp=2 でパレットのみ読み込ませれば素速くパレットの設定を行なえます。p=2 の時は x,y,s のパラメータの意味はありません。

 @GSCREEN() や @GON() は有効に使えます。


@MAG()コマンドの実行で#0及び#17〜18のパレットメモリが変化します。

#17 パレットメモリー 

#18 パレットメモリー 

#19 パレットメモリー 

@MAG() のpパラメータが1(パレットを読み込まない)指定でない場合は、#0 パレットメモリーにもパレット値がセットされます。

[MAG表示機能の制約]

表示できるのは640×400の16色画像までです。それ以外を表示させた場合は動作保証はできません。
また、ファイル中のコメントの表示は行ないません。

@MAG() 実行時は MAGファイルサイズ+約16KBのメモリが必要です。メモリが確保できなかった場合は表示しません。(特にエラーメッセージは出しません)

16色対応機種にのみ対応します。

(注)MAG形式とは「まぐろBBS」(旧「まきちゃんネット」)で開発された汎用の画像データフォーマットです。