What I want to achieve: differentiate between STE in 1040 case and Mega STE to detect if the Enhanced Joystick Ports are present to use Jagpads.3.7.2.603 Cookie, _MCH
Machine type
The upper WORD describes the computer family, the lower serves for finer distinctions.
High Low Type
0x0000 0x0000 Atari ST (260 ST,520 ST,1040 ST,Mega ST,...)
0x0000 0x4D34 Medusa T40 without SCSI
0x0001 0x0000 Atari STE (1040 STE, ST Book, STylus/STPad)
0x0001 0x0010 Mega STE
0x0001 0x0100 Sparrow (Falcon pre-production machine)
0x0002 0x0000 Atari TT or Hades
0x0002 0x4D34 Medusa T40 with SCSI
0x0003 0x0000 Atari-Falcon030
0x0004 0x0000 Milan
0x0005 0x0000 ARAnyM >=v0.8.5beta
The lower WORD serves for finer distinctions, and is defined only for the STE models at present. This can be:
0x001 = ST Book or STylus
0x002 = ST Book
0x003 = STylus
0x008 = STE with IDE hardware
If the value is -1, then it's a case of non-ST-compatible hardware. In that case all hardware accesses should be avoided.
In the past I only checked for the cookie of 0x00010000 (or 0x00030000 for Falcon) which didn't lead to further bug reports.
I now wonder
a) if I need to check for the 0x00010008 (STE with IDE hardware) too? Is this value really present in TOS 1.6 and up as well as EmuTOS?
b) Do common IDE implementations affect this or is it detected and configured on the fly?
c) How would the value look for ST Book etc with IDE Interface (I am even not aware if this is actually physically possible)
I would like to avoid to install trap handlers to probe hardware ports if possible.
Thank you for a serious discussion!