Carry C-DOS (I) (攻略 WEB)

Last updated 2023/12/17 since 2003

«Quick Links» 1. 概要 (summary)  2. C-DOS (I) システムの説明 (system explanation)  2.1 C-DOS (I) システムの概要 (system summary)  2.2. C-DOS (I) システムの技術情報 (technical informaton)  3. 市販C-DOSテクニック集、改造パッチ等 (C-DOS technique and modification patches)  3.1 C-DOS 2000をMZ-2500等の3.5'FDDで動作させる  3.2 C-DOS 2000で80トラック使用する方法  3.3 C-DOS 2000のシークタイムを変更  3.4 C-DOS 8801をSR以降で動作させる  4. 非市販C-DOSの抜き出しと組み立て (how to build the non released C-DOS)  5. 文献情報 (references)  6. リンク集 (link)


1. 概要 (Summary)

これは、1983年頭頃に、Carry lab.社から発売されていた、C-DOS (I)に関するWEBページです。 C-DOSと呼ばれるOSはたくさん存在しますし、 国内のホビーユーザ間では、「C-DOS II」や、九十九電器(Tsukumo)の「Convinient DOS」が有名でしたが、これらとはまったく別物です。 海外では、C-DOSと言えば、Digital Research, Inc.の有名な「Concurrent DOS」のことを指すはずですので、 グローバル・スタンダードの世界では、日本ローカルなC-DOSという名称は、まったく通用しません。
ここで扱うC-DOSは、一言で言うと、 I/O誌等で発表されたために当時よく使われていた、WICS/BASEをフロッピーディスク環境で扱うための開発環境であり、 後に、JETターミナルの日本語システムとして、パソコン通信で有名になった、 C-DOS II/XINA(BASEの発展形)の旧環境です。
C-DOSは、市販されていた機種が、 SHARP MZ-80B/MZ-2000(2200)/NEC PC-8801の3機種のみのようで、 新しい機種(88SR以降、MZ-2500等の3.5インチ環境)で動作しない等の問題があります。
他の機種用もあるようなのですが、メーカの外へは、少なくとも通常のルートでは出ていないようです。 そして、このC-DOSは、今更入手困難です。
カセットテープ版のWICS/BASEは、様々な機種用が発売されていたのですが、 1983年頃が最後版です。こちらも、今となっては、どの機種のものも大変入手困難になっています。
C-DOSの改良版については、最初の製品以外が商品化されず、外部に情報が出なかったため、 私がCarry lab.と何の関係ないこともあって、ほとんど何もわかりません。

このページの趣旨は、 発売されていたゲームソフト等から結構いろいろと抜き出せるし、 当時のパソコン雑誌にいろいろと発表されているので、 いろいろなC-DOSを作ろう、解析しよう、活用しようという、「C-DOS攻略WEB」です。
なお、Carry lab.社は、1990年を最後に営業を止めています。

C-DOSの特徴は、次の通りだと思われます。

C-DOSの改良版は、PC-8801版Victorious NINEから抜き出せる、 「Allmighty-DOS / Dolphin OS / Dolphin System」があります。 MZ/X1のDolphin OS/System の場合は、3.5'FDD対応、 C-DOS 8801形式を読み書き可能等のメリットがあります。 PC-8801版に関しては、SR以降、PC-8001mkII/SRに対応しているのですが、 TSモニタの仕様が大きく変わっていて、肝心の互換性がありません。

C-DOSは、1983年中頃の版を最後に、アップデート版が外部へは出なかったのですが、 Carry lab.内部では開発が続けられていたようです。 C-DOS I v2があるらしいのですが、 当方は持っていないので、このWEBには、市販版と市販ゲーム等から抜けるものの情報しかありません。
Victorious NINEから抜き出せるものは、v2まで到達していません。

この、C-DOS I v2の後、有名なMS-DOSファイルシステム互換かつ、 CP/M(MSX-DOS)メモリマップと基本的に互換性がある、 日本語対応のC-DOS IIへ移行したのでしょう。
C-DOS IIに関しては、1985年頃のI/O誌に紹介がありますが、 インターネットで検索した方が早いかもしれません。 PC-8801用であれば、フリー版(日本語入力FEPだけがない)も見つかって、入手できるはずです。


2. C-DOS (I) システムの説明 (System Explanation)

