放課後の電子工作 HOME > デュアル Z80 CP/M マシン [ Lynx ]

2007年6月9日 更新

デュアル Z80 CP/M マシン [ Lynx ]

デュアル Z80 CP/M マシン

[ Lynx ]

LynxBox2

仕様
特徴
写真
思い出話

〜 これまた記憶が怪しいですが、1980年代初めごろだったんじゃないかと思います。
たしか高校生だったと思うのですが、またまた一冊の本と出会いました。 
CQ出版社の『走るCP/Mマイコン・システムの設計と製作』です。

その頃にはもう6800のシステムを設計製作していた私にとって、この本は自作魂をくすぐる、とても、とても魅力的な本でした。 
OSというものを知らなかった私が、6800用に書いた自分のモニタプログラムに限界を感じていた、ちょうど、そんな頃でした。
そしてこの本に導かれて、また長く、楽しい道のりに足を踏み出す事になったのでした。

この本をベースにして、自分なりにさまざまなアレンジを加えたシステムが、[ Lynx ] です。
Lynxは5年くらいにわたって何度も改良(改造?)されていますが、最終の主なスペックは次の通りです。

--

》主な仕様

CPU

・メイン(主制御用) Z80A (4MHz)
・サブ(CRT制御用) Z80H (8MHz)

メインメモリ

64Kバイト

ストレージ

・Aドライブ : RAMディスク(バッテリバックアップ付き) 128Kバイト
・Bドライブ : RAMディスク(DRAM) 256Kバイト
・C、Dドライブ : 3.5インチFDD 1Mバイト/ディスク

キーボード

アルプス製 AKB-3320改 シリアル通信により、本体とセパレート

ポート

・8ビットパラレルポート×2
・シリアルポート(RS-232C準拠、DCE/DTE切替可)×1

CRT

【テキスト部】
・テキストコントローラ : μPD7220AD-1
・テキストRAM : 4Kバイト(SRAM)
・表示可能文字数 : 80文字×24行+ステータス1行
・アトリビュート : 文字色(8色)、反転
・キャラクタジェネレータ : 8Kバイト(ROM)
・フォント : 自作 (セリフフォント、スクリプトフォント)

【グラフィック部】
・グラフィックコントローラ : μPD7220AD
・グラフィックRAM : 48Kバイト(DRAM)
・表示可能ピクセル数 : 640×400ピクセル+α
・色数 : 8色

【共通部】
・出力形式 : VGA
  当初はPC-9801のデジタルRGBとほぼ同じ、水平周波数24kHzの出力でした。
  その後、修理しつつ使っていたCRT(SONYのKX-14HD)の動作がさすがに怪しくなってきたため、VGA化しました。
  原振の周波数と7220のパラメータ変更と、デジタルRGB−アナログRGB変換回路を追加しました。
  縦のライン数が足らないためにちょっと横長の表示になってしまいますが、VGAモニタに表示できるようになりました。
  (但しピクセル数と色数は以前のままです ^o^;;)
・制御 : サブCPUにより、メインから独立制御。

》特徴
  1. 当時の8ビット機はCRT制御が処理スピードのネックになっていました。 グラフィック能力を、毎分何本の線が引けるかで競ったりしてましたね。 LynxではかのPC-9801に採用されていたμPD7220を98同様に2個使いにしました。 さらにCRT制御をサブCPUにまかせ、メインCPUの負担を軽くする事で、8ビット機の遅さに関する弱点をカバーするようにしました。

  2. Pyxisのハードウェア設計コンテスト最終レポートP.28の写真8−4にもありますように、最初のストレージデバイスは8インチFDDでした。 それも、この Pyxis の頃にはNEC製FD-1165A(両面倍密、いわゆる2D)になっていますが、それ以前は中古の片面単密ドライブYD-74C(確か\35,000だった)でした。 このドライブにはとてもお世話になったのですが、難は、とにかく「うるさい」。 FD-1165Aもそうでしたが、8インチドライブはとにかくうるさかったです。 モータ音、シーク音、ヘッドロード音・・・今でも良く覚えています。 そんなわけで、RAMディスクを作ることにしたのでした。 その後3.5インチドライブのシステムに移行して、現在に至っています。

  3. キャラクタ・ジェネレータが手に入らなくて・・・結局、手作りしました。 ROMの領域が余ったので、スクリプトフォント(筆記体)まで作りました。 凝り性・・・ですかね・・・やっぱり。

  4. キーボードを本体と分離したのは結構先進的だったのではないでしょうか・・・なんてね。

  5. バッテリバックアップされたRAMディスクからCP/Mをブートできるようになっています。電源ONからほぼ瞬時にOSが起動して入力待ちの状態になります。精神衛生上とても好ましいです。
    あと、もうひとつメリットが。いつCtrl-Cを押しても大丈夫です。システムディスクを要求されません。(CP/Mを使ったことのある方はおわかりですね)

》写真
[ Lynx ] 外観
[ Lynx ] 外観

