Site hosted by Build your free website today!

The SNIPPETS Collection

This is an official Snippets site and may not be mirrored without permission. Information Broker Systems maintain another site at

The SNIPPETS collection is an archive of over 675 separate files, over 90,000 lines of mostly C/C++ source code - all public domain and freeware - which contains the best C/C++ answers to "How do I...?" programming questions.

View Table of Contents, O/S codes help and New Files


This will search the files descriptions. Simply enter words separated by spaces. If more than one word is given, files containing all words will be returned.

You can also choose a document at random.

You can also either download the entire Snippets archive in Zip or Compressed TAR format or FTP it from

General information files

SNIPPETS Information files

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Read.Me         109  n/a  Last minute information and instructions
File_Id.Diz     232  n/a  File info for BBS's
Snippets.Txt   7208  n/a  General information about SNIPPETS
Whats.New      9298  n/a  What's new in this release?
Snippets.(C)   1584  n/a  SNIPPETS freeware notice
Snippets.Rat   4358  n/a  SNIPPETS rationale
Tosysops.Txt   2545  n/a  Note to sysops about SNIPPETS
Snippets.Ndx  64374  n/a  SNIPPETS index - this file
Credits.Lst    2943  n/a  List of SNIPPETS authors
Missing.Txt    1877  n/a  Rationale of files deleted since last SNIPPETS
License.Mfl    2494  n/a  License for Microfirm Function Library files
Makefile      39306  any  Makefile template for SNIPPETS demos and utilities

Portable functions and headers

General-purpose header files

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Ascii.H         775  any  Convenient enumeration for ASCII control characters
Big_Mall.H     1145  DON  Portably allocate memory > 64Kb
Cast.H         1370  any  Cast any object to any type
Circbuf.Hpp    6849  any  C++ templates for circular/ring buffers
Dirport.How    9512  DON  Brief tutorial on DIRPORT.H and DIRPORT.C
Dirport.H      9922  DON  Write portable directory code for various PC compilers
Dirport.C      3207  DON  Win 32 and OS/2 support functions for DIRPORT.H
Extkword.H     2802  DON  Correct extended keywords syntax
Hilobyte.H      228  any  Extract high, low bytes from an int
Mk_Fp.H         462  DON  Makes sure the Intel MK_FP() macro is defined
Minmax.H       5664  any  Macros & typesafe C++ templates for min() and max()
Pi.H            219  any  Useful definitions using PI
Round.H         924  any  Rounding macros
Sniptype.H      938  any  Common include file for SNIPPETS data types and macros
Stat.H          311  D/W  Posix compliant sys/stat additions
Stringiz.H      535  any  Macros to use the ANSI/ISO preprocessor "stringize" macro

Miscellaneous C-callable functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
A2E.H           460  any  ASCII <=> EBCDIC conversions
A2E.C          2731  any  
Toascii.C      2494  any  EBCDIC-ASCII conversion arrays
Bastrngs.H      486  any  BASIC-like string functions
Bastrngs.C     3611  any  
Cards.Hpp      1152  any  C++ class to implment a deck of cards, shuffle, and deal
Cards.Cpp      3318  any  
Ccard.H         814  any  Header file for credit card validation functions
Ccard.C       10075  any  Credit card validation functions
Ccardplv.H       75  any  Patch level include file for credit card validation
Ctrlprnt.H      197  any  Print a line, displaying Ctrl characters
Ctrlprnt.C      895  any  
Errors.H        415  any  Header file for SNIPPETS formatted error handlers
Err_Exit.C      585  any  Print formatted error message to stderr and exit
Ferrorf.C      1429  any  Has ferrorf() and cant() for formatted error messages
Fscanbin.H      548  any  Scan binary fields via format string
Fscanbin.C     3329  any  
Isisbn.H        182  any  Validate ISBN (book) numbers
Isisbn.C        840  any  
Memrev.H        273  any  Assymetrical memory swap
Memrev.C       1536  any  
Rolldice.H      238  any  Roll specified # of dice, each with specified # of faces
Rolldice.C     2701  any  
Strucfil.H     1303  any  Read/write structures to/from a file
Strucfil.C     4740  any  
Windchil.H      213  any  Compute wind chill factor
Windchil.C      590  any  

Extensible C & C++ determine which archiver was used on a packed file

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Whicharc.Doc   4244  n/a  Information about archive detection
Whicharc.H      602  any  Prototype declarations for WHICHARC.CPP
Whicharc.Cpp   6585  any  Function to determine archive types
Archive.Hpp    1663  any  Declaration of extensible archive classes
Archive.Cpp    2435  any  Archive class member functions

Functions to read configuration files

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Cfg.H           551  any  Read configuration file data
Cfg.C          3825  any  
Cfg.Tst        1294  any  Test data file for CFG.C #ifdef TEST section
Initvars.H      269  any  Read data into variables
Initvars.C     5200  any  
Initvars.Tst     67  any  Test data file for INITVARS.C #ifdef TEST section

Portable file operations

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Snipfile.H     1643  any  Header for portable file functions
Ansiflen.C     1428  any  ANSI-compliant file size function in C and C++
Existsx.C      4814  any  POSIX-compliant functions to search paths for files
Fcompare.C     1771  any  Compare 2 files for equality
Fopenx.C       1594  any  Open files using EXISTSX.C path conventions
Srchfile.C     6064  any  Search files for text, forwards or backwards
Textmod.C      2066  D/O  Demo how to change lines in a text file
Wb_Fcopy.C     2443  any  Fast file copy
Wb_Fapnd.C     1527  any  Fast file append
Update.H        356  any  Automate .BAK file generation
Update.C       1766  any  
Ntstream.H     3978  any  Share-aware C++ file streams
Ntstream.Cpp   4184  any  

