[comp.sys.atari.st] Chess, curses and Megamax

jmg@cernvax.UUCP (jmg) (06/05/87)

Since someone posted the chess program, someone else the curses package,
I thought to try to get the two together via Megamax. Various problems,
which some people might have fixes for.

1. The curses package has a routine called overlay. However, Megamax
   uses this as a keyword for its own overlays. Thus, the header
       overlay()
   is rejected because Megamax expects a string after it! Will it be
   fixed in Megamax 2? Will Megamax 2 ever exist? Stay tuned (until 1990?).

2. The chess program uses scanw and printw. They are supposed to be in
   curses, but ain't in this ST version.

3. You also need bzero and time routines. bzero is easy to frig, and time.c
   was recently posted (but it includes getenv, which Megamax equally
   does not have, plus a source code bug which Megamax rightly resents).

4. Even fixing all of the above, two mushrooms. I suspect that the curses
   package compiled under Megamax is not yet right.

If anybody has anything to help all this (debugged curses, library
routines not in the normal Megamax library, Megamax 2) I would be happy
to know.

tony@wldrdg.UUCP (06/09/87)

In article <491@cernvax.UUCP>, jmg@cernvax.UUCP (jmg) writes:
> Since someone posted the chess program, someone else the curses package,
> I thought to try to get the two together via Megamax. Various problems,
> which some people might have fixes for.
> 
> 1. The curses package has a routine called overlay. However, Megamax
>    uses this as a keyword for its own overlays. Thus, the header
>        overlay()
>    is rejected because Megamax expects a string after it! Will it be
>    fixed in Megamax 2? Will Megamax 2 ever exist? Stay tuned (until 1990?).

I got the curses library working with Megamax, and I did have to fix
a couple of bugs to do it. For "overlay" I just changed the name to
woverlay().

> 2. The chess program uses scanw and printw. They are supposed to be in
>    curses, but ain't in this ST version.

These are easy to implement by using the sprintf and sscanf routines
combined with other curses calls.

> 3. You also need bzero and time routines. bzero is easy to frig, and time.c
>    was recently posted (but it includes getenv, which Megamax equally
>    does not have, plus a source code bug which Megamax rightly resents).

The chess program really wants a second counter, so I wrote a small
routine to grab the 200Hz counter value (system variable) and divide by 200.

> 4. Even fixing all of the above, two mushrooms. I suspect that the curses
>    package compiled under Megamax is not yet right.

Some of the bugs I fixed involved pointer manipulation so the bombs aren't
surprising. I also worked on the getstr routine which had a few
problems.

> If anybody has anything to help all this (debugged curses, library
> routines not in the normal Megamax library, Megamax 2) I would be happy
> to know.

I got the chess program working with curses, and then started doing some
more hacking. I now have a version that displays the board graphically
and still uses curses for the text portions of the screen.

I'll get my stuff together and post it in the next couple of days. I'll
first post the Megamax curses source. Following that will be the source
for chess, and a binary.

Tony Andrews
ihnp4!onecom!wldrdg!tony
Wildridge Consulting, Inc.
Boulder, CO