BIN78 7BITパックファイルとバイナリファイルの相互変換

書法

BIN78 [ filename ]* [ options ]*

SHELLMODE

@記述、!記述、^記述

詳細

7BITファイルをバイナリファイルへ変換する。
ファイル名を省略すると、標準入力を扱う。 複数のファイルを指定すると、ファイル毎に順に処理して出力する。
オプション-87を指定するとバイナリファイルを7BITファイルに変換する。

SMFファイルのSYSEX中では、データのMSBを使用することが出来ない。 そこで、何らかの形で8bitデータを7bitデータに変換する必要がある。 ここでは以下の形式を取り扱う。

7BITパック形式 この形式はKORGのシンセサイザーのSYSEXで用いられている方法である。
もとのデータ7バイトを8バイトに変換する。
もとのデータをD0,D1,D2..D6とすると、これを、 LEADBYTE,P0,P1,...P6に変換する。
LEADBYTEの各ビットは、b0: msb of D0, b1: msb of D1... b6: msb of D6である。
PnはDnのmsbを0にしたもの
HEX連記形式 1バイトをHEXコードで表わす形式。
例えば、0x41は二つの文字、"41"として表わす。
DIGIT形式 1バイトを上下二つのニブルに分けて表わす形式。
例えば、0x41は二つのバイト、0x04、0x01として表わす。

煩雑なので、変換形式関係のオプションをまとめておく。
変換元変換先オプション指定
7bitパック形式バイナリ
バイナリ7bitパック形式-87
HEX連記形式バイナリ-H
バイナリHEX連記形式-H -87
DIGIT形式バイナリ-D
バイナリDIGIT形式-D -87

7bitパック->8bit変換上の注意

  1. 入力するデータの各バイトのmsbは0であること。そうでない場合は形式エラーとなる。
  2. 複数のファイル名を記述した場合、ファイル毎に変換される。 入力ファイルの全てを繋げてから変換するわけではない。

8bit->7bitパック変換上の注意

  1. 複数のファイル名を記述した場合、ファイル毎に変換し、結果は連結されるので、 正しい結果が得られない。

OPTION

-87
バイナリファイルを7bitパックする。
-D
DIGIT形式の変換
-H
HEX連記形式の変換
-Ofilename
出力を指定のファイルに切替える。

戻り値

成功すれば1を返す。それ以外では0

用例

バージョン

Ver 1.012012/04/26タイトル表示修正
Ver 1.00初版