Jump to content











Photo
- - - - -

NT351 Slipstream


  • Please log in to reply
4 replies to this topic

#1 wendy

wendy

    Frequent Member

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

Posted 16 April 2009 - 09:20 AM

The method closely follows BearWindows' page on this.

We create updated source, by placing the most recent version of the file at the first mention of it. For this, you will need Win351 source, SP5, and a later files. This is a handy way of creating the working set.

[codebox] @echo off md i386 md sp5 md post copy q:\win35\i386\* %cd%\i386 copy q:\win35\sp5_351i\* %cd%\sp5 copy q:\win35\sp5_351i\winnt %cd%\sp5 copy q:\win35\sp5post %cd%\post [/codebox] i386 starts off with the source, sp5 gets the unmodified sp5 / workstation, and post is the most recent file from all of the post-sp5 updates. The next batch file is SLOP.CMD. It runs with no parameters. This batch uses MSCAB. This file is available with the NT4 Slipstream package. [codebox] @echo off :: run this under CMD.EXE :: we first merge in SP5 to the mix. for %%f in (sp5\*) do call :compress %%f sp5 i386 for %%f in (sp5\*) do call :movefile %%f sp5 i386 :: now the post-fixes for %%f in (post\*) do call :compress %%f post i386 for %%f in (post\*) do call :movefile %%f post i386 for %%f in (post\*) do call :movefile %%f post sp5 goto :eof :: ---------------------------------------------- :compress :: compress files in %2 to %3 set zfirst=%~nx1% set zfinal=%3\%zfirst:~0,-1%_ set zfirst=%2\%zfirst% if not exist %zfinal% goto :eof del %zfinal% echo %zfirst% %zfinal% mscab -MSZIP a %zfinal% %zfirst% del %zfirst%goto :eof:movefile:: move files from %2 to %3set zfirst=%2\%~nx1%set zfinal=%3\%~nx1%if not exist %zfinal% goto :eofecho %zfirst% %zfinal%del %zfinal%copy %zfirst% %zfinal%del %zfirst%goto :eof:eof[/codebox]What this does, is to copy/compress the source to the target, if the target file exists. This runs under CMD.EXE from NT5 onwards. You could use something like the larger Win95cmd.exe, or cmd.exe 2000 under nt4. 4NT seems to baulk at it. You are then left with 58 files in SP5 and 19 in POST, these are new names not appearing in the base install. You then simply edit UPDATE.INF (and, say HOTFIX.INF), to add these files to the base install. In hotfix.inf, you remove references to files not present in the reduced SP5. We could add the sole registry entry from the service packs as well here (but we don't).

Only two of the 19 files in POST are not relating to NLS, so we could copy these as well.

You install, run a plesaently small SP5, and it's all updated.

#2 wendy

wendy

    Frequent Member

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

Posted 16 April 2009 - 09:27 AM

Windows 3.51 runs in a small memory space, so lots of its registry file info (like international settings), live in .INF files on the hard disk. However, the service packs do not really update this.

Here's the registry entries from SP5.

[codebox]; update.inf regcd HKLM\Software\Microsoft\Windows NT\CurrentVersion\TimeZones\E. South American Standard Time regsz Display=(GMT-03:00) Brasilia regcd HKLM\System\CurrentControlSet\Control\ProductOptions regdw CSDVersion=1280 regcd HKLM\System\CurrentControlSet\Services\Eventlogon\Application\Perflib regxz EventMessageFile=%SystemRoot%\system32\prflbmsg.dll regdw TypesSupported=7 regcd HKLM\System\CurrentControlSet\Control\NLS\CodePage regsz 1250=C_1250.NLS regsz 20261=C_20261.NLS regsz 28592=C_28592.NLS regcd HKLM\System\CurrentControlSet\Control\LSA regdw UpgradeSam=1 ; Q143474 regdw RestrictAnonymous=1 [/codebox] It's written in some kind of command language: regdw creates a registry dword, for example. Regsz is a unicode string, xz is unicode expanding, etc. regcd loads a new registry directory. It's pretty much looks like an .reg file, except that it's interpreted by a yet to be written (in rexx) processor. [Rexx comes with the sp3 reskit.] It's just a matter of unpacking/loading the hives, running the command file, and uloading/repacking the hives.

Keyboard data is kept in LAYOUT.INF.

NLS data is kept in INTL.INF.

You see both of these in registry under HKLM\SETUP.

#3 wendy

wendy

    Frequent Member

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

Posted 17 April 2009 - 10:27 AM

The build here gives a working copy of Windows 3.51, for which one can create boot disks and install it. [installing by running winnt under DOS is painfully slow, the boot disks are slow to build, but run quite fast in install].

The much reduced SP5 installs in a breeze, and no reboot is required (it adds a mob of files, but no real change to the system].

We can run reg.exe from NT4 resource kit under Win351, so registry hacks of either kind are not so painful. Regards the pseudofunctions above

regcd -> set regkey=HKRR\regfolder (RR = rahrah = anything)

regdw -> reg %regkey%\value=data REG_DWORD

regsz -> reg %regkey%\value=data REG_SZ

and so forth.

Since ultimately we could run this under Windows 3.51, this will use the same API as the source tape. We could test things like WINONE (works under 3.51), or WIN98CMD (ie NT5 cmd.com for Win9x), to see if any of these work here!

#4 wendy

wendy

    Frequent Member

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

Posted 20 April 2009 - 04:38 AM

Work continues on finding suitable tools to do it all under Win351.

REG from NT4 Resource Kit proved to be not useful, because it has some bugs in it. Instead, we are using David Thomas's DTREG (you can find this at http://thegoldenear.org/tweak . Download the package and extract the utilities.

CMD does not have the extended features of NT5, so we're using WIN95CMD, the later version. Both this and NT4's cmd.exe make use of Software\Microsoft\Command Processor. So we have redirected this to use Software\Microsoft\Microsoft Command, to allow us to set COMSPEC differently.

I've also added two new applets to Control-Panel: Regedit/32 and Setup. The latter corresponds to the later 'Add/Remove Windows Features'. These are smallish files that launch regedt32 and setup.exe respectively.

The piccy shows Win351 in "Windows 3.0" colour scheme, and the control-panel open.

Attached Thumbnails

  • win351.jpg


#5 wendy

wendy

    Frequent Member

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

Posted 25 April 2009 - 09:25 AM

More noise.

I spent a bit of time reading the INF files in Windows 3.51, beside loading the various registry hives.

registry loader

It looks as if DTREG does not load hives, so we will use the resource kit to do this.

Alternately, we could do a REXX script, and use regina straight out of the nt 3.1 res kit. This would allow us to use a markup language to make the rexx file, and we could do a single command to allow a string to be built in peices, eg like so.

strnew name=bit; append bit; append bit
etc...

Alternately, we could do something (for HKLM\ etc, allow things like any root, eg

subst HKNT=HKLM\Software\Windows NT\CurrentVersion

regcd HKNT\Winlogon

It's early days yet.

There's still a bit to do here with the ,NLS and KEYBD files, along with the DOS code pages, but there is an entry in registry and Layout.inf handles this.

Optional features and program groups are handled by Partial.inf, so we can now do things like add the various bitmaps from Windows 3.1 and its beta, along with delete setup and intro from the main group (the former becomes a control panel, the latter is a dos app that is essentially useless.

netware

Ten of the files in SP5 are netware files, and it is desired to only install these where netware is in use.

[b]diskXX.w[b]

The three-dozen odd marker files of name disk1.w are quite often referenced to in dozens of INF files, so i suppose it's not a good idea to get rid of these.




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users