Hi Eric,

> On May 3, 2021, at 5:05 AM, Eric Auer <e.a...@jpberlin.de> wrote:
> 
> 
> Hi Jerome :-)
> 
> I notice that in what probably gets installed to harddisk
> 
> https://github.com/shidel/FDI/blob/master/FDISETUP/AUTOEXEC.BAT 
> <https://github.com/shidel/FDI/blob/master/FDISETUP/AUTOEXEC.BAT>

Close. But, no.

The AUTOEXEC AND CONFIG in that directory are Templates used by the RBE to 
create the ones used by the various primary install boot media. They are not 
installed to the hard disk. They are only for the install media. So should be 
as universally compatible as possible.

The ones that are processed and installed by the installer are located under 
https://github.com/shidel/FDI/tree/master/FDISETUP/SETUP 
<https://github.com/shidel/FDI/tree/master/FDISETUP/SETUP>

Look for AUTOEXEC.* and CONFIG.* in that subdirectory. *.DEF is the default 
when a CPU/VM specific version is not provided.
In other words, VirtualBox gets the normal AUTOEXEC.DEF but the special 
CONFIG.VBX. 

> 
> you have "outsourced" loading CD-ROM drivers to a separate
> file. It would be nice to avoid that, there are not so many
> drivers, I believe. Also, you load no CD cache (cdrcache or,
> better, load uhdd before udvd2 and only use cdrcache for
> eltorito and gcdrom) and have commented out, but not given
> explanations for FDAPM, DOSLFN and LBACACHE. The syntax
> used for LBACACHE is a deprecated one: Instead of your

Some of the REMs are just leftover legacy boot stuff. 

But, some of the REM items are processed and “uncommented” and/or removed by 
the RBE during the build process based on what media it is going onto. 

With the handling of CD’s becoming much more that “load this driver". Trying 
different drivers. Looking for other vendor specifications ones that may or may 
not be present. It greatly increases the complexity of the AUTOEXEC and makes 
it much more difficult to read and edit. So, it has all been “off-loaded” into 
a CD specific initialization batch. 

The CD initialization among with a few other batch files are part of the new 
FDHELPER package.
(please note: the eltorito driver is only present on the CD media. It is not 
installed or present on other media.)

This has numerous benefits. It standardizes CD support for both the install 
media and the installed system. We can easily update just that package and 
potentially improve CD support everywhere. Also, improvements to CD support 
need not wait on a “new” release. the package can be updated at any time. 

> 
> rem FDAPM APMDOS
> rem DOSLFN
> rem LBACACHE.COM buf 20 flop
> 
> I would suggest for example "LBACACHE 2048 FLOP" but as
> said, UHDD would be even better, in particular because
> it can share cache RAM with UDVD2. Only when using the
> other CD drivers, you will have to add CDRCACHE, as in:
> 
> 1. Load UHDD with options for your choice to cache harddisk
> 2. Load CD-ROM driver to provide device e.g. RAWCDROM
> 3. Load CDRCACHE.SYS RAWCDROM CDRCACH$ 12
> 4. Load SHSUCDX /D:CDRCACH$,N to assign drive N: to it
> 
> When using UDVD2, you would instead:
> 
> 1. Load UHDD with options of your choice to cache both
> 2. Load UDVD2 and let it connect to UHDD for caching
> 3. Do not load CDRCACHE and enjoy the low XMS usage :-)
> 4. Load SHSUCDX /D:YourChosenUDVD2Name...
> 
> Note that you can also tell SHSUCDX to try several
> device names and silently skip those which are not
> present, making it easy to add some flexibility.
> 
> Please add ";" in front of comment lines even if
> you skip them with a "goto". That helps for syntax
> highlighting in editors.

Ask for better syntax highlighting. LOL. 

> 
> As https://github.com/shidel/FDI/blob/master/FDISETUP/CONFIG.SYS
> is very minimalistic, I would suggest to:

The config is for the boot media. And should be very very minimal for maximum 
compatibility.

> 1. not use SHELLHIGH, it could fail in some cases and
> does not make much difference in RAM usage because we
> already have the XMS Swap feature.

