diff -rupN tint-0.05/config.h tint/config.h
--- tint-0.05/config.h	2001-12-08 00:03:24.000000000 +0100
+++ tint/config.h	2021-02-09 08:00:00.000000000 +0200
@@ -29,7 +29,15 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
+#include <libpayload.h>
+#include <curses.h>
+
+#define curs_set(x)
+#define USE_RAND
+
 /* Score file */
+#if 0
 const char scorefile[] = SCOREFILE;
+#endif
 
 #endif	/* #ifndef CONFIG_H */
diff -rupN tint-0.05/engine.c tint/engine.c
--- tint-0.05/engine.c	2005-07-17 13:26:22.000000000 +0200
+++ tint/engine.c	2021-02-09 08:00:00.000000000 +0200
@@ -27,10 +27,13 @@
  * 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"
 #include "io.h"
 #include "engine.h"
diff -rupN tint-0.05/engine.h tint/engine.h
--- tint-0.05/engine.h	2001-12-07 16:48:08.000000000 +0100
+++ tint/engine.h	2021-02-09 08:00:00.000000000 +0200
@@ -29,7 +29,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "typedefs.h"		/* bool */
+#include "curses.h"		/* bool */
 
 /*
  * Macros
diff -rupN tint-0.05/io.c tint/io.c
--- tint-0.05/io.c	2010-06-23 15:05:12.000000000 +0100
+++ tint/io.c	2021-02-09 08:00:00.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 "io.h"
 
@@ -68,7 +72,11 @@ static int in_timeleft;
 /* 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;
@@ -177,11 +185,17 @@ void out_beep ()
 /* 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)
@@ -199,6 +213,7 @@ int in_getch ()
 		in_timeleft -= endtv.tv_usec;
 		if (in_timeleft <= 0) in_timeleft = in_timetotal;
 	 }
+#endif
    return ch;
 }
 
diff -rupN tint-0.05/io.h tint/io.h
--- tint-0.05/io.h	2010-06-23 14:55:03.000000000 +0100
+++ tint/io.h	2021-02-09 08:00:00.000000000 +0200
@@ -30,7 +30,6 @@
  */
 
 #include <curses.h>
