BitScope
ずっと行方不明になっていたBitScopeが先日偶然出てきました。
アナログ2ch, ロジック8chのいわゆるMixed Signal Oscilloscopeです。
一緒に組み立て説明書も出てきたのでキットで購入したようです。インボイスの日付が2003年だったので15年前ですね。
前面の2つのBNCコネクタがアナログ入力、オシロスコープ用のプローブを接続できます。DC/ACのカップリングの切り替えはスイッチです。Ch Bは50Ω終端も可能になっています。
ずっと行方不明になっていたBitScopeが先日偶然出てきました。
アナログ2ch, ロジック8chのいわゆるMixed Signal Oscilloscopeです。
一緒に組み立て説明書も出てきたのでキットで購入したようです。インボイスの日付が2003年だったので15年前ですね。
前面の2つのBNCコネクタがアナログ入力、オシロスコープ用のプローブを接続できます。DC/ACのカップリングの切り替えはスイッチです。Ch Bは50Ω終端も可能になっています。
昨日の表参道アドベンチャーに続いて南青山アドベンチャーです。
「南青山アドベンチャー」は独立なった「AhSKI!」1983年号に掲載されたテキストのアドベンチャーゲームです。やはり機種依存部分が分離された構造で、本体プログラムは共通で PC-6001, PC-8001/8801, MZ-80B/2000, PASOPIA の各機種に対応していました。
これもZ80バイナリなのでZ80コードを実行できる何らかの環境が必要なのも同様です。
プログラムは9000H~0E817Hまでとかなり大きくなっています。グラフィックは無いものの近傍のマップが表示されたりと画面表示も進歩していて、機種依存部分も9000H~91FFHと拡大されています。実行時にRAMに転送して実行しなければならないという状況も同様です。
機種依存部分のアドレスは以下のようになっています。
呟いたら意外に反響があったので資料を残しておきます。
「表参道アドベンチャー」は「ASCII」1982年4月号の綴じ込み付録「AhSKI!」に掲載されたテキストのアドベンチャーゲームです。ソフトウェアに互換性の無いパソコンが乱立していた時代ですが、機種依存部分を分離することにより本体共通で PC-8001, MZ-80K/C, MZ-80B の各シリーズで実行可能となっていました。
この機種依存部分が分離されているということはそこだけ作り直せば他のハードウェアでも実行できる可能性があるということです。
ということで自作のボードで動かすために機種依存部分を解析しました。
こんなことをする人は少ないかもしれませんがここに記録しておきます。
まずこのゲームはZ80のバイナリなのでZ80か互換のプロセッサが必要です。あるいはZ80をエミュレーションする方法もあります。
昨日の給湯器リモコン、例によって早速分解してみました。
開けると基板の裏面が見えます。
左上にNEC製のマイコンが一ついます。
その下のほうに「S-80054HNM」というシルクがありますが、これは「S-8054HNM」の間違いではないかなと思います。だとすると電源電圧の監視(いわゆるリセット)ICですね。「G」「OUT」も辻褄が合っています。
右下には大きなチップ抵抗があります。
マイコン部分をアップにしてみました。NECのμPD75106GF-J11、4ビットのマイコンのようです。
先代の給湯器リモコンの交換工事で外し方がわかったので、先々代の給湯器のリモコンも外してみました。
これは洗面所に取り付けられていたので邪魔にならず、機能を失った後もずっと放置されていました。
PURPOSEというのは知りませんでしたが調べてみると住宅設備のメーカのようです。「給湯燃焼」などとあるようにガス式の給湯器です。
化粧カバーを外してみたところです。
上下中央の穴が固定用の穴ですね。下側は傾きの微調整用に長穴になっています。
いろいろやってMAA-1は復活しました。今回はその経過を書いてみたいと思います。
最初、Z8613を動かす (その3:苦戦中...)のようにアドレスバスの周波数をみようとしたのですが、リフレッシュアドレスやI/Oアクセスなどの命令フェッチ以外のアドレスが混じってしまいます。たとえテスト用に短いループにしてもリフレッシュアドレスは排除できません。
仕方ないのでアドレスは諦めて他から動きを推測することにします。
まずROMの先頭から C3,00,00 とJP nn命令による無限ループを書いてM1の周波数を測ると400kHzでした。M1は一周に1回(C3をフェッチ直後に)出るので、4MHz÷400kHz=10となって一周10クロックとなりJP nn命令のステート数と一致します。
同様に 18, FE とJR e命令にすると333kHz、4MHz÷333kHz≒12となってやはりJR e命令のステート数に一致します。
ちょっと懐かしいパーツ、といってもただのカバーですけど。
フロッピーディスクドライブのベゼルのように見えますが単なるカバーです。
これ初めて組み立てたPCのケースに付属していたものです。5インチベイのカバーは普通の平らなものだったのですが、なぜか3.5インチのカバーはこんな形状のものが入っていました。
3.5インチの外部ベイは2つありましたが、普通3.5インチのFDDは1台しか積まないので片方はこれで塞ぎます。
それにしても、なんでこんな紛らわしい形状にするのでしょう?
金型のコストも上がるでしょうに。
その後もケースはいくつも買っていますが、こんなのは見ていません。ショップなどでも見かけた記憶は無いですね。
まさか手に入るとは思っていなかったものですが、少し前に入手しました。
IntelのB1702A、最初期のUV-EPROMです。ガラスがすりガラスになっているのと上から貼ってあるのが最近のものとは違いますね。これはCERDIPですが他に白いC1702Aもあって、本当はそっちが欲しかったのですが...
世界で最初に商品化されたUV-EPROMは1971年にIntelが発表した1702でした。容量は256×8bitの2kbitで、初めての消去可能なPROMだったはずです。
この1702Aはその改良版で、書き込み条件が若干緩和されています。
MC68020で外部バスがデータ・アドレスともに32ビットとなってメモリは当初計画のフルスペックの4GBとなりました。とはいえ登場した頃はまだ4GBのメモリを必要とする応用など無かったのでアドレスデコードが面倒くさいだけと思った人も多いでしょう。
ここまできてもメモリ管理ユニット(MMU)は内蔵されていません。メモリ空間の拡張のためにもMMUを必要とした80286などと異なり、必要性がそれほど無かったからかもしれません。
それでも仮想記憶には必要なので外付けとして用意されました。一つはMC68000,MC68010用のMC68451を拡張したらしいMC68461ですが、残念ながら詳しい資料が見当たりません。もう一つはMC68851、こちらは一部のパソコンなどにオプションで搭載できましたからそれなりに知られていました。いずれも論理メモリ空間・物理メモリ空間はともに4GBです。
命令フェッチのみですが256バイトのキャッシュも内蔵されました。
MC68010の前にMC68008について書いておきましょう。
Intelの8088に対抗して小規模向けに作られたのがMC68008です。データバスが8ビット、アドレスバスが20ビットに縮小されています。メモリ空間は1MBとなります。
これで不足するなら素直にMC68000を使えということです。
それでは本題のMC68010を見ていきましょう。
ハードウェア的にはMC68000と互換でそのまま挿し換えもできます。当然バス幅にも変更はなく、メモリ空間も16MBのままです。ソフトウェア的にはさまざまな改良点がありますが、メモリに関するものには次のようなものがあります。