Thanks for the reply, GX1_Man.
I've already tried a 'repair install' as described in the article but it just kept going around in circles, either saying that it had tried once before and failed, or that it couldn't run setup in safe mode so it would restart. Since my OP I also managed to get a Linux-based registry editor to run. It seems to work - I tested it by resetting the AutoBoot flag and then XP just crashes on boot with the message below - but I now have no idea what I might need to edit with it to stop the crash. I'll continue looking at registry editors as I cherish the hope that there will be one which runs under XP and like the Linux one can edit the registry on a drive other than the boot drive. I have a boot log which seems to stop suddenly after loading a parallel port driver, but more investigation is needed. I tried enabling debugging from the F8 menu but the result seems to be the same.
As I said in my OP I've done a fresh install on a spare hard drive from the XP CD. It works fine, but to continue with the fresh install means reinstalling dozens of other software packages as well, not to mention transfering all the data. I'd rather not have to do that since I don't know exactly what I'd have to do, it will certainly take a long time, and I'm not sure whether it will result in an exact replica of the original anyway. I understand that if I do a fresh install on the original drive I'll blow away all its existing contents, is that right?
The plan to simply take the original hard drive (which has nothing wrong with it of course - the problem was a motherboard fault) and put it in another PC seemed to be very close to working except that it wouldn't boot other than in safe mode. But my hacking around with it to try to get it to boot normally has simply made things worse.
I was not aware that there was such a tight bonding between an individual copy of XP and the machine onto which is first installed. It's a shame that XP is tied to the machine which died, because it's, well, dead! Looks like I might have to talk to Microsoft on Monday morning.
Thanks again - any other suggestions will still be welcome.
The crash message is [snipped Microsoft BoilerPlate] STOP: 0x0000007E (0xC0000005, 0xF761C750, 0xF78A7430, 0xF78A712C)