--- nitpic-0.1.orig/pu_lib.c +++ nitpic-0.1/pu_lib.c @@ -6,18 +6,22 @@ #include #include +#define PARAMS(x) x + +#include + void PU_Clear(PICDEFN *pic) { int i; for(i=0; ipicmemmap[i] = 0xffff; + pic->picmemmap[i] = 0x0; - pic->pictype = 54; - pic->picid[0] = 0xffff; - pic->picid[1] = 0xffff; - pic->picid[2] = 0xffff; - pic->picid[3] = 0xffff; + pic->pictype = 84; + pic->picid[0] = 0x00; + pic->picid[1] = 0x00; + pic->picid[2] = 0x00; + pic->picid[3] = 0x00; pic->osctype = 3; pic->clock = 1.0e6; pic->cp_fuse = 1; @@ -25,7 +29,38 @@ pic->pu_fuse = 1; } -int PU_Read(const char *filename, PICDEFN *pic, int *top) +int PU_Read (const char *filename, PICDEFN *pic, int *top) +{ + bfd *file = NULL; + asection *section = NULL; + + PU_Clear (pic); + + file = bfd_openr (filename, "ihex"); + if (file == NULL) { + fprintf (stderr, "unable to open file\n"); + return PU_FAIL; + } + + { + char **matching; + bfd_check_format_matches (file, bfd_object, &matching); + } + + for (section = file->sections; section != NULL; section = section->next) { + bfd_size_type sz = bfd_section_size (file, section); + if ((section->vma % 2) != 0) { + fprintf (stderr, "section not on 16-bit boundary: ignoring"); + break; + } + bfd_get_section_contents (file, section, pic->picmemmap + (section->vma / 2), 0, sz); + } + + bfd_close (file); + return PU_OK; +} + +int PU_Read_Orig(const char *filename, PICDEFN *pic, int *top) { FILE *filehandle; int ch; --- nitpic-0.1.orig/ic.cc +++ nitpic-0.1/ic.cc @@ -36,7 +36,7 @@ a = Pic.simulate( GetPins, a ); p = (pins_info *)a.p; - if (!p->npins) return; + if (!p || !p->npins) return; XtVaGetValues( W.ic, XtNheight, &w_height, --- nitpic-0.1.orig/pu_defs.h +++ nitpic-0.1/pu_defs.h @@ -2,7 +2,7 @@ /* definitions for the pic read/write routines */ /* I.King 1994 */ -#define MAXPICSIZE 8192 +#define MAXPICSIZE 32768 typedef struct picdefn { --- nitpic-0.1.orig/Imakefile +++ nitpic-0.1/Imakefile @@ -1,49 +1,19 @@ -/* - * Imakefile for picsim - */ - SRCS = main.cc \ - ic.cc \ - info.cc \ - instr.cc \ - pu_lib.c \ - reg.cc \ - sim.cc \ - util.cc \ - 16c84.cc +SRCS = main.cc ic.cc info.cc instr.cc pu_lib.c reg.cc sim.cc util.cc 16c84.cc +OBJS = main.o ic.o info.o instr.o pu_lib.o reg.o sim.o util.o 16c84.o - OBJS = main.o \ - ic.o \ - info.o \ - instr.o \ - pu_lib.o \ - reg.o \ - sim.o \ - util.o \ - 16c84.o +EXTRA_INCLUDES = +CDEBUGFLAGS = -g -O2 -Wall +CCOPTIONS = +C++FLAGS = $(CFLAGS) $(CDEBUGFLAGS) +CXXFLAGS = $(C++FLAGS) +LDFLAGS = -static - EXTRA_INCLUDES = -I./lib/X11 - CDEBUGFLAGS = - CCOPTIONS = - C++FLAGS = $(CFLAGS) $(CDEBUGFLAGS) - CXXFLAGS = $(C++FLAGS) - LDFLAGS = $(CDEBUGFLAGS) - - INCLUDES = -I$(TOP) -I$(TOOLKITSRC) +INCLUDES = -I$(TOP) -I$(TOOLKITSRC) LOCAL_LIBRARIES = $(XAWLIB) $(XEXTLIB) $(XMULIB) $(XTOOLLIB) $(XLIB) - SYS_LIBRARIES = -lm -lc +SYS_LIBRARIES = -Wl,-Bstatic -lbfd -lopcodes -Wl,-Bdynamic -lz -liberty -lm -lc - GCC_INCLUDE = $(shell dirname `gcc -print-libgcc-file-name`)/include +DEPENDFLAGS = $(EXTRA_INCLUDES) - DEPENDFLAGS = -I/usr/local/lib/g++-include \ - -I/usr/lib/g++-include \ - -I$(GCC_INCLUDE) \ - $(EXTRA_INCLUDES) all:: nitpic -ComplexProgramTarget(nitpic) -/* - * The following is a matter of preference: - * - * InstallManPage(template,$(MANDIR)) - * InstallProgram(template,$(BINDIR)) - */ +ComplexCplusplusProgramTarget (nitpic) --- nitpic-0.1.orig/main.cc +++ nitpic-0.1/main.cc @@ -2,6 +2,7 @@ * main.cc -- PIC simulator main routine */ #define __main__ +#include #include "picsim.hh" static String fallback_resources[] = { --- nitpic-0.1.orig/sim.cc +++ nitpic-0.1/sim.cc @@ -160,6 +160,9 @@ case GetInfo: a.p = NULL; return a; + case GetPins: + a.p = NULL; + return a; case Disassemble: sprintf( buf, "PICx%d unsupported", Pic.uinfo.pictype ); a.p = buf; --- nitpic-0.1.orig/picsim.hh +++ nitpic-0.1/picsim.hh @@ -2,7 +2,8 @@ * picsim.hh -- X PIC simulator */ #include "patchlevel.h" -#include +/*#include */ +#include #include #include #include @@ -27,14 +28,14 @@ #endif typedef struct reg { /* Info about each register in register file */ - char *name; + const char *name; unsigned modified : 1; unsigned modified_last : 1; char redirect_page; char redirect_reg; char implemented; char value; - char (*hook)( struct reg *r, Boolean write, char v = 0 ); + char (*hook)( struct reg *r, Boolean write, char v ); } reg; typedef struct { @@ -166,7 +167,7 @@ # define GLOBAL extern #endif -GLOBAL struct { +GLOBAL struct Widgets { Widget toplevel; Widget main; Widget title; --- nitpic-0.1.orig/16c84.cc +++ nitpic-0.1/16c84.cc @@ -3,6 +3,7 @@ */ #include "picsim.hh" #include +#include info_reg pic16c84_info[]={ {"STATUS",{"IRP","RP1","RP0","TO","PD","Z","DC","C"},0,0}, @@ -56,7 +57,7 @@ #define RP1 0100 // Page select bit 1 (not used) #define IRP 0200 // Indirect addressing page select (not used) -static pic16c84_instr PIC16C84_INSTR[]; +extern pic16c84_instr PIC16C84_INSTR[]; static int match_instr( u_int instr ); static void use_a_cycle( Boolean no_ints = False ); static void sleep_a_cycle( void ); @@ -440,7 +441,7 @@ if (d) { if (Pic.reg_file[c][d].hook) { - return Pic.reg_file[c][d].hook( &Pic.reg_file[c][d], False ); + return Pic.reg_file[c][d].hook( &Pic.reg_file[c][d], False, 0 ); } else { return Pic.reg_file[c][d].value & 0xff; } @@ -532,7 +533,7 @@ strcpy( reg, "@FSR" ); } else if (Pic.reg_file[p][r].name) { - char *cp = Pic.reg_file[p][r].name; + const char *cp = Pic.reg_file[p][r].name; while (isspace(*cp)) ++cp; strcpy( reg, cp ); } else @@ -597,18 +598,18 @@ { int instr = Pic.uinfo.picmemmap[ Pic.pc ]; int p, r; - int w, f, and; + int w, f, nitpic_and; int d, dc; w = get_w( ); f = get_f( instr, &p, &r ); - and = w & f; + nitpic_and = w & f; if (instr & 0x80) - set_f( p, r, and, True ); + set_f( p, r, nitpic_and, True ); else - set_w( and, True ); + set_w( nitpic_and, True ); } static void @@ -709,18 +710,18 @@ { int instr = Pic.uinfo.picmemmap[ Pic.pc ]; int p, r; - int w, f, or; + int w, f, nitpic_or; int c, dc; w = get_w( ); f = get_f( instr, &p, &r ); - or = w | f; + nitpic_or = w | f; if (instr & 0x80) - set_f( p, r, or, True ); + set_f( p, r, nitpic_or, True ); else - set_w( or, True ); + set_w( nitpic_or, True ); } static void @@ -841,17 +842,17 @@ { int instr = Pic.uinfo.picmemmap[ Pic.pc ]; int p, r; - int w, f, xor; + int w, f, nitpic_xor; w = get_w( ); f = get_f( instr, &p, &r ); - xor = w ^ f; + nitpic_xor = w ^ f; if (instr & 0x80) - set_f( p, r, xor, True ); + set_f( p, r, nitpic_xor, True ); else - set_w( xor, True ); + set_w( nitpic_xor, True ); } static void @@ -920,13 +921,13 @@ exANDLW( void ) { int instr = Pic.uinfo.picmemmap[ Pic.pc ]; - int w, l, and; + int w, l, nitpic_and; w = get_w( ); l = instr & 0xff; - and = w & l; + nitpic_and = w & l; - set_w( and, True ); + set_w( nitpic_and, True ); } static void @@ -967,13 +968,13 @@ exIORLW( void ) { int instr = Pic.uinfo.picmemmap[ Pic.pc ]; - int w, l, or; + int w, l, nitpic_or; w = get_w( ); l = instr & 0xff; - or = w & l; + nitpic_or = w & l; - set_w( or, True ); + set_w( nitpic_or, True ); } static void @@ -1053,13 +1054,13 @@ exXORLW( void ) { int instr = Pic.uinfo.picmemmap[ Pic.pc ]; - int w, l, xor; + int w, l, nitpic_xor; w = get_w( ); l = instr & 0xff; - xor = w ^ l; + nitpic_xor = w ^ l; - set_w( xor, True ); + set_w( nitpic_xor, True ); } static void @@ -1084,7 +1085,7 @@ } } -static pic16c84_instr +pic16c84_instr PIC16C84_INSTR[] = { { 0x3f00, 0x0000, 0x0700, 0x0000, 1, 1, 0, "ADDWF ", exADDWF }, { 0x3f00, 0x0000, 0x0500, 0x0000, 1, 1, 0, "ANDWF ", exANDWF }, --- nitpic-0.1.orig/nitpic.man +++ nitpic-0.1/nitpic.man @@ -0,0 +1,39 @@ +.TH NITPIC 1 +.SH NAME +nitpic \- a Microchip PIC simulator +.SH DESCRIPTION +.B nitpic +is an X Window System-based simulator for the Microchip PIC series of +microcontrollers. +It currently supports the PIC16C84 only, but it should be trivial to +add support for the rest of the PIC family, and pretty easy even for +unrelated CPUs. +.SH "KNOWN SHORTCOMINGS" +.IP \(bu +The 16C84 EEPROM data memory is not implemented. +.IP \(bu +Writing PCL doesn't cause a jump. +.IP \(bu +Interrupts, including RTCC rollover, don't work. +.IP \(bu +The "File" button doesn't let you load a new object file. +.IP \(bu +No warning on stack overflow. +.IP \(bu +The I/O ports aren't handled properly (there's something screwy about +read/modify/write instructions that I don't understand yet). +.IP \(bu +I'm not sure the ADD and SUB instructions set C and DC properly. +.SH BUGS +.IP \(bu +Sometimes the instruction pointer gets screwed up (graphics only \(em +the simulator keeps working). +.SH AUTHOR +dave madden +.PP +This manual page was written by Colin Watson for Debian because the original +program does not have a manual page. +It is a simple translation of parts of +.BR nitpic 's +.I README +into the manual page format; see that file for more information. --- nitpic-0.1.orig/XPICsim +++ nitpic-0.1/XPICsim @@ -1,6 +1,13 @@ ! ! App defaults file for X PIC simulator ! + +*XPICsim.left-pointer: /usr/share/nitpic/lsolid.xbm +*XPICsim.left-hollow: /usr/share/nitpic/lhollow.xbm +*XPICsim.right-pointer: /usr/share/nitpic/rsolid.xbm +*XPICsim.right-hollow: /usr/share/nitpic/rhollow.xbm + + *XPICsim.nitpic-resources: true *XPICsim.synchronous: true *XPICsim*background: gray90 @@ -64,7 +71,7 @@ *XPICsim.main.instr.ipointer.height: 396 *XPICsim.main.instr.ipointer.width: 20 *XPICsim.main.instr.ipointer.borderWidth: 0 -*XPICsim.main.instr.ipointer.bitmap: pointer.xbm +*XPICsim.main.instr.ipointer.bitmap: /usr/share/nitpic/pointer.xbm *XPICsim.main.instr.ipointer.label: *XPICsim.main.instr.ipointer.translations: #replace \n\ : ipointer-refresh() \n\ @@ -84,7 +91,7 @@ *XPICsim.main.regs.width: 150 *XPICsim.main.regs.rprev.width: 22 *XPICsim.main.regs.rprev.height: 20 -*XPICsim.main.regs.rprev.bitmap: larrow.xbm +*XPICsim.main.regs.rprev.bitmap: /usr/share/nitpic/larrow.xbm *XPICsim.main.regs.rprev.translations: #override \n\ : reg-switch( prev ) notify() unset() *XPICsim.main.regs.rpage.width: 90 @@ -92,7 +99,7 @@ *XPICsim.main.regs.rnext.width: 22 *XPICsim.main.regs.rnext.height: 20 -*XPICsim.main.regs.rnext.bitmap: rarrow.xbm +*XPICsim.main.regs.rnext.bitmap: /usr/share/nitpic/rarrow.xbm *XPICsim.main.regs.rnext.translations: #override \n\ : reg-switch( next ) notify() unset() *XPICsim.main.regs.rdata.width: 146 --- nitpic-0.1.orig/instr.cc +++ nitpic-0.1/instr.cc @@ -76,7 +76,7 @@ lines = w_height / dv; - top = Pic.itop + lines * (int)position / w_height; + top = Pic.itop + lines * (long)position / w_height; if (top < 0) top = 0; else --- nitpic-0.1.orig/debian/control +++ nitpic-0.1/debian/control @@ -0,0 +1,14 @@ +Source: nitpic +Section: electronics +Priority: extra +Maintainer: Debian QA Group +Build-Depends: libx11-dev, libxt-dev, libxaw7-dev, xutils-dev, binutils-dev, binutils, zlib1g-dev +Standards-Version: 3.7.3 + +Package: nitpic +Architecture: any +Depends: ${shlibs:Depends} +Description: simulator for the Microchip PIC16C84 microcontroller + Nitpic is an X-based simulator for the Microchip PIC family of + microcontrollers. It currently supports only the PIC16C84. + This is beta software. --- nitpic-0.1.orig/debian/rules +++ nitpic-0.1/debian/rules @@ -0,0 +1,74 @@ +#! /usr/bin/make -f + +.PHONY: build build-indep build-arch clean binary binary-indep binary-arch checkdir checkroot + +package = nitpic +d=$(shell pwd)/debian/tmp +STRIP=strip --strip-unneeded --remove-section=.note --remove-section=.comment + +Makefile: Imakefile + xmkmf + +build: build-arch +build-indep: +build-arch: checkdir Makefile + $(MAKE) + +clean: checkdir Makefile + $(MAKE) clean + $(RM) -r debian/files debian/substvars debian/tmp + $(RM) Makefile + find . -name \*~ -print0 | xargs -0 $(RM) + +binary-indep: checkdir build checkroot + +binary-arch: checkdir build checkroot + $(RM) -r $(d) + + install -d $(d)/DEBIAN + install -d $(d)/usr/bin + install -d $(d)/etc/X11/app-defaults + install -d $(d)/usr/share/doc/$(package) + install -d $(d)/usr/share/man/man1 + + + install -c debian/conffiles $(d)/DEBIAN/ + + install -c debian/changelog $(d)/usr/share/doc/$(package)/changelog.Debian + install -c README $(d)/usr/share/doc/$(package) + install -c test.* $(d)/usr/share/doc/$(package) + gzip -9vf $(d)/usr/share/doc/$(package)/* + install -c debian/copyright $(d)/usr/share/doc/$(package)/copyright + + install -c nitpic $(d)/usr/bin + install -c XPICsim $(d)/etc/X11/app-defaults/ + + install -d $(d)/usr/share/$(package)/ + install -c *.xbm $(d)/usr/share/nitpic/ + + + install nitpic.man $(d)/usr/share/man/man1/nitpic.1 + gzip -9vf $(d)/usr/share/man/man1/nitpic.1 + + install -d $(d)/usr/share/lintian/overrides + install -c debian/lintian.overrides $(d)/usr/share/lintian/overrides/$(package) + + chown -fR root.root $(d) + find $(d) -type f -print0 | xargs -0 chmod 644 + find $(d) -type d -print0 | xargs -0 chmod 755 +ifeq (,$(findstring nostrip,$(DEB_BUILD_OPTIONS))) + $(STRIP) $(d)/usr/bin/nitpic +endif + dpkg-shlibdeps $(d)/usr/bin/* + dpkg-gencontrol -isp -p$(package) -P$(d) + dpkg --build $(d) .. + +binary: binary-indep binary-arch + +checkdir: + test -f ic.cc + +checkroot: + test "`whoami`" = "root" + +.PHONY: build clean binary-indep binary-arch binary --- nitpic-0.1.orig/debian/conffiles +++ nitpic-0.1/debian/conffiles @@ -0,0 +1 @@ +/etc/X11/app-defaults/XPICsim --- nitpic-0.1.orig/debian/changelog +++ nitpic-0.1/debian/changelog @@ -0,0 +1,179 @@ +nitpic (0.1-13) unstable; urgency=low + + * QA upload. + * Link statically against binutils libraries (Closes: #648043). As a + consequence, we also need to link against zlib. + * Drop ancient prerm script from /usr/doc transition. + * Add build-indep and build-arch targets to debian/rules. + + -- Magnus Holmgren Tue, 08 Nov 2011 18:32:40 +0100 + +nitpic (0.1-12) unstable; urgency=low + + * QA upload. + * Fix "ftbfs with gcc-4.5": apply patch from Colin Watson / Ubuntu: + - Anonymous structs are not conformant C++. Give W a struct name so + that its linkage works. + Closes: #565088 + LP: #756188 + * Set Maintainer to Debian QA Group . + Closes: #552751 (cf. #629605) + + -- gregor herrmann Tue, 27 Sep 2011 22:12:48 +0200 + +nitpic (0.1-11.2) unstable; urgency=low + + * Non-maintainer upload. + * Fixed bashism in debian/rules (patch by Chris Lamb) (closes: #484417). + * Changed build dependency on obsolete xutils to xutils-dev. + + -- Peter Eisentraut Wed, 09 Jul 2008 10:54:05 +0200 + +nitpic (0.1-11.1) unstable; urgency=low + + * Non-maintainer upload. + * Adding conditional for nostrip, according to Policy 10.1 (Closes: #437637) + * Updated Standards-Version to 3.7.3. + + -- Jose Parrella Mon, 07 Apr 2008 09:47:03 -0430 + +nitpic (0.1-11) unstable; urgency=high + + * Fixed FTBFS: build-depends on removed xlibs-deV (closes: #347138). + + -- Ernesto Nadir Crespo Avila Fri, 20 Jan 2006 21:55:21 -0400 + +nitpic (0.1-10) unstable; urgency=low + + * Fixed Missing shared lib dependencies (closes: #103449, #130645, #171284). + * Fixed package description typo(s) and the like (closes: #300023). + * New uploaders. + + -- Ernesto Nadir Crespo Avila Sat, 03 Sep 2005 20:25:25 -0400 + +nitpic (0.1-9) unstable; urgency=low + + * New maintainer (closes: #227784). + * Fixed "FTBFS with gcc-3.4: default arguments are only permitted for function parameters" + (closes: #287809, #263265). Patch by Andreas Jochens + + -- Ernesto Nadir Crespo Avila Sun, 02 Jan 2005 23:28:09 -0400 + +nitpic (0.1-8.4) unstable; urgency=low + + * Uploading with maintainer set to QA group + * Applied Colin Watson's patch to fix segfaulting with no arguments (closes: + #186917) + * Removed debian/postinst because all it did was create /usr/doc link + + -- Andrew Pollock Sun, 15 Feb 2004 16:52:25 +1100 + +nitpic (0.1-8.3) unstable; urgency=low + + * Non-maintainer upload. + * Imakefile: Use ComplexCplusplusProgramTarget() so that we correctly link + with g++ rather than gcc (closes: #127162). + * nitpic.man, debian/rules: Add an extremely simple man page, necessary + because ComplexCplusplusProgramTargetNoMan() does not exist yet (see + #186321). + * 16c84.cc: C++ doesn't allow multiple non-extern definitions of an + object, and the attempt at a forward declaration of PIC16C84_INSTR is in + fact a definition. Change the forward declarator's storage class to + extern and that of the actual definition to auto. + + -- Colin Watson Mon, 31 Mar 2003 01:02:53 +0100 + +nitpic (0.1-8.2) unstable; urgency=low + + * NMU + * (closes: #123697) Imakefile: change ComplexProgramTarget() to + ComplexProgramTargetNoMan() becouse this package don't include a + manpage. + * Removed 'Local Variables' in debian/changelog. + + -- Otavio Real Salvador Thu, 28 Feb 2002 19:13:11 -0300 + +nitpic (0.1-8.1) unstable; urgency=low + + * NMU + * 16c84.cc,main.cc: add #include + * 16c84.cc: + - change all cases of "and" used as a variable name to "nitpic_and" + since "and" is now a reserved word in C++ + - as above, for "or" and "xor" + * debian/control: updated Build-Depends; don't need c++-compiler (it is + Build-Essential), need libxaw7-dev + + -- Branden Robinson Fri, 13 Jul 2001 12:43:31 -0600 + +nitpic (0.1-8) unstable; urgency=low + + * Change priority to extra. + * App-defaults directory changed by NMU. (closes: #86282) + + -- Martin Mitchell Sun, 8 Apr 2001 20:57:53 +1000 + +nitpic (0.1-7.1) unstable; urgency=low + + * NMU + * XPICsim: look for .xbm's in /usr/share/nitpic + * debian/control: + - updated Build-Depends + - bumped Standards-Version to 3.5.2 + - tweaked package description + * debian/{postinst,prerm}: /usr/doc -> /usr/share/doc migration policy + * debian/rules: + - install to FHS-compliant paths + - install X bitmap files to /usr/share/nitpic + - give appropriate arguments to "strip" + - ship new control files: conffiles, postinst, prerm + - invoke dpkg-gencontrol with -isp + + -- Branden Robinson Sat, 17 Mar 2001 15:10:13 -0500 + +nitpic (0.1-7) unstable; urgency=low + + * Recompile due to changed binutils. (closes: #64357, #67818) + + -- Martin Mitchell Sun, 30 Jul 2000 13:17:17 +1000 + +nitpic (0.1-6) frozen unstable; urgency=low + + * Const char * fixes for ARM. (closes: #58841) + * Update to standards version 3.1.1. + + -- Martin Mitchell Sun, 27 Feb 2000 02:18:24 +1100 + +nitpic (0.1-5) unstable; urgency=low + + * Recompile for stdc++ 2.9. + + -- Martin Mitchell Tue, 22 Sep 1998 04:53:54 +1000 + +nitpic (0.1-4) frozen unstable; urgency=low + + * Remove std.h reference. (#21666) + * Update to standards version 2.4.1. + + -- Martin Mitchell Tue, 28 Apr 1998 02:27:14 +1000 + +nitpic (0.1-3) unstable; urgency=low + + * Fix dependency on obsolete libbfd package. (#16654) + + -- Martin Mitchell Fri, 16 Jan 1998 00:14:57 +1100 + +nitpic (0.1-2) unstable; urgency=low + + * New maintainer. + * Updated to standards 2.3.0.1. + * Libc6 compile. + * Fix file overlaps. (#9012) + + -- Martin Mitchell Tue, 11 Nov 1997 20:45:27 +1100 + +nitpic (0.1-1) unstable; urgency=low + + * Initial release. + + -- Klee Dienes Fri, 7 Feb 1997 00:02:50 -0500 --- nitpic-0.1.orig/debian/lintian.overrides +++ nitpic-0.1/debian/lintian.overrides @@ -0,0 +1 @@ +nitpic: copyright-should-refer-to-common-license-file-for-gpl --- nitpic-0.1.orig/debian/copyright +++ nitpic-0.1/debian/copyright @@ -0,0 +1,160 @@ +The nitpic package was assembled by Klee Dienes from +sources at . + +It is currently maintained by +Ernesto Nadir Crespo Avila + +The changes were fairly minimal, and consisted of adding various +debian.* files to the distribution, as well as minor changes to the +configuration files. + +The sup package is Copyright (C) by Dave Madden +, and is released under the terms of the +following license (which appears to be substantially the same as the +GPL): + + NITPIC GENERAL PUBLIC LICENSE + (Clarified 11 Feb 1988) + + Copyright (C) 1994 Dave Madden +Everyone is permitted to copy and distribute verbatim copies +of this license, but changing it is not allowed. You can also +use this wording to make the terms for other programs. + + The license agreements of most software companies keep you at the +mercy of those companies. By contrast, our general public license is +intended to give everyone the right to share nitpic. To make +sure that you get the rights we want you to have, we need to make +restrictions that forbid anyone to deny you these rights or to ask you +to surrender the rights. Hence this license agreement. + + Specifically, we want to make sure that you have the right to give +away copies of nitpic, that you receive source code or else can get it +if you want it, that you can change nitpic or use pieces of it in new +free programs, and that you know you can do these things. + + To make sure that everyone has such rights, we have to forbid you to +deprive anyone else of these rights. For example, if you distribute +copies of nitpic, you must give the recipients all the rights that you +have. You must make sure that they, too, receive or can get the +source code. And you must tell them their rights. + + Also, for our own protection, we must make certain that everyone +finds out that there is no warranty for nitpic. If nitpic is +modified by someone else and passed on, we want its recipients to know +that what they have is not what we distributed, so that any problems +introduced by others will not reflect on our reputation. + + Therefore we (Dave Madden and Software +Fools International) make the following terms which say what you must +do to be allowed to distribute or change nitpic. + + COPYING POLICIES + + 1. You may copy and distribute verbatim copies of nitpic source code +as you receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy a valid copyright notice "Copyright +(C) 1994 Software Fools International" (or with whatever year is +appropriate); keep intact the notices on all files that refer to this +License Agreement and to the absence of any warranty; and give any +other recipients of the nitpic program a copy of this License +Agreement along with the program. You may charge a distribution fee +for the physical act of transferring a copy. + + 2. You may modify your copy or copies of nitpic source code or +any portion of it, and copy and distribute such modifications under +the terms of Paragraph 1 above, provided that you also do the following: + + a) cause the modified files to carry prominent notices stating + that you changed the files and the date of any change; and + + b) cause the whole of any work that you distribute or publish, + that in whole or in part contains or is a derivative of nitpic + or any part thereof, to be licensed at no charge to all third + parties on terms identical to those contained in this License + Agreement (except that you may choose to grant more extensive + warranty protection to some or all third parties, at your option). + + c) if the modified program serves as a text editor, cause it when + started running in the simplest and usual way, to print an + announcement including a valid copyright notice "Copyright (C) + 1994 Software Fools International" (or with the year that is + appropriate), saying that there is no warranty (or else, saying + that you provide a warranty) and that users may redistribute the + program under these conditions, and telling the user how to view a + copy of this License Agreement. + + d) You may charge a distribution fee for the physical act of + transferring a copy, and you may at your option offer warranty + protection in exchange for a fee. + +Mere aggregation of another unrelated program with this program (or its +derivative) on a volume of a storage or distribution medium does not bring +the other program under the scope of these terms. + + 3. You may copy and distribute nitpic (or a portion or derivative of it, +under Paragraph 2) in object code or executable form under the terms of +Paragraphs 1 and 2 above provided that you also do one of the following: + + a) accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of + Paragraphs 1 and 2 above; or, + + b) accompany it with a written offer, valid for at least three + years, to give any third party free (except for a nominal + shipping charge) a complete machine-readable copy of the + corresponding source code, to be distributed under the terms of + Paragraphs 1 and 2 above; or, + + c) accompany it with the information you received as to where the + corresponding source code may be obtained. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form alone.) + +For an executable file, complete source code means all the source code for +all modules it contains; but, as a special exception, it need not include +source code for modules which are standard libraries that accompany the +operating system on which the executable file runs. + + 4. You may not copy, sublicense, distribute or transfer nitpic +except as expressly provided under this License Agreement. Any attempt +otherwise to copy, sublicense, distribute or transfer nitpic is void and +your rights to use nitpic under this License agreement shall be +automatically terminated. However, parties who have received computer +software programs from you with this License Agreement will not have +their licenses terminated so long as such parties remain in full compliance. + + 5. If you wish to incorporate parts of nitpic into other free +programs whose distribution conditions are different, write to +Software Fools International. We have not yet worked out a simple +rule that can be stated here, but we will often permit this. We will +be guided by the two goals of preserving the free status of all +derivatives of our free software and of promoting the sharing and +reuse of software. + +Your comments and suggestions about our licensing policies and our +software are welcome! Please contact Software Fools International at +dhm@vheissu.iii.net or call [+1](508)872-9858. + + NO WARRANTY + + BECAUSE NITPIC IS LICENSED FREE OF CHARGE, WE PROVIDE ABSOLUTELY NO +WARRANTY, TO THE EXTENT PERMITTED BY APPLICABLE STATE LAW. EXCEPT +WHEN OTHERWISE STATED IN WRITING, SOFTWARE FOOLS INTERNATIONAL AND/OR +OTHER PARTIES PROVIDE NITPIC "AS IS" WITHOUT WARRANTY OF ANY KIND, +EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +PROGRAM IS WITH YOU. SHOULD THE NITPIC PROGRAM PROVE DEFECTIVE, YOU +ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW WILL SOFTWARE FOOLS +INTERNATIONAL AND/OR ANY OTHER PARTY WHO MAY MODIFY AND REDISTRIBUTE +NITPIC AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +LOST PROFITS, LOST MONIES, OR OTHER SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE +(INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED +INACCURATE OR LOSSES SUSTAINED BY THIRD PARTIES OR A FAILURE OF THE +PROGRAM TO OPERATE WITH PROGRAMS NOT DISTRIBUTED BY SOFTWARE FOOLS +INTERNATIONAL) THE PROGRAM, EVEN IF YOU HAVE BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES, OR FOR ANY CLAIM BY ANY OTHER PARTY.