Lynx本体とキーボードです。
アルプスの AKB-3320を改造して、シリアル通信で本体と離せるようにしてあります。

内部
内部

上ふたを開けたところです。
最上部に2つ並んでいるのは、最近取り付けた3.5インチFDDです。

メイン基板(1)−部品面
メイン基板(1)−部品面

メインCPU周辺の基板です。
パラレルI/F、シリアルI/F、フロッピI/F、モニタROM、RAMなどが載っています。

メイン基板(2)−はんだ面
メイン基板(2)−はんだ面

裏面です。
ラッピングワイヤの手配線です。

メイン基板(3)−CPU周辺
メイン基板(3)−CPU周辺

ずらり並んだSHARPのZ80シリーズLSIたち。
右上は富士通のFDインターフェースIC、MB8877です。

サブ基板(1)−部品面
サブ基板(1)−部品面

CRTインターフェース基板です。
グラフィックとテキスト用の2つのuPD7220(白いパッケージ)が目立ってますね。

サブ基板(2)−はんだ面
サブ基板(2)−はんだ面

裏面です。
いつもどおりのラッピングワイヤの手配線です。

サブ基板(3)−CPU周辺
サブ基板(3)−CPU周辺

上がuPD7220、下はサブCPUのZ80H(8MHz)です。

RAM DISK基板(1)− 部品面
RAM DISK基板(1)−部品面

バッテリバックアップされたSRAMディスク(128KB)と、DRAMディスク(256KB)です。

RAM DISK基板(2)− はんだ面
RAM DISK基板(2)−はんだ面

裏面です。
バスラインの配線って面倒…。

RAM DISK基板(3)−メモリチップ
RAM DISK基板(3)−メモリチップ

62256と4256、なつかしいですね。

起動画面
起動画面

モニタは、いままでお世話になっていたSonyのKX-14HD1です。
現在はVGA化したので、メインマシンのモニタと切り替えて使っています。
もうちょっといいデジカメを買ったら、そちらの画面もアップします。

手作りのフォント(1)
手作りのフォント(1)

自分でデザインして、ピクセルをひろって作ったフォントです。
通常のセリフフォントと、筆記体風フォントの2種類を作りました。
写真がわかりにくくてすみません(汗汗)。

手作りのフォント(2)
手作りのフォント(2)

フォント、こうして作ってました。
縦400ライン使えたので、8×11ドットのフォントにしました。
各行の右にHEXデータが書いてありますね…わかります?

コーディング
コーディング

アセンブラを手に入れるまでの間は、ひたすらハンドアセンブルです。
サブCPU用のグラフィックライブラリとかも作りましたので、左のようなシートを何百枚も書きました。

懐かしき8インチフロッピ
懐かしき8インチフロッピ

Lynxは最初8インチ片面単密を使っていました。
3.5インチに移行したためほとんど捨ててしまいましたが、記念(?)に何枚か取ってあります。

Lynx-Qx
実行画面(1)

Windowsのスクリーンセーバにあるラインアートのようなプログラムを実行しているところをビデオにしてみました。
約2.6MBあります。(Lynxのメインメモリの40倍!)

》思い出話

まず苦労した事といえば、私の場合、資料(データシート)を集めることでしたね。 個人、特に学生が大企業の大代表に電話して資料を集めることが設計作業なんかよりずっと大変でした。 なかなか送ってくれないんですよね・・・まあ学生の趣味に付き合っても利益になりませんから・・・そりゃそうなんですが・・・。

こちらはFAXはおろか自分の下宿に電話も無い生活でしたので、事情を説明して、郵便で送ってもらうしかありませんでした。 それを考えると、今、インターネットで情報がいくらでも手に入る時代はまさに天国のようです。 (その後、そのデバイスを手に入れるのがまた大変だったりするわけです)

もうひとつ、CP/Mシステムが立ち上がるまでのあいだ、ROMベースでのキーボード入力、CRT表示、FD入出力・・・などの基本プログラムが必要になるわけですが、・・・アセンブラが無い。アセンブラどころか、エディタをはじめとする開発環境というべきものが一切無いんです。

・・・というわけで、それら基本システムは全て紙の上でコーディングして、ハンドアセンブルしました。ここで『えぇ〜〜っ!!』と即座に出る方は『通』ですね(なんのこっちゃ)。 もちろん、大変でした。 自慢じゃありませんが、8ビットディスプレースメントを求めるために、FF,FE,FD,FC,FB・・・と昇順、逆順、いくらでも数えられます。 今となっては何の役にも立ちませんね。

キャラクタジェネレータをはじめ、それら基本プログラムをROM化するとき、学友のH君に大変お世話になりました。 彼はAppleIIクローンとROMライタを持っていたのでした。 毎晩彼の下宿に押しかけては数百ページにわたる(ハンド)アセンブルリストを入力させてもらいました。 今でも『感謝』です・・・。

そんなさまざまな過程を経て、Lynxを作ったのはもう20年ほども前になりますが、今でもまだ元気に動いています。


HOME