かずの不定期便ブログ

備忘録代わりに書きます

X68K EXPERT XSIMM10

目次

XSIMM10刺さってました

 すっかり忘れていたのですが、自分はXSIMM10を購入していました。
 背面を見るとMIDI I/Fはすぐに分かるのですが、メモリの増設スロットはIOカバーで覆われている為、存在に気が付かなかったです。てこの原理を利用してボードを刺す例の三角のプラスチックが付いてないし、外から目視では気が付きません。
 ふとメモリ不足なブートイメージのautoexec.batをきっかけに、よーく当時を振り返ると、RAMDISKに1MBを設定してた記憶はあり(autoexec.batに記述あったし)、確かZMUSICでPCMバッファを多めに確保して、このRAMDISK上でZMSを書いてたなぁ(ZMUSICのMMLの事です)。と思ってまさかメモリ増設してた?私はそんなセレブだった?実は本マシンにXellent30sも載せてます。順番からしてXellentじゃなくてHDDの次はメモリでしょう?

背面のスロットカバーを開けた

 確認すべくMIDIのスロットカバー及びメモリ(元から付属)のスロットカバーを外します。
 これがその写真。ありました。メモリボードっぽいのが。斜めにSIMMっぽいのが刺さってます。
f:id:spend-carefree:20190827212115j:plain
 写真は載せてませんが、斜めからのぞき込むとXSIMM10って印刷されてます。一体当時いくら出して購入したのだろうか?バイトの稼ぎ全部X68K関連に消えてた気がする。なんてセレブだったのだ。

XSIMM10のメモリ容量の調査作業

 はたして、私は何MB増設したのでしょうか?買った記憶すら飛んでるのにサイズまで覚えてません。今からは考えられないですけど、実装メモリサイズは手で設定(switch.xを使ってSRAMに記憶させます)するので、所有者がメモリを増設したら実装サイズを設定しない限り少ないままでした。なんとか知る方法はないだろうかと。XSIMM10はSIMMスロットが4スロットあるそうです。
 ここ参照。
 写真は載せませんが、手前のスロットにSIMMが刺さってません。多分2/4使ってます。因みに刺さってるメモリの型番から容量を調べようとしましたが見つけられませんでした。こんな古いメモリのデータシートなんて公開してないよね。。。多分日立のマークです。KOREA製でした。
 というわけでソフト的に調べるしかないです。メモリチェックプログラムなら分かるかもしれないので、メモリチェッカを探しました。chkramがありました。ここです。今でも公開されてる方に感謝です。

chkram.x

 ダウンロードしたファイルをRaSCSIを動作させているラズパイのディスクにコピーして、RASDRV経由でchkram.xをシステムディスクのBIN dirへコピーします。そしてchkramを実行。SRAMに設定した容量までしかチェックしません(想定内)。
 次にswitch.xで最大容量の12MBに設定して同様に実行します。実装されてない領域へアクセスしたら暴走するかな?と思いきや、以下の写真の様な白帯で済みました。(尚、本写真は撮りなおしてます)
f:id:spend-carefree:20190827220136j:plain
暴走はせずに「バスエラーが発生しました」と出ます。赤字で写真に書きましたがAの位置でバスエラーが発生したようです。グラフがCまであるので、グラフの16進数の数値はおそらくメモリのチェック位置だと分かります。Aへアドレスが行ったときにエラーが出ることから実装量は10MBである気がします。この後、switch.xで10MBと設定して再度実行すると無事完走します。(再起動せずにメモリ容量を変えられることにちょっと驚きです。)
 autoexec.batのコメントアウトしたGRAD(RAMDISKドライバ)とwcache(キャッシュドライバ)を元に戻し、再起動すると無事に動きました!。
