Friday, 28 June 2013

Description of txtsetup.oem files for F6 floppy disks for Windows XP Mass Storage drivers

When you make your own txtsetup.oem file, you can just combine several txtsetup.oem files by simply joining them in Notepad.

There are some rules for txtsetup.oem and I will explain the syntax by highlighting the bits that need to match:

KEY
DriverKey - different Config sections can be defined for each driver
Service      - matches the driver name (convention that drivers use)
ID              - ID of the device which may have more than one PCI ID

So in the txtsetup.oem file below, the keys which are the same colour need to match each other. You may find that in some txtsetup.oem files, both the ID and the DriverKey are the same, but they don't need to be!
[Disks]
d1="DPMS Installation Disk by chenall(diskd)",\disk1,\

[scsi]
iastor7="Intel ICH9/ICH10 SATA AHCI/RAID RST 11.2"


[Files.scsi.iastor7]
inf=d1,iaAHCI.inf
catalog=d1,iaAHCI.cat
driver=d1,
iastor.sys,iastor6

[HardwareIds.scsi.iastor7]
id="PCI\VEN_8086&DEV_3B29&CC_0106","iastor"


[Config.iastor6]
value = parameters\PnpInterface,5,REG_DWORD,1

[Defaults]
scsi=iastor7

If you want to specify a default driver, just have one entry (as shown) in the [Defaults] section and only have one [Defaults] section in the whole file.
\disk1 is a file that must be on the source F6 floppy disk. XP will identify which floppy the driver is on by looking for this file.
The PCI IDs used in txtsetup.oem is NOT checked by Setup - whatever driver you tell it to load is loaded by Setup - if the driver reports that if failed to load or recognise your hardware, Setup will report a problem.

If you want to add more txtsetup.oem files, just add them on to the existing txtsetup.oem file, one after the other (but just have one [Defaults] section).

Note that the driver.sys name MUST match the 'service' name used in the HardwareID driver line.

You can only have one driver= line (any others will be ignored).

Note that the (single) driver.sys file specified in the driver= line will be the one copied over to the hard disk. Therefore, this needs to be the one that is mentioned in the INF file, otherwise XP GUI Mode setup will complain about a driver missing from C:\Windows\OEMDir at about the 34 minute mark!

However, if you want to copy across more driver files than just the one allowed per section (or any type and number of extra files), just add more 'catalog=d1,fred.sys' lines, as many as you like! The files specified will then be copied across to the hard disk C:\Windows\OEMDir folder.

For FiraDisk:

[Disks]
d1="DPMS Installation Disk by chenall(diskf)",\disk1,\ 
[scsi]
firadisk=FiraDisk_Driver
[HardwareIds.scsi.firadisk]
id="PCI\firadisk","firadisk"
[Files.scsi.firadisk]
inf=d1,firadisk.inf
catalog=d1,firadisk.cat
driver=d1,firadisk.sys,firadisk
[Defaults]
scsi=firadisk

Loading two drivers automatically (without pressing F6)

You can get XP to automatically load by default both an AHCI driver AND FiraDisk by having almost IDENTICAL floppy disks each containing ALL of the files needed by both the AHCI driver and the FiraDisk driver. Both disks should have the same identifying disk tag file (e.g. disk1 in this case).

The ONLY difference is that in one txtsetup.oem you set the [Defaults] section to your AHCI driver, and on the other txtsetup.oem file you set the [Default] to Firadisk.

(in fact, the txtsetup.oems don't have to have the non-default sections - e.g. on the FiraDisk default txtsetup.oem you can remove all the AHCI driver sections if you want to).

XP text-mode setup will get confused if you don't use the same disk name tag file for both disks and have the same files on both disks, so you need to have all the driver files on both disks so that 'Drive A:' (which is whatever it accessed last just before the 'copyfiles' stage) will always contain the correct files when it tries to copy them from the F6 floppy just after formatting the internal hard disk. (It is just possible to have different disk tag files but you will still need both sets of drivers on each disk and you have to swap over the disk tags (i.e. disk0 oemsetup has 'disk1' as a tag and disk1 oemsetup has 'disk0' as a tag). It is MUCH easier just to use the same tag file and same contents on both disks!

For more details about txtsetup.oem syntax, see here - but it does not mention the fact that the driver.sys name must be the same as the SERVICE name.

I hope this saves someone hours of work!

cheers


Steve