こんにちは
Z80-MBCボードを組み立ててCP/M 2.2をインストールし、CP/Mの勉強を始めようとしたのですが、ED.COMの使い方が良くわかりませんでした。 もっと使いやすいテキスト・エディターはないのかなど、新しいソフトを追加するにはどうすればいいのか、など疑問に思って調べてみました。
ここでは調べた結果を少しだけ紹介したいと思います。 これらの資料はすべてネット上で手に入れられるものなので、すでにご存知の方は利用されているとは思いますが。
目次
実行ファイルの収集
CP/Mで実行させるためのファイルをまず収集します。
以下のところで必要なファイルは収集することができました。
この中からWordmastrなどのEditorを選んでインストールにチャレンジしました。
なお以下の記事があったおかげで、新しいソフトをインストールすることが出来るようになりました。
How to make Custom virtual disk images
この記事を参考にして進めていけば問題なくimageファイルを作ることが出来ますが、私なりに斜め読みで適当な理解で勧めていきたいと思います。
必要なTools
記事に書いてある通りに進めていきます。
まず 好きな場所にWorking Directoryを作ります。以下は私の場合です。
C:\Users\user\Desktop\z80-mbc-cpm
ディスクトップにz80-mbc-cpmというホルダーを作りました。
その中にCpmtools、SRecordと、CPMtools-custom.zipとSRecord-custom.zipをダウンロードして解凍しておきます。
cpmtoolsは「Welcome to the Wonderfully Ancient World of CP/Mの中のDownloads and Linksのcpmtools Native Win32 Excutables」をクリックしてダウンロードします。
SRecordは https://sourceforge.net/projects/srecord/files/srecord-win32/ からsrecord-1.63-win32.zipをダウンロードします。
CPMtools-custom.zipとSRecord-custom.zipは以下の記事の中に紹介されています。
それぞれをダウンロードして解凍すると
cpmtoolsWin32, srecord-1.63-win32,CPMtools-custom, SRrecord-customというフォルダーが4つ出来ます。
cpmtoolsWin32は長いのでcpmtoolsに新しいフォルダーを作って、そこに全部をコピー。同時にCPMtools-customの中身も全部cpmtoolsへコピー(移動)しました。
srecord-1.63-win32はそのままでSRrecord-customの中身を全部コピーというか移動しました。
これは各自自由に。 これでDISKDEFSの中も新しくなったと思います。(確認してませんが)
次にcpmtoolsのフォルダーの中に新しくCPM-filesというフォルダーを作ります。
どのimage diskを作るのか
さて次にimage diskを作るのですが、どのimage diskを作るのか良くわかりませんでした。
で少し考えたら、disk0にはCP/Mの基本部分が、disk1にはpascalなどの応用の部分が。 ということと、disk0用の実行ファイルが手元に一切ないので、まずはdisk1のimageを作ることでテストしてみる事にしました。
というわけで
Steps to create a Disk 1 image
にチャレンジです。
cpmtoolsのフォルダーの中に「makeDisk1.bat」というbatファイルがあります。
このファイルに修正を行います。メモ帖などが使えます。
メモ帖を開いて、すべてのファイル(*.*)に変更すると、全てのファイルが見えますので、この中からMakeDisk1.batを選択します。なお拡張部が通常は見えませんのでmakeDisk1となっていると思います。見えるようにするには健忘録を参照してください。
さて以下は私のMakeDisk1のファイルの中身ですが、使えないものも含まれていると思いますが、ご参考までに。
以下のMakeDisk1は必要なものを追加修正したものです。
MakeDisk1.bat
@echo off rem rem rem USAGE: MakeDisk1.bat <disk_image.dsk> if .%1==. goto :error2 set dskfile=%1 mkfs.cpm -f z80mbc-d1 %dskfile% cpmcp -f z80mbc-d1 %dskfile% CPM-files\wm.com 0:wm.com cpmcp -f z80mbc-d1 %dskfile% CPM-files\wm.hlp 0:wm.hlp cpmcp -f z80mbc-d1 %dskfile% CPM-files\ANSI.HEX 0:ANSI.HEX cpmcp -f z80mbc-d1 %dskfile% CPM-files\wmh89.com 0:wmh89.com cpmcp -f z80mbc-dl %dskfile% CPM-files\wm-soroc.com 0:wm-soroc.com cpmcp -f z80mbc-d1 %dskfile% CPM-files\zde16.com 0:zde16.com cpmcp -f z80mbc-d1 %dskfile% CPM-files\zdenst16.com 0:zdenst16.com cpmcp -f z80mbc-d1 %dskfile% CPM-files\z80asm.com 0:z80asm.com cpmcp -f z80mbc-d1 %dskfile% CPM-files\dump.com 0:dump.com cpmcp -f z80mbc-d1 %dskfile% CPM-files\dump.z80 0:dump.z80 cpmcp -f z80mbc-d1 %dskfile% CPM-files\config.com 0:config.com cpmcp -f z80mbc-d1 %dskfile% CPM-files\tbcpm.com 0:tbcpm.com echo All done. Bye bye... goto :end :error2 echo Please specify a disk image file! echo USAGE: %0 ^<disk_image.dsk^> goto :end :end
cpmtoolsのCPM-Filesには必要な実行ファイルを入れておきます。
例えば WM.COMやWM.HLPなどです。実行ファイルのある所は既に紹介済みですよね。
cpmtoolsをwindowsの「アクセサリ」->コマンドプロンプトとコマンドプロンプトを選択します。
コマンドプロンプトを使ってcpmtoolsの中に入ります。
以下はcpmtoolsの中の一部ですが。
コマンドプロンプトを使って
makedisk1 disk1.dsk
と入力します。
disk1.dskというファイルが新しく出来ますので、それをコピー(移動でも)して、
srecord-1.63-win32のフォルダーにペーストします。
srecord-1.63-win32のフォルダー内で同様にコマンドプロンプトを使って
d1tohex disk1.dsk
と入力します。もちろんEnterは忘れずに
すると新しいファイルが4つ出来ます。
このファイル4つ(disk1_SEG0.hex, disk1-SEG1.hex, disk1_SEG2.hex, disk1_SEG3.hex)を実機のz80-MBCボードに書きこみます。
disk1_SEGx.hexを実機へ書き込む
imageの書きこみについては、ネット上でも紹介されていますが、健忘録を兼ねて、もう一度紹介します。
Z80-MBCボードにシリアル-USB変換器を取り付けてTera Termを立ち上げます。多分Tera Termを立ち上げてからのほうが良いかも。
既にCP/M 2.2が立ち上がっています。
ではimageファイルを書き込むための準備をします。
ボード上のuserとresetボタンを同時に押して、resetボタンを数秒後に離します。
3 iLoadをセレクトします。
Tera Term のファイルー>ファイル送信(S) を選択します。
iDisk-S250317.hexファイルを選択して
開くを押してロードします。
入力待ちになりますので
Tera Termのファイルからファイル送信(S)を選択して
その前にTera Termの設定ー>シリアルポート(E)を開いて
送信遅延を90ミリ秒/行 に設定します。多分これをしないとエラーでhaltになる可能性があります。
でやっと
Tera Terrm のファイルー>ファイル送信(S)から先ほど作ったimageファイル disk_SEG0.hexを選択し開きます。
disk1にhexファイルが書き込まれます。
次にY
書き込みとveryfyが終わると次のファイルを要求します。
同様のことをdisk1_SEG3.hexまで行います。もしかしたら最後の方は何もしないかもしれませんが。
disk1_SEG3.hexの書き込みが終了しました。
では
userとresetを同時に押してresetを少し遅れて離します。
4 を選択してCP/M 2.2を起動します。
起動後にb: でb:に入りファイルをチェックします。
新しい実行ファイルがb:に入りました。
このままwm.comを起動してみます。
ファイル名を指定しないでwmを起動したので「NO FILE NAME」でWARM BOOTしたようです。
ではtest.z80とファイル名を入れて起動してみます。
どうやら入力待ちになったようです。さっそく入力を
と思ったのですが、なにやらおかしな状態に
wm.comを修正してtera term vt100で使えるようにしてくれているサイトがありました。早速利用させていただきました。本当にありがたいです。
この記事の中に
WordMasterへのパッチ適用作業工程 というのがあります。
この通りにすると
次に
修正したwm.comをセーブします。
wmm.comという名前です。
それでは早速使ってみます。
wmm test.z80 なお tera term の設定ー>端末で80×32に設定します。
先ほどと様子がちがいます。
さっそくtest.z80を入れてみます。
あるサイトにあったtest.z80を入れて見ました。
実行してみます。
Hello World ! が出ていますが、すぐにWarm Bootで入力待ちに
一応ちゃんと動作したようです。 本当にありがたいですね。
他にzde16.com を入れて見ました。
ANSI を選択してsaveします。
起動してみました。なお ren zde.com=zde16.comでzdeで起動できるようです。詳しいことはまだ勉強していないので不明ですが。
これが正常なのかどうか?
でも使えそうです。コマンドを覚えるのが大変ですね。
コメント
>なお rem zde.com=zde16.comでzdeで起動できるようです。
ren のtypoですね。(rename)
返事が大変遅れて申し訳ありませんでした。
3月からやりたいことが多くなり更新を怠っていました。
ご指摘のrem -> ren renameでしたね。
ありがとうございました。
私のブログが参照されていたので驚きました。
少しでも役に立っているみたいなのでブログに記録しておいた甲斐がありました^^
ブログへのコメントありがとうございました。
久しぶりのCP/M
WordMasterを使いたくて困っていたところ、素晴らしい記事を見つけることができ
つい私の記事の中で紹介させていただきました。