Dec 242017
Port of PBM Plus from Unix to OS/2 2.0. Powerful image processing/conversion tool. (Hint: Ported from Unix = Not Easy to Use). Part 1 of 5.
File PBMPLUS1.ZIP from The Programmer’s Corner in
Category OS/2 Files
Port of PBM Plus from Unix to OS/2 2.0. Powerful image processing/conversion tool. (Hint: Ported from Unix = Not Easy to Use). Part 1 of 5.
File Name File Size Zip Size Zip Type
ATKTOPBM.EXE 39424 20593 deflated
BRUSHTOP.EXE 30720 16508 deflated
CMUWMTOP.EXE 30720 16541 deflated
FITSTOPG.EXE 39936 20854 deflated
FSTOPGM.EXE 38400 20381 deflated
G3TOPBM.EXE 35840 18162 deflated
GEMTOPBM.EXE 31744 17109 deflated
GIFTOPPM.EXE 43008 22964 deflated
GOULDTOP.EXE 32256 16982 deflated
HIPSTOPG.EXE 32256 17125 deflated
ICONTOPB.EXE 37888 20079 deflated
ILBMTOPP.EXE 35328 18754 deflated
IMGTOPPM.EXE 39424 20545 deflated
LIBPBM.DLL 33792 17684 deflated
LIBPGM.DLL 25088 13648 deflated
LIBPNM.DLL 32768 16885 deflated
LIBPPM.DLL 43008 22906 deflated
LIBTIFF 0 0 stored
LIBTIFF.DLL 216576 44949 deflated
DIR.C 75520 16098 deflated
FAX3.C 30489 8484 deflated
LIBTIFF.DEF 988 323 deflated
LZW.C 25794 7734 deflated
MAKEFILE 3540 1572 deflated
OPEN.C 8515 3014 deflated
READ.C 16843 3857 deflated
WRITE.C 17497 4557 deflated
LISPMTOP.EXE 31744 16867 deflated
MACPTOPB.EXE 37888 19965 deflated
MAKEFILE 6671 2477 deflated
MGRTOPBM.EXE 31232 16704 deflated
MTVTOPPM.EXE 38400 20132 deflated
README 3170 1398 deflated

Download File PBMPLUS1.ZIP Here

Contents of the README file

brought to you by Michael Caldwell ([email protected])
the one who ported GNU e?grep 1.5 to OS/2 1.x and Windows NT.
GNU e?grep for OS/2 1.x is available on Exec-PC.
GNU e?grep for Windows NT is available on Compuserve MSWin32 forum.

I have not been able to use the MSDOS version of pbmplus under OS/2 1.3
or OS/2 2.0, it causes OS/2 1.3 to hang and it causes an OS/2 2.0 VDM to
trap. So I have ported pbmplus (10dec91) to OS/2 2.0 using gcc 2.1.


I have modified the makefiles, the library files, the tiff library files,
and of course the configure items in 'pbmplus.h'.

I had to shorten the file names for the tiff library because I'm using
nmake. This wasn't necessary for the pbmplus files because inference rules
don't have the 8.3 limitation, I've reported the 8.3 limitation on
description blocks as a bug to IBM.

I had to change the use of malloc with DosAllocMem for the dll source
code. The libc library malloc function only works when linked in an
executable and will always fail when linked in a dll. I've tried
reporting this bug to the GNU people at MIT, but they don't know about the
OS/2 port. And I cannot find the name of somebody to report this to in
any of the text files that came with gcc for OS/2.

I created .def files for the dlls and the exes.

The libraries are dlls with the nonshared data attribute set.

The dlls import functions from other dlls, so you have to have all the
dlls including the tiff library dll in your libpath.

Gcc 2.1 took 30MB of swap file space (in addition to the normally 10MB size
of my 'swapper.dat' file) on a machine with 16MB physical RAM to compile
the 'tif_fax3.c' file in the tiff library, probably because of the global
data defined in 'g3states.h'. Needless to say it took 20 minutes on my
486-33 to compile that one file while it THRASHED! my 400MB hard disk.

I haven't done very much testing, I'm leaving that up to you.

I did try giftoppm and ppmtotga, Graphics Workshop for Windows requires
-name and/or -norle when converting to tga. I used both but one or the
other might have been enough. The tga was very green I'm not sure if its
because I used the -rgb option.

If you find a bug like OS/2 cannot find a function, let me know, it means
I've mispelled it in a .def file and therefore not exporting it.

I've included the files that I've changed in case you want to fix a bug

To build the tiff library using the supplied make file:
Rename all files that begin with 'tif_' by removing 'tif_' ('ren tif_* *'
does not work, you have to do it manually).
Rename 'tiffcompat.h' to 'tiffcomp.h'.
Change 'tiffiop.h' to include 'tiffcomp.h' not 'tiffcompat.h'.
Change 'compat.c' to include 'tiffcomp.h' not 'tiffcompat.h'.
Change 'mkspans.c' to include 'tiffcomp.h' not 'tiffcompat.h'.
Change 'fax3.c' to include 'fax3.h' not 'tif_fax3.h'.
Change 'fax4.c' to include 'fax3.h' not 'tif_fax3.h'.
Change 'ccittrle.c' to include 'fax3.h' not 'tif_fax3.h'.
And then copy the files I've changed.

Have fun!

Michael Caldwell ([email protected])

 December 24, 2017  Add comments

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>