I've downloaded versions of CodeWarrior from Gold 8 (1996) through Pro 4 (1998) and as far as I can tell from reading the documentation, there were absolutely no changes to the 680x0 stuff in that time period. Which is a real shame, because I suspect adding those extra addressing modes to the assembler and making it feature complete would not have been very complicated -- I'm guessing less than a day of engineering effort. Considering that 68020 Macs came out in 1987, I really find it peculiar they never got around to doing that.
Personally, I really like Symantec C++. IIRC, I only switched to CodeWarrior because the version of Symantec C++ I had (version 7) lacked MacTCP headers, which I needed for this project and I also assumed CW was better since it came later.
Now that I have some more experience with both, I find CodeWarrior is lacking in the following things:
- It lacks an inline assembler (you can't mix C++ and assembly in the same function like Symantec C++ can)
- I've never been able to build an INIT using CodeWarrior Gold 8 (this is in part because of a possible bug in the version I have and also because #1 makes it harder)
- The compiler seems to use only three data registers, D0-D2. I do not know whether this is standard for the compilers of the era, but the 680x0 code CW generates can be beat by hand-coded assembly by anywhere from two to ten times, which is pretty pathetic!
I think now that I have more experience, it might be worthwhile to see if I can go back to Symantec C++ and see how it really compares. I do not know whether it supports 68020 instructions, but if it does, the issue with the MacTCP headers can probably be solved, while fixing the shortcomings in CodeWarrior cannot.
Maybe a fan-made "Symantec C++ Reloaded" needs to be cobbled together with updated header files from Apple or from MetroWerks so it could be the ultimate environment for 680x0 hacking!
It may also be useful to see whether a project like
Retro68 might be the way to go. I am personally curious whether a modern gcc toolchain can optimize 680x0 code better, but since I prefer to develop *within* a classic environment with tools like ResEdit, I haven't really had the courage to try Retro68 yet.