CP/M-86 からMS-DOSへ変換 (CP/M-80) |
CP/M (Control Program for Microcomputers)は、デジタルリサーチの創業者ゲイリー・キルドールが開発。1976年に発売されました。
CP/Mは 8ビットのCPU: インテルの8080用に作られた 8ビットマイクロコンピュータ用OS
Gary Kildall | |
その後、16bitのマイクロプロセッサ Intel 8086用に CP/M-86が発売
|
||
IBMとデジタルリサーチの交渉失敗により、IBMがマイクロソフトにOS供給依頼 ・・・ 結果的にマイクロソフトが台頭 【 過渡期のDOS 】 ・DR-DOS: デジタルリサーチ ・PC-DOS: IBM ・MS-DOS: マイクロソフト 8bit CP/Mが台頭していた時は、デジタルリサーチが主流になると思っていました。 NovellのNetWare、PC98とDOS/V機、ロータス123とEXCEL等 ・・・ 栄華盛衰 |
||
CP/M-86 SYSTEM GUIDE | ||
|
||
Altair 8800 |
||
Intel 80286 IBM-PC/ATに搭載 |
||
PC-8801MK2 CP/M Ver 2.2 |
|
PC-98 CP/M-86 Ver 1.1 |
|
【 CP/M-86 Ver 1.1 NEC PC-98 1.2MB FORMAT (2HD) 】 |
シリンダ:00 ヘッド:0 ... 単密度 128 バイト/セクタ 26 セクタ/トラック DA/UA:90 シリンダ:00 ヘッド:1 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 シリンダ:01 ヘッド:0 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 シリンダ:01 ヘッド:1 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 シリンダ:02 ヘッド:0 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 シリンダ:02 ヘッド:1 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 シリンダ:03 ヘッド:0 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 シリンダ:03 ヘッド:1 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 ・・・ シリンダ:74 ヘッド:0 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 シリンダ:74 ヘッド:1 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 シリンダ:75 ヘッド:0 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 シリンダ:75 ヘッド:1 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 シリンダ:76 ヘッド:0 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 シリンダ:76 ヘッド:1 ... 倍密度 256 バイト/セクタ 26 セクタ/トラック DA/UA:90 |
【 CP/M-86 System Disk DUMP 】 |
【 CP/M-86 directory 】 ( 8"2D ) FCBは32バイト 1つのFCBで管理できない大きなファイルは、複数のFCBで管理 |
※ FCBブロックの先頭 1バイトは、ユーザー番号( 通常 00 ) ERAコマンドでファイルを削除すると、 X'5E' になる |
IBM PC CP/M-86 Ver 1.1 ( IBM PCでは、英語キーボード要 ) |
|
CP/M-86 Ver 1.1 IBM PC 5.25inch 320K (DSDD) |
1トラック = 512B x 8sec x 2面 = 8,192B 全容量 = 8,192B x 40trk = 327,680B |
> 【 IBM2: CPMDISKS.DEF 】 BEGIN IBM2 IBM PC, CP/M-86 - DSDD 48 tpi 5.25" DENSITY MFM ,LOW CYLINDERS 40 SIDES 2 SECTORS 8,512 SIDE1 0 1,2,3,4,5,6,7,8 SIDE2 1 1,2,3,4,5,6,7,8 ORDER CYLINDERS LABEL IBM2 BSH 4 BLM 15 EXM 1 DSM 157 DRM 63 AL0 080H AL1 0 OFS 1 END |
CP/M-86 Ver 1.1 IBM PC 1.44MB FORMAT (2HD) |
【 IBM4: CPMDISKS.DEF 】 BEGIN IBM4 IBM PC, CP/M-86 - 1.44 MB - DSHD - 96TPI - 3.5" DENSITY MFM HIGH CYLINDERS 80 SIDES 2 SECTORS 18,512 SIDE1 0 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 SIDE2 1 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18 ORDER cylinders BSH 5 BLM 31 EXM 1 DSM 354 DRM 255 AL0 0C0h AL1 0 OFS 2 END |
CP/M-86 コマンド |
コマンドは、ビルトイン・コマンドとトランジェント・コマンドがあります。 @ビルトイン・コマンド(組み込みコマンド) システムプログラムのCCP部にあり、システム起動後メモリに常駐 Aトランジェント・コマンド システムディスクに内にあり、拡張子がCMDのファイル CP/M-86の基本的な操作コマンドは、 DIR、 ERA、 REN、 TYPE、PIP、 ED、 FORMAT等です。 → DIGITAL RESEARCH CP/M-86 User's Guide |
コマンド名 | 内 容 |
---|---|
DIR | ディスクのディレクトリを表示する |
ERA | ファイルを消去する |
REN | ファイル名の変更 |
TYPE | ファイルの内容をコンソールにダンプ |
USER | ユーザー番号の表示・変更 |
ASM86 | 8086アセンブラ |
COPYDISK | ディスクのコピー |
DDT86 | デバッガ |
ED | ラインエディタ |
FORMAT | フロッピーディスクのフォーマット ( ハードディクスのフォーマットは FORMATHD ) |
GENCMD | H86ファイルから,CMDファイルを作成 |
HELP | コマンドの使用方法のヘルプ機能 |
PIP | ファイル転送など Peripheral Interchange Program (PIP2,PIP3はシングルドライブ用) |
STAT | ファイル,ディスクのステータスチェック STAT |
SUBMIT | コマンドのバッチ処理 |
TOD | 日付け・時間 |
LDCOPY | コールドスタートローダのセット |
拡張子 | 内 容 |
---|---|
ASM | アセンブラ・ソース |
A86 | 8086アセンブラ・ソース |
COM | 実行ファイル(トランジェント・コマンド・ファイル) |
HEX | インテルHEX方式のファイル |
BAK | バックアップ・ファイル |
PRN | アセンブル・リスト |
LIB | ライブラリ・ファイル |
SUB | SUBMITファイル(バッチ処理) |
$$$ | テンポラリ・ファイル |
ASM86 アセンブラ概要&サンプル | ||||
|
||||
|
||||
【 プログラムの作成手順 】 |
||||
|
||||
※ソースプログラムの入力は、CP/MコマンドのED(行エディタ)で可能ですが、使い勝手が悪いので WordStar、 WordMaster、TED 等で行います。 【 アセンブラ ソース: HELLO.A86 】 |
||||
【 プログラムの概要 】 @パラメータに表示する文字のアドレス(MSG)をセットし、 BDOSファンクションコード9で割り込み(システムコール) → HELLO WORLD! が画面に表示される ABDOSファンクションコード0で割り込み(システムコール) → CP/M-86のCCPに戻る ※プログラムは、コード部とデータ部と分けセグメントという名称になっています。 COBOLの DATA DIVISION、PROCEDURE DIVISIONのような感じですね。 ※オンラインシステムでは、システムを落とさずに動的修正をすることが有りました。 このようなことを考慮し、ダミーのデータ領域を予め用意しておき ダミー領域内で命令をセットし、この部へブランチすることによりサブルーチン化ができます。 (コンソールからFetch Address Stopを行い、コンソールSWでメモリを動的に修正する) パッチを当てることで、オンラインシステムを落とさずに運用できます。 ( 後日パッチをまとめて、システムを再構築 → SYSGEN ) |
||||
|
||||
ASM86 システムコールの方法 | ||||
MOV DX,parameter DX → パラメータをセット MOV CL,functionn CL → ファンクション番号をセット INT 0E0h システムコール割込 → X'0E' ... 224 ※CP/M-80のシステムコールは、名前のとおり CALL 5 でしたが、 CP/M-86から INT (Interrupt: 割り込み)になりました。 → INT 224 MS-DOSも INTです。 → INT 25H メィンフレームのSVC (Supervisor Call) から CALL(System Call) → INT(Interrup) ※BDOS (Basic Disk Operating System) 詳細は、下記URL参照 |
||||
・ BDOS Function Summary | ||||
・ BDOS calls | ||||
・ CP/M Error Messages | ||||
OS毎のメモリマップ | ||||
CCP: Console Command Processor コマンド・インタプリタ | ||||
BDOS: Basic Dsk Operating System ディスクドライブを制御・管理 ファイルのOpen/Close/Read/Write等 | ||||
BIOS: Basic Disk Operating System 周辺機器の入出力を管理 キーボード、ディスプレイ、プリンタ | ||||
TPA: Transient Program Area ユーザープログラムのロード領域 | ||||
CP/M-86 が扱える 外部記憶装置は最大8Mを16台迄、アクセス可能なメモリ空間は1Mバイト |
Personal BASIC |
対話式に行う一般的なBASICです。 ( BASIC.CMD ) |
|
【 Personal BASICのコマンド例 】 保存 >SAVE ファイル名 連番 >RENUM 終了 >SYSTEM 既存ファイルのロード >OLD ファイル名 ※ファイル名の拡張子(BAS)は不要 ====================================================== A>BASIC プログラムの作成・テスト・TEST1で保存 [TEST1.BAS] -------------------------------------------------------------------------- NEW ・・・・・・・・・・ ・・・・・・ ・・・ RUN SAVE TEST1 SYSTEM A>BASIC 前に作成した TEST1を読込み、修正して TEST2で保存 [TEST2.BAS] -------------------------------------------------------------------------- OLD TEST1 LIST ・・・・・・・・・・ ・・・・・・ ・・・ ○○○○ RUN RENUM 1000 SAVE TEST2 SYSTEM |
CBASIC Ver 1.0 |
BASIC コンパイラ ・・・ CBAS86.CMD でコンパイル後、CRUN86.CMDで実行 |
|
CBASICは処理時間を早くする為、一旦中間言語に落とします。( CBAS86.CMD ) その後ランタイム・インタラプタで実行されます。( CRUN86.CMD ) |
|
Pascal/MT+86 |
※元は、MT MicroSYSTEMS社のPascal コンパイラ (1981 年にDigital Researchに買収された) |
【 サンプルプログラム 】 |
Pascal/MT+86は、ワンパスコンパイラですがメモリ不足の対応として複数のモジュールからできています。 ・コンパイラ → MT+86.CMD、 MT+86.000、 MT+86.001、 MT+86.002、MT+86.003、MT+86.004、MT+86.005 ・リンカ → LINKMT.CMD、LINKMT.001、LINKMT.002、LINKMT.003 |
Turbo Pscal 3.0 |
プログラムの編集は、別途 WS,WM,TEDなどを用意する必要がありましたが、 Turbo Pascalは、プログラムのIDE(統合開発環境)の草分け的なもので、エディタとコンパイラが入っています。 |
|
【 操作コマンド 】 L Logged drive ドライブの変更 W Work file ワークファイルの選択 M Main file メインファイルの選択 E Edit ファイルの編集 C Compile コンパイル R Run プログラムの実行 S Save ワークファイルの保存 D Dir ファイルの表示 Q Quit 終了 O ompiler Options コンパイラオプション |
エディタのキーは、WSと同等で、少しのキーコマンドでプログラミング可 ・編集時の主な操作キー CTRL + E 上 CTRL + X 下 CTRL + D 右 CTRL + S 左 CTRL + R PageUp CTRL + C PageDown CTRL + V 挿入/上書の切替 CTRL + G 1文字削除 CTRL + N 行の挿入 CTRL + Y 行の削除 CTRL + K D 編集の終了 |
書籍 |
入門CP/M 村瀬康治 | ||
CP/M-86 vs MS-DOS 河西朝雄 | ||
22DISK SYDEX: CP/M to MS-DOS uty |
22DISKは、CP/M FDの表示・操作ユーティリティ 各バージョンのCPMDISKS定義 http://cpmarchives.classiccmp.org/ftp.php?b=cpm/Software/cpmdisks/22Disk/ *** 22DISK内のCMENUの操作 *** @CP/M FDのタイプを指定 [1] → IBM2 5.25inch 320K (DSDD) & Seiko DSDD 96dpi A CP/M FDのフォーマット [5] BMS-DOSnのファイルをCP/M-86 FDへコピー [4] |
CP/M Software |
・ CP/M-86 download |
・ Digital Research Binary Files |
・ CP/M-86 FILE DOWNLOADS |
・Commercial CP/M Software Archive |
Vetusware.com |
http://www.z80.eu/index.html |
Commercial CP/M Software download |
https://www.cpm8680.com/cpmtools/ |
CP/M and Computer Histry | |
Digital Research Binary Files | |
.................................................................................................................................................................................................................................................. |
|
■ データ変換の流れ | ||||||||||||||||
※納期: 3〜4日です。 |
5インチフロッピー エンベロープ画像集 (5インチFDのコレクション) | |
8インチフロッピー エンベロープ画像集 (8インチFDのコレクション) | |
2インチフロッピー集 | |
PDカートリッジ コレクション |
Copyrught (C) CRIMSON Systems |