-#include <wchar.h>
 
 /*
  * Colors
diff -rupN tint-0.05/Makefile tint/Makefile
--- tint-0.05/Makefile	2010-06-23 15:06:11.000000000 +0200
+++ tint/Makefile	2021-02-09 08:00:00.000000000 +0200
@@ -0,0 +1,106 @@
+
+# -*- sh -*-
+
+#  Copyright (c) Abraham vd Merwe <abz@blio.net>
+#  All rights reserved.
+#
+#  Redistribution and use in source and binary forms, with or without
+#  modification, are permitted provided that the following conditions
+#  are met:
+#  1. Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+#
+#  2. Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#  3. Neither the name of the author nor the names of other contributors
+#     may be used to endorse or promote products derived from this software
+#     without specific prior written permission.
+#
+#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+#  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+#  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+#  ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+#  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+#  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+#  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
+#  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
+#  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.
+
+# in addition to the dependency below, create the file if it doesn't exist
+# to silence warnings about a file that would be generated anyway.
+$(if $(wildcard .xcompile),,$(eval $(shell ../../../../util/xcompile/xcompile $(XGCCPATH) > .xcompile || rm -f .xcompile)))
+.xcompile: ../../../../util/xcompile/xcompile
+
+CONFIG_COMPILER_GCC := y
+ARCH-y     := x86_32
+
+include .xcompile
+
+src := $(CURDIR)
+srctree := $(src)
+tint_obj := $(src)/build
+
+LIBCONFIG_PATH := $(realpath ../../../libpayload)
+LIBPAYLOAD_DIR := $(tint_obj)/libpayload
+HAVE_LIBPAYLOAD := $(wildcard $(LIBPAYLOAD_DIR)/lib/libpayload.a)
+LIB_CONFIG ?= configs/defconfig-tinycurses
+
+# CFLAGS := -Wall -Werror -Os
+CFLAGS := -Wall -g -Os
+TARGET := tint
+OBJS := $(TARGET).o engine.o io.o utils.o
+
+ARCH-y     := x86_32
+
+CC := $(CC_$(ARCH-y))
+AS := $(AS_$(ARCH-y))
+OBJCOPY := $(OBJCOPY_$(ARCH-y))
+
+LPCC := CC="$(CC)" $(LIBPAYLOAD_DIR)/bin/lpgcc
+LPAS := AS="$(AS)" $(LIBPAYLOAD_DIR)/bin/lpas
+
+# Make is silent per default, but 'make V=1' will show all compiler calls.
+ifneq ($(V),1)
+Q := @
+endif
+
+all: $(TARGET).elf
+#	printf" CC   $(CC)\n"
+
+$(TARGET).elf: $(OBJS) libpayload
+	$(Q)printf "  LPCC      $(subst $(shell pwd)/,,$(@))\n"
+	$(Q)$(LPCC) -o $@ $(OBJS)
+	$(Q)$(OBJCOPY) --only-keep-debug $@ tint.debug
+	$(Q)$(OBJCOPY) --strip-debug $@
+	$(Q)$(OBJCOPY) --add-gnu-debuglink=tint.debug $@
+
+%.o: %.c libpayload
+	$(Q)printf "  LPCC      $(subst $(shell pwd)/,,$(@))\n"
+	$(Q)$(LPCC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
+
+%.S.o: %.S libpayload
+	$(Q)printf "  LPAS      $(subst $(shell pwd)/,,$(@))\n"
+	$(Q)$(LPAS) $(ASFLAGS) --32 -o $@ $<
+
+ifneq ($(strip $(HAVE_LIBPAYLOAD)),)
+libpayload:
+	$(Q)printf "Found Libpayload $(LIBPAYLOAD_DIR).\n"
+else
+libpayload:
+	$(Q)printf "Building libpayload @ $(LIBCONFIG_PATH).\n"
+	$(Q)make -C $(LIBCONFIG_PATH) distclean
+	$(Q)make -C $(LIBCONFIG_PATH) defconfig KBUILD_DEFCONFIG=$(LIB_CONFIG)
+	$(Q)make -C $(LIBCONFIG_PATH) DESTDIR=$(tint_obj) install
+endif
+
+clean:
+	$(Q)rm -f $(TARGET).elf $(TARGET).debug *.o
+	$(Q)rm .xcompile
+
+distclean: clean
+	$(Q)rm -rf $(tint_obj)
+
+
+.PHONY: all clean do-it-all depend with-depends without-depends debian postinst
diff -rupN tint-0.05/tint.c tint/tint.c
--- tint-0.05/tint.c	2010-08-08 19:42:50.000000000 +0200
+++ tint/tint.c	2021-02-09 08:00:00.000000000 +0200
@@ -1,4 +1,3 @@
-
 /*
  * Copyright (c) Abraham vd Merwe <abz@blio.net>
  * All rights reserved.
@@ -27,6 +26,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,8 +34,8 @@
 #include <pwd.h>
 #include <sys/types.h>
 #include <unistd.h>
+#endif
 
-#include "typedefs.h"
 #include "utils.h"
 #include "io.h"
 #include "config.h"
@@ -304,7 +304,7 @@ static void showstatus (engine_t *engine
           /***************************************************************************/
 
 /* Header for scorefile */
-#define SCORE_HEADER	"Tint 0.02b (c) Abraham vd Merwe - Scores"
+#define SCORE_HEADER	"Tint 0.05 (c) Abraham vd Merwe - Scores"
 
 /* Header for score title */
 static const char scoretitle[] = "\n\t   TINT HIGH SCORES\n\n\tRank   Score        Name\n\n";
@@ -322,6 +322,7 @@ typedef struct
    time_t timestamp;
 } score_t;
 
+#if 0
 static void getname (char *name)
 {
    struct passwd *pw = getpwuid (geteuid ());
@@ -338,7 +339,9 @@ static void getname (char *name)
 		name[NAMELEN - 1] = '\0';
 	 }
 }
+#endif
 
+#if 0
 static void err1 ()
 {
    fprintf (stderr,"Error creating %s\n",scorefile);
@@ -350,10 +353,11 @@ static void err2 ()
    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"
@@ -361,6 +365,7 @@ void showplayerstats (engine_t *engine)
 			GETSCORE (engine->score),engine->status.efficiency,GETSCORE (engine->score) / getsum ());
 }
 
+#if 0
 static void createscores (int score)
 {
    FILE *handle;
@@ -395,7 +400,9 @@ static void createscores (int score)
    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;
@@ -413,7 +420,9 @@ static int cmpscores (const void *a,cons
    /* timestamps is equal */
    return 0;
 }
+#endif
 
+#if 0
 static void savescores (int score)
 {
    FILE *handle;
@@ -491,11 +500,13 @@ static void savescores (int score)
 	 }
    fprintf (stderr,"\n");
 }
