CP/M Player for Win32
MSX-DOS Player for Win32

This software is CP/M-80 and MSX-DOS1 emulator for Win32 environments.
This is the test release version, use at your own risk.

Download



CP/M Player for Win32 謎WIPページ
MSX-DOS Player for Win32 謎WIPページ

恒例の謎日記



2024/10/10
ファイルに書込みを行う都度、FCB内のファイルサイズと更新日時を更新するようにしました。
ファイルをクローズする際、FCB内のサイズと日時をファイルに反映するようにしました。
PMEXTLDは、FCB内の情報を書き換えて、タイムスタンプとサイズの補正をしているようです。

ファイルのサーチ数を、最大256個から1024個に増やしました。
MGSFで、ファイル数が多いときにDIRファイルが生成できない問題が直っているかもしれません。

BDOS 1Bhで、2DDにあわせて適当なアロケーション情報を返すようにしました。
ただしDPBとFATの先頭アドレスは0にしています。
また、BDOS 25hは、MSX-DOSでは使われないようなので無効にしました。



2024/10/09

スキャンコードがE0h付きのキー(カーソルなど)の入力を取得できるようにしました。
また、MSX-DOS仕様のエスケープシーケンスをサポートしました。
このとき、画面の行数はワークエリアのF3B1hから取得するようにしています。

MSX-DOS TOOLSに入っているMEDが動作するようになっています。
ワークエリア内の行数を変更して、ESC MやESC Lのスクロール範囲を制限することで、
画面下の桁数表示を固定しているようです。
なお、ESC x/y 5によるカーソルの表示・非表示の切り替えは無効にしています。
これを使ってカーソルの点滅をしているようですが、Windows側の点滅と重なって、
カーソルがほとんど見えなくなってしまうためです。



2024/10/07
Disk BIOSのワークエリアが、CP/MのBIOS/BDOSに浸食されていたのを修正しました。
また、F37Dh経由でBDOSを呼び出せるようにしました。



2024/10/06
MS-DOS Playerの方を弄っていたら、MSX-DOS Playerという単語が浮かんできまして(苦笑)
CP/M PlayerのWin32コンソール版に、 だけ追加してみました。
(最初はMSX-DOS2仕様を目指してましたが、流石に仕様が大規模過ぎて断念しました)

BIOS類は、画面モードの切り替え、文字の入出力、スロット周りの操作に関するものを、
概ね実装してあります。
CALSLT/CLPRIM経由の呼び出しも、BIOSを表に出して直接CALLも、どちらも可です。
拡張スロットは未実装で、スロット1にSUB/DISK ROMを配置しています。
拡張BIOSは漢字ドライバのみで、漢字モードの切り替えのみをサポートしています。
漢字ROMは、存在判定に必要な最低限の16バイトのみサポートしています。

VDP周りは未実装です。
BIOS/BDOSともに、ディスクの直接読み書きは常に失敗します。


半角ひらがなは、半角カタカナで表示するようにしています。
漢字ドライバで、漢字モードをセットすると、この処理は無効になります。



2014/12/31
Win32コンソール版を更新しました。
BDOS C=0AHにおいて、取得した文字列の末尾に改行コードが含まれてしまう問題を修正しました。
また、Z80コアを、コモンソースで使用している、MAME 0.145ベースのものに差し替えました。



2012/11/28
Win32コンソール版を更新しました。

藤田 望様よりご提供いただいていましたパッチを適用しました。
HI-TECH Z80 CP/M C compiler, Aztec C, Small C, BDS-C, Mix C, Turbo Pascal, VDE, UNARC.COMなど、
多数のソフトウェアが動作するようになっているかと思います。
パッチのご提供ありがとうございました、対応が遅くなってしまい申し訳ありません>藤田様


また、自前でVT-52/ANSIのエスケープシーケンスを処理するようにしました。
ROGUEなどのソフトが、素のコンソール上で正しく表示できるようになっているかと思います。

その他、M-BASICが動作しなかったのを修正しました。
以前どこかのスレッドで問題箇所をご指摘いただいていて、直していたつもりだったのですが。
直したバージョンをリリースし忘れていたのかな(苦笑)



