4. コンパイラ「SMC」の使用方法


[表紙に戻る] [<<<<<] [>>>>>]


SMCは、テキストファイル(SMCファイル)から標準MIDIファイル(MIDファイル)を得る(コンパイル)プログラムです。

SMCは、DOSプロンプトから以下のように入力して起動します。

A>SMC [オプション] infile.SMC outfile.MID

infile.SMC”は、入力するSMCファイルです。省略できません。

outfile.MID”は、出力するMIDファイルです。省略すると、カレントディレクトリにSMCファイルの拡張子を“*.MID”にしたものが指定されます。

オプションは、以下のものが使用できます。

オプション 解説
-Oファイル名 出力するMIDファイルを“ファイル名”に指定します。
-Ln 無限ループ構成にした曲の実際のループ演奏回数をn回にします。1〜127を指定します。
デフォルトは2回、あるいは入力SMCファイル中で#FADEOUT-LOOP-COUNT命令で設定した回数です。
-Fn 無限ループ構成にした曲のフェードアウト速度をnにします。1〜16384を指定します。
デフォルトは256、あるいは入力SMCファイル中で#FADEOUT-SPEED命令で設定した速度です。
-C[S,J,E] 入力ファイルの漢字コードを指定します。-CSでシフトJISコード、-CJでJISコード、-CEでEUCコードを入力します。
デフォルトはシフトJISコード(UNIXの場合はコンパイル環境に依存)となります。
このオプションを指定しなくても、JISコードについてはある程度の自動判定を行ないます。
-PC 各トラックの所要クロック数をmc単位で出力します。
-PS チェックサムを表示します。
      1     6     11    16    21    26    31    36    41    46    Total
    0 ..... ...PU 7.C.G 4U7.H U3C.2 W.3KF RS.UP 9DP.M M1KMH EA339  A044
   50 .APD2 P5CMP MWJ0Y 0A8DE RDG8. P4.9R C7RD4 HTFW. .JZ9K 549J0  275E
  100 Y..S9 745BA 98B.0 S991S KB1SH .HS9A XE8RL 4K.7S 94553 XPGH.  2845
  150 HZFN7 2NKMG Y.263 0G7RB 35T.5 U4EPR YF9LM ...5H .8L0E TJ6T.  B3B6
  200 ....2 CZKT. .9Z.. J0... ..2.. H..S. .ZUC. .NZ.. Z.... ..8W.  2A7C
  250 .N1X. .K..G SGN.. F9..H ..S.. A..4N D.... ..TAW H6P.. N7H1G  4CBA
  300 ..MTT ..... 962MP B..1U U..JK B..A. .CF.. ....3 B9J.L P4..P  C0FF
  350 LPR9. RMBF. .367E C0NG9 .C8P5 YZEX. .M..1 189LU JB6.N JEZ5U  5BE1
  400 MH..2 ..0.. 3..UE 7E8.. 0G.G0 G1HXD X.BR0 K6MP4 CZA.. .....  7B17
-----------------------------------------------------------------------
Total NJ6SU 3Z22E NUCSB AUDKS ZCGZ7 K6JFT KBK1R NDF6P L9ZKJ 1M1LJ  8F00
表内の各文字は、行の内容のチェックサムを文字であらわしたものです。最初の行は入力ファイルの1〜50行を、2行目は51〜100行を・・・というようになっています。
右の"Total"は、1〜50行・61〜100行・・・の全体のチェックサムです。また下の"Total"は、1・51・101・151行・・・の全体のチェックサムです。どちらも表内の縦・横のチェックサムとして見ることで、間違っている箇所を効率的に発見できます。
チェックサムは、マクロを展開する前の行内容に対して計算されます。このため、インクルードされたSMIファイルで定義されているマクロの内容が変わっても、チェックサムは変化しません。また、文字は「スペース・タブ・注釈を除き」「英小文字をすべて大文字に直して」計算されます。
チェックサムの「表内の各文字」で間違いが発見できる確率は、たかだか32分の31です。チェックサムが正しいからといって、行内容が正しいとは限らないことにご注意ください。
-V コンパイル過程を表示します。


[表紙に戻る] [<<<<<] [>>>>>]