Re: [Freedos-devel] IFS API

2023-02-23 Thread Ralf Quint

On 2/23/2023 9:44 AM, Liam Proven wrote:

On Wed, 22 Feb 2023 at 23:12, Ralf Quint  wrote:

I was jogging my memory a bit, and there was a specially NLM that needed
to be loaded on NW3.12 and NW 4.0 at least to get "long filename
support".

That's right. I believe it was called `OS2.NLM` because the support
Novell had already implemented for OS/2's long file names worked fine
for newer clients as well.
Well, it was OS2.NLM for Netware 3.1x up to 4.10, for 4.11, they named 
it LONG.NLM. I think starting with Netware 5.0, it was a build-in 
module, no need to load a special name space anymore. But by that time, 
the easy use of Netware was gone

IIRC, and this is fainter, there was a different `MAC.NLM` for classic
MacOS support, which did rather more -- both data and resource forks
-- and you were recommended _not_ to try to use that one.
Yeah, that one I remember wasn't very popular, when thinking about that 
one, actually old "MC Hammer" comes into my head, "can't touch that"... 😛


AIUI, Netware's native filesystem didn't actually have subdirectories.
It was flat and used hashing to simulate a hierarchical filesystem for
clients.
Don't recall anything like this. Also hard to imagine, given the way how 
they handled permissions. After all, you wouldn't even see sub 
directories you didn't have the rights to access (one of the stupid 
things in Windows,). IIRC, when trying once to do some data recovery on 
a Netware drive with the help of some folks at Compaq, it was very 
similar to a FAT filesystem. Novell never published any technical info 
about the file system and the guys at Compaq could only give me hints 
over the phone, they had tech info from Novell but were not allowed to 
share anything in hard copy from that...


A low-priority task for me is to get a Netware server running again. I
have a copy of Netware 6.8 SP $last sitting around somewhere, but
foolishly, when I worked for Micro Focus, I failed to obtain a staff
licence key for it. >_<
I never used anything past 4.11, they tried to compete too much with NT 
Server at that time already and everything from 5.0 and up was a hot mess.
Might have to check if anyone ever continued to work on MARSNWE, which 
looked promising for a while until the original author dropped it. Just 
saw that a couple of years ago, it had been put up on GitHub (GitLab?)


Have a server (I think it's a 486 with 16MB RAM and something like a 
1.2GB data drive), running a 10 user Netware 3.12, sitting hidden in my 
storage, something like this would be a great "companion" to FreeDOS...



Ralf



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


Re: [Freedos-devel] IFS API

2023-02-23 Thread Bret Johnson
> But being MS-DOS 5.0 published when it was, after the quarrel with
> IBM, I can just speculate that if MS-DOS 5.0 needed more
> conventional memory, IFS would have been one of the first things to
> go.  Which is a pity, because from those articles one can infer that
> it tried to make mounting file systems less reliant on MS-DOS
> internal structures. A good idea for which your 16-bit PC has not
> enough memory :)

I'm doing experiments with my TSR's that allow them to use MUCH less memory 
than normal by putting parts of themselves into EMS or DPMS memory.  Using 
these methods, it's possible to make even a really big, complicated TSR or 
device driver require only a few kB of Conventional or Upper Memory.


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


Re: [Freedos-devel] IFS API

2023-02-23 Thread Aitor Santamaría
Hi,

El jue, 23 feb 2023, 0:19, Bret Johnson  escribió:

> > Also I found references on IFSFUNC: in 2Fh (AH=11h), IFSFUNC
> > functions seem to be entangled with the network redirector
> > functions:
> >
> > http://www.ctyme.com/intr/int-2f.htm
> >
> > Apparently, these functions would be made available by IFSFUNC.EXE
> > (curiously not provided by kernel itself).
> >...
> > My conclusion would be that it looks like an alternative
> > functionality update to the network redirector itself (and not
> > something entirely unrelated), that tried to solve some of the
> > previous problems and/or tried to be more abstract and less tied to
> > internal DOS structures, that was implemented only in DOS 4.0,
> >  probably to try and make HPFS available for DOS, but that was later
> > abandoned (due probably to high memory requirements) in favour of
> > maintaining the old redirector).
>
> That's kind of an interesting take, but it's ultimately not what I would
> like to see.  I would like things to be "embedded" as a kernel extension so
> additional drives can simply be "plugged in".  That's how my USBDRIVE
> program currently works.
>
> What I do with USBDRIVE is "inject" the USB drive information into the
> various DOS tables (like the CDS & DPB structures) and the device driver
> chain as needed.  DOS itself already knows how to process FAT12/FAT16 and
> (in some cases) FAT32 partitions/disks.  I leverage that capability so that
> the USB driver doesn't need to handle it.  The USB driver basically just
> gives DOS access to the sectors and DOS processes the data that's in the
> sectors.  As USB disks get plugged and unplugged the various DOS tables get
> updated but DOS already knows how to handle that (DOS can handle removable
> disks with different sizes that all use the same drive letter).
>
> I would like to see a similar setup for additional drive formats (like
> exFAT or HPFS or NTFS or UDF or whatever).  Something where the driver has
> "slots" that different disks can be "plugged" into in real time and the
> software automatically adjusts itself to the disk that's currently
> installed.  I've not studied the network director to know if something like
> that is even possible, but is what' I'd _like_ to see for future
> flexibility and compatibility.
>

