On May 30, 2006, at 5:02 AM, Bert Freudenberg wrote:
What a lovely weekend! I have spent the majority of it indoors, porting Squeak 2.3 to the Amiga!
One weekend? Nice :)
I must give credit to the VM documenters -- it really is as easy as they say it is. Plus, the SAS/C compiler on the Amiga is really nice, and ANSI-compliant, and I have the printed documentation for it, which helps a lot.
I am obviously having some trouble with graphics (specifically, ioShowDisplay), but the screenshot is recognizably showing Squeak asking for its .changes file. To an outsider, though, it may look as if something is *broken*... ;)
Oh I guess every VM hacker has seen this :) You might just copy the bit depth conversion routines from another VM.
Yes. I am working on this. I think the main issue is Squeak's PixMaps / BitMaps being little-endian, and the Amiga being big-endian. I am looking at the UNIX-VM source for tips (I found a function there for 8-bit depth to 8-bit depth blits). What's strange is the Squeak 2.3 VM seems to not use ioHasDisplayDepth(), so if I want to implement 16-bit/32-bit display depths on my Amiga VM I might have to move up to 2.4+...
You may wonder why I used 2.3 ... It seemed to be the best choice for a simple, well-documented, starting-from-scratch VM-building scheme, with little-to-no dependence on plug-ins. I am scared of VMMaker (it seems to be designed to create/tweak a VM for an already-existing platform, versus a new one?), plus there is already much documentation on Interpreter>>translate. Of course, I am ignorant.
I think you're the first one porting Squeak to a new platform after VMMaker. So there might be indeed some overly helpful features in there.
Or is it not VMMaker, but rather that the VM got more complicated because we rely a lot on modules nowadays? I'm not quite sure what we actually need for a minimal functioning Squeak port.
It seems to be both of these are the issue for me. It is much easier to get the VM up-and-running when I don't have to worry about compiling dynamic libraries and making sure they mesh with the Squeak modules system. The Amiga has great support for dynamic libraries, but I am no whiz with them.
Overall, this has been a pretty fun pastime. I can continue posting progress reports to the list if anyone is interested. I have to figure out this PixMap -> BitMap thing, but I also have to get to work in the morning... ;)
Sure, please, keep us posted!
And, to get the attention of most people interested in the VM (even those who do not follow squeak-dev closely) you should post to the vm-dev list, too:
http://discuss.squeakfoundation.org/cgi-bin/ezmlm-browse?list=vm-dev
Done.
Thanks, Tim