[Freedos-user] Test UIDE Available, For VirtualBox.

2011-07-24 Thread Jack

Apologies for my late response re: UIDE v.s. VirtualBox.   Had to have
my (infected!) gall-bladder removed, 25-Jun-2011.   NASTY episode, and I
am still recovering and moving a bit slow on driver work!   Re: recent
EDR-DOS forum posts, I say the same as our author Mark Twain once did --
The rumors of my demise are greatly exaggerated!

As I have noted, UIDE is designed to run real hardware PC systems, not
software emulators.   Full-and-complete emulators like VMWare cause no
problems.   But, from the error reports, VirtualBox seems not to emulate
ATA Identify Device commands (gives long timeouts!) and may not handle
all EDD BIOS requests (gives EDD BIOS data ERROR messages!).   UIDE is
written to match EDD BIOS disk I-O addresses with those same addresses
 from its PCI controller scan.   Only the PCI BIOS knows which UltraDMA
addresses it assigned to each controller.   If such a match fails, any
affected hard-disks are IGNORED, as UIDE cannot use UltraDMA for them!

With VirtualBox, or other similarly incomplete emulators which prevent
UIDE's hard-disk setup logic from succeeding, UIDE can use its call the
BIOS logic instead, like it does for diskettes and for any non-SATA/IDE
disks that may be in use.   I am assuming VirtualBox does NOT affect how
the normal BIOS disk I-O routines operate, which would be truly IDIOTIC!

So, I have added a /E (emulator) switch to UIDE and UIDE-S.   /E makes
the drivers call the BIOS on every hard disk I-O request.   This means
UIDE can go around most of its hard-disk setup logic and simply assume
the BIOS knows what it is doing with disk drives.   CD/DVD drives that
were never part of the PC BIOS still require UIDE's setup logic to work,
or they will not get detected and used.   /E causes a minor speed loss
(5% or less) in UIDE's cache speed, due to calling another driver (the
BIOS) and since disks will be unable to use UIDE's XMS cache buffers for
direct I-O.   But, unlike /N1 which totally ignores hard disks, /E still
allows hard-disk data to be cached after BIOS I-O requests, and it ought
to let VirtualBox run O.K. with UIDE and UIDE-S.   I don't use and don't
want VirtualBox, so I must let users tell me if /E works as intended.

But, one BIG problem -- Many El Cheapo BIOS programs (including mine!)
have no DOS Virtual Data Services logic that tells a driver the 32-bit
address of I-O buffers.   When a DOS system uses protected-mode (JEMM386
etc.), no VDS logic says the BIOS can only do slow PIO mode transfers!
On my system, using JEMM386 and UIDE /E, file copies run 6 times slower,
even with UIDE's cache trying to help!   Since I don't live in Taiwan or
speak Mandarin, there is little I can do re: how mainboard makers design
their (wretched) BIOS programs.   Thus, users who require VirtualBox and
desire to run UIDE /E with it should avoid enabling protected-mode, when
possible, to prevent serious El Cheapo BIOS speed losses!

I have sent an updated 22-Jul-2011 DRIVERS.ZIP file to Johnson Lam, with
the /E switch added in UIDE and UIDE-S, for Johnson to test.He is my
partner in these drivers (and a better software tester than me!), so
the latest UIDE will not be official until he accepts it.   Johnson is
unavailable this weekend, so anyone who wishes to try the new UIDE /E on
a test basis can E-Mail me, and I will send you the file.   Do give me
an E-Mail address for you that accepts .ZIP files -- GMail and others do
NOT accept them, due to spammers/abuse!   My complete E-Mail address is:

   gykazequios at earthlink dot net

Also, Japheth tells me VirtualBox has been updated, and his XDMA32 JLM
driver is now O.K. with JEMM386 and the new VirtualBox release.None-
theless, I still intend to offer UIDE /E for all users, as there may yet
be other emulator problems, and since using call the BIOS logic with
hard disks could be valuable in other odd cases as well.

Jack R. Ellis



--
Magic Quadrant for Content-Aware Data Loss Prevention
Research study explores the data loss prevention market. Includes in-depth
analysis on the changes within the DLP market, and the criteria used to
evaluate the strengths and weaknesses of these DLP solutions.
http://www.accelacomm.com/jaw/sfnl/114/51385063/
___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Test UIDE Available, For VirtualBox.