Well, I think it's hard to know which were the extra features of IFS over
the already existing network redirector.  This feature (I would include it
as hot plug'n play) could be one, because it's probably IFS which increased
a lot the conventional memory consumption of MS-DOS 4 over 3.x.
However I find it unlikely.  My bet is that IFS included the minimum
necessary to mount HPFS in DOS.

In one of the aforementioned articles, there's a funny comparison between
MS-DOS 4/5 and Windows Vista/7. The former being undeservedly guilty of
horrible memory consumption and the latter seen as a leaner savior.

I can't know the story from my own experience, because I jumped from MS-DOS
3.30 to 6.00 (yeah I lived DOUBLESPACE and not DRIVESPACE).

But being MS-DOS 5.0 published when it was,  after the quarrel with IBM, I
can just speculate that if MS-DOS 5.0 needed more conventional memory, IFS
would have been one of the first things to go.  Which is a pity, because
from those articles one can infer that it tried to make mounting file
systems less reliant on MS-DOS internal structures. A good idea for which
your 16-bit PC has not enough memory :)



> ***
>
> As an aside, I'm wondering if anybody has a "fool-proof" test for FAT32
> capability in the kernel.  In USBDRIVE what I currently do is go through
> all the drive letters and see if any of them responds correctly to INT
> 21.7302h (Get Extended BPB).  This test works if there is at least one
> existing FAT32 drive letter, but will fail if there are no actual FAT32
> partitions even if the kernel supports FAT32.  I don't know of a direct or
> fool-proof way to detect FAT32 support, but maybe somebody else has come up
> with something.
>
>
> ___
> Freedos-devel mailing list
> Freedos-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/freedos-devel
>
___
Freedos-devel mailing list
Freedos-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freedos-devel


Re: [Freedos-devel] IFS API

2023-02-23 Thread Liam Proven
On Wed, 22 Feb 2023 at 23:12, Ralf Quint  wrote:
>
> I was jogging my memory a bit, and there was a specially NLM that needed
> to be loaded on NW3.12 and NW 4.0 at least to get "long filename
> support".

That's right. I believe it was called `OS2.NLM` because the support
Novell had already implemented for OS/2's long file names worked fine
for newer clients as well.

IIRC, and this is fainter, there was a different `MAC.NLM` for classic
MacOS support, which did rather more -- both data and resource forks
-- and you were recommended _not_ to try to use that one.

AIUI, Netware's native filesystem didn't actually have subdirectories.
It was flat and used hashing to simulate a hierarchical filesystem for
clients.

A low-priority task for me is to get a Netware server running again. I
have a copy of Netware 6.8 SP $last sitting around somewhere, but
foolishly, when I worked for Micro Focus, I failed to obtain a staff
licence key for it. >_<

-- 
Liam Proven ~ Profile: https://about.me/liamproven
Email: lpro...@cix.co.uk ~ gMail/gTalk/FB: lpro...@gmail.com
Twitter/LinkedIn: lproven ~ Skype: liamproven
UK: (+44) 7939-087884 ~ Czech [+ WhatsApp/Telegram/Signal]: (+420) 702-829-053


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


Re: [Freedos-devel] IFS API

2023-02-23 Thread Bret Johnson
>> I don't know of a direct or fool-proof way to detect FAT32 support,
>> but maybe somebody else has come up with something.
>
> I believe DJGPP utils (2.04 beta or newer, e.g. 2.05 current) use
> the naive method of "only assume FAT32 if DOS version is 7". (By
> this I mean "du.exe","df.exe" etc. will then use INT 21h, 7303h.)

That was the way I tried it at first, too, and it really doesn't work.  FAT32 
first showed up in Windows 95B (not Windows 95) so the DOS version test doesn't 
work reliably.  Relying on a DOS version for specific features or internal 
structure characteristics just generally isn't very reliable, except with early 
versions of DOS where MS and IBM were the only manufacturers.  As more 
competitors entered the fray identifying the specific manufacturers and 
versions and their compatibilities became almost impossible.  It's even worse 
now with the advent of Virtual Machines.

> "INT 21 - Windows95 - FAT32 - GET EXTENDED FREE SPACE ON DRIVE"
> * http://www.delorie.com/djgpp/doc/rbinter/id/40/32.html

I just did a little bit of testing with that one and it has some potential.  At 
least under MS-DOS 7.1 (Windows 98) and FreeDOS 1.3, it returns valid 
information even for FAT16 partitions.  But under DOSBox it returns an error 
even when accessing a real FAT32 partition.  I'll need to experiment with that 
one a little more -- it may be a better option than what I'm doing now, or I 
may need to do multiple tests.

> What about INT 21h, 71A0h? (Admittedly, it may assume the Win95 LFN
> API is available.)
>
>"INT 21 - Windows95 - LONG FILENAME - GET VOLUME INFORMATION"
> * http://www.delorie.com/djgpp/doc/rbinter/id/23/32.html

That is actually an LFN function, not a FAT32 function.  A lot of people think 
LFN and FAT32 are "cousins" since they both showed up at around the same time, 
but you can have one without the other.  Even a floppy disk (FAT12) can have 
LFNs.

Also, not all LFN features are supported by all LFN drivers.  I think INT 
21.71A0 may only be supported by Windows itself and not by the "aftermarket" 
LFN drivers (DOSLFN, LFNDOS, StarLFN, etc.), but don't know for sure.  The way 
I detect LFN support is with INT 21.7147 (LFN - Get Current Directory) which 
seems to work with all LFN drivers.


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