f:id:spend-carefree:20190827223436j:plain
 メモリ増設してた事は想定外でよっしゃー!な感じであるわけですが、まだ問題が残っています。
 Xellent30の環境を作れてないです。実は残っていたOS起動フロッピーのいくつかはXellent30のデバイスドライバが登録されてないので実行できませんの類のエラーが出ていたディスクもありました。Xellent30sの付属フロッピーにあるSRAMに登録するプログラムch30inst.xでch30.sysをインストールすると、SxSIのブートプログラムが飛んじゃうようで共存が出来ないようです。でも共存してた痕跡があるように見えるんですよね。ドキュメントにはSxSIでの動作は保証できないって記載はあるのですが、68030モードに切り替えて運用とかしてた記憶があるのです。同梱されているXellent30動作チェッカchk_xel.xは正常終了するのでボードが故障している可能性は低いですし。
 また記憶が蘇るのを期待しつつ、昔のゲームでもやって暫く休憩します。マイコンソフトのJOYSTICK、XE-1STがあったのですが、ボタンの反応が悪いです。ドラゴンスピリットはAREA1で死にました。

dskbench.x

 ふとRaSCSIによるDISK速度ってどの程度でるのだろうか?と思いやってみました。GIMONSさんのところに載っている写真を見るとシーケンシャルで1MB/sec程度出ているようです。但し機体はX68030の様です。
 コマンドの使い方は以下です。
dskbench ID:

X680x0 DISK benchmark version 0.44 by bisco
Original program:
ASPI SCSI benchmark test V0.4 
 copyright(c) by TsuruZoh Tachibanaya, Sep.02,1994

  Initiator is ID7     : SHARP   X68000          0001  Other-Port
  Target device is ID0 : RaSCSI  PRODRIVE LPS160S0145  SCSI2 
  512 Bytes per sector, capacity is 160 MBytes.
------------------------+-------------+-------+-------+-------+-------+-------+
        Test mode       :    result   |  Poor |   OK  |  Good | Great | Superb|
------------------------+-------------+-------+-------+-------+-------+-------+
Test unit ready command |    1.7[ms]  :*************
No motion seek command  |    2.9[ms]  :*******
Average latency Time    |    2.0[ms]  :************************************
------------------------+-------------+-------+-------+-------+-------+-------+
Sequential seek command |    4.1[ms]  :************************
Random seek command     |    4.1[ms]  :************************************
------------------------+-------------+-------+-------+-------+-------+-------+
Seq.Read/Start   512B/rd|   89.9[KB/s]:********
Seq.Read/Start 16384B/rd|  352.0[KB/s]:***
Seq.Read/Start 65536B/rd|  384.0[KB/s]:***
------------------------+-------------+-------+-------+-------+-------+-------+
Seq.Read/ End    512B/rd|   89.8[KB/s]:********
Seq.Read/ End  16384B/rd|  352.0[KB/s]:***
Seq.Read/ End  65536B/rd|  384.0[KB/s]:***
------------------------+-------------+-------+-------+-------+-------+-------+
Random  Read     512B/rd|   41.6[KB/s]:****************************************
Random  Read   16384B/rd|  307.2[KB/s]:*************
Random  Read   65536B/rd|  371.2[KB/s]:*****
------------------------+-------------+-------+-------+-------+-------+-------+

大分遅いです。68000の10MHzだからかなぁ。。。運用当時は17MHzへクロックアップしてたし10MHz時はこんなものかなぁ。私の使っているラズパイは3B+で性能はGIMONSさんと同じか早いはずなので、X68側がボトルネックだとは思うのですが。

NAS上に置いたイメージをRaSCSIドライブにする

 次に興味本位でNAS上に置いたイメージをRaSCSIドライブに設定してベンチを測定してみました。(実はX68側がネックならNASに置いてあっても同じ速度じゃないか?と思ったのです。NASは割と高速でGIGA接続でシーケンシャルなら100Mbyte/sec出るものです)
 シーケンシャルならSDカード上のイメージとあまり差はなく、ランダムが遅いですね。NASだからここは致し方がないです。

