復活!CP/M ワンボードマイコンでCP/Mを!
CP/MがTK−80互換のワンボードマイコンの上で復活します
ND80ZVとMYCPU80の上でCP/Mが走ります!
[第196回]
●ファンクションコール一覧表(4)
ファンクションコール一覧表は、最初に[第60回]でお見せしました。
その後に整理したものとして[第94回]に再掲いたしました。
そこまではCP/M2.2をND80ZVに移植して、それが正常に動作することを確認する過程を記録するためのものでした。
[第133回]では3回目のファンクションコール一覧表を作成しました。
CP/M互換DOS(仮RAMディスク版)であらためて検証をしていくために作成したものです。
そして今回はいよいよ総仕上げです。
仮RAMディスク版で行なってきた検証作業を、最終的な製品版とでもいうべき、64KBフルRAM版(仮想フロッピーディスクドライブ版)であらためて最終的な検証作業を行ないます。
まあ、実のところ、すでにMBASIC(BASIC−80)、FORTRAN−80、MACRO−80が動作することを実証してきましたので、いまさらそこまでしなくても、という感もあるのですけれど、ひとつには今まで使ってきましたテストプログラムを仮想フロッピーディスクドライブ版で動くものに仕上げておきたい、という目的もあるのです。
ああ。そういえば。
BASIC−80とFORTRAN−80なのですけれど。
簡単なサンプルプログラムでは動作することが確認できましたけれど、いろいろな命令動作が正常に行なわれるかどうかのテストまではまだ全然しておりません。
いやあ、そこまではとても簡単にはできません。
そのあたりを掘り下げての動作確認は、ぜひND80ZVのユーザーの皆様のご協力をお願いできれば、と願っております。
さて。
今回のファンクションコール一覧表です。
[第133回]のものに少し手を加えて、動作確認に使ったテストプログラム名をつけ加えました。
そのときの気分でずいぶんいい加減な名前をつけてきたものですから、こうやって整理しませんと、能率が上がりません。
ここまで整理したうえで、ちょっとスピードアップして最後の仕上げにかかりたいと思います。
ファンクション(Cレジスタにセットする値) | 機能 | パラメータセット DEまたはEに値をセットする |
結果 | テストプログラム名(互換DOS/RAMディスク) | 説明(初出)回(互換DOS/RAMディスク) | テストプログラム名(互換DOS/64KRAM) | 説明回(互換DOS/64KRAM) |
0 00(16進) | システムリセット | なし | システムがリセットされる | ||||
1 01 | コンソール入力 | なし | A=文字コード | FTEST1 | 第122回 | VFTST1 | 第197回 |
2 02 | コンソール出力 | E=文字コード | 文字が表示される | FTEST1 | 第122回 | VFTST1 | 第197回 |
3 03 | リーダー(RDR)入力 | なし | A=文字コード | FNC0304T | 第139回 | FNC03T−2 | 第205回 |
4 04 | パンチ(PUN)出力 | E=文字コード | PUN:に出力される | FNC0304T | 第139回 | FNC03T−2 | 第205回 |
5 05 | リスト(LST)出力 | E=文字コード | LST:(プリンタ)に出力される | ||||
6 06 | コンソール入出力 | 入力:E=FF 出力:E=文字コード | 入力:A=文字コード 出力:文字が表示される | FNC06T2 | 第139回 | FNC06T−2 | 第205回 |
7 07 | IOバイト取り出し | なし | A=IOバイト | FTST7 | 第137回 | VFTST7 | 第203回 |
8 08 | IOバイトセット | E=IOバイト | IOバイトがセットされる | FTST8 | 第137回 | VFTST8 | 第203回 |
9 09 | 文字列出力 | DE=文字列アドレス | 文字列が表示される | FTST2 | 第134回 | VFTST2 | 第199回 |
10 0A | コンソールバッファ入力 | DE=バッファアドレス | バッファに入力される | FTST9 | 第128回 | VFTST9 | 第198回 |
11 0B | コンソールステータスチェック | なし | 入力あり:A=01 入力なし:A=00 | FNC0BT | 第138回 | FNC0BT−2 | 第204回 |
12 0C | バージョンn謔闖oし | なし | H=00 L=バージョン | FTST7 | 第137回 | VFTST7 | 第203回 |
13 0D | ディスクリセット | なし | すべてのディスクがリセットされる | FTST13 | 第142回 | VFTST13 | 第208回 |
14 0E | ディスクドライブセレクト | E=ドライブ | デフォルトディスクに指定される | FTST10−2 | 第140回 | VFTST102 | 第206回 |
15 0F | ファイルオープン | DE=FCBアドレス | 正常:A=ディレクトリコード 異常:A=FF | FTEST4 | 第134回 | VFTST4 | 第200回 |
16 10 | ファイルクローズ | DE=FCBアドレス | 正常:A=ディレクトリコード 異常:A=FF | FTST5CPY | 第135回 | VFTST5 | 第201回 |
17 11 | 最初のファイルサーチ | DE=FCBアドレス | 正常:A=ディレクトリコード 異常:A=FF | FTST10 | 第138回 | VFTST10 | 第204回 |
18 12 | 次のファイルサーチ | なし | 正常:A=ディレクトリコード 異常:A=FF | FTST10 | 第138回 | VFTST10 | 第204回 |
19 13 | ファイル削除 | DE=FCBアドレス | 正常:A=ディレクトリコード 異常:A=FF | FTST5CPY | 第135回 | VFTST5 | 第201回 |
20 14 | シーンシャルリード | DE=FCBアドレス | 正常:A=00 異常:A=エラーコード | FTEST4 | 第134回 | VFTST4 | 第200回 |
21 15 | シーケンシャルライト | DE=FCBアドレス | 正常:A=00 異常:A=エラーコード | FTST5CPY | 第135回 | VFTST5 | 第201回 |
22 16 | 新規ファイル作成 | DE=FCBアドレス | 正常:A=00 異常:A=エラーコード | FTST5CPY | 第135回 | VFTST5 | 第201回 |
23 17 | ファイル名の変更 | DE=FCBアドレス | 正常:A=00 異常:A=FF | FTST14 | 第144回 | VFTST14 | 第213回 |
24 18 | ログインベクトルの取り出し | なし | HL=ログインベクトル | FTST10−5 | 第141回 | VFTST105 | 第207回 |
25 19 | ログインディスクbフ取り出し | なし | A=ディスク | FTST10−5 | 第141回 | VFTST105 | 第207回 |
26 1A | DMAアドレスのセット | DE=DMAアドレス | DMAアドレスがセットされる | FTST6CMP | 第136回 | VFTST6 | 第202回 |
27 1B | アローケーションアドレスの取り出し | なし | HL=アローケーションベクトルアドレス | FTST15 | 第143回 | VFTST15 | 第210回 |
28 1C | ライトプロテクトセット | なし | ログインディスクがR/O(リードオンリー)になる | FTST11 | 第141回 | VFTST11 | 第207回 |
29 1D | R/Oベクトルの取り出し | なし | HL=I/Oベクトル | FTST12 | 第141回 | VFTST12 | 第207回 |
30 1E | ファイルアトリビュートセット | DE=FCBアドレス | 正常:A=ディレクトリコード 異常:A=FF | FTST17 | 第144回 | VFTST17 | 第214回 |
31 1F | ディスクパラメータアドレスのセット | なし | HL=ディスクパラメータアドレス | FTST16 | 第143回 | VFTST16 | 第212回 |
32 20 | ユーザーコードのセット | ||||||
33 21 | ランダムリード | DE=FCBアドレス | 正常:A=00 エラー:A=エラーコード | FTST21−2 | 第146回 | VFTST21 | 第225回 |
34 22 | ランダムライト | DE=FCBアドレス | 正常:A=00 エラー:A=エラーコード | FTST20 | 第145回 | VFTST202 | 第216回 |
35 23 | ファイルサイズの計算 | DE=FCBアドレス | FCB末尾3バイトにファイルサイズが入る | FTST22 | 第148回 | VFTST22 | 第226回 |
36 24 | ランダムレコードアクセスポインタの更新 | DE=FCBアドレス | FCB末尾3バイトにレコードbェ入る | FTEST23 | 第149回 | VFTST25 | 第236回 |
37 25 | ディスクドライブのリセット | DE=ドライブベクトル | ベクトルで指定したドライブがリセットされる | FTST18 FTST19 |
第142回 | VFTST18 VFTST19 |
第209回 |
38 26 | 未定義 | ||||||
39 27 | 未定義 | ||||||
40 28 | ゼロファイルを伴うランダムライト | DE=FCBアドレス | 正常:A=00 エラー:A=エラーコード | FTST20−3 | 第147回 | VFTST205 | 第229回 |