エントリー

カテゴリー「make:」の検索結果は以下のとおりです。

PC-6031の復活

 実家から持ち帰ったレトロPCのレストア第2弾は,AppleIIに続いてPC-6001です。

 そう,うちにはPC-6000シリーズの三種のレアアイテム(勝手に私が言ってます)と言われるPC-6031,PC-6061,PC-6053のうち,PC-6031とPC-6053があります。

 PC-6031は5インチフロッピーディスクドライブ,PC-6053はボイスシンセサイザです。

 PC-6031はPC-6000シリーズ用として登場した,当時としては安価なフロッピーディスクドライブでした。PC-8001やPC-8801と同様にインテリジェントタイプで,本体とはパラレルI/Fで接続するものでしたが,コントローラはPC-8031やPC-80s31のZ80とは違い,8049を使ってコストダウンを図っています。

 このため,ドライブ側のZ80にプログラムを流し込み,並列動作させるという技が使えません。ですが,コマンド体系そのものは互換性があるらしく,実はPC-6001にPC-80s31を繋いでも動作します。(確認済みです)

 PC-6031はPC-6001mk2なら直結なのですが,mk2の後に登場したPC-6601で3.5インチへの移行が方向付けられ,PC-6601SRでは1DDになって容量も倍増しています。

 とはいえ,PC-6001のソフトの供給はカセットテープが主流であり,わざわざフロッピーディスクを買っていた人はいないでしょう。

 PC-6053に至っては,実物を見た人も少ないのではないでしょうか。PC-6001mk2は「話す」機能が有名でしたが,これはPC-6001のオプションであるPC-6053をいわば内蔵したもので,しゃべるパソコンは実はPC-6001が最初だったわけです。

 結局の所,安いことを理由に手に入れたPC-6001に,本体と同じ値段のフロッピーディスクを追加できる人は少なく(しかも2万円の拡張ユニットと1万円の拡張BASICが必要),それが可能な人は最初からPC-8801を買うという話です。PC-6053に至っては,欲しいと思った人はほとんどいなかったでしょう。

 私の場合,どちらも使っていた当時に買ったものではなく,随分後から二束三文で手に入れたものなのですが,PC-6001(初代)を手に入れたのもPC-6001mk2が登場して随分経ってからでしたし,その後はX1turboに移行していたので,使った記憶はありません。

 ですが,あのPC-6001でフロッピーディスクが使えるというのは面白い体験ですし,初代PC-6001がmk2のようにしゃべるのも興味深いものです。

 特にPC-6031について便利でもあり,機能的に見劣りしていることをあえて楽しむレトロPCにおいて,楽しむのに便利になるフロッピーディスクはとてもありがたいもので,私としては大事にしたいものの1つです。

 さて,初代PC-6001ではさらにレアと呼ばれるPC-6011(拡張ユニット)とPCS-6001R(拡張BASIC)が必須になるPC-6031ですが,mk2ではどちらも内蔵されたので,直結可能です。私はmk2も持っていますので,PC-6031は実際に動かして使っていましたが,しばらく実家に置き去りにされており,昨年秋に実家から運び込んだPC-6031は,もう20年も通電していないものでした。

 そこで,AppleIIに続いて,PC-6000シリーズをレストアすることしました。まずはPC-6001mk2からです。

 PC-6031を使うにも,PC-6001mk2が動かなくては話になりません。通電の前にタンタルコンデンサをすべてセラミックに置き換えて,電源を入れてみます。最初は起動せず,なんどかリセットを行うと起動するようになりました。不安定ですね。さらに音が出ません。

 とりあえず電源ユニットを含めた電解コンデンサを交換,電圧のチェックを行って再調整を行いました。すると動作は安定します。電圧が4.5V付近まで下がっていたので,これが不安定の原因だったようです。

 音が出ないのは相変わらずで,これはボリュームが破損していました。おそらく本体から出っ張ったシャフトを引っかけてしまったのでしょう。

 部品取りのPC-6001から移植して修理完了。動作も問題はないのですが,あまりに汚いので清掃しようとしましたが,キートップを外そうとしてキーを折ってしまいました。こんなに脆かったっけ?

 さすがに落ち込みましたが,ダメモトで接着剤で修理しました。想像以上にがっちり固定できたようで,今のところ問題なく使えています。

 さて,PC-6031です。これもえらい汚いので分解して掃除から始めます。PC-6000シリーズに共通の問題として,ACコードが劣化し,内部の銅が錆びるというものがありますが,これは危険ですので交換が必要です。

 コントローラ基板のタンタルコンデンサを交換し,組み直します。電源を入れてみますが,一瞬LEDが点灯した後,沈黙。どうも電源ユニットが壊れているようです。

 いやー,スイッチング電源は修理の経験が浅いので,ちょっと焦りました。とりあえず目視で焦げたり変色した部品がないかを確認しますが,どれも問題なし。電解コンデンサの容量抜けも確認しますが,これも問題ではありません。

 あとは回路を順に追いかけてチェックしていくのですが,2次側の製流用のダイオードであるSB340が壊れてショートしているのを発見,手持ちの40V2Aのものにとりあえず交換すると復活しました。これは後日同じSB340に交換することになるのですが,これくらいで電源が復活して本当によかったです。

 心配していたコントローラ基板も動作していますし,もっと心配していたドライブそのものも無事でした。

 ということで,とりあえずPC-6001mk2とPC-6031は動き出しました。

 しばらくゲームを楽しんでいたのですが,懐かしい上に楽しいです。今のスマホのゲーム以下の表現力ですが,それでも十分遊べるのは,ゲームの本質的な部分が良く出てきてからでしょう。

 さて,PC-6001mk2が動いても,まだちょっと物足りません。私は初代PC-6001を,mk2が出た後にあえて選んだ人ですし,背景が緑色であることも,ファンクションキーが大文字で設定されていることも,テキストやセミグラフィック画面の色が反転表示になることも,全部含めてPC-6001が好きなのです。

 後継機であり,周囲の多くが手に入れたmk2に対して,わざわざ初代機を選んだくせに引け目を感じ続けていた事に対する自分なりの納得の仕方として,これらのちょっとした違いであったことは今もまだ鮮明であり,PC-6001mk2で5インチフロッピーディスクが動いても,感動はまだ半分というところなのです。

 まずは,我々兄弟が散々遊んだPC-6001初代の復活。そしてこれをPC-6031と繋いで,当時の憧れを具現化する作戦に出ましょう。

 うちのPC-6001は満身創痍で,20年ほど前に電源回路(初代はシリーズレギュレータなのです)の製流用ダイオードがショート,メイン基板のタンタルコンデンサもショート,サブCPUの8049が破損し交換(ちょうど手に入ったmk2のサブCPUに交換しました),PC-6006(RAMカートリッジ)のDRAMが1つ破損し交換と,なかなか苦労して修理した記憶があります。

 とりあえず電源を入れてみると動いたので深刻な故障はなさそうですが,困ったのは長年接触していたビニールケーブルの可塑剤によって筐体の一部が溶けてしまっていることです。こればかりはどうにもなりません・・・

 部品取りとして買った別のPC-6001から筐体を持ってくるしかないのですが,これも過去に一度全塗装している(しかしその後汚れて傷だらけになってしまった)ので,まずはこれを剥がすことから始めないといけません。

 コツコツやるしかないのですが,いつになることやら・・・