Assorted string manipulation functions, some unique, some for porting

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Snip_Str.H     3965  any  Header file for SNIPPETS string functions
Pluraltx.How   2236  any  How the plural text macros in SNIP_STR.H work
Memmem.C       2697  any  Like strstr(), but for non-text buffers
Fmemmem.C      3440  DOS  Like memmem() above, but for large DOS buffers
Sstrcpy.C       490  any  Overlapping strcpy() and strcat() work-alikes
Sstrdel.C      3230  any  Delete multiple substrings from a string
Stptok.C       2173  any  Improved tokenizing function
Strchcat.C     2188  any  Append a single character to a string
Strdel.C       1744  any  Delete a section of a string
Strdelch.C     1710  any  Delete specific character(s) in a string
Strdup.C        566  any  Portable strdup()
Strecpy.C      1231  any  Like strcpy, but returns pointer to NUL
Strecpy.Asm    3520  D/O  Fast x86 assembly version of Strecpy.C
Stristr.C      2128  any  Case-insensitive strstr() work-alike
Strrepl.C      3760  any  Replace substrings
Strrev.C        849  any  Reverse a string in place using XOR swapping
Strrpbrk.C     1138  any  Like ANSI/ISO strpbrk(), but searches from end of string
Strupr.C       1175  any  Portable strupr() strlwr()
Translat.C     1888  any  Translate string w/ C-style escape sequences
Xstrcat.C       887  any  String concatenation function
Ruleline.C     1730  any  Create various styles of text ruler lines
Rmallws.C       939  any  Remove all whitespace from a string
Rmlead.C        947  any  Remove leading whitespace from a string
Rmtrail.C       926  any  Remove trailing whitespace from a string
Trim.C         1630  any  Trim leading, trailing, & embedded spaces
Lv1Ws.C        1370  any  Convert all whitespace in a string to single spaces

Assorted (sic) sorting functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Snipsort.H     1411  any  Header file for SNIPPETS sorting functions
Hugesort.C     2967  DOS  Quicksort using huge pointers
Ll_Msort.C     2038  any  Linked list mergesort
Ll_Qsort.C     2402  any  Linked list quicksort
Rg_Isort.C     1110  any  Insertion sort function
Rg_Qsort.C     6883  any  Non-Recursive ANSI/ISO quicksort function
Rgiqsort.C     1140  any  Recursive ANSI/ISO quicksort function
Rg_Ssort.C     1258  any  ANSI/ISO quicksort-compatible shellsort function
Strsort.C      1366  any  (Shell) Sort a string array

Mark Corgan's functions for indexing and looking up data in text files

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Indxlook.H      612  any  Header for INDEX.C and LOOKUP.C
Index.C        5719  any  Create a binary searchable index file from a text file
Lookup.C       2700  any  Search a text file using a binary search index

Assorted math functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Snipmath.H     2610  any  Header file for SNIPPETS math functions
Dtotp6.H       1110  DOS  Convert between Turbo Pascal 6-byte reals and C doubles
Dtotp6.C       2947  DOS  
Bcd.C          2256  any  BCD math functions
Combin.C       1823  any  Compute combinations without overflow
Cubic.C        1577  any  Solve cubic equations
Dbl2Long.C     2488  any  Rounds doubles to longs
Dblround.C     1266  any  Rounds a double to nearest whole number
Dblround.How   2087  any  How DBLROUND.C works
Etphi.C        1458  any  Compute Euler's Totient function (phi)
Factoryl.C     2875  any  Factorial, combinations, permutations
Fibo.C         1271  any  Return any term in the Fibonacci series
Frand.C        1160  any  Return random double in the range of 0.0 to 1.0
Ipow.C         1354  any  Raise a number to an integer power
Ispow2.C        326  any  Is a number an integral power of 2?
Isqrt.C        2735  any  Integer square root
Ldfloor.C      1707  any  Long double floor
Msb2Ieee.C     1841  any  Convert MSBIN format to/from IEEE float
Perm_Idx.C     1101  any  Determine permutation index
Rad2Deg.C       763  any  Convert radians <=> degrees
Rnd_Div.C      1170  any  Integer division with rounding

Random number functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Rand1.C        7795  any  Random number generator
Rand2.C        1349  any  Random number generator
Rg_Rand.C      2092  any  Minimal random number generator

Cliff Rhodes' package of unsigned integer math for arbitrarily large numbers

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Bignum.H       1414  any  Header declaring the BigNum struct and prototypes
Bignum1.C      6262  any  Add, subtract, and multiply BigNum's
Bignum2.C      6944  any  Divide BigNum's
Bigtest.C      5081  any  Test and demo program using BigNum's

Various ways of computing PI to ridiculous lengths

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Pi.C           4335  any  Calculate PI to 8,000+ digits
Pi8.C          7515  any  Another PI calculator
Pi8.Nfo        6758  any  A discourse on the PI8.C algorithm
Pi_Agm.C      18021  any  Calculate PI to 10's of thousands of digits

Numerical <=> string conversion functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Numcnvrt.H     1781  any  Header for SNIPPETS numerical <=> string conversions
Bascnvrt.C     1238  any  Convert radix of a numeric string
Commaflt.C     1331  any  Format doubles using commas and variable precision
Commafmt.C     2196  any  Format long integers using commas
Eng.C          1186  any  Convert floating point value to engineering notation
Eval.C        13790  any  Simple arithmetic expression evaluator
Eval.How       2327  any  How EVAL.C works
Fmtmoney.C     2733  any  Format US dollar amounts into text strings
Hexorint.C     1024  any  Auto-convert hex or decimal strings
Hstr_I.C       1135  any  Convert hex string to int
Ltoa.C         2336  any  Convert long to a string
Ltostr.C       2398  any  A safer version of ltoa()
Ord_Text.C      889  any  Format ordinal numbers in English
Scanfrac.C     4134  any  Scans/converts text fractions
Str27Seg.C     3846  any  Convert numeric string to 7-segment displays

Multi-dimensional array functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Snparray.H      370  any  Header for multi-dimentional array functions
Amalloc.C      3669  any  Multi-dimensional array allocation (limited to 64K on PC)
Mdalloc.C      5549  any  Multi-dimentional array allocte and free (any size)
Mdasort.C      2296  any  Test program demonstrating array sorting