2011-07-24 Thread Bernd Blaauw
Op 24-7-2011 16:52, Jack schreef:

 Apologies for my late response re: UIDE v.s. VirtualBox.   Had to have
 my (infected!) gall-bladder removed, 25-Jun-2011.   NASTY episode, and I
 am still recovering and moving a bit slow on driver work!   Re: recent
 EDR-DOS forum posts, I say the same as our author Mark Twain once did --
 The rumors of my demise are greatly exaggerated!

Goodluck recovering, Jack.

 So, I have added a /E (emulator) switch to UIDE and UIDE-S.   /E makes
 the drivers call the BIOS on every hard disk I-O request.   This means
 UIDE can go around most of its hard-disk setup logic and simply assume
 the BIOS knows what it is doing with disk drives.   CD/DVD drives that
 were never part of the PC BIOS still require UIDE's setup logic to work,
 or they will not get detected and used.   /E causes a minor speed loss
 (5% or less) in UIDE's cache speed, due to calling another driver (the
 BIOS) and since disks will be unable to use UIDE's XMS cache buffers for
 direct I-O.   But, unlike /N1 which totally ignores hard disks, /E still
 allows hard-disk data to be cached after BIOS I-O requests, and it ought
 to let VirtualBox run O.K. with UIDE and UIDE-S.   I don't use and don't
 want VirtualBox, so I must let users tell me if /E works as intended.

Thanks very much for adding this. I can't promise any testing of this in 
the short run, but hope mr Juan Castro is able to as he started this 
thread. In the end I might test my complete FreeDOS CD on multiple 
emulators and physical hardware to catch any remaining issues. For now 
sticking to VMware.

Juan, could you please try these drivers either by emailing Jack or 
waiting till Johnson Lam has posted them at 
http://johnson.tmfc.net/dos/driver.html ?

DEVICE=C:\FDOS\BIN\UIDE.SYS /D:FDCD0001 /S5 /E

(without enabling I/O-APIC and ICH9 chipset as Jeremy Davis posted 
earlier, thus resorting to normal APIC and PIIX3 chipset from Intel 
440FX Pentium-Pro or P2 motherboards)

These emulator-specific hacks are slightly annoying though, EMM386/JEMM 
has (had) them as well due to a VMware specific memory region being in 
use. Installation routines having to detect PCI-based devices (mainly 
videocards) might do the trick but involve extra work.

slightly offtopic:
I'm sticking to the /S5 parameter in general for automated UIDE as only 
absolute numbers are possible, no percentages (/S50% or /S0.5) with 
truncating (taking intended minimum amounts in account, e.g 
n=5/15/25/40/50 or 80=n=4093 minus PCI mapped space)

 Jack R. Ellis

stay healthy!,

Bernd

--
Magic Quadrant for Content-Aware Data Loss Prevention
Research study explores the data loss prevention market. Includes in-depth
analysis on the changes within the DLP market, and the criteria used to
evaluate the strengths and weaknesses of these DLP solutions.
http://www.accelacomm.com/jaw/sfnl/114/51385063/
___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Test UIDE Available, For VirtualBox.

2011-07-24 Thread Rugxulo
Hi,

On Sun, Jul 24, 2011 at 10:18 AM, Bernd Blaauw bbla...@home.nl wrote:
 Op 24-7-2011 16:52, Jack schreef:

 Apologies for my late response re: UIDE v.s. VirtualBox.   Had to have
 my (infected!) gall-bladder removed, 25-Jun-2011.   NASTY episode, and I
 am still recovering and moving a bit slow on driver work!   Re: recent
 EDR-DOS forum posts, I say the same as our author Mark Twain once did --
 The rumors of my demise are greatly exaggerated!

 Goodluck recovering, Jack.

Ditto, Godspeed!

 So, I have added a /E (emulator) switch to UIDE and UIDE-S.

 Thanks very much for adding this.

