Z88DK は、8080 および z80 ファミリのマシンを対象としたソフトウェア開発ツールのコレクションです。 C、アセンブリ言語、またはその 2 つの混合言語でプログラムを開発できます。 z88dk をユニークなものにしているのは、使いやすさ、多くの z80 マシンの組み込みサポート、および C 標準と拡張機能を実装するアセンブリ言語ライブラリ サブルーチンの広範なセットです。
z88dk をインストールするにはいくつかの方法があります。
git clone --recursive https://github.com/z88dk/z88dk.git
を使用します。サブモジュールを既存のクローンに追加するにはgit submodule update --init --recursive
使用します。構築するには、次の手順に従う必要があります。 z88dk のフロントエンドはzcc
と呼ばれ、コンパイルを行う場合はこれを呼び出す必要があります。 C ファイル (.c)、前処理された C ファイル (.i)、コンパイル済み C ファイル (.asm)、最適化されたコンパイル済みファイル (.opt)、またはアセンブルされたファイル (.o) を処理でき、それらの任意の組み合わせを混在させることができます。関連するプロセスがそれらに対して実行されます。また、ファイル リストの処理もサポートされており、各ファイルの処理が順番に行われ (つまり、前処理、コンパイル、最適化、アセンブル)、最後に必要に応じて、処理されたすべてのファイルを正しくフォーマットされた単一の実行可能ファイルにリンクできます。
通常、新しいユーザー (または確立されたプラットフォーム) が他のツールを個別に使用する必要はありません。
多くのツールには、同じ名前でインストールされる他のパッケージのツールと区別するために、 z88dk-
プレフィックスが付いています。ドキュメントでは通常、それらを参照するときに接頭辞を省略します。
zcc
ツールチェーンのフロントエンドです。 zcc は、任意の入力ソース ファイルのセットから出力バイナリを生成できます。z88dk-sccz80
z88dk のネイティブ C コンパイラです。 sccz80 は small c から派生したものですが、c90 にほぼ準拠するまでに多くの開発が行われました。z88dk-zsdcc
z88dk による sdcc コンパイラのカスタマイズです。私たちのパッチは、sdcc を z88dk ツールチェーンと互換性を持たせ、z88dk の広範なアセンブリ言語ライブラリと既製の crt にアクセスできるようにし、存在するコード生成のバグに対処し、sdcc の生成コードを改善します。z88dk-z80asm
(z80asm と呼ばれるいくつかの外部プロジェクトと混同しないでください) は、完全な機能を備えたアセンブラー/リンカー/ライブラリアン実装セクションです。z88dk-z80nm
z80asm のコンパニオン アーカイバです。オブジェクトまたはライブラリ ファイルにエンコードされた関数またはデータのリストを提供できます。z88dk-appmake
ツールキットによって生成された生のバイナリを、特定のターゲット マシンに適した形式に処理します。たとえば、Intel HEX ファイル、テープ、ROM などを生成できます。z88dk-ticks
コード フラグメントの実行速度を測定するために使用できるコマンド ライン エミュレーターです。 Ticks にはデバッガと逆アセンブラが含まれています。z88dk-gdb
ticks からのデバッガ インターフェイスを提供し、gdbserver に接続して、エミュレータまたは実際のハードウェア上でソフトウェアを 1 行ずつデバッグできるようにします。z88dk-dis
、8080、8085、GBZ80、Z80、Z180、Z80N、EZ80、R800、および Rabbit 2000/3000 用のコマンド ライン 逆アセンブラです。さらに、z80asm によって生成されたマップ ファイルを読み取って、よりシンボリックな出力を提供できます。z88dk-lib
サードパーティ ライブラリのインストーラーです。インストール、削除、および利用可能なライブラリのリストを管理します。z88dk-zx0
およびz88dk-zx7
は、z80 ライブラリに付属の解凍機能を備えた PC 側データ圧縮ツールです。z88dk-dzx0
およびz88dk-dzx7
z88dk-zx0 および z88dk-zx7 に対応する PC 側の解凍機能です。これらのツールは通常、ユーザーによって直接起動されることはありません。
m4
z88dk のマクロ プリプロセッサとして機能し、オプションで c プリプロセッサまたはアセンブラよりも先にファイルを処理できます。z88dk-ucpp
sccz80 および zsdcc に対して呼び出される C プリプロセッサです。z88dk-zpragma
は、C ソースに埋め込まれたプラグマを処理するためにツールチェーンによって使用されます。z88dk-copt
sccz80 のピープホール オプティマイザーとして、また sccz80 と zsdcc の両方の後処理ツールとして使用される正規表現エンジンです。 z88dk によって提供されるアセンブリ言語ライブラリは、他の z80 コンパイラーよりもパフォーマンス上の利点をもたらします。詳細については、Wiki の「ベンチマーク」セクションを参照してください。
CMake を使用して Z88DK プロジェクトを構築できます (ツールチェーンが提供されます)。 CMake wiki を参照してください。
知っておくべきこと:
コンパイル行を作成するときは、どのコンパイラを使用するか、どの C ライブラリにリンクするかを決定する必要があります。どのターゲット用にコンパイルするか、どの機能が必要かに基づいて決定します。
クラシック C ライブラリは z88dk のメイン C ライブラリであり、100 を超える異なる z80 ファミリ マシン用のプログラムを生成できる crt を備えています。それぞれのサポートのレベルは、歴史的にユーザーの関心によって決定されてきました。ドキュメントはここから始まり、サンプル プログラムは z88dk/examples にあります。コンパイル行は、ほとんどの場合 .c ファイルの先頭に表示されます。時間の経過とともに、非標準の実装が新しいライブラリに存在する実装に置き換えられました。
新しい c ライブラリは、C11 準拠の大規模なサブセットを目的とした z88dk の書き直しでした。標準ライブラリの大部分は現在クラシックに組み込まれていますが、クラシックではサポートされていない一部のターゲット (hbios、rc2014、scz180、yaz180) を引き続きサポートしています。また、一部の重複ターゲット用にサードパーティ ライブラリを組み込んでいるものもあります (sega master system、zx spectrum)。 、次にzxスペクトル。さらに、z180、z80 用のベアボーン ターゲットを使用して、任意の z80 マシン用のプログラムをコンパイルできます。ドキュメントはここから始まり、サンプル プログラムは z88dk/libsrc/_DEVELOPMENT/EXAMPLES にあり、ほとんどの場合 .c ファイルの先頭にコンパイル行が表示されます。
Z88DK ホームページには、最新のパッケージを入手できるナイトリー ビルドへのリンクが含まれています。
インストール手順
バグ報告
z88dk/examples のクラシック C ライブラリ例を使用したコンパイルの概要
z88dk/libsrc/_DEVELOPMENT/EXAMPLES の新しい C ライブラリ例を使用したコンパイルの概要
rc2014 ターゲットで z88dk を使用すると、cpm、hbios、および rc2014 サブタイプがカバーされます。
z88dk を zx とともに使用すると、zx ターゲット、さらには zxn ターゲットもカバーされます。