私のAppleII~パドルが動かない

 修理が終わったAppleIIでしばらく遊んでいたのですが,思った以上にパドルやジョイスティックがないと全く遊ぶことが出来ないソフトが多いことに気が付きました。

 ジョイスティックがあくまでオプション扱いだった国産の同時期のパソコンでは,ほとんどの場合キーボードで遊ぶことが可能だったので,AppleIIでも似たようなものだと思っていたのですが,冷静に考えて見るとAppleIIではパドルが標準添付で,同梱のデモソフトの1つにあったブロック崩しもパドルが繋がっていないとゲームが始まらないというものだったりします。

 AppleIIのパドルはスイッチでもなく電圧入力でもなく,抵抗入力です。内部にかの有名なタイマICである555が4つ入った558というICがいて,コイツの時定数を外部のボリュームで可変するのです。

 その結果558の発振周波数が変化しますが,この周波数をソフトで読み取って,パドルの回転角を知るわけです。

 標準添付されたパドルはまさにツマミであり,ジョイスティックのような二軸のもんではありませんでしたが,後々オプションで販売されるようになったジョイスティックは,再田尾で4つまで接続可能なパドルのうち2つをX軸とY軸に割り当てていました。

 ボリュームは150kΩで,目一杯回して0Ωになった場合でも,本体内に100Ωが入っていますので発振は止まりません。

 ということで,amazonでプレスレ用に作られたと思われるアナログスティックのコピー品を安価に買います。これは10kΩですので,そのまま接続してもまともには動きません。

 そこでいろいろ調べてみると,GNDとの間にコンデンサを追加する方法がありました。なるほど,よく考えつくなあ。

 内蔵のコンデンサは0.022uFで,外部のボリュームが150kΩですので,その積は3300。これを10kΩで割ってやると,0.33uFになります。この組み合わせなら同じ周波数が発振するというわけです。

 早速作ってみました。問題ないはず・・・なのに,全く動きません。

 ボタンは動くのですが,パドルは全く動作してくれないのです。配線ミスかもしれないと思い,直接100kΩの抵抗をゲームI/Oに差し込んだのですが,反応なし。

 オシロスコープで波形を見てみると,発振していません。ははーん,これはよくある,558の故障だな。

 しかし,558はすでに製造中止。「買えない」「見つからない」「aliexpressで買ったら偽物が届いた」「555を4つ使った互換基板を作った」と,世界中のAppleIIマニアが558の故障に怯えて毎日を過ごしているのを知っているだけに,私も焦りました。

 しかし探してみると,秋葉原のお店で売っていることが判明。通販もやっているので早速手配しました。本場アメリカでは枯渇したICが秋葉原の店頭にあるとは,すごいです。

 数日後届いた558を交換しましたが,やっぱりだめでした。うーん,ここが故障しているわけではなさそうです。しかし,558は555に比べても単純な回路で動作しますし,4つのモジュールすべてが動いていませんので,どうも納得いきません。

 回路図を改めて眺めてみると,4つのモジュールで共有している0.1uFのコンデンサが目に付きました。普通の積層セラミックなのであまり気にしなかったのですが,調べてみると正常に値が出てこず,非常に小さい値を示しています。

 交換すると,まさにビンゴ。ちゃんとパドルが動くようになりました。積層セラミックって劣化するんですね。これ,DCで容量を測定すればほとんど容量が出てこず,しかし1kHzで測定すると正常な値が出てくるのです。こういう故障もあるんだなあと,いい勉強になりました。

 さすがに40年を超えた部品ですしから,そりゃ壊れるでしょう。ということで,一気にマザーボード上の0.1uFを全部交換することにしました。手間がかかりましたが,これで一安心。

 起動すると,なにやらカーソルの点滅がやけに速いのです。こんなものかなあと思っていたのですが,どうも気ぜわしいのでYouTubeで他の方のAppleIIを見てみると,やはりもっとゆっくり点滅しています。

 そういえば,AppleIIのカーソル点滅は,555を使ってハードウェアでやってたよなあと思い出し,回路図を見てみました。すると,ここでも0.1uFのコンデンサに3.3MΩと12kΩの抵抗でタイミングを作っています。計算すると理論値は2.1Hz程度になるのですが,実測すると2.8Hzと随分高速です。

 この部分のコンデンサは精度と温度特性を考えてセラミックではなく,フィルムコンデンサにしたので,値がおかしいという事は考えにくいです。新品ですので破損もないでしょう。

 ならば抵抗か,と周波数を決定する抵抗の3.3MΩを調べてみると,なんと2.5MΩほどに下がっていました。計算すると2.8Hz程度になりますので,これが原因だったようです。

 手持ちの3.3MΩに交換すると,点滅がもとの落ち着きを取り戻してくれました。

 抵抗,それも1MΩを越えるような高抵抗は,結構簡単に劣化して値が変わります。今回は近くにあるコンデンサの交換の際に熱がかかって,値がずれたのでしょう。

 他の抵抗も予防的に交換して,これでようやく完成です。

 電源ユニットの一次側のコンデンサも,高圧のコンデンサを入手出来たのでこの機会に全部交換しました。いやー,大変でした。

 これで思いつく所はすべて手を入れました。チェックプログラムも通ります。怪しかったキーボード裏側のスライドスイッチ(RESETかCTRL+RESETかを選ぶ)も直しました。

 あとは散々遊ぶだけです。試しにと始めたチョップリフターで,あっという間に1時間。ロードランナーは本家ならではのサークルクリアに見とれているうちに30分経過してしまいました。

 私のAppleIIはそれほど程度は良くなかったのですが,それでも致命的な故障はなかったですし,それでもプロンプトは出てくれましたので,対応が楽でしたし,必ず直せるという見込みも立ちました。ラッキーだったと思います。

 AppleIIへの理解が深まり,興味も出てきました。当時,AppleIIを買えたのは大人だけで,いわば今の私の年齢の人が手に入れたものだったはずです。もし私が当時生きていたら,今のような関心を持つのだろうと思います。

 それは,子どもの頃に使っていたPC-6001への理解の深さとは別の物で,単に長い時間使ったとか,自分の基礎を作ったとか,そういうノスタルジーとは違う,大人ならではの理解力の高さによる,楽しさなんじゃないかと思います。

 そういえば私は,PC-6001のメモリマップやVRAMの構成を,知りませんからね。

 もうしばらくAppleIIで遊ぶことにします。

