Jump to content

Welcome to MSFN Forum
Register now to gain access to all of our features. Once registered and logged in, you will be able to create topics, post replies to existing threads, give reputation to your fellow members, get your own private messenger, post status updates, manage your profile and so much more. This message will be removed once you have signed in.
Login to Account Create an Account



Photo

W98_Slip: genuine slipstreaming for windows 9x

- - - - -

  • Please log in to reply
53 replies to this topic

#1
glaurung

glaurung

    Newbie

  • Member
  • 34 posts
  • Joined 18-July 06
W98_Slip: Slipstreaming Windows 98 SE.

About:
W98_Slip is a set of batch and script files used to slipstream updates into Windows 9x. Currently it has only been tested with Windows 98se, but with minor modifications it should work with Windows ME, Windows 98 first edition, and (with more extensive modification) maybe even Windows 95.

[eta: Its main limitation is that it can only slipstream updated files. New files could be slipstreamed, but it would take editing by hand of the makecab script files.]

Credits:
W98_Slip is written by Glaurung. This project was inspired by TommyP's HFSlip project.

Contact info:
For information and support, visit the W98_Slip thread in the MSFN Windows 98se unofficial service pack Forum.

Version history:
This is version 0.1 (first release).

Copyright and credits:
These files are open source, released under the GPL. You may use them for any use, personal, non-profit, or commercial. But you do so with the understanding that, 1) these files are experimental, unwarranteed, and you use them completely at your own risk, and 2) using these files may invalidate your licence with Microsoft, and any license issues caused by using these files are totally your responsibility.

Currently, these files are entirely my own work; I welcome contributions by others. You may redistribute these files, but if you do so, please give me credit, and leave in the contact information so users know where to go for information and updates.

Warnings:
These have been tested successfully with my OEM copy of Windows 98 SE. I have used them to do a maximum install from both DOS and within Windows with no error messages whatsoever. However, I don't own a retail copy or a bulk licence copy to test on. These files may or may not work with your copy of the OS.

There is no guarantee, and no warrantee. There is no support. This project is something I did in my spare time. I'd like to help you if you have problems, but I may not be able to reply right away or at all.

Another warning:
My batch file writing skills are pretty basic. Currently there is little error checking or sanity control. If you follow the directions, it should work. If you don't, it won't work.

w98_slip: Instructions for use.

0. You will need: 7zip or winzip, to extract updated files from hotfixes or from the unofficial service pack. Makecab (Microsoft cabinet SDK), for obvious reasons. Minitrue, used by W98_Slip to turn file lists into makecab scripts.

1. Unzip the files to a new folder on a disk with 1gb or more of free space. I've always put them in a top-level folder with a short file name. They might work for you if you put them in "My documents/my very long folder name with lots of spaces," and then again they might not.

2. Run w98_slip.bat. It will create some subfolders and display a short version of these directions.

3. Copy the win98 folder from your Windows 98 SE CD to the "source" folder.

3a. W98_slip expects some files to exist that are not required for setup to work properly. If the copy of the setup files that you have handy doesn't include setup.txt or setup*.wav, then when W98_slip tries to compress the updated source, makecab will fail with an error. If you can't find your original win98 CD, just run "makecab /f pass2.ddf" to see the missing files, then create some zero-byte dummy files with the same names.

4. Put the new versions of the files you want to update in the "updates" folder.

4a. If you want Windows Update to see the hotfixes you're slipstreaming as already applied, you need to edit an existing .inf file in the source to add the registry entries that tell windows update that you're already patched on that issue. Sorry I can't be more specific but the exact entries to make will depend on the exact files you are updating.

