エントリー

電子工作の40年

 恐ろしいもので,ハンダゴテを初めて使って電子工作を始めてから,40年以上の時間が経過してしまいました。ハンダ付けという新しい接合法を習得して可能になった工作範囲は広く,一気に電気の世界に踏み入れることになったわけですが,キットの製作で始まった電子工作も,雑誌の製作記事を見ながら作るようになってくると,自分で部品集めをすることになります。

 この部品集めという作業がとにかく面白いわけですが,初めは記事にあるとおりに部品を揃えることが精一杯だった私も,次第に手に入る部品で作る事を覚え,やがて回路設計の世界に踏み出すことになるのです。

 小学生の頃から,日本橋の部品屋さんで部品を探し,工作で使う部品の変遷をずっと見て来た私は,先日ふとこの40年で使えなくなった部品,変わってしまった部品について考えてみましたが,以外に使えなくなった部品というのはないもので,40年前の製作記事をそのまま作る事は案外簡単にできたりします。

 変化の激しいエレクトロニクスの世界において,これはなかなか驚きでして,例えば1980年代に1950年代の製作記事をそのまま作る事はほぼ絶望的だったことを考えると,最先端とホビーとの間の差がどんどん広がっている時代なんだなと思います。

 ということで,40年前,あるいは30年前を振り返り,変わってしまったこと,変わっていないことをつらつらと書いてみます。


(1)基板

 40年前に基板と言えば,片面ベークが当たり前,ガラスエポキシは余程の事がないと手が出せないものでした。多層基板など存在は知っていたものの見た事はなく,両面基板も自分には関係がないと思っていたほどでした。

 初心者は平ラグ版,中級者はサンハヤトの万能基板,上級者は自作基板と相場が決まっていて,銅箔板に直接油性ペンで書き込む手書きか,サンハヤトの感光基板を使って基板を作ると,もうそれだけで1つの工作を仕上げたような気分になったものでした。

 それでもこうした基板はベークが大半で,まさかガラスエポキシがこんなに手軽になり,一般的に使われるようになるとは思いませんでした。

 平ラグ版はもちろん,サンハヤトの万能基板(定番のICB-88やICB-93)も全く問題なく入手可能,感光基板も露光時間が短くて済むタイプにリニューアルされて現在も手に入ります。

 大きく変わったのは,少量の基板を海外に発注して作ってもらうことが個人でも可能になったことで,PCに無料で使える基板CADを使えば,数日の間に完成した綺麗な基板が届きます。これはもう,当時は考えられなかったことだと思います。

 もちろん,自分でエッチングする基板にも価値はあり,CADの操作を覚えずとも思い通りのパターン(特にアナログでは重要)が描けますし,なんと言っても待っている時間がありません。

 感光基板以外の方法で基板を作る方法がもっと進歩するかなと思っていた時期もあるのですが,アイロンプリントも今ひとつ盛り上がりませんでしたし,小型フライス盤を使う方法も下火になった感じです。

 自作の基板には穴開けが面倒という話もついて回るのですが,高周波の基板ならほぼ面実装ですし,パターンも簡単なのでなんならエッチングをせず,Pカッターで直接銅箔を切っていく方法で作る事が出来たりします。
 
 どっちにしても,基板は40年前から大幅に進歩しつつ,でも昔ながらの方法も選ぶ事が出来そうです。


(2)ブレッドボード

 基板と関連があるのですが,ブレッドボードがこれほど一般化するとは思いませんでした。40年前を思い出すと,輸入品があるにはあったが高価で,本当に実験用の特殊なものだったように思います。

 私も30年ほど前に手に入れて使ってみましたが,当時はハンダ付けする方が楽だと,結局使わずにいました。しかし一度ブレッドボードで作る事に慣れてしまえば楽ちんで,食卓で製作が出来るお手軽さにはあらがえない物があります。


(3)ハンダ

 電子工作の世界では,40年前からスズ63%の共晶ハンダがおすすめされています。20年ほど前に吹き荒れた鉛フリーの流れが,工作の世界ではそれほど影響を与えなかったようです。

 鉛フリーのハンダは融点が高く,ハンダ付けも難しいです。ハンダゴテも温度調整機能のある高価なものが必要だったので,工作にはなかなか普及しなかったと思います。

 なら,有鉛の共晶ハンダが未だに使われるのって危ないんじゃないかと思うかも知れませんが,素人が工作で使う量などたかが知れているので,規制の対象にならないのでしょう。というか,日本には有鉛ハンダを取り締まる法律はないそうです。

 ということで,ハンダは未だに有鉛の共晶ハンダが一般的で,どこでも普通に手に入ります。むしろ無鉛ハンダの方が入手が難しいくらいです。


(4)ハンダゴテ

 一方のハンダゴテですが,こちらは随分と進化しました。40年前,鉄でコーティングしていない昔ながらのハンダゴテがまだまだ残っていましたから,ハンダが乗らなくなったらヤスリで削れといわれていました。

 さすがにそんなハンダゴテは一部でしか使われる事はなくなり,今はどんなに安い物でも鉄でコーティングした長寿命のコテ先が使われています。

 進歩したのは,温度調整機能がついた物が安価になったことでしょう。10年ほど前まではコテと本体が分かれていたのですが,今は安価な一体型が手に入るようになり,ハンダ付けが劇的に楽になったように思います。


