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でないと表示できないのね。。

2 件のコメント:

  1. これに助かりました!一昨日落札できたPASOPIA7が届いたら、びっくりしましたが漢字ROM PAC2が入ってました。使い方分かりませんでしたがこの説明を読んだら漢字を出力できるようになりました。ありがとうございます。

    返信削除
    返信
    1. お役に立ててなによりです。PASOPIA7は、PUT%でテキスト画面に、PUT@でグラフィック画面に漢字出力ですね。。

      削除