Patch tint 0.03b to be usable as coreboot payload, linked against
the libpayload library.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>

diff -Naur tint-0.03b.orig/config.h tint-0.03b/config.h
--- tint-0.03b.orig/config.h	2001-12-08 00:03:24.000000000 +0100
+++ tint-0.03b/config.h	2008-04-11 22:19:35.000000000 +0200
@@ -29,7 +29,16 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */

+#include <libpayload.h>
+#include <curses.h>
+#define random(x) rand(x)
+#define srandom(x) srand(x)
+#define curs_set(x)
+
+
 /* Score file */
+#if 0
 const char scorefile[] = SCOREFILE;
+#endif

 #endif	/* #ifndef CONFIG_H */
diff -Naur tint-0.03b.orig/engine.c tint-0.03b/engine.c
--- tint-0.03b.orig/engine.c	2005-07-17 13:26:22.000000000 +0200
+++ tint-0.03b/engine.c	2008-04-11 22:19:35.000000000 +0200
@@ -27,8 +27,12 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */

+#include "config.h"
+
+#if 0
 #include <stdlib.h>
 #include <string.h>
+#endif

 #include "typedefs.h"
 #include "utils.h"
diff -Naur tint-0.03b.orig/io.c tint-0.03b/io.c
--- tint-0.03b.orig/io.c	2001-12-07 16:48:20.000000000 +0100
+++ tint-0.03b/io.c	2008-04-11 22:19:35.000000000 +0200
@@ -27,9 +27,13 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */

+#include "config.h"
+
+#if 0
 #include <stdarg.h>		/* va_list(), va_start(), va_end() */
 #include <sys/time.h>	/* gettimeofday() */
 #include <unistd.h>		/* gettimeofday() */
+#endif

 #include <curses.h>

@@ -70,7 +74,11 @@
 /* Initialize screen */
 void io_init ()
 {
+   curses_enable_serial(0);
+   curses_enable_vga(1);
    initscr ();
+   halfdelay(1);
+   timeout(1);
    start_color ();
    curs_set (CURSOR_INVISIBLE);
    out_attr = A_NORMAL;
@@ -176,11 +184,17 @@
 /* Read a character. Please note that you MUST call in_timeout() before in_getch() */
 int in_getch ()
 {
+#if 0
    struct timeval starttv,endtv;
+#endif
    int ch;
+#if 0
    timeout (in_timeleft / 1000);
    gettimeofday (&starttv,NULL);
+#endif
    ch = getch ();
+   mdelay(150);
+#if 0
    gettimeofday (&endtv,NULL);
    /* Timeout? */
    if (ch == ERR)
@@ -198,6 +212,7 @@
 		in_timeleft -= endtv.tv_usec;
 		if (in_timeleft <= 0) in_timeleft = in_timetotal;
 	 }
+#endif
    return ch;
 }

diff -Naur tint-0.03b.orig/Makefile tint-0.03b/Makefile
--- tint-0.03b.orig/Makefile	2005-07-17 13:30:54.000000000 +0200
+++ tint-0.03b/Makefile	2008-04-11 22:19:35.000000000 +0200
@@ -28,6 +28,36 @@
 #  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 #  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+LIBPAYLOAD_DIR := ../libpayload
+CC := $(LIBPAYLOAD_DIR)/bin/lpgcc
+AS := $(LIBPAYLOAD_DIR)/bin/lpas
+# CFLAGS := -Wall -Werror -Os
+CFLAGS := -Wall -Os
+TARGET := tint
+OBJS := $(TARGET).o engine.o io.o utils.o
+
+all: $(TARGET).elf
+
+$(TARGET).elf: $(OBJS)
+	$(CC) -o $@ $(OBJS)
+
+%.o: %.c
+	$(CC) $(CFLAGS) -c -o $@ $<
+
+%.S.o: %.S
+	$(AS) --32 -o $@ $<
+
+clean:
+	rm -f $(TARGET).elf *.o
+
+distclean: clean
+
+
+
+
+
+ifdef $(UNUSED)
+
 #CROSS = arm-linux-

 bindir = $(DESTDIR)/usr/games
@@ -110,3 +140,4 @@
 distclean: clean
 	$(MAKE) -C debian clean

