-
Packages
"HI-TECH C for CP/M"(以下HI-TECH Cと略)はもともとオーストラリアにあったHI-TECH社が開発したものです。開発元の会社からのサポートも全くありませんが、その代わりにフリーの配布条件で公開されていて、広く使われているCコンパイラです。
HI-TECH社は、他CPU用のHI-TECH Cコンパイラクロス開発環境も提供していましたが、こちらはプロプラエタリな製品版で有償だったようです。近年はMICROCHIP社に吸収され、無償でも使うことができる16bit、32bitのPICチップ用のHI-TECH Cコンパイラを提供しています。
当WIKIで扱っている"HI-TECH C for CP/M"は、開発元からのサポートがない代わりに、使用用途の制限はなく、フリーで公開されたCP/M用のバージョン3.09のみを対象としています。
目次
基本アーカイブ
Hi-TECH Cは以下の二つのパッケージから構成されます。
- Z80V309
- 実行ファイルと関連ツールの実行ファイル、基本的なヘッダファイル、ライブラリのバイナリファイルがあります。配布サイトによりLZH、MS-DOSの自己解凍exeファイルなど、アーカイブ形式に若干の違いがありますが、内容は同じです。以下「実行アーカイブ」と呼びます。
実行ファイルの詳細
マニュアル:C.COM
CPP.COM
プリプロセッサ
P1.COM
パーサ
CGEN.COM
コードジェネレータ
OPTIM.COM
オプティマイザ
マニュアル:ZAS.COM
アセンブラ
マニュアル:LINK.COM
リンカ
マニュアル:OBJTOHEX.COM
IntelHexコンバーター
マニュアル:LIBR.COM
ライブラリアン
マニュアル:CREF.COM
クロスリファレンスツール
- Z80DOC
- HI-TECH Cのマニュアルだけで構成されるアーカイブパッケージです。配布サイトによりLZH、MS-DOSの自己解凍exeファイルなど、アーカイブ形式に若干の違いがありますが、内容は同じです。
公式アーカイブ、ファイル
またライブラリと一部のツールのソースも開発元から配布されています。
- LIBSRC
- 実行アーカイブに収録されたライブラリのソースファイル群です。C言語、もしくはアセンブラで記述されています。再コンパイルが可能です。配布サイトによりLZH、MS-DOSの自己解凍exeファイルなど、アーカイブ形式に若干の違いがありますが、内容は同じです。以下ソースアーカイブと呼びます。
ユーザーによるパッチ、アーカイブ
HI-TECH Cの実行アーカイブやライブラリにはバグや、どうしても回避しておきたい問題の仕様が、またソースアーカイブには、マニュアルに記載されているものの不足しているヘッダファイルがあることがユーザーによって報告されています。
多くはユーザーの手によって追加、修正され、配布されており、開発元が本来想定したであろう機能を補完しています。これらについても当WIKIでは取り上げています。
その他の補完
HI-TECH CはほぼC89/90準拠ですが、開発時にもとにしていた仕様書のバージョンはドラフト版でした。そのため若干の違いがある可能性があります(調査・検証中です)。
これらの補完についても必要に応じて取り上げています。
※同時代の多くのコンパイラで採用されていた実装(デファクトスタンダード)がないことも指摘されていますが、こちらはCP/M用のライブラリとして取り上げます。
※CP/Mの上位互換のOSで拡張された部分やZ80アーキテクチャを採用した特定の機種用に開発されたライブラリは別途それぞれ個別に取り扱います。