











|

|

|
ファイルけいしき


MSX 関連ファイル

今探索してみると、Windows の GUI で Z80 のアゼンブラなんていうのもいくつか存在しているのですが、
多くは HEX ファイルでの出力で、ダイレクトに MSX-DOS や MSX-BASIC へ持っていくものがありません。--
その理由は MSX を知らないために MSX に対応したファイル形式を生成できないからだろうと思っています。
そんなわけで、MSX に関連するファイル形式の解説です。
ついでにこれも、これも、……と記載してみました。

※ CP/M ではこれが 128 バイトとなり、空いた部分を 1Ah(EOF) で埋めるのですが、
MSX-DOS では特にそういう事を行なう必要はありません。
※ ディスク・ファイルは MS-DOS 2.2 互換です。
※ Z80 では 16バイトの場合 若い番号 に 下8バイト が入ります。
例えば 1234h だと読み込む順番に 34h・12h となります。
※ () に記載しているのは主な拡張子ですが、必ずしもこの拡張子というわけではないため、
他の拡張子でも読み込めるよう考慮を行なっていただくのが無難です。


MSX-DOS 実行ファイル (.COM)

1バイト
|
100番地の Z80(R800) コード(バイナリ)
|
1バイト
|
101番地の Z80(R800) コード(バイナリ)
|
|
:
|

※ MSX-DOS/2 では、100h 番地を先頭に実行ファイルを読み込み、100h 番地から実行される仕組みです。


MSX-BASIC BSAVE/BLOADファイル

1バイト
|
FEh
|
2バイト
|
開始番地
|
2バイト
|
終了番地
|
2バイト
|
実行番地
|
1バイト
|
(開始番地)番地のデータ(バイナリ)
|
1バイト
|
(開始番地)+1番地のデータ(バイナリ)
|
|
:
|
1バイト
|
(終了番地)のデータ(バイナリ)
|

※ MSX の RAM(メモリ)・VRAM(VDP関連メモリ)はそのままバイナリーファイル化されます。
実行番地は BLOAD で ,R をつけた際に実行される番地です。
以下の SCREEN ● ファイルも BSAVE・BLOAD 互換のため、上記の形式で記載されてます。


SCREEN 5 ファイル パレット付(.SC5)

1バイト
|
FEh
|
2バイト
|
0000h
|
2バイト
|
76AFh
|
2バイト
|
0000h
|
1バイト
|
上4ビット (0,0)の色(0〜15)
下4ビット (0,1)の色(0〜15)
|
1バイト
|
上4ビット (0,2)の色(0〜15)
下4ビット (0,3)の色(0〜15)
|
|
:
|
1バイト
|
上4ビット (254,211)の色
下4ビット (255,211)の色
|
280hバイト
|
無視
|
1バイト
|
上 bit7 無視
bit6〜4 COLOR 0 の R 輝度(0〜7)
bit3 無視
下 bit2〜0 COLOR 0 の B 輝度(0〜7)
|
1バイト
|
上 bit7〜3 無視
下 bit2〜0 COLOR 0 の G 輝度(0〜7)
|
1バイト
|
上 bit7 無視
bit6〜4 COLOR 1 の R 輝度(0〜7)
bit3 無視
下 bit2〜0 COLOR 1 の B 輝度(0〜7)
|
1バイト
|
上 bit7〜3 無視
下 bit2〜0 COLOR 1 の G 輝度(0〜7)
|
|
:
|
1バイト
|
上 bit7 無視
bit6〜4 COLOR 15 の R 輝度(0〜7)
bit3 無視
下 bit2〜0 COLOR 15 の B 輝度(0〜7)
|
1バイト
|
上 bit7〜3 無視
下 bit2〜0 COLOR 15 の G 輝度(0〜7)
|

※ SCREEN 5 は 横256x212 ドット。左上が (0,0)、右下が (511,212) です。
※ 輝度は 0 であれば暗く、7 であれば明るくなります。