(5)抵抗

 抵抗は今でも1/4Wや1/6W,誤差5%のカーボン抵抗が手に入ります。これは40年前から変わりません。サイズは小さくなっていると思いますが,リードタイプであればなにも問題はないでしょう。それより,安価で簡単に手に入る抵抗があることが重要です。

 こうしたリード部品の進歩はほぼ止まっているのですが,この40年の間に抵抗は完全に面実装品に切り替わりました。しかも小型化の流れは止まらず,30年前は2012,20年前は1608,10年前は1005,今は0608かそれ以下というサイズになり,もう気軽に工作で使える物ではなくなってしまいました。

 量産で使われるものが一番安く手に入りやすいものですから,今は2012や1608はリード部品よりもかえって入手が難しいくらいで,価格も高めです。しかしこれらのサイズの抵抗は2.54mmピッチの万能基板にぴったりなので,私はたくさんストックしています。

 これらのサイズの抵抗も当時は高周波用の特殊な部品という扱いでしたが,今はすでに生産されていない過去の部品です。そんな中で,もっと古いリードの抵抗が生き残っているというのは,ホビイストにはうれしい話だと思います。


(6)コンデンサなど

 コンデンサの世界は大きく変わったように見えます。まずリードのコンデンサはフィルムと電解コンデンサくらいになってしまい,それ以外には手に入りにくくなっています。

 セラミックコンデンサはほぼチップに置き換わっています。また,バイパスコンデンサに使われる小型大容量で誤差が大きく温度特性も悪い高誘電率タイプと,従来からある特性の良い低容量品にくっきり分かれました。

 前者は耐圧も下がり,特性も犠牲にすることで,米粒程の大きさで100uFが当たり前になっています。こうした用途でリードの物は需要がありませんので,私は売られているのを見た事がありません。

 後者についてはもともと高周波用なのでチップの方が有利なのですが,そもそもラジオやテレビなどで一般的だったアナログの高周波回路が衰退し,精度や温度特性を優先した高周波用のコンデンサの需要が消えてしまい,とても入手が難しくなっています。

 これはリードタイプでも同じで,コイルの温度特性を相殺するために,コイルとは逆の温度特性をもつセラミックコンデンサを並列に繋いで温度特性を相殺するような場合に使われる温度補償用のセラミックコンデンサなど,もうどうやって手に入れればいいのやら見当も付きません。

 フィルムコンデンサは集約が進みました。かつては値段と性能で使い分けをするのが当たり前で,温度特性や精度でスチロール,一般用にマイラー,高容量でポリカーボネート,という感じでしたが,スチロールは高温で劣化するので量産時のリフローが使えず消えましたし,それ以外の用途には安くて特性の良いポリプロピレンコンデンサに統一された感じがします。

 マイカコンデンサも高級なコンデンサの代名詞でしたが,高価で小型化できず小容量品しかないコンデンサを積極的に使うこともなく,今や絶滅危惧種になっていると思います。

 検討しているのはアルミ電解コンデンサで,これは40年前から入手性も変わらず,定番であり続けています。20年ほど前,携帯電話の基地局で大容量の電解コンデンサが大量に使われたことから原材料が不足して入手が難しくなった時期もありましたが,スイッチング電源に必須なアルミ電解コンデンサの需要は安定しているみたいで,入手の心配はありません。

 これに対してタンタル電解コンデンサはほぼ消えました。40年前は高性能電解コンデンサの代表選手だったのですが,故障時にショートするという特性が致命的で,まず量産の設計から駆逐されました。

 そうそう,電解コンデンサといえば,4級塩の話を忘れることは出来ません。30年ほど前に電解液を高性能化して,小型で特性の良い電解コンデンサが作られ,大量に使われたのですが,10年ほどすると電解液がゴムのパッキンを劣化させて漏れてしまい,基板ごと溶かして壊すという問題が多発しました。

 コンデンサのメーカーはおろか,最終製品のメーカーも公式には認めていないと思いますが,この頃の電子機器ではもう当たり前の故障原因で,当時作られた機器を使い続けるための最大の難関となっています。なんといっても基板を溶かしてしまうのですから,もう手が付けられません。これ,日本のメーカーの黒歴史だと思います。


(7)LED

 40年前のLEDは高価でしたし,色も品種も少なく,暗かったです。私が初めて買ったLEDは東芝のTLR103でしたが,1つ100円もしました。

 赤や黄色は当時とそんなに変わらないと思うのですが,黄緑は波長が変わっていて,昔の黄色に近い黄緑は本当にほたるのように美しく,大好きでした。今の黄緑は緑に寄っているので,今ひとつ好きにはなりません。

 だから,40年前の「電子ほたる」などと銘打って出ていた製作記事を今再現しようとしても,実はLEDの色でほたるにならないかも知れません。

 しかし,青色LEDが一般化したことで,様々な色のLEDが手に入るようになりました。30年前,SiCの青色LEDを秋月電子で買いましたが,今のLEDに比べると全然暗く,むしろ神秘的な感じさえしました。

 気を付けないといけないのは,電流が少なくなっていることです。40年前,10mA流すこともざらだったLEDは,今や1mAも流すとまぶしいくらいです。昔の記事の通りに作ってしまうとまぶしいばかりか,劣化が進んでしまうので,再設計が必要かも知れません。


