Re: Self Extractor

new topic     » goto parent     » topic index » view thread      » older message » newer message

Hi Kat, you wrote:

> On 31 May 2003, at 20:25, Juergen Luethje wrote:
>
>>
>> Hi Kat, you wrote:
>>
>>> On 29 May 2003, at 9:20, Carl W. wrote:
>>>
>>>> mistertrik at hotmail.com wrote:
>>>>
>>>>> I tried using PKUNZIP.EXE, but it can't handle long filenames (truncates
>>>>> everything to 8 chars, ie PROGRAMF), and it borks about 3/4 of the way
>>>>> through the extraction.
>>>>>
>>>>> Basically, it needs to be DOS based and not munge up long filenames.. is
>>>>> that possible?
>>>>
>>>> DOS mode doesn't allow long filenames (Microsoft would rather you used
>>>> the GUI), but there's a tool out there called LFNDos that will give
>>>> access to long filenames in DOS mode.
>>>>
>>>> Second, grab a copy of the PKZip 2.5 package as this handles long
>>>> filenames when it thinks it sees Windows running (LFNDos fools it
>>>> successfully). Alternatively get the freeware DJGPP Unzip32.exe and
>>>> cwsdpmi.exe (along with LFNDOS) to do the unzipping.
>>>
>>> <prolly !helpful>
>>> It's my understanding you can do LFN in dos7 without windows running, and
>>> without any other apps, IF the dos program knows how to stuff the cpu
>>> registers for the interrupt call.
>>
>> Sorry, this understanding is false. There must be an appropriate API for
>> Long File Names, and this is *not* provided by (any version of) bare
>> MS-DOS.
>
> I took the time to scan in the book Unauthorized Windows a few years ago...
> but it's on zip disk and the puter is too full of hds to plug in the zip
> drive... but
> in the book, open in front of me, it says if not in real mode, you can switch
> to
> a protected mode dos and get the LFN API with dos interrupts if you load the
> vxd's provided for that purpose.
>
>> Normally, LFN are only available when IFSMgr (i.e. Windows 95+) is
>> running.
>
> *normally*, but you can load the required vxd's without it.
>
>> Under bare MS-DOS, they only can be accessed by using special
>> TSR programs, such as
>> - LFNDOS: http://saturn.spaceports.com/~dosuser/dosutils.htm
>> - DOSLFN: http://www.tu-chemnitz.de/~heha/hs_freeware/doslfn.zip
>>
>> That the DOS program knows how to stuff the cpu registers for the
>> interrupt call, is necessary of course, but it's not sufficient.
>> a) There must be an API for LFN, *and*
>> b) the program must call the proper functions of that API.
>
> There is an api already. Well, not really, but sorta of, if you know where to
> look.....

Are you saying, that the authors of LFNDOS and DOSLFN only had to write
their programs, because they didn't know where to look?

> since all the info for the LFN is on disk, you can still get at it with
> bios calls. It's plain visable in disk "hex" editors, like the olde Norton. As
> someone who has written tsrs that did bios calls to manipulate the disk and
> memory (dos isn't *normally* reintrant), this is easy. The long filename
> simply takes up the next space in the FAT, with a byte flag to tell the LFN
> driver that the filename it is reading has NOT ended, and to append the
> following block to the filename, repeat as needed for whatever filename len is
> needed. You can eat up gobs of drive space in filenames alone.

Of course, the LFN are somewhere on the disk, and of course they can be
accessed. That's what IFSMgr, LFNDOS and DOSLFN do. When I build the
functionality of say LFNDOS into my own program, then I don't need
LFNDOS any more. smile But I'm neither interested in, nor have the ability
to do hardware programming.

>> Point b) is simple for Eu programmers, because they just can use
>> my lib  http://www.rapideuphoria.com/lfn.zip  which does the job
>> automagically. smile
>
> Kool, thanks, Juergen!
>
> Kat

You're welcome! But this lib ATM needs IFSMgr (or, not yet tested,
LFNDOS or DOSLFN) running in the background. If you can tell me, how
it can access LFN

| in dos7 without windows running, and without any other apps,

just by storing the appropriate values in the appropriate cpu
registers, and then call the appropriate interrupt, then please tell
me these values. No one will be happier than me!

Best regards,
   Juergen

-- 
 /"\  ASCII ribbon campain  |    |\      _,,,---,,_
 \ /  against HTML in       |    /,`.-'`'    -.  ;-;;,_
  X   e-mail and news,      |   |,4-  ) )-,_..;\ (  `'-'
 / \  and unneeded MIME     |  '---''(_/--'  `-'\_)

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu