SHARP MZ-80B/2000/2200用の日本語漢字ROM I/F「MZ-1R13」の
データ吸出しツール"GET1R13"と、
16ビットボード用 漢字ROMオプション「MZ-1R08」の吸出し方法
(Get Data Tool for Japanese Kanji ROM interface "MZ-1R13"
on SHARP MZ-80B/2000/2200, and
How to Get the ROM Data from 16bit Board Kanji ROM Option MZ-1R08)

Last updated 2022/05/20 since xxxx

«Quick Links» 1. 概要 (summary)  2. MZ-1R13用のツール"GET1R13" ("GET1R13" for MZ-1R13)  3. MZ-1R08の吸出し方法 (How to Get the ROM data of MZ-1R08)  4. リンク集 (link)


1. 概要 (Summary)

これは、MZ-80B/2000/2200用の漢字ROMオプションのROMデータ吸出しツールと、 MZ-2000/2200 16ビットボード用漢字ROMオプションのMZ-1R08のROMデータを抜き出す方法です。
I/F基板になっている漢字 ROM オプションのROMのデータは、X1の外付漢字ROM I/F CZ-8KRと同じです。 MZ-1R08のデータは、初代X1turbo用の第一水準と同じですが、 ROMの接続が変則的なので、データを並び替える必要があります。
ROM仕様の詳細は、 こちら(../x1/x1getkrom.html) をどうぞ。

MZのROMは、漢字ROMだけがソケット化されておらず、 P-ROM Programmer/Writerで簡単に読み出すことができません。
どこに公開されていたのか、入手経路が記憶にないのですが、sugaさん sugaのジャンク部屋 (http://www.ne.jp/asahi/suga/junkyard/) が作られていた、 「MZ-2500+拡張ユニット」で動作する「GET1R13」というツールが、昔からありました。 僕自身が拡張ユニットを持っていなくて吸い出してもらったこともあり、 以前から気になっていたので、MZ-80B/2000/2200で動作するように移植しました。
動作には、SHARPのDISK BASICの何かが必要です。

GET1R13が対応している漢字ROMは、以下のいずれかです。

* 両者のROMデータの内容は、同じです。

16ビットボードMZ-1M01用の漢字ROMオプション、MZ-1R08の漢字ROMデータは、 特別なツールを使用せずに抜き出すことが可能です。
(8088 IPL-ROMも同様の方法で可能なはずですが、ROMライタを使うのが簡単ですので、私は試していません)


2. MZ-1R13用のツール"GET1R13" ("GET1R13" for MZ-1R13)
2.1. 使い方 (How to Use)

"GET1R13.D88"のディスクの内容は、以下のようになっています。

MZ_1R13_K1.ROM    ... 中身が空の出力ファイル
MZ_1R13_K2.ROM    ... 中身が空の出力ファイル
MZ_1R13_K3.ROM    ... 中身が空の出力ファイル
MZ_1R13_K4.ROM    ... 中身が空の出力ファイル
MZ_1R13_DIC.ROM   ... 中身が空の出力ファイル
DISK1R13WR.OBJ    ... GET1R13用DISK I/Oアクセス・プログラム
                      (ソースはありません、TF-DOSのI/Oの古いものを改造
                      したものです)
GET1R13           ... DISK BASICで動作する"GET1R13"
GET1R13BSD        ... DISK BASICで動作する"GET1R13"のBSDファイル出力版

SHARPのDISK BASICは、フロッピーディスク上にバイナリデータを直接セーブする方法を提供していません。 また、セクタ単位で読み書きする方法も提供していません。 GET1R13は、"DISK1R13WR.OBJ"を利用して、設置してある中身が空の出力ファイルへデータを 書き込むようになっています。 使い方は、このプログラムを実行するだけです。 その後、ディスクをイメージ化して、 MZディスク用のDisk Explorerソフトウエアを利用して、ROMファイルを抜き出してください。

MS Windows上ならば、コマンドプロンプトから以下のように実行する等して、 バイナリデータをそのまま結合してください。

COPY /B MZ_1R13_K1.ROM+MZ_1R13_K2.ROM+MZ_1R13_K3.ROM+MZ_1R13_K4.ROM
            MZ_1R13_KAN.ROM

UNIX系OSならば、"cat"等で結合してください。

他に、BSDファイルを利用する方法として、GET1R13BSDを用意してみましたが、 Microsoft系BASICのようにバイナリデータを連続出力することができないので、 2文字に1文字含まれてしまう改行文字を削除する必要があります。
そのようなプログラムを用意すれば、 Disk ExplorerとGET1R13を組み合わせて、こちらを使用することもできますが、 利点は、SHARP BASICの機能のみで実行できることだけで、何もありません。

* 注意
"DISK1R13WR.OBJ"はバグがあって、write protect errorを検出した後にリカバリできません。 一度、DIRを実行してください。

2.2. ライセンス (License)

This is a public domain software. NO LIMITs, NO WARRENTALies.

古い8ビットPC専用ツールのため、パブリック・ドメインです。 但し、無保証、無責任です。
オリジナルの"GET1R13"の著作権は、オリジナルの作者にありますが、 WEBに置かれた、許諾が明確でないソフトウエアは、法的にパブリック・ドメインです。
もし、改良した場合は、パッチをいただけるとありがたいです。

2.3. ダウンロード (Download)

GET1R13_MZ2080B_V1_00.zip ... GET1R13 D88 Floppy Disk Image for SHARP DISK BASIC v1.00 (2019/07/22)


3. MZ-1R08の吸出し方法 (How to Read the ROM data of MZ-1R08)
3.1 方法1: CP/M86を用いた吸出し方法 (Method 1: Read the ROM data with the CP/M86)

MZ-1R08のデータはメモリ上に存在していますので、$40000-$5FFFFをそのままセーブするだけです。
Oh!MZ'85/5と'85/7掲載のCP/M86を持っている場合は、次の方法が使用できます。

A>DDT86
-WMZ1R08-1.ROM,4000:0,FFFF
-WMZ1R08-2.ROM,5000:0,FFFF
-^C

後は、何らかの方法でファイルをコンバートして転送し、連結します。これで完成です。
(連結には、MS Windowsコマンドプロンプトの"COPY /B"等を使用します)
このCP/M86のディスクは、X1 CP/M 5'2D 320KBフォーマットと同じです。

3.2 方法2: カセットテープを使って吸い出す方法 (Method 2: Read and Get to the Cassette Tape)

テープ版しかない、16bit BASIC MZ-1Z012を起動します。
MZ-1R08のデータはメモリ上に存在していますので、$40000-$5FFFFをそのままセーブするだけです。
$40000-$47FFF, $48000-$4FFFF, $50000-$57FFF, $58000-$5FFFF, 32KBずつ4本に分けてセーブしてください。
(Z80上の32KBバッファへ転送されてセーブされるので、分割されてややこしくなるので)
それぞれ、MZTテープイメージを作成し、 ぞれぞれの、最初の128($80)バイトのインフォーメーションブロック部が記載されたヘッダを削除し、 それらをMS Windowsコマンドプロンプトの"COPY /B"等で合成すれば、完成です。
インフォーメーション・ブロック部の属性が、 $01(OBJ)でなくて$11ですが、 セグメントの追加情報が記載されている以外は、サイズ32KB以下であれば同じです。


4. リンク集 (Link)

http://www.ne.jp/asahi/suga/junkyard/ ... sugaのジャンク部屋
MZ-2500+拡張UNIT用の"GET1R13"はありません。

以上