Imported from libpng-0.99p.tar
diff --git a/CHANGES b/CHANGES
index 19a728f..9535087 100644
--- a/CHANGES
+++ b/CHANGES
@@ -268,3 +268,11 @@
    changed some typedefs (s_start, etc.) in pngrutil.c
    fixed dimensions of "short_months" array in pngwrite.c
    Replaced ansi2knr.c with the one from jpeg-v6
+version 1.0.0 [March 8, 1998]
+   Changed name from 1.00 to 1.0.0 (Adam Costello)
+   Added smakefile.ppc (with SCOPTIONS.ppc) for Amiga PPC (Andreas Kleinert)
+version 1.0.1 [March 9, 1998]
+   Fixed three bugs in pngrtran.c to make gamma+background handling consistent
+   (Greg Roelofs)
+   Changed format of the PNG_LIBPNG_VER integer to xyyyzzzz instead of xyz
+   for major, minor, and bugfix releases.  This is 10000001L. (Adam Costello)
diff --git a/INSTALL b/INSTALL
index a14e1ac..bc9f5f0 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,5 +1,5 @@
 
-Installing libpng version 1.00 March 7, 1998
+Installing libpng version 1.0.1 March 9, 1998
 
 Before installing libpng, you must first install zlib.  zlib
 can usually be found wherever you got libpng.  zlib can be
@@ -10,7 +10,7 @@
 version of zlib that's installed.
 
 You can rename the directories that you downloaded (they
-might be called "libpng-1.00 or "lpng100" and "zlib-1.1.1"
+might be called "libpng-1.0.1 or "lpng100" and "zlib-1.1.1"
 or "zlib111") so that you have directories called "zlib" and "libpng".
 
 Your directory structure should look like this:
@@ -44,11 +44,13 @@
       makefile.dec  =>  DEC Alpha UNIX makefile
       makefile.sgi  =>  Silicon Graphics IRIX makefile
       makefile.sun  =>  Sun makefile
-      makefile.s2x  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.00)
-      makefile.lnx  =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.00)
+      makefile.s2x  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.0)
+      makefile.lnx  =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0)
       makefile.mip  =>  MIPS makefile
       makefile.aco  =>  Acorn makefile
       makefile.ama  =>  Amiga makefile
+      smakefile.ppc =>  AMIGA smakefile for SAS C V6.58/7.00 PPC compiler
+                        (Requires SCOPTIONS, copied from scripts/SCOPTIONS.ppc)
       makefile.atr  =>  Atari makefile
       makefile.bor  =>  Borland makefile
       build.bat     =>  MS-DOS batch file for Borland compiler
diff --git a/README b/README
index 4390f6a..ea463cd 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-README for libpng 1.00 (shared library 2.1)
+README for libpng 1.0.1 (shared library 2.1)
 See the note about version numbers near the top of png.h
 
 See INSTALL for instructions on how to install libpng.
@@ -161,11 +161,13 @@
         makefile.dec  =>  DEC Alpha UNIX makefile
         makefile.sgi  =>  Silicon Graphics IRIX makefile
         makefile.sun  =>  Sun makefile
-        makefile.s2x  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.00)
-        makefile.lnx  =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.00)
+        makefile.s2x  =>  Solaris 2.X makefile (gcc, creates libpng.so.2.1.0)
+        makefile.lnx  =>  Linux/ELF makefile (gcc, creates libpng.so.2.1.0)
         makefile.mip  =>  MIPS makefile
         makefile.aco  =>  Acorn makefile
         makefile.ama  =>  Amiga makefile
+        smakefile.ppc =>  AMIGA smakefile for SAS C V6.58/7.00 PPC compiler
+                          (Requires SCOPTIONS, copied from scripts/SCOPTIONS.ppc)
         makefile.atr  =>  Atari makefile
         makefile.bor  =>  Borland makefile
         build.bat     =>  MS-DOS batch file for Borland compiler
diff --git a/example.c b/example.c
index f984067..bc86aed 100644
--- a/example.c
+++ b/example.c
@@ -15,7 +15,7 @@
 
 #include "png.h"
 
