CUG CD-ROM Vols. 300-319
MAT_LIB (Matrix Library), is a shareware package submitted
by John J. Huges III (TN). MAT_LIB includes approximately 50 C functions
and macros which input and output tabular data maintained in ASCII
text files. While the tabular data is in RAM, it is stored in dynamically-allocated
token arrays or floating-point arrays on the heap. Functions are provided
to examine an ASCII text file to determine the number of rows, columns,
and token size of the tabular data in the file. Other C macros dimension
either a floating-point or string token array large enough to hold
the ASCII data. Once in memory, floating-point array matrix operations
can be performed on the data. Token array data can be converted to
and from float or integer values. Floating-point arrays which have
been modified by calculation can be merged into a token array for
output or they can be output to a text file directly. The output files
can in turn be used as the input for later application programs found
in MAT_LIB text file formats. The disk includes a users manual, test
programs, example programs, and small and medium model libraries for
Turbo C.
This volume contains graphics applications that use
Borland Graphics Interfaces (BGI). All programs were compiled with
Turbo C and use BGI files. This disk includes C source code, executable
code and BGI files.
Mark A. Johnson (CO) has created DCUWCU, a simple application
environment that provides a mouse-driven cursor, stacked pop-up menus,
and forms that contain editable fields and a variety of selectable
buttons. The sample program DRAW allows you to draw lines, circles, and
text on the screen using a mouse. A stacked pop-up menu can be invoked
anywhere on the screen. DRAW uses public domain Microsoft mouse
routines written by Andrew Markley.
Henry M. Pollock (MA) has submitted a demonstration program combining
trig functions and graphics functions in Turbo C. By selecting an option
from the menu, the program displays circleoids, asteriods, spirals,
cycloids, etc.
John Muczynski (MI) has created a graphics pull-down menu system with
deeply nested menus. The included code allows you to change key
assignments and create macros. The new configuration may be saved and
restored. He also has submitted an example program, Conway's game
of life, using the pull-down menu.
Written by Gus O'Donnell (CA) and submitted by Michael
Yokoyama (HI), 3-D Transforms is a library of functions used to create,
manipulate and display objects in three dimensions. The functions
allow the programmer to create representations of solid objects bound
by polygons, to rotate, translate, scale the objects in three dimensions,
and to display the objects in color with a given light source. The
disk includes a brief description of each function in the library,
complete C source code, function libraries for Turbo C, and a demonstration
program which displays a cube, a tetrahedron, and an octahedron in
three dimensions with each figure rotated about a different axis.
The program requires a Turbo C graphics library and BGI files. Turbo
C v1.5 or later is recommended.
Written by John M. Collins (England), MC68K Disassembler
runs on Motolora 68000 ports of UNIX System III and V. The disassembled
output can be assembled to generate the same object module as the
input. When disassembling stripped executable files, object modules
and libraries may be scanned, modules in the main input identified
and the appropriate names automatically inserted into the output.
Also, an option is available to convert most non-global names into
local symbols, reducing the number of symbols in the generated assembler
file. The disassembler copes reasonably with modules merged with the
-r option to ld, generating a warning message
as to the number of modules involved. The disk includes a users guide
and complete C source code. Although the program is MC6800 specific,
it is easily adaptable to run in most any operating system environment
as a cross development tool. The COFF object file can now be taken
as input and disassmebled.
Ernest E. Bergmann (PA) has completed a major rewrite
of his ROFF4 (CUJ128 and CUG145). The ROFF5, v2.00 technical text
formatter has evolved from ROFF4 to become somewhat more like UNIX's
nroff and troff. ROFF5 now supports conditional macros, page traps,
roman numerals and line numbering. It is intended for preparation
of manuscripts on any dot matrix printer and can handle equations
and special symbols. Different output devices are supported with device-specific
ASCII files that inform ROFF5 of the special controls for that device.
Fractional line spacing for superscripts and subscripts are supported
even for printers that cannot reverse scroll. The built-in
commands follow the naming conventions of nroff and troff where appropriate;
however, in contrast to the UNIX formatters, ROFF5 supports register
and macro names of arbitrary length. The disk includes a complete
set of C source code, well-written documentation, and a number of
test and demo files. The program was written using Turbo C v2.0 for
MS-DOS.
Dan Schechter has submitted a Hercules monochrome Mandelbrot
program, as well as the card games poker and blackjack. Unlike most
Mandelbrot programs, which require you to specify color-value
information in advance, his programs EMANDEL and EJULIA save all calculation
data, allowing you to tweak the picture by specifying color-value
information afterwards.
POKER is five-card draw poker. The computer plays four hands
independently (the computer's four players do not consult with
each other) and you play one hand. BLACKJACK is not quite real casino
blackjack. It is just you against the dealer. Doubling down
is not supported. The screen display of both card games is neatly
organized using the Hercules graphics. This disk includes C source
codes as well as executables for MS-DOS. All the programs are compiled
using the Aztec C compiler.
Gregory Colvin (CO) has contributed Thread and Synapsys.
Thread is a multi-tasking kernel based on lightweight threads. He
uses the ANSI Standard C library functions, setjmp()
and longjmp() to implement multiple threads within a
single C program. He has tested the code with Microsoft C v5.0 on
an IBM-AT, and with MPW C v3.0 on an Macintosh SE. On his AT machine,
the kernel compiles to under 1K of code and executes over 80,000 jumps
per second.
Synapsys is a neural network simulation program which
implements a very fast back-propagation network by representing synapse
layers as word arrays and implementing all operations with integer
arithmetic. The disk includes C source code, benchmark and testing
code for both programs.
ADU is a disk utility program designed to work with
both the IBM PC standard and non-PC disk formats, submitted by Alex
Cameron (Australia). By choosing an option from the main menu, ADU
can analyze the disk format, then read and write the contents of the
disk, sector by sector. The menu is also user-configurable so that
the disk parameters can be adapted to almost any conceivable disk
format. The initial alien disk parameters are derived by scanning
the disk and building up a disk_base table, which may
then be modified by the user. The volume includes C source code and
well-written documentation revealing the low-level detail of the PC's
disk drive configuration, not available anywhere else. The program
is compiled under Turbo C v2.0 or v1.5. No assembly is required.
COMX, an MS-DOS communication port device driver submitted by Hugh
Daschbach (CA), provides buffered I/O to a serial port with optional
XON/XOFF flow control through standard read/write requests or interrupt
0x14. The program uses mixed memory models. COMX.C is compiled under
the small model with explicitly declared far pointers and a front end
program forces the linkage editor to produce a tiny model executable.
This program is specifically written for Microsoft C (v5.0 or later) and
some assembly code comes with the C source code.
Dinghuei Ho (WA) has submitted MSU, an educational simulation
of simple computer architecture and operation. MSU can simulate a
computer that has a 4K word memory space (each word is 32 bits), a
CPU that includes four segment origin registers, instruction register,
program status register, a card reader and line printer for input/output,
and a clock. The program runs under VMS on the DEC VAX 8820, but you
can port it to other environments by modifying the code.
Bob Briggs (CA) has submitted REMZ, the classic Parks-McClellan-Remez
FIR filter design program based on the FORTRAN version appearing in
Theory and Application of Digital Signal Processing by Rabiner &
Gold (Prentice Hall). The program compiles under Turbo C or Quick C.
Michael Kelly (MA) has submitted LIST, an object-oriented implementation
of a linked list using both C and C++. In C, LIST is able to imitate
C++ notation (address_list.sort()) by defining a general
structure whose fields are pointers to functions, each corresponding to
the operations of an object. Version 2.01 of List allows an unlimited
number of active lists.
Brian Brown (New Zealand) has ported CUG221 6809 C for
FLEX to MS-DOS. Modifications allow the program to run with ASxxxx
assembler (CUG292), as well as with Motorola AS9 assembler. The program
also generates ROMmable code. The disk includes a complete set of
C source code, well-written documentation, and a run-time library
such as routines for controlling the ACIA serial port, functions for
character handling and data conversion between character strings and
integers, routines for controlling a Hercules card, routines for a
magnetic card reader, memory manipulation routines, PC serial card
functions, and string handling functions.
This Little Smalltalk, submitted by Henri de Feraudy (France) is part of
Smalltalk Express Ltd.'s (England) effort to bring the object-oriented
paradigm to the general public. They ported Professor Timothy Budd's
Little Smalltalk to three different, low-cost platforms: the IBM-PC,
the Atari ST, and a British machine the Acorn Archimedes. This
particular volume is for MS-DOS. The disk includes the source code and
executable files but no documentation. You can learn more about
smalltalk in A Little Smalltalk, by Timothy Budd, published
by Addison-Wesley (1987), ISBN: 0201106981. The program was compiled
under Microsoft C v4.0. The original UNIX version of Little Smalltalk
is also available from our library (CUG229 and CUG230).
Ken Harris (WI) has contributed his database routines,
DB package v1.3. The DB package consists of a library of file handling
routines that may be linked with user applications. The routines support
the four file organizations: sequential (data records of fixed length
are stored sequentially), index (data records are stored in an ISAM
type organization), random (data records of variable length are stored
sequentially). The routines include basic database manipulation routines
such as addition, deletion, and search, and also sort routines. The
DB package lets you develop a data object dictionary to create a relation
between two data records. The disk includes all C source code and
test files, and a users guide that describes each routine. The program
has been compiled and tested under Ultrix on a VAX station-2000 with
gcc, using Microsoft C v5.1 and Turbo C v2.0 under MS-DOS, and cc
under UNIX on 3B1.
Contributed by Jim R. Yehle (CO), Make-Maker automates
the process of creating a makefile. Make-Maker is a series of AWK
programs that first scans C source code for #include
files to build a dependency list (a makefile component, called a Dependency
Generator), then scans a linker configuration file to build a primary
target dependency list (Object file Extractor), and finally builds
a full makefile. Since the linker configuration file is unique to
each linker, you must create your own object file extractor. The disk
includes object file extractors for the Turbo Link Response file and
the Intel Linker (binder) configuration file. The disk also includes
Intel 80x86 assembly and PL/M dependency generators, as well as a
C dependency generator. All the AWK code takes advantage of the 1985
enhancements to the original 1977 AWK.
The STEVIE editor by Tony Andrews (Boulder, CO) is a highly portable
clone of the popular Unix "vi" editor. STEVIE first appeared on the
Atari ST platform and its name stands for "ST Editor for VI
Enthusiasts". However, the current version of STEVIE can be compiled
for the Atari ST running TOS or Minix, Unix System V or BSD, and PCs
running MS-DOS or OS/2. Others have reported success in porting STEVIE
to the Amiga and Data General machines, although platform-specific code
for them is not included in this release. In any case, the CUG
distribution does not include any binary executables so you must compile
it yourself before you can run it.
STEVIE displays text with ANSI terminal emulation escape sequences.
These escape sequences were popularized by the DEC VT-100 series of
terminals. Ideally, ANSI terminal support provides maximum display
portability with minimum programming effort. For PCs, you'll need an ANSI
accelerator like NANSI.SYS by Daniel Kegel (Altadena, CA).
STEVIE does not check for the presence of ANSI emulation and will render
an illegible set of escape strings if it is missing.
Because STEVIE v3.71 was released in 1989, the documentation only claims
compatability with Microsoft C 5.1 in the MS-DOS environment. However,
I compiled the STEVIE source code without errors using the Microsoft C
6.00A. The quality of the source code could be improved with the
addition of ANSI function prototypes.
Written by Gregory Pearson (CA), Microcom MNP C Library
is a set of subroutines that implements the stream model (Class 2)
of the Microcom Networking Protocol (MNP) link protocol. MNP link
protocol's stream mode works with MNP error-correcting modems or with
other software implementations which use the Microcom MNP Library
or other compatible software. The program is suitable for use with
a Microsoft C application using the small code/small data model. The
volume includes C and assembly source code for the library, a programmer's
guide, and a sample terminal emulation program.
Contributed by Thomas R. Clune (MA), FTGRAPH is a set
of utilities for performing Fourier transforms and inverse Fourier
transforms. The program also performs operations such as multiplication
of data files, auto-power spectrum, cross-power spectrum, correlation
from power-spectrum data, and filter time-domain real data. The result
can be displayed on the monitor or printer, or saved as an HPGL file.
The minimal hardware requirements are: an IBM PC, XT, AT or clone,
256K or more RAM, MS-DOS or PC-DOS v2.0 or later. The program will
use a math coprocessor (8087, 80287, or 80387) if present, but does
not require it. The program supports Hercules, CGA, EGA, and VGA graphics
cards. A Microsoft (or compatible) mouse can select an option from
the menu. The disk includes a complete set of C source code including
a mouse driver, documentation, and sample data files such as a 16-cycles
square wave, a Gaussian waveform, a sine and cosine wave and a noisy
Gaussian curve. The program is copyrighted by the Eye Research Institute.
Contributed by H.G. Willers, this volume includes a
cross assembler for Z8 microprocessor. The assembler is based on the
code of a cross assembler for a Z80 processor from DECUS and enhanced
with a hashed symbol table and several bug fixes. The source code
compiles under MS-DOS using Mark Williams Let's C (v3.0.3) and QuickC(v1.01)
and under System 5.3 UNIX for 68020 and Interactive UNIX for 386.
The disk includes C source code, a users guide and test files.
Michael P. Marking (AZ) has submitted a set of programs
that manipulate facsimile or scanner graphics images. These programs
include techniques to encode and decode Group 3 (or 4) images and
techniques to extract and insert TIFF (Tag Image File Format) image
files in C. The C source code should be fairly portable, though it
was developed with Microsoft C v5.1 under MS-DOS.
Edward K. Ream has placed his commercial software,
the RED text editor in the public domain. RED v7.0 is a full-screen
text editor written as an exercise in information hiding techniques.
RED provides an edit mode, an insert mode, an overtype mode, and searching
that allows wild cards, replacement, undo, and block operations. RED
achieves two technical accomplishments without sacrificing portability;
the screen is updated quickly, and arbitrarily large files are handled
quickly. The size of the .EXE file is very small, only 35K. RED
compiles with Microsoft C v5.0 or later and Turbo C v2.0 under MS-DOS. Make
and link files have been included for both compilers. The source
code has been revised to take advantage of the latest features of
the draft ANSI standard of January, 1988. Function prototypes and
other modern features are used throughout. The distribution disk
includes complete C source code, excellent documentation, make
files, and programs with a debugging session of Ed Ream's Sherlock
debugging system.
Edward K. Ream has placed his commercial software CPP
(C preprocessor) in the public domain. CPP v5.3 is a modern C preprocessor
that conforms to the ANSI C standard, but will complain about duplicate
macro definitions. CPP provides several command line options to include
comments in the output file, define an identifier, allow nested comments,
specify search paths for #include files, and cancel the effect
of the first definition of a macro. CPP will compile with Microsoft
C v5.0 or later and Turbo C v2.0 under MS-DOS. Both compilers include
make and link files. The source code uses the features of
the draft ANSI standard of January 1988. The distribution disk includes
complete C source code, excellent documentation, make files,
and programs with a debugging session of Ed Ream's Sherlock debugging
system.
This page maintained by Victor R. Volkman
Last updated on 4/19/97