私のAppleII~電源修理編

 さて,昨日のことなのですが,修理したばかりのApple2が,壊れてしまいました。

 リビングのテーブルにApple2を設置し,のんびりとディスクのフォーマットを行っていたところ,なんだかお湯が沸いたような音が出たと思ったら,突然ボンと爆発音がしました。

 煙がふわーっと立ち上がってプラスチックの焦げた臭いが広がります。不思議と本体は動き続けているので,私はてっきりディスクドライブが壊れたんだと思っていました。

 あわてて電源を切りましたが,煙はおさまりません。嫁さんが血相を変えてすっ飛んできました。このあとしばらく説教され,私は打ちひしがれながらApple2を自室に運び込んだのでした。

 よく見ると,電源ユニットから煙が出ています。しかもカラカラと音がしています。なにかの部品が吹き飛んだのでしょう,1980年の日付印が押されたASTEC製の電源ユニットですので,42年前ですから壊れてもそりゃ仕方がないです。

 しかし,爆発というのは妙にテンションが上がります。命の危険があると動物はアドレナリンを増やして活発に動くようになるそうですが,まさにこれです。

 気を取り直して電源ユニットを取り外して開封しました。このASTEC製のAA11040Bという電源は,開封に2ヶ所あるリベットをドリルで潰してしまわないといけませんので,ドキドキしながら作業を続けます。

 フタを開けると,見事に1次側のMPコンデンサが破裂して吹き飛んでいます。ACラインに入っている0.1uFです。焦げ臭いので,袋に入れたまま撮影しました。

 20220303115447.JPG

 ヒューズも切れていませんし,他の部品に破損や焼損はなさそうです。発熱や放電による変色も見られませんので,とりあえず壊れたのはここだけのようです。

 しかし,これだけの破損がありながら,なぜヒューズが切れなかったのかなあと思って回路図を見ていると,このコンデンサの後ろにヒューズがあるんですね。これじゃコンデンサの破損による事故を防げないですよね。いいのかなあ。

 早速修理ですが,あいにく私は高圧系の部品の在庫はほとんど持っていません。なので耐圧250VのAラインに使えるようなコンデンサなんて持っていたかなあと探してみたのですが,なんと半年前に買ったデジットのお楽しみ箱に数個入っていました。安規マークも入ったものなので,今回の用途にもってこいです。

 さらに,せっかくですので電解コンデンサも可能な限り交換しますが,やっぱりスイッチング電源の高圧側に使えるような高耐圧品の在庫を持っていないので,低圧側のコンデンサを中心に交換を行います。

 ここで失敗したのが,電解コンデンサの極性です。基板のシルク印刷が間違っていると思われる部分があり,回路図を確かめる羽目になりました。google先生に聞いてみると,どうも世界中のユーザーが同じような問題で困っているようで,正しい極性を調べることが出来ました。いくつか反対になっていたようです。

 外したコンデンサの容量をチェックすると,ほとんどのコンデンサで問題がありません。1つだけ半分になっていた物がありましたが,無理に交換する必要もなかったのかも知れません。

 高圧側についてもチェックしましたが,こちらも今のところ問題はなし。

 ところでASTECと言えば,今でも電源メーカーとして知られていますが,当時は香港で製造されていました。香港がまだイギリス領であり,西側と見られていた時代の話です。

 さすがに香港ということで,部品も日本製が多いです。まだ日本が製造で潤っていた時代ですからね,なんか感慨深いものがあります。トランジスタは松下やNECのものが多く使われていますし,電解コンデンサもニチコンのものが入っていました。

 さて,部品の交換を済ませたのち,目視で確認を行ってからこわごわ通電します。電圧は問題なく出ているようで,これなら本体に戻すことが出来るでしょう。

 本体に戻して電源投入。何事もなかったようにApple2は起動しました。

 一難去ってまた一難。そりゃ40年以上前の機械ですので,まともに動く方がおかしいのですが,予防的な交換作業も行えましたし,これでもうしばらく安全に使えるでしょう。
 

 