-/* Check to see if a file is a PNG file using png_check_sig().  Returns
+/* Check to see if a file is a PNG file using png_sig_cmp().  Returns
  * non-zero if the image is a PNG, and 0 if it isn't a PNG.
  *
  * If this call is successful, and you are going to keep the file open,
@@ -29,7 +29,7 @@
  *
  * Many applications already read the first 2 or 4 bytes from the start
  * of the image to determine the file type, so it would be easiest just
- * to pass the bytes to png_check_sig() or even skip that if you know
+ * to pass the bytes to png_sig_cmp() or even skip that if you know
  * you have a PNG file, and call png_set_sig_bytes().
  */
 #define PNG_BYTES_TO_CHECK 4
@@ -46,7 +46,7 @@
       return 0;
 
    /* Compare the first PNG_BYTES_TO_CHECK bytes of the signature. */
-   return(png_check_sig(buf, PNG_BYTES_TO_CHECK));
+   return(png_sig_cmp(buf, (png_size_t)0, PNG_BYTES_TO_CHECK));
 }
 
 /* Read a PNG file.  You may want to return an error code if the read
@@ -92,7 +92,7 @@
    }
 
    /* Allocate/initialize the memory for image information.  REQUIRED. */
-   info_ptr = png_create_info_struct();
+   info_ptr = png_create_info_struct(png_ptr);
    if (info_ptr == NULL)
    {
       fclose(fp);
@@ -127,7 +127,7 @@
 #endif no_streams /* Use only one I/O method! */
 
    /* If we have already read some of the signature */
-   png_set_sig_bytes_read(png_ptr, sig_read);
+   png_set_sig_bytes(png_ptr, sig_read);
 
    /* The call to png_read_info() gives us all of the information from the
     * PNG file before the first IDAT (image data chunk).  REQUIRED
diff --git a/libpng.3 b/libpng.3
index c224700..1226d78 100644
--- a/libpng.3
+++ b/libpng.3
@@ -1,4 +1,4 @@
-.TH LIBPNG 3 "March 7, 1998"
+.TH LIBPNG 3 "March 9, 1998"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library
 .SH SYNOPSIS
@@ -396,7 +396,7 @@
 .SH LIBPNG.TXT
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.00 March 7, 1998
+ libpng version 1.0.1 March 9, 1998
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alumni.rpi.edu>
  Copyright (c) 1998, Glenn Randers-Pehrson
@@ -2301,13 +2301,13 @@
                         [should have been 2.0.95]
  0.96  ("1.0 beta 6")      0.96      0.96
                         [should have been 2.0.96]
- 0.97b ("1.00.97 beta 7")  1.00.97   1.0.0
+ 0.97b ("1.00.97 beta 7")  1.00.97   1.0.1
                          [should have been 2.0.97]
  0.97c                     0.97      2.0.97
  0.98                      0.98      2.0.98
  0.99                      0.99      2.0.99
  0.99a-m                   0.99      2.0.99
- 1.0                       1.00      2.1.0
+ 1.0.1                     1.00      2.1.0
 
 Henceforth the source version will match the shared-library minor
 and patch numbers; the shared-library major version number will be
@@ -2365,7 +2365,7 @@
 
 Thanks to Frank J. T. Wojcik for helping with the documentation.
   
-Libpng version 1.00 (March 7, 1998):
+Libpng version 1.0.1 (March 9, 1998):
 Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
 Currently maintained by Glenn Randers-Pehrson (randeg@alumni.rpi.edu).
 
diff --git a/libpng.txt b/libpng.txt
index 3740fbe..36fa38f 100644
--- a/libpng.txt
+++ b/libpng.txt
@@ -1,6 +1,6 @@
 libpng.txt - A description on how to use and modify libpng
 
- libpng version 1.00 March 7, 1998
+ libpng version 1.0.1 March 9, 1998
  Updated and distributed by Glenn Randers-Pehrson
  <randeg@alumni.rpi.edu>
  Copyright (c) 1998, Glenn Randers-Pehrson
diff --git a/libpngpf.3 b/libpngpf.3
index 082c47e..00730b9 100644
--- a/libpngpf.3
+++ b/libpngpf.3
@@ -1,4 +1,4 @@
-.TH LIBPNGPF 3 "March 7, 1998"
+.TH LIBPNGPF 3 "March 9, 1998"
 .SH NAME
 libpng \- Portable Network Graphics (PNG) Reference Library
 (private functions)
diff --git a/png.5 b/png.5
index 49d6959..0ba9dff 100644
--- a/png.5
+++ b/png.5
@@ -1,4 +1,4 @@
-.TH PNG 5 "March 7, 1998"
+.TH PNG 5 "March 9, 1998"
 .SH NAME
 png \- Portable Network Graphics (PNG) format
 .SH DESCRIPTION
diff --git a/png.c b/png.c
index bbbf8e4..52723df 100644
--- a/png.c
+++ b/png.c
@@ -1,12 +1,12 @@
 
 /* png.c - location for general purpose libpng functions
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  */
 
 #define PNG_INTERNAL
@@ -16,7 +16,7 @@
 /* Version information for C files.  This had better match the version
  * string defined in png.h.
  */
-char png_libpng_ver[5] = "1.00";
+char png_libpng_ver[6] = "1.0.1";
 
 /* Place to hold the signature string for a PNG file. */
 png_byte FARDATA png_sig[8] = {137, 80, 78, 71, 13, 10, 26, 10};
diff --git a/png.h b/png.h
index db2bac3..5922edd 100644
--- a/png.h
+++ b/png.h
@@ -1,12 +1,12 @@
 
 /* png.h - header file for PNG reference library
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see the COPYRIGHT NOTICE below.
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998 Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  *
  * Note about libpng version numbers:
  *
@@ -23,12 +23,12 @@
  *      0.90  ("1.0 beta 4")      0.90      0.90  [should have been 2.0.90]
  *      0.95  ("1.0 beta 5")      0.95      0.95  [should have been 2.0.95]
  *      0.96  ("1.0 beta 6")      0.96      0.96  [should have been 2.0.96]
- *      0.97b ("1.00.97 beta 7")  1.00.97   1.0.0 [should have been 2.0.97]
+ *      0.97b ("1.00.97 beta 7")  1.00.97   1.0.1 [should have been 2.0.97]
  *      0.97c                     0.97      2.0.97
  *      0.98                      0.98      2.0.98
  *      0.99                      0.99      2.0.99
  *      0.99a-m                   0.99      2.0.99
- *      1.00                      1.00      2.1.0
+ *      1.0.1                     1.00      2.1.0
  *
  *    Henceforth the source version will match the shared-library minor
  *    and patch numbers; the shared-library major version number will be
@@ -112,19 +112,20 @@
  */
 
 /* Version information for png.h - this should match the version in png.c */
-#define PNG_LIBPNG_VER_STRING "1.00"
+#define PNG_LIBPNG_VER_STRING "1.0.1"
 
 /* careful here.  At one time, I wanted to use 082, but that would be octal.
- * Version 1.0 will be 100 here, etc.
- */
-#define PNG_LIBPNG_VER  100
+ * We must not include leading blanks.
+ * Versions 0.7 through 1.0.0 were in the range 0 to 100 here.  From
+ * version 1.0.1 it's   xxxyyyzzzzL, where x=major, y=minor, z-bugfix*/
+#define PNG_LIBPNG_VER    10000001L
 
 /* variables declared in png.c - only it needs to define PNG_NO_EXTERN */
 #if !defined(PNG_NO_EXTERN) || defined(PNG_ALWAYS_EXTERN)
 /* Version information for C files, stored in png.c.  This had better match
  * the version above.
  */
-extern char png_libpng_ver[5];
+extern char png_libpng_ver[6];
 
 /* Structures to facilitate easy interlacing.  See png.c for more details */
 extern int FARDATA png_pass_start[7];
@@ -1483,11 +1484,11 @@
 #define PNG_GAMMA              0x2000
 #define PNG_GRAY_TO_RGB        0x4000
 #define PNG_FILLER             0x8000
-#define PNG_PACKSWAP          0x10000L
+#define PNG_PACKSWAP          0x1.0.1L
 #define PNG_SWAP_ALPHA        0x20000L
 #define PNG_STRIP_ALPHA       0x40000L
 #define PNG_INVERT_ALPHA      0x80000L
-#define PNG_USER_TRANSFORM   0x100000L
+#define PNG_USER_TRANSFORM   0x1.0.10L
 
 /* flags for png_create_struct */
 #define PNG_STRUCT_PNG   0x0001
@@ -1516,7 +1517,7 @@
 #define PNG_FLAG_FREE_TRANS               0x2000
 #define PNG_FLAG_FREE_HIST                0x4000
 #define PNG_FLAG_HAVE_CHUNK_HEADER        0x8000L
-#define PNG_FLAG_WROTE_tIME              0x10000L
+#define PNG_FLAG_WROTE_tIME              0x1.0.1L
 
 #define PNG_FLAG_CRC_ANCILLARY_MASK (PNG_FLAG_CRC_ANCILLARY_USE | \
                                      PNG_FLAG_CRC_ANCILLARY_NOWARN)
