2022/10/04(火) [n年前の日記]
#1 [windows][prog] CP/Mエミュレータ YAZE-AGを試用
随分前に、CP/Mエミュレータを少し試用したことがあったのだけど。
_CP/Mエミュレータを試用 - 2019/05/08
_Altair 8800 simulator を試用 - 2019/05/10
YAZE-AG というCP/Mエミュレータのバージョンが上がっていたので、触ってみようかなと。以前試したときは 2.40.5 だったけど、現行版は 2.51.2 になっているらしい。
環境は、Windows10 x64 21H2。CPU は AMD Ryzen 5 5600X。
以下の解説ページが参考になった。
_ソフトウェアー基礎コース (Tiny BASIC Lesson 1:Z80 エミュレーター YAZE)
_CP/Mエミュレータを試用 - 2019/05/08
_Altair 8800 simulator を試用 - 2019/05/10
YAZE-AG というCP/Mエミュレータのバージョンが上がっていたので、触ってみようかなと。以前試したときは 2.40.5 だったけど、現行版は 2.51.2 になっているらしい。
環境は、Windows10 x64 21H2。CPU は AMD Ryzen 5 5600X。
以下の解説ページが参考になった。
_ソフトウェアー基礎コース (Tiny BASIC Lesson 1:Z80 エミュレーター YAZE)
◎ 入手とインストール。 :
入手は以下。今回は 2.51.2 64bit版を試用してみた。
_YAZE-AG - Yet Another Z80 Emulator by AG V 2.51.2 (Windows binaries)
以前のバージョン、2.40.5 は、バイナリがCPU別に用意されてたようだけど、現行版 2.51.2 は一種類だけのバイナリを提供する状態になった模様。
yaze-ag-2.51.2-x86_64bit-generic.exe をDL。実行するとインストーラが起動して、指定した場所にファイルが展開される。今回、手元の環境では、D:\Dev\yaze-ag-2.51.2-64Bit\ にインストールしてみた。
インストールすると、デスクトップにアイコン(ショートカットファイル)が作成される。ダブルクリックすると、mintty.exe が起動して CP/M が使えるようになる。
ショートカットファイルのプロパティを確認したら以下のような記述になっていた。
ちなみに、そのままだと CP/M 3.1 が起動するけれど、CP/M 2.2 を使いたい場合、以下を指定することになるのだろう…。以前はそうだったはず。
_YAZE-AG - Yet Another Z80 Emulator by AG V 2.51.2 (Windows binaries)
以前のバージョン、2.40.5 は、バイナリがCPU別に用意されてたようだけど、現行版 2.51.2 は一種類だけのバイナリを提供する状態になった模様。
yaze-ag-2.51.2-x86_64bit-generic.exe をDL。実行するとインストーラが起動して、指定した場所にファイルが展開される。今回、手元の環境では、D:\Dev\yaze-ag-2.51.2-64Bit\ にインストールしてみた。
インストールすると、デスクトップにアイコン(ショートカットファイル)が作成される。ダブルクリックすると、mintty.exe が起動して CP/M が使えるようになる。
ショートカットファイルのプロパティを確認したら以下のような記述になっていた。
D:\Dev\yaze-ag-2.51.2-64Bit\bin\mintty.exe --config .\.minttyrc --exec .\yaze_bin.exe
ちなみに、そのままだと CP/M 3.1 が起動するけれど、CP/M 2.2 を使いたい場合、以下を指定することになるのだろう…。以前はそうだったはず。
D:\Dev\yaze-ag-2.51.2-64Bit\bin\mintty.exe --config .\.minttyrc --exec .\yaze_bin.exe -l -1 -b yaze.boot要するに、最後に、「-l -1 -b yaze.boot」を追加することになるらしい。
◎ Cドライブの設定が少し変わってた。 :
YAZE-AG 2.51.2 は、以前の版、2.40.5 と少し違うようで、bin/disksort/ が C: に割り当てられていなかった。
以下を打ち込めば C: に ./disksort/ が割り当てられる。
Windows側から ./disksort/ フォルダ内にファイルをコピーしておけば、YAZE-AG 側も C: に ./disksort/ をマウントすることでそれらのファイルを読み取れるようになる。
以下を打ち込めば C: に ./disksort/ が割り当てられる。
sys mount c ./disksort
Windows側から ./disksort/ フォルダ内にファイルをコピーしておけば、YAZE-AG 側も C: に ./disksort/ をマウントすることでそれらのファイルを読み取れるようになる。
◎ Mbasicで動作確認。 :
CP/M用 Microsoft BASIC Interpreter v5.21、Mbasic.com を入手して、./disksort/ にコピーしておく。
_CP/M Programming Languages and Tools
以下を実行したら Microsoft Basic が動いてくれた。
簡単なプログラムを打ち込んで動作確認。
Mbasic の終了は、system と打つ。
ちなみに、YAZE-AG の終了は以下。
_CP/M Programming Languages and Tools
以下を実行したら Microsoft Basic が動いてくれた。
C: mbasic
簡単なプログラムを打ち込んで動作確認。
10 for i=0 to 5 20 print i*i 30 next list 10 FOR I=0 TO 5 20 PRINT I*I 30 NEXT Ok run 0 1 4 9 16 25 Ok
Mbasic の終了は、system と打つ。
system
ちなみに、YAZE-AG の終了は以下。
sys quitもしくは、E.COM を実行しても終了できる。e と打って Enter。
◎ Backspaceキーが効かない問題。 :
Backspaceキーを叩いたら変な文字が挿入された。
YAZE-AG の画面出力を担当している、mintty の設定で変更できる模様。ウインドウの左上のアイコンをクリック → Options → Keys → Backarrow sends ^H にチェックを入れる。
YAZE-AG の画面出力を担当している、mintty の設定で変更できる模様。ウインドウの左上のアイコンをクリック → Options → Keys → Backarrow sends ^H にチェックを入れる。
◎ wsの使い方が分からない。 :
YAZE-AG の起動直後、「ws profile.sub と打って編集すれば各ドライブを有効にできる」とメッセージが表示されていた。
どうやら ws というのは、WordStar という、当時のワープロソフトだったらしい。
_WordStar - Wikipedia
_ASCII.jp:業界に痕跡を残して消えたメーカー ワープロソフトWordStarで分裂したMicroPro (1/3)
ws profile.sub と打ってみたところ、たしかにエディタっぽい画面になった。
しかし、終了のさせ方が分からない…。
とりあえず、ESCキーや Ctrl + J (^Jと表記) を押したらヘルプメッセージっぽいものが出てきた。
少しググってみた。ショートカットキーの一覧は、以下が参考になるのだろうか。
_cpm:wordstar []
_WordStar Command Summary - wordstar-command-summary.pdf
とりあえず、保存と終了だけでもメモ。
A>; The following ydsk-files can be mounted by deleting the ';' at the begin of A>; the line bevore the sys command. To editing the file use "ws profile.sub". A>; A>;sys mount c ./disksort ; source of the Disksort program (DIR) A>;sys mount d disks/disksort.ydsk ; submit examples to compile Disksort A>;sys mount f disks/zinc.ydsk ; CP/M Utilities of the ZINC projekt A>;sys mount g disks/test-utils-1.10.ydsk ; Testutilities with ZEXALL.COM A>;sys mount h disks/hi-c-z280-compiler.ydsk ; Hitech Z80/Z280 C-Compiler A>;sys mount i disks/unixlike.ydsk : Unixlike utilites for CP/M A>;sys mount j disks/mmu-utils.ydsk ; testprograms when I develope the MMU A>;sys mount k disks/kermit_szrz.ydsk ; comunication programm for serial line A>;sys mount l disks/spl.ydsk ; programming language "SPL" A>;sys mount m disks/turbo-modula-2.ydsk ; Borlands Turbo-Modula-2 environment A>;sys mount n disks/testdsk.ydsk ; Testdisk A>;sys mount o disks/zsm4-source.ydsk ; Source of ZSM4 V4.4 Macro Assembler A>;sys mount p disks/bios3-zsm4.ydsk ; sources CP/M 3.1 BIOS (ZSM4) A>; A>pause
どうやら ws というのは、WordStar という、当時のワープロソフトだったらしい。
_WordStar - Wikipedia
_ASCII.jp:業界に痕跡を残して消えたメーカー ワープロソフトWordStarで分裂したMicroPro (1/3)
ws profile.sub と打ってみたところ、たしかにエディタっぽい画面になった。
しかし、終了のさせ方が分からない…。
とりあえず、ESCキーや Ctrl + J (^Jと表記) を押したらヘルプメッセージっぽいものが出てきた。
少しググってみた。ショートカットキーの一覧は、以下が参考になるのだろうか。
_cpm:wordstar []
_WordStar Command Summary - wordstar-command-summary.pdf
とりあえず、保存と終了だけでもメモ。
- Ctrl + K の後に D を叩けば、保存してからファイルを閉じる。
- Ctrl + K の後に Q を叩けば、保存しないままファイルを閉じる。
- その後、X を叩けば ws を終了できる模様。
◎ PIPの在り処。 :
PIP.COM というのは、おそらくファイルコピーをするプログラムだろうと思うけど、YAZE-AG 2.51.2 では、PIP.COM は B: にあるらしい。
使い方としては、以下のような感じだろうか。これは、C: から A: にファイルコピーしている例。
使い方としては、以下のような感じだろうか。これは、C: から A: にファイルコピーしている例。
B:PIP A:HELLO.ASM=C:HELLO.ASM
◎ コンパイルやアセンブル。 :
YAZE-AG には、Cコンパイラやアセンブラも同梱されている。以下を参考にして動作確認。
_ソフトウェアー基礎コース (Tiny BASIC Lesson 2: CP/M によるコンパイル・アセンブル)
とりあえず、CP/M 2.2 上で HELLO.C をコンパイルしたり、HELLO.ASM をアセンブルしたりすることはできた。
コンパイルの例。
アセンブルの例。
_ソフトウェアー基礎コース (Tiny BASIC Lesson 2: CP/M によるコンパイル・アセンブル)
とりあえず、CP/M 2.2 上で HELLO.C をコンパイルしたり、HELLO.ASM をアセンブルしたりすることはできた。
コンパイルの例。
sys mount c ./disksort sys mount h disks/hi-c-z280-compiler.ydsk H: c C:HELLO.C HELLO era HELLO.COM
- C: と H: をマウント。
- カレントドライブを H: ドライブに変更。
- C: ドライブの HELLO.C というファイルを、H: ドライブの C.COM というコンパイラでコンパイル。H: ドライブ内に HELLO.COM が生成される。
- H: ドライブ内の HELLO.COM を実行。
- 動作確認できたので、eraコマンドを使って、HELLO.COM を削除。
アセンブルの例。
A: B:PIP A:HELLO.ASM=C:HELLO.ASM B:PIP A:LOAD.COM=C:LOAD.COM B:MAC HELLO LOAD HELLO HELLO era HELLO.ASM era HELLO.PRN era HELLO.HEX era HELLO.SYM era HELLO.COM
- C: ドライブの HELLO.ASM を A: ドライブにコピー。
- B:MAC.COM や A:LOAD.COM を使ってアセンブルして、A:HELLO.COM を生成している。
◎ C:はリードオンリー。 :
ところで、C: (./disksort) は、YAZE-AG側からは Read Only 扱いの模様。ファイルが書き込めなくて、変だなーおかしいなーと結構悩んでしまった…。
以下は起動時のメッセージ。おそらく、「r/w」が読み書きできるドライブで、「r/o」がRea Onlyなのではあるまいか。
以下は起動時のメッセージ。おそらく、「r/w」が読み書きできるドライブで、「r/o」がRea Onlyなのではあるまいか。
The following disks and directory are defined in .yazerc and PROFILE.SUB: A: r/w BOOT_UTILS BOOT disk with CCP.COM and some utilies (.yazerc) B: r/w CPM3_SYSdsk Disk with all CP/M 3.1 system utilities (.yazerc) A section "YAZE-AG" is added in the help file. C: r/o ./disksort/ Connected to the (unix-)directory ./disksort/ (SOURCE) D: r/w disksort.dsk Submit examples of the DISKSORT project F: r/w zinc.ydsk System Utilies of the ZINC project from John Elliott G: r/w test-utils-1.10 Test Utilities of the old version yaze-1.10 H: r/w hi-c-z280-compiler A Copy of the C Compiler from HI Tech Soft I: r/w unixlike.ydsk UNIX like utilities J: r/w mmu-utils Testfiles for the Memory Management Unit (MMU). K: r/w kermit_szrz.ydsk Kermit and SZ/RZ (Zmodem) L: r/w spl.ydsk SPL development environment to compile .SPL files M: r/w turbo-modula-2 Modula 2 Compiler of Borland N: r/w testdsk.ydsk testdisk O: r/w zsm4.4-source ZSM4 v4.4 Macro Assembler for Z80/Z180/Z280 (source) P: r/w bios3-zsm4 sources of the BIOS3 for YAZE-AG (look 0-README.1ST) On every disk is a file named 0-README.1ST. This file describes the contents of the disk. You can use the a:S.COM (NSWEEP) utility to read it.
[ ツッコむ ]
以上です。