3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PC-8001でもXMODEM

Last updated at Posted at 2021-07-24

HardOffで110円で手に入れたUP12でPC-8001とWindows 7がつながったのに気をよくて、XMODEMのシーケンスを試してみました。

XMODEMはコンピュータ間でシリアル通信を使いファイルの送受信をおこなうプロトコルで、1977年にWard Christensenにより8BitのCP/M上で開発されたようです。日本ではパソコン通信とともに80年代に入ってから普及しました。XMODEMが元祖で、いろいろな派生系が存在します。

Windows 7でターミナルはRLoginを使っているのですがRLoginにもXMODEMのサポートがありました。

Z80のアセンブラで受信のプログラムを書いてみました。シーケンスの確認で中身は無いです。

UARTRD	EQU	20H
UARTRC	EQU	21H

RTSHIG	EQU	00010111B
RTSLOW	EQU	00110111B

SOH     EQU     01H
STX     EQU     02H
EOT     EQU     04H
ACK     EQU     06H
NAK     EQU     15H
CAN     EQU     18H

PUT	MACRO	C
	LD	A, C
	RST	18H
	ENDM

	ORG	6000H

START:

	CALL	INIT8251
L2:
	LD	A, NAK
	CALL	CHAR_OUT
	CALL	CHAR_IN
	CP	EOT
	JP	Z, L1
	LD	C, 131

L3:
	CALL	CHAR_IN
	DEC	C
	JP	NZ, L3

	LD	A, ACK
	CALL	CHAR_OUT

	PUT	'.'
	JP	L2

L1:
	LD	A, ACK
	CALL	CHAR_OUT

	JP	05C66H

INIT8251:
	XOR	A
	OUT	(UARTRC), A
	OUT	(UARTRC), A
	OUT	(UARTRC), A
	LD	A, 01000000B
	OUT	(UARTRC), A
	LD	A, 01001110B
	OUT	(UARTRC), A
	LD	A, RTSLOW
	OUT	(UARTRC), A

;
;  PC-8001の8251を外部RS232Cヘ
;
	LD	A, (0EA66h)  ; ワークエリアから I/O 30hへ出力する情報を取得
	AND	A, 0CFh
	OR	A, 20h      ; BS2 = ON
	OUT	(30h), A    ; CMTから外部RS232Cへ切り替え
;
	RET

;
; 8251から1文字入力
;
CHAR_IN:
	IN	A, (UARTRC)
	AND	A, 02h
	JP	Z, CHAR_IN
	IN	A, (UARTRD)
	RET
;
; 8251へ1文字出力
;
CHAR_OUT:
	PUSH	AF
CHAR_OUT1:
	IN	A, (UARTRC)
	AND	A, 01h
	JP	Z, CHAR_OUT1
	POP	AF
	OUT	(UARTRD), A
	RET

8Bit時代に作られたプロトコルなので、8Bitのアセンブラにしっくりきますね。

RLoginをcom 300 ビット/秒で接続してXMODEMアップロード状態にして、このプログラムを実行すると処理が行われ、終了します。

RLogin.png

こちらのページを参考にしました。

ちなみに内蔵の8251はカセットインターフェースとの兼用で、割り込みを使っていません。拡張ユニット(PC-8011)の方の8251は割り込みを使っているようです。そのためか、外付けの8251の方はBASICでサポートがありますが、内蔵のほうはありません。

ボーレートはデフォルト300ですが、筐体の中のジャンパーで、4800まで変更可能です。

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?