diff --git a/pngconf.h b/pngconf.h
index 6d0adb1..56d189b 100644
--- a/pngconf.h
+++ b/pngconf.h
@@ -1,12 +1,12 @@
 
 /* pngconf.h - machine configurable file for libpng
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  */
 
 /* Any machine specific code is near the front of this file, so if you
diff --git a/pngerror.c b/pngerror.c
index 98d5930..2942a5b 100644
--- a/pngerror.c
+++ b/pngerror.c
@@ -1,12 +1,12 @@
 
 /* pngerror.c - stub functions for i/o and memory allocation
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  *
  * This file provides a location for all error handling.  Users which
  * need special error handling are expected to write replacement functions
diff --git a/pngget.c b/pngget.c
index 6296589..29be31f 100644
--- a/pngget.c
+++ b/pngget.c
@@ -1,12 +1,12 @@
 
 /* pngget.c - retrieval of values from info struct
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  */
 
 #define PNG_INTERNAL
@@ -259,14 +259,14 @@
 png_get_x_offset_inches(png_structp png_ptr, png_infop info_ptr)
 {
    return ((float)png_get_x_offset_microns(png_ptr, info_ptr)
-     *.03937/1000000. +.5)
+     *.03937/1.0.100. +.5)
 }
 
 float
 png_get_y_offset_inches(png_structp png_ptr, png_infop info_ptr)
 {
    return ((float)png_get_y_offset_microns(png_ptr, info_ptr)
-     *.03937/1000000. +.5)
+     *.03937/1.0.100. +.5)
 }
 
 #if defined(PNG_READ_pHYs_SUPPORTED)