X680x0 DISK benchmark version 0.44 by bisco
Original program:
ASPI SCSI benchmark test V0.4 
 copyright(c) by TsuruZoh Tachibanaya, Sep.02,1994

  Initiator is ID7     : SHARP   X68000          0001  Other-Port
  Target device is ID4 : RaSCSI  M2513A          0145  SCSI2 Removable
  512 Bytes per sector, capacity is 217 MBytes.
------------------------+-------------+-------+-------+-------+-------+-------+
        Test mode       :    result   |  Poor |   OK  |  Good | Great | Superb|
------------------------+-------------+-------+-------+-------+-------+-------+
Test unit ready command |    1.7[ms]  :*************
No motion seek command  |    2.9[ms]  :*******
Average latency Time    |    2.0[ms]  :************************************
------------------------+-------------+-------+-------+-------+-------+-------+
Sequential seek command |    4.1[ms]  :************************
Random seek command     |    4.2[ms]  :************************************
------------------------+-------------+-------+-------+-------+-------+-------+
Seq.Read/Start   512B/rd|   87.8[KB/s]:*******
Seq.Read/Start 16384B/rd|  316.8[KB/s]:***
Seq.Read/Start 65536B/rd|  384.0[KB/s]:***
------------------------+-------------+-------+-------+-------+-------+-------+
Seq.Read/ End    512B/rd|   86.1[KB/s]:*******
Seq.Read/ End  16384B/rd|  323.2[KB/s]:***
Seq.Read/ End  65536B/rd|  384.0[KB/s]:***
------------------------+-------------+-------+-------+-------+-------+-------+
Random  Read     512B/rd|    4.9[KB/s]:*****
Random  Read   16384B/rd|   60.8[KB/s]:***
Random  Read   65536B/rd|  256.0[KB/s]:****
------------------------+-------------+-------+-------+-------+-------+-------+

RaSCSIでNAS上のファイルをSCSIイメージとして自動起動させる方法

 実は少し手間取りました。RaSCSIとは関係ないですが、備忘録として解決方法を記載しておきます。
 ラズパイ起動後にmountコマンドでNASのマウントを行う事は簡単でした。しかしながら、ラズパイ起動時にNASの自動マウント及びサービス起動させているRaSCSIが起動に失敗するというものでした。
 以下に方法を記載します。

rootになる
$sudo su -
$mkdir /mnt/landisk
$cd /etc
$vi fstab

fstabの中身
//192.168.0.11/disk1 /mnt/landisk cifs vers=1.0,username=kazuhiko,password=xxxx,uid=pi,gid=pi,file_mode=0755,dir_mode=0755 0 0

uid, gidのユーザーアカウントをpiとすることで、piユーザーのファイル権限としてNASが見える。
vers=1.0を付けないと
No dialect specified on mount. Default has changed to a more secure dialect, SMB2.1 or later (e.g. SMB3), from CIFS (SMB1). To use the less secure SMB1 dialect to access old servers which do not support SMB3 (or SMB2.1) specify vers=1.0 on mount.
と出てマウントできなかった。

 RaSCSIの設定でrasmout.shにNAS上のdiskを指定したが、rascsi.serviceが起動に失敗する。
 まだNASのマウントが終わってないからのようでした。なのでNASマウント後にサービスが起動されるよう以下のファイルを修正。

/etc/systemd/system/rascsi.service

After=syslog.target
→
After=syslog.target network.target remote-fs.target

とネットワーク系を追加。これでマウント後にRaSCSIサービスが起動される。
参考URL:
https://qiita.com/a_yasui/items/f2d8b57aa616e523ede4

これらの事はdmesgコマンドでブートログを追えば原因は大体わかりますが対処方法はネット検索で探しました。

では、今日はココまでです。
また何か進捗がありましたら記事を書きます。

前回の記事
spend-carefree.hatenablog.com