CUG CD-ROM Vols. 340-359
This shareware package from Josef Ebnet (Germany) is an interactive
screen format generator, C-Window 3.0. C-Window provides a
user-interface editor that creates windows, pop-up/pull-down menus,
variable-length data entry fields with user-specified attributes. The
output C source code is compiled under Microsoft/Quick C, Turbo C, or
Lattice C. The distribution disk includes the form editor, sample
programs and small model object modules for Microsoft/Quick C, Turbo C,
and Lattice C.
Includes several orbital mechanics utilities submitted
by Rodney Long (MD). A two-body, Keplerian orbit propagator that
uses the universal variables method, a solver for Kepler's equation,
a conversion routine for converting between true and eccentric anomaly,
a conversion routine for Keplerian to Cartesian coordinates, a conversion
routine for Cartesian to Keplerian elements, plus period, semi-latus
rectum, true, and eccentric anomalies are all provided for educational
purposes. The disk includes all the source code, MS-DOS executable
code, input test data, and the resulting output data. The program
was developed and compiled using Microsoft C v5.1.
Submitted by Blake Miller (AL), this library includes
a collection of routines for digital I/O using a Computer Boards Inc.
CIOAD-16, or a Metrabyte PIO12 compatible digital I/O board containing
at least one Intel 8255 Programmable Peripheral Interface integrated
circuit. The functions include initialization of data space, configuration,
clear/read/write the bytes in the 8255, etc. He has also provided
a more general and advanced digital I/O library. The disk includes
all the source code for the library, small/medium/large model library,
make files, and test/demo programs.
Dwayne Phillips (VA) has provided the source code and TIFF (Tag Image
File Format) files for the C image processing system (CIPS). CIPS is a
small system that combines image processing operators with a simple user
interface. The source code is compiled using Microsoft C 6.0. Although
certain display manipulation calls are unique to Microsoft, the
substitution of these calls with equivalents from other C compilers,
such as Turbo C, is possible.
C Image Processing System. Main calling routine. This system provides
a user interface for performing various image processing operations,
such as filtering, rotations, scaling, cutting, pasting, and rotating. Also
provides image addition/subtraction, half-tone display, edge detection,
and histogram equalization.
A collection of small C utilities contributed by 12
authors. Most of the programs were developed under MS-DOS, but some
programs are portable enough to be compiled under other operating
systems. The disk includes complete C source code for all programs.
Contributed by Eduard Schwan (CA), TLC/TLP is "The Last
C-Cross Referencer and The Last Pascal-Cross Referencer." The referencer
reads one or more source files and generates a source file listing
(with line numbers) and a cross-reference list for the non-reserved
symbols in the file(s). The referencer provides several command line
options to support debugging and indirect command line specification. Developed
under Aztec C65 v3.2b, AppleIIGS APW C v1.0 and Apple Macintosh MPW
C v3.0. However, they should be easily ported to an MS-DOS environment.
The disk includes C source code and some documentation.
Alan R. Baldwin has added another cross assembler to his ASxxxx Cross
Assemblers (CUG 292). Because of CUG 292's size, we have created a new
volume for this assembler. The new cross assembler is for the 68HC16
16-bit microprocesser. The assembler has been tested using DECUS C
under TSX+ and RT-11, PDOS C v5.4b, and Turbo C v1.5 under MS-DOS. The
disk includes C source code for the assembler, executable code for the
assembler and linker, documentation and testing assembler files.
Contributed by Bert C. Hughes (MN), TAVL Tree (v2.0)
is an implementation of a hybrid data structure, the threaded height-balanced
tree. The height-balanced tree, or AVL (Adelson-Velskii-Landis) tree
corrects the performance degradation on a traditional binary tree
by rebalancing the tree as necessary whenever items are inserted or
deleted. However, with traditional binary or AVL trees, it is not
efficient to move from any given node to its successor or predecessor.
To find the successor of a given node in a binary or AVL tree, you
must walk through the entire tree in-order until you arrive at the
node whose successor you wish to find. The next in-order node is
the desired successor. Finding the predecessor is done similarly.
- Eric Horner (IL) has submitted XTAB (tab extraction utility), ITAB
(tab insertion utility), PCON (multiple printer control codes), and
MIND (mastermind game). The programs are portable, although they were
developed under Turbo C v2.0.
- Michael Kelly (MA) has submitted functions for parsing a line of
text into an array of strings, substring search in a string, and
low-level primitives for quick screen output in text modes on IBM PC or
compatible. He has also provided the demonstration programs using those
functions, and Turbo Pascal source code indent utility. The programs
were developed under Turbo C v1.5/2.0.
- Paul Ammann (CT) has submitted a pull-down menu demonstration program
that was developed under Turbo C and uses a BGI file. The current
setting works for CGA terminals.
- Ronald J. Terry (IL) has submiited various mathematical functions (exp,
ln), which use fast converging series approximations, IBM video
functions, DOS functions, and string functions. The programs were
developed under Turbo C.
- Bryan R. Leipper (NV) has submitted a printer utility that prints input
files to a printer with HP LJ II+ graphics. The program provides an
extensive set of options to set margins, height of page, tab expansion,
width of line, output direction, pages to print, the number of copies,
page header and footer, and non-printable characters as underlined byte
values. The program was compiled under Microsoft C v5.1.
- Vernon R. Martin (OH) has submitted a set of functions similar to
BASIC functions, used when a C program must access a BASIC data file or
a BASIC program needs to be ported into C. The BASIC-like functions are:
instr() [in string] function; mid(), right(),
cvd() and ncvs(); that unpack packed double or single
precision data into a double value; and mkd() and mks(),
that pack a double value into an eight- or four-character long string.
The programs were developed under XENIX C compiler or ECO C compiler.
- Adam Blum (VA) has contributed P2S, which converts printf()
in C programs to C++ streams formatted I/O (<< operator). It handles
width and precision flags (%-6.2f) by generating the
appropriate streams manipulators - setw() and setprecision().
The source code is a lex source file, thus you need Flex (CUG290)
to compile the program.
- Bill Forseth (MN) has contributed MTX, which solves a matrix A|b
form using Gauss-Jordan elimination. This program uses dynamic
allocation of memory and executes quickly. This program was developed
under Turbo C v2.0.
- Michael Wiedmann (Germany) has contributed
a set of functions to access the resident portion of PRINT.COM in
MS-DOS. Using those functions in an application program, a user can
print from the application, stop printing and resuming printing. The
program was developed under Microsoft C v5.1/ 6.0.
- D.N. Holland (PA) rewrote CFLOW, which prints a C function tree in
input C source code. The new CFLOW provides features such as adding
line numbers, wild cards and 'f' flag that is used to find the first
level functions only. He also provided the versions of CB and XC2
programs in CUG236.
- Conrad Thornton (LA) has submitted a set of functions to manipulate
a circular queue. Any size and any data type can be stored in the
queue. Those functions can be used for event trapping.
Threaded binary trees solve this problem by replacing the nil links
in leaf and half-leaf nodes with links to the node's in-order successor
(or predecessor or both). Threads are distinguished from links with an
additional two-bit field in each node; one bit for each child link.
With this additional information, the procedure for moving to a
successor node becomes simple and does not require a stack or recursion.
The disk includes C source code for TAVL tree routines, sample
makefiles, example programs using TAVL routines, and documentation. The
programs are written in Standard C.
Contributed by Michael G. Panas (CA), this volume includes
two public domain programs: 8048 disassembler and Z80 assembler. 8048
disassembler generates an output file that contains Intel 8048 mnemonics
from an 8048 binary input file. The output file can be reassembled
by any Intel type assembler for 8048, such as a48 from Will Colley
(CUG#219). The disassembler was developed under Microsoft C v5.1 on
MS-DOS, and UNIX V Release 3.2. Z80 cross-assembler was developed
based on Will Colly's a48 assembler.
The assembler assembles the dialect of Z-80 source code into Z-80 object
code. All assembler features are supported except relocation, linkage
and macros. The assembler was developed and tested under Microsoft C
v5.1 on MS-DOS, and Altos System V UNIX and Xenix 3.0. The distribution
disk includes documentation, C source code, and executable code for UNIX
Contributed by M.A. Pollatschek (Israel), a shareware
package, Simulation Subroutine Set (SSS) is a library that makes writing
a discrete event system simulation program in any high level language
(C, Pascal, Basic, FORTRAN) as easy as using a dedicated simulation
language such as GPSS, Simula, SIMSCRIPT, SIMAN, etc. Discrete event
system simulation imitates interacting processes developing in time,
usually involving random phenomena on a digital computer. Typical
applications include maintenance scheduling, inventory policy, distribution
design, manpower planning, advertising, analysis of operations, etc.
The distribution disk includes an installation batch file, manual
for library routines, tutorial for simulation using SSS library, and
SSS libraries for Microsoft's Quick Basic, Quick C, Quick Pascal,
FORTRAN, Turbo C, and Pascal. Due to the volume and MS-DOS specific
nature of the program, libraries and manuals are archived by PKXARC.
Ian Ashdown (Canada) has submitted a PCX Graphics Library, PCX_LIB
(ver.1.00C). PCX_LIB is a library of functions for displaying and
storing Zsoft's Paintbrush (REGISTERED TRADEMARK) PCX-format image
files. It was developed expressly for release into the public domain.
Fully commented ANSI C source code is provided for all functions, along
with complete technical specifications for ZSoft's PCX image file
format. The current version supports the display and storage of images
on MS-DOS equipped with Hercules, CGA, EGA, MCGA, or VGA. SuperVGA and
XGA display adapter are not supported in this release. The distribution
disk contains documentation including PCX image file format
specifications, PCX_LIB source code, demonstration programs, sample PCX
image files, and a batch file to build the library under Microsoft v6.0.
The UltraWin shareware package contributed by Kevin Hack (MO), is a
small and fast text windowing library that allows unlimited windows. It
was written specifically for systems that use text displays with many
windows that overlap and update real-time in the background. An
extensive array of output functions are available, with full color
control, scrolling (both up and down), and masking capabilities. Input
functions are included for data entry such as strings, dates, prices,
and even user-definable templates. The distribution disk includes
documentation, demo programs, small model library for Turbo C v2.00 or
Turbo C++ v1.0. The current version, v2.10, includes new features:
unlimited overlapping windows, background printing, PC timer control,
mouse and graphic support, enhanced data entry capabilities, a hypertext
help engine, and EGA/VGA font editor. A supplement program, InTuition
(v1.10) is a textual user-interface library that includes an interface
construction program that allows using a mouse to interactively create
dialog boxes, menus, pick lists, and forms.
David Blum (CA) has contributed a collection of routines written in C++.
A class, String provides BASIC-like string processing such as Substring,
Replace, Find (an enhanced version of strstr(), strchr(), strcspan(),
and strpbrk()), and Tokensize. The class also provides the ability to
write statements like:
String A, B, C;
if (A==B) ...// compares string
// contents, not pointer addresses
A = B + C; // concatenate strings
A class, Vlist provides a flexible array of pointers to
data objects, and allows creation of dynamic lists of pointers designed
to work with String as well as Blum's earlier Window Text mode or
Window Graphics mode (WTWG CUG 328). Supplementary routines include
filename and directory handling, a simple ASCII file editor (using
WTWG), and some pop-up menu routines. The distribution disk includes
C++ source code and header files. The programs were developed under
Gordon Dodrill, Coronado Enterprises (NM) has submitted his shareware
package, C++ Tutor v2.0. C++ Tutor is a comprehensive instructional
course for the C++ programming language. The distribution disk includes
12 chapters of text (about 115 pages), a number of example C++ programs
and some exercises with the answers. The tutorial text covers topics
such as pointers, functions, encapsulation, inheritance, multiple
inheritance, virtual functions, etc. The accompanying example programs
are meant to be studied, compiled and run while you read the printout of
the tutorial text. This tutorial will assume a thorough knowledge of
the C programming language. The descriptions and instructions are
applicable to Borland's implementation of C++. The C version of this
tutorial, C Tutor (CUG#252 and 253) is also available from us.
John F. Jarrett has contributed a shareware version of Compuer
Engineering Service Mouse Tools Library with JoyStick Functions
(ver. 1.25). The library has over 50 functions that deal only with
Microsoft compatible mice. These functions give you almost complete
control over mouse motion and sensing in all of your programs. In
addition, the library also includes joystick functions which are hardly
seen in C. The joystick functions work with most all joystick game
controllers that use the standard addresses starting from 200H. The
functions sense button presses and X and Y movement on two joysticks
allowed by most game adapters, including some needing a Y
cable. The distribution disk contains header files, documentation,
the medium memory model compiled for Turbo C v2.0, Turbo C++, Borland
C++, QuickC v1.0, Microsoft C v6.0, and Mix Power C v2.0, respectively.
There is also a QuickBasic include file for using the C functions
with QuickBasic and a couple of demostration executables and source.
Edward K. Ream (WI) has placed all of the Sherlock v1.7 debugging
package into the public domain and contributed it all to the CUG library.
Sherlock was formerly a commercial product and represents more than
four years of programming effort.
Sherlock is a debugging tool different from currently popular interactive
debugging tools such as CodeView. Sherlock uses C macro expansion
capabilities to implant debugging calls and functions without manual
coding. Those calls are enabled/disabled from the command line and
removing those calls from the source is also done automatically. Sherlock
offers great advantages over interactive debuggers especially when
it comes to the development of memory-hogging applications because
Sherlock's overhead is small. In addition, Sherlock provides detailed
statistics about your program.
The distribution disk contains full source code for all portions of
Sherlock, along with all test files, batch files, executable files
and detailed documentation. For the MS-DOS version (CUG355), the code
was developed and tested using Microsoft C v5.0 and Turbo C v2.0.
Make files and link files are provided for both compilers.
For the Macintosh version (CUG356), the code was developed using Think
C v2.0 and then ported to MPW. Sherlock has been tested with System
7 and System 6 with MultiFinder. The Macintosh version of Sherlock
differs in several important respects from the MS-DOS version: the
Sherlock Preprocessor has been extensively revised and uses an object-oriented
library. Due to the subdirectories included in the distribution disk,
the disk format is restricted to MS-DOS (CUG355) or Macintosh (CUG356).
Reissued as CUG volume 462
Edward K. Ream has also placed all of CSTAR into the public domain.
The CSTAR language is essentially a superset of K&R C with some extensions
to allow assembly code to be specified in a C-language format. The
CSTAR compiler is a cross compiler: it runs on MS-DOS and produces
Digital Research (CRI) format 68000 assembly language output. It would
be simple to change the output to another 68000 format, but changing
to another target machine would be difficult. CSTAR produces locally
optimal code in almost all circumstances: it produces code for arithmetic
operations and flow of control constructs that is at least as good
as would typically be produced by an expert assembly language programmer.
The CSTAR language extensions include: the ability to treat C variables
which have the same name as 68000 registers as if they were register
variables assigned to the corresponding register; the ability to treat
functions which have the same name as 68000 instructions as if the
corresponding 68000 instruction were inserted in line; and finally,
the #enum preprocessor directive, an abbreviation for a sequence
CSTAR doesn't support ANSI C features such as blocks (all variables
of a function must be declared as format parameters), bit fields,
complex initializers involving arrays of structs or unions,
enum data type, function prototyping.
By combining the front end of SPP tool (Sherlock Preprocessor in CUG355
and 356) with the back end of the CSTAR compiler, one could create
a full ANSI C compiler although it wouldn't be very easy.
The distribution disk contains full source code for all portions of
CSTAR, along with all test files, batch files, executable files and
documentation. The source code for CSTAR can be compiled using Miscrosoft
C v5.1 or later, or Turbo C v1.5 or <%-2>later. Make files
and link files for both compilers are provided. <$B0>
Lyle Frost (IN) has contributed a shareware version of cbase programs.
cbase is a complete multiuser C database file management library,
providing indexed and sequential access on multiple keys. It features a
layered architecture and comprises four individual libraries:
- cbase: C database library for indexed and sequential access
- lseq: doubly linked sequential file management library
- btree: B+-tree file management library
- blkio: block buffered input/output library
cbase internally uses lseq for record storage and btree
for inverted file index storage, which in turn use blkio for file
access and buffering. blkio is analogous to stdio but based on a file
model more appropriate for structured files such as used in database
software. The lower level libraries can also be accessed directly
for use independent of cbase. For example, the btree library can be
used to manipulate B+-trees for purposes other than inverted files,
and the blkio library to develop new structured file management libraries.
cbase is written in strict adherence to ANSI C standard while it maintains
K&R C compatibility. All operating system dependent code is isolated
to a small portion of the blkio library to make porting to new systems
easy. Currently, UNIX and DOS systems are supported. For UNIX systems,
the programs were tested under Interactive UNIX; for DOS systems,
Turbo C (v2.0), Turbo C++, and Microsoft C v5.1 were used for compiling.
The distribution disk includes documentation, complete source code
for cbase (v.1.0.2), and a sample rolodeck card program. Due to the
volume of the programs, files are archived in ZIP form. Thus, we restrict
the distribution disk format to MS-DOS.
Written by Free Software Foundation, ported to DOS by D. J. Delorie
and submitted by Henri de Feraudi (FRANCE) and Mike Linderman (CANADA),
this package contains a 32-bit 80386 DOS extender with symbolic debugger,
a C/C++ compiler with utilities, development libraries, and source
code. It generates full 32-bit programs and supports full virtual
memory with paging to disk. The package requires a 80386-based IBM
compatible PC or PS/2. The 80387 emulator currently does not emulate
trancendental functions (exp, sin, etc.). Approximately 4-5 Mb of
hard drive space is required. 640Kb RAM is required. The following
hardware is supported:
- Up to 128M of extended (not expanded) memory
- Up to 128M of disk space used for swapping
- SuperVGA 256 color mode up to 1024x768
- XMS & VDISK memory allocation strategies
- V86 programs such as QEMM, 386MAX, DesqView, Windows/386 are not
The disk includes binary executable files: C/C++ compilers,
LALR(1) parser (bison), lexical parser (flex), C/C++ preprocessor,
80386/80387 assembler, a.out (BSD) format linker (ld), archive utility,
symbol stripper, compilation coodinator, basic 32-bit DOS extender,
symbolic debugger, etc. In addition, libraries that support standard
routines, math routines, graphics and mouse routines (compiled with
gcc, source code included), include-header files, documentation, sources
for extender and various VGA/SuperVGA drivers, diffs from FSF distributions
to DOS-compatible, sources for the utilities, sample C++ sources using
graphics & mouse, and 80387 emulator for non-80386 systems. Due to
the volume of files and DOS nature of programs, all files are archived
by PKZIP (unzip utility is also included) and the archived file is
separated into pieces by split utility. Thus, we restrict
the distribution disk format to MS-DOS. Source code for the C compiler
is not included.
This page maintained by Victor R. Volkman
Last updated on 1/5/97