diff --git a/pngmem.c b/pngmem.c
index 5099920..521556f 100644
--- a/pngmem.c
+++ b/pngmem.c
@@ -1,12 +1,12 @@
 
 /* pngmem.c - stub functions for memory allocation
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  *
  * This file provides a location for all memory allocation.  Users which
  * need special memory handling are expected to modify the code in this file
diff --git a/pngpread.c b/pngpread.c
index 1723fd1..37d4d25 100644
--- a/pngpread.c
+++ b/pngpread.c
@@ -1,12 +1,12 @@
 
 /* pngpread.c - read a png file in push mode
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  */
 
 #define PNG_INTERNAL
diff --git a/pngread.c b/pngread.c
index b1a1f8e..cc490c2 100644
--- a/pngread.c
+++ b/pngread.c
@@ -1,12 +1,12 @@
 
 /* pngread.c - read a PNG file
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  *
  * This file contains routines that an application calls directly to
  * read a PNG file or stream.
diff --git a/pngrio.c b/pngrio.c
index 5d6682c..f165018 100644
--- a/pngrio.c
+++ b/pngrio.c
@@ -1,12 +1,12 @@
 
 /* pngrio.c - functions for data input
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  *
  * This file provides a location for all input.  Users which need
  * special handling are expected to write a function which has the same
diff --git a/pngrtran.c b/pngrtran.c
index adc84dd..e1699d5 100644
--- a/pngrtran.c
+++ b/pngrtran.c
@@ -1,12 +1,12 @@
 
 /* pngrtran.c - transforms the data in a row for PNG readers
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  *
  * This file contains functions optionally called by an application 
  * in order to tell libpng how to handle data when reading a PNG.
@@ -665,7 +665,8 @@
         if (png_ptr->transformations & PNG_INVERT_ALPHA)
         {
 #if defined(PNG_READ_EXPAND_SUPPORTED)
-           if (png_ptr->transformations & !PNG_EXPAND)
+           /* GRR BUG #1:  was (png_ptr->transformations & !PNG_EXPAND) */
+           if (!(png_ptr->transformations & PNG_EXPAND))
 #endif
            {
            /* invert the alpha channel (in tRNS) unless the pixels are 
@@ -712,41 +713,65 @@
             }
             else
             {
-               double g;
+               double g, gs;
 
-               g = 1.0 / (png_ptr->background_gamma * png_ptr->screen_gamma);
-
-               if (png_ptr->background_gamma_type==PNG_BACKGROUND_GAMMA_SCREEN||
-                   fabs(g - 1.0) < PNG_GAMMA_THRESHOLD)
+/*
+               GRR BUG #3:  inconsistent with handling of full RGBA below
+               g = 1.0 / png_ptr->background_gamma;
+               gs = 1.0 / (png_ptr->background_gamma * png_ptr->screen_gamma);
+ */
+               switch (png_ptr->background_gamma_type)
                {
-                  back.red = (png_byte)png_ptr->background.red;
+                  case PNG_BACKGROUND_GAMMA_SCREEN:
+                     g = (png_ptr->screen_gamma);
+                     gs = 1.0;
+                     break;
+                  case PNG_BACKGROUND_GAMMA_FILE:
+                     g = 1.0 / (png_ptr->gamma);
+                     gs = 1.0 / (png_ptr->gamma * png_ptr->screen_gamma);
+                     break;
+                  case PNG_BACKGROUND_GAMMA_UNIQUE:
+                     g = 1.0 / (png_ptr->background_gamma);
+                     gs = 1.0 / (png_ptr->background_gamma *
+                                 png_ptr->screen_gamma);
+                     break;
+                  default:
+                     g = 1.0;    /* back_1 */
+                     gs = 1.0;   /* back */
+               }
+
+               if (
+/*
+                   GRR BUG #2:  This creates self-inconsistent images--fully
+                     transparent and fully opaque look fine, but translucent
+                     pixels are wrong (too bright if XV's code can be trusted).
+                     Commenting it out makes an internally self-consistent
+                     image, but still not consistent with RGBA version of same
+                     thing (again, too bright in XV).
+                   png_ptr->background_gamma_type==PNG_BACKGROUND_GAMMA_SCREEN||
+ */
+                   fabs(gs - 1.0) < PNG_GAMMA_THRESHOLD)
+               {
+                  back.red   = (png_byte)png_ptr->background.red;
                   back.green = (png_byte)png_ptr->background.green;
-                  back.blue = (png_byte)png_ptr->background.blue;
+                  back.blue  = (png_byte)png_ptr->background.blue;
                }
                else
                {
-                  back.red =
-                     (png_byte)(pow((double)png_ptr->background.red/255, g) *
-                      255.0 + 0.5);
-                  back.green =
-                     (png_byte)(pow((double)png_ptr->background.green/255, g) *
-                      255.0 + 0.5);
-                  back.blue =
-                     (png_byte)(pow((double)png_ptr->background.blue/255, g) *
-                      255.0 + 0.5);
+                  back.red = (png_byte)(pow(
+                     (double)png_ptr->background.red/255, gs) * 255.0 + .5);
+                  back.green = (png_byte)(pow(
+                     (double)png_ptr->background.green/255, gs) * 255.0 + .5);
+                  back.blue = (png_byte)(pow(
+                     (double)png_ptr->background.blue/255, gs) * 255.0 + .5);
                }
 
-               g = 1.0 / png_ptr->background_gamma;
-
-               back_1.red =
-                  (png_byte)(pow((double)png_ptr->background.red/255, g) *
-                   255.0 + 0.5);
-               back_1.green =
-                  (png_byte)(pow((double)png_ptr->background.green/255, g) *
-                   255.0 + 0.5);
-               back_1.blue =
-                  (png_byte)(pow((double)png_ptr->background.blue/255, g) *
-                   255.0 + 0.5);
+               back_1.red = (png_byte)(pow(
+                  (double)png_ptr->background.red/255, g) * 255.0 + .5);
+               back_1.green = (png_byte)(pow(
+                  (double)png_ptr->background.green/255, g) * 255.0 + .5);
+               back_1.blue = (png_byte)(pow(
+                  (double)png_ptr->background.blue/255, g) * 255.0 + .5);
             }
 
             for (i = 0; i < num_palette; i++)
