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バイト |


コメント