Bit-level operations

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Bitops.H       2569  any  Prototypes, plus macros to set, clear, and test bits
Bitops.How     3224  any  How the BitXxx() macros in BITOPS.H work
Bitarray.C      848  any  Bit array functions
Bitcnt_1.C      804  any  Count bits in a number (fast, clever)
Bitcnt_2.C      872  any  Count bits in a number (fascinating)
Bitcnt_3.C     3344  any  Count bits in a number (table look-up)
Bitcnt_4.C     2330  any  Count bits in a number (recursive table look-up)
Bitcnts.C      2176  any  Benchmark to test BITCNT_x.C functions
Bitfiles.C     2895  any  Read/write bit files
Bitstrng.C     1800  any  Print binary formatted strings
Bstr_I.C        739  any  Convert binary string to int

Auke Reitsma's comprehensive linked list functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Llist.Nts      9343  any  Notes on linked list functions
Ll_Defs.H       922  any  Common includes and macros
Lls.H          6534  any  Singly linked list header
Lls_Blob.H     2788  any  Singly linked list for Binary Large OBjects
Lls_Str.H      1558  any  Singly linked list for strings
Ll_Que.H       2308  any  Singly linked list as queue
Ll_Stack.H     1839  any  Singly linked list as stack
Lld.H          6610  any  Doubly linked list header
Lld_Blob.H     2788  any  Doubly linked list for Binary Large OBjects
Lld_Str.H      1558  any  Doubly linked list for strings
Lls.C         20352  any  Singly linked list functions
Lls_Blob.C     3404  any  Singly linked list BLOB functions
Lld.C         19775  any  Doubly linked list functions
Lld_Blob.C     3404  any  Doubly linked list BLOB functions
Stack.H        4656  any  Header for stack management functions
Stk_Defs.H     2539  any  Common definitions and debugging macros
Stack.C       12778  any  Stack management functions
Stk_Blob.H     1330  any  Header for stack management of Binary Large OBjects
Stk_Str.H       859  any  Header for stack management of strings as BLOB's
Stk_Blob.C     2071  any  Stack management functions for Binary Large OBjects

Auke Reitsma's finite state machine (FSM) functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Fsm.H           733  any  Header file for simplified FSM implementation
Fsm.C          3141  any  Simplified FSM implementation

David Nugent's linked list container classes

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
List.Hpp       6615  any  Header
List.Cpp       2421  any  Member functions

Peter Yard's double ended queue functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Dequeue.H      1538  any  Header file supporting queues, stacks, FIFOs
Dequeue.C     17910  any  Functions, including sort and search

Dustin Puryear's stack managment functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Stk.H          1495  any  Header for stack manager
Stk.C          2032  any  Stack manager - init, push, pop, count

Jerry Coffin's hash table functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Hash.H         2713  any  Header for hash table functions
Hash.C         9236  any  Hash table management

J. Kercheval's PD regular expression comparator

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Match.Doc      5441  any  Documentation for Match.C
Match.H        4176  any  Header file
Match.C       19394  any  Portable source including optional test code

Functions to match similar sounding strings

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Phonetic.H     1163  any  Header for all phonetic comparison functions
Soundex.C      1606  any  Standard English soundex
Soundex4.C     5040  any  English soundex optimized for use with surnames
Soundex5.C     2178  any  Another soundex variant
Metaphon.C    12857  any  Phonetic string matching: English, but better than soundex
Approx.C       5168  any  Fuzzy string search

Ray Gardner's scalar date functions plus other date and time functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Scaldate.H     2541  any  Scalar ("Julian") date header
Scaldate.C     1718  any  Scalar ("Julian") date functions
Daynum.C       3252  any  Return statistics about a given date
Isdst.C        3453  any  Determine if a given date is in Daylight Savings Time
Today.C         693  any  Return today's date as a scalar value
Dow.C          1995  any  Return day of the week for any date
Fdate.C        1420  Dnt  Return DOS file date as a scalar value
Cal.C          3688  any  Calendar using Scaldate.C
Datetime.H     1228  any  Header for other time and date functions
Jdn_L.C        6395  any  Long integer Julian Day Number computation
Addtime.C      3055  any  Add two times (hh:mm:ss) together, normalizing the result
Easter.C       1379  any  Determine the date of Easter in any given year
Moon_Age.C     2218  any  Determine the phase of the moon for any given date
Parsdate.C     6180  any  Parse a date string
Parstime.C     1635  any  Parse a time string
Strftime.H      379  any  Non-locale version of ANSI/ISO strftime()
Strftime.C     9925  any  

Branislav Slantchev's zDate class library

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Zdate.Man     47747  any  Manual for using the zDate class library
Date.Hpp       4589  any  The zDate header
Date.Cpp      11202  any  The zDate functions
Datedemo.Cpp   8090  any  Demonstration of the capabilities of the zDate library

Jerry Coffin's word wrapping functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
W_Wrap.H        406  any  C header w/ prototypes and enum'ed constants
W_Wrap.C       5249  any  C functions
Center.C       1386  any  Center a wrapped line

Various CRC and checksum functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Crc.Txt       91419  n/a  CRC calculation tutorial
Crc.H           988  any  Header file for SNIPPETS CRC and checksum functions
Arccrc16.C     2050  any  Compute CRC's using ARC, LZH algorithm
Crc_16.C       1071  any  Calculated 16-bit CRC
Crc_16F.C      4750  any  Fast 16-bit CRC
Crc_32.C       8737  any  Table lookup 32-bit CRC
Checksum.C      897  any  Calculate checksum
Checkexe.C     3549  DOS  Checksum protection for executable files
Crc.Hpp        2527  any  Header for multiple CRC calculation class
Crc.Cpp        3294  any  Calculation class for 6 types of 16- and 32-bit CRC's

Craig Morrison's registration key functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Regkey.H        347  any  Header file for REGIT.C and CHKREG.C
Regit.C        1599  any  Generate registration key
Chkreg.C       1508  any  Validate registration key