diff --git a/pngrutil.c b/pngrutil.c
index 7bc0f18..94664de 100644
--- a/pngrutil.c
+++ b/pngrutil.c
@@ -1,12 +1,12 @@
 
 /* pngrutil.c - utilities to read a PNG file
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  *
  * This file contains routines which are only called from within
  * libpng itself during the course of reading an image.
@@ -436,7 +436,7 @@
       }
 #endif /* PNG_READ_sRGB_SUPPORTED */
 
-   file_gamma = (float)igamma / (float)100000.0;
+   file_gamma = (float)igamma / (float)1.0.10.0;
 #ifdef PNG_READ_GAMMA_SUPPORTED
    png_ptr->gamma = file_gamma;
 #endif
@@ -549,11 +549,11 @@
 
    png_crc_read(png_ptr, buf, 4);
    val = png_get_uint_32(buf);
-   white_x = (float)val / (float)100000.0;
+   white_x = (float)val / (float)1.0.10.0;
 
    png_crc_read(png_ptr, buf, 4);
    val = png_get_uint_32(buf);
-   white_y = (float)val / (float)100000.0;
+   white_y = (float)val / (float)1.0.10.0;
 
    if (white_x < 0 || white_x > 0.8 || white_y < 0 || white_y > 0.8 ||
        white_x + white_y > 1.0)
