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

概要編集

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

Olivetti M20が1982年3月にヨーロッパで初の16bitコンピュータ[1]として発売されたあとCP/M-8000の開発が行われ1984年にリリースされている。

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

動作環境編集

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

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

Olivetti M20[1][4]編集

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 BOARD[2][5]編集

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

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

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

Sharp SM-D-8100[6]編集

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[7]編集

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

国内向けには68010(OS/9)のボードがForksから発売された。

CPU編集

 Z8001: 4,6,10MHz    1979年

開発当初は4MHz[8]であり、 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)の製品も用意された。[9]

 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)[10]となる。

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

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

新機能およびデータ構造の変更編集

CP/M-8000はCP/M-68Kと同様、既存のCP/Mシステムに比べ6つの新しい機能の追加が行われている。[11]

・ディスクの空き領域参照

・プログラムチェイン

バッファはき出し

・例外ベクタ設定

スーパバイザ状態の設定

・TPA境界の参照/設定参照

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

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

脚注編集

出典編集

  1. ^ a b Olivetti M20 Wikipedia
  2. ^ a b Olivetti M24 Wikipedia
  3. ^ CP/M-8000 Operating System System Guide Figure 1-1. CP/M-8000 Default Memory Model
  4. ^ Olivetti M20 Hardware Manual
  5. ^ Olivetti Personal Computer M24 M21 Theory of Operation
  6. ^ 1986 Sharp Mos Semiconductor Data book P.564,565. LH8DH130 Development Support System SM-D-8100
  7. ^ Fujitsu Micro 16s Wikipedia
  8. ^ 嶋正利のマクロプロセッサ温故知新 IT Pro 日経BP 2006年3月から2007年7月 ブログ連載
  9. ^ Z16C01/02 CPU Central Processing Unit Military Production Specification
  10. ^ Z320[TM] Preliminary Product Specification October 1988
  11. ^ CP/M-8000 Operating System Programmer's Guide Table F-1.