Functions to get command line options

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Getopts.Man   12138  n/a  Manual for using getopts()
Getopts.H      2718  any  Header for Getopts.C
Getopts.C     18230  any  Scan command line for switches
Getoptst.C     5998  any  Test program to exercise getopts()
Palnfilt.C     3492  any  Palindrome filter, demo for Getopts.C
Getoptsl.H      914  any  "Getopts Lite" - Smaller & simpler than full GETOPTS
Getoptsl.C     6715  any  

String searching functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Search.H        825  any  SNIPPETS Header for string searching functions
Pbmsrch.C      2673  any  Pratt-Boyer-Moore string search
Bmhsrch.C      2196  any  Case-sensitive Boyer-Moore-Horspool search
Bmhisrch.C     3379  any  Case-insensitive Boyer-Moore-Horspool search
Bmhasrch.C     3782  any  Case-insensitive BMH search w/ accented chars

David Nugent's iostreams (C++) tutorial

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Iostutor.Txt  12724  any  Tutorial for following demo code
Myio.H         2768  any  Header for Myio.Cpp
Myio.Cpp       3713  any  Simple I/O class
Mystream.H     1848  any  iostream Interface for class Myio
Mystream.Cpp   3833  any  ios Interface implementation
Myline.H       1423  any  Simple line input classes
Myline.Cpp     1879  any  Implementation of myLine classes
Myiodemo.Cpp   4164  any  myio Loopback demo
Myio.Mak       2220  any  Makefile for Iostutor.Txt demo files

David Nugent's simple (sic!) string class

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Str.Doc       45158  any  Information on the string class
Str.H         12325  any  C++ header
Str.Cpp       14095  any  Simple, portable C++ string class

David Nugent's time functions class (a C++ wrapper for ANSI/ISO struct tm)

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Loctm.H        9146  any  Header for time class
Loctm.Cpp      1328  any  C++ class wrapper
Locdfmt.Cpp    3443  any  Date formatting functions
Loctfmt.Cpp    2382  any  Time formatting functions
Locfmt.Cpp      518  any  Date/time combined format
Lttest.Cpp     1612  any  Test main() for C++ time class

Walter Bright's memory allocation debugging package

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Mem.Txt        9209  n/a  Information on the Mem package
Toolkit.H      1859  D/O  Compiler-independent portability header
Mem.H          6885  D/O  Mem package header
Mem.C         15971  D/O  Mem package code

Jeff Dunlop's memory allocation debugging package

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Jmalloc.H      6039  DOS  Jmalloc package header
Jmalloc.C     21990  DOS  Like MEM, more functions, check the copyright
Jnew.H         1112  DOS  C++ debugging package for new, delete, uses JMALLOC
Jnew.Cpp       4802  DOS  

PC (DOS, OS/2) functions

General-purpose PC header files

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Ansicode.H     2803  DOS  Macros for ANSI.SYS screen control
Ansitest.C     2893  DOS  Test demo for ANSICODE.H, including remote detection
Dosgetch.H      371  DOS  Used by ANSITEST.H
Dosgetch.Asm   1855  DOS  Used by ANSITEST.H
Unistd.H        520  DOS  Posix standard header file for porting to DOS
Pcnvrt.H        732  any  Convert Pascal strings to C

C-Callable x86 assembly harware ID functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Intel.H        1539  DOS  Header for x86 hardware functions
Cpuid.Asm     12533  DOS  Determine type of CPU/coprocessor in use
8087_Sav.Asm   2911  DOS  Saves/restores 80x87 environment

Bob Stout's POSIX compliant directory functions & related files

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Dirent.H       1381  D/O  POSIX compliant header
Posixdir.C    10407  D/O  opendir(), readdir(), seekdir(), rewinddir() closedir()
Posix_Ls.C     3085  D/O  Directory lister demo
Dirmask.C      3124  D/O  Complex pattern matching (calls xstrcmp())
Xstrcmp.C      3652  any  Compare strings using DOS wildcards

DOS file name processing functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Filnames.H      965  DOS  Header file for file name processing functions below
Fln_Fix.C      4045  DOS  Crunch dot directories, verify DOS-valid paths
Flnorm.C       4744  DOS  Full file name normalization
Unix2Dos.C      499  DOS  Convert Unix-style pathnames to DOS-style
Chgext.C       2064  DOS  Change/add a file name extension
Fnsplit.C     10790  DOS  Portable fnsplit(), fnmerge() equivalents
Vfname.H       1191  any  Configuration header file for Vfname.C
Vfname.C       5933  any  Validate legal file names - DOS defaults but configurable

DOS file and directory processing functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Dosfiles.H     2292  DOS  Header for SNIPPETS DOS file and directory functions
Addhndls.C     3040  DOS  Allow more than 20 open files under DOS 3+
Addpath.C      2616  DOS  Append a new entry to DOS PATH
Doscopy.C      1897  DOS  Copy a file via DOS COPY command
Drvalid.C      3667  DOS  Benignly validate disk drives
Favail.C       1205  DOS  How many more files may be fopen'ed?
Fchsize.C      2526  DOS  Truncate/extend/resize DOS fiels using FILE pointers
Files.C        1967  DOS  Determine number of FILE set in CONFIG.SYS
Getdcwd.C      2975  D/O  Get current working directory for any given drive
Iscdrom.C       891  DOS  Determine if a given drive is a CD-ROM
Iscons.C       1011  DOS  Does a FILE * refer to the console?
Isfopen.C       956  DOS  Is a FILE * in use?
Isnetdr.C      1300  DNt  Determine is a drive is local or remote
Isramdsk.C     1380  DOS  Determine if a drive is a RAM disk
Iswprot.C      1860  DOS  Determine is a floppy is write protected
Mkdirs.C       1758  any  Build directory tree (deep mkdir())
Pushdir.C      5054  DOS  Stack-oriented CHDIR functions
Truname.C      1794  DOS  Normalize filename using undocumented DOS
Filelist.H      447  D/O  Read a directory into a linked list
Filelist.C     2570  D/O  