@@ -565,11 +565,11 @@
 
    png_crc_read(png_ptr, buf, 4);
    val = png_get_uint_32(buf);
-   red_x = (float)val / (float)100000.0;
+   red_x = (float)val / (float)1.0.10.0;
 
    png_crc_read(png_ptr, buf, 4);
    val = png_get_uint_32(buf);
-   red_y = (float)val / (float)100000.0;
+   red_y = (float)val / (float)1.0.10.0;
 
    if (red_x < 0 || red_x > 0.8 || red_y < 0 || red_y > 0.8 ||
        red_x + red_y > 1.0)
@@ -581,11 +581,11 @@
 
    png_crc_read(png_ptr, buf, 4);
    val = png_get_uint_32(buf);
-   green_x = (float)val / (float)100000.0;
+   green_x = (float)val / (float)1.0.10.0;
 
    png_crc_read(png_ptr, buf, 4);
    val = png_get_uint_32(buf);
-   green_y = (float)val / (float)100000.0;
+   green_y = (float)val / (float)1.0.10.0;
 
    if (green_x < 0 || green_x > 0.8 || green_y < 0 || green_y > 0.8 ||
        green_x + green_y > 1.0)
@@ -597,11 +597,11 @@
 
    png_crc_read(png_ptr, buf, 4);
    val = png_get_uint_32(buf);
-   blue_x = (float)val / (float)100000.0;
+   blue_x = (float)val / (float)1.0.10.0;
 
    png_crc_read(png_ptr, buf, 4);
    val = png_get_uint_32(buf);
-   blue_y = (float)val / (float)100000.0;
+   blue_y = (float)val / (float)1.0.10.0;
 
    if (blue_x < (float)0 || blue_x > (float)0.8 || blue_y < (float)0 ||
        blue_y > (float)0.8 || blue_x + blue_y > (float)1.0)
@@ -694,7 +694,7 @@
 
 #if defined(PNG_READ_gAMA_SUPPORTED) && defined(PNG_READ_GAMMA_SUPPORTED)
    if ((info_ptr->valid & PNG_INFO_gAMA))
-      if((png_uint_32)(png_ptr->gamma*(float)100000.+.5) != (png_uint_32)45000L)
+      if((png_uint_32)(png_ptr->gamma*(float)1.0.10.+.5) != (png_uint_32)45000L)
       {
          png_warning(png_ptr,
            "Ignoring incorrect gAMA value when sRGB is also present");
diff --git a/pngset.c b/pngset.c
index 9ccb108..d58f2fe 100644
--- a/pngset.c
+++ b/pngset.c
@@ -1,12 +1,12 @@
 
 /* pngset.c - storage of image information into info struct
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  *
  * The functions here are used during reads to store data from the file
  * into the info struct, and during writes to store application data
diff --git a/pngtest.c b/pngtest.c
index e1a3ea0..76df2da 100644
--- a/pngtest.c
+++ b/pngtest.c
@@ -1,12 +1,12 @@
 
 /* pngtest.c - a simple test program to test libpng
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  *
  * This program reads in a PNG image, writes it out again, and then
  * compares the two files.  If the files are identical, this shows that
diff --git a/pngtrans.c b/pngtrans.c
index d67afa8..771366b 100644
--- a/pngtrans.c
+++ b/pngtrans.c
@@ -1,12 +1,12 @@
 
 /* pngtrans.c - transforms the data in a row (used by both readers and writers)
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  */
 
 #define PNG_INTERNAL
diff --git a/pngwio.c b/pngwio.c
index c8879ef..fa5ade8 100644
--- a/pngwio.c
+++ b/pngwio.c
@@ -1,12 +1,12 @@
 
 /* pngwio.c - functions for data output
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  *
  * This file provides a location for all output.  Users which need
  * special handling are expected to write functions which have the same
diff --git a/pngwrite.c b/pngwrite.c
index 1a92322..9d3fdc3 100644
--- a/pngwrite.c
+++ b/pngwrite.c
@@ -1,12 +1,12 @@
    
 /* pngwrite.c - general routines to write a PNG file
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  */
 
 /* get internal access to png.h */
diff --git a/pngwtran.c b/pngwtran.c
index 25a2d64..2db759e 100644
--- a/pngwtran.c
+++ b/pngwtran.c
@@ -1,12 +1,12 @@
 
 /* pngwtran.c - transforms the data in a row for PNG writers
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  */
 
 #define PNG_INTERNAL
diff --git a/pngwutil.c b/pngwutil.c
index 04fb1de..17faf8f 100644
--- a/pngwutil.c
+++ b/pngwutil.c
@@ -1,12 +1,12 @@
 
 /* pngwutil.c - utilities to write a PNG file
  *
- * libpng 1.00
+ * libpng 1.0.1
  * For conditions of distribution and use, see copyright notice in png.h
  * Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.
  * Copyright (c) 1996, 1997 Andreas Dilger
  * Copyright (c) 1998, Glenn Randers-Pehrson
- * March 7, 1998
+ * March 9, 1998
  */
 
 #define PNG_INTERNAL
@@ -340,8 +340,8 @@
    png_byte buf[4];
 
    png_debug(1, "in png_write_gAMA\n");
-   /* file_gamma is saved in 1/100,000ths */
-   igamma = (png_uint_32)(file_gamma * 100000.0 + 0.5);
+   /* file_gamma is saved in 1/1.0.100ths */
+   igamma = (png_uint_32)(file_gamma * 1.0.10.0 + 0.5);
    png_save_uint_32(buf, igamma);
    png_write_chunk(png_ptr, png_gAMA, buf, (png_size_t)4);
 }