2009/5/17
Win32コンソール版を作成しました。
Windowsのコマンドプロンプト上で動作します。
最近CP/M上の開発を行っており、利便性向上のため自分用に作成した副産物です。
コアは従来のCP/M Playerと同じですが、ディスク周りのBIOS/BDOSの高速化を図りました。
また、キー入力や文字出力も、標準的なCの関数に置き換えています。


実質的にはSmall-Cやマクロアセンブラなどの開発言語用ですね。
一応はZORKなんかも動いています。
エスケープシーケンスを使用する場合は、コマンドプロンプトでANSI.SYSを組み込んでください。



2004/4/2
今回は、HPC2000版とPPC2002版のみの更新です。

PocketPC版で、従来フォントが潰れて視認性が悪いという問題がありました。
これの対策として、自作の8x5フォントを使用するようにしました。
フォントサイズ自体はこれまでより小さいのですが、視認性は大いに向上しています。
ついでに、PocketPCではSIPを残してフルスクリーン表示するようにしています。

自作したフォントのイメージ。


PocketPCで表示すると、こんな感じになります。(240x216)




2004/3/24
PocketPC 2002(ARM)版を作成しました。
動作確認はCASIO E-3000上で行っています。

後は、 程度です。

グリーンモニタでZORK 2を動かすと、こんな感じになります。
…オレンジ色にして、初期のJ-3100モード、なんてのは要らないですよね(笑)




2004/3/21
HPC 2000(ARM)版、実質sigmarion3版を作成しました。
いまいち動作がとろいですが、一応動作はしています。

リクエストに答えて、一発ギャグのグリーンモニタ仕様
一発ギャグと言いつつ、多分次回あたり正式に導入します(笑)



2004/3/21
部分的に、P-CP/MやCP/M Plusの仕様を盛り込み始めました。
P-CP/MやCP/M Plusならではの機能を使用しているソフトが見当たらないので、実装する意味があるのか微妙ですが。
そういう訳で、ソフト名から2.2を除いています。

VT-52の実装を修正した結果、幾つかのソフトが動作するようになりました。
WordStar 2.26とか、


ROGUE 1.7 for CP/Mとか。


後はユーザビリティの向上を幾らか。
最近開いたファイルを選択できるとか、画面サイズ変更とか。
画面サイズについては、80x48, 80x24, 40x24から選択可能です。(40x24はPocket PC版への布石だったりします)
Versionという項目がありますが、これは単にBDOS func #12への返り値を設定するだけです。




2004/3/17
ファイル操作周りの細かいところを修正した結果、HITECH-Cが動作するようになりました。


コンパイルしたTEST.COMを実行した結果は以下の通り。
HITECH-Cの使い方については、「Tatsu's MSX情報局 -MSX C Magazine-」を参考にさせて頂きました。




2004/3/16
アクセス規制中につき、こちらにて。

>>311氏
いえいえ、どうか御気になさらずに。
HITECH Cも追いかけているんですが、現状では$$EXEC.$$$にコマンドらしきデータを 出力したところで止まっています。
BDOS Call 102とか、CP/M Plusのシステムコールまで使ってるみたいなんで、>>314氏に御紹介頂いたサイトを参考に、P-CP/MやCP/M Plusの実装も進めることにしようかと思ってます。

とか書いてたんですが、その後色々弄ってたら、なんかそれっぽいのが動いてるみたいです。
(いや、ちゃんと動いてるのかどうかは判らないんですが)
主な修正個所は、謎日記参照ということで。




2004/3/15
CP/Mエミュレータでは違和感を感じる、とのご意見を頂きましたので改称しました。
主にファイル操作周りのBDOSの実装を進めたのと、VT-52としてのコンソール機能の強化を行っています。
スクリーンショットはMultiplanのものです。




2004/3/14
リハビリとして、何を今更CP/Mなものをつくってみました。
まだ実装途中ですが、一応ZORK1が何とか動く程度にはなっています。
それ以外のソフトは多分まず動かないです。

CP/Mのシステムソフトウェアは必要ありません。
CP/MのBDOS/BIOS互換環境が内部で実装されています。
直接CP/Mの実行ファイル(*.com)を実行することが可能です。

取り敢えず、ZORK1が動いた証拠のスクリーンショット。


フォントを変更することも可能です。
.lfCharSet == SHIFTJIS_CHARSETなフォントを選択した場合は、半角カナと漢字表示も受け付けるようになっている、筈です。