+endif
diff -Naur tint-0.03b.orig/tint.c tint-0.03b/tint.c
--- tint-0.03b.orig/tint.c	2005-07-17 13:26:43.000000000 +0200
+++ tint-0.03b/tint.c	2008-04-11 22:19:35.000000000 +0200
@@ -27,6 +27,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */

+#if 0
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
@@ -34,6 +35,7 @@
 #include <pwd.h>
 #include <sys/types.h>
 #include <unistd.h>
+#endif

 #include "typedefs.h"
 #include "utils.h"
@@ -321,6 +323,7 @@
    time_t timestamp;
 } score_t;

+#if 0
 static void getname (char *name)
 {
    struct passwd *pw = getpwuid (geteuid ());
@@ -337,7 +340,9 @@
 		name[NAMELEN - 1] = '\0';
 	 }
 }
+#endif

+#if 0
 static void err1 ()
 {
    fprintf (stderr,"Error creating %s\n",scorefile);
@@ -349,10 +354,11 @@
    fprintf (stderr,"Error writing to %s\n",scorefile);
    exit (EXIT_FAILURE);
 }
+#endif

 void showplayerstats (engine_t *engine)
 {
-   fprintf (stderr,
+   printf (
 			"\n\t   PLAYER STATISTICS\n\n\t"
 			"Score       %11d\n\t"
 			"Efficiency  %11d\n\t"
@@ -360,6 +366,7 @@
 			GETSCORE (engine->score),engine->status.efficiency,GETSCORE (engine->score) / getsum ());
 }

+#if 0
 static void createscores (int score)
 {
    FILE *handle;
@@ -394,7 +401,9 @@
    fprintf (stderr,"%s",scoretitle);
    fprintf (stderr,"\t  1* %7d        %s\n\n",score,scores[0].name);
 }
+#endif

+#if 0
 static int cmpscores (const void *a,const void *b)
 {
    int result;
@@ -412,7 +421,9 @@
    /* timestamps is equal */
    return 0;
 }
+#endif

+#if 0
 static void savescores (int score)
 {
    FILE *handle;
@@ -490,11 +501,13 @@
 	 }
    fprintf (stderr,"\n");
 }
+#endif

           /***************************************************************************/
           /***************************************************************************/
           /***************************************************************************/

+#if 0
 static void showhelp ()
 {
    fprintf (stderr,"USAGE: tint [-h] [-l level] [-n]\n");
@@ -504,9 +517,11 @@
    fprintf (stderr,"  -d           Draw vertical dotted lines\n");
    exit (EXIT_FAILURE);
 }
+#endif

 static void parse_options (int argc,char *argv[])
 {
+#if 0
    int i = 1;
    while (i < argc)
 	 {
@@ -536,10 +551,12 @@
 		  }
 		i++;
 	 }
+#endif
 }

 static void choose_level ()
 {
+#if 0
    char buf[NAMELEN];

    do
@@ -549,6 +566,8 @@
 		buf[strlen (buf) - 1] = '\0';
 	 }
    while (!str2int (&level,buf) || level < MINLEVEL || level > MAXLEVEL);
+#endif
+	level = 1;
 }

           /***************************************************************************/
@@ -663,8 +682,15 @@
    if (ch != 'q')
 	 {
 		showplayerstats (&engine);
+#if 0
 		savescores (GETSCORE (engine.score));
+#endif
 	 }
+   mvprintw(10, 10, "Bye.");
+   refresh();
+   halt();
+#if 0
    exit (EXIT_SUCCESS);
+#endif
 }

diff -Naur tint-0.03b.orig/utils.c tint-0.03b/utils.c
--- tint-0.03b.orig/utils.c	2001-12-07 16:49:19.000000000 +0100
+++ tint-0.03b/utils.c	2008-04-11 22:19:35.000000000 +0200
@@ -27,9 +27,13 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */

+#include "config.h"
+
+#if 0
 #include <stdlib.h>
 #include <time.h>
 #include <limits.h>
+#endif

 #include "typedefs.h"

@@ -41,8 +45,11 @@
 #ifdef USE_RAND
    srand (time (NULL));
 #else
+#if 0
    srandom (time (NULL));
 #endif
+   srandom (123);
+#endif
 }

 /*
@@ -61,6 +68,7 @@
  * Convert an str to long. Returns TRUE if successful,
  * FALSE otherwise.
  */
+#if 0
 bool str2int (int *i,const char *str)
 {
    char *endptr;
@@ -69,3 +77,4 @@
    return TRUE;
 }

+#endif
