/ payloads / external / tint / tint-0.07_libpayload.patch
tint-0.07_libpayload.patch
  1  diff -rupN tint-0.05/config.h tint/config.h
  2  --- tint-0.05/config.h	2001-12-08 00:03:24.000000000 +0100
  3  +++ tint/config.h	2021-02-09 08:00:00.000000000 +0200
  4  @@ -29,7 +29,15 @@
  5    * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  6    */
  7   
  8  +#include <libpayload.h>
  9  +#include <curses.h>
 10  +
 11  +#define curs_set(x)
 12  +#define USE_RAND
 13  +
 14   /* Score file */
 15  +#if 0
 16   const char scorefile[] = SCOREFILE;
 17  +#endif
 18   
 19   #endif	/* #ifndef CONFIG_H */
 20  diff -rupN tint-0.05/engine.c tint/engine.c
 21  --- tint-0.05/engine.c	2005-07-17 13:26:22.000000000 +0200
 22  +++ tint/engine.c	2021-02-09 08:00:00.000000000 +0200
 23  @@ -27,10 +27,13 @@
 24    * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 25    */
 26   
 27  +#include "config.h"
 28  +
 29  +#if 0
 30   #include <stdlib.h>
 31   #include <string.h>
 32  +#endif
 33   
 34  -#include "typedefs.h"
 35   #include "utils.h"
 36   #include "io.h"
 37   #include "engine.h"
 38  diff -rupN tint-0.05/engine.h tint/engine.h
 39  --- tint-0.05/engine.h	2001-12-07 16:48:08.000000000 +0100
 40  +++ tint/engine.h	2021-02-09 08:00:00.000000000 +0200
 41  @@ -29,7 +29,7 @@
 42    * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 43    */
 44   
 45  -#include "typedefs.h"		/* bool */
 46  +#include "curses.h"		/* bool */
 47   
 48   /*
 49    * Macros
 50  diff -rupN tint-0.05/io.c tint/io.c
 51  --- tint-0.05/io.c	2010-06-23 15:05:12.000000000 +0100
 52  +++ tint/io.c	2021-02-09 08:00:00.000000000 +0200
 53  @@ -27,9 +27,13 @@
 54    * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 55    */
 56   
 57  +#include "config.h"
 58  +
 59  +#if 0
 60   #include <stdarg.h>		/* va_list(), va_start(), va_end() */
 61   #include <sys/time.h>	/* gettimeofday() */
 62   #include <unistd.h>		/* gettimeofday() */
 63  +#endif
 64   
 65   #include "io.h"
 66   
 67  @@ -68,7 +72,11 @@ static int in_timeleft;
 68   /* Initialize screen */
 69   void io_init ()
 70   {
 71  +   curses_enable_serial(0);
 72  +   curses_enable_vga(1);
 73      initscr ();
 74  +   halfdelay(1);
 75  +   timeout(1);
 76      start_color ();
 77      curs_set (CURSOR_INVISIBLE);
 78      out_attr = A_NORMAL;
 79  @@ -177,11 +185,17 @@ void out_beep ()
 80   /* Read a character. Please note that you MUST call in_timeout() before in_getch() */
 81   int in_getch ()
 82   {
 83  +#if 0
 84      struct timeval starttv,endtv;
 85  +#endif
 86      int ch;
 87  +#if 0
 88      timeout (in_timeleft / 1000);
 89      gettimeofday (&starttv,NULL);
 90  +#endif
 91      ch = getch ();
 92  +   mdelay(150);
 93  +#if 0
 94      gettimeofday (&endtv,NULL);
 95      /* Timeout? */
 96      if (ch == ERR)
 97  @@ -199,6 +213,7 @@ int in_getch ()
 98   		in_timeleft -= endtv.tv_usec;
 99   		if (in_timeleft <= 0) in_timeleft = in_timetotal;
100   	 }
101  +#endif
102      return ch;
103   }
104   
105  diff -rupN tint-0.05/io.h tint/io.h
106  --- tint-0.05/io.h	2010-06-23 14:55:03.000000000 +0100
107  +++ tint/io.h	2021-02-09 08:00:00.000000000 +0200
108  @@ -30,7 +30,6 @@
109    */
110   
111   #include <curses.h>
112  -#include <wchar.h>
113   
114   /*
115    * Colors
116  diff -rupN tint-0.05/Makefile tint/Makefile
117  --- tint-0.05/Makefile	2010-06-23 15:06:11.000000000 +0200
118  +++ tint/Makefile	2021-02-09 08:00:00.000000000 +0200
119  @@ -0,0 +1,106 @@
120  +
121  +# -*- sh -*-
122  +
123  +#  Copyright (c) Abraham vd Merwe <abz@blio.net>
124  +#  All rights reserved.
125  +#
126  +#  Redistribution and use in source and binary forms, with or without
127  +#  modification, are permitted provided that the following conditions
128  +#  are met:
129  +#  1. Redistributions of source code must retain the above copyright
130  +#     notice, this list of conditions and the following disclaimer.
131  +#
132  +#  2. Redistributions in binary form must reproduce the above copyright
133  +#     notice, this list of conditions and the following disclaimer in the
134  +#     documentation and/or other materials provided with the distribution.
135  +#  3. Neither the name of the author nor the names of other contributors
136  +#     may be used to endorse or promote products derived from this software
137  +#     without specific prior written permission.
138  +#
139  +#  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
140  +#  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
141  +#  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
142  +#  ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
143  +#  FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
144  +#  DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
145  +#  SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
146  +#  CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
147  +#  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
148  +#  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
149  +
150  +# in addition to the dependency below, create the file if it doesn't exist
151  +# to silence warnings about a file that would be generated anyway.
152  +$(if $(wildcard .xcompile),,$(eval $(shell ../../../../util/xcompile/xcompile $(XGCCPATH) > .xcompile || rm -f .xcompile)))
153  +.xcompile: ../../../../util/xcompile/xcompile
154  +
155  +CONFIG_COMPILER_GCC := y
156  +ARCH-y     := x86_32
157  +
158  +include .xcompile
159  +
160  +src := $(CURDIR)
161  +srctree := $(src)
162  +tint_obj := $(src)/build
163  +
164  +LIBCONFIG_PATH := $(realpath ../../../libpayload)
165  +LIBPAYLOAD_DIR := $(tint_obj)/libpayload
166  +HAVE_LIBPAYLOAD := $(wildcard $(LIBPAYLOAD_DIR)/lib/libpayload.a)
167  +LIB_CONFIG ?= configs/defconfig-tinycurses
168  +
169  +# CFLAGS := -Wall -Werror -Os
170  +CFLAGS := -Wall -g -Os
171  +TARGET := tint
172  +OBJS := $(TARGET).o engine.o io.o utils.o
173  +
174  +ARCH-y     := x86_32
175  +
176  +CC := $(CC_$(ARCH-y))
177  +AS := $(AS_$(ARCH-y))
178  +OBJCOPY := $(OBJCOPY_$(ARCH-y))
179  +
180  +LPCC := CC="$(CC)" $(LIBPAYLOAD_DIR)/bin/lpgcc
181  +LPAS := AS="$(AS)" $(LIBPAYLOAD_DIR)/bin/lpas
182  +
183  +# Make is silent per default, but 'make V=1' will show all compiler calls.
184  +ifneq ($(V),1)
185  +Q := @
186  +endif
187  +
188  +all: $(TARGET).elf
189  +#	printf" CC   $(CC)\n"
190  +
191  +$(TARGET).elf: $(OBJS) libpayload
192  +	$(Q)printf "  LPCC      $(subst $(shell pwd)/,,$(@))\n"
193  +	$(Q)$(LPCC) -o $@ $(OBJS)
194  +	$(Q)$(OBJCOPY) --only-keep-debug $@ tint.debug
195  +	$(Q)$(OBJCOPY) --strip-debug $@
196  +	$(Q)$(OBJCOPY) --add-gnu-debuglink=tint.debug $@
197  +
198  +%.o: %.c libpayload
199  +	$(Q)printf "  LPCC      $(subst $(shell pwd)/,,$(@))\n"
200  +	$(Q)$(LPCC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
201  +
202  +%.S.o: %.S libpayload
203  +	$(Q)printf "  LPAS      $(subst $(shell pwd)/,,$(@))\n"
204  +	$(Q)$(LPAS) $(ASFLAGS) --32 -o $@ $<
205  +
206  +ifneq ($(strip $(HAVE_LIBPAYLOAD)),)
207  +libpayload:
208  +	$(Q)printf "Found Libpayload $(LIBPAYLOAD_DIR).\n"
209  +else
210  +libpayload:
211  +	$(Q)printf "Building libpayload @ $(LIBCONFIG_PATH).\n"
212  +	$(Q)make -C $(LIBCONFIG_PATH) distclean
213  +	$(Q)make -C $(LIBCONFIG_PATH) defconfig KBUILD_DEFCONFIG=$(LIB_CONFIG)
214  +	$(Q)make -C $(LIBCONFIG_PATH) DESTDIR=$(tint_obj) install
215  +endif
216  +
217  +clean:
218  +	$(Q)rm -f $(TARGET).elf $(TARGET).debug *.o
219  +	$(Q)rm .xcompile
220  +
221  +distclean: clean
222  +	$(Q)rm -rf $(tint_obj)
223  +
224  +
225  +.PHONY: all clean do-it-all depend with-depends without-depends debian postinst
226  diff -rupN tint-0.05/tint.c tint/tint.c
227  --- tint-0.05/tint.c	2010-08-08 19:42:50.000000000 +0200
228  +++ tint/tint.c	2021-02-09 08:00:00.000000000 +0200
229  @@ -1,4 +1,3 @@
230  -
231   /*
232    * Copyright (c) Abraham vd Merwe <abz@blio.net>
233    * All rights reserved.
234  @@ -27,6 +26,7 @@
235    * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
236    */
237   
238  +#if 0
239   #include <stdlib.h>
240   #include <stdio.h>
241   #include <string.h>
242  @@ -34,8 +34,8 @@
243   #include <pwd.h>
244   #include <sys/types.h>
245   #include <unistd.h>
246  +#endif
247   
248  -#include "typedefs.h"
249   #include "utils.h"
250   #include "io.h"
251   #include "config.h"
252  @@ -304,7 +304,7 @@ static void showstatus (engine_t *engine
253             /***************************************************************************/
254   
255   /* Header for scorefile */
256  -#define SCORE_HEADER	"Tint 0.02b (c) Abraham vd Merwe - Scores"
257  +#define SCORE_HEADER	"Tint 0.05 (c) Abraham vd Merwe - Scores"
258   
259   /* Header for score title */
260   static const char scoretitle[] = "\n\t   TINT HIGH SCORES\n\n\tRank   Score        Name\n\n";
261  @@ -322,6 +322,7 @@ typedef struct
262      time_t timestamp;
263   } score_t;
264   
265  +#if 0
266   static void getname (char *name)
267   {
268      struct passwd *pw = getpwuid (geteuid ());
269  @@ -338,7 +339,9 @@ static void getname (char *name)
270   		name[NAMELEN - 1] = '\0';
271   	 }
272   }
273  +#endif
274   
275  +#if 0
276   static void err1 ()
277   {
278      fprintf (stderr,"Error creating %s\n",scorefile);
279  @@ -350,10 +353,11 @@ static void err2 ()
280      fprintf (stderr,"Error writing to %s\n",scorefile);
281      exit (EXIT_FAILURE);
282   }
283  +#endif
284   
285   void showplayerstats (engine_t *engine)
286   {
287  -   fprintf (stderr,
288  +   printf (
289   			"\n\t   PLAYER STATISTICS\n\n\t"
290   			"Score       %11d\n\t"
291   			"Efficiency  %11d\n\t"
292  @@ -361,6 +365,7 @@ void showplayerstats (engine_t *engine)
293   			GETSCORE (engine->score),engine->status.efficiency,GETSCORE (engine->score) / getsum ());
294   }
295   
296  +#if 0
297   static void createscores (int score)
298   {
299      FILE *handle;
300  @@ -395,7 +400,9 @@ static void createscores (int score)
301      fprintf (stderr,"%s",scoretitle);
302      fprintf (stderr,"\t  1* %7d        %s\n\n",score,scores[0].name);
303   }
304  +#endif
305   
306  +#if 0
307   static int cmpscores (const void *a,const void *b)
308   {
309      int result;
310  @@ -413,7 +420,9 @@ static int cmpscores (const void *a,cons
311      /* timestamps is equal */
312      return 0;
313   }
314  +#endif
315   
316  +#if 0
317   static void savescores (int score)
318   {
319      FILE *handle;
320  @@ -491,11 +500,13 @@ static void savescores (int score)
321   	 }
322      fprintf (stderr,"\n");
323   }
324  +#endif
325   
326             /***************************************************************************/
327             /***************************************************************************/
328             /***************************************************************************/
329   
330  +#if 0
331   static void showhelp ()
332   {
333      fprintf (stderr,"USAGE: tint [-h] [-l level] [-n] [-d] [-b char]\n");
334  @@ -506,9 +517,11 @@ static void showhelp ()
335      fprintf (stderr,"  -b <char>    Use this character to draw blocks instead of spaces\n");
336      exit (EXIT_FAILURE);
337   }
338  +#endif
339   
340   static void parse_options (int argc,char *argv[])
341   {
342  +#if 0
343      int i = 1;
344      while (i < argc)
345   	 {
346  @@ -544,10 +557,12 @@ static void parse_options (int argc,char
347   		  }
348   		i++;
349   	 }
350  +#endif
351   }
352   
353   static void choose_level ()
354   {
355  +#if 0
356      char buf[NAMELEN];
357   
358      do
359  @@ -557,6 +572,8 @@ static void choose_level ()
360   		buf[strlen (buf) - 1] = '\0';
361   	 }
362      while (!str2int (&level,buf) || level < MINLEVEL || level > MAXLEVEL);
363  +#endif
364  +	level = 1;
365   }
366   
367             /***************************************************************************/
368  @@ -569,6 +586,8 @@ int main (int argc,char *argv[])
369      int ch;
370      engine_t engine;
371      /* Initialize */
372  +   if (CONFIG(LP_USB))
373  +      usb_initialize();
374      rand_init ();							/* must be called before engine_init () */
375      engine_init (&engine,score_function);	/* must be called before using engine.curshape */
376      finished = shownext = FALSE;
377  @@ -632,12 +651,14 @@ int main (int argc,char *argv[])
378   				  /* pause */
379   				case 'p':
380   				  out_setcolor (COLOR_WHITE,COLOR_BLACK);
381  -				  out_gotoxy ((out_width () - 34) / 2,out_height () - 2);
382  +				  out_gotoxy ((out_width () - 34) / 2,out_height () / 2);
383   				  out_printf ("Paused - Press any key to continue");
384  +				  refresh ();
385   				  while ((ch = in_getch ()) == ERR) ;	/* Wait for a key to be pressed */
386   				  in_flush ();							/* Clear keyboard buffer */
387  -				  out_gotoxy ((out_width () - 34) / 2,out_height () - 2);
388  +				  out_gotoxy ((out_width () - 34) / 2,out_height () / 2);
389   				  out_printf ("                                  ");
390  +				  refresh ();
391   				  break;
392   				  /* unknown keypress */
393   				default:
394  @@ -672,12 +693,32 @@ int main (int argc,char *argv[])
395      while (!finished);
396      /* Restore console settings and exit */
397      io_close ();
398  +#if 0
399      /* Don't bother the player if he want's to quit */
400      if (ch != 'q')
401   	 {
402  +#endif
403   		showplayerstats (&engine);
404  +#if 0
405   		savescores (GETSCORE (engine.score));
406   	 }
407  +#endif
408  +   printf("Press 'q' to reboot...\n");
409  +   refresh();
410  +   for (;;) {
411  +   	in_flush ();
412  +   	while ((ch = in_getch ()) == ERR) ;   /* Wait for a key to be pressed */
413  +   	if (ch == 'q') { /* reboot */
414  +   		outb(0x6, 0xcf9);
415  +   		for(;;); //halt();
416  +   	}
417  +   	else {
418  +   		in_flush ();
419  +   	}
420  +   }
421  +
422  +#if 0
423      exit (EXIT_SUCCESS);
424  +#endif
425   }
426   
427  diff -rupN tint-0.05/utils.c tint/utils.c
428  --- tint-0.05/utils.c	2001-12-07 16:49:19.000000000 +0100
429  +++ tint/utils.c	2021-02-09 08:00:00.000000000 +0200
430  @@ -27,11 +27,13 @@
431    * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
432    */
433   
434  +#include "config.h"
435  +
436  +#if 0
437   #include <stdlib.h>
438   #include <time.h>
439   #include <limits.h>
440  -
441  -#include "typedefs.h"
442  +#endif
443   
444   /*
445    * Initialize random number generator
446  @@ -61,6 +63,7 @@ int rand_value (int range)
447    * Convert an str to long. Returns TRUE if successful,
448    * FALSE otherwise.
449    */
450  +#if 0
451   bool str2int (int *i,const char *str)
452   {
453      char *endptr;
454  @@ -69,3 +72,4 @@ bool str2int (int *i,const char *str)
455      return TRUE;
456   }
457   
458  +#endif
459  diff -rupN tint-0.05/utils.h tint/utils.h
460  --- tint-0.05/utils.h	2001-12-07 16:49:35.000000000 +0100
461  +++ tint/utils.h	2021-02-09 08:00:00.000000000 +0200
462  @@ -29,7 +29,7 @@
463    * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
464    */
465   
466  -#include "typedefs.h"
467  +#include <curses.h>
468   
469   /*
470    * Initialize random number generator