私のAppleII
- 2022/03/02 15:31
- カテゴリー:マニアックなおはなし, make:
昨年秋に実家が引き払われ,すぐに必要がないが捨てるに惜しいものは,捨てるか自宅に運び込むかの判断を迫られました。
多くが捨てられる運命にありながら(そしてそれは時に失敗でったことを思い起こさせますが),しぶとく生き残ったものが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だけ使っています。もったいないですが,設計が楽なのでそうしました。
これが完成写真です。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年かかりました・・・
実は,このワイヤはただのポリウレタン線で,コイルを巻いたり小型モーターをバラしたりすれば,簡単に手に入るものです。一応この太さのポリウレタン線はリールで買ってあるのでそれこそ一生困ることはないとおもいますが,独特の緑色で着色されたこのワイヤーが見納めになるというのは,さみしいと同時に妙な達成感もあったりします。