## The SNIPPETS Collection

This is an official Snippets site and may not be mirrored without permission. Information Broker Systems maintain another site at http://www.brokersys.com/snippets/.

> 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

#### Search

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 ftp://ftp.brokersys.com/pub/snippets/.

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

## Utilities/Demos

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