CUG CD-ROM Vols. 340-359

(CUG 340)C-Window: interactive screen format generator

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.

(CUG 341)Orbit Propagation: solves Kepler's two-body system

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.

(CUG 342)I8255 Interface Library: drive CBI/Metrabyte board

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.

(CUG 343)C Image Processing System: filtering and more

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.

(CUG 344)C Grab-bag #1: strings, data structures, math, etc

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.

(CUG 345)The Last Cross-Referencer: reads C or Pascal progs

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.

(CUG 346)ASxxxx Cross Assembler Part 2: 68HC16 CPU

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.

(CUG 347)TAVL Tree: Threaded AVL optimizes traversal time

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.

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.

(CUG 348A)8048 Disassembler

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.

(CUG 348B)Simple Z-80 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 and MS-DOS.

(CUG 349)Simulation Subroutine Set: discrete event system

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.

(CUG 350)PCX Graphics Library: read and display files w/VGA

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.

(CUG 351)UltraWin: fast text windows for MS-DOS

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.

(CUG 352A)String Class Library: uses operator overloading

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

(CUG 352b)Vlist Class Library: dynamic lists of pointers

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 Turbo C++.

(CUG 353)C++ Tutor: a self-paced course

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.

(CUG 354)CES Mouse Tools Library: includes Joystick support

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.

(CUG 355)Sherlock for MS-DOS: automatic debug code insertion

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).

(CUG 356)Sherlock for Macintosh

Reissued as CUG volume 462

(CUG 357)CSTAR: Hybrid C/ASM 68000 cross-compiler

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 of #define's.

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>

(CUG 358)cbase: multiuser B+Tree ISAM DB file library

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 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.

(CUG 359)GNU C/C++ for 386: 32-bit compiler and lib source

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:

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