home *** CD-ROM | disk | FTP | other *** search
/ Phoenix Heaven Sunny 2 / APPARE2.BIN / oh_towns / taropyon / gsplay / gspkok.doc next >
Text File  |  1995-06-20  |  30KB  |  800 lines

  1. ==========================================================================
  2. MIDI sound display system GSPLAY/true ver.2.02b#04
  3.                           GSPLAY/pure ver.1.02b#04 / [GS] emulation player
  4.                                                   (C) 1993-1995, TaroPYON
  5. ==========================================================================
  6.  
  7.  
  8. **************************************************************************
  9. ☆  歌詞表示機能について,
  10. **************************************************************************
  11.  
  12.  GSPLAYは演奏には合わせて歌詞表示を機能があります。
  13.  歌詞データはファイル名の拡張子.KOKを持つKOK ファイルに指定しておきます。
  14.  GSPLAYには.HEPLAY等の他のプレーヤと互換性のあるKOK 形式と,全画面を歌詞
  15. 表示に使えるKOK V2形式と2つの形式を持っています。
  16.  通常のKOK 形式は,歌詞は画面下の青色の歌詞表示行に表示されます。
  17.  KOK V2形式は,全画面を使って歌詞表示を行いますので他の演奏情報はいっさい
  18. 表示されません。
  19.  
  20.  歌詞データを記述するKOK ファイルの中身は通常のテキストファイルです。
  21.  KOK ファイルはテキストエディタで作成することができます。
  22.  
  23.  
  24. **************************************************************************
  25. ☆  ノーマルKOK形式について,
  26. **************************************************************************
  27.  
  28.  HEPLAY等の他のプレーヤと互換のあるKOK 形式をKOK V2形式と区別するためにノ
  29. ーマルKOK 形式と呼ぶことにします。
  30.  ここではノーマルKOK 形式の仕様について説明します。
  31.  
  32. ●カラオケ制御コマンド
  33.  
  34.  KOK ファイル中のデータは,行の先頭がスラッシュ+ピリオド「/.」から始まる
  35. 「カラオケ制御コマンド」と行の先頭がスラッシュ+セミコロン「/;」で始まる「
  36. カラオケ文字列」の2つに分類されます。
  37.  
  38.  通常のKOK では以下の制御コマンドが使用可能です。カラオケ制御コマンドは『
  39. 半角の大文字』で指定します。
  40.  
  41.     ┌──────┬──────────────────────┐
  42.     │  形式      │内容                                        │
  43.     ├──────┼──────────────────────┤
  44.     │  /.N16     │タイミング管理を16分音符に切り換える        │
  45.     │  /.CLS     │画面消去                                    │
  46.     │  /.SON     │スクロールモード(初期値)                  │
  47.     │  /.SOFF    │スクロール禁止                              │
  48.     │  /.FNT0    │通常フォント(初期値)                      │
  49.     │  /.FNT1    │太字フォント                                │
  50.     │  /.LOOP    │ループポイント指定(初期値は先頭)          │
  51.     │  /.CONT    │ループ開始(/.LOOPに戻る)                  │
  52.     │  /.V2      │KOK V2形式に切り換え                        │
  53.     └──────┴──────────────────────┘
  54.  
  55.    /.LOOP, /.CONTは1曲中に1回しか指定できません。
  56.  GSPLAYでは/.FNT0,/.FNT1の指定は無効です。
  57.  
  58.  
  59. ●カラオケ文字列
  60.  
  61.  カラオケ文字列は歌詞を実際に表示するコマンドです。
  62.  カラオケと表示される文字(歌詞)は演奏と同期をとるために,半角のセミコロ
  63. ン「; 」でタイミングを合わせます。
  64.  セミコロン「; 」1つで8分音符にあたる時間経過することになっています。
  65.  たとえば,
  66.  
  67.     /;AB;CD;EF;あ;い;う;え;お
  68.  
  69.  という具合にセミコロンを8個かくと(4/4 拍子で)1小節となり,スクロール
  70. モード時にはセミコロンで区切られた文字を表示して表示した文字ぶんだけスクロ
  71. ール(左に移動)します。
  72.  8分音符毎に一回スクロールする文字数は表示する文字数と一致しますので,
  73. セミコロンの間の文字数が不揃いだとスクロールがスムースに見えません。
  74.  普通は8分音符で全角1文字(半角だと2文字)のペースで表示させるとスムー
  75. スにスクロールしているように見えます。
  76.  スクロールモード時にセミコロンの間の文字が省略されている場合は全角の空白
  77. が指定されているとみなします。
  78.  
  79.  スクロール禁止モードにおいてはセミコロンで区切られた文字列は画面の中央に
  80. 揃えて(センタリングして)表示します。すでに画面に表示されている文字はすべ
  81. て消されてから表示されます。
  82.  セミコロンの間の文字が省略されている場合は何もしません。
  83.  たとえば,
  84.  
  85.     /;;;;;;;;
  86.  
  87.  と指定した場合には(4/4 拍子で)1小節分待つことになります。
  88.  
  89.  
  90. **************************************************************************
  91. ☆  KOK V2形式について,
  92. **************************************************************************
  93.  
  94.  KOK V2 はGSPLAYに新しく付け加えられた歌詞データ形式です。
  95.  KOK ファイル中の制御コマンド「/.V2」を指定することで,KOK V2形式となりま
  96. す。
  97.  「/.V2」はKOK ファイルの先頭に指定してください。
  98.  KOK V2形式とノーマルKOK 形式の制御コマンドを混在して使用することはできま
  99. せん。KOK V2形式を指定したKOK ファイルでは.KOK V2形式のコマンドだけが有効
  100. です。
  101.  
  102.  
  103.     KOK V2形式のコマンド一覧
  104.   ┌────────────────┬─────────────────┐
  105.   │コマンド                        │内容                              │
  106.   ├────────────────┼─────────────────┤
  107.   │/.V2                            │KOK V2形式指定                    │
  108.   │/;start                         │演奏開始同期位置の指定            │
  109.   │/;end                           │カラオケ終了                      │
  110.   │/;do                            │リピート開始位置の指定            │
  111.   │/;repeat(n)                     │リピート                          │
  112.   │/;let(name,n)                   │変数に値を代入する                │
  113.   │/;wait(clock)                   │ウェイト(MIDIクロック単位)      │
  114.   │/;resolution(mode)              │画面モードの変更                  │
  115.   │/;writePage(page)               │書き込みページの変更              │
  116.   │/;palette( col, r,g,b)          │パレット設定                      │
  117.   │/;scroll(x1,y1,x2,y2,xd,yd,col) │指定範囲をスクロール              │
  118.   │/;chgcol(x1,y1,x2,y2,old,new)   │指定範囲の色変換                  │
  119.   │/;pset(x,y,col)                 │点描画                            │
  120.   │/;box(x1,y1,x2,y2,col)          │矩形描画                          │
  121.   │/;boxf(x1,y1,x2,y2,col)         │矩形描画(面塗)                  │
  122.   │/;line(x1,y1,x2,y2,col)         │直線描画                          │
  123.   │/;puts(x,y,col,bac,"str")       │文字列表示                        │
  124.   │/;fontcolor(col,bac)            │フォントカラーの設定              │
  125.   │/;fontzoom(xb.yb)               │フォント拡大率の設定              │
  126.   │/;fontlocate(x0,y0)             │フォント表示位置の設定            │
  127.   │/;fontdirection(cha,dsp,space)  │フォント表示方向の設定            │
  128.   │/;fontstyle(style, ...)         │フォントスタイルの設定            │
  129.   │/;fontdisplay(func)             │フォント描画モードの設定          │
  130.   │/;text("str")                   │フォント表示                      │
  131.   │/;iconload("filename")          │アイコンデータファイルの読み込み  │
  132.   │/;iconput(no,x0,y0,func,col,bac)│アイコン表示                      │
  133.   │/;tifload("name","filename")    │TIFFデータの読み込み              │
  134.   │/;tifput("name",x,y,col,bac)    │TIFFデータの表示                  │
  135.   └────────────────┴─────────────────┘
  136.  
  137.  セミコロン「;」 で区切ることで1行に複数のコマンドが指定できます。2つの
  138. コマンドからは先頭のスラッシュ+セミコロン「/;」は必要ありません。
  139.  
  140. 【使用例】
  141.     /;boxf(0,0,639,479,15); boxf(32,32,607,447,7)
  142.  
  143. ●画面モードについて
  144.  
  145.  KOK V2では画面を2つ使うことができ,writePage コマンドで書き込み画面を切
  146. り換えます。
  147.  また,画面モードは,
  148.  
  149.     画面モード3    …  640×480ドット    16色
  150.     画面モード10    …  320×240ドット 32768色
  151.  
  152. が指定できます。
  153.  2画面の合成も可能で,ページ0が奥,ページ1が手前となっています。ただし,
  154. 画面モード10をページ1に設定したときは重ね合わせはできません。
  155.  演奏開始直後は,画面解像度は両方とも640×480ドット16色で,書き込みページ
  156. 0となっています。
  157.  各コマンドで指定できる色番号と,座標の範囲は以下のようになっています。
  158.  
  159.   ┌───┬──────┬──────┬──────┐
  160.   │画面  │            │            │            │
  161.   │モード│色番号の範囲│X座標の範囲│Y座標の範囲│
  162.   ├───┼──────┼──────┼──────┤
  163.   │  3  │0~15      │0~639     │0~479     │
  164.   ├───┼──────┼──────┼──────┤
  165.   │  10  │0~32767   │0~319     │0~239     │
  166.   └───┴──────┴──────┴──────┘
  167.  
  168. ●色番号について
  169.  
  170.  32768 色が使える画面モード10では,色番号は0~32767 の範囲で指定します。
  171. これは次のようにRGB に対応しています。
  172.  
  173.     色番号  =  G×1024+R×32+B
  174.  
  175.         R  …  赤色の輝度(0~31)
  176.         G  …  緑色の輝度(0~31)
  177.         B  …  青色の輝度(0~31)
  178.  
  179.  たとえば一番明るい白はRGB をそれぞれ最高値に設定しますので,
  180.  
  181.         R=31,G=31,B=31
  182.         色番号  =  31×1024+31×32+31 = 32767
  183.  
  184. となります。
  185.  中間の灰色は,
  186.         R=15,G=15,B=15
  187.         色番号  =  15×1024+15×32+15 = 15855
  188.  
  189.  紫は,R(赤色)とB(青色)のあわせますので,
  190.         R=31,G=0,B=31
  191.         色番号  =  0×1024+31×32+31 = 1023
  192.  
  193. となります。
  194.  KOK V2のコマンドのパラメータは式で使えますので,次のように指定することが
  195. できます。
  196.  
  197.     /;let(R,31)
  198.     /;let(G,17)
  199.     /;let(B,25)
  200.     /;pset(160,120,G*1024+R*32+B)
  201.  
  202.  
  203. ●コマンド説明
  204.  
  205. --------------------------------------------------------------------------
  206. ■start                            演奏開始位置
  207. --------------------------------------------------------------------------
  208. 【書式】    /;start
  209.  
  210. 【解説】
  211.  演奏の開始と同期をとるカラオケデータを指定します。
  212.  KOK V2形式のカラオケデータには「/;start」 の指定が必ず必要です。
  213.  
  214. --------------------------------------------------------------------------
  215. ■end                                カラオケ終了
  216. --------------------------------------------------------------------------
  217. 【書式】    /;end
  218.  
  219. 【解説】
  220.  カラオケデータの終了を指定します。
  221.  
  222. --------------------------------------------------------------------------
  223. ■do                                  リピート開始位置の指定
  224. --------------------------------------------------------------------------
  225. 【書式】    /;do
  226.  
  227. 【解説】
  228.  「do ~ repeat」間の命令を指定の回数繰り返し実行します。
  229.  リピート中に更にリピートを行うような使い方はできません。
  230.  
  231. --------------------------------------------------------------------------
  232. ■repeat                          リピート
  233. --------------------------------------------------------------------------
  234. 【書式】    /;repeat(n)
  235.  
  236.     n           …リピート回数
  237.  
  238. 【解説】
  239.  「do ~ repeat」間の命令を指定の回数繰り返し実行します。
  240.  リピート中に更にリピートを行うような使い方はできません。
  241.  
  242. 【使用例】
  243.     # 20回繰り返し
  244.     /;do
  245.         ・
  246.         ・
  247.     /;repeat(20)
  248.  
  249.  
  250. --------------------------------------------------------------------------
  251. ■let                                代入
  252. --------------------------------------------------------------------------
  253. 【書式】    /;let(name,n)
  254.  
  255.     name        …変数名
  256.     n           …代入する値
  257.  
  258. 【解説】
  259.  nameで表される変数に値n を代入します。
  260.  nameは31文字まで使用できます。
  261.  
  262. 【使用例】
  263.     /;let(x0,320+8*12)
  264.  
  265. --------------------------------------------------------------------------
  266. ■wait                              ウェイト
  267. --------------------------------------------------------------------------
  268. 【書式】    /;wait(clock)
  269.  
  270.     clock       …ウェイトクロック(4分音符=8)
  271.  
  272. 【解説】
  273.  演奏とタイミングをとるためのコマンドで,指定の時間次のコマンドを実行す
  274. るのを待ちます。
  275.  時間はclock に数値で指定します。clock 1クロックは32分音符となります。
  276.  通常の4分の4拍子では「wait(32)」が1小節分にあたります。
  277.  clock は,負の値の値を指定することもでき,この場合タイミングを元に戻す
  278. ことができます。
  279.  
  280. ※ waitコマンドはstart コマンド指定箇所より前に使ってはいけません。
  281.  
  282.     ┌────┬────────┐
  283.     │クロック│対応する音符    │
  284.     ├────┼────────┤
  285.     │      1 │32分音符        │
  286.     │      2 │16分音符        │
  287.     │      3 │符点16分音符    │
  288.     │      4 │8分音符        │
  289.     │      6 │符点8分音符    │
  290.     │      8 │4分音符        │
  291.     │     12 │符点4分音符    │
  292.     │     16 │2分音符        │
  293.     │     24 │符点2分音符    │
  294.     │     32 │全音符          │
  295.     └────┴────────┘
  296.  
  297. 【使用例】
  298.     /;wait(4)
  299.  
  300. --------------------------------------------------------------------------
  301. ■resolution                  画面解像度の変更
  302. --------------------------------------------------------------------------
  303. 【書式】    /;resolution(mode)
  304.  
  305.         mode    …  画面モード(3,10)
  306.  
  307. 【解説】
  308.  現在画面の解像度を変更します。
  309.  解像度を変更すると画面表示が一瞬乱れますので,解像度の変更は演奏の最初
  310. に行って,演奏の途中には変更しないようにしてください。
  311.  
  312.   ┌───┬─────┬───┬────┐
  313.   │画面  │解像度    │色数  │パレット│
  314.   │モード│          │      │        │
  315.   ├───┼─────┼───┼────┤
  316.   │  3  │ 640×480 │   16 │  あり  │
  317.   ├───┼─────┼───┼────┤
  318.   │  10  │ 320×240 │32768 │  なし  │
  319.   └───┴─────┴───┴────┘
  320.  
  321. 【使用例】
  322.     /*  ページ0を32768 色画面,ページ1を16色画面に設定する */
  323.     /;writePage(0)
  324.     /;resolution(10)
  325.     /;writePage(1)
  326.     /;resolution(3)
  327.  
  328. --------------------------------------------------------------------------
  329. ■writePage                    書き込みページの変更
  330. --------------------------------------------------------------------------
  331. 【書式】    /;writePage(page)
  332.  
  333.         page    …  書き込みページ(0,1)
  334.  
  335. 【解説】
  336.  各コマンドの書き込みページを切り換えます。
  337.  
  338. 【使用例】
  339.     /;writePage(1)
  340.  
  341. --------------------------------------------------------------------------
  342. ■palette                        パレット
  343. --------------------------------------------------------------------------
  344. 【書式】    /;palette(col, r,g,b)
  345.  
  346.         col     …  色番号(0~15)
  347.         r,g,b   …  R・G・B (各 0~255)
  348.  
  349. 【解説】
  350.  パレットを設定します。
  351.  パレットは演奏開始直後は以下のように設定されています。
  352.  
  353.     ┌──┬────────┬────────┐
  354.     │col │   R     G     B│色内容          │
  355.     ├──┼────────┼────────┤
  356.     │ 0  │   0     0     0│ブラック        │
  357.     │ 1  │   0     0     0│ブラック        │
  358.     │ 2  │ 112   112   128│グレー(2)       │
  359.     │ 3  │ 192   192   208│グレー(4)       │
  360.     │ 4  │  80    96   112│メタルブルー(1) │
  361.     │ 5  │ 112   128   144│メタルブルー(2) │
  362.     │ 6  │ 144   160   176│メタルブルー(3) │
  363.     │ 7  │ 176   176   192│グレー(3)       │
  364.     │ 8  │  80    80    96│グレー(1)       │
  365.     │ 9  │   0     0   176│ブルー          │
  366.     │10  │ 176     0     0│レッド          │
  367.     │11  │ 176     0   176│マゼンダ        │
  368.     │12  │   0   176     0│グリーン        │
  369.     │13  │   0   176   176│シアン          │
  370.     │14  │ 176   176     0│イエロー        │
  371.     │15  │ 224   224   240│ホワイト        │
  372.     └──┴────────┴────────┘
  373.  
  374.  なお,画面モード10(320×240ドット 32768色)ではこの命令は使えません。
  375.  
  376. 【使用例】
  377.     /;palette( 1, 0, 0, 128)
  378.  
  379. --------------------------------------------------------------------------
  380. ■scroll                          スクロール
  381. --------------------------------------------------------------------------
  382.  
  383. 【書式】    /;scroll(x1,y1,x2,y2,xd,yd,col)
  384.  
  385.     x1,y1   …座標1
  386.     x2,y2   …座標2
  387.     xd      …横方向スクロールドット数
  388.     yd      …縦方向スクロールドット数
  389.     col     …背景色(-1,色番号)
  390.  
  391. 【解説】
  392.  指定範囲を指定のドット数スクロールさせます。
  393.  col はスクロールによって移動した部分の背景色です。col に-1を指定した場
  394. 合は背景色による塗り潰しは行いません。
  395.  
  396. 【使用例】
  397.     /;scroll(100,128,399,191,-16,0,-1)
  398.  
  399. --------------------------------------------------------------------------
  400. ■chgcol                          色変更
  401. --------------------------------------------------------------------------
  402. 【書式】    /;chgcol(x1,y1,x2,y2,old,new)
  403.  
  404.     x1,y1   …座標1
  405.     x2,y2   …座標2
  406.     old     …変更元色番号
  407.     new     …変更後色番号
  408.  
  409. 【解説】
  410.  指定範囲の色old をnew に変更します。
  411.  
  412. 【使用例】
  413.     /;chgcol(100,0,199,99, 1, 9)
  414.  
  415. --------------------------------------------------------------------------
  416. ■pset                              ドット描画
  417. --------------------------------------------------------------------------
  418. 【書式】    /;pset(x0,y0,col)
  419.  
  420.         x0,y0   …座標
  421.         col     …色番号
  422.  
  423. 【解説】
  424.  指定座標に点を描画します。
  425.  
  426. --------------------------------------------------------------------------
  427. ■box                                矩形描画
  428. --------------------------------------------------------------------------
  429. 【書式】    /;box(x1,y1,x2,y2,col)
  430.  
  431.         x1,y1   …座標1
  432.         x2,y2   …座標2
  433.         col     …色番号
  434.  
  435. 【解説】
  436.  矩形を描画します。
  437.  
  438. --------------------------------------------------------------------------
  439. ■boxf                              矩形描画(面塗)
  440. --------------------------------------------------------------------------
  441. 【書式】    /;boxf(x1,y1,x2,y2,col)
  442.  
  443.         x1,y1   …座標1
  444.         x2,y2   …座標2
  445.         col     …色番号
  446.  
  447. 【解説】
  448.  中を塗り潰した矩形を描画します。
  449.  
  450. 【使用例】
  451.     /;boxf(0,0,639,479,15)      #全画面消去
  452.  
  453. --------------------------------------------------------------------------
  454. ■line                              直線描画
  455. --------------------------------------------------------------------------
  456. 【書式】    /;line(x1,y1,x2,y2,col)
  457.  
  458.         x1,y1   …座標1
  459.         x2,y2   …座標2
  460.         col     …色番号
  461.  
  462. 【解説】
  463.  直線を描画します。
  464.  
  465. --------------------------------------------------------------------------
  466. ■puts                              文字列表示
  467. --------------------------------------------------------------------------
  468. 【書式】    /;puts(x0,y0,col,bac,"str")
  469.  
  470.         x0,y0   …座標
  471.         col     …文字色番号
  472.         bac     …背景色番号
  473.         str     …文字列
  474.  
  475. 【解説】
  476.  文字列を描画します。
  477.  文字の大きさは半角が1文字8×16ドット,全角は16×16ドットです。
  478.  
  479. 【使用例】
  480.     /;puts(16,128,7,0,"TITLE : SAMPLE MUSIC DATA")
  481.  
  482. --------------------------------------------------------------------------
  483. ■fontcolor                  フォントカラーの設定
  484. --------------------------------------------------------------------------
  485. 【書式】    /;fontcolor(col,bac)
  486.  
  487.         col     …文字色(色番号)
  488.         bac     …背景色(色番号)
  489.  
  490. 【解説】
  491.  フォントの表示色を設定します。
  492.  
  493. --------------------------------------------------------------------------
  494. ■fontzoom                  フォント拡大率の設定
  495. --------------------------------------------------------------------------
  496. 【書式】    /;fontzoom(xb,yb)
  497.  
  498.         xb      …文字の横ドット数(1~128)
  499.         yb      …文字の縦ドット数(1~256)
  500.  
  501. 【解説】
  502.  フォントの縦横ドット数を設定します。
  503.  ここで設定するドット数は半角文字が対象です。全角文字の場合は横ドット数が
  504. 2倍に設定されます。
  505.  初期状態では
  506.  
  507.     横ドット数  …  8
  508.     縦ドット数  …  16
  509.  
  510. に設定されています。
  511.  
  512. 【使用例】
  513.     /;fontzoom(16,31)
  514.  
  515. --------------------------------------------------------------------------
  516. ■fontlocate            フォント表示位置の設定
  517. --------------------------------------------------------------------------
  518. 【書式】    /;fontlocate(x0,y0)
  519.  
  520.         x0,y0   …座標
  521.  
  522. 【解説】
  523.  フォントの表示位置を設定します。
  524.  
  525. 【使用例】
  526.     /;fontlocate(128,56)
  527.  
  528. --------------------------------------------------------------------------
  529. ■fontdirection    フォント表示方向の設定
  530. --------------------------------------------------------------------------
  531. 【書式】    /;fontdirection(cha,dsp,spc)
  532.  
  533.         cha     …文字方向(0~3,0=右,1=上,2=左,3=下)
  534.         dsp     …表示方向(0~3,0=右,1=上,2=左,3=下)
  535.         spc     …文字間の空白ドット数(-256~256)
  536.  
  537. 【解説】
  538.  フォントの文字方向,表示方向,文字間の空白ドット数を設定します。
  539.  初期状態では
  540.         文字方向            …0(右)
  541.         表示方向            …0(右)
  542.         文字間り空白ドット数…0
  543. に設定されています。
  544.  
  545. 【使用例】
  546.     /;fontdirection(3,3,-1)
  547.  
  548. --------------------------------------------------------------------------
  549. ■fontstyle            フォントスタイルの設定
  550. --------------------------------------------------------------------------
  551. 【書式】    /;fontstyle(style, ... )
  552.  
  553.       style     …フォントスタイル
  554.                     NORMAL    :修飾なし
  555.                     BOLD      :太字
  556.                     ITALIC    :斜体
  557.                     SHADOW    :影付
  558.                     FRINGE    :縁取り
  559.                     UNDERLINE :アンダーライン
  560.                     OVERLINE  :オーバーライン
  561.                     CHECKLINE :消し線
  562.  
  563. 【解説】
  564.  フォントスタイル(字体)を設定します。修飾は複数指定できます。
  565.  初期状態ではNROMAL(修飾なし)に設定されています。
  566.  影付と縁取りの色は,fontcolorコマンドで設定する背景色で描画されます。
  567.  
  568. 【使用例】
  569.     /;fontstyle(BOLD,ITALIC,FRINGE)
  570.  
  571. --------------------------------------------------------------------------
  572. ■fontdisplay            フォント描画モードの設定
  573. --------------------------------------------------------------------------
  574. 【書式】    /;fontdisplay(func)
  575.  
  576.         func    …描画モード
  577.                     PSET
  578.                     PRESET
  579.                     OR
  580.                     AND
  581.                     XOR
  582.                     NOT
  583.                     OPAQUE
  584.  
  585. 【解説】
  586.  フォントの描画モードを設定します。
  587.  初期状態ではOPAQUEに設定されています。
  588.  
  589. 【使用例】
  590.     /;fontdisplay(PSET)
  591.  
  592. --------------------------------------------------------------------------
  593. ■text                          フォント表示
  594. --------------------------------------------------------------------------
  595. 【書式】    /;text("str")
  596.  
  597.         str     …文字列
  598.  
  599. 【解説】
  600.  指定の文字列を,fontcolor ,fontzoom,fontlocate,fontdirection ,fontst
  601. yle ,fontdisplayで設定したフォント情報に従って表示します。
  602.  表示位置はfontlocate コマンドで指定しますが,この指定がない場合は前回表
  603. 示した位置の続きから表示されます。
  604.  
  605. 【使用例】
  606.     /;fontcolor(15,0)
  607.     /;fontzoom(8,16)
  608.     /;fontdirection(0,0,1)
  609.     /;fontlocate(32,96)
  610.     /;fontstyle(BOLD,ITALIC,SHADOW)
  611.     /;fontdisplay(PSET)
  612.     /;text("MESSAGE")
  613.  
  614. --------------------------------------------------------------------------
  615. ■iconload                  アイコンデータファイルの読み込み
  616. --------------------------------------------------------------------------
  617. 【書式】    /;iconload("filename")
  618.  
  619.         filename…アイコンデータファイル名
  620.  
  621. 【解説】
  622.  アイコンデータファイルを読み込みます。
  623.  ファイル名にドライブやパスが指定されていない場合は,演奏データファイルが
  624. 格納されているディレクトリから読み込みます。
  625.  TownsMENU で使えるアイコンデータファイルに対応しています。
  626.  アイコンデータの読み込みには時間が多少かかりますので,演奏の途中ではなる
  627. べく使わないようにしてください。
  628.  
  629. 【使用例】
  630.     /;iconload("towns.icn")
  631.  
  632. --------------------------------------------------------------------------
  633. ■iconput                    アイコン表示
  634. --------------------------------------------------------------------------
  635. 【書式】    /;iconput(no,x0,y0,func,col,bac)
  636.  
  637.         no      …アイコン番号(0~32767 )
  638.         x0,y0   …座標
  639.         func    …描画モード
  640.                     PSET
  641.                     PRESET
  642.                     OR
  643.                     AND
  644.                     XOR
  645.                     NOT
  646.                     OPAQUE
  647.         col     …表示色(色番号)
  648.         bac     …背景色(色番号)
  649.  
  650. 【解説】
  651.  iconloadコマンドで読み込んだアイコンを表示します。
  652.  col とbac は単色(モノクロ)のアイコンデータを表示するときにだけ有効です。
  653. 16色アイコンデータを表示するときにはcol とbac は意味を持ちませんが,省略は
  654. できません(適当な値を指定してください)。
  655.  描画モードはPSET かOPAQUE を指定するのが普通です。
  656.  
  657.  アイコンデータは単色(モノクロ)と16色に対応しています。
  658.  
  659.  32768 色が使える画面モード10で16色アイコンデータを表示するときは,直前の
  660. 16色画面(画面モード3)で設定されていたパレット情報に従い表示されます。
  661.  
  662.  
  663. 【使用例】
  664.     /;iconload("towns.icn")
  665.     /;iconput(1024, 32,32, OPAQUE, 0, 15 );
  666.     /;iconput(1025, 64,32, OPAQUE,15,  0 );
  667.  
  668. --------------------------------------------------------------------------
  669. ■tifload                        TIFFデータの読み込み
  670. --------------------------------------------------------------------------
  671. 【書式】    /;tifload("name","fn")
  672.  
  673.         name   …TIFF画像名(31文字以内の半角アルファベットまたは数字)
  674.         fn     …TIFF画像ファイル名
  675.  
  676. 【解説】
  677.  TIFF画像データをメモリに読み込みます。このコマンドでは画面への表示は行い
  678. ません。
  679.  ファイル名にドライブやパスが指定されていない場合は,演奏データファイルが
  680. 格納されているディレクトリから読み込みます。
  681.  
  682. 【使用例】
  683.     /;tifload("opening","opening.tif")
  684.     /;tifload("ending" ,"ending.tif")
  685.  
  686. --------------------------------------------------------------------------
  687. ■tifput                          TIFFデータの表示
  688. --------------------------------------------------------------------------
  689. 【書式】    /;tifput("name",x0,y0,col,bac)
  690.  
  691.         name    …TIFF画像名(tifload で指定した名前)
  692.         x0,y0   …座標
  693.         col     …文字色番号(-1,色番号)
  694.         bac     …背景色番号(色番号)
  695.  
  696. 【解説】
  697.  tifload で読み込みだTIFF画像データを画面に表示します。
  698.  col とbac はモノクロ(単色)の画像データを読み込んだ時に有効です。
  699.  
  700.  16色モードの画像データに対しては,col はパレットの有効/無効を意味します。
  701. パレットを有効にしたいときはcol を0以上の値を,無効にしたいときは-1を指定
  702. します。
  703.  16色モードや32768 色モードの画像データに対してはbac は意味がありませんが,
  704. 省略はできません。適当な値を指定してください。
  705.  
  706. 【使用例】
  707.     /;tifload("opening","opening.tif")
  708.     /;tifput("opening",0,24, -1,0)      #パレット無効
  709.  
  710.  
  711. ●数値について,
  712.  
  713.  数値を指定する箇所には,C言語に準拠した計算式が使えます。
  714.  数値は32ビットの符号付整数で-2,147,483,648~ 2,147,483,647 範囲で計
  715. 算できます。
  716.  
  717.  数値の指定は,
  718.       ・10進数          0~9の文字列の並び
  719.       ・16進数          "0x"を先頭にして0~9,A~Fの文字列の並び
  720.       ・2進数          "0b"を先頭にして0,1の文字列の並び
  721.       ・変数            アルファベットから始まる文字列
  722. が指定可能です。
  723.  
  724.  サポートしている演算子は以下のとおりです。
  725.  
  726.     ┌────────────────────┐
  727.     │四則演算                                │
  728.     │    +  加算                            │
  729.     │    -  減算                            │
  730.     │    *  乗算                            │
  731.     │    /  除算                            │
  732.     │    %  剰余                            │
  733.     │                                        │
  734.     │ビット演算                              │
  735.     │    &  論理積(AND )                  │
  736.     │    |  論理和(OR )                   │
  737.     │    ^  排他論理和(XOR )              │
  738.     │     ̄  1の補数                        │
  739.     │    <<  右シフト                        │
  740.     │    >>  左シフト                        │
  741.     └────────────────────┘
  742.  
  743.     ┌────┬──────────┬────┐
  744.     │優先順位│演算子              │適合規則│
  745.     ├────┼──────────┼────┤
  746.     │ 高い 1 │(  )              │   →   │
  747.     │      2 │ ̄                  │   ←   │
  748.     │      3 │*  /  %          │   →   │
  749.     │      4 │+  -              │   →   │
  750.     │      5 │<<  >>              │   →   │
  751.     │      6 │&                  │   →   │
  752.     │      7 │^                  │   →   │
  753.     │ 低い 8 │|                  │   →   │
  754.     └────┴──────────┴────┘
  755.  
  756.  
  757. ●演奏の中断方法
  758.  
  759.  KOK V2形式を使用したデータを演奏中は,[ESC] キーまたは[取消]キーを押
  760. すか,マウスの右ボタンを押してください。
  761.  
  762.  
  763. ●KOK V2形式のサンプル
  764.  
  765.     /*----------------------------------------------------------------
  766.     /.V2        #KOK V2形式の指定
  767.     /*----------------------------------------------------------------
  768.  
  769.     /*  演奏開始前の設定    ------------------------------------------
  770.     /;let(white,15)
  771.     /;let(black,0)
  772.     /;let(green,8+4)
  773.     /;palette( white, 255, 255, 255)    #色番号15を白にパレット設定
  774.     /;let(x1,0);    let(y1,24)
  775.     /;let(x2,639);  let(y2,479-16)
  776.     /;boxf(x1,y1,x2,y2, white)          #画面を白で塗り潰す
  777.     /;tifload("opening","opening.tif")  #オープニング用TIFF読み込み
  778.     /;tifload("ending" ,"ending.tif")   #エンディング用TIFF読み込み
  779.  
  780.     /*  演奏開始    --------------------------------------------------
  781.     /;start
  782.     /;wait(32)
  783.     /;tifput("opening", 16, 32, black, white)  #オープニング用TIFF表示
  784.     /;wait(32)
  785.     /;puts(320,446,green,black,"TITLE:サンプルデータ")
  786.     /*----------------------------------------------------------------
  787.         ・
  788.         ・
  789.         中略
  790.         ・
  791.         ・
  792.     /*----------------------------------------------------------------
  793.     /;wait(32)
  794.     /;tifput("ending", 16, 32, black, white)   #エンディング用TIFF表示
  795.     /;wait(64)
  796.     /*  演奏終了    --------------------------------------------------
  797.     /;end
  798.     /*----------------------------------------------------------------
  799.  
  800.