@@ -426,16 +426,16 @@
    png_byte buf[32];
 
    png_debug(1, "in png_write_cHRM\n");
-   /* each value is saved int 1/100,000ths */
+   /* each value is saved int 1/1.0.100ths */
    if (white_x < 0 || white_x > 0.8 || white_y < 0 || white_y > 0.8 ||
        white_x + white_y > 1.0)
    {
       png_warning(png_ptr, "Invalid cHRM white point specified");
       return;
    }
-   itemp = (png_uint_32)(white_x * 100000.0 + 0.5);
+   itemp = (png_uint_32)(white_x * 1.0.10.0 + 0.5);
    png_save_uint_32(buf, itemp);
-   itemp = (png_uint_32)(white_y * 100000.0 + 0.5);
+   itemp = (png_uint_32)(white_y * 1.0.10.0 + 0.5);
    png_save_uint_32(buf + 4, itemp);
 
    if (red_x < 0 || red_x > 0.8 || red_y < 0 || red_y > 0.8 ||
@@ -444,9 +444,9 @@
       png_warning(png_ptr, "Invalid cHRM red point specified");
       return;
    }
-   itemp = (png_uint_32)(red_x * 100000.0 + 0.5);
+   itemp = (png_uint_32)(red_x * 1.0.10.0 + 0.5);
    png_save_uint_32(buf + 8, itemp);
-   itemp = (png_uint_32)(red_y * 100000.0 + 0.5);
+   itemp = (png_uint_32)(red_y * 1.0.10.0 + 0.5);
    png_save_uint_32(buf + 12, itemp);
 
    if (green_x < 0 || green_x > 0.8 || green_y < 0 || green_y > 0.8 ||
@@ -455,9 +455,9 @@
       png_warning(png_ptr, "Invalid cHRM green point specified");
       return;
    }
-   itemp = (png_uint_32)(green_x * 100000.0 + 0.5);
+   itemp = (png_uint_32)(green_x * 1.0.10.0 + 0.5);
    png_save_uint_32(buf + 16, itemp);
-   itemp = (png_uint_32)(green_y * 100000.0 + 0.5);
+   itemp = (png_uint_32)(green_y * 1.0.10.0 + 0.5);
    png_save_uint_32(buf + 20, itemp);
 
    if (blue_x < 0 || blue_x > 0.8 || blue_y < 0 || blue_y > 0.8 ||
@@ -466,9 +466,9 @@
       png_warning(png_ptr, "Invalid cHRM blue point specified");
       return;
    }
-   itemp = (png_uint_32)(blue_x * 100000.0 + 0.5);
+   itemp = (png_uint_32)(blue_x * 1.0.10.0 + 0.5);
    png_save_uint_32(buf + 24, itemp);