市販されたC-DOSは、Z80版しかありませんので、Z80版を中心に扱います。
非市販版しかない、Fujitsu FM-7/8(MC6809)用と、NEC PC-9801(i8086)用は、 非市販C-DOSの抜き出しと組み立て の項目の中を参照してください。

2.1 C-DOS (I) システムの概要 (System Summary)

Carry C-DOSシステムは、Z80版に関しては、Monitor部とDOS部の二つから構成されています。

SHARP MZ/X1と、NEC PCでファイルシステムが違います。surface(side)とデータビットが反転されています。 X1も1983年の最初のものは、MZと互換なので注意が必要です。
FMと、NEC PCでもファイルシステムが違います。FMは、2バイト数値がbig endianです。

* C-DOSの基盤となる、TSモニタに関しては、WICS/BASEの説明を参照してください。
(参考になる月刊誌や別冊の紹介があります)

* RST 30Hシステムコールについては、市販版のマニュアルを探して参照してください。

2.2. C-DOS (I) システムの技術情報 (Technical Information)

cdos_cmd.txt (2020/01/08)
... C-DOS コマンド・リファレンス (command reference) (文字コードはJapense S-JISです)

cdos_err.txt (まだないよ〜〜)
... C-DOS エラー・コード (error code) (文字コードはJapense S-JISです)

cdos_address.txt (まだないよ〜〜)
... C-DOS システム・コールとメモリアドレス・マップ (system call and memory address map) (文字コードはJapense S-JISです)

cdos_disk.txt (2019/07/31)
... C-DOS ディスク配置マップ (disk address map) (文字コードはJapense S-JISです)

C-DOS Memory Map (memory map)
... C-DOS メモリマップ (memory map) (HTMLです)

* 入力コマンド等のアルファベットは、基本的に大文字入力でなければなりません。
* 全部調べる元気がないので、調査が進むにつれて、version upしていく予定です。
(前にやって必要性がないだけに、いつまでも進まない… もちろん自衛隊が犯人だったが、今は無理だ…)

C-DOS環境では、TSモニタのシステムコールが拡張されます。 Z80版では、EF 2B, EF 11, EF 0E, EF 0Fの4つのシステムコールが拡張されます。 EF 10を使った場合、EF 11の実行時に、アクセス先がFDなのか、 テープなのかを示す情報が更新されません。 テープに対してアクセスされずに、謎のエラーになることがあるので、使わないようにしましょう。

例えば、TSモニタのL/Sコマンドや、WICS/BASE上で、 ファイル名の最初に"@"をつけると、ディスクサービスになり、 フロッピーディスクへロード/セーブが行えます。
ロード時に、ファイル名が"@"だけだとディレクトリ表示できます。 その時、エラー(EF 2BがCY=1を返す)になるので、副作用はありません。

C-DOS上で、WICS/BASEを使う場合の注意点は、市販ゲームから入手できる、 C-DOS FMとDolphin/Allmighty-DOS以外を除いて、 同じファイル名に対するオーバーライトができないことです。
「E:@<DOS コマンド>」による、DOSコマンドが使えるSuper BASE、 「@<DOS コマンド>」が使えるWICS以外では、いちいちDOSへ戻らないとファイルを消せないので、 1枚のディスクに番号をつけながらソースを次々セーブしていく、等の使い方しかできません。
MZ-2000/80BのWICSは、C-DOS付属のものでも使えないよ…
もちろん、雑誌掲載のものはテープ版でコマンド拡張がないので、全部使えません。


3. 市販C-DOSテクニック集、改造パッチ等 (C-DOS Technique and Modification Patches)

市販されたC-DOSは、1983年前半の初版を最後にアップデートされておらず、改良版もないため、 88SR以降で動作しない、MZ-2500の3.5インチFDDで動作しない等、数々の問題が存在します。
ここでは、C-DOSを改良する方法について記述しています。

3.1 C-DOS 2000をMZ-2500等の3.5'FDDで動作させる (80Bもv1.1だったら同じだろう…)