4b. Two restrictions on updated files: a) the files in the "updates" folder cannot be compressed (extract them first), and B) 98slip will only update files that already exist in the original (ie, w98_slip won't slipstream the q891711 update because it uses new files not in the original). You can add files not found in the original, but you'll have to edit the scripts by hand, and edit inf files in the source to take account of the new file.

5. Put the following programs in the "tools" folder: makecab.exe (downloadable as part of the Microsoft Cabinet SDK), and mtr.exe (part of minitrue, downloadable from http://www.idiotsdel....net/minitrue/). Also, if you have used 98lite (pay version) to remove the DOS command line utilities from windows\command, reinstall them.

6. Run w98_slip.bat again. The program will pause at various points, both to let you see if any errors popped up and to allow you to cancel out if need be, so it's not possible to run it totally unattended.

7. The slipstreamed install files will be in slipped\win98.

8. If you run w98_slip.bat again, it will ask you if you want to reuse your previous decompressed source. This is mainly a time saving measure, since decompression takes several minutes. It will also ask you if you want to reuse your previous makecab scripts. This is in case you modified the scripts for whatever reason. Finally, it will ask if you want to recreate the entire slipstream or just the precopy.cab files. Again, this is a timesaving measure for people who mainly want to modify the .inf files.

Things to note:

1. The install files will not be the same sizes as the originals, and there will be slightly fewer of them. This is because w98_slip is designed to generate the same number of cab files regardless of the size of your updated files.

2. In your slipstreamed install, Sfc.exe may not work properly (I haven't tested it so am unsure), as it contains hardcoded references to specific .cab file names. Fixing this would require hacking the binary file default.sfc.

What the files do:

pass1.ddf and pass2.ddf are makecab directive file stubs (everything makecab needs except the list of files to compress). The file lists for makecab are generated by w98_slip on the fly using minitrue.

mt*.txt are minitrue scripts. mt.txt, mt1.txt, and mt2.txt handle the conversion of the three layout.inf files to makecab directive files. mt_fl.txt and mt_pc.txt handle the conversion of the list of files contained in the cabs into makecab directive files.

mt_inf.txt handles the problem that driver19 and driver20.cab don't exist in the fileset w98_slip produces, but are referenced in a couple of inf files. I made it external to help simplify the process of adapting w98_slip to work with other versions of the OS.

Attached File  w98_slip.zip   14.89KB   391 downloads

Edited by glaurung, 20 August 2006 - 08:08 AM.



How to remove advertisement from MSFN

#2
glaurung

glaurung

    Newbie

  • Member
  • 34 posts
  • Joined 18-July 06
Background discussion:

Leaving out all the false starts and frustrating attempts to wrap my head around what passes for makecab documentation, this is a rundown of some of what I've learned doing this project, which may be of use to you if you want to slipstream another version of windows or use it as a springboard to create a more ambitious Windows 9x slipstreaming tool.

Using extract /d to list the contents of precopy2 reveals that the first file is carried over from precopy1, which is, mysteriously, located on "disk 2." Doing the same with base5 reveals that the first file is carried over from base4 on "disk 3." (we can safely assume that "disk1" consisted of the uncabbed setup files like setup.exe, *.bin and the like).

Looking at the sizes of the cabinet files, most of them are all the same size (1760 k). However, some are smaller; win98_21 is less than 6 k. On the other hand, driver20 plus win98_21 total almost exactly 1760k. More arithmetic shows the other odd-sized cabs also add up to almost exactly 1760k if you group them in numerical order.

So it seems that Microsoft used ".Set MaxDiskSize=1802240" in their makecab ddf file. Makecab then fit as much onto each "disk" as it could, resulting in the odd sized cabs. Using maxdisksize doesn't make much sense, because windows 98 was never released on floppy disks. I guess they adapted the ddf file they used for windows95, and simply never bothered to switch from a MaxDiskSize setting to a MaxCabinetSize setting.

As to the size they chose: since large cab files take longer to process, Microsoft had to keep the cabs to a relatively small size so that Windows would install in a reasonable amount of time on a 486. On the other hand, I assume they wanted to keep the cabinets larger than the maximum capacity DMF floppy disk to keep people from making copies of the OS on floppy disk (this was in the days before CD-R, remember). (ETA: LLXX tells me that 1760k is the size of a floppy format that Microsoft developed but abandoned due to compatibility problems. Probably makecab supports this format with an undocumented abbreviation, just like it supports the abbreviations 1.44M and CDROM).

Opening the source cabs with 7zip shows how the files are grouped in folders (7zip calls them "blocks"). Extracting the files from a single block and re-cabbing them yields cabs of about 1 megabyte. Exactly one megabyte yields folders a little larger than the source cabs; a little experimentation shows that Microsoft used: ".Set FolderSizeThreshold=1000000." This is actually pretty close to optimal: setting the value larger doesn't result in any significant savings.

(NB: what passes for makecab's "documentation" has an example where "1m" is used to stand for 1000000. This is wrong: using the abbreviation generates an error).

Using extract /a /d to process the entire cabinet chain reveals that precopy* is on one cabinet chain, while catalog3 through win98_74 is on a second cabinet chain. Chl99.cab, Win98_ol.cab, and mini.cab are separate.

So it seems that Microsoft created the source cabinets in two passes. First, they created a complete set of source cabs, from precopy1 to win98_74, using dummy layout.inf files. Then they took the layout file generated in that pass, sliced it into three, and ran a second pass to generate precopy*.cab with the real layout.inf files.

A closer look at the file dates shows that the following files share the same file date as layout*.inf, which is different from the file date for all the other files. Presumably these differently dated files are linked somehow, since they were all updated together: copy*.inf, del*.inf, ren.inf, and default.sfc.

With that as background, there are several hurdles to slipstreaming:

1. Windows setup copies the cabs to a temporary directory on the hard disk before it extracts their contents (remember this was in the age of 1x cd-rom drives). Precopy1 and Precopy2 are hard coded (you can find the strings in w98setup.bin). Cabs from catalog3 through driver20 are soft-coded in copy*.inf, predrv.inf, and setupc.inf, but don't appear to be hard coded. Cabs from win98_21 on are soft coded in setupc.inf.

So our makecab script has to ensure that two and only two precopy cabs are made, and that we will always have the same number of cabs regardless of the size of the updated source files. W98_slip does this by setting maxdisksize to CDROM and using new cabinet directives at the same points that new cabs began in the original. It then edits the three soft coded inf files because the resulting fileset was smaller due to some large files spanning several cabs in the original.

2. The layout.infs don't list the [sourcediskfiles] in the order in which they appear in the cabs. I don't know why this is, but it means that using the default layout.inf generated by makecab (which lists the files in the order in which they appear in the cabs) results in "cannot find file" errors during the file copy phase of setup. Again, I don't know why this is, but my best guess: the layout*.inf files are required to be in synch with the other files with the same timestamp (copy*.inf in particular).

So our makecab script has to be a relational script, which orders its layout.inf file differently from the order of files in the cabs, using ".Set GenerateInf" directives.

3. Relational .ddfs require all files you're compressing to be unique: you can't put command.com into precopy1.cab and again into base4.cab. This is exactly what Microsoft did (there are 3 files duplicated between precopy and base, and another file duplicated between the list of uncompressed setup files and the cabs). So w98_slip uses the workaround of putting the duplicate files in under different names during pass one, then editing the generated layout file to put the real names back, and putting the duplicates in under their own names during pass 2.

4. Things that may be a hurdle: some of the files in layout.inf have a CRC appended to them. For windows 98se, the CRC appears to be optional. That may not be so for ME. I know it's possible to have makecab append the crc to specified files in layout.inf using the "source_file /x=y" switch, but the makecab "documentation" is even less useful in explaining the /x=y switch than usual.

W98_Slip uses minitrue (an alternative to sed) to automatically generate the bulk of the makecab directive file on the fly. The advantage of this (besides tiny download size) is that it should be relatively easy to modify to work on other versions of the OS.

Edited by glaurung, 20 August 2006 - 08:22 AM.


#3
LLXX

LLXX

    MSFN Junkie

  • Banned
  • PipPipPipPipPipPipPipPipPip
  • 3,399 posts
  • Joined 04-December 05
Excellent write-up on the details of the Windows 9x setup distro package :thumbup

FYI 1,802,240 (1.72M) is actually the capacity of an obscure floppy format that Micro$oft created, but it was found that some floppy drives could not read it, so it was abandoned. I have attempted to recreate this format, and my floppy drives can read and format it fine, but other drives may have problems with 84 tracks.

Volume XTDTOOLS created 04-07-2004 4:16p
Volume Serial Number is CF64-C47A

	1,802,240 bytes total disk space
	1,802,240 bytes available on disk

	   32,768 bytes in each allocation unit
		   55 total allocation units on disk
		   55 available allocation units on disk
The exact parameters are 84 tracks and 21 sectors/track, 32k cluster size, one root directory sector, two fat sectors.

#4
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,852 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag
Yes,
I may add that besides hardware problems, this floppy format, as well as ANY floppy format with more than 80 tracks CANNOT be made under NT/2K/XP/2003 due to the HAL and drivers.

(and besides you cannot even properly format a disk under XP):
http://www.denispetrov.com/format144/

See for reference my post here:
http://www.serverele...wtopic.php?t=64
and Winimage's author Gilles Vollant:
http://www.winimage....lp/wini1a1y.htm

And some links to (dos/win9x) programs:
Nformat:
http://toastytech.co...es/nformat.html
fdformat:
ftp://ftp.simtel.net/pub/simtelnet/msdos/...til/fdfrm18.zip
SmartFormat:
http://members.tripo...ions99/tformat/
and to dcopy 2.8 (the one I use):
http://users.pandora...plications.html

There is also the 2M program that gives even better capacity (but it needs a special driver):
http://esca.atomki.h...c/utildisk.html
ftp://ftp.sac.sk/pub/sac/utildisk/2m30.zip
ftp://ftp.sac.sk/pub/sac/utildisk/2mgui19.zip


But I never heard about the 1,802,240 size, the math does not fit:
2x84x21x512= 1,806,336

:unsure:

Can you post more details?

jaclaz

#5
LLXX

LLXX

    MSFN Junkie

  • Banned
  • PipPipPipPipPipPipPipPipPip
  • 3,399 posts
  • Joined 04-December 05
Indeed, XP 'formatter' is a joke. All the formatting I do is with Fint13 from DOS.

A special driver is not needed to support >18 sectors/track, just set the floppy in BIOS as 2.88Mb.

1802240 is the formatted capacity, just like a "1.44Mb" floppy actually has 1457664 usable bytes but 1474560 actual bytes in sectors.

1802240 bytes = 3520 sectors of usable space
+ 512 bytes = 1 sector for root directory
+ 1024 bytes = 2 sector for 2 FATs
+ 2048 bytes = 4 reserved sectors
+ 512 bytes = 1 sector for superblock
= 1806336 bytes = 3528 sectors total

#6
glaurung

glaurung

    Newbie

  • Member
  • 34 posts
  • Joined 18-July 06

Excellent write-up on the details of the Windows 9x setup distro package :thumbup

FYI 1,802,240 (1.72M) is actually the capacity of an obscure floppy format that Micro$oft created, but it was found that some floppy drives could not read it, so it was abandoned. I have attempted to recreate this format, and my floppy drives can read and format it fine, but other drives may have problems with 84 tracks.


Thanks for the thumbs-up.

Well, that explains the size of the cabs; I suspect that this format, along with the DMF format, have abbreviations in makecab (like the the other floppy sizes) which aren't mentioned in the "documentation." Then again, there's a lot that's not mentioned, or mentioned only in the most obscure manner, in the makecab documentation.

#7
glaurung

glaurung

    Newbie

  • Member
  • 34 posts
  • Joined 18-July 06
Edited my original post to add instruction #3a, about how w98_slip expects some unnecessary files, such as setup.txt and setup*wav, to exist in the source.

#8
wizardofwindows

wizardofwindows

    Wizard of Windows

  • Member
  • PipPipPip
  • 443 posts
  • Joined 17-June 05
:thumbup outstanding piece of work thus far.be watching future developments

#9
LLXX

LLXX

    MSFN Junkie

  • Banned
  • PipPipPipPipPipPipPipPipPip
  • 3,399 posts
  • Joined 04-December 05


Excellent write-up on the details of the Windows 9x setup distro package :thumbup

FYI 1,802,240 (1.72M) is actually the capacity of an obscure floppy format that Micro$oft created, but it was found that some floppy drives could not read it, so it was abandoned. I have attempted to recreate this format, and my floppy drives can read and format it fine, but other drives may have problems with 84 tracks.


Thanks for the thumbs-up.

Well, that explains the size of the cabs; I suspect that this format, along with the DMF format, have abbreviations in makecab (like the the other floppy sizes) which aren't mentioned in the "documentation." Then again, there's a lot that's not mentioned, or mentioned only in the most obscure manner, in the makecab documentation.

The abbreviation is DMF168.

Also, I have found what appears to be the 'full' documentation for Diamond , as well as Diamond.exe, from an old Java SDK. Diamond must be the original program used by M$; unfortunately, the documentation and program are from 1994 so it probably does not have newer features, but supports a "Quantum" CompressionType. If you want I can upload it somewhere.

Quite a coincidence that MakeCAB and Diamond are both exactly 7 letters long.

Here are some of the interesting strings from Diamond.exe:

681984000 65535 CDROM DMF168 1716224 2048 16 1.68M 1457664 1250304 192 1.25M 1213952 512
224 1.2M 730112 720K 362496 1024 112 360K Set Option New InfWriteDisk InfWriteCabinet InfWrite InfEnd
InfBegin Dump Delete Define UniqueFiles SourceDir setup.rpt RptFileName ReservePerFolderSize
ReservePerDataBlockSize ReservePerCabinetSize 20 MaxErrors MaxDiskSize MaxDiskFileCount MaxCabinetSize
DCF InfSectionOrder InfHeader6 InfHeader5 %1** Diamond Version: %3 InfHeader4 InfHeader3 InfHeader2
InfHeader1 InfHeader InfFooter4 InfFooter3 InfFooter2 InfFooter1 CompressionMemory CompressionLevel
CompressionType Quantum Compression Level not in range (%1..%2): %3
Compression Memory not in range (%1..%2): %3
Microsoft (R) Diamond Disk Layout Tool - Version %1 Copyright (c) Microsoft Corp 1993-1994.
(32) 1.00.0520 (12/16/94) Compression will be slower. A few quarts low on memory. Compression will be
much slower. Critically short of memory.

From the documentation:

Quantum is a new compression technology that Microsoft obtained an unrestricted license to in early May, 1994. It achieves compressed file sizes 10-15% smaller than MSZIP, and Quantum will be the preferred compressor (possibly the only one) supported by Diamond. In order to achieve these impressive results, Quantum can require a fair bit of memory (up to 12Mb) at compress time, and even at decompress time (configurable from 1K to 2Mb), and Quantum gets its best results on large data streams. For this reason, cabinet files and Quantum are a great fit, because cabinet files with large folders ensure that Quantum is always compressing big blocks of data. The decompression memory requirements for Quantum is tunable in the Diamond directive file (see the CompressionMemory variable).

CompressionLevel=1 | 2 | ... | 7
Selects the Quantum compression level.
Default: .Set CompressionLevel=2 ; Default is level 2

The lowest setting is 1, and Quantum yields the least compression and runs the most quickly (for a given value of CompressionMemory). The highest setting is 7, and Quantum yields the highest compression, but runs for quite a long time.

See the table in the CompressionType variable definition for a comparison of various settings.

This variable is ignored if Compress is OFF or if CompressionType is not set to Quantum.

Examples:
.Set CompressionLevel=7 ; Set maximum compression level
CompressionMemory=10 | 11 | ... | 21 | 1024 | ... | 2097152
Selects the amount of memory required by Quantum at decompress time.
Default: .Set CompressionMemory=18 ; Default is 18 (256K)

The value can be specified as either a power of two exponent, or as a byte count. If a number in the range 10 to 21 is specified, Diamond raises 2 to this power, yielding memory sizes in the range 1024 (1Kb) to 2,097,152 (2Mb) bytes. If the number is in the range 1024 to 2097152, it is treated as a byte count, and is rounded up to a power of 2 (if it isn’t already).

See the table in the CompressionType variable definition for a comparison of various settings.

This variable is ignored if Compress is OFF or if CompressionType is not set to Quantum.

Examples:
.Set CompressionMemory=21 ; Set maximum compression memory



#10
oscardog

oscardog

    Member

  • Member
  • PipPip
  • 234 posts
  • Joined 29-June 06
LLXX If you could upload diamond somewhere it would be greatly appreciated, I was puzzled why i could not create cabs in parity with the setup ones

glaurung thanks very much for the slip.bat and the background info very useful

#11
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag
I have located "Microsoft ® Diamond Cabinet Builder - Version (32) 1.00.0540 (02/01/96)" in IEAK 3.2
It is here: Attached File  diamond.zip   62.62KB   135 downloads

Edit:
And what is interesting, there is three exactly identical files, just the name is different:
diamond.exe
diant.exe
diantz.exe

DIANTZ.EXE is part of Windows 2000 / XP / 2003 and it is almost identical to MAKECAB.EXE, even the help (in XP) is identical:
C:\WINDOWS\system32>diantz
Microsoft (R) Cabinet Maker - Version 5.1.2600.2180
Copyright (c) Microsoft Corporation. All rights reserved..

MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]
MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]

Petr

Edited by Petr, 21 August 2006 - 05:53 AM.


#12
Acheron

Acheron

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 988 posts
  • Joined 28-June 04
  • OS:XP Pro x86
  • Country: Country Flag
See also http://www.kyz.uklin.../cabextract.php for more information about Cab Compression history and extractors.
Say no to bloatware. Download Nero Lite!

#13
glaurung

glaurung

    Newbie

  • Member
  • 34 posts
  • Joined 18-July 06

Also, I have found what appears to be the 'full' documentation for Diamond , as well as Diamond.exe, from an old Java SDK. Diamond must be the original program used by M$; unfortunately, the documentation and program are from 1994 so it probably does not have newer features, but supports a "Quantum" CompressionType. If you want I can upload it somewhere.


I'd be interested in seeing the documentation. The exe, not so much.

Also, I seem to remember once seeing reference to a tool that would look at a cabinet file and automatically recreate the .ddf used to create it. If you found any sign of that in that old Java SDK, let me know.

#14
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,852 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag

Indeed, XP 'formatter' is a joke. All the formatting I do is with Fint13 from DOS.

A special driver is not needed to support >18 sectors/track, just set the floppy in BIOS as 2.88Mb.

1802240 is the formatted capacity, just like a "1.44Mb" floppy actually has 1457664 usable bytes but 1474560 actual bytes in sectors.

1802240 bytes = 3520 sectors of usable space
+ 512 bytes = 1 sector for root directory
+ 1024 bytes = 2 sector for 2 FATs
+ 2048 bytes = 4 reserved sectors
+ 512 bytes = 1 sector for superblock
= 1806336 bytes = 3528 sectors total


Thanks LLXX, do you also happen to know if it uses 1, 2 or 4 sector(s) cluster?
(the 1.68 DMF format differed from "normal" 1.68 as it had two sub-versions one DMF1024 with two sectors clusters and DMF2048 wit 4 sectors clusters)

jaclaz

#15
jimmsta

jimmsta

    computer janitor

  • Member
  • PipPipPip
  • 389 posts
  • Joined 04-May 05
  • OS:Windows 8.1 x64
  • Country: Country Flag

DIANTZ.EXE is part of Windows 2000 / XP / 2003 and it is almost identical to MAKECAB.EXE, even the help (in XP) is identical:

C:\WINDOWS\system32>diantz
Microsoft (R) Cabinet Maker - Version 5.1.2600.2180
Copyright (c) Microsoft Corporation. All rights reserved..

MAKECAB [/V[n]] [/D var=value ...] [/L dir] source [destination]
MAKECAB [/V[n]] [/D var=value ...] /F directive_file [...]

Petr


Diantz may be using an earlier version of the CAB compression spec. "21xx" is found throughout diantz, while makecab has "22xx" (hexadecimal values in file). The files are nearly identical. There's a small section of data within the exe that is approx 16bytes, which is different between the two files. This may be the algorithm used. I have no idea though, as I'm not a real hacker/programmer... :unsure:
Creator and Maintainer of BootZilla.org

#16
Petr

Petr

    Friend of MSFN

  • Member
  • PipPipPipPipPip
  • 981 posts
  • Joined 15-April 05
  • OS:98SE
  • Country: Country Flag

Diantz may be using an earlier version of the CAB compression spec. "21xx" is found throughout diantz, while makecab has "22xx" (hexadecimal values in file). The files are nearly identical. There's a small section of data within the exe that is approx 16bytes, which is different between the two files. This may be the algorithm used. I have no idea though, as I'm not a real hacker/programmer... :unsure:


My opinion is that it is just different compilation of the same source code.

Petr

#17
oscardog

oscardog

    Member

  • Member
  • PipPip
  • 234 posts
  • Joined 29-June 06
Thanks for the link Petr

Edited by oscardog, 21 August 2006 - 05:59 PM.


#18
RJARRRPCGP

RJARRRPCGP

    MSFN Expert

  • Member
  • PipPipPipPipPipPip
  • 1,192 posts
  • Joined 13-April 05
  • OS:XP Pro x64
  • Country: Country Flag

Excellent write-up on the details of the Windows 9x setup distro package :thumbup

FYI 1,802,240 (1.72M) is actually the capacity of an obscure floppy format that Micro$oft created, but it was found that some floppy drives could not read it, so it was abandoned. I have attempted to recreate this format, and my floppy drives can read and format it fine, but other drives may have problems with 84 tracks.

Volume XTDTOOLS created 04-07-2004 4:16p
Volume Serial Number is CF64-C47A

	1,802,240 bytes total disk space
	1,802,240 bytes available on disk

	   32,768 bytes in each allocation unit
		   55 total allocation units on disk
		   55 available allocation units on disk
The exact parameters are 84 tracks and 21 sectors/track, 32k cluster size, one root directory sector, two fat sectors.


It appears that most floppy disk drives are fine with it.
Asus P5QL Pro, Core 2 Duo E4500, eVGA GeForce 9500 GT with XP Pro x64 Edition -> Works great with Asus P5QL Pro!

#19
LLXX

LLXX

    MSFN Junkie

  • Banned
  • PipPipPipPipPipPipPipPipPip
  • 3,399 posts
  • Joined 04-December 05


Indeed, XP 'formatter' is a joke. All the formatting I do is with Fint13 from DOS.

A special driver is not needed to support >18 sectors/track, just set the floppy in BIOS as 2.88Mb.

1802240 is the formatted capacity, just like a "1.44Mb" floppy actually has 1457664 usable bytes but 1474560 actual bytes in sectors.

1802240 bytes = 3520 sectors of usable space
+ 512 bytes = 1 sector for root directory
+ 1024 bytes = 2 sector for 2 FATs
+ 2048 bytes = 4 reserved sectors
+ 512 bytes = 1 sector for superblock
= 1806336 bytes = 3528 sectors total


Thanks LLXX, do you also happen to know if it uses 1, 2 or 4 sector(s) cluster?
(the 1.68 DMF format differed from "normal" 1.68 as it had two sub-versions one DMF1024 with two sectors clusters and DMF2048 wit 4 sectors clusters)

jaclaz

I only tried to recreate this format, so I'm not sure of the original. I used 64 sectors/cluster.

Here is Diamond 1.00.0520 and doc: http://dump.stoleyou.../07cdc9948f.zip

#20
glaurung

glaurung

    Newbie

  • Member
  • 34 posts
  • Joined 18-July 06

Thanks for the link Petr
Today I have finally had time to get around to giving this a proper look and I have just completed an win9x install using modified cabs
For a test I replaced explorer.exe,comdlg32.dll and shell32.dll from Windows 95 into windows 98 cabs files Win98_27.cab,Win98_41.cab and Win98_45.cab. I then used a program called cabman2003 to place in the correct Cabinet Set Id and compressed them at LZX 21.


Googling cabman2003 gets me a number of pages in Chinese and Russian, which I can't read: can you point me to the home page of the software?

I could build the ability to slipstream the win95 explorer into w98_slip, but It's not high on my priority list because I no longer use the 95 shell myself. I used 98lite's "sleek" shell for years, but recently I've finally moved on to the "chubby" shell because now that I have a DVD burner, I'm occasionally dealing with multiple gigabytes of files, and the 95 explorer can't handle large directories well; between 2 and 3 gigabytes, it starts reporting the size of the selected folder or files incorrectly. Seeing the pie chart in the disk properties isn't important to me; seeing the actual size of the files I've selected is.

the cabs produced were somewhat larger and also smaller than the 1760kb of the other setup cabs. I then extracted COPY.INF, SETUPP.INF, PRECOPY.INF, MSINFO.INF, LAYOUT.INF,LAYOUT2.INF,LAYOUT3.INF from the cab files, I am not sure If all of these were necessary but I went and modified the necessary layout files and input the new files sizes of the 3 replaced files, not forgetting to modify LAYOUT.INF for the resultant change in the size of the other layout files.


If you're just replacing a file with another version of the same file, the only .inf files you need to worry about modifying, in my experience, are the layout* files. If you're adding a file, things get a more tricky: I think the only places you need to insert the new name are layout*, copy*, and the inf file whose filecopy section you want to add the new file into, but I could be wrong.

It does not seem to me that we need to worry about the 1760kb file size.SETUPP.INF was also modified to remove components. Setup completed after complaining about missing control.exe and a couple of other files which were spanned from previous and concurrent cabs. I hope to rectify this and start to add upated files to the cab set.


Agreed the 1760kb size is not important. Actually, come to think of it, w98_slip's use of .new cabinet instead of .set maxdisksize eliminates file spanning completely, which would then make it easier to undertake the kinds of experiments you're doing.

Edited by glaurung, 21 August 2006 - 05:35 PM.


#21
jaclaz

jaclaz

    The Finder

  • Developer
  • 14,852 posts
  • Joined 23-July 04
  • OS:none specified
  • Country: Country Flag
Sorry, LLXX, I have overlooked your previous reply, and have to correct it:

The abbreviation is DMF168.

No, the 1.68 DMF format is explained here:
http://www.winimage....lp/wini1a1y.htm

There are actually three 1.68 formats, all have geometry 2x21x80 and thus have a total of 1,720,320 bytes:
1) "normal" has 1 sector (512 bytes) cluster and 1 sector for boot, 2x10 sectors for FAT and 14 sectors for dirs, which allows for max 224 files in root, usable size is 1,702,400

2) DMF 1.68 "1024" has 2 sectors (1024 bytes) cluster and 1 sector for boot, 2x5 sectors for FAT and 1 sectors for dirs, which allows for max 16 files in root, usable size is 1,714,176

