PC-8001 の BASIC ROMをVer1.0 → Ver1.1にする

PC-8001の BASIC ROM Ver 1.0 は、いくつかのバグを抱えています。有名なのはBASICのプログラムを入力する際に、行末の1文字が保存されないとという問題です。これは入力時に スペースでも1文字入れれば回避できるので、かわいいバグなのですが、今回一つ問題な箇所にぶつかりました。それは拡張ROM関連の問題です。

まずその前に、PC-8001 を含む レトロPCで、問題の1つ「カセットテープによるプログラムの保存」です。ターゲットマシンのレトロPCのプログラムを開発する際に、さすがに実機で行うのは気力・体力が持たないので、Windows のテキストエディタと Z80 のアセンブラという快適な開発環境 ( こちらは、また別の機会に紹介します。) で行っているわけですが、エミュレータで実行する分にはいいですが、実機で検証しようとすると、CMT( カセットデータ) 形式で保存したバイナリデータを wavデータにして、カセットに適切な音量で録音。そして当時のデータレコーダで実機に LOAD (PC-8001 は CLOAD) して実行という手間がかかってしまいます。

これを解決する手段として、SD-CARDに保存したCMT形式のファイルを実機で短時間でロードできる 基板を開発した猛者 ( マニアックな方) がいまして、それを利用させていただこうというのが今回のトライです。

GitHub – yanataka60/PC-8001_SD: PC-8001でSD-CARDからCMT形式ファイルのロード、セーブ機能を実現するものです。

さて、話を戻しますが、実はこの素晴らしいデバイスを利用するにあたって、BASIC ROM のバージョンが 1.0 だとバグにより、前述の拡張ROMが認識できないため初期化がされないという問題があるそうで ( 回避方法はありますが ひと手間必要) 、それならばと Ver1.1 にすることにしました。

バイナリデータで違いを比較

PC-8001のBASIC ROM は、下の写真のように 8KB ROM × 3 = 24KB で構成されています。

(その下の空いているソケットは拡張ROMを刺すところ 8KB)

このどの部分に差異があるか、吸い出した ROMデータからバイナリ・エディタで確認します。

ちなみに、それぞれの先頭アドレスは 8KBなので、 $0000, $2000, $4000 です。

ROM0 ($0000-$1FFF)

ROM0 の範囲では、 14バイト 違う箇所がありました。

ROM1 ($2000-$3FFF)

この範囲には、差異はありませんでした。

ROM2($4000-$5FFF)

28バイト違う箇所がありました。

ちなみに、末尾付近を逆コンパイルしたところ、

5FED: INC HL
5FEE: LD A,(HL)
5FEF: CP 42h ; 'B'
5FF1: RET

となっていたので、拡張ROMの仕様として 電源投入時に先頭に $AB があったら拡張ROMのプログラムを実行するというような仕様があったとおもうので、その話の部分かなと勝手に想像。

$17A5で cp 41h した後に、$17A9 で call $5FED されていて、 次が Bなら特別処理という流れになっているので、おそらく間違いないでしょう。

交換対象のROM

ということで、交換対象の ROM は 0と2 の二つであることが判明。

EPROMとEPROMライターを準備

レトロな EPROM の読み書きができるものは、限られているので、Webで事前にリサーチ。

GQ-4×4 というのがいいらしい。

Amazon.co.jp: PRG-112 True USB GQ-4X V4 (GQ-4X4) Programmer + ADP-054 16 Bit EPROM 40/42 pin : パソコン・周辺機器

ちょいと高いけどね。 ちなみに BASIC ROM Ver1.1になっている PC-8001をヤフオクで落としたほうが安い (笑)

でも、それでは好奇心が満たされないので、ROMを焼くことにする!

因みに、サポートしているEPROMのリストは下記の通り。2732があるので大丈夫かな。

https://www.mcumall.com/comersus/store/mcumall_TrueUSBWillemsupportICs.asp

ツールのダウンロード

MCUmall a online store for cost for value mcu EPROM EEPROM ATMEL PIC programmer

https://www.mcumall.com/comersus/store/mcumall_download.asp

#2 の USBドライバをダウンロードして、

USBドライバのインストール

GQUSBdriver3.0Win10.64bit.EXEを右クリックして、管理者として実行します。

コメントを残す

CAPTCHA