(8)トランジスタ

 40年前にはすでにシリコントランジスタへの移行が終わっていたので,当時の製作記事で工作するためにゲルマニウムトランジスタを探し回ることはしなくていいと思います。

 ただ,当時から定番だった2SC1815と2SA1015はすでに廃品種になっていて,この世界にもチップ部品の並が押し寄せています。

 とはいいつつ,2SC1815は似たような特性の互換品が安価に出回っていますので,普通の用途では困ることはないでしょう。2SC458や2SC945,2SC828といった汎用のトランジスタは全然手に入りませんが,これらも普通は2SC1815の互換品で間に合いますので,心配はありません。

 工作で良く使われたものとしては,2SD235があります。パワートランジスタですが,これも2SD880の互換品が出回っていますので心配ありません。

 問題はFETで,高周波用のかつて3SK59などのダブルゲートFETを駆逐した2SK241が,すでに貴重品になっていることでしょうか。代わりになる後継品種はなく,互換品種ものきなみ入手困難,中国製は手に入りますが,性能面で互換といっていいか微妙なところです。FMチューナー用に多用された画期的なデバイスでしたが,FMラジオの需要が小さくなった今,この部品が欲しいのはアマチュアだけですし,無理もないところです。

 それでも,まだリードタイプの定番トランジスタがちゃんと揃っているのはすごいとしか言いようがなく,40年前の工作の大半はカバー出来ると思います。


(9)アナログIC

アナログICも,定番と言われるものは40年前から変わらず入手は難しくありません。ただ,業界の再編が進み,フェアチャイルドは元モトローラであるオンセミコンダクタに買収されて消滅,ナショナルセミコンダクタもまさかのテキサスインスツルメンツに買収されて消滅し,オリジナルのメーカーはほぼテキサスインスツルメンツに一本化された感じです。

 しかしそのテキサスインスツルメンツは代理店経由で販売をしないことになり,我々のようなホビイストがテキサスインスツルメンツのICを手に入れる事は難しくなりました。

 日本のメーカーも自社製品に組み込むことがなくなったことで生産されなくなり,今や東芝とローム,JRCあらため日清紡くらいのものです。

 案外STmicroのICが手に入りやすいようなので,40年前の工作をするならこういうところも活用した方がいいかも知れません。

 中国製のセカンドソースが安く入手が簡単になっているのですが,特性的に心配だったこともあって手を出さずにいました。しかし,今やそうも言ってられない状況で,上手く使い分ける必要があります。

 とはいえ,製作記事に出ていたNE555やLM386,7805やuA741,RC4558等は今でも互換品が簡単に手に入ります。このあたりはなにも心配ないでしょう。


(10)デジタルIC

 一方のデジタルICは結構深刻だと私は思います。あれほど当たり前に売られていた74LSはもう絶滅危惧種ですし,74ALSや74Fは貴重品です。さらにいうと時々目にした74Sはさらに入手困難です。

 かろうじて74HCが手に入るので置き換え可能ですが,厳密には互換性はないので代わりにはならない場合もあります。4000シリーズは今でも手に入る可能性が高いですが,ちょっと変わった品種は難しいでしょう。

 いずれにしても,DIPのものは入手が難しくなりつつあり,SOPやTSOPが普通になってきます。ただ,需要のある品種しか手に入らないので,例えば74141や74181などはそもそもSOPなど存在しません。

 30年前には一世を風靡したPALやGALはもう全く見かけなくなりました。今やPALASMを走らせるのも一苦労ですから,入手出来ても仕方がないのかも知れません。

 もっというと,専用のICはアナログICも含めて絶望的と言えるでしょう。CPUやマイコンのペリフェラルはまだ探せば手に入ると思いますし,DRAMやSRAMも同じような状況です。

 しかし,ちょっと特殊なIC,例えばフロッピーディスクのVFOであるとか,CB無線用のPLLであるとか,RTCのICだとか,FM音源であるとか,CPUでもマイナーなものなどは,かなり探さないと難しいと思います。カスタムICに至ってはもう入手は諦めるほかありません。

 ただ,そんなものは40年前の製作記事にも出てきません。設計の厳しさで考えると,今手に入る74HCか4000シリーズで十分動く工作ができると思います。


 とまあ,思いつく物を書いてみました。こうしてみると,この40年で大きく変わった世界ではありますが,昔ながらの物も手に入る状況は続いているので,昔の製作記事で工作することも十分可能みたいです。

 失われた30年と言いますが,日本はこの間進歩していないという言い方も出来るかも知れず,ちょっと複雑な気分になります。

 

