JR-100でSAVEコマンド実行時に再生される音声データの形式を示す。
記録方式
FSK (Frequency Shift Keying)方式で記録する。
- スペース: 1,200Hz
- マーク: 2,400Hz
- ボーレート: 600ボー
1秒間に600個のスペース(0)またはマーク(1)を送ることができる。
つまり1変調あたり、スペースは2周期分、マークは4周期分が含まれることになる。
バイト表現
1バイトの値は、スタートビット1ビット(0b)とストップビット2ビット(11b)を合わせて、11ビット分を送信する。送信するビット列はLSB(ビット0)からMSB(ビット8)の順に出力される(リトルエンディアン)。
start | b0 | b1 | b2 | b3 | b4 | b5 | b6 | b7 | stop | stop |
---|---|---|---|---|---|---|---|---|---|---|
0 | x | x | x | x | x | x | x | x | 1 | 1 |
フォーマット
カセットテープに保存するデータの形式を示す。非データ部分にはスタートビットとストップビットの区別はなく、単純なビットパターンの繰返しとなる。非データ部分2でビット値'0'が出現するが、BASIC ROMの内容を読む限り、これを何かに利用しているわけではないようである。
オフセット | バイト長 | 値 | 備考 |
(非データ部分1) | ― | 1 (2進数) | |
(非データ部分2) | ― | 111111110 (2進数)を28回繰返し | |
(非データ部分3) | ― | 1 (2進数) を3828ビット分(255*15+3)繰返し | |
0 | 16 | ファイル名 | ファイル名(最大15文字)+16バイトに満たない部分を0x00で埋める。 |
16 | 2 | 先頭アドレス | BASICプログラムの場合は'0x0246' ビッグエンディアンで格納する。 |
18 | 2 | プログラム長N | ビッグエンディアンで格納する。 |
20 | 1 | フラグ | BASICの場合 0x00、マシン語の場合 'M' (0x4d) |
21 | 11 | 0x00 | 埋め草 |
32 | 1 | オフセット0〜31までのチェックサム | 合計値の下位1バイト |
(非データ部分4) | ― | 1 | (2進数)を255ビット分繰返し |
0 | N | プログラムデータ | オフセット18で与えられる値Nバイト。 ビッグエンディアンで格納する。 |
N | 1 | プログラムデータのチェックサム | 合計値の下位1バイト |
コメント