Jump to content











Photo
- - - - -

DOS 32 bit with LFN support through VMM32.VXD


  • Please log in to reply
16 replies to this topic

#1 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7,098 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 07 June 2007 - 02:08 PM

In my wanderings on the net, I found this (oldish) Italian site:
http://nipsala.alter...g/superwin.html

reporting an article published in PcWorld 02/1999.

The interesting part (in the context of making a RAM only Win9x, by installing it on a HD partition and then copying it to RAMDISK XMSDSK.EXE) is, roughly translated, the following:

...
in this experiment, Windows 95 - FIRST release .... as using 95B (OSR2) and Windows 98 we had unsolvable problems in booting ...
....
To be able to copy to RAMdisk the files inclufding Long File Names a 32 bit DOS needs to be used, to build such do the following:
Create a directory C:\TOOLS
then:
cd c:\ramwin\windows\system

copy vmm32.vxd c:\tools\vmm32.exe

copy ..\command.com c:\tools\krnl386.exe

xcopy iosubsys\*.* c:\tools\iosubsys\

copy ..\system.ini c:\tools

copy ..\command\attrib.exe c:\tools

this is enough to be able to later start with the command VMM32.EXE a version of DOS supporting Long File Names, it is better to delete ALL drivers from the [386enh] section of the SYSTEM.INI copy in C:\TOOLS to avoid error messagfes when booting this DOS.

Now you can make in C:\TOOLS a file WINSTART.BAT that will be automatically executed.....
...containing first thing an
ATTRIB /S-R-S-H C:\RAMWIN\*.*
and COPY commands for each file to be copied, as in this DOS only INTERNAL commands
support LFN....


I was able to locate, on a German site that appears to have now vanished - or more exacty redirected to a page where a house is advertised for sale EDIT:Now working:
http://webwi.de/data/winos.htm
through some clever :1st: tricks with googlecache:
http://209.85.135.10...j...htm&strip=1
a very similar text and instructions.

Anyone has more details on HOW and WHY this works?

And also WHY it only works with Win95 first release files?

If there is a way to use Win95B and/or Win98 (read FAT32) such an idea could be useful for some project.

jaclaz

#2 ispy

ispy

    Silver Member

  • Tutorial Writer
  • 586 posts
  • Location:PILGRIM

Posted 18 September 2007 - 05:43 PM

Hi Jaclaz,

Major bump I know, but here is some stuff you maybe interested in. It involves 32bit dos which I have previously been playing around with, anyways here are some links in connection with 98SE 32bit dos.

http://thecorporatio...XCopy/index.htm

http://www.winfaq.de...p?h=tip1826.htm

or this batch file below to create 32bit dos

@echo off
rem This file builds a 32Bit MS-DOS. This means DOS runs in protected mode, and long file names are available. Ideal for
rem Backup.
rem Booting this system up requires a few things:
rem .
rem 1) System Registry scanned. Location indicated by IO.SYS
rem 2) VFAT/LFN driver loaded in config.sys : DEVICE=IFSHLP.SYS
rem 3) XMS driver loaded. So far supported: FDXMS.SYS / HIMEM.SYS / XMSMMGR.EXE
rem .
rem Original version (everything below "goto 2nd" and ":2nd" ) © PC-WELT Germany.
goto 2nd
if exist c:\32BD\nul deltree /y c:\32BD
c:
md c:\32BD
cd c:\32BD
copy %winbootdir%\win.com
copy %winbootdir%\system.ini
md c:\32BD\system
cd c:\32BD\system
copy %winbootdir%\system\vmm32.vxd
copy %comspec% krnl386.exe
xcopy %winbootdir%\system\vmm32\*.* vmm32\
xcopy %winbootdir%\system\iosubsys\*.* iosubsys\
cd c:\32BD
goto end

