PC98とGALライタの話
2024.11.13
'90年代初め頃、PALやGALなどのPLDが普及してきて(少なくとも仕事では使っていた)、将来TTLなどのロジックICは無くなるだろうと言われていた。
MMI社(当時)のデータブックを見ると、PALがTTLをやっつけている漫画が載っていたっけ。
30年以上経過したが、TTLは無くなってないけどな。品種は減ったり値段は上がったけれど。保守用としても無くなっては困る。
ロジックは集積できても、バッファ等はどうしても必要な場合が多い。
TTLより先にPALやGALが滅びてしまったようである。GALは、本家のLatticeはとっくの昔にやめたけど、ATMELは今でも製造中。かつては、AMI社、AMD社、TI社なども類似品を作っていた。
さて、その'90年代初め頃にアマチュアがGALを使おうとしたら、手頃な値段の書込機は無かった。それでなかなかアマチュアには手が出なかったのである。
書込機はメーカーが認定した物でないと公式には使えず、どうしても高価になっていた。何十万とか何百万。
そこで自作したいとなるわけだが、書込仕様は公開されてない。契約した書込機のメーカーにしか開示されていなかった。
じつは自分の当時の勤務先はそのメーカーのひとつだったのだが、棚にはファイルがたくさん並んでいて、書込方式がよく変わるだの何だのという話を担当者から聞いた事がある程度。
何か安定しない要素があるのか、改良しながらやっているのか知らないが、そんな状態だから下手に公開してしまうと、バージョン違いなどで問題が起きる可能性があったのだろう。
いまのようにネットで即時に情報が更新されるような時代ではなかった。
それでも一部の有志がチャレンジしていて、トラ技にはPALの書込機の製作記事が載った。その後、GALの書込機の製作記事とGAL用アセンブラの頒布があった。そのソフトは有償で配布されたので購入した。送金したら、フロッピーが送られてきたのである。
ソフトは準備できたが、GALライタは自作するしかない。
そこでPC-9801に8255ボードを作る必要が生じた。8255ボードからフラットケーブルを通して、GALライタの基板につながる。
実際に8255ボードと、GALライタの基板を自分で組み立ててみたが、なかなか正常に動かずに苦労した。何が悪かったのか覚えていないけど、結局使えるようにはならなかったと思う。
I/Oのアドレスも確かFM音源か何かと干渉していたんじゃなかったか。音が鳴らなくなっておかしいなあと、自作ボードを抜いたら鳴るようになった記憶。アドレスを変えて、プログラムのほうも当然変更して・・・今のような便利なPnP以前の世界だった。
そもそもPC-9801で自由に使えるI/Oアドレスは限られていた。色々工夫しながら使っていたのである。
その後もPICマイコンの初め頃に書き込み機を作ったがうまくいかなかったりして苦労しており、書き込み機なんか自作しないで既製品を買ってしまえというのが持論。そんな物に時間を使うなという意味で。
パラレルポートなんかその後PCから無くなったし。(有れば有ったで便利だったのになあ)
結局GALライタがうまく動くようになったのは、再度作り直した後か、あるいは記憶の確かなところでは「えるむ」のChaNさん作のライターを組み立てたら成功したのは覚えている。PC98につないで使った。確かプリンタポート用だったと思う。
これのおかげで「キーボード切替器」を作る事ができた。
PC98用の8255ボードは、他にもROMライターを作る為にも使おうとして当時実験をしていた。
しかしなかなかうまくいかず苦しんでいた。
結局、フラットケーブルがクセモノだ。
クロストークなど不安定となる要素が多い。たとえばアドレスのビット変化が多いタイミング(00FFhから0100hへの変化時など)でノイズが増加しておかしくなってしまう。
ケーブルが長いのも問題だから、最低限に切り詰めた。それでも改善しない。
さらに、50芯のうち半分をGNDにした。1本おきにGNDになるように、偶数だったか奇数だったか忘れたけどその列のピンを全部GNDにした。これである程度のシールドとGNDの強化にはなったのだが、まだ不安定で、最終的にはバッファを入れて解決したような気がする。
フラットケーブルをツイスト線に変えたような記憶も有る。だけど拾ってきたツイスト線のフラットケーブルは40芯しかなかった。そこでまた改造をしたかもしれないけど覚えてない。
信号の動作をゆっくりにするのも解決策のひとつ。だけど実用性は無い。
そもそもROMライタを作ろうというのが間違いで、前に書いたように完成品を買ったほうが早い。それを自作する時間をとられるな。
PC98の前にMSXでROMライタを自作して完成していた。在学中に自動車学校を挫折してしまい、就職してから通っていた自動車学校の待ち時間に、趣味の設計など好き勝手に過ごしていた。その中で設計を進めたのがそれ。
本当に原始的なやり方で、2764の1バイトごとに50mSのパルスをかけて書き込むというやつ。それしか知らなかった。1個(8KB)書くのに6分ぐらいかかったか。終わったときには2764が熱くなっていた。
会社でROMライタの経験者である先輩に色々と教わった。1msのパルスをかけるやり方とか。書き込めたように見えても放置しておくと消えてしまった事があるとか。逆差しやズレ差しはどうやって検知するか、などなど。
まあ、いずれにしても今では思い出の中だ。
今でこそGALでも何でも書き込める装置を持っているけど、あの頃は本当に不便だった。何もできなかった。
そういえば当時CPLDやFPGAは、ほぼアマチュア向けではなかった。開発用のソフトだって相当高価なもの。入門書を買って読むのが精一杯。その入門書の企画でALTERAのサンプルCPLDをもらえるというのがあって、何やかんやで3個もらったが、コンパイラも書き込み器も持ってないのに無用の長物だった。
最初はXILINXから使い始めたっけ。今のような集積度はなかった。色々と制約もあった。コンフィグROMは高価なのにワンタイムでもったいないから、EPROMが使えるエミュレータも自作した。
MMI社(当時)のデータブックを見ると、PALがTTLをやっつけている漫画が載っていたっけ。
30年以上経過したが、TTLは無くなってないけどな。品種は減ったり値段は上がったけれど。保守用としても無くなっては困る。
ロジックは集積できても、バッファ等はどうしても必要な場合が多い。
TTLより先にPALやGALが滅びてしまったようである。GALは、本家のLatticeはとっくの昔にやめたけど、ATMELは今でも製造中。かつては、AMI社、AMD社、TI社なども類似品を作っていた。
さて、その'90年代初め頃にアマチュアがGALを使おうとしたら、手頃な値段の書込機は無かった。それでなかなかアマチュアには手が出なかったのである。
書込機はメーカーが認定した物でないと公式には使えず、どうしても高価になっていた。何十万とか何百万。
そこで自作したいとなるわけだが、書込仕様は公開されてない。契約した書込機のメーカーにしか開示されていなかった。
じつは自分の当時の勤務先はそのメーカーのひとつだったのだが、棚にはファイルがたくさん並んでいて、書込方式がよく変わるだの何だのという話を担当者から聞いた事がある程度。
何か安定しない要素があるのか、改良しながらやっているのか知らないが、そんな状態だから下手に公開してしまうと、バージョン違いなどで問題が起きる可能性があったのだろう。
いまのようにネットで即時に情報が更新されるような時代ではなかった。
それでも一部の有志がチャレンジしていて、トラ技にはPALの書込機の製作記事が載った。その後、GALの書込機の製作記事とGAL用アセンブラの頒布があった。そのソフトは有償で配布されたので購入した。送金したら、フロッピーが送られてきたのである。
ソフトは準備できたが、GALライタは自作するしかない。
そこでPC-9801に8255ボードを作る必要が生じた。8255ボードからフラットケーブルを通して、GALライタの基板につながる。
実際に8255ボードと、GALライタの基板を自分で組み立ててみたが、なかなか正常に動かずに苦労した。何が悪かったのか覚えていないけど、結局使えるようにはならなかったと思う。
I/Oのアドレスも確かFM音源か何かと干渉していたんじゃなかったか。音が鳴らなくなっておかしいなあと、自作ボードを抜いたら鳴るようになった記憶。アドレスを変えて、プログラムのほうも当然変更して・・・今のような便利なPnP以前の世界だった。
そもそもPC-9801で自由に使えるI/Oアドレスは限られていた。色々工夫しながら使っていたのである。
その後もPICマイコンの初め頃に書き込み機を作ったがうまくいかなかったりして苦労しており、書き込み機なんか自作しないで既製品を買ってしまえというのが持論。そんな物に時間を使うなという意味で。
パラレルポートなんかその後PCから無くなったし。(有れば有ったで便利だったのになあ)
結局GALライタがうまく動くようになったのは、再度作り直した後か、あるいは記憶の確かなところでは「えるむ」のChaNさん作のライターを組み立てたら成功したのは覚えている。PC98につないで使った。確かプリンタポート用だったと思う。
これのおかげで「キーボード切替器」を作る事ができた。
PC98用の8255ボードは、他にもROMライターを作る為にも使おうとして当時実験をしていた。
しかしなかなかうまくいかず苦しんでいた。
結局、フラットケーブルがクセモノだ。
クロストークなど不安定となる要素が多い。たとえばアドレスのビット変化が多いタイミング(00FFhから0100hへの変化時など)でノイズが増加しておかしくなってしまう。
ケーブルが長いのも問題だから、最低限に切り詰めた。それでも改善しない。
さらに、50芯のうち半分をGNDにした。1本おきにGNDになるように、偶数だったか奇数だったか忘れたけどその列のピンを全部GNDにした。これである程度のシールドとGNDの強化にはなったのだが、まだ不安定で、最終的にはバッファを入れて解決したような気がする。
フラットケーブルをツイスト線に変えたような記憶も有る。だけど拾ってきたツイスト線のフラットケーブルは40芯しかなかった。そこでまた改造をしたかもしれないけど覚えてない。
信号の動作をゆっくりにするのも解決策のひとつ。だけど実用性は無い。
そもそもROMライタを作ろうというのが間違いで、前に書いたように完成品を買ったほうが早い。それを自作する時間をとられるな。
PC98の前にMSXでROMライタを自作して完成していた。在学中に自動車学校を挫折してしまい、就職してから通っていた自動車学校の待ち時間に、趣味の設計など好き勝手に過ごしていた。その中で設計を進めたのがそれ。
本当に原始的なやり方で、2764の1バイトごとに50mSのパルスをかけて書き込むというやつ。それしか知らなかった。1個(8KB)書くのに6分ぐらいかかったか。終わったときには2764が熱くなっていた。
会社でROMライタの経験者である先輩に色々と教わった。1msのパルスをかけるやり方とか。書き込めたように見えても放置しておくと消えてしまった事があるとか。逆差しやズレ差しはどうやって検知するか、などなど。
まあ、いずれにしても今では思い出の中だ。
今でこそGALでも何でも書き込める装置を持っているけど、あの頃は本当に不便だった。何もできなかった。
そういえば当時CPLDやFPGAは、ほぼアマチュア向けではなかった。開発用のソフトだって相当高価なもの。入門書を買って読むのが精一杯。その入門書の企画でALTERAのサンプルCPLDをもらえるというのがあって、何やかんやで3個もらったが、コンパイラも書き込み器も持ってないのに無用の長物だった。
最初はXILINXから使い始めたっけ。今のような集積度はなかった。色々と制約もあった。コンフィグROMは高価なのにワンタイムでもったいないから、EPROMが使えるエミュレータも自作した。
カメラにも老眼
2024.11.13
税金の支払いは、以前だとコンビニに納付書を持っていって現金で払っていたが、数年前からその必要はなくなった。
自宅にいながらにして、PCやスマホから手続きできるようになった。
あのややこしい番号を手入力しなくても、バーコードをカメラで読み取れば瞬間的に、かつ簡単にできる。
意外とPCのカメラでやった事なかった。貴重な機会なので試してみた、という話です。

ありゃ、ボケボケだ。接写用じゃないんだな。
そこで、ルーペを使ってみたらと思いつき、

ルーペとカメラの距離を調整してみたら、きれいに写ってその瞬間読み取り成功!
まあ、このカメラは老眼みたいなものだね。
(この2次元バーコードは実際の納付用とは違います。例として、支障のないものを掲載しました)
自宅にいながらにして、PCやスマホから手続きできるようになった。
あのややこしい番号を手入力しなくても、バーコードをカメラで読み取れば瞬間的に、かつ簡単にできる。
意外とPCのカメラでやった事なかった。貴重な機会なので試してみた、という話です。

ありゃ、ボケボケだ。接写用じゃないんだな。
そこで、ルーペを使ってみたらと思いつき、

ルーペとカメラの距離を調整してみたら、きれいに写ってその瞬間読み取り成功!
まあ、このカメラは老眼みたいなものだね。
(この2次元バーコードは実際の納付用とは違います。例として、支障のないものを掲載しました)