私のAppleII

 昨年秋に実家が引き払われ,すぐに必要がないが捨てるに惜しいものは,捨てるか自宅に運び込むかの判断を迫られました。

 多くが捨てられる運命にありながら(そしてそれは時に失敗でったことを思い起こさせますが),しぶとく生き残ったものがAppleIIです。

 このAppleII,経緯は良く思い出せないのですが,大学時代に働いていたパソコンショップに,ジャンクとして持ち込まれた大量の廃棄物に混じっていたものを,安く分けてもらったんじゃなかったかと思います。

 AppleIIに非純正の5インチドライブ,たったこれだけです。あとはお店に残っていた数枚のディスクのバックアップで,他の周辺機器もマニュアルも一切ありません。

 一応,DOS3.3が起動するところは確認出来たのですが,ProDOSは起動しません。そこから先はなにもすることが出来ず,また使い方もよく分からないので,そのまま放置していました。

 せめてなにかゲームが動けばなあ,と思ったりしましたが,ないものはないですし,そもそもこのAppleIIの素性がわからないですから,ゲームが動くものなのかどうかさえも判然としません。

 しかし,少し温かくなってきたこともあって,目の前にあるAppleIIを本気で動かして見ようという事になりました。(同時にPC-6001も復活させるのですがそれはまた後日)

 まず,このAppleIIが何者なのかです。調べてみると,AppleII J-plusであることがわかりました。RAMは48kB実装,ROMは10kBASICが搭載されています。キーボードにはカタカナも印刷されており,底面には冬至の代理店である東レのシールが貼られていますし,マザーボードにも"Toray"のスタンプがあちこちに押されています。

 当時わからなかったのはここから先で,まずJ-pulsとは何者なのか,です。互換性が低いので嫌われているとか,いろいろ話は耳にしますが,本当の所はどうなのでしょう。

 まず,東レが輸入したものですので,電源は100Vにもきちんと適応しますし,検査も行われています。信頼性は高いでしょう。ただし,F800からのモニタROMには,ベースとなったplusの"AUTOSTART"とは異なるROMが刺さっており,これが互換性を下げているのだそうです。

 ただ,この個体はROMがEPROM(2716)に換装されていて,そのためにCS2を反転させるインバータ(7404)を挟んだ下駄が履かされていました。これ,もしかしたらplusのAUTOSTARTに感想してあるんじゃないですかね・・・

 30年ぶりに通電しますが起動せず。ソケットを少し押し込めば起動するようになりましたので,接触不良だったのでしょう。

 次,ディスクドライブです。ニューテックという会社の互換ドライブ「飛鳥」で,チノンのハーフハイトのドライブが使われています。

 純正のDiskIIが良かったのですが,これもないものは仕方がありません。とはいえ,問題は互換性だけの話であって,信頼性や大きさなどは飛鳥の方がよいと思います。

 インターフェースカードは何故か純正と互換品の2枚が手元にあります。純正品は16と書かれたシールがあるので16トラック対応品でしょう。たしかどちらのカードも動作したと思うのですが,今回は純正品を使うことにします。

 これも最初は動かなかったのですが,抜き差しを何度かやっているうちに動くようになりました。接触不良には困ったものです。

 さて,ここまで動作する事がわかったので,一度分解して清掃します。ケースは風呂場でゴシゴシ荒い,キーボードはキートップを外して洗剤で洗います。マザーボードもホコリを払い,元通り組み立てます。

 綺麗になったAppleIIですが,さらに話を前に進めましょう。

 AppleIIには膨大なソフトがあるのですが,その多くが合法/非合法な形で,ディスクイメージとしてネット上に転がっています。体験するだけならエミュレータですぐ楽しめるのが良いところなのでしょうが,実機で動かすという話になると急激にハードルがあがります。

 AppleIIのディスクは一般的なフォーマットとは異なり,PCで書き込んだり出来ません。仮に出来たとしても,今どきPCに5インチの1Dや2Dのドライブが繋がっている可能性はほぼゼロでしょう。

 調べてみると,ADTProというソフトがあるそうで,これを使うとPCから実機に転送し,ディスクに書き込むことも出来るんだそうです。

 ただし,基本的にはAppleIIeやAppleIIcをターゲットにしているようで,私のAppleII+ではかなり大変なことがわかりました。

 まず,データの転送にはシリアルポートを使うのですが,AppleIIeやAppleII+ではSuperSerialCardなるカードが必要です。そんなもんあるかいな!

 そういう人のために,とカセットインターフェースを使う方法も用意されていて,その発想に感心したのですが,ディスクへの書き戻しはProDOSベースでないといけないそうです。

 そのProDOSはAppleII+でも動くのですが,RAMを64kBに増設しないといけないらしく,それにはLanguageCardなるカードが必要です。そんなもんあるかいな!

 とまあ,ここで詰んでしまったのですが,時代は21世紀です。今手元にある部品をかき集めれば,16kBくらいのメモリ増設など訳ないんじゃないかと,自作の道を模索してみました。

 AppleIIの生みの親のWozは,他社に先駆けてDRAMを手なずけて,安い価格で大容量メモリをAppleIIに与えることが出来ました。これがAppleIIの勝因の1つだと言えるのですが,私の手元には256kBitのSRAMが腐るほどあります。アクセスが簡単な非同期メモリであるSRAMを使えば,こんなカードは朝飯前,のはずでした。

 検討を始めて,私は増設っていうけど,どのアドレスにメモリを増設すんのよ,という疑問にぶち当たります。そう,AppleIIは,48kBのRAM,12kBのROM,そして4kBのI/Oがマッピングされていて,6502という8ビットCPUのアドレスをすべて使い切っています。

 64kBをすべてRAMにしてしまえば,ブートさえ出来ません。こういう時日本のマシンではバンク切り替えを使うんだよなあ・・・

 調べてみると,なかなかややこしいことがわかってきました。まず,64kBフルRAMしてBASIC以外の言語を走らせるために,LanguageCardというものがありました。

 これは16kBのRAMとF8のROMソケットがある純正カードですが,この16kBがマッピングされるのは本体のROMのエリアである$D000から$FFFFまでです。あれ,12kBしかこのエリアはあいていませんが,このうち$D000から$DFFFまでの4kBは,バンクを切り替えて2枚使えるようになっています。

 これで一応16kBマッピングできましたが,今後はROMとの切り替えが必要です。そこでカード内にソフトスイッチを設けて切り替えています。以下の様な感じです。