SCREEN 5 ファイル パレット無(.SR5)

1バイト
|
FEh
|
2バイト
|
0000h
|
2バイト
|
69FFh
|
2バイト
|
0000h
|
1バイト
|
上4ビット (0,0)の色(0〜15)
下4ビット (0,1)の色(0〜15)
|
1バイト
|
上4ビット (0,2)の色(0〜15)
下4ビット (0,3)の色(0〜15)
|
|
:
|
1バイト
|
上4ビット (254,211)の色
下4ビット (255,211)の色
|


SCREEN 7 ファイル パレット付(.SC7)

1バイト
|
FEh
|
2バイト
|
0000h
|
2バイト
|
DA9Fh
|
2バイト
|
0000h
|
1バイト
|
上4ビット (0,0)の色(0〜15)
下4ビット (0,1)の色(0〜15)
|
1バイト
|
上4ビット (0,2)の色(0〜15)
下4ビット (0,3)の色(0〜15)
|
|
:
|
1バイト
|
上4ビット (510,211)の色
下4ビット (511,211)の色
|
2880hバイト
|
無視
|
1バイト
|
上 bit7 無視
bit6〜4 COLOR 0 の R 輝度(0〜7)
bit3 無視
下 bit2〜0 COLOR 0 の B 輝度(0〜7)
|
1バイト
|
上 bit7〜3 無視
下 bit2〜0 COLOR 0 の G 輝度(0〜7)
|
1バイト
|
上 bit7 無視
bit6〜4 COLOR 1 の R 輝度(0〜7)
bit3 無視
下 bit2〜0 COLOR 1 の B 輝度(0〜7)
|
1バイト
|
上 bit7〜3 無視
下 bit2〜0 COLOR 1 の G 輝度(0〜7)
|
|
:
|
1バイト
|
上 bit7 無視
bit6〜4 COLOR 15 の R 輝度(0〜7)
bit3 無視
下 bit2〜0 COLOR 15 の B 輝度(0〜7)
|
1バイト
|
上 bit7〜3 無視
下 bit2〜0 COLOR 15 の G 輝度(0〜7)
|

※ SCREEN 7 は 横512x212 ドット。左上が (0,0)、右下が (511,212) です。
SCREEN 5 に比べ横が 1/2 になります。
※ 輝度は 0 であれば暗く、7 であれば明るくなります。


SCREEN 7 ファイル パレット無(.SR7)

1バイト
|
FEh
|
2バイト
|
0000h
|
2バイト
|
D3FFh
|
2バイト
|
0000h
|
1バイト
|
上4ビット (0,0)の色(0〜15)
下4ビット (0,1)の色(0〜15)
|
1バイト
|
上4ビット (0,2)の色(0〜15)
下4ビット (0,3)の色(0〜15)
|
|
:
|
1バイト
|
上4ビット (510,211)の色
下4ビット (511,211)の色
|


グラフザウルス パレットファイル(.PL5/.PL7)

1バイト
|
上 bit7 無視
bit6〜4 PALETTE 0・COLOR 0 の R 輝度(0〜7)
bit3 無視
下 bit2〜0 PALETTE 0・COLOR 0 の B 輝度(0〜7)
|
1バイト
|
上 bit7〜3 無視
下 bit2〜0 PALETTE 0・COLOR 0 の G 輝度(0〜7)
|
1バイト
|
上 bit7 無視
bit6〜4 PALETTE 0・COLOR 1 の R 輝度(0〜7)
bit3 無視
下 bit2〜0 PALETTE 0・COLOR 1 の B 輝度(0〜7)
|
1バイト
|
上 bit7〜3 無視
下 bit2〜0 PALETTE 0・COLOR 1 の G 輝度(0〜7)
|
|
:
|
1バイト
|
上 bit7 無視
bit6〜4 PALETTE 7・COLOR 15 の R 輝度(0〜7)
bit3 無視
下 bit2〜0 PALETTE 7・COLOR 15 の B 輝度(0〜7)
|
1バイト
|
上 bit7〜3 無視
下 bit2〜0 PALETTE 7・COLOR 15 の G 輝度(0〜7)
|

