2012年2月26日日曜日

漢字ROMの吸出し

漢字ROM PACには、型番がPA7247のものとPA7246の2種類がある。
うちにあるのはPA7246で、カセットテープ付。

初代パソピアで漢字を使う場合、このサブルーチンカセットが必要。
ROM吸出しは、パソピア7を使う

基本は、武田さんのページに記載されている吸出し方法。
ROMが正しく読み出せたか検証したかったので、バイナリをダンプするように改良。
(その結果、処理時間がオリジナルより遅くなった。。)

100 data &hf5, &h3e, &h00, &hd3, &h1b, &h3e, &h00, &hd3
110 data &h18, &h3e, &h00, &hd3, &h19, &h3e, &h00, &hd3
120 data &h1a, &hdb, &h18, &h32, &h00, &h00, &h32, &h1b
121 data &hf0, &hf1, &hc9
130 clear ,&hefff
140 for a=&hf000 to &hf01a
150  read d:poke a,d
160 next a
161 width 80
170 input "slot (0-7)",s
180 print "0: 00000-07fff"
190 print "1: 08000-0ffff"
200 print "2: 10000-17fff"
210 print "3: 18000-1ffff"
220 input "range (0-3)",r
230 if r=0 then ms=&h00:h=0:goto 300
240 if r=1 then ms=&h80:h=0:goto 300
250 if r=2 then ms=&h00:h=1:goto 300
260 if r=3 then ms=&h80:h=1:goto 300
270 end
300 poke &hf002,s
310 poke &hf00e,h
320 for m=0 to &h7f
330  print hex$(m);"xx : ";
340  poke &hf00a,m+ms
350  poke &hf015,m
360  for l=0 to &hff
370   poke &hf006,l
380   poke &hf014,l
390   a=&hf000:call a
391   if (l>=0 and l<=7) or (l>=248 and l<=255) then a=peek(&hf01b):print right$("0"+hex$(a),2);" ";else if l mod 16=0 then print ".";
400  next l
401 print ""
410 next m

range 0~3でそれぞれ実行。bsave #-1,"KANJI",0,&h8000でwavファイルに録音して、wave2binでバイナリ化。ヘッダーと最後を削除、出来た4つのバイナリを合成して「kanji.rom」というファイル名で保存。

本体付属のカセットは、データレコーダーをPCに接続して、「ぷちれこ」でそのままwavファイルに保存。
パソピア7のデータレコーダーもあったが、シャープポケコン用のデータレコーダーを使用。
ポケコン用の方はトーン調整ができて、比較的データ化けが少なかったと思う

エミュレータをちょっと改良して、漢字ROMを試してみると、
表示できた。
#SCREEN 2でないと表示できないのね。。

0 件のコメント:

コメントを投稿