$C080 : BANK0のRAMをリード,ただし書き込みは禁止
$C081 : ROMをリード,2回目のアクセスでBANK0のRAMが書き込み可能
$C082 : ROMをリード,RAMへの書き込みは禁止
$C083 : BANK0のRAMをリード,2回目のアクセスでBANK0のRAMが書き込み可能
$C088 : BANK1のRAMをリード,ただし書き込みは禁止
$C089 : ROMをリード,2回目のアクセスでBANK1のRAMが書き込み可能
$C08A : ROMをリード,RAMへの書き込みは禁止
$C08B : BANK1のRAMをリード,2回目のアクセスでBANK1のRAMが書き込み可能

 いやはや,これを実装しないといけないんですね・・・面倒くさい。

 素直にLanguageCardやサードパーティーの互換品をデッドコピーすることも考えたのですが,これにはDRAMが使われているので面倒すぎます。ここはさくっとSRAMを使いたいのです。

 そこで,いろいろな回路を参考にして,256kBitのSRAMを使った16kB増設メモリカードを設計しました。

 256kBitだと計算があわない?鋭いですね,その通りで,今回は半分の16kBだけ使っています。もったいないですが,設計が楽なのでそうしました。

20220302153430.JPG

 これが完成写真です。SRAMは手持ちの関係でNECのuPD43256を使っています。あとは74HCが5チップで,なかなか小さくまとまっていると思います。余ったゲートは1つもありません。

 そうそう,~INHという信号を本体に戻す必要があるのですが,これ,本体内部でワイアードORされるので,オープンコレクタで出力しないといけないんですよ。でも,せっかくCMOSで作っていますし,わざわざこれだけのためにTTLを使うのもバカバカしいので,ここは基本に戻って,トランジスタで作ってあります。といっても抵抗内蔵のデジタルトランジスタなので簡単でしたが・・・

 あと,カードエッジコネクタと基板ですよ。今どきApple用のユニバーサル基板なんか簡単には手に入りませんので,MSX用のものを買いました。形がややいびつなのと,コネクタのサイズがやや大きいので削ったことを除けば,良い基板だったと思います。

 基板も高価ですし,せっかく作るのですから,真面目に回路を設計,検証して,間違いないように配線をしていきます。ソフトスイッチまわりはD-FFを多用しますので,その出力を上手く条件に当てはめて,SRAMのアドレスやらCSなどを作っていきます。

 慎重に進めた結果,一発動作です。これはうれしいなあ。

 DOS3.3では,整数型の6KBASICをこのカードにロードしてくれます。INTと打ち込めばプロンプトも>になりますし,6kBASICでないと動かないデモソフトも動くようになりました。

 さて,これでうちのAppleIIplusは64kBモデルになりました。ProDOSも動くはず・・・あれ,動きません。

 ロードが途中で止まりますので,RAMカードに問題があるのかも知れません。

 そこで,いろいろ調べたのですが,まずDOS3.3で6kBASICに切り替えが出来ているので,多分RAMは大丈夫なはずです。その後,どうにかRAMチェックプログラムを手に入れたのですが,やはり問題なしという結論になりました。

 ただ,このチェックプログラムは,文字化けがすごくて,まともに画面が表示されていませんでした。AppleIIeなど小文字が使えるマシンをターゲットにすれば文字化けも起こるものなので気にしてなかったのですが,どうも大文字ばかりが使われているようです。

 さらに同じプログラムでROMをチェックすると,F8のROMは"Unknown"となってしまいました。ここは本来"AUTOSTART"と出て欲しいのです。

 うーん,もしかしてこれがJ-plusの非互換性なのかも・・・

 とりあえず,AUTOSTARTのROMを入手しましょう。とはいえ,ROMそのものを手に入れるのはもう不可能。そこで,PlusのF8のROMイメージを手に入れ,これをEPROMに書き込むことにします。

 でも言うは易しで,私は2716や2732が書き込めるライタなど持っていません。これらはピン数が少ない,複数電源が必要,書き込みに21Vが必要ときつい縛りがあり,多くのROMライタが対応しなくなっています。

 ということで手持ちのライタで書ける2764を9316BというAppleIIのマスクROMに変換する下駄を作る事にしました。せっかくですので,PlusのROMの続きにJ-plusのROMも置いておき,スイッチで選べるようにしておきます。

 さっとバイナリを準備し,いざ書き込むとエラーで書き込めません。しばらく悩んだのですが,私が使っているLEAPER3cは27C64には対応していても,2764には対応していないことを忘れていました。そう,このデバイスには21Vの書き込み電圧が必要で,LEAPER3cは対応しないのです。

 仕方がないので27C256で書き込み,下駄基板を改造して本体に装着。凡ミスをいくつか修正して,起動させることができました。

 チェックプログラムでもROMを"AUTOSTART"と認識してくれるようになりましたので,ドキドキしながらProDOSをブートさせます。すると上手く起動してくれました。ああ,初めて見るProDOSの起動画面・・・

 こうなってくると,ADTProも動き出しますし,ゲームを書き戻すことも出来るようになりました。夢だったTimeZoneも,この目で実機で動くのを見る事が出来るなんて。移植版で死ぬほど遊んだChopLifterやLodeRunnerも,動いています。

 大きな感動に包まれ,こういう作業をちゃんと続けられる技術力がまだ残っていたことに安心したのですが,気が付いたのは5インチのFDの在庫です。2HDばかり手元に残し,2Dは捨ててしまったのですが,実はX68000もPC-9801も捨ててしまったので2HDには出番がありません。むしろ,X1turboやPC-6001,AppleIIといった2Dばなり使うマシンが残っているのです。

 しかも,貴重な10枚のブランクディスクは,カビにやられていました。

 そこで当時,高価だったディスクを節約する方法として良くおこなれた,裏返して使うという方法を試みました。

 AppleIIのディスクはかなり特殊で,インデックスホールを用いずソフトだけでセクタを管理します。なので書き込み禁止ノッチだけを開けてやれば,裏返しても使えるそうなのですが,果たして互換ドライブでも使える手口なのでしょうか?

 やってみたところ,上手くいきました。これでAE(ゲームです)なんかも1枚におさまります。

 ということで,立った1週間で急激にAppleIIを進化させました。まさか私のAppleIIのROMがAUTOSTARTではなく,それが原因でProDOSが動かなかったというのも,このAppleIIを入手した時には思いつくことすらなかったことでしょう。

 一発動作のRAMカードもうれしく,久々に30年前の根性による配線を堪能しました。面倒と思い土,やってみると楽しい作業でした。

 今回の製作にはもう1つ記念すべきことがあり,それはワイアリングペン用のワイヤを,とうとう使い切ったということです。

 それは小学6年生の時の話で,万能基板を使い出した当時の私は,配線をなんとか楽ちんに出来ないものかと悩んでいました。抵抗の足では交差させることができませんし,ビニール線では太くて盛りそばのようになってしまいます。

 そんなとき,ペンの先から細いワイヤーが出てきて,しかもハンダの熱で被覆が溶け,そのままハンダ付け出来てしまうと言う夢のような話があると耳にしました。当時よく行っていたシリコンハウス共立でも売られていましたが,輸入品だったのでびっくりするほど高価でした。

 そこで,消耗品として売られていたワイヤだけ買ってきました,それでも当時500円ほどしたと思うので,大変高価なものだったのです。

 本当にハンダの熱で被覆が溶け,そのままハンダ付けまで出来るのかなあと試したのですが,そんな甘い話はなく,被覆が溶けるのは事実でも,はんだめっきをしないでハンダ付けを行うのは難しく,そんなに作業が楽になるというものではありませんでした。

 ペン本体も,古いボールペンを改造して作ってはみたものの,やっぱり不便で使わなくなりましたが,一生かかっても使い切れないだけの長さのワイヤを,絶縁された極細のワイヤとして細々と使うことにしたのでした。

 しかし,数年後にはそこそこ使いこなせるようになり,このワイヤで多くのものを作ってきました。使っても使っても減ることのない,底なしのワイヤでした。

 そんなワイヤですが,少し前から量が減っているのが目立って来ました。そして今回,とうとう使い切ったというわけです。35年かかりました・・・

 実は,このワイヤはただのポリウレタン線で,コイルを巻いたり小型モーターをバラしたりすれば,簡単に手に入るものです。一応この太さのポリウレタン線はリールで買ってあるのでそれこそ一生困ることはないとおもいますが,独特の緑色で着色されたこのワイヤーが見納めになるというのは,さみしいと同時に妙な達成感もあったりします。

