I was just doing some more investigating. I think I have a grip on things now!
It seems the problem in the copyfiles stage (after formatting) is that it expects the 'current' floppy drive A: to have the correct driver files.
The 'current' drive A: is whatever was accessed last after selecting the drivers using F6 + S and then it loading the drivers before getting to the EULA screen.
We have two disks fd0 and fd1
fd0 'disk0' tag file txtsetup.oem has firadisk as default
fd1 'disk1' tag file txtsetup.oem has iastor as default
In F6 we load iastor and firadisk and then the drivers are loaded (not sure what order..) so we can see the internal hard disk to format it.
Now in copy-files textmode stage after formatting has taken place, it tries to find the drivers so it can copy them over to the hard disk. So it looks for a disk0 tag file on the current drive A: - if present it copies over the sys/inf/cat files (if not present it stops and asks you to insert the correct disk).
If the disk0 tag was present and the file copy was successful, it now looks for the disk1 tag on the current drive - it does not find it so it asks you to insert the correct disk!
So the problem seems to be that at the Copyfiles stage, XP does not have any concept of floppies A: and B: - just the current 'drive A:'!!!
So the way I got round this was:
1. fd0 and fd1 have identical files on them. The tag file is identical (e.g. disk1) and the other driver files are identical
2. The only difference is that one txtsetup.oem has a [Defaults] section for firadisk and the other txtsetup.oem file has a [Defaults] section for iastor
So that 'advice' about having separate disk tag files was wrong, it actually makes things worse (unless you have all the tag files on both floppies)!
Also, for txtsetup.oem, I found that you can have as many [xxxxx] sections as you like and in any order you like! It will just read them all. The only exception is you should have only one [Defaults] section. This makes making hybrid txtsetup.oem F6 files really easy! Just concatenate all the oemsetup.inf files together in one big file!
Only the first entry in the [Defaults] section is valid.
You can have only one driver=disk.filename entry in the [Files.scs.ID] section any others will be ignored (so multiple drivers are not possible).
During the development of this, I found lots of bugs in chenalls dpms.bat (one of which fails to copy the .sys file to the floppy so that it fails in GUI-mode!).
This took me days to work out (1 day wasted due to me breaking my working code and not realising it! ) so I hope this helps somebody else!