PC-386BookLでPPMMCDRVを動かしてファイル交換

 先日,ふとネットをダラダラとみていますと,PC-9801のプリンタポートにmicroSDカードを繋いで読み書きするハードウェアがアキバで売られたというニュースを目にしました。

 ん?PC-9801のプリンタポートって出力専用だったんじゃなかったっけ?

 AT互換機ではプリンタポート接続のZIPドライブなんかが普通に売られていました(懐かしい)が,同じ仕組みがPC-9801で実現出来なかったのは,14ピンのPC-9801のプリンタポートが出力専用だったからでした。

 PPMMCDRVと呼ばれるそのハードウェアの説明を読んでみると,microSDカードをSPIモードでアクセスするということと,唯一の入力であるBUSY端子を使って双方向通信を実現するという仕組みでした。賢いなあ。私はてっきりFPGAなりSTM32なりを使うのかと思ってましたよ。

 PIOモードというPC独特の言い回しですが,詰まるところソフトでクロックやデータを生成するソフトウェアSPIですので,速度はCPU依存で,しかも強烈に遅いです。それでもフロッピーディスクやLANを使わずにファイルをやりとり出来るメリットは大きくて,実際PPMMCDRVは大人気のようです。

 自作するのは簡単ですが,ArduinoやRaspberryPi向けに作られたと思われる,microSDスロットとレベルコンバータ,そしてLDOまで搭載された小さい基板が安価に売られていて,これを使えば本当に繋ぐだけでハードウェアは完成してしまいます。

 最大の関門は14ピンのアンフェノールコネクタの入手でしょう。

 ところが偶然,数日前にジャンクのプリンタケーブル(しかもEPSON純正)を手に入れていました。これはもはや神の啓示。作らないわけにはいきません。

 ということで,早速amazonにmicroSDの基板を注文。5枚で760円ほどでした。

 届いてから工作開始。日曜の午後にぴったりな工作です。

 1時間ほどで完成すると思っていましたが,重いのか手間取ったのでその点松を書いておくことにします。

 まず,ケーブルをちょん切って,皮を剥きます。SPIで通信しますので短かくないとエラーが出そうだという事もありますし,小さくまとめておきたいので,コネクタから5cm程でカットしました。

 2,3,4,5,11ピンが必要なので,どの線から出ているのかをテスターでチェックしますが,鈍くさい私はどうせ間違うでしょうから,一応全部の線を切らずに残しておきます。

 そしてそれぞれの端子を,公開して下さっている配線図に従ってハンダ付けしていきます。電源はプリンタポートから採れないので,マウスポートから取ることにして,D-subの9ピンのコネクタに繋いだ5VとGNDも基板に配線します。(この段階ではLEDはまだ繋いでいません)

 この段階で一応チェックしますが,案の定配線ミスをやらかしています。違う線を繋いでいたので修正して,実機で試してみます。

 microSDカードは手持ちのもので一番小さい容量の1GBのものを使います。

 公開されたソフトに同梱されていたテスト用プログラム,PPMMCTST.EXEを実行しますが,エラーでいきなり進みません。よく考えてみるとGNDを配線してなかったことに気が付いたので14ピンにGNDを繋ぎますが,結果は同じ。(そりゃそうです,マウスコネクタのGNDは繋がっているので,品質はともかくとしてGNDには繋がっているんですから)

 ここで少し調べてみると,EPSON機ではSCKというクロックの信号でリンギングが出るので,3.3kΩを直列に入れてダンピングするのがよろしいそうです。私が使っているPC_386BookLは割と初期のEPSON機ですからダンピング抵抗は必要でしょう。

 手持ちの関係で2.7kΩで試してみますと,希にテストはパスするようになりましたが,ほとんどエラー。通常の読み書きなど全くできません。うーん。

 波形を少し見てみますが,BUSY端子の電圧がちょっと低く,4V程度しかありません。ですが,TTLレベルでは2.0V以上あればHighとなりますので,(不問にできないですが)これが原因で動作しないと言うことではないでしょう。

 気晴らしに,先にLEDの配線をするのですが,またも配線ミス。ずっと点灯しっぱなしになるので首をひねってましたが,違う線に繋いでました。トホホ。

 LEDの配線は正しく修正しましたが,動作しない状態は続いています。そこで,別のmicroSDを使ってみる事にしました。手持ちでフォーマット出来そうなのは16GB位だったのですが,これを30MBごとにパーティションを切って試してみます。

 すると,テストではほとんどエラーが出なくなりました。とはいえ希にエラーは出ますし,ファイルアクセスは全く出来ません。でも,偉大な一歩です。

 それではということで,ウェイトを入れてみました。最初は8という大きな物をいれたのですが,これだとファイルの読み書きが出来るようになりました。そこでウェイトを1つずつ減らしていくと,ウェイトが1ならOK,0ならエラーになることがわかりました。

 同じウェイトで先の1GBのmicroSDをもう一度試しましたが,やっぱりエラーです。別の8GBのカードでも0ウェイトでは動きませんでした。これはもうカード依存,いわば相性みたいなもんだと割り切るしかなさそうです。

 念のため,ダンピング抵抗の値を変えてみたり,他の信号にも入れてみたり,BUSYをプルアップしたりしましたが何も変化はなく,ついでに言うとSCKのダンピング抵抗も外しても,ウェイトを1つ入れれば問題なくアクセス出来る事がわかりました。

 しかし,ウェイトを入れれば遅くなります。ベンチマークを取ってみると情けないことに12kB/secしか出ていません。0ウェイトならもう少し改善されるように思うのですが,動かないものは仕方がないです。

 ちなみにウェイトを8つ入れた場合,2kB/secまで速度が低下しました。V30以下とは・・・

 これで大きなファイルもエラーなく読み書き出来るようになりました。LEDもちゃんと点滅するので,もう余計な線をカットしても大丈夫でしょう。遅いとはいえ,一時期検討していたシリアル経由での転送に比べると遙かに高速(12kB/sec = 96000bps)ですし,PCとのファイル交換に力を発揮すると思います。

 これまで,PCとのファイル交換は大変でした。フロッピーを使うしかありませんが,3モードに対応しないPC-386BookLは,720kBの2DDでしかファイル交換できません。仮に2MBのファイルを送り込む場合,ファイルをファイルを3つに分割して3回読み書きしなければなりませんでした。

 フロッピーのイメージなどはもともと1.2MBですから,圧縮しても720kB以下になることは少ないです。そうなるとやっぱり分割して2回で転送しないといけないので,気分的にもかなり抵抗がありました。

 フロッピーディスクエミュレータを使って,USBメモリのフロッピーイメージをマウントして実機に取りこむ手はありますが,1ファイルあたり1.2MBまで転送可能になるとはいえ,手間がかかることには違いありません。

 しかし,このPPMMCDRVでは,ファイルサイズがフロッピーディスクのサイズを超えても分割しないでいいですし,付きっ切りでディスクの交換をすることもありません。少々速度が遅くとも,放置して置けば済むというメリットは非常に大きいです。

 悔しいのは,ウェイトを0に出来なかったことです。きっと何か問題があるはずで,真面目に取り組めば原因くらいは判明すると思うのですが,ウェイトで改善するという事はクロックとデータのタイミングがシビアなのかもしれません。

 こうした楽しい工作の回路はもちろん,ソフトも公開して頂いている事には感謝しかありません。私の場合,microSDカードをとっかえひっかえしましたし,EPSON機ですので試行錯誤も必要でしたから,誰でも簡単にできるというものではなかったかも知れませんが,むしろそれが楽しいくらいで,なにかと小銭を集めたがる人が多いこのご時世,面白いものを公開して頂いている事に,まだまだすてたもんじゃないなあと思った次第です。

 

