66のワープロ

エミュレータで起動しないという話が出ていたので、解析してみました。

どうやら、コピープロテクトみたいです? 普通は使わない、35トラックまで使っているようです。。


マニュアルによると、0−34トラックしかないのですが、35トラックを読み込みに行き、フラグをチェックするようです。

	LD	A,053H		;AB	3E 53 		>S
Z0005:	LD	(0E6F7H),A	;AD	32 F7 E6 	2..
	LD	HL,0E900H	;B0	21 00 E9 	!..読み込みアドレス
	LD	BC,02201H	;B3	01 01 22 	.."track=34  sector=1
	LD	A,0CH		;B6	3E 0C 		>. sectors=12
	OR	A		;B8	B7 		.
	CALL	Z0003		;B9	CD C8 0A 	... disk read

	LD	HL,0D256H	;BC	21 56 D2 	!V.読み込みアドレス
	INC	B		;BF	04 		.  track++ 35 になる
	LD	A,01H		;C0	3E 01 		>. sectors=1
	OR	A		;C2	B7 		.
	CALL	Z0003		;C3	CD C8 0A 	... disk read

    ; ディスクから読み込んだ内容をチェックして、違っていたら、リセットへ
	LD	A,(0D257H)	;C6	3A 57 D2 	:W.
	CP	0CBH		;C9	FE CB 		.. 
	JP	NZ,Z0006	;CB	C2 CF 04 	... リセットへ


PC6001VWで起動して、チェックルーチンを、NOPで消したら、普通に起動しました。
しかし、ファンクションキーが表示されてないのと、入力しても、変換できないですが。。??



ちなみに、手作業で回避する場合は、

  1. PC6001VWを起動して、66のワープロをマウントして、リセットする
  2. 何度もディスクを読むが、気にせずに、monitor mode にする
  3. break 0xCB と打ち込んで、gコマンドで再開する
  4. ブレークポイントで止まる。
  5. TABキーで、ダンプリスト欄に移る
  6. 00CBhから3バイト C2,CF,04となっているところを、00,00,00に打ち替える。
  7. TABキーで、コマンド欄に戻り、Gコマンドで、再開する

ちょっと、ややこしいですが、これで、一応回避できました。。



ちなみに、40トラックまで読み込んであるディスクイメージもあるみたいですね。。
その場合は、こんなことをしなくても、普通に起動するようです。。


[追記]

コピープロテクトと言うよりは、単に、35トラック以降にアクセス出来るか、みているだけなのかもしれない。。というはなしもあるようですね。。
漢字変換するときに、ディスクにアクセスに行くようです。。
ということは、35トラックがないと、まともにうごかないぞと。。


なので、35トラックを吸い出すか、作らないと行けなくなりました。。
むーん。


具体的には、トラックの先頭アドレスを書き込み、トラックのデータを、そのアドレスのところに、作成して書き込みます。。
手作業では、出来ないので、PGをかいてやることになるとおもいますが、めんどくさいですね。。(汗)


手作業でもできんことはないけど。。。アドレスと、打ち込む内容さえ間違わなければ。。