表参道アドベンチャー

テーマ:

呟いたら意外に反響があったので資料を残しておきます。

「表参道アドベンチャー」は「ASCII」1982年4月号の綴じ込み付録「AhSKI!」に掲載されたテキストのアドベンチャーゲームです。ソフトウェアに互換性の無いパソコンが乱立していた時代ですが、機種依存部分を分離することにより本体共通で PC-8001, MZ-80K/C, MZ-80B の各シリーズで実行可能となっていました。

この機種依存部分が分離されているということはそこだけ作り直せば他のハードウェアでも実行できる可能性があるということです。

ということで自作のボードで動かすために機種依存部分を解析しました。

ボードは翌年の「南青山アドベンチャー」のために製作したものですが問題なく実行できます。

こんなことをする人は少ないかもしれませんがここに記録しておきます。

まずこのゲームはZ80のバイナリなのでZ80か互換のプロセッサが必要です。あるいはZ80をエミュレーションする方法もあります。

先々代の給湯器リモコン(分解編)

カテゴリー:

昨日の給湯器リモコン、例によって早速分解してみました。

基板 裏面
開けると基板の裏面が見えます。

左上にNEC製のマイコンが一ついます。

その下のほうに「S-80054HNM」というのがありますが、これは「S-8054HNM」の間違いではないかなと思います。だとすると電源電圧の監視(いわゆるリセット)ICですね。「G」「OUT」も辻褄が合っています。

右下には大きなチップ抵抗があります。

先々代の給湯器リモコン(外観編)

テーマ:

カテゴリー:

先代の給湯器リモコンの交換工事で外し方がわかったので、先々代の給湯器のリモコンも外してみました。

MC11 リモコン
これは洗面所に取り付けられていたので邪魔にならず、機能を失った後もずっと放置されていました。

PURPOSEというのは知りませんでしたが調べてみると住宅設備のメーカのようです。「給湯燃焼」などとあるようにガス式の給湯器です。

MAA-1を小改造(復活!)

テーマ:

カテゴリー:

いろいろやって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命令のステート数に一致します。

3.5インチベイのカバー

カテゴリー:

ちょっと懐かしいパーツ、といってもただのカバーですけど。

3.5インチベイカバー
フロッピーディスクドライブのベゼルのように見えますが単なるカバーです。

これ初めて組み立てたPCのケースに付属していたものです。5インチベイのカバーは普通の平らなものだったのですが、なぜか3.5インチのカバーはこんな形状のものが入っていました。

3.5インチの外部ベイは2つありましたが、普通3.5インチのFDDは1台しか積まないので片方はこれで塞ぎます。

それにしても、なんでこんな紛らわしい形状にするのでしょう?

金型のコストも上がるでしょうに。

その後もケースはいくつも買っていますが、こんなのは見ていません。ショップなどでも見かけた記憶は無いですね。

Intel 1702A

テーマ:

カテゴリー:

まさか手に入るとは思っていなかったものですが、少し前に入手しました。

Intel B1702A
IntelのB1702A、最初期のUV-EPROMです。ガラスがすりガラスになっているのと上から貼ってあるのが最近のものとは違いますね。これはCERDIPですが他に白いC1702Aもあって、本当はそっちが欲しかったのですが...

世界で最初に商品化されたUV-EPROMは1971年にIntelが発表した1702でした。容量は256×8bitの2kbitで、初めての消去可能なPROMだったはずです。

この1702Aはその改良版で、書き込み条件が若干緩和されています。

MC68000系のメモリ事情(その3:MC68020以降)

カテゴリー:

MC68020で外部バスがデータ・アドレスともに32ビットとなってメモリは当初計画のフルスペックの4GBとなりました。とはいえ登場した頃はまだ4GBのメモリを必要とする応用など無かったのでアドレスデコードが面倒くさいだけと思った人も多いでしょう。

ここまできてもメモリ管理ユニット(MMU)は内蔵されていません。メモリ空間の拡張のためにもMMUを必要とした80286などと異なり、必要性がそれほど無かったからかもしれません。
それでも仮想記憶には必要なので外付けとして用意されました。一つはMC68000,MC68010用のMC68451を拡張したらしいMC68461ですが、残念ながら詳しい資料が見当たりません。もう一つはMC68851、こちらは一部のパソコンなどにオプションで搭載できましたからそれなりに知られていました。いずれも論理メモリ空間・物理メモリ空間はともに4GBです。

命令フェッチのみですが256バイトのキャッシュも内蔵されました。

MC68000系のメモリ事情(その2:MC68010)

カテゴリー:

MC68010の前にMC68008について書いておきましょう。

Intelの8088に対抗して小規模向けに作られたのがMC68008です。データバスが8ビット、アドレスバスが20ビットに縮小されています。メモリ空間は1MBとなります。

アドレスは内部32ビットのうち必要な分を外部に引き出しているだけなのでメモリ空間のサイズが変わってもソフトウェアでの扱いは変わりません。

これで不足するなら素直にMC68000を使えということです。

それでは本題のMC68010を見ていきましょう。

ハードウェア的にはMC68000と互換でそのまま挿し換えもできます。当然バス幅にも変更はなく、メモリ空間も16MBのままです。ソフトウェア的にはさまざまな改良点がありますが、メモリに関するものには次のようなものがあります。

MC68000系のメモリ事情(その1:MC68000)

カテゴリー:

MAA-1の改造のデバッグ状況は逐一実況してもなんなので大きな進展があったときに書くことにしますね。

今回はパーソナルなコンピュータのメモリ事情 (第8回: 80386以降)で書くと予告してまだ書いていなかったMC68000系のメモリ事情について取り上げてみようと思います。

以前書いたようにIntelは8086で64kBから1MBにメモリ空間を拡張するに際してはアドレスのレジスタ長を8ビット時代の16ビットのままセグメントによって拡張する道を選びました。単独で64kBを超えるメモリを必要とするプログラムが少ないという当時の事情を考慮すれば悪くない選択だったのでしょう。不幸は拡張を繰り返して使われ続けたことです。

一方でMotorolaは大胆にレジスタ長をデータもアドレスも32ビットにするという選択をしました。Intelが必要に応じて少しずつ拡張していくことになったのに対し、最初に考えうる最大限を計画しておいてそのサブセットを実装していくという道です。

MAA-1を小改造(壊したかも?)

テーマ:

カテゴリー:

ちょっと試してみたいことがあってMAA-1をちょっと改造しました。

別にZ80 CPUさえ載っていればZ80ボード3号機とかでも構わなかったのですが、実験のベースとしてはシンプルな方が良いのでMAA-1を選びました。

改造の内容はとても簡単で、Z80 CPU(とSIO/0)へのクロック供給を切れるようにすること、分周器の74LS393の横にジャンパピンを設置するだけです。こんな失敗の余地のなさそうな内容だったので事前に動作確認しなかったのですが...

とりあえずジャンパをショート(改造前と同じ状態)しておいて電源を入れてみたところウンともスンとも言わないではないですか。

2年前に掲載用の画面キャプチャした時は確かに動作していたのに。

CPUの6ピン(CLK)の周波数をテスタでみてみるとなんか変です。

ページ