On Tue, 9 Jun 2015, John Elliott wrote:

>> If you can mark the EXEs as something other than MZ, you could perhaps
>> make a TSR loader stub that loads an x86 emulator on demand to run EXE
>> files.
>>
>> COM... I think you're gonna be stuck with using only an EXE format because
>> trying to detect a COM file by architecture is fraught with peril.
>
>  I'd suggest using 0xC3 0x00 as a magic number for any non-8086 executable.
> Or, for preference, using a 4-byte magic number: 0xC3 0x00 0x00 followed by
> a byte giving the supported CPU architecture. Then the logic in the loader
> would be:
>
> 0xC3 0x00 0x00 <suitable architecture>   -> run as native EXE
> 0xC3 0x00 0x00 <unsuitable architecture> -> return an error
> 0x4D 0x5A   (or 0x5A 0x4D)               -> run in emulator as x86 EXE
> anything else                            -> run in emulator as x86 COM
>
>  The reason for using 0xC3 0x00 as the magic number is that no useful
> DOS COM file will start with those bytes (0xC3 is x86 for RET). The extended
> sequence 0xC3 0x00 0x00 also rules out CP/M-80 COM files, which might start
> with 0xC3 but won't follow that with two zeroes.
>
>

Do "ZM" EXEs actually exist?

I've also been curious as to what the format is for .TOS binaries (since 
GEMDOS has such a similar API to MS-DOS).

-uso.

------------------------------------------------------------------------------
_______________________________________________
Freedos-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freedos-devel

Reply via email to