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

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

[第133回]

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

CP/M互換DOSは、当初その骨子となる部分をわずか1週間で書き上げてしまい、いささか気をよくしていたのでありましたが、ファンクションコール0Aで思わぬ足止めを食ってしまいました。
それもやっとのことでクリアできましたので、ここからはもうすいすいと進むことと思っております(どうだか?)。

さて今後の予定です。
今までおよそ2ヶ月ほどをかけて、CP/M2.2のファンクションコールを検証してきましたが、今度はCP/M互換DOSのもとで、そのときに作ったテストプログラムを使って同じ動作をするかどうかを検証していくことにいたします。

その進行状況を記録するために、CP/M2.2の検証のときに作りましたファンクションコール一覧表を、あらためて作成してそこに記録をしていくことにいたします。

ファンクションコール一覧表は、最初に[第60回]でお見せしました。
その後に整理したものとして[第94回]に再掲いたしました。
今回が3回目ということになります。

[第94回]の一覧表では、ちょっと理由があってやり残したごく一部のファンクションコールを除いては全て検証を終わりましたから、ほとんど全てを水色で着色して示しました。
今回はCP/M互換DOSであらためて検証をしていきますから、そこで着色されていたものも一旦地の色に戻した上で再スタートいたします。

まだ検証を開始したばかりですから、ほとんどに色がついていませんが、今後検証を完了するごとに、また前のときと同じように、水色で着色していくことにいたします(この原稿を用意した時点ではほとんど着色部分はなかったのですが、その後に検証作業が進んだため、現在ではご覧の通り、かなり着色されています)。

ファンクション(Cレジスタにセットする値) 機能 パラメータセット
DEまたはEに値をセットする
結果 説明(初出)回
(CP/M2.2)
説明(初出)回(互換DOS)
0  00(16進) システムリセット なし システムがリセットされる
1  01 コンソール入力 なし A=文字コード 第39回 第122回
2  02 コンソール出力 E=文字コード 文字が表示される 第39回 第122回
3  03 リーダー(RDR)入力 なし A=文字コード 第78回 第139回
4  04 パンチ(PUN)出力 E=文字コード PUN:に出力される 第74回 第139回
5  05 リスト(LST)出力 E=文字コード LST:(プリンタ)に出力される
6  06 コンソール入出力 入力:E=FF 出力:E=文字コード 入力:A=文字コード 出力:文字が表示される 第79回 第139回
7  07 IOバイト取り出し なし A=IOバイト 第61回 第137回
8  08 IOバイトセット E=IOバイト IOバイトがセットされる 第63回 第137回
9  09 文字列出力 DE=文字列アドレス 文字列が表示される 第41回 第134回
10  0A コンソールバッファ入力 DE=バッファアドレス バッファに入力される 第64回 第128回
11  0B コンソールステータスチェック なし 入力あり:A=01 入力なし:A=00 第68回 第138回
12  0C バージョンn謔闖oし なし H=00 L=バージョン 第61回 第137回
13  0D ディスクリセット なし すべてのディスクがリセットされる 第92回 第142回
14  0E ディスクドライブセレクト E=ドライブ デフォルトディスクに指定される 第82回 第140回
15  0F ファイルオープン DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF 第46回 第134回
16  10 ファイルクローズ DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF 第51回 第135回
17  11 最初のファイルサーチ DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF 第65回 第138回
18  12 次のファイルサーチ なし 正常:A=ディレクトリコード 異常:A=FF 第65回 第138回
19  13 ファイル削除 DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF 第51回 第135回
20  14 シーンシャルリード DE=FCBアドレス 正常:A=00 異常:A=エラーコード 第46回 第134回
21  15 シーケンシャルライト DE=FCBアドレス 正常:A=00 異常:A=エラーコード 第51回 第135回
22  16 新規ファイル作成 DE=FCBアドレス 正常:A=00 異常:A=エラーコード 第51回 第135回
23  17 ファイル名の変更 DE=FCBアドレス 正常:A=00 異常:A=FF 第93回 第144回
24  18 ログインベクトルの取り出し なし HL=ログインベクトル 第90回 第141回
25  19 ログインディスクbフ取り出し なし A=ディスク 第90回 第141回
26  1A DMAアドレスのセット DE=DMAアドレス DMAアドレスがセットされる 第56回 第136回
27  1B アローケーションアドレスの取り出し なし HL=アローケーションベクトルアドレス 第95回 第143回
28  1C ライトプロテクトセット なし ログインディスクがR/O(リードオンリー)になる 第91回 第141回
29  1D R/Oベクトルの取り出し なし HL=I/Oベクトル 第91回 第141回
30  1E ファイルアトリビュートセット DE=FCBアドレス 正常:A=ディレクトリコード 異常:A=FF 第99回 第144回
31  1F ディスクパラメータアドレスのセット なし HL=ディスクパラメータアドレス 第96回 第143回
32  20 ユーザーコードのセット
33  21 ランダムリード DE=FCBアドレス 正常:A=00 エラー:A=エラーコード 第108回 第146回
34  22 ランダムライト DE=FCBアドレス 正常:A=00 エラー:A=エラーコード 第102回 第145回
35  23 ファイルサイズの計算 DE=FCBアドレス FCB末尾3バイトにファイルサイズが入る 第109回 第148回
36  24 ランダムレコードアクセスポインタの更新 DE=FCBアドレス FCB末尾3バイトにレコードbェ入る 第111回 第149回
37  25 ディスクドライブのリセット DE=ドライブベクトル ベクトルで指定したドライブがリセットされる 第100回 第142回
38  26 未定義
39  27 未定義
40  28 ゼロファイルを伴うランダムライト DE=FCBアドレス 正常:A=00 エラー:A=エラーコード 第110回 第147回

(2012.6.13現在)

表中ピンクで示したbヘ、私が考えているシステムでは使わないつもりのものです。
次回以降で説明する回が決まっているものにもその説明回を記しました。

ワンボードマイコンでCP/Mを![第133回]
2012.5.28upload
2012.5.29更新
2012.5.30更新
2012.5.31更新
2012.6.1更新
2012.6.2更新
2012.6.3更新
2012.6.4更新
2012.6.5更新
2012.6.6更新
2012.6.7更新
2012.6.8更新
2012.6.9更新
2012.6.10更新
2012.6.11更新
2012.6.12更新
2012.6.13更新

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