C-DOS 2000 v1.1は、 3.5'FDDへコンバートしてMZ-2500の2000モードで動作すると、 ディスクアクセスが必ず"disk not ready"になってしまいます。 原因は、MZ-2000の5'FDDのFD ready信号にあります。
FDがreadyかnot readyかは、MZの場合、 モーターをONにしてからしばらくreadyの信号が入ってきます。 その後、not readyかreadyの正しい信号に変化して、正しい状態を検知できます。
MZ-2500にMZ-1F07等を外付5インチとしてつないでも、 同じ信号が再現されるので問題は発生しないのですが、 内蔵3.5インチの場合は逆、つまり最初にnot ready/readyが正しく判定可能になる前は、 X1と同じくnot readyの信号が来てしまうようです。 これは、3.5インチドライブの信号の仕様変更によるようです。
C-DOSはディスクアクセスが高速なのは良いのですが、 not ready/readyの正しい信号が入る前にreadyと判断してしまうのです。 したがって、C-DOSが"disk not ready"を検出することはまずないのです…
通常は、not ready判定までのwait処理の時間を大きくするだけで問題が解決するはずなのですが、 C-DOSにはwait処理そのものがなくて、これを追加しなければなりません。
JET-2200AやCarry lab.のディスク版ゲームも同じはずですが、 アドレスがずれているかもしれませんし、調べたことはありません。 この場合は、エラーが出た時に、高速で連続リトライすれば解決します。

実際の書き換えは次のようにすればOKです。 ただし、ディスクアクセスの度にWAITが入るので遅くなってしまいます。 これを直そうとすると構造的な大改造が必要です。

  TRK:04 SCT:0C (MZ-mode)
  +$7D CD 90 EE
      (21 00 60が元のコードで実アドレス$EB7D〜)
  TRK:04 SCT:0F
  +$90 C5 06 03 21 00 B0 2B 7C B5 20 FB 10 F6 C1 21 00
  +$A0 60 C9
      (元のコードは空領域で実アドレス$EE90〜)

* 4MHz時は21 00 B0を21 00 80程度にしてもかまわないのですが、 MZ-2500 6MHz動作では失敗してしまいます。

MZ-80B版もおそらく同じなのですが、私は2000版を使っていて、持っていないのでわかりません。

更に、もう一つ起動時に問題がありまして、時々、 「Close Disc Drive」と一度出て、それを超えると普通に動作するようです。 ディスクランプが消える前に再読み込み、あるいは連続読み込みすれば動作しますので、 そのままでも、問題なく使えるのは使えます。 ずっと前にパッチしてるけど、WEBに書くのを忘れています… そのうち整理追加します… (犯人は自衛隊)

3.2 C-DOS 2000で80トラック使用する方法 (多分80Bも同じ)

MZのFDDについてですが、 純正の最初のFDDであるMZ-80BF等はトラック番号が0〜69の全70トラックしか 使用できることが保証されていません。 初期型の一部に例外があるようですが、実際にはトラック番号79までの全80トラック使用できますし、 新しいFDDであるMZ-1F07等ではトラック番号79までの利用が保証されています。
MZ-2000/2200/80Bでは、SHARP自身のものを含めて、 各メーカから発売された市販ソフトウエアは、 トラック番号70より後はunformatになっていたり、 他機種と共用ソフトでも、その部分は使わなくてよいようになっています。

C-DOSの場合は、 あらかじめ、別の80トラック対応ソフトウエアで物理フォーマットしておきます。 その後、普通にformatした後に、DUMPコマンドでTRK:00/SCT:02にある bitmap FATのoffset +$8C〜+$9Fまでを00で埋めれば、 0〜79トラックまでフル使用可能となります。 (1ビット1セクタなので、上から16トラック毎に$20バイト使用されます)

この時、注意することは以下の通りです。

ユーティリティを少し改造すればいいだけの気がするのですが、 僕は、上記の方法を毎回やっています。
だって、どんなに頑張っても、10枚くらいしかディスクを作れないでしょ? WICS/BASEの全市販ソフトと全雑誌の打ち込みソフト、自作ソフト、全部吸い上げても、 このくらいしかない… いらないよ…
MZ-80BとMZ-2000用の両方を合わせたら、15枚くらいあるかもしれないな…
…ということで、MZ-80B市販版も同じはずです。(持ってない!!)

3.3 C-DOS 2000のシークタイムを変更 (80Bもv1.1だったら同じだろう…)

C-DOS 2000のシークタイム変更は、以下のようにして実現できます。

        20ms  6ms   30ms        (no verify only, with headload)
  Trk:04 Sct:0C (MZ-mode)
  $EBC0 1A -> 18 or 1b
  $EBDE 09 -> 08 or 0b

* ディスクダンプ・エディタでは、下2桁の+$C0と+$DEだけを参照してください。
* Disk Utilityは、別にパッチが必要だと思います。(formatだけかな? 未確認)