PC compiler compatibility functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Problems.Txt   9864  DOS  Common portability problems and some recommended solutions
Pchwio.H       1501  DOS  Hardware I/O portability header
Pchwio.C       1448  DOS  Hardware I/O portability functions
Biport.H       1056  DOS  Header to port Borland _geninterrupt()
Biport.C        478  DOS  Port Borland code using pseudovariables
Bc_Rand.H       502  any  Port Borland random() and randomize()
Fmemops.H       458  DOS  Emulate MSC's _fmemxxx() in Power C, ZTC++, and older TC++
Fmemops.C      1590  DOS  
Ftime.H         809  DOS  BC++-style file date/time struct and prototypes
Ftime.C        3298  DOS  BC++-style file date/time functions
Delay.H         364  any  Portable time delay() function
Delay.C        1228  any  
Clock.H        1233  DOS  Add clock() to older compilers without it
Tc15.H          394  DOS  Demo of portability header for older compiler (TC 1.5)

Steve Poole's non-block console I/O functions to port PC code to Unix

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Unxconio.H      464  Unx  Unix CONIO.H
Term_Opt.C     2132  Unx  Supporting function for CONIO.H functions
Unxgetch.C      816  Unx  A getch() for Unix!

Other Unix compatibbility functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Unxsleep.C     1595  Unx  The microsleep() function for SysV and BSD

Various system-level and utility functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Snpdosys.H     2824  DOS  Header file for DOS system-level function
Getseg.H       1216  DOS  Get segment and offset of any object
Break.C         532  DOS  Control DOS "SET BREAK=" status
Fndislot.C     1204  DOS  Locate an unused user interrupt vector
Dosfrmat.C     1458  DOS  Use DOS format to format a diskette
Format.H       5110  DOS  Complete low-level floppy format
Format.C      21009  DOS  
Fptr_Add.C      863  DOS  Add any value to a far pointer and normalize far pointers
Isshare.C      2383  Dnt  Determine if file sharing is enabled
Joystick.C     1187  DOS  Joystick support functions
Memavail.C      595  DOS  Report available DOS memory
Nwlinname.C          Nov  Retrieve NetWare login name
Pfopen.C       1728  any  Open a file anywhere
Redirect.C     2098  any  Redirect standard streams
Shel2Dos.C     1322  DOS  Shell to DOS from a running program

Martin Maney's fast line buffered file input

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Xfile.H         792  DOS  Header w/ prototypes
Xfile.C        5300  DOS  Contains xopen(), xclose(), xgetline()
Xtest.C         969  DOS  Demo for above

Portable PC video (text) functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Scrnmacs.H     3367  DOS  Macros for portable video work
Dvidport.H     1066  DOS  Macros for portable direct screen text output
Vidport.C      2596  DOS  Portable gotoxy(), clrscr(), etc. equivalents,
Dvidport.C      379  DOS  Code to support DVIDPORT.H
Scrnsave.C     1957  DOS  Save and restore text screens (buffer)
Fscrnsav.C     1765  DOS  Save and restore text screens (file)
Scroll.C       1843  DOS  Scroll screen function
Atr2Ansi.C     1281  DOS  Given video attributes, build an ANSI.SYS command string
Dvideo.H        736  DOS  C video information functions
Dvideo.C       5837  DOS  
Ansiload.H      221  DOS  Detect ANSI.SYS
Ansiload.C     1455  DOS  
Cursor.H        173  DOS  Cursor management/manipulation
Cursor.C       4383  DOS  
Vgablank.H      217  DOS  Blank/restore EGA/VGA screens
Vgablank.C      722  DOS  
Bresnham.H      513  any  Draw lines and circles
Bresnham.C     3135  any  
Bhamdemo.C     1140  any  Additional demo for BRESNHAM.C

Andrew Clarke's direct video and keyboard functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Vidmgr.Txt     3739  n/a  Information about the package
Vidmgr.H       5715  DON  Header file for the package
Opsys.H         733  any  Operating environment specific definitions
Vioimage.H      632  DON  Header for functions to save and restore text images
Vidmgr.C       5859  DON  Portable functions
Opsys.C        5106  any  Operating environment specific code
Vioimage.C     1266  DON  Portable functions for saving and restoring text images
Vmgrdos.C     11469  DOS  DOS-specific functions
Vmgros2.C      7511  OS2  OS/2-specific functions
Vmgremx.C     17005  OS2  EMX-specific functions
Vmgrdjgp.C     9483  DOS  DJGPP=specific functions
Vmgrwnt.C     14067  WNT  Windows NT-specific functions
Compile.Bat     281  DOS  Batch file to compile the package
Compile.Cmd     160  OS2  Command file to compile the package
Makefile.Djg    323  DOS  Makefile for DJGPP for DOS 2.0
Makefile.Dos    310  DOS  Makefile for Borland C++ for DOS 3.1+
Makefile.Emo    361  OS2  Makefile for EMX for OS/2 0.9b
Makefile.W16    327  DOS  Makefile for Watcom C/C++ for DOS 10.0
Makefile.W32    339  DOS  Makefile for Watcom C/C++ for 32-bit extended DOS 10.0
Makefile.Wat    312  OS2  Makefile for Watcom C/C++ for OS/2 10.0
Makefile.Emx    363  D/O  Makefile for EMX for OS/2 and DOS 0.9b
Makefile.Bcc    296  DOS  Makefile for Borland C++ for OS/2 1.0
Makefile.Wnt    327  WNT  Makefile for Watcom C/C++ for Windows NT 10.0
Makefile.Qcc    319  DOS  Makefile for MSC/QC for DOS
Makefile.Cyg    348  WNT  Makefile for Cynus GNU C/C++ for Windows NT b14.0
Qmenu.C        5258  DON  VidMgr demonstration program
Qm.Bat          174  DON  Batch file to run QMENU
Qm.Cmd          136  DON  Command file to run QMENU
Qmenu.Mnu       106  DON  QMENU options file

Bob Stout's readable screen display functions (DOS but easily "portablized")

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
More.H          941  DOS  Header file for more_proc() and adj_scroll()
Moreproc.C     2266  DOS  Display lines using MORE-style processing
Adjscrol.C     2245  DOS  Display lines using dynamically adjustable scroll rate
More.C          360  DOS  DOS/Unix more work-alike