:2nd
rem @echo off
if exist c:\32bd\nul deltree/y c:\32bd
c:
cd \
for %%x in ( c:\32bd c:\32bd\system ) do md %%x
cd 32bd
copy %winbootdir%\win.com
copy %winbootdir%\system.ini
cd system
copy %comspec% krnl386.exe
xcopy %winbootdir%\system\vmm32\*.* vmm32\
xcopy %winbootdir%\system\iosubsys\*.* iosubsys\
set filelist=vmm32 vnetsup ndis2sup vnetsetup ndis ndis2 vnetbios vredir dfs javasup aspienum wrdrv msmouse
for %%x in ( %filelist% ) do if exist %winbootdir%\system\%%x.vxd copy %winbootdir%\system\%%x.vxd
set filelist=
cd \32bd
goto end
:end

Hope this Contributes something? I have previosly sucessfully got it running ina standalone situation.

Regards,

ispy

#3 ispy

ispy

    Silver Member

  • Tutorial Writer
  • 586 posts
  • Location:PILGRIM

Posted 18 September 2007 - 10:06 PM

Hi again Jaclaz,

You may also find the info contained within this link helpful its where the batch file posted above originated:

http://www.911cd.net...ex.php?t23.html

As far as I can remeber the following line in the batch file is the crucial part of the creation of the 32bit system:

copy %comspec% krnl386.exe

Overall, a worth while read to the link above?

Regards,

ispy

#4 specter_57

specter_57

    Member

  • Advanced user
  • 67 posts
  • Location:Toronto, Canada
  • Interests:Computers....photography....electronics...astronomy...chemistry...physics....pets...reading

Posted 19 September 2007 - 04:39 AM

...and this I stumbled across on the net somewhere...maybe useful in this message context:

Running DOS with Long File Name (LFN) Support, but no GUI. No additional LFN drivers needed.

Messy, but it can be done, at least in Win95/98/98se.

Boot under DOS (not Windows).

In \windows\system\ rename krnl386.exe to krnl386.sav or some other name....

Check you really have a copy (you need it to reverse this).

Copy command.com (or 4Dos.com) to \windows\system\krnl396.exe ( notice...rename...!! )

Type Win

Windows loads all the drivers for the GUI, including the VFAT file system for LFN. However it accepts the regular command shell instead.

..try it...worked for me using a mini Win98.

Spec57

.......................................

#5 ispy

ispy

    Silver Member

  • Tutorial Writer
  • 586 posts
  • Location:PILGRIM

Posted 19 September 2007 - 09:03 AM

Hi all,

Just trying to help, here is a link to the original Batch file from PcWelt for the creation of a 32bit dos system. It is called PCW991232BD!.EXE (Self Extracting file), save it, virus check it (Just to be sure in your own mind!) run it if OK, & the batch will be extracted to C:\pcw9912 (Default) folder, & within 32BD sub-folder, the batch will be found, job done.

http://translate.goo...e...;.EXE&hl=en

Just depress the "Zum Download" a couple of times & it will download for you.

As Spec57 above states & other posts around the net suggest it can be a bit of a drudge doing it!

Anyways, what I did in the standalone version was to start to create a fresh install of a Windows 98SE install (Fresh Install) then at the first prompt to reboot I removed the 98SE CD, copied the (MINI) System.dat & User.dat if memory serves me right to obtain a mini registry as the 32bit dos requires a reg to write to, so I made a mini one to keep the bloatware down. I then deleted all the files created up to the first reboot of the 98SE install & created then the 32bit dos system, (Major faf) It worked for me however, I also killed a lot of the fileset with trial & error deletion to shrink the 32bit system down still further.

One problem I did encounter with it was in the shutting down of it "Exit" command didn't work so I obtained a 3rd party util which did a dirty close down.

Anyway regards to all,

ispy

#6 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7,754 posts

Posted 19 September 2007 - 10:38 AM

If you slimed the original DOS32 further down and even fixed some shortcomings, how about posting a revised script here?

:loleverybody:

#7 ispy

ispy

    Silver Member

  • Tutorial Writer
  • 586 posts
  • Location:PILGRIM

Posted 19 September 2007 - 11:40 AM

Hi MedEvil,

Yes, the only problem is I did this awhile back, I did it manually, no script (Trial & Error) & my memory is like a sieve, I also did it on another lower spec PC which I have placed in store & to make matters worse I have been playing around with a mini Win2K Setup & have since overwritten it (Before placing it in store), however on the flip side I think I saved the fileset as an image file on a different partition.