REALFORCE RC1にスペーサーを試してみる

 キーボードを探す旅に終止符を打った,REALFORCE RC1。私が選んだのは荷重30gのUS配列で,確かに現時点で最高のキーボードであることは間違いないのですが,しばらく使っていると不満も出てくるようになってきます。

 暗い所ではキートップの印字が見にくいとか,黒っぽい配色がちょっと気に入らないとか,スペースキーがグラグラするとか,DELETEキーが遠いとか,まあいろいろあるのですが,中でもストロークと音の関係は実に難しいと感じていました。

 REALFORCE RC1のストロークは4mmと,標準的というか古典的なストロークです。スコスコと入力出来る気持ちよさが売りのREALFORCEにとって,ストロークが深いことは欠点と言い切れないものがありますが,それでも底打ちの時に独特の音がすることは避けられませんし,好みの問題としてストロークが浅い方が好きな人もいると思います。

 私はストロークの浅い方が好きな人なのですが,それはきっと,底打ちがあるまでキーを叩き込む人だからで,寸止めできる人ならきっと問題にはしないんじゃないかと思います。

 そんなおり,amazonで見つけたのがキースペーサーでした。純正品ですので当然以前から存在は知っていましたが,メーカーが「これだ」と思って作ったキーにスペーサーを入れるというのもなんか違う気がしたので,見送っていました。

 しかし,2mmと3mmが同梱されていて(おかげで2000円と高価なのですが),レビューを見ると概ね高評価のようです。好みの問題なので高評価そのものをあてには出来ないのですが,悪い評判がないということも私の背中を押すのに十分でした。

 ということで届いたスペーサーですが,いわゆるポロンと言う樹脂で出来たシートに穴を開け,裏側にPETで裏打ちしてあるものが2mm厚と3mm厚の2枚入っているものでした。1枚1000円です。やっぱり高いという印象は拭えません。

 早速取り付けてみるわけですが,最初に悩むのは2mmにするか3mmにするか,です。キートップを外し,まずは2mmから試しますが,あれ?こんなもん?と思うような,差の少なさに拍子抜けしました。

 底打ち感はあまり変わらず,音も以前とそんなに変わりません。これだったら効果のわかりやすさで3mmだなと,3mmに交換してキートップを取り付けます。専用のソフトでスペーサを設定して,準備OK。

 早速試し打ちですが,ミスタイプを連発。それもそのはず,APCの設定が2.2mmのままでした。

 3mmのスペーサをを取り付けると,ストロークは2mmになるそうです。押したと判定されるストロークであるAPCの設定がが2.2mmなら,そりゃミスタイプが連発するのも当然です。

 あわてて1.5mmに再設定して試すのですが,思ったように浅いストロークは高速タイピングに向いています。音も静かになりましたし,RETURNキーやSHIFT,CTRLキーの安定感も良くなっています。特にスペースキーは良くなっていて,グラグラすることも変な音がすることもなくなりました。

 しかし,使い始めると欠点が浮かび上がってきます。ストロークが浅いのは結構ですが,底打ちの時にふにゃっとしたキレの悪さがあります。また,APCが1.5mmであることも影響しているみたいで,私のようなしっかりタイピングする人にはどうにも違和感が残ってしまいます。

 ふにゃっとした感じがどうにも許せなくなってしまい,もう一度キートップを外して2mmのスペーサーに交換してみました。APCは2.2mmに戻します。

 確かにストロークは深くなり,スコスコとしたREALFORCEの感触が戻ってきました。底打ちの時のふにゃっとした感じはかなり改善されていますが僅かに残っていて,これはスペーサーを使う限りはやむを得ないと諦めることにしました。

 ただ,スペースキーやRETURNキーの安定感は2mmでも大幅に改善されています。このレベルなら不満はありません。スペースキーは本当に良くなったと思います。

 ここでAPCを1.5mmにしてみました。もともと,小指でRETURNキーを押した時にうっかり他にキーに触れてしまうことがあったため,そのキーが入力されてしまわないようにAPCを2.2mmにしていたのですが,ストロークが浅くなったのだからこれも1,5mmにしてみようと思ったわけです。

 結果ですが,これでさらに快適になりました。理屈で言えば,スペーサーによってストロークが4mmから3mmに変わっても,APCが1.5mmでミスタイプがあった状況が変わるはずがないのですが,これは私自身がREALFORCE RC1に慣れたという事かも知れません。

 ということで,REALFORCE RC1の我慢の1つであったストロークについては,1mm減らして3mmにすることで解決しました。特にスペースキーやRETURN,BSキーの安定感も向上しているので,ますますタイピングそのものに意識を持って行かれなくなりました。

 難点を言えば,ファンクションキーやDELETEキーなどの最上段にはスペーサーが入らないことでしょう。あまり使わないキーとは言え,2000円もしてすべてのキーをカバーしないスペーサーというのもどうか思います。

 1キーのシートを2つ,4キーのシートを3つ入れてくれれば済む話で,しかもこれは日本語版も英語版も共通ですから,そんなにお金はかからないはずです。

 最近,REALFORCE RC1用の白いキートップが新たに販売されるようになりましたが,これも結構高価ですし,装飾キーは別売りになっているなど,どうもREALFORCEはあれこれを買わせたいみたいな感じがします。同じ高級キーボードの部類に入るHHKBでは交換用のキートップはそんなに高価ではありませんでしたし,装飾キーを含めたすべてのキートップが入っていました。

 考え方も違いますのでHHKBと比較するのはナンセンスですし,そもそも高級なキーボードを使うのにせこい話も無粋だとは思いますが,お金の問題と言うよりもあれこれ試して使わなくなった物が手元に残るのに抵抗があります。

 キーボードのように,100人いたら100人とも違う物を好む製品で,最初から完璧な物を期待するのは無理だとわかっています。むしろカスタマイズ用のニッチな商品を用意してくれることがユーザーに手厚いといえるわけで,その点では東プレは立派だと思います。しかし,もうちょっと手軽に試せたらなあと思いました。

PC-386BookLのメモリを3.6MByteに

 PC-386BookLで遊んでいると,もうちょっとメモリが欲しいなと思う事があります。といっても,MS-DOSで真面目に2.6MByteを使い切ることなどなく,ディスクキャッシュや常駐ソフトの待避に使われるわけですが,HDDを1GBと破格の大きさにしたことで,ディスクキャッシュが相対的に小さくなって,パフォーマンスの低下が目立って来ました。

 これまで768kByteでも十分だったのは,HDDが40MByteと小さい事で,ファイル数も少なく,ディレクトリのエントリも少なかったからだと思うのですが,1GByteにもなるとディレクトリの一覧が出てくるまでに,ゴリゴリとHDDへのアクセスが発生します。

 自作したLスロット用2MByteのSRAMボードを改造して容量を増やし,もう少しディスクキャッシュにあてがえればと思ったのですが,当時そういうこともあるかと,増設の仕組み仕込んであったことを思い出しました。

 SRAMですので,考えるべきはアドレスデコーダくらいのものなのですが,デコード信号をHC138を使って作ったので,すでにデコード信号が1MBごとに8本も用意出来ています。このうち先頭の2MB分を使っているわけですが,現在の回路でも8MBまでは信号が用意出来ているというわけです。

 とはいえ,SRAMそのものをバスに敗戦する作業からは逃げられません。多くの先人達は,ここでICの上にICを重ねるという,カメカメと呼ばれる必殺ワザで増設をこなしてきました。

 かくいう私もカメカメは基本テクニックとしてすでにマスター済みですが,なにせ信頼性が低いので積極的にやるようなものではありません。それに,渥美も増えるので,実際には利用出来ないことも多いテクでもあります。

 今回のケースでは,配線がSRAMの上にも這い回っているという汚い実装で,カメカメが最適解ではないのが明確でした。とはいえ,他に方法もなく,やるなら重ねる以外にないでしょう。

 その前に,SRAMの在庫があるかどうかも見ておかなければ。幸いなことに,前回10個買ったSRAMの残りがそのまま残っているので,もう2つ追加してトータル3MByteのプロテクトメモリに仕上げましょう。

 追加の部品はSRAMだけ。これを重ねて配線し,HC138から0x30000から0x3FFFFまでをデコードした信号を取って配線するだけです。

 とはいえ配線数も多く,細かいハンダ付けが続くので,まさに修行。黙々と続けます。

 1時間半ほどで配線を終え,念のための確認をしてからPC-386BookLに取り付けます。まずは起動直後のメモリチェックはパスです。3MBを認識しています。

 次はTMEM.EXEというメモリチェックプログラムで,プロテクトメモリのままチェックをしますが,これもなんなくパス。

 そして最後に仮想86モードでEMSを設定し,EMSTEST.EXEでEMSとしての動作をチェックします。これもサクッとパス。

 いやはや,私には珍しいことに,何の問題もなく動いてしまいました。

 これで私のPC-386BookLは3.6MBになりました。これくらいになるとようやくメモリサイズを気にしなくても大丈夫な感じです。

 ディスクキャッシュを増やしたり,EMSとのバランスを取ったりして調整を済ませて運用に入っていますが,正直なところ,あまりその効果を感じません。そういえば当時も高いお金を出して増やしたメモリ(PC-98RLをフル実装で9.6MBにした)にたいして,それほど実感として変化を感じなかった,つまりは気分的な物で,結局DOSではどうにもならないことに馬鹿馬鹿しさを感じていたことを思い出しました。

 もうこれ以上PC-386BookLを改造したり拡張することはないでしょう。そういえば私が初めて買ったDOS環境であるPC-386VRも,メモリは増設後4.6MByteだったなあとか,そんなことを思い出しました。そう考えると,1991年頃の実機環境としては,このくらいで十分だという事でしょう。

 