Ditto. I knew you were quite diligent, but this is beyond the call of
duty. I'm surprised, honestly, just expected to have to live with yet
another [VBox] bug / quirk that we'd all have to workaround, as usual
(Murphy's law).

 Juan, could you please try these drivers either by emailing Jack or
 waiting till Johnson Lam has posted them at
 http://johnson.tmfc.net/dos/driver.html ?

It's there already, so I guess he means that Johnson hasn't fully
tested yet (until after the weekend).

 slightly offtopic:
 I'm sticking to the /S5 parameter in general for automated UIDE as only
 absolute numbers are possible, no percentages (/S50% or /S0.5) with
 truncating (taking intended minimum amounts in account, e.g
 n=5/15/25/40/50 or 80=n=4093 minus PCI mapped space)

Why? I mean, sure /S5 is fine, I'm not complaining, but you *could*
use Eric's XMSSIZE:

http://ericauer.cosmodata.virtuaserver.com.br/soft/specials/xms-size-info-xmssizer.zip

EDIT: Oh wait, that wouldn't work in CONFIG.SYS. But wait, you're
using DEVLOAD (tricky bastard), so it just might!;-)

 Jack R. Ellis

 stay healthy!,

Ditto.   ;-)

--
Magic Quadrant for Content-Aware Data Loss Prevention
Research study explores the data loss prevention market. Includes in-depth
analysis on the changes within the DLP market, and the criteria used to
evaluate the strengths and weaknesses of these DLP solutions.
http://www.accelacomm.com/jaw/sfnl/114/51385063/
___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Test UIDE Available, For VirtualBox.

2011-07-24 Thread Bernd Blaauw
Op 24-7-2011 20:26, Rugxulo schreef:
 Why? I mean, sure /S5 is fine, I'm not complaining, but you *could*
 use Eric's XMSSIZE:

 http://ericauer.cosmodata.virtuaserver.com.br/soft/specials/xms-size-info-xmssizer.zip

 EDIT: Oh wait, that wouldn't work in CONFIG.SYS. But wait, you're
 using DEVLOAD (tricky bastard), so it just might!;-)

Jack's driver only accepts certain values. This might be intentional due 
to specific caching algorythms.
Using XMSSIZE I'd still have to use a lot of errorlevel stuff:
if not errorlevel 5 , then use /B /N1 /N3
if not errorlevel 10, then use /S5
if not errorlevel .. etc.
if errorlevel 80, then use /S%errorlevel% (limited to 255 as that's 
errorlevel maximum).

All above is based on 'how much XMS is currently available' but also 
ignores the 'how much should I leave available for programs I'd like to 
run' (8MB system using 5MB cache means trouble for games and Windows).

I like automatic calculations and roundings in a program itself, just as 
is currently done for invalid sizes (unless aborting completely).

Purely a cosmetic feature, just like the shown device name on:
DEVICE=UIDE.SYS /D:FDCD0001 /N2
(no CD drives handled, UIDE$ char device created, FDCD0001 char device 
not created, but FDCD0001 char device still listed in sign-on message).

Anyway all of this isn't important, just some thoughts.
Thanks for mentioning Johnson Lam posted these drivers, I'll update my 
CD. Makes much easier documentation: if slow in VirtualBox, add /E

--
Magic Quadrant for Content-Aware Data Loss Prevention
Research study explores the data loss prevention market. Includes in-depth
analysis on the changes within the DLP market, and the criteria used to
evaluate the strengths and weaknesses of these DLP solutions.
http://www.accelacomm.com/jaw/sfnl/114/51385063/
___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Test UIDE Available, For VirtualBox.

2011-07-24 Thread Eric Auer

Jack,

 Except for minimal boot systems, like yours and Lucho's
 multiboot diskette, I recommend a minimum of 250-MB cache
 to handle todays' LARGE Windows files.   Copying a 100-
 MB file will take 200-MB of UIDE's cache space (input and
 output), and some cache space must remain for directories
 so the NEXT disk operation does not have to re-read them.
 
 Having to discard DOS directories, to make room for new
 data files, is the main loss of speed when using UIDE, so
 users should allocate as large a UIDE cache as possible.