Yeah, that should go. It’s a leftover from earlier configs.

> 2. use IDLEHALT=1 in config.sys to lower CPU usage on
> real and virtual systems even if you insist on avoiding
> to spend 912 bytes on FDAPM APMDOS ;-)

Since it is only the installer, does it need it? Can it introduce ANY
compatibility or stability issues at all?

> 3. You may also consider options such as:
> 
> SWITCHES=/E
> BREAK=ON
> COUNTRY=049
> lastdrivehigh=Z
> fileshigh=20
> stacks=0,0
> fcbs=4,0
> 
> ... but of course that depends on country and taste ;-)
> 
> Not sure what generates your CDROM.BAT so I cannot say
> whether I have suggestions for that, but of course feel
> free to ask for details if any of the other suggestions
> above lack clarity.

It’s not generated. It’s part of the fdhelper package.

https://gitlab.com/FDOS/base/fdhelper <https://gitlab.com/FDOS/base/fdhelper>

Your more than welcome to submit pull requests to it.
Or, i guess you could just suggest them. :-)

> Note that FDAPM is supposed to only use 386 specific
> code in situations where the BIOS already supports
> things only present on newer computers. So if there
> are problems on 8086 or 286 PC, please let me know.

I’m not aware of any CPU issues related to FDAPM. If I find or hear of them, I 
let you know.

Interestingly, I did see something odd once related to FDAPM. Basically, during 
creation of 
the new RBE, I have spawned hundreds of VMs running FreeDOS under QEMU on Linux 
inside
VirtualBox. When done in the QEMU instance FreeDOS, it terminates using FDAPM 
to shutdown.
Exactly ONE time, the VM froze at the end of the "spinning down….” instead of 
terminating. 
I assume this was just some completely random issue with QEMU and not FDAPM. 
Like I said
once out of hundreds of times doing. 

> That would simplify your current approach to have it
> in CPU model dependent autoexec variants in setup,
> as FDAPM is built with UPX --8086 by default.
> 
> https://github.com/shidel/FDI/tree/master/FDISETUP/SETUP
> 
> Also, you can use the 2 kB "CPULEVEL" tool instead of
> VINFO but I guess you install VINFO everywhere anyway.

Possibly. VINFO does more than just CPU level detection and
I’d need to see if CPULEVEL is any use to the batch portion of
the installer without a writeable filesystem and pipes. But, I’m 
not against using it. 

> 
>> C:\>cpulevel
>> CPULEVEL - public domain by Eric Auer 2004-2007
>> CPU brand is GenuineIntel / CPU is family 5 model 2 revision c
>> 
>>        CPUID level 1 EAX_.... EBX_.... ECX_.... EDX_....
>>          values are: 0000052c 00000000 00000000 000001bf
>> 
>> CPUID level 1 feature bits in EDX:
>>  [FLOATING POINT]   [VM EXT FLAGS]     [debug ext]        [Page Size Ext.]
>>  [TIMESTAMP COUNT]  [Pentium MSR]      [mce exception]    [cmpxchg8b op]
>> 
>> C:\>echo %errorlevel%
>> 5
> 
> Of course you can do cpulevel > NUL if you prefer silence.
> 
> You may also like my LOCALIZE tool for a low disk space,
> but less elegant way of having language-specific strings
> in batch scripts, for example for your floppy distro.
> 
> Another useful trick is to load FDAPM ADV:REG (see fdapm.txt)
> instead of FDAPM APMDOS, to avoid possible slower performance
> with Novell network and Norton Utilities because ADV:REG is
> slightly more humble in energy saving.
> 
> Why are you avoiding CTMOUSE on 8086 PC? I think there had
> been a thread about a patch to fix some forgotten 286-only
> instructions, has that not been applied to CTMOUSE yet?

Only based on looking at it. Could just be left over detritus and be fine with 
an 8086.
Unfortunately, I haven’t had much luck running PCem or equivalents to test 
compatibility. 
Nor do I have anything older than a 486 for real hardware testing.

