Thanks Tobias, should have mentioned that myself.
And, just to please Tobias, Mark and Dave especially, an 11,624 line BASIC solution to getting the zip program into an emulator is now on the same page...
Now I should
really get slagged off for overkill on the online chat tonight - will probably be on about 9pm UK time for the slaughter...see you all there
Actually, the logic behind this is extremely simple, despite the size of the program, so simple I wish I'd thought of it years ago (well, actually I did, back in 2011 IIRC).
One of the QL file formats which survive Windows and almost any other operating system is (you've guessed it) a QL BASIC program. So I wrote a QL BASIC program called Job2Bas_bas which simply converts a QL executable program (in simple words, a QL executable is a QL program or "job" you can start with an EXEC or EXEC_W command) into a QL BASIC program! You just transfer this to the emulator, run it, and it recreates the original program, bypassing the entire issue of lost headers.
So, to transfer a program file, run it through Job2bas, transfer it to the emulator, run the program on the emulator, program rebuilt, job done.
And in case you're wondering where the 11,624 lines of BASIC come in...
Job2Bas works by converting the original program into DATA statements in a BASIC program. When you run zip22_bas (or whatever) a long series of POKEs rebuild the original program for you.
So never let it be said that you can't solve a little problem without nearly 12,000 lines of BASIC