AVRの新シリーズとPICKIT4

  • 2022/02/09 13:36
  • カテゴリー:make:

 先日,SRAMとEEPROMを相互に読み書きする治具をAVR(ATmega88V)で作ったわけですが,実はブレッドボードで作りました。ブレッドボードはこれまで何かと窮屈ですし,綺麗に作る事が出来ない上に,苦労して作ったのにすぐに壊してしまうと言うはかなさが残念で,あまり積極的に使ってこなかったのです。

 まあ,結局の所ハンダ付けが好きだったという事に尽きるのですが・・・

 ですが,今年の冬の寒さは厳しくて,屋外並みに寒い作業部屋では耐えられず,暖かいリビングで作業をするために,ブレッドボードを使って見たところ,これがめっぽう面白いのです。

 DS1742Wの読み書きを行うプロジェクトは終わってしまいましたが,ちょっとさみしかったので,気になっていたAVR関係の宿題をやってみることにしました。

 私のAVRの開発環境は10年以上更新されておらず,IDEはAVR Studio4.19,コンパイラはWinAVR,ライタはデジットのAVRWRT2という,ミニマムかつ古くさいものです。そう,AtmelがMicrochipに買収されるだなんて,夢にも思わなかった時代のままです。

 ですが,tiny2313とかtiny13を使っている分にはこれでもう十分で,むしろ変に更新してしまうと,リビルドしたときにギリギリまで使い切ったメモリに入りきらないという話が出てきたりするので,そのままにしてあります。

 しかし,これではデバッグも厳しいですし,新しい品種に対応しません。秋月最安値のtiny13が値上がりして,代わりに最安値に躍り出たtiny202に移行しようにも,この環境ではコンパイルさえ出来ないのです。

 昨年の春にPICKIT4は買ってあったので,tiny202もこれで開発すれば良いのですが,それにはMPLAB XなりMicrochip Studioを導入しなくてはいけませんし,なによりAtmelがMicrochipに買収されたという現実を受け入れることから始めなくてはいけません。

 なにせツール類をアップデートせず,AVRをマイコンではなく汎用電子部品として使っていた私ですので,最新の状況にするには不安が伴います。

 AVRシリーズはどのくらいMicrochipに統合されているのだろう?
 AVRのコンパイラはXC8だけ?XC8ってフリーで使えるの?
 それまで書いたコードはリコンパイルで使える?
 PICKIT4でAVRってちゃんと使えるんかい?
 tiny202って旧シリーズのAVRとは何が違ってる?

 まあ,案ずるより産むが易し。AVRを使うと言うよりも,新しいマイコンを開発環境ごと新規に導入したので勉強し直しだ,くらいに考えて試してみましょう。

 まず,Microchipとの統合具合ですが,最近はかなり総合が進んでいるように思います。というのは,PICKIT4でAVRの開発をするのが当たり前になっているような感じですし,MPLAB Xを使って例もよく見るようになっているからです。

 ですが,私はAtmel Studioを引き継いだMicrochip Studioを使うことにしました。これでもちゃんとPICKIT4をサポートします。

 コンパイラはgccもちゃんと使えます。これは安心。XC8はフリーでも使えますが,最適化が出来ないので,メモリの小さな安いマイコンでは影響があるように思うので,私は使いません。

 そうなるとソースの互換性ですが,ほぼ大丈夫だと思います。思います,と言うのは正直に言って試していないからなのですが,実は知らない間にマクロの使い方が随分変わってしまっていて,リコンパイルする気が失せてしまったからです。

 例えば,_BV(PC0)なんていう書き方はもうしなくて,今はPIN0_bmと書いたりします。DDRBもPORTB.DIRと書きますし,これは本当に新しいマイコンを覚えるようなもんです。

 もちろん,古い表記でもビルドは通りますし,ちゃんと動きます。けど,わざわざ新しく書くコードで古い書き方を踏襲するのもおかしいので,この際新しい書き方を覚えることにしました。

 で,最初の一歩,ハードウェア界のHelloWorldたるLチカを書いて,PICKIT4でデバッグです。UPDIは非常に楽で,たった3本繋ぐだけでデバッグも書き込みもシームレスにこなしてくれます。これはいいですねえ。

 PICKIT4は高電圧書き込みも行えますので,私のようなうっかりヒューズビットを間違って設定してしまう人も救えます。

 ということで,tiny202 + PICKIT4 + MicrochipStudioで一連の作業が出来ました。やってみると簡単です。

 次はI2Cです。8ピンの小型マイコンではI2Cが使えるとなにかと便利で,LCDからEEPROMからセンサから,ピンを消費することなくペリフェラルを増やせます。しかも使う端子は2本だけ。

 tiny13やtiny2313では,私はGPIOを叩いてソフトでI2Cマスタを実装して使っていましたが,ATmegaシリーズではTWIというハードウェアが入っているので,随分と楽になりました。

 そのTWIが,tiny202には入っています。これは助かったと,早速使って見ようと思ったのですが,なかなか大変でした。

 こういう場合,同じTWIですのでコードの互換性はあると思うじゃないですか。レジスタ構成まで同じとはいいませんが,レジスタ名や手順などは同じじゃないかと期待していました。

 しかし,コードをベタ移植しても全然動きません。クロックが異なるせいかもと思って修正をしましたがだめでした。

 こういう場合は真面目にデータシートを読むに限ります。するとATmegaのTWIとtiny202のTWIは全然違うものだとわかりました。スタートコンディションの出し方も異なるほどですので,レジスタ構成だけではなく手順も異なるくらい全然違うものというのが正解でしょう。

 なんとか辻褄を合わせてようやく動き出しました。(実は回路も間違えていたので全く動かなかったのです)

 LCDもEEPROMも動いたので,これでI2Cは大丈夫でしょう。

 てなわけで,AVRの新シリーズを一通り動かしてみました。IDEもライタもデバッガも新しくなり,その上ソースを記述する作法や約束事も新しいとなれば,もう本当に新しいマイコンに手を出したこととなにもかわりません。

 ですが,そうだとしても,低価格,8ピン以下の小型が揃っている,多ピン大容量品もしかもDIPも手に入る,アーキテクチャが綺麗でCで書いても我慢しないですむ,そして世界中にユーザーがいる,というメリットはAVRの個性そのものであり,覚え直してでも使う価値があるものだと思います。

 特にtiny202などは,低価格なのに豊富なペリフェラルを備え,CPUにもハードウェア演算器を持つなど,安いマイコンでもここまで便利になったのかと思えるものに仕上がっています。

 惜しいのは,昨今の半導体不足のあおりを受けてか,秋月でも価格が上がったり入手が出来なくなっていたりすることでしょう。tiny13はかつて50円だったもんが110円と高騰していますし,tiny202は私が買った45円から50円に値上がりしてしかも在庫切れです。tiny202は安いときで1つ35円くらいだったこともあるわけで,それを考えるとホビーストにも厳しい状況が続いていると言わざるを得ません。

 私の場合,そのマイコンが使いこなせるとわかったとき,手元に在庫を持つようにしているのですが,今回改めて棚卸しをすると,おそらく死ぬまでに使い切らないくらいのAVRを抱えていました。tiny2313のフラットパッケージなんて,こんなにたくさんあってどうするのよ・・・



ユーティリティ

2026年01月

- - - - 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