Symantec C++ 6.0 or 7.0 (or THINK C 5 or 6)(1993): This compiler is excellent for small, rapidly made projects, has a serviceable text editor and includes (if you get Symantec C++) a program called "THINK Reference" which is an invaluable tool where you can simply punch in the first letters of any standard C, Mac Toolbox function, variable type (a lot were defined for the universal mac headers) or function parameter. It then loads up a nice informative page on that and sometimes includes an example code. This is much more useful than having the Inside Macintosh books.

Particularities: Remember to add the Macintosh library called MacTraps (contained somewhere in the directory structure of the compiler) if you are to use some of the Mac's ROM and system resources (which is all the time), such as Quickdraw, Event Manager, Window Manager and numerous others (check out my notes on the Inside Macintosh books)).

This compiler uses a "universal headers" syntax for standard "mac" C functions. For example, in a 1985 book on C Mac programming that predated this standard, all functions would be strictly in lowercase letters. In the universal headers however, function names take capital letters at the start of every word (e.g.: DrawString, MoveTo, NewWindow, etc). Paramaters, on the other hand, have their first word take a lowercase letter and the following take a capital one: everyEvent, portRect, fsFromMark. A lot of new variable types are defined for your convenience, but they are all based on the basic C types such as short, char, int. One thing to note is that you don't have to include all the standard mac headers you'll be using (which was an annoyance in older compilers), they are all included by default (an default option in the compiler takes care of that).

Another roadblock is that many functions contained in the Mac header files (e.g. quickdraw.h) use Pascal string types, and so this forces you to convert the strings you use in "normal C" into Pascal format strings. There are functions to convert from one format to another; there's also a way to bypass the conversion but this works only for strings made of pure text. Read about the two methods here.

Last, but not least: names for your files. The project file should end with a dot followed by the "pi" symbol, done on the keyboard with option-P. The names of your ".c" files are up to you entirely. If you want to include ressources in your application (such as dialogs, windows, sounds, PICTs, etc) create it using ResEdit or Resorcerer, and name it with the same name as the project file, but add the following second ending: dot followed by "rsrc". Download a few of my demos to see for yourself how it's done.

Macintosh Programmer Workshop 3.5 (MPW; available in Apple's FTP. I hesitate to give the exact address, as it changes often. At the time of this writing, it was under ftp://ftp.apple.com/developer/Tool_Chest/Core_Mac_OS_Tools/MPW_etc./. You'll see 2 main folders: MPW-GM which stands for Gold Master, which is a full stable version. MPW-PR is comprised of the files which are part of the Pre-release, and is not a full version. Get the MPW-GM one. You need a fairly large amount of space (in the vicinity of about 70-90 megs), so to program stuff for System 6 under this program, you'll need a much more recent mac, or an emulator on a modern PC that runs at least System 7. It worked fine in System 7.5).

MPW is a powerful tool that can do many things you'll probably never need. For our purpose, which is simply to make a game, you can learn everything you need in a single sitting. It is fairly straightforward to compile and link a program into a piece of 68k code, but the main disadvantage is that you'll wade through lots of functions that are pertinent to color enhanced routines in the header files, for example. There are very few demo programs that come with it. Combined with the fact that it's rather bulky, MPW might ward off some enthusiasts. But, it is your standard, free access to old Macintosh programming.

Last update: 10.23.05