A cache might already know that the directories are more
useful because they are accessed more often, so even when a
copy of a large file pushes out the directories, they are
cached again soon :-) Also, you do not have to cache data
on the first write, you can also wait until it is read again
before you cache it - lbacache has a command line option to
select whether or not to cache on write afair. Of course if
data already is cached, you will have to update the cached
copy on writes. So the difference is only whether or not to
add data to the cache when it is written. Another question
is how often people copy 100 MB files on non-Windows DOS
systems and whether it bothers them that doing so, with a
small cache, will flush out useful data such as FATs and
directory data from the cache, temporarily reducing speed.

Eric

PS: Best wishes for your speedy operation recovery...

PPS: know based on I/O patterns, not filesystem awareness.


--
Magic Quadrant for Content-Aware Data Loss Prevention
Research study explores the data loss prevention market. Includes in-depth
analysis on the changes within the DLP market, and the criteria used to
evaluate the strengths and weaknesses of these DLP solutions.
http://www.accelacomm.com/jaw/sfnl/114/51385063/
___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Test UIDE Available, For VirtualBox.

2011-07-24 Thread Eric Auer

Hi Bernd,

 Jack's driver only accepts certain values. This might be intentional due 
 to specific caching algorythms.
 Using XMSSIZE I'd still have to use a lot of errorlevel stuff:
 if not errorlevel 5 , then use /B /N1 /N3
 if not errorlevel 10, then use /S5
 if not errorlevel .. etc.
 if errorlevel 80, then use /S%errorlevel% (limited to 255 as that's 
 errorlevel maximum).

You can use a factor or simply add a zero, to get 10 to 2550 MB cache.

As you say, smaller caches (5, 15, 25, 40, 50 MB) would still need an
extra check, but you need not cover ALL steps. A few not enough RAM
for 80 MB cache choices will be enough, e.g. 15 MB and 40 MB.

 All above is based on 'how much XMS is currently available' but also 
 ignores the 'how much should I leave available for programs I'd like to 
 run' (8MB system using 5MB cache means trouble for games and Windows).

Again, I think a few steps for low memory systems would be enough
and for big system percentages are exact enough imho. Also there
are tools like my 503 byte add for further calculations, or use
calc387 on newer computers, both in factorial-calc387-add.zip :-)

Eric

PS: calc387 is free open source software by Craig Hessel, 1024 bytes.


--
Magic Quadrant for Content-Aware Data Loss Prevention
Research study explores the data loss prevention market. Includes in-depth
analysis on the changes within the DLP market, and the criteria used to
evaluate the strengths and weaknesses of these DLP solutions.
http://www.accelacomm.com/jaw/sfnl/114/51385063/
___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Test UIDE Available, For VirtualBox.

2011-07-24 Thread Jack

Eric,

 Having to discard DOS directories, to make room for new
 data files, is the main loss of speed when using UIDE ...

 A cache might already know that the directories are more
 useful because they are accessed more often ...

I did not want to add such logic in UIDE, because I dare not
trust that each DOS variant works the same.   At run-time,
UIDE uses exactly one system resource, the Int 13h vector.
This makes it generic and lets it run on all DOS variants.
I do not even use interrupts (polling only) since some old
Intel chipsets with errata (bugs!) had interrupt problems!

 ... Also, you do not have to cache data on the first write,
 you can wait until it is read again before caching it ...

This would also add code in UIDE (a table of pending cache
disk output areas), that I do not want to include.   At 5.5K
of run-time code, 4.6K of which can be stashed in the HMA,
UIDE is rather efficient as-is, and I want to keep it so.

 ... Another question is how often people copy 100-MB files
 on non-Windows DOS systems and whether it bothers them
 that doing so, with a small cache, will flush out useful
 data such as FATs and directory data from the cache,
 temporarily reducing speed.

I got into device drivers back in 2003 because I still use
V6.22 MS-DOS to backup/restore my Windows/NT system.   I bet
many folks use DOS as a simple (and cheap!) backup/restore
system for Gawd-AWFUL Windows, rather than spending money on
some equally Gawd-AWFUL Windows application program!   File-
copy speed in such operations still matters to me, and since
memory is now ludicrously cheap, why not USE it for a cache?

 PS: Best wishes for your speedy operation recovery ...

Thanks!   I am up and about, but food with high fat levels
still HURTS when I eat it, due to less digestive fluids in
my system!   The Doc says it can take 18 months to get used
to this, so I must simply be patient.

