fc2ブログ
オッサンのゲームに纏わる奮闘記です。
久しぶりの更新です。
ちょうど1年半ほど前ぐらいに「そういえば自分が使った歴代のPCをもう一度集めてみたいな」というよくわからない欲求が。
自分はラッキーなことに、かなり幼少期から父親の仕事や趣味の関係でPCを触ってきていました。
PC-8001やPC-8801mk2SRが一番長く親しんだマシンでしたが、一番最初に「自分のもの」として手に入れたマシンは、このMZ-80Bでした。
FhcNVGVVQAA_TOB.jpg
#MZ-80Bとしてはあり得ない写真w

今思えばキーボードの入力、BASICの基礎、プログラムの入力方法やマシン語なんかを教えてくれた大切なマシンだったなと。
ヤフオクで入手したものは、電源、CMT周り、CRT周りの劣化がありましたが、これらは先人の方々の記録などを頼りに修理して動作するマシンに。
#今回、そのあたりは割愛

実家にあったSB-5520のテープや当時打ち込んだゲームなどを読み込ませてみると問題なく動作し、あまりの懐かしさに暫くプレイしてしまうほどですw

んで、色々と思い出してきて、「そういえばMZ-80Bを自分に売った叔父さんは、直後にMZ-2000を買っていて、その性能差にすごく悔しかった記憶」ということを思い出すとともに「I/OにMZ-80BをMZ-2000にする記事があったような?」という朧気な記憶も。

そこから、この長い旅が始まりました。


そんなわけで、ネットをググってみると、Oh!石さん(@oec_Nibbleslab)のサイトがヒット。
販売もされていたようですが、これ以外で見たこと無いですw非常に貴重な情報でした。
io.jpg
1982年9月号のI/O誌」に記事が掲載されているという情報があり、このI/Oを探してみるとありました!
SIDの居候さんという方の記事で、MZ-2000発売直後ぐらいに記事を作成されたようでした。
内容としては、MZ-2000になりMZ-80Bから変更された仕様をMZ-80B用にデコードすることで、コンパチとして使用するというもの。

具体的にはCGRAMやGRAMのアドレスマップのデコード変更とCMT周りの制御信号の変換という形です。

またOh!石さんのページにも書いてある通り、グラフィックRAMをどのように接続できるかの具体的方法は記載がなく、必要な信号をどのように取り出すか、生成するかということのポイントが記載されていました(しかしこの情報が後にハマる原因になるw)

当時の自分では理解できませんでしたが、オッサンになった今ならわかる!

ということで作ってみました。当初、記事の通りにパーツを集めて作成しようと思ったのですが、いくつか現代的には問題がありました。
特にMZ-80Bの拡張I/Oで使えるようなユニバーサル基板は入手不可能ですし、コネクターなんかもdiscontinuedで在庫限りであったり、入手不能なものが多く存在しました。

しょうがないので、コンパチ基板のコンパチを考えます。

まず当時の環境は+5VでのTTLレベルで動作します。
そうすると、アドレスデコードや制御周りは自ずと+5Vで動作すると楽だろうということで、+5Vで動作するパーツを使ったほうがよいかなとという形に。
また記事中にも記載がありますが、アドレスデコードには_MREQよりも早いタイミングで確定させる必要があり74Sシリーズを使っているということでした。

+5Vで動作する、比較的簡単に入手できるということを考えると、AVRなどのMCU、ATF16V8CなどのSPLDが考えられました。また昨年ぐらいにルネサスからGreenPakシリーズのSLG46826Gという+5Vで動作、I2Cで書き換えられるパーツの存在を知り、これで行けるんでは?という感じに。

まずはMZ-80Bの回路図にあるIC2 G#1のアドレス変換を作成しました。
I/Oにある回路図とアドレスデコードの表、MZ-80Bのマニュアル、MZ-2000のマニュアルをにらめっこしつつ、アドレスデコードをCUPLで記載しSPLDで実装。

