ページ

2025年7月29日火曜日

PiStorm install on Amiga

PISTORMとはRaspberry Piを使った68KCPU emulatorです。AMIGA専用というわけでもない様で、X68000などでも使用実績があるという話も聞き及びます。使用するRaspberry Piは"Raspberry Pi PICO 2 W"(Pi2W)です。PISTORMがサポートしているRaspberry Piは限られていますので、あらかじめ調査が必要です。AMIGA実機に組み込んだ場合に周囲と衝突しない事を考えるとやはり小さなRaspberry Piという選択になりました。以下、個人的な忘備録であり、あくまでも2025年段階の話ですので変わる可能性があります。

PISTORMを動作させるには目下、Emu68と今回のようなソースコードからコンパイルする2通りの方法があります。個人的な感想を述べれば、Emu68の方が簡単ですね。

PiStromに使うプログラムをソースコードからコンパイルするにはRasberry Pi OSが最近の物ではエラーを起こしてしまいます。 少し古い"BullsEye"でもエラーとなります。 もう少し古い"Buster" versionでないとコンパイルが通りませんでした。 "Buster"を入手するには以下を参照しました。
https://monomonotech.jp/kurage/memo/m211208_raspi_os_install_past.html
直接その場所も記しておきます。
https://downloads.raspberrypi.org/raspios_armhf/images/raspios_armhf-2021-05-28/
からZIPファイルをダウンロードします。 ここは2021年5月版一択でして、同じ"BUSTER" versionでも古い物になると、エラーでコンパイルが通りません。

これをRaspberry Pi ImagerでSD cardに先ほどダウンロードしたZIPファイルを指定して書き込みます。

具体的にはCHOOSE OSで「カスタムイメージを使う」を選択してSD cardに書き込みします。
なお、その際にSSHとWiFiの設定は済ませておいた方が便利です。後でもそれらの設定はできるのですが、Pi2WにUSBキーボードを接続しないといけません。そのUSBケーブルもMicroUSB変換しないとPi2Wに接続できません。
Pi2WとPISTORMを2列のソケットで結合します。

そしてRaspberry Piの方に先ほど書き込みの終わったSD Cardを挿入してWindowsマシンとUSBケーブルで接続します。 あらかじめWiFiを設定しているとPi2Wはブート時に自動的にWiFiに接続されるのでSSHでホストマシンから操作できます。なおPi2WのIPアドレスを調べるには"Advanced_IP_Scanner"などを使うといいです。Windows10上のSSHクライアントはTeraTermを使いました。

Pi2Wにログインし以下の入力をします。

sudo apt-get update

sudo apt-get install git libsdl2-dev

git clone https://github.com/captain-amygdala/pistorm.git pistorm

cd pistorm

make

エラーが出ていなければ、"emulator"という実行ファイルができているはずです。

次にOPENOCDのINSTALL

sudo apt-get install openocd

OPENCDでは無くてOPENCOCDですので。これを勘違いして1月程悩みました。

その後

./flash.sh

ここでCPLDが見当たらないなどというエラーが出た場合はPi2WとPISTORMを接続するソケットがずれてないかを確認して下さい。ここでflashするのはPISTORM上のCPLDにファームウェアを書き込んでいるわけです。ここまでエラーを出さずに完了すると、AMIGAの実機のCPU68000と交換して使うことができるようになります。

sudo ./emulator

で動作するようなります。ただそれではAMIGAの起動時にPISTORMが起動しないので自動起動するように設定します。

sudo vim /etc/systemd/system/pistorm.service

に以下の内容を書き込みます。

[Unit]
Description=PiStorm emulator
After=network.target
StartLimitIntervalSec=0
[Service]
Type=simple
Restart=always
RestartSec=1
User=root
ExecStart=/home/pi/pistorm/emulator
WorkingDirectory=/home/pi/pistorm
[Install]
WantedBy=multi-user.target

ここまででも、エミュレーターとして動作するのですが、設定ファイル(default.cfg)に便利な設定をしてしてゆきます。ここでもかなり悩みました。まず、default.cfgがありません。それにはamiga.cfgというファイルがありますので、これをコピーします。

cp amiga.cfg default.cfg

この設定では同じディレクトリーにkick.romが無いといけないので、kickstartファイルを入手出来ない場合は、上記の設定内容を書き換えるか、設定してはいけません。 個人的にはAmigaForeverからkickstart ROMファイルを購入しました。AmigaForeverは、2025年6月頃に最新のアップデートがあったようで、最新版を入手しました。 ところがdefault.cfgを作ってからpistormがうまく動作しなくなりました。なので、その内容を調査してみました。すると