+#endif
 
           /***************************************************************************/
           /***************************************************************************/
           /***************************************************************************/
 
+#if 0
 static void showhelp ()
 {
    fprintf (stderr,"USAGE: tint [-h] [-l level] [-n] [-d] [-b char]\n");
@@ -506,9 +517,11 @@ static void showhelp ()
    fprintf (stderr,"  -b <char>    Use this character to draw blocks instead of spaces\n");
    exit (EXIT_FAILURE);
 }
+#endif
 
 static void parse_options (int argc,char *argv[])
 {
+#if 0
    int i = 1;
    while (i < argc)
 	 {
@@ -544,10 +557,12 @@ static void parse_options (int argc,char
 		  }
 		i++;
 	 }
+#endif
 }
 
 static void choose_level ()
 {
+#if 0
    char buf[NAMELEN];
 
    do
@@ -557,6 +572,8 @@ static void choose_level ()
 		buf[strlen (buf) - 1] = '\0';
 	 }
    while (!str2int (&level,buf) || level < MINLEVEL || level > MAXLEVEL);
+#endif
+	level = 1;
 }
 
           /***************************************************************************/
@@ -569,6 +586,8 @@ int main (int argc,char *argv[])
    int ch;
    engine_t engine;
    /* Initialize */
+   if (CONFIG(LP_USB))
+      usb_initialize();
    rand_init ();							/* must be called before engine_init () */
    engine_init (&engine,score_function);	/* must be called before using engine.curshape */
    finished = shownext = FALSE;
@@ -632,12 +651,14 @@ int main (int argc,char *argv[])
 				  /* pause */
 				case 'p':
 				  out_setcolor (COLOR_WHITE,COLOR_BLACK);
-				  out_gotoxy ((out_width () - 34) / 2,out_height () - 2);
+				  out_gotoxy ((out_width () - 34) / 2,out_height () / 2);
 				  out_printf ("Paused - Press any key to continue");
+				  refresh ();
 				  while ((ch = in_getch ()) == ERR) ;	/* Wait for a key to be pressed */
 				  in_flush ();							/* Clear keyboard buffer */
-				  out_gotoxy ((out_width () - 34) / 2,out_height () - 2);
+				  out_gotoxy ((out_width () - 34) / 2,out_height () / 2);
 				  out_printf ("                                  ");
+				  refresh ();
 				  break;
 				  /* unknown keypress */
 				default:
@@ -672,12 +693,32 @@ int main (int argc,char *argv[])
    while (!finished);
    /* Restore console settings and exit */
    io_close ();
+#if 0
    /* Don't bother the player if he want's to quit */
    if (ch != 'q')
 	 {
+#endif
 		showplayerstats (&engine);
+#if 0
 		savescores (GETSCORE (engine.score));
 	 }
+#endif
+   printf("Press 'q' to reboot...\n");
+   refresh();
+   for (;;) {
+   	in_flush ();
+   	while ((ch = in_getch ()) == ERR) ;   /* Wait for a key to be pressed */
+   	if (ch == 'q') { /* reboot */
+   		outb(0x6, 0xcf9);
+   		for(;;); //halt();
+   	}
+   	else {
+   		in_flush ();
+   	}
+   }
+
+#if 0
    exit (EXIT_SUCCESS);
+#endif
 }
 
diff -rupN tint-0.05/utils.c tint/utils.c
--- tint-0.05/utils.c	2001-12-07 16:49:19.000000000 +0100
+++ tint/utils.c	2021-02-09 08:00:00.000000000 +0200
@@ -27,11 +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>
-
-#include "typedefs.h"
+#endif
 
 /*
  * Initialize random number generator
@@ -61,6 +63,7 @@ int rand_value (int range)
  * Convert an str to long. Returns TRUE if successful,
  * FALSE otherwise.
  */
+#if 0
 bool str2int (int *i,const char *str)
 {
    char *endptr;
@@ -69,3 +72,4 @@ bool str2int (int *i,const char *str)
    return TRUE;
 }
 
+#endif
diff -rupN tint-0.05/utils.h tint/utils.h
--- tint-0.05/utils.h	2001-12-07 16:49:35.000000000 +0100
+++ tint/utils.h	2021-02-09 08:00:00.000000000 +0200
@@ -29,7 +29,7 @@
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include "typedefs.h"
+#include <curses.h>
 
 /*
  * Initialize random number generator