Jack R. Ellis


--
Magic Quadrant for Content-Aware Data Loss Prevention
Research study explores the data loss prevention market. Includes in-depth
analysis on the changes within the DLP market, and the criteria used to
evaluate the strengths and weaknesses of these DLP solutions.
http://www.accelacomm.com/jaw/sfnl/114/51385063/
___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user


Re: [Freedos-user] Test UIDE Available, For VirtualBox.

2011-07-24 Thread Eric Auer

Jack,

 A cache might already know that the directories are more
 useful because they are accessed more often ...

Sorry about the misunderstanding - I did not mean that the
cache would know what a FAT or directory is, just that those
sectors are accessed frequently, giving the cache a chance
(e.g. by LRU) to know that it should throw them away later
than less useful (less frequently accessed) sectors when
new space is needed to cache something. Also, the frequent
access means that FAT and directories are likely to be in
the cache again soon...



 ... Also, you do not have to cache data on the first write,
 you can wait until it is read again before caching it ...
 
 This would also add code in UIDE (a table of pending cache
 disk output areas), that I do not want to include.

Not necessarily. the code in lbacache for this is very
short. There is a command line argument which sets a
flag and then write to disk does the following:

- check in which bin cached data for this sector is
  (you have to do that anyway, to update the cache)

- if any (cache hit) update the cached copy. done.
  (this is needed to keep cache and disk consistent)

- else (cache miss) if flag is not set, we are done.
  (a cache miss for a write does not NEED action...)

- else do allocate fresh space in the cache and cache
  a copy of the written data (anticipating future reads)

So if the alloc on write flag is set, the cache will
assume that written data will be eventually read again.

If the flag is not set, the cache will just write the
data to disk and forget about it. It will be cached at
the moment when the data is really read from disk again.

So if you set the flag, cache memory is consumed faster
and if not, reading just written data can be slower :-)



 UIDE is rather efficient as-is, and I want to keep it so.

I understand that. Maybe my little algorithm above is
still interesting for UIDE nevertheless, in particular
for people who have less RAM and copy big files but do
not often use the new copies immediately after copying.

 many folks use DOS as a simple (and cheap!) backup/restore
 system for Gawd-AWFUL Windows...

In particular those users will usually NOT use their
new backup copy right after copying it so they are a
good example where alloc on write can be disabled.

 copy speed in such operations still matters to me, and since
 memory is now ludicrously cheap, why not USE it for a cache?

A cache is good, but in theory, copying many big files
is fastest with a cache which only caches metadata and
read-ahead content but does not try to keep the written
data in memory which will not be read back soon anyway.



One COULD (but normally would not) do something like:
lbacache cool
dir /s  nul
lbacache temp
xcopy ...

That would give the directory metadata extra stickiness
in the cache so the xcopy does not flush it out so fast,
in particular with tuna option (avoid tunw option).

However, the above example is a VERY manual way to tune
a single XCOPY and as you say, it would add much extra
complexity to make the cache REALLY know what directory
and fat metadata is...

On the other hand, deciding whether or not to set the TUNW
alloc-on-write option is quite painless for everybody, as
it can be explained with  if you have little memory, use
tuna, if you have a lot of memory, use tunw when loading.

 Thanks!   I am up and about, but food with high fat levels
 still HURTS when I eat it, due to less digestive fluids in
 my system!   The Doc says it can take 18 months to get used
 to this, so I must simply be patient.

Yes - and maybe take some substitute enzymes, I guess...

Eric



PS: The TUNA option makes the cache fully associative so
it considers ALL memory slots for caching (slower) while
the default is to have only e.g. 16 candidates based on
a hash of the sector number in question (16 way assoc.).

When new data has to be cached, the least valuable slot
of old cached data is replaced, based on access counts.


--
Magic Quadrant for Content-Aware Data Loss Prevention
Research study explores the data loss prevention market. Includes in-depth
analysis on the changes within the DLP market, and the criteria used to
evaluate the strengths and weaknesses of these DLP solutions.
http://www.accelacomm.com/jaw/sfnl/114/51385063/
___
Freedos-user mailing list
Freedos-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-user