Adding to my complications I have recently fractured my right foot in a stupid accident, so consequently my leg is in plaster, so mobility is restricted at the mo! Doc says keep the leg elevated a couple of days.

Anyway, if you seriously want the fileset I can arrange it, but it will take a little time, sorry about the excuses & the lack of guarantees its just the situation I am in.

Let me know if you want me to proceed? (however please be patient)

Regards,

ispy

#8 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7,754 posts

Posted 19 September 2007 - 12:56 PM

No need to haste and break a leg. :loleverybody:
It just would be nice, if you already have an improved version, if you could post it.

:w00t:

#9 ispy

ispy

    Silver Member

  • Tutorial Writer
  • 586 posts
  • Location:PILGRIM

Posted 19 September 2007 - 01:14 PM

Hi MedEvil again,

Will get right on it (Sorry hobble on it LOL!), Catcha later when I have got the fileset. In the meantime the links above may prove useful background read?

Catcha later regards,

ispy

#10 ispy

ispy

    Silver Member

  • Tutorial Writer
  • 586 posts
  • Location:PILGRIM

Posted 20 September 2007 - 03:58 PM

Hi MedEvil & all, :loleverybody:

As Requested the information you requested, I have restored the 32Bit dos onto my old PC (Albeit it wasn't the PC I thought it was on Hey Ho!) Anyway, "I think" this is the reduced previous "fileset".

Here is some general info:

I have included the file ATTRIB.EXE file from C:\Windows\Command as it proves useful for uncovering the attributes of SYSTEM.DAT & USER.DAT as these are hidden/read only files. The specified details of these files are that they are necessary for command line 32bit DOS (Well SYSTEM.DAT is anyways). I created these, by as previously posted, creating a clean partition (C:\) using my 98SE CD (98SE Vers 4.10.2222) at the 1st reboot prompt, I removed the 98SE cd, then loaded a 98se boot disk, navigated to C:\Windows, -r -a -s -h attribed system.dat & user.dat, copied these to D:\ partition for storage, why? well to create a mini Registry, which as far as I can remember didn't ask for the 98SE install CD Key & they are of the following size on my system. I then removed the stuff up to the first reboot & created the folder structure as described below:

C:\Windows\System.dat = 20,512 bytes (Usual size over after fresh install in excess of 2Mb's)
C:\Windows\User.dat = 12,288 bytes (Sorry! Cannot remember the usual size after fresh install)

You probably could write a script that would auto build the system.dat & user.dat details if you constructed a mini reg as previously stated for the 32bit dos process to work?

Another by the side, bit of info is that the 98SE logo flashes on quickly then disapears (I never removed this) Also to prove that windows is running 32bit command line you can confirm with:

Navigate to C:\Windows folder with CD etc then type Win.com & the following error message is spewed right bach at you - "You are already running Windows" &
  • press Alt+Enter to switch this MS-dos Prompt between windowed & full screen display.
  • Type Exit & press Enter to quit this Ms-Dos prompt & return to windows.
  • Press Alt+Tab to switch to windows or another application.
You must appreciate you cannot switch to windows cuz this is a standalone 32bit system & typing Exit+Enter did not work for me I used a util called Poweroff.exe which did a dirty close down (Cannot remember where I got it from But could find again if you need it?).

The mist is clearing a bit because I remember to a certain degree what I did:

To make this a "standalone" commandline 32bit system I used a progey called LCOPY.EXE (Part of ODI's DOS LFN Tools) To create a complete folder structure with "NO" files within (Cannot remember the syntax sorry). The complete folder structure of Windows 98SE but every folder is empty inc the root C:\ I imported all the necessary files inc System.dat & Use.dat (MINI) from D:\Partition & without further ado I will list the principle file structure I created & is as follows:

I will NOT list every folder as there are 2 many! (402)

Total files Listed:
59 File(s) 4,933,895 bytes (Total size but it could be smaller - 5Mb's)
402 Dir(s) 5,130.91Mb ..........(My partition C:\)

Root C:\
Command.com, Io.sys, Msdos.sys & ATTRIB.EXE........ (From Command Dir)

[Overview Folders - My Documents, Program files, & Windows]

C:\Windows (Files):

Wnbootng.sts, POWEROFF.EXE (Used to close the sucker down Exit doesn't work), Himem.sys Ifshlp.sys, System.ini, Winboot.ini, Win.com, Win.ini Ios.log, System.dat (Mini) User.dat (Mini) Win386.swp (Swap File).

C:\Windows\System (Files):

Cp_437.nls, Comm.drv, Cp_1252.nls, Advapi32.dll, Ddeml.dll, Kernel32.dll, Keyboard.drv, User.exe, Locale.nls, Mmsound.drv, Mouse.drv, Mpr.dll, Mpr.exe, Mprserv.dll, Msgsrv32.exe, Mspwl32.dll, Shell.dll, System.drv, Unicode.nls, User32.dll, Shell32.dll, Vga.drv, Vmm32.vxd, Krnl386.exe Krnl386.win.

C:\Windows\System\Iosubsys

Esdi_506.pdr, Atapchng.vxd, Bigmem.drv, Cdfs.vxd, Cdtsd.vxd, Cdvsd.vxd, Disktsd.vxd, Diskvsd.vxd, Apix.vxd, Hsflop.pdr, Necatapi.vxd, Rmm.pdr, Scsihlp.vxd, Scsiport.pdr, Torisan3.vxd, Voltrack.vxd

C:\Windows\System\Vmm32

Ifsmgr.vxd, Ios.vxd, Qemmfix.vxd

Please be aware that within the following folders C:\Windows\System\Iosubsys & C:\Windows\System\Vmm32 the fileset will vary dependant on the drivers that 98SE deams necessary to run Windows 98SE or 32bit dos as proposed above. So the contents of your folder will be different to mine possibly.

You can use 4DOS instead of command.com but I never used it

The command Prompt is displayed like this "C>" with a full black screen

I'm sure you could trim this sucker down still further as it is truly a mini windows system.

Compatability issues were found with many 32bit Dos utils they had difficulty in loading & other users say that it is 2 much of a "faf" to set up & they have used DOSLFN in dos to acquire LFN support. you don't have to run it from a standalone situation, a simple switching batch file with a shortcut on your desktop would enable you to shut down & reboot to either a full windows 98SE system or the 32bit Dos system for Recovery, backup or for what ever other reason you may deem necessary

Wonder if it could be run from a ramdisk, just a thought?

Anyway I think that is everything, sorry for the cryptic layout, poor spelling, long winded outline & I'm not going to dare say this is the correct way of making a 32Bit Standalone Dos system, but I will say it worked for me!

hope it helps MedEvil, good luck guys

Regards,

ispy

#11 MedEvil

MedEvil

    Platinum Member

  • .script developer
  • 7,754 posts

Posted 20 September 2007 - 04:43 PM

Thanks for your work, especialy since you're handicaped at the moment. :loleverybody:
But instead of writing such a full featured tutorial, you could have gotten away way easier. :w00t:
You could have just posted a fixed bat file, with some special pointers.
Maybe next time! :w00t:

:w00t:

#12 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7,098 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 20 September 2007 - 07:31 PM

I have the feeling that something can come out of this thread. :loleverybody:

GOOD work ispy! :w00t:

:w00t:

jaclaz

#13 ispy

ispy

    Silver Member

  • Tutorial Writer
  • 586 posts
  • Location:PILGRIM

Posted 20 September 2007 - 08:41 PM

Hi all again, :loleverybody:

Thanks for all the positive comments (Jaclaz, MedEvil etc) & yes with your collective expert input, I'm sure this crude way of creating a 32Bit dos system could be refined into a very useful mini OS for all sorts of uses, a bit like PICO XP but for 9X LOL!

Just a rider to the previous tut, I didn't have the info in respect of the poweroff.exe util etc. I think it was obtained from the following link below. (If mem serves me right, I think I tried to use a rundll.exe/rundll32.exe [with those files installed] but the commands to close it down failed 2 do so). So here's what I used for what its worth (Freeware 2):

http://elektron.et.t...n/PowerOff.html

Go to the bottom of the page and the link is there.

The syntax for LCOPY.EXE (ODI's LFN DOS TOOLS) to copy "only" the folder structure was as follows (You'll have to adapt it to suit your own setup, the <1Space> is only to denote the spacing don't type this in the syntax OK):

LCOPY<1Space>C:\Windows<1Space>DriveLetter:\Somewhere<1Space>/S<1Space>/A

I've also posted this for other guests etc who visit this site & wish to give it a go?

Regards again,

ispy

#14 ispy

ispy

    Silver Member

  • Tutorial Writer
  • 586 posts
  • Location:PILGRIM

Posted 21 September 2007 - 10:53 PM

Just to keep you updated,

Will be on hols from 19/09/07 until 26/09/07 should anyone needs to make contact sorry!

Regards,

ispy

#15 ispy

ispy

    Silver Member

  • Tutorial Writer
  • 586 posts
  • Location:PILGRIM

Posted 08 October 2007 - 09:24 PM

Hello all again :cheers: ,

On the mini 9x front, associated with Windows ME here is a an interesting topic on creating a mini ME system (Yes, I know many users loathe ME but.....) I know some who use it & are very happy with it.

Well this version is ME is 5Mb's, anyway without further ado here is the link the info may prove useful for ME users? Uses 98lite, Just trying to help!

http://en.wikibooks....mall_Windows_Me

Maybe someone can create a standalone Mini ME system?

Regards as always,

ispy

#16 was_jaclaz

was_jaclaz

    Finder

  • Advanced user
  • 7,098 posts
  • Location:Gone in the mist
  •  
    Italy

Posted 09 October 2007 - 09:13 AM

Nice find!

I do not have a ME to try it though. :cheers:

If I am allowed some hypothesis on the author of the article, however, he must be a genius of marketing (bolding is mine):

Windows ME can be even more further reduced to only 205kB with CLI. To do this, following files are required:


C:\IO.SYS - copied from bootable floppy image embedded in Windows ME OEM bootable CD
C:\MSDOS.SYS - content listed separately
C:\COMMAND.COM - modification listed separately

msdos.sys file must have minimal content such as:


[options]
disablelog=1
systemreg=0

command.com file must have minimal one-byte modification such as:


at hex offset 00006510 byte 75 is replaced by byte EB

To make booting procedure working, IO.SYS should be copied as first ever file to freshly formatted disk.


I would have written the above as:

Get a ME bootdisk and boot from it.
To install to hard disk, just run a:\Format C: /S and edit command.com and msdos.sys as detailed.

:cheers:

:cheers:

jaclaz

#17 wendy

wendy

    Frequent Member

  • Lady
  • 238 posts
  • Location:one mile from the QR main line
  • Interests:Operating systems, Weights and Measures, Geometry
  •  
    Australia

Posted 18 December 2009 - 10:58 AM

One should remember that with DOS, or Windows NT or Windows 98, that the shell loaded by the OS is pretty much an application, and can be replaced by a suitably renamed app.

For example, the Norton utilities diskette had no command.com or autoexec.bat. Instead, the shell= command points to startup.exe, which is a character-mode gui to launch the various utilities on the diskettes.

Vmm32.vxd, or win386.exe or dosx.exe etc, are simply DOS32 apps, which load a great swag of files that ultimately becomes Windows. Since there is no particular equal of shell= for this stage, one replaces whatever one will run by these names. You could, for example, rename command.com to vmm32.vxd, and get a genuine (all be it flaky) 32-bit DOS with LFN support.

The exact process, i believe, is documented in "Unauthorised Windows 95"

Even Windows NT is a "thing on a thing". You can replace the relevant file here by something entirely different, and the core of NT (SMSS.EXE), by something entirely different, and Windows NT will do whatever smss suggests (eg load Windows, or the Windows Recovery Console, or O&O Bluecon, or whatever.

Microsoft even go so far to admit this. The windows boot disk is where smss.exe etc live. The "system" volume is where files like NTLDR live. That is, the computer is up and running programs before Windows NT, 98 or 3.1 even sees the light of day!




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users