JR-100のセーブデータのフォーマット

JR-100: 全体

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

投稿者: けむしろう

プログラミング、サーバ構築、電子工作、旅行が好きです。

コメントを残す

メールアドレスが公開されることはありません。