Hi Eliot,
In hopes of documenting the various image formats now available, as well
as providing a means of registering new image format numbers in the future,
I put a new package "ImageFormat" in the VMMaker project on SqueakSource
(change set also attached). This consists of unit tests (ImageFormatTest)
and class ImageFormat. The idea is that as new image formats are created,
the new image format numbers would be implemented in class ImageFormat
and the unit tests would be updated to match.
Please let me know if this makes sense to you, and also if I have properly
captured the Cog/StackInterpreter usage.
Here is what is currently documented in the package:
Current image format version usage:
6502: A 32-bit image with no closure support and no Cog byte reversal (6502)
6504: A 32-bit image with closure support and no Cog byte reversal (6504)
6505: A 32-bit image with closure support and Cog byte reversal (6505)
68000: A 64-bit image with no closure support and no Cog byte reversal (68000)
68002: A 64-bit image with closure support and no Cog byte reversal (68002)
68003: A 64-bit image with closure support and Cog byte reversal (68003)
Current bit allocation in the image format version:
bit 1: requires platform byte order (Cog and StackInterpreter)
bit 2: used in base version numbers
bit 3: used in base version numbers
bit 4: used in base version numbers
bit 5: free bit
bit 6: used in base version numbers
bit 7: used in base version numbers
bit 8: used in base version numbers
bit 9: used in base version numbers
bit 10: free bit
bit 11: free bit
bit 12: used in base version numbers
bit 13: used in base version numbers
bit 14: free bit
bit 15: free bit
bit 16: free bit
bit 17: used in base version numbers
bit 18: free bit
bit 19: free bit
bit 20: free bit
bit 21: free bit
bit 22: free bit
bit 23: free bit
bit 24: free bit
bit 25: free bit
bit 26: free bit
bit 27: free bit
bit 28: free bit
bit 29: free bit
bit 30: free bit
bit 31: free bit
bit 32: extension bit (reserved)
Cheers,
Dave