diff -rupN tint-0.04+nmu1/config.h tint/config.h --- tint-0.04+nmu1/config.h 2001-12-08 00:03:24.000000000 +0100 +++ tint/config.h 2018-02-23 12:00:00.000000000 +0200 @@ -29,7 +29,15 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#include +#include + +#define curs_set(x) +#define USE_RAND + /* Score file */ +#if 0 const char scorefile[] = SCOREFILE; +#endif #endif /* #ifndef CONFIG_H */ diff -rupN tint-0.04+nmu1/engine.c tint/engine.c --- tint-0.04+nmu1/engine.c 2005-07-17 13:26:22.000000000 +0200 +++ tint/engine.c 2018-02-23 12: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 #include +#endif -#include "typedefs.h" #include "utils.h" #include "io.h" #include "engine.h" diff -rupN tint-0.04+nmu1/engine.h tint/engine.h --- tint-0.04+nmu1/engine.h 2001-12-07 16:48:08.000000000 +0100 +++ tint/engine.h 2018-02-23 12: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.04+nmu1/io.c tint/io.c --- tint-0.04+nmu1/io.c 2010-06-23 15:05:12.000000000 +0100 +++ tint/io.c 2018-02-23 12: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 /* va_list(), va_start(), va_end() */ #include /* gettimeofday() */ #include /* 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.04+nmu1/io.h tint/io.h --- tint-0.04+nmu1/io.h 2010-06-23 14:55:03.000000000 +0100 +++ tint/io.h 2018-02-23 12:00:00.000000000 +0200 @@ -29,9 +29,8 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ - + #include -#include - + /* * Colors */ diff -rupN tint-0.04+nmu1/Makefile tint/Makefile --- tint-0.04+nmu1/Makefile 2010-06-23 15:06:11.000000000 +0200 +++ tint/Makefile 2018-02-23 12:00:00.000000000 +0200 @@ -1,0 +1,106 @@ + +# -*- sh -*- + +# Copyright (c) Abraham vd Merwe +# 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.04+nmu1/tint.c tint/tint.c --- tint-0.04+nmu1/tint.c 2010-08-08 19:42:50.000000000 +0200 +++ tint/tint.c 2018-02-23 12:00:00.000000000 +0200 @@ -1,4 +1,3 @@ - /* * Copyright (c) Abraham vd Merwe * All rights reserved. @@ -27,6 +26,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ +#if 0 #include #include #include @@ -34,8 +34,8 @@ #include #include #include +#endif -#include "typedefs.h" #include "utils.h" #include "io.h" #include "config.h" @@ -306,4 +306,4 @@ /* Header for scorefile */ -#define SCORE_HEADER "Tint 0.02b (c) Abraham vd Merwe - Scores" +#define SCORE_HEADER "Tint 0.04+nmu1 (c) Abraham vd Merwe - Scores" - + /* Header for score title */ @@ -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 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,13 +651,15 @@ 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: out_beep (); @@ -673,11 +694,31 @@ int main (int argc,char *argv[]) /* 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.04+nmu1/utils.c tint/utils.c --- tint-0.04+nmu1/utils.c 2001-12-07 16:49:19.000000000 +0100 +++ tint/utils.c 2018-02-23 12: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 #include #include - -#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.04+nmu1/utils.h tint/utils.h --- tint-0.04+nmu1/utils.h 2001-12-07 16:49:35.000000000 +0100 +++ tint/utils.h 2018-02-23 12:00:00.000000000 +0200 @@ -29,7 +29,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include "typedefs.h" +#include /* * Initialize random number generator