map type=rom address=0xF80000 size=0x80000 file=kick.rom ovl=0 id=kickstart

の行をコメントアウトして

#map type=rom address=0xF80000 size=0x80000 file=kick.rom ovl=0 id=kickstart

とするとpistormが動作するようになりました。

この行が何をしているかというとkick ROMファイルを参照して、OSを起動しようとしている箇所です。これで何日か悩みました。 でkick.romファイルが壊れているという結論になりました。そこで某所からダウンロードしたkickstart_2.0.romファイルなるものを使いました。 すると再びpitormが動作開始しました。なおPi2Wにkick.romファイルを転送するには初めてWinSCPを使いましたが、これは便利ですねぇ。 Pi2Wのpistormディレクトリに転送したkickstart_2.0.romファイルの名称をkick.romに変更します。

mv kickstart_2.0.rom kick.rom

ここで簡単にAmigaOSの説明をしますとkickstartというのはMS-DOSのようなものです。まあOSです。そしてその上に乗っかるのがWorkBenchです。これはMS-DOSの上に乗っかったWindowsという例えでしょうか。まあGUI-interfaceですね。でAmigaOSには世代がありまして、

最初のAmiga1000には
kickstart1.2
次の世代Amiga500,Amiga2000には
kickstar1.3

という具合です。ですのでAmiga500などが新しいOSを使おうとするとkickstart2.xなりのROMチップを海外から個人輸入しないといけませんでした。それを思うとネットからダウンロードしたファイルを使えるのですから便利になりました。

2025年7月24日木曜日

Amiga2000 motherboard repair

ジャンク品だというAmiga2000を手に入れた。筐体を開けてマザーボードを取り出してみると、案の定、電池の液漏れのため基板・CPUからKickROMにかけて青い飛沫が飛散していた。電源をオンにするとPowerLEDとFloppy DriveのLEDは点灯するものの、VIDEO OUTPUTは所謂"BLACK SCREEN"だった。
(1)電池の液漏れは酢で洗うといいのだそうだ。そこはそれとして、まずCPUとKICK ROM SOCKETのPINがひどく青くなっているので、2個のSOCKETをマザーボードから外して新品に交換した。そうそう、キーボード端子のDIN5PIN CONNECTORも青くなっていたので交換した。
(2)AMIGA2000の回路図を入手した。こういう事は回路図がないことには作業できない。海外製の古いコンピュータの回路図ってネットにおいてあるので助かりますが、日本の古いコンピュータの回路図ってネット上に無いのよね。マザーボード上の68000CPUから伸びる信号線の断線を確認してゆくと、次々と断線が判明した。
(3)断線をジャンパーで補修したので電源ON!。あ、"RED SCREEN"になった。その原因はCPUからKICK ROMに伸びる断線を一か所、補修し忘れていたためでした。これを治して電源ON!
(4)VIDEO OUTPUTは"WHITE SCREEN"になった。これは困りました。白は点検箇所がたくさんあるんですよ。数日間、考えていましたが、良くわからない。気分転換のつもりで電解コンデンサを新品に交換してみました。電源ON!
(5)VIDEO OUTPUTは"YELLOW SCREEN"になった。うーん。電池の液漏れで68000CPUが壊れたと思いました。そこで間に合わせに、以前、AMIGA500で設定していた68000 EMULATORのPISTORMを使ってみました。PISTORMを68000と交換して、電源ON!
(6)VIDEO OUTPUTは"GREEN SCREEN"になった。ここまで来るとdiagROMを使えばいいだろうと思ったのですが、これを注文すると1か月近く待たなくちゃならん。仕方なく主としてメモリー回路部分とにらめっこを続けたのだけど、断線は発見できなかった。ひょっとするとメモりーチップの故障かもしれん。メモリーチップはソケット使ってないからマザーボードから取り外すのが大変だ。数日間悩みながらぼんやりとマザーボードを眺めていたら、変なことに気が付きました。68KCPUの64PINの中で2箇所だけ半田がついてない。幾度か目を凝らして見直しましたが、間違い無い。高齢になると目がよくみえなくなるんですよね。これを補修して電源ON!
(7)VIDEO OUTPUTは"KICKSTART"になった。