Releases: tablacus/LSX-Dodgers
1.61c
1.61b
共通
- MS-DOSフォーマットでは無いディスクのチェックが抜けていた部分を調整
X1/turbo/Z版
- 起動時に
AUTOEXEC.BAT
が動かなかった問題を対策 - X1turboZ等の2D/2HD両方対応のドライブで2DDの読み書きができる機能を表に出した。
2DDの場合は2HDモードでシークを行い2Dモードで読み書きを行います。
トリッキーな機能なので非推奨ですが、実機でフォーマットを読み書きが確認できました。
X1以外の5インチドライブで現在も動作するマシンを持っていないのでこれで正解かは不明です。
エミュレータではldsys.dsk
をeX1turbo(Z)に入れると2DDで起動します。IPLメニューからは2Dモードで起動してください。
なぜか2DDでは起動できません。
MSX版
- MSX2以降で日付時刻取得のシステムコールに対応しました。
- 起動周りの処理を調整
実機やMSX0で起動できないとのことなので似非DOSに合わせて調整しました。 - コピーの際のディスクバッファを$8000以降に変更
MSXはスロット切り替えの関係でBIOSのあるスロット0とディスクカーネルのあるスロット1にある0~$7FFFにディスクバッファがあるとオーバーヘッドが大きい気がするので調整
エミュレータでテストした感じでは微妙に速くなっている気がするがほとんど差が無かった。
1.61
共通
-
カレントドライブの保存場所をCP/Mに合わせて $0003番地 に変更
レガシーなLD判別は使えなくなりました。代替としてはシステムコールの$6F MSX-DOS のバージョン番号の獲得(_DOSVER)を使用してください。 -
$5C ファイル名の解析(_PFILE)で設定のHLがFCBの先頭アドレスからファイル名の先頭アドレスに変更になりました。1バイトずらしMSX-DOS2との互換性を向上させました。
X1/turbo/Z版
- 1セクタ512バイトまでに特化しディスクバッファとFATバッファを1KB減らしてTPAを1KB増やした。
2HD(1.23MB)を使用する場合はJAPAN2HD.COM
を実行してください。
2HD(1.23MB)など1セクタ1024バイトのフロッピーから起動した場合は自動的に拡張されます。
PC-8801mkIISR版
-
1セクタ512バイトまでに特化しディスクバッファとFATバッファを1KB減らしてTPAを1KB増やした。
2HD(1.23MB)を使用する場合はJAPAN2HD.COM
を実行してください。
2HD(1.23MB)など1セクタ1024バイトのフロッピーから起動した場合は自動的に拡張されます。 -
高速RAMのテキストVRAMの使っていない場所にプログラムとデータを置いてTPAを増やした。
MSX版
- フロッピーからも起動できるようになった。
フロッピーから起動する場合はディスクROMが必要です。基本的にDOS for MSXの方がお勧めですが、LSX-Dodgersの場合はDOS1のROMカーネルしかない場合でも階層ディレクトリが扱えます。
1.61a
MSX版
- ディスクの書き込みに不具合があったのを調整
Takashi Kobayashiさん、ご報告ありがとうございます。
1.60
共通
- 内部コマンドのdirでドライブ名がおかしくなることがある問題を対策
YATYATYATさん、ご報告ありがとうございます。
1.60A (2023/4/24)
MZ-700/1500版
- CP/MのBIOSのCONSTの調整
いろまげんくていさん、ご報告ありがとうございます。
1.60B(2023/4/27)
X1/turbo/Z版
- 高解像度時のCRTCの値の調整(R5を0に)
癒し鉄道模型チャンネルさん、ご報告ありがとうございます。
1.60C(2023/7/5)
MSX版
- ページ0、ぺージ1のRAMの捜索方法を変更
ごりぽんさん、ありがとうございます。 - CALSLTの引数がおかしかったのを調整
1.60D(2023/7/12)
MSX版
- 起動時に使っているRAMのスロットの取得に問題があったので調整
- RAMの捜索を調整
スロットn-2、n-3の捜索ができていなかった。
1.60E(2023/8/30)
共通
- FATサイズが256セクタの場合にハングしてしまう問題を対策
webmsxのハードディスクの128MB(FAT16)が動作するようになりました。 - 予備FAT(第2FAT)への書き込みを省略した。
1.59
共通
- FCBを使ったアクセスでカレントドライブの場合にシステムコールを使った時点でその時のカレントドライブの設定に固定していたのをやめた。
- 内部コマンド用のバッファ取得を調整
X1/turbo/Z
- FDDのタイムアウトのタイミングをCPUのクロック数からVSYNCを使った物に変更
MZ-700/1500版
- G-RAM(PCG)ディスク(G:)24KBを追加
- FDDのタイムアウトのタイミングをCPUのクロック数からVSYNCを使った物に変更
PC-8801mkIISR版
- 拡張RAMディスクの容量測定に不具合があったので調整
1.58
共通
- DIRコマンドでタイムスタンプの表示を削除
- TYPEコマンドを削除
X1/turbo/Z
- EMMの対応サイズを16MBに拡大しBPBを使用するようにした。
IPLとBPBをずらしてEMMからIPL起動が可能です。互換IOCSやCZ-8BE4の場合 - X1turboでもEMMの転送をCPUで行うようにした。
- オートリピートでCTCの使用をやめた。
- TPAが256バイト広くなった。
フリーエリアが変わった関係でLD-hddは対応バージョンを使用してください。
PC-8801mkIISR
- TPAが256バイト広くなった。
- $18のBIOS-ROM呼び出しを廃止
MZ-700/1500版
- キー入力で8253を使った割り込み処理をやめた。
MSX版
- C-BIOS環境でも文字列入力時にカーソルを表示するようになった。
1.57
MSX版
MSX版を追加しました。
似非DOS for MSXとの違いはDOSカーネルが不要でフロッピーではなくROMで起動しROMをディスクとする点になります。MSXで64KBのRAMがあれば互換BIOSのC-BIOS環境でも動作しています。
ROMディスクはドライブA、DSKを2つ連結した場合はドライブA,Bに配置されます。
1ドライブならWindowsで同じフォルダにROM.DSK
とLDMSX,BIN
とmsxcat.bat
を置いてmsxcat.bat
を実行するとLDMSX.ROM
ができるのでそれをカートリッジに入れて実行してください。ROM.DSK
は差し替えて使ってください。
2ドライブならWindowsのコマンドラインだと以下のような感じになります。連結で2ドライブにできるのは前側のディスクが720KBの2DDディスクイメージに限ります。
copy /b LDMSX.BIN + ROMA.DSK + ROMA.DSK LDMSX.ROM
ROMなので読み込み専用になります。
2DD以外のMSX版LSX-Dodgers向けブランクディスク
ドライブE~GはPHYDIOで接続されるドライブ(A~C)が配置されます。多分、E:はフロッピーになる場合が多いと思います。
ドライブHはPHYDIOで接続されるドライブHが配置されます。
※PHYDIOはなんかやってみたら成功したのですが、まだほとんどテストできていないので……
階層ディレクトリに対応していますが、MSX-DOS2専用のソフトが動くわけではありません。
現バージョンではC-BIOSを使用した場合はコマンドライン入力でカーソルが表示できません。
HRA!さんのMSX Memory Architecture のお陰でメガROMに対応することができました。
本当にありがたいです。
https://github.com/hra1129/msx_documents/blob/main/memory/MSX_memory_architecture.pdf
MZ-700/1500版 / PC-8801mkIISR版
先行キー入力関連を調整しました。
共通
ワークエリアにバッチファイルのFCBのアドレスやパス文字列のアドレスを追加
1.57test
1.56
PC-8801mkIISR
- 物理フォーマットしやすい構造に調整
2022/12/29 ディスクイメージファイルを調整
ldsys.d88の88用のブートセクタにX1用のIPLを追加してX1で88用のブートセクタを読み込んだ場合も起動できるように調整
トラック0はセクタ1が512バイトのMS-DOS用と256バイトの88のブート専用のセクタの2つの1セクタが存在する。
μPD765のPC-8801は起動時にトラック0に256バイトのセクタ1しか読み込みを行わないので88での起動の為に必須。
MB8877のX1では起動時にトラック0のセクタ1を読み込みに行く。これはセクタサイズは何でもよい。
これはFDCの違いでμPD765系は読み込むセクタのサイズを指定してそれを読み込むのに対してMB8877系の場合はセクタサイズを指定せずにトラック0のセクタ1を読み込みに行く。
この2つのセクタ位置を2-3-4-5-6-7-8-9-1(512)-1(256)としてタイミング的に512バイトの方が当たりやすいようにしている。
もともとは88のブートセクタの方にもMS-DOSのBPBを設定していたがそれをX1用のブートセクタに差し替えた。
万一、LSX-Dodgers(X1/MZ)で88のブートセクタを読み込んだ場合もBPBとして不正な場合はデフォルトの360KBフォーマットが選択されるので問題はないはず。
また、MS-DOSマシンの場合はFDCがμPD765系なのでセクタサイズを指定して読み込みに行くと思われるので標準的な512バイトの方のセクタの読み込みが行われると思われる。
また古くからあるものはBPBではなくセクタ2のFATを読み込みメディアID(FAT ID)で判別するのでその場合はBPBは関係ない。
2022/12/30 ディスクイメージファイルを微調整
X1のIPLから2連続で88のブート専用のセクタを呼んだ場合の処理を微調整
2023/1/3 ディスクイメージファイルのブート関連の調整
X1/88デュアルブートのディスクイメージファイルではNDでうまく認識できなかったので認識できるように調整。
トラック0 のセクタの並び順をL3ディスクエクスプローラで作成できる「CDOSII(トラック0サイド0は10セクタ)」と同様の順序に変更した。
旧 2,3,4,5,6,7,8,9,1(512),1(256)
新 1(512),2,3,4,5,6,7,8,9,1(256)
こうすると何故か ND で認識可能になった。
ただ、上記の変更を加えるとeX1/eX1twin/eX1turbo/eX1turboZで起動ができない確率が非常に高くなる。
トラック1(シリンダ0サイド1)も10セクタに拡張し、ここにデュアルIPL時のX1用の簡易ローダーを置いた。
こちらも88のローダーと同様に256バイトしか使えないのでサイズや位置などが決め打ちである。LD.BINを移動させた場合は起動しなくなる。
こちらのセクタ番号は10で他のセクタと被らない用に作成している。
並び順 1,2,3,4,5,6,7,8,9,10(256)
Xmil106の場合は1セクタは必ず前にあるMS-DOSのブートセクタを読み込む為にトラック1の10セクタは不要である。
88のエミュレータの場合は起動時は256バイトの88用のブートセクタを読み込むがLSX-Dodgersが起動してからは先に512バイトのセクタからチェックする仕様である。この辺りはX1/MZと88のFDCの違いに寄るところが大きい。
これらの256バイトのセクタはあくまで88やX1での起動の際に必要なデータであってMS-DOSフォーマットとしては全く関係ない外にデータを置いている。