<pre>表示

-

LEMM v5.11c - reiria

2014/12/20 (Sat) 00:41:16

・IRQ6 (0Eh) が UCGW A4 を通るとリセットかかる場合があるのを修正しました。
・オプション UCGWEZ と同じ意味の UCEZ を追加しました。
・サンプル mj.c の縦方向が微妙に長かったのを修正しました。
・サンプル mj.c にカラーモード C7 を追加しました。
・マルチタスク/スレッドあれこれ少々改良。(LW.com もバージョンアップ)

Re: LEMM v5.11c - reiria

2014/12/20 (Sat) 00:45:09

mj c7 

Re: LEMM v5.11c - reiria

2014/12/20 (Sat) 00:47:51

mj c7 sun cut 

Re: LEMM v5.11c - reiria

2014/12/20 (Sat) 16:20:46

mj をいじっていて、bcc でコンパイルすると挙動がおかしくなるようになったので調べたところ、
どうやら、速度重視の最適化オプション -O2 (に含まれる -Ov) が何かまずいようです。

具体的には下記のようなソースで期待したコードが生成されません。
(mj_256.c の _256_setup_palette() に該当)

#include <stdio.h>

typedef unsigned char    BYTE;

int main(int argc, char *argv[])
{
    int p, r, g, b;

    for (p = 0; p < 256; p++) {
#if 1
/*
bcc.exe 4.52 5.0 (Borland C++ 4.5J 5.01J)

bcc -O2 狂う        (-Ob -Oe -Og -Oi -Ol -Om -Op -Ov -Z に相当)
bcc -Ox 狂う
bcc -Ot 狂わない
bcc -G 狂わない
bcc -Ov 元凶っぽい    (ループ内誘導変数と計算量の削減)

g が g += 8 という変数になり、カウンタ p もそれをそのまま共有。
しかしループ終了条件が (BYTE)p == 0 になっていて 32 回しか回らない。
g = (BYTE)(p * 8) で (BYTE) キャストしなければ狂わない。
*/
        r = (BYTE)(p * 1);
        g = (BYTE)(p * 8);    // ここの (BYTE) キャストが p の条件判断にも影響するっぽい
        b = (BYTE)(p * 16);
#else
        r = p * 1;
        g = p * 8;
        b = p * 16;
#endif
        printf("%02X %02X %02X %02X\n", p, (BYTE)r, (BYTE)g, (BYTE)b);
    }

    return 0;
}

Re: LEMM v5.11c - reiria

2014/12/20 (Sat) 16:22:23

bcc -S で生成されるアセンブラコードを眺めると一目瞭然ですが、
上記の for ループは、bcc -O2 (-Ov) で次のように最適化されたコード (というか狂ったコード) で生成されます。

    r = 0;
    g = 0;
    b = 0;
    do {
        printf("%02X %02X %02X %02X\n", r, (BYTE)r, (BYTE)g, (BYTE)b);
        r++;
        g += 8;
        b += 16;
    } while ((BYTE)g != 0);

Re: LEMM v5.11c - reiria

2014/12/20 (Sat) 16:24:12

bcc32.exe ではそもそも生成されるコードが全く違っていて、-O2 のコードも問題ないようです。


Re: LEMM v5.11c - reiria

2014/12/20 (Sat) 18:47:58