※ グラフザウルスの SCREEN5・7 では、パレット無ファイル(.SR5/.SR7) と共に
パレットファイルが生成されます。


SCREEN 8 ファイル(.SR8/.SC8/.PIC)

1バイト
|
FEh
|
2バイト
|
0000h
|
2バイト
|
D3FFh
|
2バイト
|
0000h
|
1バイト
|
上 bit7〜5 (0,0) の G 輝度(0〜7)
bit4〜2 (0,0) の R 輝度(0〜7)
下 bit1・0 (0,0) の B 輝度(0〜3)
|
1バイト
|
上 bit7〜5 (1,0) の G 輝度(0〜7)
bit4〜2 (1,0) の R 輝度(0〜7)
下 bit1・0 (1,0) の B 輝度(0〜3)
|
|
:
|
1バイト
|
上 bit7〜5 (255,211) の G 輝度(0〜7)
bit4〜2 (255,211) の R 輝度(0〜7)
下 bit1・0 (255,211) の B 輝度(0〜3)
|

※ SCREEN 8 は 横512x212 ドット。左上が (0,0)、右下が (256,212) です。
SCREEN 5・7 のようにパレットがなく、ダイレクトに座標の RGB が保存されています。
赤・緑は 0〜7 ですが、青だけが 0〜3 ですのでご注意下さい。


SCREEN 12 ファイル(.SRS/.SRC/.SCS/.SCC)

1バイト
|
FEh
|
2バイト
|
0000h
|
2バイト
|
D3FFh
|
2バイト
|
0000h
|
1バイト
|
上 bit7〜3 (0,0) の Y 値(0〜31)
下 bit2〜0 (0〜3,0) の K 値 下3バイト(0〜7)
|
1バイト
|
上 bit7〜3 (1,0) の Y 値(0〜31)
下 bit2〜0 (0〜3,0) の K 値 上3バイト(0〜7)
|
1バイト
|
上 bit7〜3 (2,0) の Y 値(0〜31)
下 bit2〜0 (0〜3,0) の J 値 下3バイト(0〜7)
|
1バイト
|
上 bit7〜3 (3,0) の Y 値(0〜31)
下 bit2〜0 (0〜3,0) の J 値 上3バイト(0〜7)
|
1バイト
|
上 bit7〜3 (4,0) の Y 値(0〜31)
下 bit2〜0 (4〜7,0) の K 値 下3バイト(0〜7)
|
|
:
|
1バイト
|
上 bit7〜3 (255,211) の Y 値(0〜31)
下 bit2〜0 (252〜255,211) の J 値 上3バイト(0〜7)
|

※ Y(輝度)=0〜31/1ドット・JおよびK(色相)=-32〜31/4ドット
※ 変換式……R=Y+J・G=Y+K・B=(5/4)Y-(1/2)J-(1/4)K


MSX-DOS テキストファイル・バッチファイル(.TXT/.DOC/.BAT)

MS-DOS・Windows のメモ帳等で生成されるテキストファイルと同等です。^^;;;
漢字を用いる場合の文字コードはシフトJIS、改行コードは CR+LF となります。


MSX-BASIC アスキーファイル(.BAS)

MSX-DOS テキストファイル同様、改行コードは CR+LF となります。
つまり、MSX-BASIC を Windows 等で記載して一度 2DD フロッピーディスクに保存すれば
MSX パソコンや MSXPLAYer 等から LOAD 命令や RUN 命令で読む事が可能です。
ひらがなと一部記号を除き、半角文字コードも一緒です。
漢字 BASIC の場合、漢字はシフト JIS となります。
|
|