mieki256's diary



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)

入手とインストール。 :

入手は以下。今回は 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 が使えるようになる。

ショートカットファイルのプロパティを確認したら以下のような記述になっていた。
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/ が割り当てられる。
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 が動いてくれた。
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 にチェックを入れる。

wsの使い方が分からない。 :

YAZE-AG の起動直後、「ws profile.sub と打って編集すれば各ドライブを有効にできる」とメッセージが表示されていた。

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: にファイルコピーしている例。
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 をアセンブルしたりすることはできた。

コンパイルの例。
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なのではあるまいか。

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.

以上、1 日分です。

過去ログ表示

Prev - 2022/10 - Next
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project