1. 概要 (Summary)
Carry C-DOS (I)は、1983年前半の初版を最後にアップデートされておらず、
改良版もないのですが、それは、Z80の話であって、
そもそも、i8086機種用はまったく発売されていません。
ここでは、i8086版である、NEC PC-9801用のC-DOSを入手する方法を扱います。
残念ながら、SuperBASE i8086版はどこにもありませんので、
入手不可能なようです。
このC-DOSは、使い道がありません。
Flight in Hawaiの中にi8086版のBASEで書かれたソースが残っているので、
i8086版のBASEがあれば使い道があるのでしょうけど。
2. NEC PC-9801用の仕様 (Specification)
NEC PC-9801版(i8086)は、モニタとDOSが連結している以外、
8ビットの64KBのままの構成でコマンドもほぼ同じです。
(CS=DS=ES=SS)
但し、セグメントを指定して別領域メモリを扱うことができ、
DOSへビルトイン・コマンドが追加されています。
TS-9801とセットなので、呼び出し方はTS-9801と同じで、
BASICから、DEFSEG=&Hxxxxとしてロードして0番地を呼び出せば、どこでも実行できます。
ファイルシステムは、MZ/PC形式どちらも扱うことができます。
(FM形式はなし)
ドライブ番号の1〜4が5'2D 320KB、5〜8が5'2HD 1MB、9〜12が5'2DD 640KBとなっていますが、
どれも実体は320KB 2Dイメージで、先頭の320KB分しか使えないようです。
3. NEC PC-9801用のメモリマップ (Memory Map)
$0000 | Monitor TS-9801 and C-DOS (these are connected) $xxxx(?... perhaps, about $2700) | free area $F700(?) | DOS work area | (perhaps, bit table. $F700 to $F7FF) | (perhaps, directory. $F800 to $FFFF) $FFFF
* 全部忘れました、メモくらい作っとくんだった…
犯人は自衛隊員達!!
* CS=DS=ES=SS ですが、データ領域のセグメントを設定してアクセス可能
4. NEC PC-9801用の組み立て方法 (How to Build the "PC-9801 C-DOS")
9801用テープ版フロントラインを入手して遊んでみたら、TS-9801を発見。
それどころかダンプしたらC-DOSとセットだった。
さっそく改造したら動作可能にできました。
気になるメモリの扱いですが、
セグメント設定コマンドが追加されただけでモニタもDOSも全部64KB扱いでした。
セグメントを設定してジャンプすれば、どんなアドレスでも動作します。
最初使い方がわからず、
逆アセンブラでコマンド処理部やTS-9801のIOCSコールを解析し、
16進数4桁判定ルーチンが8ビットと同じだとわかりました。
面白かったのは、ドライブ1-4が2Dで、5以降が8'2D、5'2DDに対応していたこ
とです。
ただし、ディスクの内容そのものは2D扱い。
当時9801はほとんど触ったことがなかったし、
まさか9801版があるとは思わなかったので、大変楽しめました。
実際の方法については、また今度。
実は、結構書き換えが必要ですので、再調査しないと…
メモもどこかにあるかも…
全部、こうなった犯人は自衛隊員達です!!
ちなみに、全部2005年の話です。
昔もらったPC98の古いゲーム集で遊ぶため、憧れ(?)のPC-9801Eをヤフオクで入手し
たのです。
Eは、5MHz/8MHzの両方があり、初代より有用です。5MHzがないと遊べないし。
そして、F/Mは内蔵5インチドライブが邪魔なのです。
それで、こうなったのです。