2) DMF 1.68 "2048" has 4 sectors (2048 bytes) cluster and 1 sector for boot, 2x3 sectors for FAT and 1 sectors for dirs, which allows for max 16 files in root, usable size is 1,716,224


Then there is the 1.72 format:
geometry 2x21x82, total size 1,763,328 bytes, 1 sector (512 bytes) cluster and and 1 sector for boot, 2x10 sectors for FAT and 14 sectors for dirs, which allows for max 224 files in root, usable size is 1,745,408



I suppose we can call the format you mentioned a "1.76 DMF", just like:
1,474,560/1024/1000=1.44
1,720,320/1024/1000=1.68
1,763,328/1024/1000=1.72
we have:
1,806,336/1024/1000=1.76

I think this is the biggest format that does not use some "trick" like the 2m formats or the IBM XDF 1.84 format.

It appears that most floppy disk drives are fine with it.

Actually, strange as it might seem, the opposite of "normality" is true.
Going beyond the 80th or in some cases 81th track appears to be a major problem with "brand name" drives, whilst "no name" ones behave better.
However these formats do push the drive to (and beyond) design limits, so they are not dependable.
Moreover, due to the drop in price of floppies (the media I mean), they appear to be of lesser quality than they used to be.
I have used for a certain period the Naslite software that uses a 1.72 floppy and I was able to get about one working floppy out of three using new "brand name" media, whilst I had about 90% success with a few years old "recovered from gargage bin" used floppies.