Mark Kimes ANSI screen code interpreter

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Doansi.H       1267  DOS  Header file
Doansi_1.C    13841  DOS  Portable intepreter
Doansi_2.C     4764  DOS  OS-specific support functions

David Nugent's C++ ANSI/Avatar screen code interpreter

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Showansi.Doc   2313  n/a  Documentation for package
Scrintrp.Hpp    950  DON  Base class for screen interpreters
Video.Hpp      1335  DON  Simple video control class header
Ansisys.Hpp     738  DON  Header file for ANSI interpreter
Avatar.Hpp      841  DON  Header file for Avatar interpreter
Scrintrp.Cpp   2120  DON  Implements screen interpreter base class
Video.Cpp      5124  DON  Implements video control class
Ansisys.Cpp    4791  DON  Implements ANSI interpreter class
Avatar.Cpp     6764  DON  Implements Avatar interpreter class
Showansi.Cpp   3947  DON  Protram to display ANSI/Avatar files
Saemx.Mak       578  OS2  Make file for EMX
Saw16.Mak       788  D/W  Make file for Watcom 16-bit target environments
Saw32.Mak       588  D/W  Make file for Watcom 32-bit target environments

Bob Stout/Lynn Lively/David Fox sound & timing package

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Uclock.H       1490  DOS  Microsecond timing function header
Uclock.C       8158  DOS  Microsecond resolution timing functions
Uclock_.Asm    5465  DOS  Microsecond resolution timing support functions
Sound.H        4187  DOS  Sound functions header
Sound.C         679  DOS  Speaker control functions
Mktone.C       1282  DOS  Tone generation functions
Playlib.C      2829  DOS  Background music package
Playdemo.C      845  DOS  Demo of backgroud music package

Bob Stout's direct disk I/O functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Snpdskio.H     1017  DOS  Header for SNIPPETS direct disk I/O functions
Dos5Boot.H     2310  DOS  Header for boot sector access
Absdiskc.C     1187  DOS  C read and write functions
Absdisk.Asm    2239  DOS  Low-level code for disk I/O, DOS 2-5
Hugeread.C     5723  DOS  Read & write huge data using far pointers
Disk_Sn.H       206  D/O  Retrieve a disk serial number
Disk_Sn.C      2182  D/O  

Ruurd Pels's FOSSIL access functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
X00Api.H       7952  DOS  C header w/ prototype declarations
X00Api.C      11384  DOS  C access functions

Interrupt-driven serial I/O functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Queue.H        1334  DOS  Queue management header
Serial.H       5181  DOS  Serial I/O header
Queue.C        1875  DOS  Queue manager
Serial.C      10357  DOS  Interrupt-driven serial I/O library
Modemio.H      2454  DOS  Simple serial I/O header
Modemio.C      5317  DOS  Simple interrupt-driven serial I/O library

Robert Mashlan's PRINT.COM interface functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Prnspool.H     1333  DOS  C header w/ prototype declarations
Prnspool.C     3317  DOS  PRINT.COM spool queue functions
Printq.C       1501  DOS  Demo program for above

PC Printer control functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Sniprint.H      944  DOS  Header file for SNIPPETS PC printer control functions
Assignpr.C     1686  DOS  Multiple printer support
Changprn.C     1296  DOS  Change the standard printer device
Prtoggle.C     1867  DOS  Tee stdio to stdprn
Prtscrn.C      1020  DOS  Invoke BIOS print screen function
Prtstat.C       814  DOS  Determine printer status

Bob Stout's Portable PC exception handling

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Except.Doc     8965  DOS  Information on programs below
Cctrap.Asm     1691  DOS  Int 23h (Ctrl-C) trap
Cbtrap.Asm     1488  DOS  Int 1Bh (Ctrl-Break) trap
Trapflag.Asm   3927  DOS  Trap & flag Ints 23h & 1Bh
Trapdemo.C     1775  DOS  Demo of TRAPFLAG.ASM
Cerrinst.Asm   3131  DOS  Install DOS critical error handler
Cerrtrap.Asm   4803  DOS  DOS critical error handler

Code to reboot a PC under verious operating systems

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Reboot.Asm     1977  DOS  Reliable cold/warm boot for DOS, Windows 3.1
Os2_Boot.C     1182  OS2  Reboot for OS/2

Mouse functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Mouse.H        1216  DOS  Header w/ prototypes
Mouse.C        9281  DOS  Essential mouse stuff
Scrnpick.C     1701  DOS  Demo, retrieves text from screen using mouse

Dos (and OS/2) keyboard I/O functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Ext_Keys.H     7094  DOS  Header to define extended key codes
Ext_Keys.C     3416  D/O  A getch() work-alike for extended keyboards
Faskbhit.C     2732  D/O  Fast kbhit(), kbflush(), ext_inkey()
Faskbhit.How   2365  DOS  How the FASKBHIT.C functions work.
Kb_Data.H      3479  D/O  Keyboard status determination
Snipkbio.H     2680  D/O  Header file for SNIPPETS keyboard I/O functions
Getyn.C        3295  DOS  Get a yes/no response with prompt, default, and timeout
Isshift.C      2754  D/O  Determine if shift, alt, or ctrl key is pressed
Isxkbrd.C      1215  DOS  Detects extended (101+ key) keyboard
Keylocks.C      595  DOS  Caps/Num lock set/clear functions
Kbtrap.H        221  DOS  Traps reset, break, system keys
Kbtrap.C       6196  DOS  
Timegetc.C      899  DOS  Wait specified time for a keypress
Editgets.H      766  any  Get an input string with editing functions
Editgets.C    14592  any  
Getstrng.C     1746  any  Safe gets() for input string of unknown length

Cliff Rhodes' EMS and XMS support functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Xms.H           606  DOS  Header for XMS memory functions
Xms.C          4728  DOS  XMS memory functions
Xmstest.C      3045  DOS  Demo/test program for XMS memory functions
Ems.H           422  DOS  Header for EMS memory functions
Ems.C          3797  DOS  EMS memory functions
Emstest.C      2485  DOS  Demo/test program for EMS memory functions

