The C Users' Group is one of the most comprehensive, longest established collections of source code in the C/C++ universe. The latest CUG CD is now available, with new communication libraries, tutorials, and utilities, to name a few.
Introduction
The C Users' Group remains as active as ever, as this first semi-annual column attests. In fact, the change from monthly to semi-annual updates has given me more time to locate and catalog quality freeware and shareware products in C and C++. The C Users' Group (CUG) is releasing an updated version of the popular CD-ROM with eight new volumes (described below) including all code through volume 445 as this column is going to press.
Since 1981, the mission of the CUG has been focused on low-cost distribution shareware and freeware C/C++ source code. The CUG is an independent organization sponsored by C/C++ Users Journal. CUG remains impartial to compiler vendors or platforms. Although the majority of recent volumes primarily support MS-DOS, CUG focuses heavily on cross-platform compatability with UNIX, MS-Windows, and others.
How to Get the CUG CD-ROM
You can order your updated copy of the CUG Library CD-ROM for $49.95 directly from Miller Freeman, Inc., by calling +1-913-841-1631 or via the World Wide Web from any authorized Walnut Creek CD-ROM dealer, including these sites (prices may vary):
Australia: ACAY Network Computing
http://www.acay.com.au/cdrom/cdrom.html
- Germany: CDROM Versand Helga Seyb
http://www.cdrom.netplace.com/cdrom/list.html- Hong Kong :HK CompuWare
http://www.hkstar.com/~hkcompu/Italy- Italy: Lorenzon Elettronica snc
http://www.shineline.it/lorenzon/cdrom/wcreek/wcreek.html- Slovenia: INFOBIA d.o.o.
http://www.kabi.si/si21/infobia/index.shtml- Netherlands: Compcol
http://www.noord.bart.nl/~compcol/cat/- USA:
Miller Freeman, Inc., Lawrence, KS
http://www.cuj.com
Walnut Creek CD-ROM, Concord, CA
http://www.cdrom.com/index.html
Universal CD-ROM, Sunnyvale, CA
http://www.bigmall.com/subucr.html
Interact! CD-ROM, Pasadena, CA
http://www.interactcd.com/
Micromedia, Clayton, MO
http://micromedia.com/www/catalog/cdkiosk.htmCUG On the World Wide Web
Finally, there is a home for CUG on the World Wide Web at http://www.HAL9K.com/cug/. On this page you'll find complete information on the following topics, and much more:
- Mission Statement and Background
- Where to find the CUG CD-ROM
- Indexes by Volume #, Author, Title, Language, Platform (CPU/OS), and Subject keywords.
- Submit your Code to CUG
- CUG CD-ROM Table of Contents
- CUG Author's Release Form
New CUG #438: Serial Telnet for DOSRiku Saikkonen (Finland) submits his telnet client for MS-DOS (STELNET),which uses the serial port as the I/O device. Although designed for Bulletin Board System (BBS) applications, STELNET works equally well without any BBS software. STELNET requires a FOSSIL driver and the Waterloo TCP library. It supports binary mode telnet (8-bit), and an "8-bit clean mode," in which all 256 characters are cleanly transferred in both directions. STELNET does not do any terminal emulation of its own. It will never change the data transferred (except where protocol requirements designate).
STELNET conforms to the "conditionally compliant" definition of a telnet client as specified in RFC 1123. The telnet code uses the Waterloo TCP library (WATTCP), which uses a packet driver. WATTCP is not included in this volume but is freely available at
ftp://ftp.bhp.com.au/pc/selected/network/wattcp.zip
Any network adapter with a packet driver should work. SLIP should work, at least with the EtherSLIP packet driver.
STELNET is distributed under the GNU General Public License, version 2, and thus includes source code. Source code is all in C, which compiles under Borland C in either small or large memory models. STELNET v1.00 (released on 12/20/94) is immediately available on CD-ROM as CUG Volume 438.
New CUG #439: DOS Extender Library (XLIB)
David Pyles (Jackson, MS) offers his DOS Extender Library for producing Protected Mode MS-DOS applications. XLIB is an assembly language library which greatly simplifies protected-mode programming under Microsoft DOS. With only two calls to XLIB, assembly language programs can utilize the simplicity and power of 32-bit processing. C and C++ programs can harness the powers of 16-bit protected mode using inline assembly. Additionally, the XLIB archive contains a second library called EASYX, which allows all high-level languages to gain access to extended memory.
XLIB is designed for the Intel 386, 486, and Pentium processors. XLIB fully utilizes the 32-bit processing powers of these chips and makes these powers available to the user. The compactness of XLIB follows largely from the fact that much of it is written in 32-bit code.
XLIB is marketed as shareware and you may evaluate it for up to 30 days. If you want to distribute applications that incorporate XLIB, then you must register it. Registration is $40 for the basic license and an extra $20 if technical support is desired. It includes an extensive 60 page manual in plain ASCII format as well as sample code. XLIB works with either Borland or Microsoft C environments. XLIB v5.1 (released on 08/25/95) is immediately available on CD-ROM as CUG Volume 439.
New CUG #440: BESTLibrary of C functions
George Vanous (Delta, BC) submits his library of essential and efficient C-callable functions. Although oriented towards MS-DOS, many of the algorithms are relevant on other platforms such as Windows and UNIX. BESTLibrary consists of 282 functions coded in assembly language and 68 functions written in C. All calls require far pointers (e.g. large memory model). The library functions are roughly categorized as:
- text and .INI files (18 functions)
- low-level keyboard (42 functions)
- linked list (6 functions)
- math and matrices (26 functions)
- 2-D and 3-D vectors (33 functions)
- mouse (13 functions)
- string manipulation (80 functions)
- text-mode screen I/0 (60 functions)
- SVGA bitmaps with animation (50 functions)
- much more!
BESTLibrary is freeware, but the author would like to hear all comments from users of the library (e-mail or postcards). The CUG Library distribution includes code for the 68 functions with C source. To get the source for the assembly language portion, you must register with the author for a nominal fee of $10. BESTLibrary v2.32 (released 09/12/94) is immediately available on CD-ROM as CUG Volume 440.
New CUG #441: VGA Editor
George Vanous also submits his VGA Editor for editing and animating graphics images with full mouse support. The VGA Editor creates
graphics files that are fully importable into C and Pascal programs in conjunction with BESTLibrary (CUG #440). The editor is ideal for drawing small pictures and animations for use with 16-color VGA modes. VGA Editor will also read Windows .ICO files for editing (but does not yet support writing them). The editor can accomodate multiple-frame animations in a single editing session. Figure 1 shows the zoom style of editing on a single frame.
VGA Editor is distributed as shareware and you must register the product if you find it worthy of continued use. Registration is only $5 and includes complete documentation on how to operate the VGA Editor and integrate graphics into your programs. Addtionally, the complete C source code for VGA Editor is also available for $10 from the author. VGA Editor v1.30 is immediately available on CD-ROM as CUG Volume #441.
New CUG #442: C Pointer and Array Tutorial
Ted Jensen (Redwood City, CA) has contributed his manuscript "A Tutorial on Pointers and Arrays in C," to help novice C programmers learn proper usage of these critical language elements. Looking back to my own apprenticeship in C more than 10 years ago, I still have vivid memories of my trials with pointers. Jensen's work is based on a tutorial originally found in Bob Stout's popular SNIPPETS C code collection.
Jensen provides ten chapters of tutorial information, which is profusely illustrated with detailed source code. The chapters are as follows:
Version 0.2 of the tutorial (released 12/19/95) is immediately available on CD-ROM as CUG Volume 442.
- What is a pointer?
- Pointer types and arrays
- Pointers and strings
- More on strings
- Pointers and structures
- More on strings and arrays of strings
- More on multi-dimensional arrays
- Pointers to arrays
- Pointers and dynamic allocation of memory
- Pointers to functions
New CUG #443: Communication Networks Class Library
Martin Steppler (Aachen University of Technology, Germany) submits the Communication Networks Class Library (CNCL), a C++ library created by the Communication Networks department of Aachen. CNCL is both a class library, featuring generic C++ classes, as well as a simulation library with strong points in random number generation, statistics, and event-driven simulation. The classes are categorized as follows:
Generic classes:
- tree structured class hierarchy, similar to the NIH class lib
- general purpose (e.g. arrays, linked lists, AVL trees)
- interface classes for UNIX system calls: pipes, select, sockets
- persistent objects
Simulation:
- event driven simulation classes
- statistical evaluation classes
- random number generator and distribution classes
Fuzzy logic:
- fuzzy sets, fuzzy variables, fuzzy rules and inference engine for building fuzzy controllers and expert systems
- fuzzy rules to C++ translator
Graphics:
- interface classes for DEC's ezd graphics server
- interface classes for GIST graphics server (available separately)
CNCL is distributed under the GNU General Public License, version 2, and thus includes source code. Although the graphics require DEC Ultrix, the remaining classes should work fine with any GNU compatible C++ compiler. PC users must obtain WinZip (http://www.winzip.com) or a similar utility to unpack the files, which are tarred and zipped (.TZ). CNCL v1.4 (released 01/05/96) is immediately available on CD-ROM as CUG Volume 442.
New CUG #444: Mendel's Games
Mendel Cooper (Grantsville, MD) contributes a volume of MS-DOS games: Wordy, ChessClock, and Chaos Game. Wordy is an educational word-game study system that builds pattern and word recognition skills used in Scrabble (tm) and Boggle (tm). The Wordy practice game checks words you unscramble against a 100,000 word dictionary. Wordy also includes stand-alone Search, Anagram, UnScramble, and word-pattern find utilities. A BINGO utility looks up all valid permutations of letters of a word. The 1DIF utility finds all legal words constructed by substituting a single letter. WORDY received a five-star (highest possible) rating in PC Computing magazine (December 1995, p. 365).
ChessClock includes a digital display, move counter, pause function, and more. It requires VGA and 386 or better to run. It is also useful for timing Scrabble (tm) games because its clocks may be paused.
One of the discoveries coming from the new science of Chaos is that there seems to be an underlying order in randomness.
The Chaos Game uses the Sierpinsky Gasket, a figure with a fractal dimension of less than two (see Figure 2). The Chaos Game requires VGA and 386 or better to run.
The CUG Library edition includes full Borland C/C++ source code for each program. Each of Mendel's programs is shareware, with an extremely low registration fee (less than $5) for each program. Mendel's Games (released 12/22/95) is immediately available on CD-ROM as CUG Volume 444.
New CUG #445: Mendel's Utilities
Mendel's second volume includes an eclectic mixture of ten different text and graphics utility and algorithm demonstrations. Here's a list of what you'll find:
- Countdown timer: for use with board games, cooking, and other applications. Requires VGA and 386 or better.
- Alert: combination "burglar alarm" and screen saver. Alert flashes a warning message on the screen and simulates a phone dialing the police.
- OneTime: This is an extremely secure file encryption system based on the one-time cipher used by intelligence agencies.
- Butterfly: This is a colorful graphic demonstration of Pikover's "butterfly" curves.
- CountUp: restartable count-up timer with a very large digital display. Requires VGA and 386 or better.
- Pi5Ways: This utility demonstrates the calculation of pi (¹) in five different ways.
- WCHILL: This is a wind chill calculator.
- This volume includes a fractional calculator and fraction class (C++).
- Soundex: Soundex is an algorithm for translating names into a form suitable for archiving.
- Blank: This is a simple-minded screen saver.
The CUG Library edition includes full Borland C/C++ source code for each program. Each of Mendel's programs is shareware with an extremely low registration fee (less than $5) for each program. Mendel's Utilities (released 12/22/95) is immediately available as CUG #445.
Conclusion
This year CUG celebrates its 15th anniversary with a revitalization of the CUG Library CD-ROM project, and by providing the catalog on the WWW (http://www.HAL9K.com/cug/). The CUG is looking to expand coverage of freeware and shareware in the areas of Windows and UNIX. If you would like to submit code or nominate code to be submitted, contact the CUG Acquisitions Editor by e-mail at SYSOP@HAL9K.COM.
Victor R. Volkman received a BS in Computer Science from Michigan Technological University. He has been a frequent contributor to the C/C++ Users Journal since 1987. He is the author of the book Windows Programming with Shareware Tools. He can be reached at the HAL 9000 BBS (313)663-4173, URL http://www.HAL9K.com/, or email to sysop@hal9k.com.