2012.3.14
前へ
次へ
ホームページトップへ戻る

復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります

[第60回]

●ファンクションコール一覧表

これまでファンクションコールを思いつくまま(?)に使ってきましたが、このあたりで簡単に整理してまとめてみることにしました。
CP/M2.2のファンクションコールはbO0〜bQ8Hまで約40種あります。
下表はそれをファンクションコールのoにまとめたものです。
なおこの表をまとめるにあたって、村瀬康治著「応用CP/M」(アスキー出版局)を参考にさせていただきました(というか、ほとんどそのまんまです。すみません)。

ファンクション(Cレジスタにセットする値) 機能 パラメータセット
DEまたはEに値をセットする
結果
0  00(16進) システムリセット なし システムがリセットされる
1  01 コンソール入力 なし A=文字コード
2  02 コンソール出力 E=文字コード 文字が表示される
3  03 リーダー(RDR)入力 なし A=文字コード
4  04 パンチ(PUN)出力 E=文字コード PUN:に出力される
5  05 リスト(LST)出力 E=文字コード LST:(プリンタ)に出力される
6  06 コンソール入出力 入力:E=FF 出力:E=文字コード 入力:A=文字コード 出力:文字が表示される
7  07 IOバイト取り出し なし A=IOバイト
8  08 IOバイトセット E=IOバイト IOバイトがセットされる
9  09 文字列出力 DE=文字列アドレス 文字列が表示される
10  0A コンソールバッファ入力 DE=バッファアドレス バッファに入力される
11  0B コンソールステータスチェック なし 入力あり:A=FF 入力なし:A=00
12  0C バージョンn謔闖oし なし H=00 L=バージョン
13  0D ディスクリセット なし すべてのディスクがリセットされる
14  0E ディスクドライブセレクト E=ドライブ デフォルトディスクに指定される
15  0F ファイルオープン DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF
16  10 ファイルクローズ DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF
17  11 最初のファイルサーチ DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF
18  12 次のファイルサーチ なし 正常:A=ディレクトリコード 異常:A=FF
19  13 ファイル削除 DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF
20  14 シーンシャルリード DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF
21  15 シーケンシャルライト DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF
22  16 新規ファイル作成 DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF
23  17 ファイル名の変更 DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF
24  18 ログインベクトルの取り出し なし HL=ログインベクトル
25  19 ログインディスクbフ取り出し なし A=ディスク
26  1A DMAアドレスのセット DE=DMAアドレス DMAアドレスがセットされる
27  1B アローケーションアドレスの取り出し なし HL=アローケーションベクトルアドレス
28  1C ライトプロテクトセット なし ログインディスクがR/O(リードオンリー)になる
29  1D R/Oベクトルの取り出し なし HL=I/Oベクトル
30  1E ファイルアトリビュートセット DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF
31  1F ディスクパラメータアドレスのセット なし HL=ディスクパラメータアドレス
32  20 ユーザーコードのセット
33  21 ランダムリード DE=FCBアドレス 正常:A=00 エラー:A=エラーコード
34  22 ランダムライト DE=FCBアドレス 正常:A=00 エラー:A=エラーコード
35  23 ファイルサイズの計算 DE=FCBアドレス FCB末尾3バイトにファイルサイズが入る
36  24 ランダムレコードのセット DE=FCBアドレス FCB末尾3バイトにレコードbェ入る
37  25 ディスクドライブのリセット DE=ドライブベクトル ベクトルで指定したドライブがリセットされる
38  26 未定義
39  27 未定義
40  28 ゼロファイルを伴うランダムライト DE=FCBアドレス 正常:A=00 エラー:A=エラーコード


表中ピンクで示したbヘ、私が考えているシステムでは使わないつもりのものです。
また水色で示したbヘ、すでに説明済みのものです。

[2012.3.15注記]
昨日UPした時点では「ピンク」にしていたものがもっとあったのですが、今朝になってから再考して、上記のように変更しました。
現在作りつつあるCP/Mシステムでは余り意味のないものとして、当初は「ピンク」に分類していたのですが、残しておけばひょっとして何かの役に立つこともあるか、と思い直したからです。
結局除外するのは「ユーザーコード」のみ、ということになりました。
ユーザーコードというのは、ひとつのディスクをユーザーごとに分割して使うためのもので、いくらなんでも、それは要らんだろう、と思います。

ワンボードマイコンでCP/Mを![第60回]
2012.3.14upload
2012.3.15注記

前へ
次へ
ホームページトップへ戻る