ubuntuでつくるDOSアプリ

 実は,先日からubuntuの導入に四苦八苦しておりました。

 今どきのLinuxだからなんの苦労もなく,イメージをダウンロードしてUSBメモリに書き込んでブートすれば1時間後には使えるようになってるだろうと思っていたので,四苦八苦していると「なにをやってるんだ私は???」と思う事もしばしばでした。

 といいつつ四苦八苦した理由は簡単で,古い古いMacBookAirをターゲットマシンにしたからです。MacBookAirのLate2010という今から15年の前マシンです。当時円高が進んで,10万円を割るというので,11インチという小ささを生かした,メールなどの生活マシンとして買いました。

 メインメモリは長持ちさせたいという理由で4GBにしましたし,キーボードもUSです。今も思うのですが,大きさといい重さといい,キーボードの感触といい,このマシンはとても使い心地がいいです。

 そんなですから,電池は交換してありますし,SSDも240GBにしてあります。しかし,OSのサポートが早々に打ち切られたことと,CPUパワーの不足もあって,現在はM1のMacBookAirです。(これも買ってから5年もたつのか・・・)

 しばらく死蔵していたのですが,先日PC-386BookLがらみのある事情から,ubuntuを入れて再出発させることを思い立ち,行動を起こしたと言うわけです。

 そのある事情というのが,PC-386BookLのメモリへの不安です。

 高速のディスクコピーのツールには,EMSを使うものがあります。ところが,EMSを使うとどうもデータが化けるらしく,コピーが正しく行われないのです。

 同種のディスクコピーツールを使っても同じ結果が出ますので,メモリが自作である私の場合,メモリテストを行わないと心配です。

 もちろん,プロテクトメモリとして実装してありますし,プロテクトメモリとしてのメモリチェックは何度も行ってエラーがないことはわかっていますが,仮想EMSドライバなど相性もあると思いますし,特定の条件下で出るエラーかも知れません。とにかくDOSで標準化された方法で,EMSへのアクセスが正しく行えているかは調べておく必要があるでしょう。

 で,そんなツールがないものかと探してみたら,ありました。

https://github.com/pc98user/EMStest

 バイナリがないので自分でコンパイルすることになりますが,コンパイルに,見慣れないia16-gcc-elfを使っています。ん?なんじゃこりゃ?

 MS-DOSのアプリですのでDOS上のコンパイラ(MS-CとかTurboCとかLSI-Cとか)でコンパイルする物と思っていたら,gccというじゃありませんか。gccって8086に対応してた?もし8086のコードが吐けてもDOSでの実行形式にするためのライブラリは?

 なんでも,少し前からLinux上でMS-DOSのクロス開発を行うための,16ビットコードを吐くgccやらライブラリやらの環境整備が行われて,数年前にDOSで動作するアプリケーションをLinuxで作るのが流行ったらしいのです。

 そんな面白い事があったのかと不勉強を恥じたわけですが,私の場合Linux環境から作る必要があるので,まずはこのソースをMS-CやTurboCに移植することを試みました。

 しかし挫折。全然コンパイルが通りません。さすがに30年も昔のコンパイラですので,エラーが連発しますし,なんとかねじ伏せても,実装すると暴走します。今さらTurboCを勉強しなおすのも面倒なので,これを機会にLinux環境を常備することにしたわけです。

 そこで白羽の矢が立ったのが,眠っていたMacBookAir2010です。古いとは言えメジャーなマシンでしたし,遅いとは言えLinuxならそれなりに動くでしょう。

 ということで,イメージをダウンロードします。選んだのはubuntu-desktopです。計量のLubuntuなんかも考えましたが,最初はとにかく普通の物を選んでおくことにしました。

 バージョンは一番安定していて長くサポートされることを期待して24.04.2LTSにします。これをUSBメモリに書き込み,MacBokAirから起動します。

 ・・・上手くいきません。

 起動にすごく時間がかかる(USB2.0であることを差し引いてもものすごく遅い)上に,画面が真っ黒です。ごく希にインストーラが起動するのですが,これをインストールを行っても,再起動するとやはり画面が真っ暗です。話になりません。

 のちにこれは,GPUのドライバが問題である事がわかりますが,この時はそんなこともわかりませんので,1つバージョンを落として22.04.5LTSにしました。

 これだと起動も正常,インストールも進み,再起動も可能でした,(画面の右端にチラチラとゴミが出ていますが)

 とまあ,ここまで実は丸2日かかっています。いろいろな種類のイメージのダウンロードには結構な時間がかかるし,インストールが終わるまで1時間ほどかかりますから,大変でした。

 22.04.5LTSで正常の画面が出たのは,GPUのドライバがnouveauドライバというオープンなものを使っていて,これがMacBookAir2010のGPUであるGeForce320Mを正常に動かすことが出来るからみたいです。24.04.2LTSではこれが未対応のようで,画面が真っ暗になったり崩れた表示になってしまうようでした。

 とにかく世界中でMacBookAir2010にubuntuを入れている人はいるだろうから,ここからコツコツやっていこうと腹をくくったのですが,プロプライエタリなドライバ(nvidia-driver-470)を入れてみると,表示のゴミはなくなったかわりに,輝度の調整が出来なくなり,輝度最大に固定されてしまいました。

 さすがにこれはつらいので対策を探しましたが,見つかったXorg.confの修正を行っても解決しません。ならばとnVidiaの公式でLinuxに対応したドライバのバージョンを特定してみました。するとnvidia-340というのが該当するというのでインストールを試みるも,すでに公式には存在せず入手は不可能です。

 ただ,他の方が残してくれているのでリポジトリに追加してインストールしましたが,なんと再起動後に画面が真っ暗になり,ubuntuのインストールからやり直しです。

 ここまでまた丸2日。他の環境設定もやりつつだったので,インストールのやり直しはかなり痛い手戻りになりました。

 結局GPUのドライバはいろいろなバージョンを試し,いろいろな設定を試しましたが解決せず,失敗した時のダメージが大きすぎるので断念し,nouveauドライバでいくことにしました。

 まあ,輝度調整が出来ないドライバというのも手だと思いましたが,つまりACPIでバックライトの制御が出来ない事を意味しているので,省電力設定でバックライトを消したりできませんから,やっぱり実用は無理があると思います。

 ついでに24.02LTSでもドライバの入れ替えなどで試行錯誤を行いましたが,こちらも問題は解決せず。とにかく正常に画面が出ませんので手探りでやるしかなく,あきらめました。

 ということは,このMacBookAir24.04.2LTSへの移行は出来なくて,従って2027年移行は使えなくなりますということです。あと2年か・・・Linuxにも見放されるといよいよ厳しいです。

 さて,環境設定を進めていきます。WiFiも標準のままで問題なく動作しているのでBroadcomのプロプライエタリなドライバを入れる必要はありません。(いれるとサスペンドからの復帰に失敗するという話もあります)

 キーボードのレイアウトを変更したり,.bashrcを書き換えたり,mozcの再コンパイル(初期状態が直接入力になっていて,初期状態をひらがな入力にするには設定を変えて再コンパイルしなければなりません)したりと,なかなかに手間のかかる作業をひととおり終えてみると,そこには普段使い可能なマシンが完成していたのでした。

 WEBのブラウザもサクサクとはいいませんが実用レベル,メールもOK。日本語入力も快適に出来ますし,コピーやペーストのショートカットも,タッチパッドのジェスチャによるワークスペースの切り替えも問題なく動いています。

 もともとのキーボードの心地よさもあって,ターミナルでのCUI作業は快適で,なにも我慢を強いられません。絶対的な速度の遅さに我慢が強いられる場合もありますし,その割には電池の減りが早いので,M1のMacBookAir2020の進化に改めて感動するのですが,それでも片手でひらひらと持ち運べるMacBookAir2010の身軽さに比べて,ずっしりと重いMacBookAir2020は,AppleがモバイルマシンとしてiPadを割り当てたことを再認識させられます。

 さて,ここまでくるのに5日。えらい時間がかかりました。

 では,投書の目的のEMStestをコンパイルしてみましょう。実は,ia16-gcc-elfをインストールして指示通りにコンパイルをしただけだと,全然コンパイルできなかったのです。

 見つかった記事はHello World!で問題なく実機で実効できたよ,というネタに過ぎず,今回のエラーであるdos.hがありません,なんていう問題の解決方法は,なかなか見つかりませんでした。

 ということで,当たり前過ぎて誰も解説しなかっただけの,おそらく初めての日本語によるコンパイルの手順です。

