CP/M-8000

CP/M-8000 [TM]はザイログの16ビットマイクロプロセッサZ8000用に開発されたシングルユーザー・シングルタスクのオペレーティングシステム (OS) である。

概要 
CP/M-8000は オリベッティ社のM20用に提供され、日本ではシャープがシャープマイクロコンピュータシステム開発装置SM-D-8100用に販売を行っていた。

Olivetti M20が1982年3月にヨーロッパで初の16bitコンピュータとして発売されたあとCP/M-8000の開発が行われ1984年にリリースされている。1983年初頭、ザイログがデジタルリサーチと正式契約を締結しており、デジタルリサーチが販売権を得、ザイログが自社のボードやシステム製品で搭載できるライセンスを得ている。同時にザイログはZ8001,Z8002,Z8003,Z8004を実装すると発表。

この時既にオリベッティ社はIBM互換のM24に軸足を移していたこと、Z8001を使用したパーソナルコンピュータが他に無いこと、アプリケーションソフトが少なく、MS-DOSが広く使用されていたことから、あまり普及しなかった。

動作環境 
CP/M-8000のシステムを動かすには少なくとも、最小で128KB（システム用に64KB、ユーザのコードとデータ用に64KB）必要である。

Cコンパイラ等を使用するにはユーザ用に128KB、システム用に64KB、DDT用に64KB、合計256KBのメモリ搭載が必要である。

Olivetti M20Olivetti M20 Hardware Manual   

M20にはZ8001 4MHz CPUに128KBのメモリを実装し、オプションメモリボードにより160KB（本体128KB+メモリボード32KB×1）
からメモリボード128KBを3枚実装し合計512KBにすることが出来る。8色カラーを使用するためにはオプションメモリボート2枚が必要であり、CP/M-8000を使用する場合512KBが推奨である。

320KBの5インチドライブ（640KBドライブはオプション）を搭載しており11.8MBのウィンチェスターもオプションで使用可能である。

MMUは実装されていないが16KB単位でアドレス変換用のBPROMを実装している。M20用のシステムOSのPCOSを搭載し、オプションのAPB 8086カードを挿すとMS-DOS、CP/M-86を走らすことが出来た。

Olivetti M24 With APB Z8000 BOARDOlivetti Personal Computer M24 M21 Theory of Operation 

M24はIBM PC互換のPCであったが、M20で提供していたPCOSが使用出来るようにM24用にZ8000ボードが用意されていた。

CP/M-8000はサポートされていないが、CPMローダ、BIOSをM24用に書き直せば動作させることは可能と思われる。

このボードは、IBM PC/ATの16bitバスとは互換性が無かったため他のシステムでは利用できなかった。

Sharp SM-D-8100 

LH8001 4MHz CPUに256KBを実装し、外付け1MBのフロッピーディスクで起動を行う。LH8010 MMUも実装されている。

SM-DOS 8100では、Cコンパイラ、リロケータブルマクロアセンブラも提供されている。

SM-DOS 8100で標準提供されているシャープ独自のソフトウェアZ80-Z8000トランスレータはシャープがライセンスを受けて提供するCP/M-8000でも追加されている。

上位機種の SM-D-8200は、Unix OS SM-UX8000を使用しているが、メインボードがSM-D-8100と同じであるため、CP/M-8000の起動も可能と思われる。

Fujitsu Micro 16s 

68000、Z8000のプラグインボードを計画していると雑誌では記載があるが、Z8000ボードはリリースされていないと思われる。

日本国内向けには、FM-11用の68000ボード、FM-16β用の68010ボード(いずれもOS-9用)がForksから発売された。

CPU 

  Z8001: 4,6,10MHz    1979年

開発当初は4MHzであり、 
8086の5MHzとの比較を意識して開発が進められた。Z8001はマイクロコードを使用していないため少ないクロック数で動作する。

CP/M-8000では、拡張命令を実行するため初期のStep Z、Y、Wでは動作せず1980年夏以降のStep VのZ8001が必要である。

10MHzのCPUが提供されているが、当時外部メモリが遅かったためクロックドライバZ8581を使用し1クロック分遅くすることが出来た。

  Z8003: 6,8,10MHz 　 1983年

Z8003は、Z8001に仮想メモリ機能を追加している。Z8001用に設計されたシステムでZ8003のCPUを使用する場合には、マルチCPU構成のためにST3-0の割り当てがZ8001に対し拡張されているため、ST3-0のデコードを変更するかOSにパッチをあてるとともに、Z8003のAbortピンをプルアップする必要がある。Z8003は東芝からも発売された。

  Z16C01: 10MHz       1995年

CMOS化されたZ16C01は個々に検証は必要ではあるがZ8001に差し替えて使用することが出来る。

特にWAITピンのタイミングについては、注意が必要である。

MIL-STD-833 ClassB (Class C Compliant)の製品も用意された。

  Z80320(Z320): 8,10MHz  1987年

Z80000®をCMOS化した32bit CPU Z320を現在入手することは出来ない。CP/M-8000を走らすためにはOSの書き換えが必要である。

・いくつかのZ8000特権命令はサポートせず、トラップが発生する。

・ST3-0の割り当てがキャッシュメモリ用に変更になり、データとスタックを区別しないとともに、リフレッシュをサポートしない。

・Z320オンチップキャッシュの使用制御追加

消費電流は、Z8001(10MHz)が400mA(Max)、Z16C01は35mA(Max)に対し Z80320(10MHz) 800mA(Max)となる。

8086/8088に手で触ると非常に熱く感じるがパッケージの40pinと48pinの違いよりもトランジスタ数（8086 29,000個、Z8001 17,500個）の違いが大きい。

Z80000は製品としては登場しなかったためZ80000のデータは公表はされていない。

新機能およびデータ構造の変更 
CP/M-8000はCP/M-68Kと同様、既存のCP/Mシステムに比べ6つの新しい機能の追加が行われている。

 ディスクの空き領域参照
 プログラムチェイン
 バッファはき出し
 例外ベクタ設定
 スーパバイザ状態の設定
 TPA境界の参照/設定参照

メモリ管理システム用としてシステムコール SC#1が用意され、論理アドレスから物理アドレスへの変換、物理メモリのブロックコピー、主にDDTでデバッグ中のプログラム制御を渡す機能がある。

Cコンパイラ、アセンブラ、リンカーは、CP/M-68K同様に標準で提供されている。

脚注

出典

参考文献 

デジタルリサーチ
フリーソフトウェアOS
1984年のソフトウェア
オペレーティングシステム