Loading article…
ゼロページ(またはベース ページ) は、CP/Mシステムでプログラムがオペレーティング システムと通信するために使用されるデータ構造です。8 ビット CP/M バージョンでは、メモリの最初の 256 バイトに配置されているため、その名前が付けられています。
DOSにおける同等の構造は、256 バイトの構造であるプログラム セグメント プレフィックス(PSP)ですが、デフォルトでは、ロードされたプログラムの直前のプログラムのロード セグメント (セグメント 0 ではなく) のオフセット 0 に配置されます。
8 ビット CP/M では、次の構造になります。
CP/M-86では、構造は次のようになります。
参照
参考文献
- ^ ab Taylor, Roger; Lemmons, Phil (1982 年 6 月). 「上方移行 - パート 1: トランスレータ - CP/M-86 プログラムを CP/M および MS-DOS に移行する」 [CP/M プログラムを CP/M-86 および MS-DOS に移行する変換プログラムの使用] (PDF) . BYTE . 第 7 巻、第 6 号。BYTE Publications Inc. pp. 321–322, 324, 326, 328, 330, 332, 334, 336, 338, 340, 342, 344 [342, 344]。ISSN 0360-5280。CODEN BYTEDJ。2020年1 月 16日のオリジナルから アーカイブ(PDF) 。2020-01-15取得。
[…]
CP/M-86
へのアクセス […] CP/M-86 にアクセスするには、機能コードを CL レジスタに配置し、バイト パラメータを DL レジスタに配置するか、ワード パラメータを DX レジスタに配置し、データ セグメントを DS レジスタに配置し (データ セグメントは通常、変換されたプログラムでは変更されません)、ソフトウェア割り込み
INT #224
を実行する必要があります。結果は、バイト値の場合は AL レジスタに返され、ワード値の場合は AX レジスタと BX レジスタの両方に返されます。ダブルワード値は、オフセットが BX レジスタに、セグメントが ES レジスタに返されます。したがって、プログラムを
CP/M-80から CP/M-86 に変換するには、位置 5 への呼び出しをソフトウェア割り込み INT #224 に置き換える必要があります。もう 1 つの必要な変更は、
ウォーム ブート
に関するものです
。 CP/M-80 では、位置 0 にジャンプするための機能コード 0 のシステム コールによってウォーム ブートにアクセスできます。ただし、CP/M-86 では位置 0 へのジャンプはサポートされていません。そのため、プログラムを正しく実行するには、変換されたプログラムでこのプログラム終了を変更する必要があります。位置 5 への呼び出しが INT #224 に置き換えられ、ウォーム ブートの変更が行われ、レジスタが正しくマップされていれば、変換されたプログラムが CP/M-86 システム機能にアクセスするのに問題はほとんどありません。[…]
MS-DOS
へのアクセスの取得[…] MS-DOS には、システムにアクセスするためのソフトウェア割り込み
INT #33
による「推奨」メカニズムがありますが、「既存の」プログラム用に、少なくとも 0 ~ 36 の範囲の機能については、CP/M-80 呼び出し規約と互換性のある追加のメカニズムが提供されています。許可された関数範囲内のシステム コールに関しては、プログラマーは、レジスタを正しくマップする以外に、翻訳されたプログラムを MS-DOS で実行するために何もする必要はありません。MS-DOS は、CP/M-80 のウォーム ブート機能もサポートしています。MS-DOS で位置 0 にジャンプすると、ソフトウェア割り込み
INT #32 が
実行されます。これは機能的にはプログラムの終了であり、プログラムを終了する通常の方法です。[…]
[1] [2][3][4][5][6][7][8][9][10][11][12][13][14] (13ページ)
- ^ CP/M 2.0 変更ガイド(PDF) . Digital Research. 1979. p. 23.
さらに読む
- 「ティム・オルムステッド記念CP/M図書館」。2017年8月20日時点のオリジナルよりアーカイブ。2017年8月20日閲覧。- 特に:
- 「CP/M 3 プログラマーズ マニュアル」(PDF) 。2017年 8 月 20 日にオリジナルからアーカイブ(PDF) 。2017年 8 月 20 日に取得。
- 「CP/M-86 システム ガイド」(PDF)。2005 年 5 月 17 日にオリジナルからアーカイブ(PDF) 。2017 年 8 月 20 日に取得。
