This code should be very portable, except:

1) The code sometimes uses structural assignment.  That is, it'll sometimes
   say "a=b", where a and b are struct's of the same type, instead of
	using a function that copies each field of the struct
2) The blinking cursor in the curses interface does I/O from a signal
   handler.  If your OS doesn't like I/O from a signal handler, you could
	tear the blink out of curses-graphics.c or use line-graphics.c instead.
	I may eventually do a cgoban interface.
3) I've assumed that calling isupper with a nonalphabetic argument "works".
   Any compiler that doesn't handle this is badly broken, but I've heard
	that some don't deal with it.  I have not assumed that tolower works
	with non-alpha arguments.