> It seems important to use FDAPM APMDOS or similar in your
> dosbox specific autoexec, too. Are there compatibility bugs?
> As above, please use ";" in the dummy dosbox config.sys ;-)
> 
> Your 286 config tries to use UMB and SHELLHIGH: Neither of
> the two is possible because you do not load any UMB driver
> and both EMM386-style and UMBPCI-style drivers would need
> 386 or newer anyway. Few 286 mainboards had UMB, which did
> come with special proprietary drivers at that time. Also,
> the DOS=HIGH can only work for option 1 and you basically
> only have 2 actually distinct options anyway: XMS or not.

For the primary installer, it isn’t much of an issue. Since, seeing
neither a USB port or CD-ROM is going to be in anything less
than a 386, it won’t use them.

But, they DO need fixed. The Floppy Only edition uses them.
(no point in having duplicates of the 386+ in two projects, so they all
just live with the primary installer). 

If I recall correctly, the 286 I had could load stuff in UMBS. But, 
that was a really long time ago and I could be completely wrong.

> 
> https://github.com/shidel/FDI/blob/master/FDISETUP/SETUP/CONFIG.286
> 
> Because your AUTOEXEC does not seem to make choices based on
> which MENU item people select in config.sys, your 186 config
> probably should not have any menu at all:

Looking at the wrong AUTOEXEC. The AUTOEXEC.DEF get installed on most
systems. It uses both the config menu choice and CPU testing. 

However, in the future to simplify the autoexec for the end user, it may be 
better to
just have different ones for the installer to pick from instead of doing it 
later at 
system boot in the autoexec itself.

> https://github.com/shidel/FDI/blob/master/FDISETUP/SETUP/CONFIG.186
> 
> As far as I remember, I=TEST could be too aggressive in your
> 
> https://github.com/shidel/FDI/blob/master/FDISETUP/SETUP/CONFIG.DEF
> 
> and you should change "Expanded Memory" to "EMS 3.2 compatible"
> and the "no EMS (most UMBs)" into "(EMS 4.0 only, more UMBs" to
> reflect what the NOEMS option of JEMM386 and JEMMEX *really* is.
> 
> Also, please remove the I=B000-B7FF from the JEMM386 line and
> into the JEMMEX line: This option belongs to the category of
> extreme efforts to get most UMBs, not to standard EMM386 use.
> 
> For similar reasons, I suggest to use SHELLHIGH only for the
> "max RAM free" option and not for the normal, JEMM386 item 2.
> 
> While menu claims item 4 would have no drivers, I would just
> call that "HIMEM only" or something like that, because you do
> load HIMEM for all items anyway (in JEMMEX, it is a built-in).

Thats a bug that will need fixed. "No drivers” should be NO DRIVERS.

> Alternatively, you could switch to NOT even loading HIMEM in
> item 4 to actually let it load "no drivers", as the menu says.
> 
> Please make sure to use DOS=HIGH for item 3 and, if you keep
> HIMEM for that, item 4. This gives you significantly more RAM.
> 
> Last but not least, I think option 2 instead of the aggressive
> "try to have most UMB and most free DOS RAM" choices of item 1
> should become the default. I think both option 1 and 2 *have*
> caused problems for people so the proposed default "2" will be
> more "humble" while option 1 will try everything to save RAM.
> 
> Obviously, I suggest the same options for CONFIG.VBX and would
> like to ask why Virtual Box has a separate config in the first
> place: It looks pretty much identical to the default config?

VirtualBox really doesn’t like option 1. So, for it the default is option 2.
Only. difference between them. It is possible, that changing some of 
the settings in the default config.sys could eliminate the need for a 
special VirtualBox version. 

> I hope I have not overlooked too many other issues :-) As said,
> let me know if you need more exact examples for some cases.

You make a lot of good suggestions. 

The installed configs are far from perfect and could use a lot of fine tuning. 
I’ll look into it.

If you want, you could always hop on GitHub make the changes 
you want and issue a pull request. :-)

> 
> Thanks for updating! Regards, Eric

:-)

Jerome

_______________________________________________
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to