3.4 C-DOS 8801をSR以降で動作させる

C-DOS 8801は、もちろん初代PC-8801やmkIIでは問題なく使用できますが、SR以降では使用できません。 有名なC-DOS IIと比較して、C-DOS 8801について知っている人があまりにも少ないのは、 SR以降で動作しないからではないでしょうか。
正確には、SRだけは、N-BASIC V1-Hモードで起動することができます。 しかし、起動しても$0000にジャンプする等、処理によって確率的に暴走してリセット さえ効かなくなったりします。
更に、V1-Sモードとなると画面が真っ暗になります。 これは実はテキストが表示されていないだけなので、 そのままSUPERコマンドを打ち込んで Super Text Monitor (TS-8801 v2.x)を起動すれば操作そのものはできますが、 ちょっと困ります。(FH以降は、v2.xもおそらくダメです。そのうち暴走します)
このようになってしまう原因は、 N-BASICへの切替えにSR以降と非互換なROMアドレスを使用していることと、 TS-8801 v1.xのCRTCの設定方法がまずいことにありますので、これを修正します。

書き換え方ですが、上記の方法でC-DOSを立ち上げてから、DUMPコマンドで セクタダンプさせて、Eを押して編集すればOKです。FR/MRはN-BASICで起動で きませんので、別の環境(TF-DOSでOK)で書き換えるしかありません。 FH/MH以降でv2.xが暴走する場合も同じですが、書き換えくらいならできるかも。
FH/MH以降はV1-Sで「N」「8」「0」を同時に押してリセットすればN-BASICモードにな ります。

  TRK:00 SCT:01
  +$80 F3 3A C2 E6 E6 F9 F6 04 D3 31 C7       (N-BASICへの切替え)
  TRK:02 SCT:08
  +$25 AF D3 51 3E 80 D3 68                   (V1-Hで固まらない)
      (3E 80 D3 68 AF D3 51が元のコードでTS-8801 $0725〜)
  +$6A E4                                     (V1-Sでテキスト表示)
      (C4が元のコードでTS-8801 $076A)

v2.xも書き換え方法はほとんど同じなのですが、気付いたのがつい最近なので、 まだ作っていません。

もちろんN-BASICのない88VAではこれでも動作しませんが、TS-8801そのもの はN88モードでも関係なく動作して、TF-DOSのTS-8801版ではそうしているので、 先頭セクタのローダだけをN88モードで動作するように置き換えればVAで動作 すると思います。

さて、この修正ですが、Carry lab.のゲームに対しても有効です。 JELDA 2 / Chack'n Popより前、つまりmkII時代かつC-DOSベースのゲームは、 SR以降で動作させるためにはN-BASICモードで起動する必要があったり、 起動時のテキストが表示されなかったりするのですが、 同じ場所を書き換えることで対応できます。 ゲームで使用されているTS-8801はv1.2ではなく、v1.1だったりしますが、 v1.2とCRTC設定が同じアドレスですので、 上記のC-DOSの方法がそのままゲームでも使えます。
(POLATSTAR III、王将、NIDECOMCarryのFRONT LINE等)


4. 非市販C-DOSの抜き出しと組み立て (How to Build the Non Released C-DOS)

非市販のC-DOSを、ゲームソフト等からの抜き出して、組み立てる方法に関する情報です。


5. 文献情報 (References)

C-DOSに関する文献情報を、まとめています。
メーカー発売商品に添付されたマニュアル以外にも、紹介記事や、雑誌発表ソフトウエアが、 少しだけ存在します。

   C-DOS 文献情報 (References)

http://www.hi-sumi.com/ の「C-DOS Explorer」の説明のところに、少し、新しいC-DOS v2の情報があります。


6. リンク集 (Link)

https://ja.wikipedia.org/wiki/キャリーラボ ... Carry lab. (wikipedia)

http://www.hi-sumi.com/ ... No.046の部屋
「C-DOS Explorer」の説明のところに、少しC-DOSの情報があります。 なお、当方は互換DOSについてもどれも持っていませんので、まったくわかりません。
(なお、disk explorerに関しては、このページではなく、別のdisk explorerのページを参照してください。)

https://archive.org/search.php?query=creator%3A%22%E5%B7%A5%E5%AD%A6%E7%A4%BE%22&sort=titleSorter ... archive.org Creator:工学社
古いI/O誌が、スキャンされてたくさんあります。

以上