jaclaz

#22
os2fan2

os2fan2

    Advanced Member

  • Member
  • PipPipPip
  • 421 posts
  • Joined 09-September 04
I played around with the diamond package some time ago. It seems to be heavily driven by setup-like files.

I know that i did a fair bit of modifications to the Windows 95B package, largely to remove the ISP packages and a few other things. There was plan to integrate M!nus (ie a pruned P!us 95) into the package, but it only got so far.

One of the files you have to pull out is SETUPP.INF, as well as LAYOUT.INF. It's a horrible mess, none the same.

More later when i find the bones of the project...

:yes:

#23
LLXX

LLXX

    MSFN Junkie

  • Banned
  • PipPipPipPipPipPipPipPipPip
  • 3,399 posts
  • Joined 04-December 05
'M!nus'... good idea for a name :D

Indeed, the AOL etc. crap are useless and very much obsolete. In the standard 98se distro even if I uncheck 'online services' in custom install it still installs it and I have to manually delete afterwards. Also themes etc. are pure useless IMHO, you can get better skin/theme enhancements if you want.

#24
Eck

Eck

    Senior Member

  • Member
  • PipPipPipPip
  • 669 posts
  • Joined 17-February 05
Noooooo!!!

Not my Themes! I like those old things. Install the one's in Plus!98 too. Then I just add others I like.

