CP/Mコマンド概要メモの変更点

  • 追加された行はこのように表示されます。
  • 削除された行はこのように表示されます。
!!ビルドインコマンド
!DIR
ファイル名のリストアウト。

カレントドライブの全リスト。
 A>DIR
ドライブ指定。
 A>DIR B:
ファイルマッチ。
 A>DIR *.ASM
!TYPE
テキストファイルのタイプアウト。
 A>TYPE DUMP.ASM
!REN
リネーム。左が変更後名。右が変更前。
 A>REN MACRO-80.COM=M80.COM
!ERA
ファイル削除。
 A>ERA MOVECOM.COM
 A>ERA B:*.*
 ALL (Y/N)?Y
!SAVE
TPAの始まり(100H)からnページ分のメモリの内容をファイルにする。1ページは256バイト。
 A> SAVE 2 TESTSAVE.COM
!USER
有用でないため説明省略。
!!トランジェントコマンド
!STAT
ファイルや周辺装置の設定、状況表示。

アクセスされたことのあるドライブの未使用容量と属性の表示。
 A>STAT
ドライブの未使用エリア容量表示。
 A>STAT A:
ファイルのサイズと属性表示。
 A>STAT B:M80.COM
レコード数(size)も表示。
 A>STAT B:M80.COM $S
SYS属性を付ける。
 A>STAT B:M80.COM $SYS
ロジカルデバイスに対するフィジカルデバイスの割付け状況表示。
 A>STAT DEV:
ロジカルデバイスに対し割付け可能なフィジカルデバイスを表示。
 A>STAT VAL:
CON:に対しTTY:を割り付ける。
 A>STAT CON:=TTY:
アクセスされたドライブ全部の諸元を表示。
 A>STAT DSK:
ドライブにライトプロテクトをかける。
 A>STAT A:=R/O
!PIP
周辺装置間のデータ転送。引数なし単独起動可能。
ファイルコピー。左がコピー先。右が元。
 A>PIP B:=ED.COM
リネームコピー。
 A>PIP B:MACRO-80.COM=A:M80.COM
デバイスに対しても可能。CON:へコピーすれば、画面へ表示される。(=TYPEコマンド)
 A>PIP CON:=B:TEST.BAS
タイプ入力をファイルにする。(終了は^Z)
TeraTerm等で直接ファイル転送ができる。Setup>Serialport>Transmit deleyを10msecぐらいに設定。File>Send fileでファイル選択。
 A>PIP TEST.TXT=CON:
ファイルの連結。
 A>PIP TEST.BAS=TEST0.BAS,TEST1.BAS,TEST2.BAS
オプションパラメータの与え方
 A>PIP TEST.TXT=RDR:[B]
,PIPパラメータ,機能
,B,ブロック転送。^S受信でバッファフラッシュ。
,Dn,ライン文字数制限。
,E,コンソールへエコー。
,F,フォームフィード(0CH)を削除。
,H,インテルHEX形式のデータとしてフォーマットチェックを行う。
,I,[H]の機能時にヌルレコードを無視する。
,L,大文字を小文字に変換。
,N,ラインナンバー付加。ゼロ付きは[N2]。
,O,EOF(1AH):^Zによる終端を無視。バイナリー転送可能とする。
,Pn,nラインごとのページ送り。デフォルト60行。
,Q文字列^Z,'文字列'を検索すると終了する。
,S文字列^Z,'文字列'を検索したところから転送開始する。
,R,SYS属性の付いたファイルの転送。
,Tn,タブスペースをnカラムとする。
,U,小文字を大文字に変換する。
,V,ベリファイを行う。
,W,転送先がR/Oでも強制的に実行する。
,Z,データのビット7を0にして転送する。
PIP特殊デバイス
,デバイス名,機能
,EOF:,ターミネートコードEOF(1AH)を出力する。
,NUL:,40個のNUL(00)を出力する。
,PRN:,ラインNo.、8文字ごとTAB、60ラインごとのページ割付きLST:デバイス。
,INP:,ユーザがPIP内(109F-1FFH)にパッチして組込む。103HをCALL、109Hのデータを取得する。
,OUT:,ユーザがPIP内(109F-1FFH)にパッチして組込む。出力データをCレジスタに設定して106HをCALLする。
!ED
テキストエディタ。
 A>ED B:TEST.BAS