(1)リポジトリを追加し,アップデート
sudo add-apt-repository ppa:tkchia/build-ia16
sudo apt-get update

(2)gcc-ia16-elfをインストール
sudo apt-get install gcc-ia16-elf

(3)nasmをインストール
sudo apt-get install nasm

(4)ライブラリをインストール
sudo apt-get install libi86-ia16-elf

(5)ソースを展開し,コンパイル
ia16-elf-gcc emstest.c emslib.c -li86 -o emstest.com

(6)フロッピーに書き出し,実機に転送し実行


 今回はバイナリのサイズが30kB未満ということで,tinyモデルで十分です。そこで実行ファイルはemstest.comとして作成しました。

 で,これを実機に転送するわけですが,USBフロッピーディスクドライブをMacBookAir2010に接続すると,さくっと認識されて使えるようになりました。書き込みには管理者権限が必要なのでCUIでsudo cp~としないといけませんが,こんなに簡単に使えて,ubuntuは大したものです。

 ドキドキしながらPC-386BookLで実行。

 なんら問題なく実行されて,テストが進んでいきます。結局EMSとして使える1616kBは,全エリアエラーを出すことなく,テストをパスしました。

 ・・・大変でしたが,emstestを実行するためにDOSのコンパイラに移植を試みたところから考えると,3週間ほどかかってしまいました。

 ubuntuでDOSのアプリが最新のCで作る事が出来る(MS-CやTurboCのコメントが//ではなく/*でないとエラーになることを知ってめまいがしました)というのもいいし,HelloWorld!どころではないEMSのアクセスという結構難しい物がきちんと動作していることも興味深いです。

 そのためにubuntuを整備したことも収穫でしたし,その結果レシピを見るのにキッチンに置いておける小さくて,水がかかったりして壊れても困らないマシンとして,古いMacBookAir2010を用意出来たことも大きいです。

 そして,想像以上にubuntuが使い物になること,日常的な作業はこれでなんなくこなせるだろうということがわかった上に,UXも最新のものを取り入れようと貪欲であることも好感触で,もうちょっとしっかりubuntuを使い込んでいこうと思いました。


 あ,今偶然見つけたんですが,ia16-gcc-elfって,DOSのバイナリもあったんですね・・・動くんかなあ。

ページ移動

ユーティリティ

2025年05月

- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

検索

エントリー検索フォーム
キーワード

ユーザー

新着画像

過去ログ

Feed