バグネタといえば、tasm32 の .if (parity?) の生成コードが MASM と逆なのはバグなんだろか。
最後どこまでバージョンアップしたのか知りませんが結局そのままなのかな。
今時 tasm32 使ってる人口自体少なそうですが(^^;
私自身今まで書いたプログラムで、jp/jnp はちらほら書いたけど、parity? を書いてるのは三つだけで、
_parity?_ equ (!parity?) ってマクロで反転して .if (_parity?_) と書いて使っています。

Re: LEMM v5.11c - reiria

2015/01/03 (Sat) 12:05:23

あと、これは lep 方面のネタだけど、
プログラムに初期化済みデータが無い場合、tlink32 が ImportDirectory を生成しない謎現象が発覚。
つまり、DLL の関数を使っているのにリンク情報が無い実行バイナリが生成され、リンクせずに実行してしまう。
そして暴走して例外発生。

普通に処理系付属のスタートアップやライブラリを使っている場合なら、
初期化済みデータが一つも無い実行バイナリなんて生成されないと思うので発覚しないはず。

lep 17 の kernel32.c は初期化済みデータが無いため、どこかに初期化済みデータを混ぜ込まないとまずい。
なので、_startup.asm にダミーの初期化済みデータ (1 byte) を入れるようにしました。

Re: LEMM v5.11c - ニボシ好き

2015/06/30 (Tue) 20:56:58

最新の LEMM511C_EMUX で
DOSUMB copyright (C) exarea が、組み込めません。

試した環境 & 設定

np21fmgen … 150620 配布されたもの

CONFIG.SYS
DOS = HIGH,UMB
FILES = 40
FCBS = 1,0
BUFFERS = 20
DEVICE= \LEMM_E.EXE -Z -M -U* DOSUMB
DEVICE= \DOSUMB.COM H
DEVICE= \IOUMB.COM L
SHELL= \COMMAND.COM A:\ /P /E:512

AUTOEXEC.BAT
@ECHO OFF
MVCOM.COM
MVHMA.COM
DOSUMB.COM A
IOUMB.COM Q
SET COMSPEC=\COMMAND.COM
SET TMP=\TEMP
SET TEMP=\TEMP
SET TZ=JST-9
PATHとかいろいろ

こんな感じです。ちなみに VEM13113 では、組み込みはできました。
仕様変更、もしくは[るなえみゅパッチ第Ⅹ版]が
サポート外でなければ バグかなと思うのですが、いかがでしょうか?

Re: LEMM v5.11c - reiria

2015/07/01 (Wed) 15:45:07

ご報告ありがとうございます。

早速確認したところ、当方でも DOSUMB を組み込めません(;_;)
というか、オプション DOSUMB を指定すると LEMM.exe の組み込み自体が [Y/N] になりますね。

原因は LEMM v5.04a で追加した RELOAD 関係の処理のようです。
オプション DOSUMB と一緒に NOSAVE を指定すると DOSUMB も組み込めるようです。

次のバージョンで修正したいです。

LEMM v5.04a ~ v5.11c でオプション DOSUMB を指定する際は NOSAVE も一緒に指定してみて下さい。

Re: LEMM v5.11c - ニボシ好き

2015/07/02 (Thu) 01:00:46

お答え頂きどうもです。

>オプション DOSUSB と一緒に NOSAVE を指定すると DOSUMB… etc
確かに動くようになりましたが(IO/DOSをUMBに追い出す事に成功)、

しかしなんか色々おかしいです。(T_T)

editのelisが上手く動かない。テキストを「開いて/終了」しただけで、「不正割り
込みが発生しました…」発生

FILMTN からのさまざま作業で、「不正割り込みが発生しました…」発生

他にも何かありそうです。これは相性なのでしょうか? > editのelisが… etc
それから np21fmgen 150620 だと、[Y/N] にならず、そのままフリーズ。

それでは失礼します。

Re: LEMM v5.11c - reiria

2015/07/03 (Fri) 23:20:20

当方でも色々試してみたところ、確かに色々おかしいですね(;_;)
今まで、組み込めたことで満足して、その後の挙動は殆ど試していなくて気づきませんでした(^^;;;;;;
いくつか対策した結果、そこそこ動くようになったかも。

DOSUMB や IOUMB の環境がうまく動かない件を何とかしたかもテスト版。
http://hp.vector.co.jp/authors/VA037191/Pt/index_/temporary/LEMM511E.LZH

Re: LEMM v5.11c - ニボシ好き

2015/07/04 (Sat) 21:56:32

バグ修正お疲れ様です。

>DOSUMB や IOUMB の環境がうまく動かない件を何とかしたかもテスト版。

ちょっと試してみました(np21fmgen)。

FILMTN からのさまざまな作業
001 LHAによる圧縮/解凍 … OK
002 ファイルの作成/削除/変更 … OK
003 ディレクトリの作成/削除/変更 … OK
004 ファイルの属性変更 … OK
005 タイムスタンプの変更 … OK
006 ELISの起動/終了 … OK
007 CDM & CDDの起動/演奏/終了/開放 … OK
008 30BIOSの動作 … OK?*A
009 MSIME/ATOK8の組み込み … OK
010 NECAIの組み込み … NG*B
011 その他いろいろ … OK?

*A IOUMBを使うとファンクションの表示が一部残る(LEMMに限らず他も一緒?)
*B IOUMBを使わなければ組み込みはOK(LEMMに限らず他も一緒?)

まだまだ全然試せてはいないですけど、大丈夫ではないでしょうか?

それでは失礼します。

Re: LEMM v5.11c - reiria

2015/07/05 (Sun) 19:39:26

動作確認ありがとうございます。そこそこ改善出来たようでよかったです。

当方で試した感じだと 30bios は普通に動いてるような感じですが、運がいいだけかも(^^;
IOUMB v0.13p2 のドキュメントに「30BIOSを完全動作させるならIOUMBは使えないけど、大きな支障がない程度」
というように書かれているので、一応何とか動くものの、微妙な不具合はあるのかも知れません。
IOUMB v0.16 までで何か改良あったかどうかはわかりません。

NECAI はちょっと厳しい感じでしょうかね。
DOSUMB v0.20 の頃、ZOB で作者さん自身も NECAI はうまくいかないと書かれていて、(create.soft 243/81)
その後、うまくいったという書き込みは見当たらないので、何か無理っぽいのかも知れません。

Re: LEMM v5.11c - ニボシ好き

2015/07/05 (Sun) 22:55:38

返信どうもです。

>当方で試した感じだと 30bios は普通に動いてるような感じ…etc

IOUMB & DOSUMB ともに私の持っている物よりも
VERが新しい(確か 0.09 & 0.14)ので、多少動作が違うかも。(;^_^A アセアセ・・・。

IOUMB & DOSUMB はバイナリしかない状態をサルベージして、
何とか昔の記憶を頼りに動かしています。(~ヘ~;)ウーン

>IOUMB v0.13p2 のドキュメントに「30BIOSを完全動作させ…etc
>DOSUMB v0.20 の頃、ZOB で作者さん自身も NECAIはうま…etc

貴重なお話どうもです。ともに ZOB 出入りしてなかった私には、
知る事の出来ない情報なので大変ありがたいです。m(._.)m

それでは失礼します。(^-^)/~ マタネッ

PS、doshst13.lzh の DH.COM で VJEβを UMBに上げられるかもしれません。

Re: LEMM v5.11c - reiria

2015/07/05 (Sun) 23:34:14

当方のものは DOSUMB v0.26 IOUMB v0.16 です。ZOB で公開された最終バージョンのはず。
公開日はそちらのバージョンと 3,4 年の差があるようですね。

<?del>付属ドキュメントには、

>転載はなしにしましょう。対応しきれないです。
>手渡しレベルならまあいいです。junkの気持ちがわかる人になら。

と書かれていますので、限定的な再配布なら可能かな?いかがいたしましょう(^^;<?/del>

Re: LEMM v5.11c - reiria

2015/07/05 (Sun) 23:51:23

というか、その create.soft Note 148 ~177 の画像の意図は何なのでありましょう(^^;;;
もしかして ZOB の過去ログにアクセス出来るということでしょうか?
出来るなら create.soft Note 243 をご覧になれば DOSUMB v0.26 IOUMB v0.16 の uu ゲット出来ますよ。

Re: LEMM v5.11c - reiria

2015/07/06 (Mon) 00:47:44

>PS、doshst13.lzh の DH.COM で VJEβを UMBに上げられるかもしれません。

アドバイスありがとうございます。

早速やってみたところ、オプション /v でさくっと UMB に上がりました!
D9 ~ DB のどこかで分断する必要もなく、VRAM のリンクも必要なく、普通に D0 先頭から常駐。
申し分ない最高に気持ちいい上がりっぷりでございます(T_T)

Re: LEMM v5.11c - ニボシ好き

2015/07/06 (Mon) 17:43:07

またまた返信どうもです。

>と書かれていますので、限定的な再配布なら可能かな?いかがいたしましょう(^^;

とても、ありがたいお話です。宜しければお願いします。(゚゚)(。。)ペコッ


>というか、その create.soft Note 148 ~177 の画像の意図は…etc

深い意味は無かったのですが、変な誤解を与えたみたいですいません。<(_ _)>

ちょっと前に "ZOB の過去ログ" をネットで探していた時、ここまでは
たどり着けたのですが、この先には進めませんでした。( ̄□ ̄;)!!
ですので、過去ログにはアクセス出来ないです。


>早速やってみたところ、オプション /v でさくっと UMB に上がりました!
>D9 ~ DB のどこかで分断する必要もなく、VRAM のリンクも必要なく、…etc

良かった良かった、これですべてのFEPをUMBに上げる日も、
そう遠くは無いですね。( ̄ー ̄)ニヤリ

ちなみに私は同封の BHIGH.COM の方に、お世話になっています。

それでは失礼します。(@^^)/~~~

Re: LEMM v5.11c - reiria

2015/07/06 (Mon) 20:56:58

<?del>古いバージョンの話も出たので、過去バージョンも全部詰めました(^^;
ファイルは umb.lzh を des エンコードしてあります。

http://www1.axfc.net/u/3497817<?/del>

Re: LEMM v5.11c - reiria

2015/07/06 (Mon) 21:19:42

>過去バージョン

一部のファイルは自爆差分です。
umb.lzh 内のファイルはオリジナルのままで、バージョン順に並べてあります。

Re: LEMM v5.11c - ニボシ好き

2015/07/06 (Mon) 22:40:03

>ファイルは umb.lzh を des エンコードしてあります。

ありがとうございます。確かに頂きました。
取り急ぎお返事だけ。
それでは失礼します。(@^^)/~~~

Re: LEMM v5.11c - ニボシ好き

2015/07/08 (Wed) 00:50:06

改めまして、ありがとうございます。m(._.)mアリガト
いつもお世話になってばかりで申し訳ないです。(あんな事やら、こんな事やら)
ドキュメントが無かったので、本当に助かりました。(勿論、全部あり難いです)

さっそく"DOSUMB&IOUMB"早速試してみました。
>*A IOUMBを使うとファンクションの表示が一部残る(LEMMに限らず他も一緒?)
直りました \(^o^)/。
他に何処かおかしい所がないか色々見てみたのですが、わかりませんでした。
もう大丈夫なのかもしれませんね(何の確証も無いですけど)。> 30BIOS

それでは失礼します。(^-^)/~ マタネッ

Re: LEMM v5.11c - reiria

2015/07/08 (Wed) 23:32:30

30bios うまく動くようなったようで何よりです。
こちらも VJE-β がさくっと UMB に上がるようになって FEP 4 個達成出来ました(;_;)
これに ATOK8 追加するだけで 5 個上がるのですが、やはり新種の FEP を上げてみたいところ(^^;

Re: LEMM v5.11c - ニボシ好き

2015/07/09 (Thu) 22:18:51

w(゚o゚)w オオー! 見事に FEP 4個 UMBに上がっているようですね。
達成おめでとうございます。\(^O^)/ヤッター

次はやはり "DFJ2" 辺りでしょうか、勝手な想像ですが (^^;;
"30n行環境対応化パッチ" や "UMB・30n行環境対応化パッチ" がありますから。
後、すぐに試せそうなのは "嵐" でしょうかね~ ちょっと前ならエーアイソフトが、
"日本語フロントプロセッサ WXP 1.04" を無料で公開していましたが…。
しかしこれは "MSIME" 系統と同系統だからノーカンですかね。(~ヘ~;)ウーン

それでは失礼します。(^_^)/~~

P・S、ちょっと前に、エミュの掲示板で "genuine.lzh" が取り上げられていましてよ。

Re: LEMM v5.11c - デュアン

2015/12/17 (Thu) 07:53:17

久しぶりに98でMS-DOSを触り恥じましてLEMMが現役で更新されているメモリーマネージャーと知り遣わさせていただいています。
それでこの掲示板を見つけました。
DOSUMB、IOUMBですが

古いバージョンの話も出たので、過去バージョンも全部詰めました(^^;
ファイルは umb.lzh を des エンコードしてあります。
umb
http://www1.axfc.net/u/3497817

再びアップしていただけませんでしょうか?
見つけた時には削除後でしたので、よろしくお願いします。

Re: LEMM v5.11c - reiria

2015/12/17 (Thu) 08:53:17

<?del>再アップしました。
ファイルは umb.lzh を des エンコードしてあります。

http://www1.axfc.net/u/3584188<?/del>

あと、上のレスにある LEMM の RELOAD ですが、LEMM v5.11e でも DOSUMB 環境でうまくいきません。
その後この問題は解決出来ていまして、次のバージョンで改善予定です。

Re: LEMM v5.11c - デュアン

2015/12/17 (Thu) 10:26:48

ありがとうございます。
さっそく色々試していきたいと思います。

Re: LEMM v5.11c - reiria

2015/12/29 (Tue) 23:12:55

DOSUMB 環境の RELOAD を改善した LEMM v5.12a をアップしました。

あと、従来の UCGW が遅すぎ、FPD 付属 FVIEW が ANK フォント取得の VSYNC 待ちで無限ループし、
ほぼ確実にハングしてしまう不具合が発覚したため、UCGW を高速化しました。

その副産物で、後期の 98 で FVIEW を素早く起動するローダー FVV もアップしました。

無題 - マシュマロ

2016/11/29 (Tue) 15:11:35

LEMMのPC-AT(IBM PC)用なのも作って欲しいな。
PC-98の独自機能を省いたサブセット版でも良いので。
PC-AT互換機ではEMSで1GB(1GB-32K)確保できるメモリ
マネージャが現状無い。386では新しいバージョン
でもEMSは256MBまでのうえにXMSまで256MBに制限される。MS-DOSとPC-DOSのEMM386.EXEではEMSが32MBまで
なのはよく知られているが、メモリ2GB以上の環境ではEMM386.EXEが正常に作動しない。
freeDOSのEMM386.EXEではメモリ2GB以上でも作動するがWindowsに必要な処理が搭載されていないのでWindowsのエンハンスドモードが作動しない。
外国人はこの手のソフトあんまり開発していないぽい
です。大容量のEMSを使用できるソフトとしては
XMSDSKに入っているEMSDSKです。PC-98でも/Yオプションを使用する必要がありますが、LEMMと併用で
EMSに大容量RAMDISKが作成できます

Re: 無題 - reiria

2016/11/29 (Tue) 17:45:45

ご要望ありがとうございます。

AT 互換機用 LEMM は、もし仮に今から作ったとしても、かなり時間かかりそうな気がします。

時間かかってるうちに誰かが FreeDOS のもの(JEMM も含め)を改良しちゃいそうですが、
とりあえず現状のものに Windows 用の処理を追加すればいいのかな。

って、そんなあっさり出来るものならとっくに世界の誰かがやってそうですし、
そう単純にはいかない、何か、実際にやってみないとわからない困ったことも色々あるのかもです。

無題 - マシュマロ

2016/12/08 (Thu) 02:06:07

返信ありがとう御座います。AT互換機用LEMMの誕生
に期待します。
freedosのものにWindows用の処理を追加可能ならそちらでも構いませんが。ちなみにfreedosのEMM386.EXEは
少しソースを弄れば512MBまでEMSが確保できます。
それ以上の確保はオーバフローしてしまうので
更にソースの改良が必要だと思われます。JEMM386.EXEはソースを見ましたがよく分からなかったです。
freedosのEMM386とJEMM386がWindowsに対応していないのはGPLライセンスで公開している都合上対応して
いない可能性も考えられます。

Re: 無題 - reiria

2016/12/08 (Thu) 12:25:55

何かしら期待していただけることは嬉しいですが、今私に出来る範囲では、色々かなり厳しい気がします。

私自身、今まで AT 互換機用 DOS というものを使った経験自体が非常に少なくて、
AT 互換機用 MS-DOS PC-DOS Windows 3.x/9x 等も所持しておらず、
たまに何かの動作テスト等で使っているのは DR-DOS か、ThinkPad のリカバリモードの DOS で、
AT 互換機用メモリマネージャも QEMM か DR-DOS 付属のものを使っています。

FreeDOS の事情もよく知りませんで、EMM386 の原作者や JEMM の作者さんはもう行方不明っぽいのかな。
JEMM の作者さんは色々やってたみたいなのに、何か突然全て止めちゃった(?)ぽいような。

Re: LEMM v5.11c - マシュマロ

2016/12/09 (Fri) 00:12:59

了解です

Re: LEMM v5.11c - ニボシ好き

2017/02/04 (Sat) 10:38:37

お久しぶりです。ニボシ好きです。( ^.^)( -.-)( _ _)

最新の LEMM513A_EMUX で、Mr.Noさんの "DOSHIGH" が使えないようです。


試した環境 & 設定

MS-DOS 3.30D & np21w-0.86-rev28.zip … メモリとCPUの設定を変えた以外、他はdefault。


CONFIG.SYS
FILES = 5
BUFFERS = 1
DEVICE = \TOOL\DOSHIGH.COM /1 /B20 \TOOL\LEMM_EMU.EXE -Z -U*
SHELL = \TOOL\DOSHIGH.COM /F255 /LZ \COMMAND.COM /P A:\ /E:512

AUTOEXEC.BAT
ECHO OFF
ECHO M
A:\ENV\XSET\XSET.EXE -LA:\SYSENV.TXT
PROMPT $P$G
TT.COM -H2016 30n


こんな感じです。他に試したのは以下の設定↓

HimemX(98)+DOSHIGH は OK。
FDXMS286[PC-98]+DOSHIGH は OK。
VEM13113+DOSHIGH は OK。
MELEMM+DOSHIGH は OK。
VMM386+DOSHIGH は OK。
XMZ+DOSHIGH は OK。
XMZ+TDPMI98+DOSHIGH は OK。

それでは失礼します。(@^^)/~~~

PS、ここまで書いといて何なんですけど、動かないのが仕様?。

Re: LEMM v5.11c - reiria

2017/02/04 (Sat) 23:39:04

ご報告ありがとうこざいます。

DOSHIGH.com で LEMM を使う場合、下記のようにしてみて下さい。

・LEMM.exe や LEMM_EMU.exe のデバイスヘッダ先頭 2 バイトを FF FF に書き換える。

LEMM.exe 00000000 E8 ?? → FF FF
LEMM_EMU.exe 00000020 E8 ?? → FF FF

ただし、書き換えた LEMM.exe や LEMM_EMU.exe はコマンドラインで実行出来なくなるので、
拡張子を .com .exe 以外に変えておくのが無難かと思います。

・または、DOSHIGH.com の上記のチェックを無効化するように書き換える。

DOSHIGH.com 000006DC 75 EC → 75 00

この場合、LEMM.exe や LEMM_EMU.exe の書き換えは必要ありません。

・LEMM.exe や LEMM_EMU.exe の組み込み時のオプションに DOSUMB を追加する。

DEVICE = DOSHIGH.com /1 /B20 LEMM.exe -Z -U* DOSUMB

これで動くようになるかも知れませんが、当方ではあまり動作テストしていません。
今のところ、上記のように面倒なことしなくても動くように、何とかする予定はありません。

Re: LEMM v5.11c - ニボシ好き

2017/02/05 (Sun) 01:51:59

返信どうもです。
質問に答えていただき有難うございます。

>今のところ、上記のように面倒なことしなくても動くように、何とかする予定はありません。

やっぱり、基本動かないのが仕様ってことですね、残念。

上記の方法を試してみます。それでは失礼します。(@^^)/~~~

Re: LEMM v5.11c - りんご

2019/01/18 (Fri) 14:22:56

NP21やNP2(CPU:486SX設定)でLEMM(_EMU)を
使用してWindows3.1をエンハンスドモードで
起動しようとするとエラーが出てしまいます。
FPUが無いとエラーが出てしまうのでしょうか?

Re: LEMM v5.11c - reiria

2019/01/18 (Fri) 17:05:54

当方、エミュ環境で Windows を起動したことが今まで一度もなく、何もお答え出来ない状況です。すみません。

後ほど実際に試してみたいですが、
NP21 や NP2 は派生版ではなく本家版ということでしょうか?
また、LEMM 以外のメモリマネージャやスタンダードモードでは起動するのでしょうか?

Windows 3.1 は、

1) DOS をクリーンブート
2) Windows 3.1 付属の xmsmmgr.exe をコマンドラインで実行
3) Windows 3.1 のディレクトリに移動して win.com を実行

という最小限の流れで、エンハンスドモードで起動するはずなので、これで起動しないのであれば、
ハードウェア環境が非対応か、Windows 3.1 のセットアップでドライバ選択ミスではないかと思われます。

Re: LEMM v5.11c - reiria

2019/01/18 (Fri) 17:51:17

> FPUが無いとエラーが出てしまうのでしょうか?

FPU の無い環境で Windows 3.1 を試したことがなく何とも言えませんが、
Windows 3.1 のマニュアル上は FPU 必須ではなさそうに思えます。
標準的にインストールしただけの Windows 3.1 なら起動はするのではないでしょうか。

Re: LEMM v5.11c - reiria

2019/01/18 (Fri) 19:56:53

とりあえず、本家 NP21 ver.0.86 だけですが、Windows 3.1 を試してみました。

xmsmmgr.exe
HIMEM.sys + EMM386.exe (DOS 6.20 付属版)
HIMEM.sys + tdpmi98.exe
MELEMM.386

これらは普通に起動しましたが、LEMM では必ず [Y/N] になるようです。
VMM386 VEM486+VEMWIN は起動ロゴでハング(?)するようです。
実機では起動するので、何らかのエミュ対策不足かも知れませんが、まだよくわかりません。

Re: LEMM v5.11c - reiria

2019/01/18 (Fri) 21:29:20

Anex86 と T98-Next では普通に起動するようです。(VMM386 VEM486+VEMWIN も)
今のところ、Windows 3.1 起動時の不具合は NP だけ再現するっぽい。

Re: LEMM v5.11c - りんご

2019/01/19 (Sat) 02:00:33

詳細書き忘れてすいません。
NP21は本家及び派生版(fmgen、2x14)で同様の作動です。CPUは486SX相当の筈です。
またNP21/WはCPUタイプが選べるので486SX設定です。
Windows3.1はEMM386を使用した場合はFPUが無くても落ちないようです。

Re: LEMM v5.11c - reiria

2019/01/19 (Sat) 02:02:58

FPU が無いと Windows 3.1 起動時に [Y/N] になる件を改善したかもテスト版。
http://hp.vector.co.jp/authors/VA037191/Pt/index_/temporary/LEMM517B.LZH

Re: LEMM v5.11c - りんご

2019/01/19 (Sat) 02:03:14

補足するとNP21/Wで486DX設定では問題なく作動します。
あとNP21/WではEMU版でない方のLEMMも作動します。

Re: LEMM v5.11c - りんご

2019/01/19 (Sat) 02:33:04

VEM486+VEMWIN(v1.31β13)でも動きませんでした。
と思ったらLEMMテスト版でてますね。

Re: LEMM v5.11c - りんご

2019/01/19 (Sat) 02:39:33

LEMM517B試してみました。Windows3.1動きました。
感激です。問題のあった部分はどのようなものでしょうか?

Re: LEMM v5.11c - りんご

2019/01/19 (Sat) 05:04:26

Windows95でも同様の問題が発生することを
確認しました。
Windows98ではLEMM517AでFPUあり(486DX)でも
起動時にY/Nが出て起動しなかったのが、
LEMM517Bでは起動しました。(もちろんWindows98
をFPUなしでも起動させる裏技がありますがそれも
起動かのうでした。)

Re: LEMM v5.11c - reiria

2019/01/19 (Sat) 11:54:40

いろいろ動作確認ありがとうございます。何とかなりそうで安心しました。
テスト版はちょっと手抜きなので、次版でしっかり対応したいです。

> 問題のあった部分はどのようなものでしょうか?

LMSW という命令を仮想 86 モードで実行出来るようにしたことです。
MOV CR0,reg32 という命令は従来から実行出来ましたが、LMSW は今まで対応していませんでした。
(CR0 のキャッシュ on/off のビットは LMSW の範囲外)

仮想 86 モードで CR0 をいじれるようにするのは、おまけ的なもので、必須ではないと思っていたのですが、
まさか本家本元のソフト (というか OS) が使っていたとは、全く知りませんでした。

当方、今まで 20 年以上、FPU の無い実機の Windows 環境がなく、
今回のご報告がなければずっと気づけない可能性大でした。助かりました。

> Windows98ではLEMM517AでFPUあり(486DX)でも
> 起動時にY/Nが出て起動しなかったのが

これも初耳です。当方の実機の Windows98 環境は Pentium ですが普通に起動するようです。
FPU 有りの 486DX と Pentium で Windows98 の処理の何が違うのかわかりませんが、
ともあれ、LMSW の扱いは本家 EMM386 互換にするのが無難のようです。

あと、この掲示板は現在、なるべく使わないようにしておりまして、
今後また何かありましたら新しい掲示板 http://reiria.bbs.fc2.com/ を使っていただけると幸いです。
ホームページ下端の FC2BBS+ の + にリンクされています。
今回の話題の続きはこのままここで構いません。

Re: LEMM v5.11c - りんご

2019/01/19 (Sat) 12:59:51

ありがとうございます。

Re: LEMM v5.11c - reiria

2019/01/20 (Sun) 13:34:34

> テスト版はちょっと手抜きなので、次版でしっかり対応したいです。

しっかり対応版。
http://hp.vector.co.jp/authors/VA037191/Pt/index_/temporary/LEMM517C.LZH

名前
件名
メッセージ
画像
メールアドレス
URL
編集/削除キー (半角英数字のみで4~8文字)
プレビューする (投稿前に、内容をプレビューして確認できます)

Copyright © 1999- FC2, inc All Rights Reserved.