Then I wind up being boring and just using default. But I like the choices. Big hard drives. Don't mind some bloat.

I even sometimes use the old AfterDark Screensavers, but now on XP. I found a couple of sites that have installers updated for XP. I only haven't tried them on 98 yet because of the resources they probably use. Talk about old stuff though! I never used them in the past. I didn't even know about them.

BadDog! Flying Toasters! Star Trek! Heh, heh. The neatest time waister's.
Epox EP8KRAIPRO AthlonXP3200+ NVidia GeForce 6600GT AGP Audigy 2 ZS Crucial 2x1024MB 3200 RAM

#25
MDGx

MDGx

    98SE2ME + 98MP10

  • Super Moderator
  • 2,678 posts
  • Joined 22-November 04
  • OS:none specified
  • Country: Country Flag

I even sometimes use the old AfterDark Screensavers, but now on XP. I found a couple of sites that have installers updated for XP. I only haven't tried them on 98 yet because of the resources they probably use. Talk about old stuff though! I never used them in the past. I didn't even know about them.

BadDog! Flying Toasters! Star Trek! Heh, heh. The neatest time waister's.

I own all versions of After Dark Screen Savers + Games ever sold for Windows 3.x/9x. Big fan, can you tell? ;)

Could you post [or email if not appropriate for this forum] the links to updated XP installers for AD?
Many thanks in advance.
Please click the blue E-mail link:
http://www.mdgx.com/form.htm

Thanks.




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users