,EDコマンド,機能
,nA,エディットバッファにn行ロード。
,0A,エディットバッファの容量半分までロード。
,±B,CPを+先頭/-最後にセット。
,±nL,n行移動し行頭にCPをセット。
,±n,nLを実行し、その行をタイプアウト。
,0,CPを行頭にセットしタイプアウト。
,{Enter},CPを次の行の行頭にセットし、タイプアウト。
,n:,CPをラインNo.nの頭にセット。
,±nT,CPからn行分タイプアウト。
,0T,行頭からCPまでタイプアウト。
,n::mT,ラインNo.n-mまでをタイプアウト。
,±nC,CPをn文字移動する。
,±nP,CPからnページ(23行)タイプアウト。
,nF文字列,CP以後バッファ内で、n番目に出現した文字列の最後にCPをセット。
,nN文字列,CP以後ファイル内で、n番目に出現した文字列の最後にCPをセット。
,±nD,CPからn文字分削除。
,±nK,n行分削除。+(CP含む)/-(CP含まない)
,I,CP以後からインサートモード。^Zで終了。
,I文字列^Z,文字列挿入。
,I文字列{Enter},文字列挿入し、行を追加する。
,Rfilename,filenameLIBファイルをCP以後に挿入する。
,nS文字列1^Z文字列2,CP以後のバッファ内で文字列1を文字列2に置換する。n回繰り返し。
,nJ文字列1^Z文字列2^Z文字列3,文字列1の後に文字列2を挿入、文字列3まで削除。n回繰り返し。
,nX,CPからn行分をテンポラリファイルに保存(=行コピー)
,R,テンポラリファイルに保存されている行をCP以後に挿入する(=行ペースト)
,0X,テンポラリファイルを空にする。
,±U,U実行後の入力文字は大文字に変換。-Uで解除。
,nMcommand,commandをバッファの最後までn回実行。
,Mcommand,commandをバッファの最後まで繰返し実行。
,±V,-VでラインNo.非表示。
,0V,エディットバッファ使用状況表示。
,nZ,表示ディレイ設定。(4MHzクロックで1/4秒)
,nW,エディットバッファ最初からn行カットしテンポラリファイルに保存。
,E,保存終了。
,H,保存。
,O,編集全キャンセル。
,Q,編集キャンセル終了。
,n:command,CPをnラインにセットしcommand実行。
,:n command,commandをCPからnラインまでに対して実行。
*CP:キャラクタポインタ。
*+は省略可。
*nが1の時省略可。#は最大数(=65536)。
*コマンドを大文字で与えると、テキストの小文字が全部大文字になるので注意。
!ASM
8080アセンブラ。
ターゲットファイルの指定は拡張子は付けない。.以下の3文字はドライブ名を表す。filename.shp (s:ソース。h:HEX出力先。p:PRN出力先)の意味。Z:出力しない。X:コンソール。
 A>ASM DUMP
ドライブAのソースをアセンブルするが何も生成しない。エラーはコンソールに出力。
 A>ASM DUMP.AZZ
ASMエラーコード
,コード,エラー,エラーの原因
,D,Data,エクスプレッションの値がデータエリアに適合しない。
,E,Expression,表現上のエラー。
,L,Label,ラベルが不正。
,N,Not implemented,インプリメントされていない命令を使用した。
,O,Overflow,エクスプレッションの値が限度を超えた。
,P,Phase,アセンブラ実行中の各パスで、ラベルの値が異なった。
,R,Register,適合しないレジスタが指定された。
,U,Undefined,ラベルが定義されていない。
,V,Value,オペランドやエクスプレッションの値が範囲外。
!LOAD
HEX→COM変換プログラム。
 A>LOAD B:TEST
!DDT
8080デバッガ。
ファイルを指定した場合は、それをアドレス100Hからメモリへ配置して起動する。HEXファイルの場合はバイナリに変換しHEX内で指定されたアドレスへ配置される。
 A>DDT DUMP.COM
コマンドの書式(アドレスの指定方法)Dコマンドの例。
 -D		;現在のアドレスから規定バイト
 -Dssss		;指定のアドレスから規定バイト
 -Dssss,eeee	;指定から指定まで
 -D,eeee		;現在から指定まで
,DDTコマンド,例,機能
,A,Assss,1ステップ毎のラインアセンブル。ssssからロード。スペースで終了。
,D,D,ダンプ。デフォルト12行。
,F,"Fssss,eeee,cc",ccHで埋める。
,G,"Gssss,bbbb","ブレークポイントbbbbを設定(,で複数可)して実行する。"
,H,"Hxxxx,yyyy",xxxxとyyyyの十六進加算減算結果表示。
,I,IDUMP.COM,アドレス5CHのファイルコントロールブロックにファイル名を設定。
,R,Rbbbb,Iで指定したファイルに対し起動時指定と同じ動作。bbbbはバイアス値。
,L,Lssss,逆アセンブル。デフォルト11ライン。
,M,"Mssss,eeee,nnnn",nnnnからへブロック転送。
,S,Sssss,内容を表示。変更可能。リターンで次。"."(ドット)で終了。
,Tn,T3,現PCからnステップトレース。CPU状態表示。任意のキーでブレーク。
,Un,U5,最終のCPU状態のみ表示するTn。
,X,X,"レジスタ類の表示。Xrでr(レジスタ:C,Z,M,E,I,A,BC,DE,HL,S,P)指定で変更可能。"
!DUMP
ファイルの16進ダンプ。
 A>DUMP DUMP.ASM
!SUBMIT
バッチ処理プログラム。処理定義ファイル(subfile.SUB)はA:ドライブでなければいけない。

TEST.SUBを実行する。
 A>SUBMIT TEST
!SYSGEN
CP/Mシステムディスク作成プログラム(機種依存) → CP/Mメモリサイズ変更手順メモ

TPA(ユーザーメモリ)上の900Hから配置されたシステムトラックイメージをシステムトラックに書き込む。
 A>SYSGEN
ファイル化したCP/Mシステム48KCPM.COMからシステムディスクを作る。
 A>SYSGEN 48KCPM.COM
!MOVCPM
CP/Mシステムのリロケートプログラム。リロケータブルなシステムイメージを内包しており、任意メモリサイズのシステムを生成できる。→ CP/Mメモリサイズ変更手順メモ

32KCP/Mシステム(CCP/BDOS)を生成しTPA(980H〜)に配置する。
 A>MOVCPM 32 *
可能な最大メモリサイズのCP/Mシステムを生成する。
 A>MOVCPM * *
AVRとZ80でCP/M へ戻る
----
*cp/m マシンを3台所有。3.5 inch floppy drive . 懐かしいです。ありがとう - Kazuhiro NOGAKI (2017年07月22日 09時43分58秒)
*Mac,Winの比較でMacは中身Unixで対応コマンドが使える,Winは×,いやPowerShellがあるという議論を聞いた.自分は割とWinコマンドプロンプト派なのだがよく考えるとCP/Mからのものだったと納得 - 古い人 (2023年11月24日 10時20分30秒)
{{comment}}