次にカセット制御部を実装します。
カセット制御部もI/Oの記事、それぞれの回路図をにらめっこします。
原理としてはMZ-2000で8255のそれぞれの1ポートにカセット制御の信号が割り当てられていますが、これをMZ-80Bのカセット制御信号へ変換するようにすればいいということです。
I/Oの記事中ではなかなかの苦労した回路図になっていますが、現代的にはGreenPakでMZ-80BとMZ-2000での信号を分けてあげて、AVRに一度入れたあと、MZ-80B用の信号制御へ変換して出してあげるだけで良いかなという結論に。
また、カセット制御ボタンの無効化とカセット動作中の信号を得るための方法もI/Oの記事とは完全に変更して、オリジナルにしました。
MZ-80BのそれぞれのCMT周りの信号は、I/Oにタイミングチャートが書いてありますが、調べてみると結構違っていました。
そのあたりも調べて実装。
IMG_20230130_225415672.jpg

ここまでで、出来たものを取り付けて、MZ-2000のBASICが起動しました!
(分解した状態で動作確認をしているので、画面は外部出力です)
FMAsUjgVQAA4qIs.jpg

さらにI/Oの記事中に記載があった、GRAM用の制御も作成。
で、ここでめちゃくちゃハマります。
まず、MZ-2000の回路図を見ると、必要そうな信号はだいたいわかりますし、それぞれをMZ-80Bから取り出すことも可能です。
クロックとしての16MHzはI/Oの記事中では、MZ-80B用のGRAMへ供給している8MHzを2逓倍して作り出すように記載がありますが、MZ-80B自体が16MHzのクロックを分周して供給しているので、そこから取り込みます。
その他のBLANKなどの信号はそれぞれ取り出せば良いんじゃないか?V GateとかVQHとかも、というところまではわかりましたが、なんとMZ-2000のGRAMが手に入りませんw

そりゃそうなんですよ。この時代に売っているわけがないし、オークションなどではMZ-2000に搭載された中古品が売っています。

IMG_20230130_225626662.jpgIMG_20230130_225730577.jpg
で、しょうがないのでMZ-2000+GRAMを落札。
本末転倒ですw

そして更にハマります。
このGRAM用のコネクターなのですが、ヒロセのPCN5というシリーズのもの。PCN5-53ST-1.27Wというのがその型番ですが、こんなコネクター、世界中探し回っても2個しか入手できませんでした
IMG_20230130_225540002.jpg
なんという汎用性のなさw
その状態で不明な信号も結局全部調べました。MZ-2000のGRAM動作にどの信号をどこから取るかおおよそわかったところで実装。
できた基板をまとめた写真がこちら。
IMG_20230130_225502602.jpg

FMAscLQUUAQWLQo.jpgFMcY8aRaAAAaWe4.jpg
MZ-2000用のGRAMへの電源は+5V以外に+12Vと−5Vが必要ですが、それもモジュールを使って作成しています。

FMcY8aZaMAAR3ED.jpg
動作確認してみると、このようにMZ-80BでMZ-2000のBASICやジャン狂が動作しました!
そう、ここまでは良かったんです。
このあとに更におかしくなっていきます。
「GRAMの入手性が悪すぎるし、MZ-2000を購入することになるなら意味がない。いっそGRAMごと作成しよう!」

続きます
スポンサーサイト



管理人のみ閲覧できます
このコメントは管理人のみ閲覧できます
[2024/01/15 Mon] // # [ 編集 ] @
Re: まったく同意いたします。
コメント、ありがとうございます。
何故かコツコツ増えていきますw
あと、使ってみたかったけど使えなかったマシンとかまで増えていきます。
困りましたw
[2024/02/05 Mon] URL // kitahei88 #- [ 編集 ] @

管理者にだけ表示を許可する
http://kitahei88.blog.fc2.com/tb.php/153-1ea4648a
この記事にトラックバックする(FC2ブログユーザー)
// ホーム //
Powered By FC2ブログ. copyright © 2024 レトロゲーム漫遊記 : episode2 all rights reserved.
最新記事
最新コメント
最新トラックバック

プロフィール

kitahei88

Author:kitahei88
dtiblogが閉鎖されたため、こちらでお世話になります。
ただのオッサンです。

カテゴリ
月別アーカイブ
検索フォーム

リンク
RSSリンクの表示
ブロとも申請フォーム
QRコード

QR