MB-6892

カセットテープ

概要

テープには1200Hzと2400Hzの矩形波の並びで記録されている。この波の連続する個数からシリアルデータに変換できる。

ボーレート 波形 ビット
600ボー 2400Hz x 4 1
1200Hz x 2 0
1200ボー 2400Hz x 2 1
1200Hz x 1 0

L3 BASICの場合、シリアルデータには1ビットのスタートビット"0"と2ビットのストップビット"11"が含まれているのでこれらを取り除くと1バイトのデータを得ることができる。

テープのシリアルデータ

テープのフォーマット

テープフォーマットは以下のように、ヘッダ1つ、1つ以上のボディ、フッタ1つの各部分で構成されている。

テープのフォーマット

ファイルヘッダ

# 位置 バイト数 内容
1   $FF 90
GAP
・バイト数はBASICワークエリアの$011Aの値
2 0...1 $013C 2 ヘッダ
3 2 $00 1 ファイルヘッダを示す
4 3 $14 1 データの長さ 20バイト固定
5 4...11   8 ファイル名
6 12   1 ファイルの種類
$00 ... BASIC
$01 ... データ
$02 ... 機械語
7 13...14   2 ファイルの種類2
$0000 ... バイナリ形式(BASIC, 機械語のみ)
$FFFF .... アスキー形式(BASIC, データのみ)
8 15...23 $00 9 未使用
9 24   1 CRC
#3~#8の合計
10 25... $00 3~4 フッタ

ファイルボディ

# 位置 バイト数 内容
1   $FF 90/10
GAP
・バイト数はBASICワークエリアの$011Aの値
・バイナリ形式の場合、ボディ2つ目以降は10バイト
(BASICワークエリアの$0119の値)
2 0...1 $013C 2 ヘッダ
3 2 $01 1 ファイルボディを示す
4 3 n 1 データの長さ 1~255バイト
5 4...   最大255 データ
6 4+n   1 CRC
#3~#5の合計
7 5+n $00 3~4 フッタ

ファイルフッタ

# 位置 バイト数 内容
1   $FF 90/10
GAP
・バイト数はBASICワークエリアの$011Aの値
・バイナリ形式の場合、10バイト
(BASICワークエリアの$0119の値)
2 0...1 $013C 2 ヘッダ
3 2 $FF 1 ファイルフッタを示す
4 3 $00 1 データの長さ 0バイト
5 4 $FF 1 CRC
#3~#4の合計
6 5... $00 3~4 フッタ

データのフォーマット

BASIC - バイナリ形式

# 位置 バイト数 内容
1 0   1
$FF ... プロテクトなし
$FE ... プロテクト有り
2 1...2   2 表示を禁止する開始行番号
全行非表示する場合$0000
全行表示する場合$FFFF
3 3...     BASIC中間言語形式のデータ
プロテクト有りの場合は暗号化?される。

BASIC中間言語は1行ごとに以下のようなフォーマットで保存されている。

# バイト数 内容
1 2
次の行の先頭ポインタ ($0000でデータ終わり)
2 2 行番号
3 n BASIC文(中間言語形式)
4 1 行の終端($00)

BASIC - アスキー形式

1バイト目に改行が入る。改行はCR($0D)となる。

機械語

# 位置 バイト数 内容
1 0 $00

1

$00固定
2 1...2   2 機械語データのサイズ
3 3...4   2 機械語格納開始アドレス
4 5...   n 機械語データ
5 5+n... $FF 1 $FF固定
6 6+n... $0000 2 $0000固定
7 8+n...   2 機械語実行開始アドレス

データ

改行はCR($0D)となる。

I/O

ACIA (HD46850(MC6850))

アド
レス
データビット R / W 備考
D7D6D5D4D3D2D1D0
FFC4 IRQ PE OVRN FE CTS DCD TDRE RDRF R カセットインターフェース&RS-232C(排他)
(切り替えはMODE-SELのビット5で行う)
CR7 CR6 CR5 CR4 CR3 CR2 CR1 CR0 W
FFC5 D7 D6 D5 D4 D3 D2 D1 D0 R
D7 D6 D5 D4 D3 D2 D1 D0 W

MODE-SEL

アド
レス
データビット R / W 備考
D7D6D5D4D3D2D1D0
FFD0 w HR C x x GB RB BB W 状態設定レジスタ

W=0 のとき 40字/行、W=1のとき80字/行
HR=0のときハイレゾモード、HR=1のときノーマルモード
C=0のときACIAにカセットを選択、C=1のときRS-232Cを選択
GB,RB,BB:背景色(緑、赤、青)

REMOTE リモートスイッチ

アド
レス
データビット R / W 備考
D7D6D5D4D3D2D1D0
FFD2 RM x x x x x x x W

RM=1のとき、リレースイッチON(カセットリモートOFF)

BAUD-SEL ボーレート切り替え

アド
レス
データビット R / W 備考
D7D6D5D4D3D2D1D0
FFD7 x x x x x x x SR W

SR=0のとき600ボー、SR=1のとき1200ボー。

ピン配置

DIN6pin No. 意味 データ方向 No. 意味 データ方向
1 リモート信号 - 4 リモート信号 -
2 GND - 5 DATA IN IN
3 DATA OUT OUT 6 N/C -
コネクタ:DIN6pin

 

 

TOP PAGE