-   itemp = (png_uint_32)(blue_y * 100000.0 + 0.5);
+   itemp = (png_uint_32)(blue_y * 1.0.10.0 + 0.5);
    png_save_uint_32(buf + 28, itemp);
 
    png_write_chunk(png_ptr, png_cHRM, buf, (png_size_t)32);
diff --git a/scripts/SCOPTIONS.ppc b/scripts/SCOPTIONS.ppc
new file mode 100644
index 0000000..2c3503e
--- /dev/null
+++ b/scripts/SCOPTIONS.ppc
@@ -0,0 +1,7 @@
+OPTIMIZE
+OPTPEEP
+OPTTIME
+OPTSCHED
+AUTOREGISTER
+PARMS=REGISTERS
+INCLUDEDIR=hlp:ppc/include
diff --git a/scripts/makefile.lnx b/scripts/makefile.lnx
index 851eb82..3d1a76a 100644
--- a/scripts/makefile.lnx
+++ b/scripts/makefile.lnx
@@ -24,7 +24,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.00
+PNGMIN = 1.0
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # where make install puts libpng.a, libpng.so*, and png.h
diff --git a/scripts/makefile.s2x b/scripts/makefile.s2x
index 48055b6..0503890 100644
--- a/scripts/makefile.s2x
+++ b/scripts/makefile.s2x
@@ -23,7 +23,7 @@
 # read libpng.txt or png.h to see why PNGMAJ is 2.  You should not
 # have to change it.
 PNGMAJ = 2
-PNGMIN = 1.00
+PNGMIN = 1.0
 PNGVER = $(PNGMAJ).$(PNGMIN)
 
 # where make install puts libpng.a, libpng.so*, and png.h
diff --git a/scripts/makefile.wat b/scripts/makefile.wat
index 761aad5..a715acb 100644
--- a/scripts/makefile.wat
+++ b/scripts/makefile.wat
@@ -1,5 +1,5 @@
 # Makefile for libpng
-# Watcom 10a+ 32-bit protected mode flat memory model
+# Watcom 10a and later 32-bit protected mode flat memory model
 
 # Adapted by Pawel Mrochen, based on makefile.msc
 # For conditions of distribution and use, see copyright notice in png.h
@@ -7,7 +7,7 @@
 
 # To use, do "wmake -f makefile.wat"
 
-# ------------- Watcom 10a+ -------------
+# ------------- Watcom 10a and later -------------
 MODEL=-mf
 CFLAGS= $(MODEL) -fpi87 -fp5 -5r -oaeilmnrt -s -zp4 -i=..\zlib
 CC=wcc386
diff --git a/scripts/smakefile.ppc b/scripts/smakefile.ppc
new file mode 100644
index 0000000..fa3cad4
--- /dev/null
+++ b/scripts/smakefile.ppc
@@ -0,0 +1,29 @@
+# Amiga powerUP (TM) Makefile
+# makefile for libpng and SAS C V6.58/7.00 PPC compiler
+# Copyright (C) 1998 by Andreas R. Kleinert
+
+CC       = scppc
+CFLAGS   = NOSTKCHK NOSINT OPTIMIZE OPTGO OPTPEEP OPTINLOCAL OPTINL IDIR /zlib \
+           OPTLOOP OPTRDEP=8 OPTDEP=8 OPTCOMP=8
+LIBNAME  = libpng.a
+AR       = ppc-amigaos-ar
+AR_FLAGS = cr
+RANLIB   = ppc-amigaos-ranlib
+LDFLAGS  = -r -o
+LDLIBS   =  ../zlib/libzip.a LIB:scppc.a
+LN       = ppc-amigaos-ld
+RM       = delete quiet
+MKDIR    = makedir
+
+OBJS = png.o pngset.o pngget.o pngrutil.o pngtrans.o pngwutil.o pngread.o \
+pngerror.o pngpread.o pngwrite.o pngrtran.o pngwtran.o pngrio.o pngwio.o pngmem.o
+
+all: $(LIBNAME) pngtest
+
+$(LIBNAME): $(OBJS)
+            $(AR) $(AR_FLAGS) $@ $(OBJS)
+            $(RANLIB) $@
+
+pngtest: pngtest.o $(LIBNAME)
+        $(LN) $(LDFLAGS) pngtest LIB:c_ppc.o pngtest.o $(LIBNAME) $(LDLIBS) \
+LIB:end.o