ジャンクMSXのキーボードも動きました

前回まででCPUや映像、音声出力の動作については動作確認が取れました。

続いてキーボードの動作確認&掃除です。

購入時は以下の写真のようにホコリまみれでした・・

キーボードは隙間から様々なゴミが入り込むので汚れも溜まりやすい箇所ですよね

ひとまず動作確認です。本体が起動することを確認したのでキーボードを接続してキーが効くのか試してみました。

一通りのキーを押してみたのですが、反応が悪いキーもなくキーボードも正常に動作していそうです。FS-A1は1986年発売とのことで、38年も前のものなので可動部は傷んでいるかなと思っていたのですが正常動作するものですね。ラッキーでした。

…続きを読む

ジャンクMSXが動きました

前回に引き続き、MSXの修理です。前回の記事はこちら。

まずは起動確認をしたいので電源周りをいじります。アダプタが付属していなかったので、別のアダプタから給電するようにします。改造にあたってはにがさんのHPを参考にしました。

FS-A1のアダプタは3極あり、AC18V、DC9Vの2系統あります。ACを供給するアダプタなんてかなり珍しいですね。AC18Vは±12Vの生成に使われているそうです。±12VはハイブリッドICとカットリッジスロットに使われているようで、この±12Vを生成しないと映像と音が出ないそうです。

まずは電源部の大きなヒートシンクを取り外してみました。

よくよく見てみると、電解コンデンサが液漏れしているような跡がありました。接着剤?この容量のものは手持ちになかったので後で交換しようと思います。

…続きを読む

ジャンクMSXを買いました

ヤフオクでジャンクMSXを購入しました。Panasonic製のFS-A1というFDDのないMSX2です。

FDDありとなしとではヤフオクの価格がだいぶ違いますようです。FDDなしのMSX2だと1万円くらい、FDDありだとMSX2でも1.5万〜2万くらいしますね。

しかも、この FS-A1 の電源アダプタは特殊で、AC18VとDC9Vという聞いたことがない3端子のものですが、今回はアダプタなしのものを買ったのでかなり安く購入することができました。

この FS-A1 を選んだ理由の1つは、解析されて回路図が公開されていることでした。そのサイトはすでに閉鎖されているのですが、archive.org で回路図を取得することができます。先人の偉業に感謝。

また、MSX界隈では有名人のにがさんのHPで、FS-A1の電源を単電源化する改造方法が載っていたので、これを参考に電源周りも改造しようと思っています。

今回の目的は修理できるようなら修理して使い、修理できなかったらROMの吸い出しと主要な部品を取り外そうと思っていたので、起動すればラッキーという感じで購入してみました。

購入したMSXがこちら。約8000円くらいでした。

なつかしい・・。Panasonic製のMSX(FS-A1WSX, FS-A1GT)を使っていたので、キータッチの感じが似てますね。

年代物なので、端子の腐食やホコリなど、汚れがそこそこある状態でした。

アダプタもなく動作確認できないので、早速開けてみます。

…続きを読む

格安SPI/I2C ReaderをLinuxで使う

仕事で SPI Flash の読み書きが必要になって、個人的にもSPI Flashのライターが欲しいなと思っていたので、色々と探してみたらAmazonで格安のSPI Flash / I2C リーダライタ を発見。

買ったときの値段は忘れてしまったけど、現在の価格は送料込みでたったの 325円 !!
怪しいくらい安い。でもこのくらいなら失敗しても痛くないので買ってみた。
中国からの発送で2週間位かかったと思う。

見た目はこんな感じ。写真は撮ってないけど他にもSOP-DIPのピッチ変換基板が付いてきた。

こういうDIPソケットってめちゃくちゃ高かった気がするから、貧相な安物だろうと思っていたら、ちゃんとTEXTOOLだった。すごいな。この値段っておかしくないか?

裏面はこんな感じ。

裏面のシルクのように、ソケットの位置でSPIフラッシュとI2CのEEPROMを使い分けるようになっている。TX, RXもあり、USBシリアルとしても使えるらしい。

Windows版のプログラムは以下からダウンロードできるみたい。おそらくここがオフィシャル?のツールだと思う。

英語ページよりも中国語ページのほうが内容が充実しているので、中国語ページをgoogle翻訳したものを見るといいかも。

ただ、上記でダウンロードできるツールは、いくつかのアンチウィルスソフトで「トロイの木馬」と検出されるらしい。誤検知らしいんだけど、こういう前例があると会社では使えないよね。

色々探してみると、Linux版のツールも見つかった。

SPI Flashライタツール

どちらも CLI のツール。flashromの方は ubuntu のリポジトリにも入っている。

flashromの方が対応しているFlashデバイスが多く、SFDP にも対応しているみたいなので、対応リストに入っていないFlashでも使える可能性は高い。基本的にはこちらを使っていれば問題はないと思う。

