Dual Z80 CP/M system [ Lynx ] 

 


-- I suppose that it was at the beginning of the 1980's.
When I was a high school student, I met with one book.
It was "The design and manufacture of CP/M microcomputer system" (actually written in Japanese)
published by CQ Publishing Co., Ltd..

I had already experience of making 6800 system then.
So the book was very very attractive, and tickled my craftsman spirit.
It was the time when I felt limit of my monitor program for the 6800 system since I didn't know the things of OS.
The book led me to long pleasant road toward new system.

The system which was based on this book and added my various originalities further, Lynx it is.
Lynx had been frequently improved over about five years.
Then, the present main spec is as follows.

CPU

* Main CPU (for main) : Z80A (4MHz)
* Sub CPU (for CRT) : Z80H (8MHz)

Main memory

* 64KBytes

Storage devices

* Drive A : RAM-disk (SRAM with battery-backups), 128KBytes
* Drive B : RAM-disk (DRAM), 256KBytes
* Drive C, D : 3.5inch FDD, 1MBytes/disk

Keyboard

* ALPS AKB-3320 (modified)
* Separated from body by using serial communication

Generic I/O ports

* 8bits parallel port X 2
* RS232C serial port (DCE/DTE selectable) X 1

CRT

[ Part of character display ]
* Display control chip : uPD7220AD-1 (NEC)
* Character RAM : 4KBytes SRAM
* Size : 80character X 24line + Status line
* Attribute : Color (3bit), Reverse
* Character-Generator : 8KBytes EPROM
* Font : Original made serif and script

[ Part of graphic display ]
* Graphic control chip : uPD7220AD (NEC)
* Graphic RAM : 48KBytes (DRAM)
* Size : 640 X 400 pixels
* Color : 8 (Digital RGB)

[ Common ]
* Output : Digital RGB, displayable on VGA monitor
*
Entire control : 8MHz Z80H as Sub-CPU, independently from main

 

[ Features of Lynx ]

  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. キーボードを本体と分離したのは結構先進的だったのではないでしょうか・・・なんてね。

Lynx Overview 1 [ Lynx ] 外観

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

Lynx Crt and keyboard 内部

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

Lynx Main Board (Front side) メイン基板(1)−部品面

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

Lynx Main Board (Back side) メイン基板(2)−はんだ面

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

Lynx Main Board (Close up) メイン基板(3)−CPU周辺

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

Lynx Sub Board (Front side) サブ基板(1)−部品面

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

Lynx Sub Board (Back side) サブ基板(2)−はんだ面

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

Lynx Sub Board (Close up) サブ基板(3)−CPU周辺

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

Lynx RAM Disk Board (Front side) RAM DISK基板(1)−部品面

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

Lynx RAM Disk Board (Back side) RAM DISK基板(2)−はんだ面

裏面ですって、もういいって。

Lynx RAM Disk Board (Close up) RAM DISK基板(3)−メモリチップ

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

Lynx Crt and keyboard 起動画面

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

Mandelbrot Map15.jpg (6139 バイト) 手作りのフォント(1)

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

手作りのフォント(2)

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

コーディング

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

Mse 3D Window 懐かしき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ライタを持っていたのでした。 毎晩彼の下宿に押しかけては数百ページにわたる(ハンド)アセンブルリストを入力させてもらいました。 今でも『感謝』です・・・。

aicon87.gif (218 バイト)

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


HOME

 

Copyright 2003,2004 Chiaki Nakajima.

All rights reserved.