Robert Mashlan's memory allocation strategy functions

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Strat.H         611  DOS  C header w/ prototypes and enum'ed constants
Strat.C        4108  DOS  C functions

Stuff for those wishing to try to set the master environment (don't do it!)

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Environ.Txt    6583  DOS  Notes on changing the master environment
Int2E.H         244  DOS  Header file for Int 2Eh functions
Int2E.Asm      1560  DOS  Access command processor "back door"
Ccomcall.C      819  DOS  C "glue" to use Int 2Eh
Glbl_Env.C    10564  DOS  Update and remove global environment variables
Mcb_Env.C      4666  DOS  Modify master environment using MCB's
Setenvar.C     3132  DOS  Set DOS master environment *legally*

Erik Bachmann's library and utilities

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Bacstd.H       3281  DOS  Header for the BACSTD library
Modulinf.H     1898  any  Defines structure and macros for status tracking
Sortkey.H     10705  DOS  Sort order tables for non-English sort sequences
Date__.C       5463  DOS  Convert a date string from __DATE__ to ISO format
Time__.C       1823  DOS  Convert a time string from __TIME__ to standard format
Cmpstr.C       8714  DOS  Compare strings with variable sort order
Modulus.C     18496  DOS  Basic routines for creating and checking modulus values
Repstr.C       4591  DOS  Replace a pattern in a large amount of data
Strcase.C      3946  DOS  Converts to upper/lower case using non-ASCII conversion
Strnsub.C      4365  DOS  Search for a string, replace it with a new string
Strrepc.C      2549  DOS  Replace all occurrances of one character with another
Strtrim.C      5787  DOS  Trim blanks from a string
Strtrimc.C     7158  DOS  Remove specific characters from a string
Fsif.C         5905  DOS  Search a binary file for a string
What.C         7369  DOS  DOS version of Unix what


Programmer's utilities

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
C_Cmnt.C       5182  any  Extract C comments (handles trigraphs)
Chmod.C        6157  DOS  Change DOS file attributes - wildcards, etc.
Errfix.C       1696  DOS  Redirect stderr to a file
Getcmt.C       9772  any  Extract comments from C/C++ source files
Testcmt.C       436  any  Test file for above
Hexdump.C      2515  any  Hex/ASCII file dump utility
Line.C          945  any  Filter to add line numbers to a file
Remtab.C       1810  any  Convert tabs to spaces
Safeminx.C     6018  DOS  Tool to prevent multiple header file inclusion
Seqtouch.C     6296  D/O  Sequentially time/date stamp files in a directory
Setimeto.C     1092  DOS  Set a file's time/datestamp to match another's
Sniptree.C     3205  DOS  Create a directory tree for SNIPPETS files
Stub.C         3615  any  Truncate .OBJ (and other) files
Timer.C        2875  DOS  Time the execution of a program

Jari Laaksonen's comment utilities in C++

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Cmtconvr.Txt   1034  n/a  Description of comment utilities
Cmtparsr.H     1882  any  Header for the comment parsing engine
Cmtconvr.H      534  any  Header file for the comment converter
Cmtcount.H     1002  any  Header file for the comment counter
Cmtremov.H      530  any  Header file for the comment stripper
Cmtxtrac.H      848  any  Header file for the comment extractor
Cmtparsr.Cpp   7032  any  The comment parsing engine
Cmtconvr.Cpp   1711  any  Convert C++ style comments to C style
Cmtcount.Cpp   2054  any  Counts commented lines
Cmtremov.Cpp   2012  any  Strip comments from a source file
Cmtxtrac.Cpp   2847  any  Extracts comments from a source file
Cmttests.C     1944  any  Test file for comment utilities

Jari Laaksonen's older comment utilities in C

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Commconv.C     4562  any  Convert C++ style comments to C style
Remcmmnt.C     4530  any  Strip C and C++ comments
Comments.Cpp   1709  any  Test file for above

Fred Cole's CSPLIT utility

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Csplit.H       1956  any  Header file for CSPLIT
Csplit.C      37626  any  Split source file(s) for electronic transmission

Various flavors of grep utilities

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Jgrep.C        4766  DOS  Simple and portable
Grep.C        16060  any  "Real" grep - free with some strings

Other utilities and demos

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
2Dlife.C       2791  any  2-D Life program
Ansiself.C      457  any  Self-replicating program in ANSI/ISO C
Bigfac.C       3052  any  Do large factorials using ASCII multiply
Bincomp.C      4251  any  Binary file comparison utility
Bodymass.C     2197  any  Calculate ideal weight for your height
Bordcolr.C     2925  DOS  Set border color
Cdir.C         3640  DOS  Like DOS CHDIR except changes drives as well
Chbytes.C      6630  any  Edit binary files in place
Cmdline.C       716  any  Demonstation how to access command line arguments
Cursize.C      1611  DOS  Set the cursor size
Do.C            400  DOS  Specify multiple command line commands
Dossort.C      3280  DOS  SORT work-alike
Drivsrch.C     2241  DOS  Search for physical/logical drives
Drvs.C         1482  DNt  Checks for valid disk drives, local or remote
Dspclock.C     2627  DOS  On-screen TSR clock
Dspdtst.C      3935  DOS  I/O benchmark - Miscrosoft/Borland/Symantec/Watcom/Mix
Dspdtst.Out    1940  DOS  Results from DSPDTST on my machine
Factor.C       1824  any  Print prime factorization of a number (double)
Filcount.C     1959  DOS  Count files/directories
Filecat.H       342  any  Header for FILECAT.c and MAXLINE.C
Filecat.C      5436  any  Adds one file onto another vertically
Maxline.C       931  any  Returns the length of the longest line in text file
Flopcopy.C     2717  DOS  Copy a floppy to a HD subdirectory
Fraction.C     2829  any  Convert a real number to an integer ratio
Getvol.C       1245  DOS  Retrieve a disk volume label
Grafline.C     1429  DOS  Demo of PC line drawing characters
Head.C         1090  any  Unix head work-alike
Howdy.C         581  any  Obfuscated C code
Ifactor.C      1381  any  Print prime factorization of a number (long)
Inchcvrt.C     1934  any  Convert inches to feet/inches and fractions
Kbflip.C       2432  DOS  Set/clear Caps/Num/Scroll locks
Keywatch.C     4737  DOS  Demonstrates capturing keyboard interrupt
Krnldemo.C     3253  any  Demo of cooperative multitasking
Killff.C       4128  any  Strip FF characters from text files
Log.C          7876  any  Utility to log working time
Lsd.C          5796  DOS  DIR enhanced work-alike
Lzhuf.C       19006  any  Compression used in LHARC & LHA
Mainmain.C      124  any  Obfuscated C code
Maze_1.C       4436  any  Maze generator
Maze_2.C        283  any  Obfuscated maze generator
Maze_3.C        492  any  Cute maze generator. Run, then enter size.
Morse.C        7601  any  Convert strings to morse code
Mterm.C        4056  DOS  Micro terminal (comm) program - use with X00 package
Mv.C           3028  DOS  Move files
Nlcnvrt.C      2899  any  Convert text files between DOS and Unix (CRLF <=> LF)
Palndrom.C      323  any  Self-replicating palindrome - try it!
Permute1.C     3637  any  Permute strings
Permute2.C     1845  any  Permute strings
Pr.C           8671  any  Print a file with headers & breaks
Prntself.C      886  any  Program which prints its own source
Query.C        1324  DOS  Timed query w/default for batch files
Rdxcnvrt.C     1214  any  Convert between number bases
Reversi.C      3167  any  Reversi game from '94 Obfuscated C Contest
Rm_All.C       5630  DOS  Remove all files - now supports recursion
Roman.C        1893  any  Convert Arabic number to Roman numeral
Setlevel.C     9558  DOS  Query user from file, return answer in ERRORLEVEL
Setvol.C       5079  DOS  Set, change, or kill a disk volume label
Skiplist.C     7103  any  Demonstration of skip lists
Speed.C        3763  DOS  Benchmark to calculate I/O performance
Spin.C          912  any  Demo of how to make various text "spinners"
Split.C        1861  any  Split large text files into smaller ones
Stats.C        1957  any  Analyze file statistics
Stripeof.C     1517  DOS  Strip ^Z characters from DOS text files
Sunriset.C    21862  any  Computes length of day at any place on Earth
Tabtrick.C     1654  any  Demo using printf() for columnar formatting
Tail.C         4782  any  Print last n (default = 5) lines of a file
Tiresize.C     3273  any  Calculate English dimensions for standard metric tire sizes
To4Dos.C       1409  D/O  Convert SNIPPETS.NDX to 4DOS DESCRIPT.ION file
Todaybak.C     2263  DOS  Back up today's files to a floppy
Touch.C        2046  DOS  TC/TC++/BC++ set file time/date stamp
Treedir.C       893  DOS  Recursive directory lister
Uuencode.C     3321  any  Unix uuencode
Uudecode.C     1160  any  Unix uudecode
Wc.C           1487  any  Like Unix wc, counts lines, words, chars
Weird.C         331  any  Obfuscated C code
Where.C        3392  DOS  Search for a file
Wordwrap.C     2390  DOS  Simple CRT word wrap demonstration
Wputch.C       4371  DOS  Demonstrates how to restrict output to a text window

Miscellaneous and FAQ (Frequently Asked Question) files

Miscellaneous code snippets

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Hires.Asm      1292  DOS  Switch to 43/50 line mode on EGA/VGA
Fpswitch.C     1483  any  Demo how to use function pointer arrays
Fsm_Demo.C      867  any  Demonstrates a finite state machine

Miscellaneous files

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
Make.Ini       4081  any  Master file for NDMAKE
C_Lines.Awk    1352  any  AWK script to count lines of C code
Asmcnvrt.Awk   1233  DOS  AWK script to convert "asm" lines in DOS compilers
Compiler.C     2181  DOS  Test for popular PC compilers & versions
Style.C        1931  any  Suggested coding style guidelines

FAQ file (answers to Frequently Asked Questions)

File          Size   O/S  Description
------------ ------  ---  ----------------------------------------------------------
C_Faq.Nfo       441  n/a  Information where to get the comprehensive C language FAQ
C_Prec.Txt     4527  n/a  Operator precedence/associativity in C/C++
Posix.Nfo      2639  n/a  Answers the "What is Posix?" FAQ
Stdstuff.Txt  14079  n/a  Crib sheet of standard C functions, macros, and keywords
Cpp_Faq.Txt   10446  n/a  Frequently-asked questions from the FidoNet C++ echo
Copyrite.Nfo   1025  n/a  Brief information on copyright law
Storage.Typ    2031  n/a  C storage types crib sheet
Rtlftrul.Txt   5074  n/a  Right-left rule for reading C
Ptrtutor.Txt  89709  n/a  C pointers and arrays tutorial
Rlvalue.Txt    5149  n/a  Brief tutorial on lvalues, rvalues, and pointers
C_Port.Txt    12649  n/a  How to write portable C code
Hungnote.Txt  24283  n/a  Simonyi's original monograph on "Hungarian Notation"
Enums.Txt      2170  n/a  Helpful hints for enums
Sorts.Txt      3392  n/a  Discussion of sorting techniques
Decompil.Txt   7351  n/a  Looking for a decompiler? Read this!
Resource.Lst  20791  n/a  C Resource (books, magazines, vendors) list
Vt100.Txt      9537  n/a  Chart of VT-100 escape codes
Which_C.Txt   22693  DOS  Guidelines for choosing a PC C compiler
Pclrscrn.How   4068  DOS  How to clear a PC screen
Ansisys.Txt   10635  DOS  Chart of ANSI screen control codes
Mmodels.Faq    5736  DOS  Information on DOS real mode memory models
Para_Faq.Txt  12242  DOS  PC Parallel Port Mini-FAQ
Total number of files: 670, Total size: 2663713 bytes.