ただ、どちらのツールも4byteアドレスには対応していないので、16MBまでのFlashしか読み書きできない。
また、クロックがそれほど速くないせいか、大容量のFlashだと読み書きに結構時間がかかるようだ。

I2C EEPROMライタツール

Linux用で見つけられた唯一のツール。

24c32 と 24c64 にのみ対応している?のかな?
違う容量のEEPROMの場合はソースの修正が必要になるかも。

パーツボックスに転がっていた 24LC64 は問題なく Read/Writer/Erase できていそうだった。
24LC64 (8kB) で Read が 0.3 秒、 Erase が 3.3 秒、 Write も 3.3 秒だった。

USB I2C kernel driver

kernelドライバとして実装されているので、kernelが持っているI2Cデバイスのドライバ(温度センサやタッチパネルとか)が使える。

これは試してみてはいない。

USBシリアル kernel driver

USBシリアルのドライバとしてはすでにメインラインに取り込まれている。ubuntuでも使えるかも。

シリアルとSPI Flashライタツールを同時に使うことはできるのかなぁ。
kernelドライバとlibusbで同時に1つのデバイスを操作できるのだろうか。

 

軽く使ってみた感じでは、CLIであればLinuxでもまぁまぁ使えることがわかった。値段の割にはちゃんと使えるので、ライターが欲しい人にはいいかもしれない。

でも裸だと雑に扱えないからケースがほしいなぁ。アクリルで作ってみようかな。

ZeroPlus LAP-C の EEPROM を Linux から書き換える

なんの脈略もなくロジアナの改造ネタです。

ZEROPLUS 社製のロジアナ LAP-C の型番を書き換えるために Windows を起動したものの Windows7 では書き換え用のドライバがインストールできず、悔しくて Linux 用の書き換えツールを探したが、ちょっと使いにくかったので改造して github で公開したぜという話です。

 

だいぶ前に買って以来、部屋に技術者っぽい雰囲気を漂わせるためのオブジェとして大活躍だったロジアナの LAP-C16032 ですが、最近使いたい用途が出てきたので引っ張り出してきました。

それでふと、LAP-C16032 の内蔵 EEPROM を書き換えることで上位機種相当に改造できることを思い出して、本来の用途そっちのけでまず改造をすることにしました。

情報元は Illegal function call さんの以下のエントリです。

# Illegal function call とは何て懐かしい響き・・・

早速EEPROMを書き換えようとしたのですが、Windows 7 では上記エントリで配布されている libusb のドライバがインストールできませんでした。

Windows XP 機なんて持ってないし、XP mode インストールするのも面倒なので、Linux で書き換えることにしました。

上記エントリに

『今回はGL660USBを解析した外人さんがいるが、
元はLinux用だったり、ちょっと扱いが面倒なので、こんなソフトを作ってみた。』

って書いてあったので、元になる Linux のコードがあるんだろうと探してみたところ・・・見つけました。

zerominus という Linux から LAP-C を叩いて計測データを取り出そうというプロジェクトのようです。

そのプロジェクトの中に  zeroprog という EEPROM を読み書きするツールがあります。きっとこれが元ネタだと思います。

早速ビルドして使ってみました。

一応使えるのは使えるのですが、すんなりビルドできなかったり、バックアップはできるのにリストアができなかったり、バックアップファイルのエンディアンの問題でダンプが読みにくかったりと、いろいろ使いにくかったのでチャチャッと改良してみました。改造したコードは github で公開しています。

ビルド方法などは上記ベージの README.md に書いてあるので割愛します。

リトルエンディアンに変更しているのでバックアップファイルを hexdump すると、文字列が普通に読めます。

オリジナル zeroprog

00000010 5a 1b 52 45 50 4f 55 4c 20 53 65 54 68 63 6f 6e |Z.REPOUL SeThcon|
00000020 6f 6c 79 67 43 20 2c 4f 4c 2e 44 54 ff ff ff ff |olygC ,OL.DT....|

改造後 zeroprog

00000010 1b 5a 45 52 4f 50 4c 55 53 20 54 65 63 68 6e 6f |.ZEROPLUS Techno|
00000020 6c 6f 67 79 20 43 4f 2c 2e 4c 54 44 ff ff ff ff |logy CO,.LTD....|

また、一番重要な restore コマンド (-r) を実装したのでいくらでも失敗ができます。

–help で resutore コマンドが出てきていたのでてっきり使えると思って安心して書き換えていたのですが、いざ restore コマンドを使ったら

// not yet implemented, sorry

なんて冷たくあしらわれてしまったので、仕方なく実装しました。

で、結果的に Product ID と Model string を変更することで LAP-C16128 として問題なく動作させることができましたとさ。めでたしめでたし。