Herein lies source code for various personal (noncommercial) C, C++, Pascal and Modula-2 programs that I wrote between 1987 and 1995. While not stated explicitly in the source code (simply because I haven't gotten around to it), the following excerpt from the GNU General Public License (also available locally) applies to all the programs listed on this page:
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
I've made these programs available under the GNU GPL in the hope that they will, if not save the world, provide a source of help, inspiration, or amusement to other programmers.
You'll notice that a fair number of these programs that resemble Unix-based utilities. This is because I needed these functions for one thing or another and figured it would be a good learning exercise to write them myself.
Note that these programs are provided as-is, i.e. without any warranty whatsoever. Many are complete and working while others are incomplete and may have bugs; use them at your own risk.
If you find these programs useful, or if you find any bugs, please drop me a line.
Date | Size | Name | Description |
11/28/1990 04:48a | 523 | 10H.C | sample code for setting interrupt 10h |
10/26/1988 04:12p | 743 | 8TO2.C | copies stdin to stdout, first converting all leading sequences of 8 spaces to 2 (i.e. makes indenting smaller) |
03/06/1995 01:13a | 49,289 | ANAGRAMS.C | creates anagrams from words and phrases (see this page for more info) |
07/31/1990 03:31a | 1,967 | ANIM.C | the beginning of a low-res (CGA) drawing and animation package; not finished |
07/31/1990 02:15a | 713 | ANIM.H | extra stuff for anim.c |
06/08/1994 04:09a | 135 | ASCII.CPP | prints all 255 ASCII characters and their corresponding codes |
08/19/1990 05:57a | 818 | BIBLEFIL.C | extract chapter/verse headings from text files in BIBLExx.ZIP files |
11/17/1991 06:03p | 3,439 | BIGARRAY.C | disk-based arrays |
11/17/1991 06:54a | 1,078 | BIGARRAY.H | header file for bigarray.c |
10/08/1993 11:06p | 3,771 | BMP2ASC.C | displays information about BMP files |
10/12/1988 03:07p | 8,926 | C64TOIBM.MOD | displays C-64 Doodle file in IBM EGA 200x320 16-color mode |
02/05/1989 04:47p | 2,992 | CBM2IBM.C | copies stdin to stdout, converting CBM "PETASCII" to IBM PC [MS DOS] ASCII format, or vice versa |
02/26/1989 03:45a | 16,264 | CHECKUP.C | reads the hard drive's boot sector, C:\COMMAND.COM, C:\IBMBIO.COM, and C:\IBMDOS.COM. Then, either writes image of boot sector and information about three files mentioned to an image file or compares them with an already existing image file; useful for checking whether your DOS system has been infected with a virus or otherwise compromised |
10/28/1989 05:11p | 5,820 | CMP.C | compresses and decompresses files |
09/30/1989 04:16a | 2,365 | CODE.C | filter to encode stdin and send it to stdout; useful for things like ROT13 |
06/07/1989 05:27p | 1,659 | COMPARE.C | compares two text files and shows the differences |
05/21/1991 02:43a | 7,407 | COMPRESS.C | compress and decompress files |
09/01/1987 01:32a | 6,492 | CONVERT.PAS | converts Ventura Publisher ".C00" files to mountable Xerox 4045 laser printer form files (i.e. constant pages) with ".LTR" extensions. |
05/29/1990 05:45p | 918 | CRAZY.C | English-like C code |
01/07/1989 01:02a | 16,277 | DD2BIN.MOD | displays C-64 Doodle file in IBM EGA 200x320 16-color mode |
04/24/1992 01:55p | 4,899 | DELDIR.C | removes a given directory, including any files it contains; optionally recurses subdirectories |
05/06/1990 03:20a | 6,508 | DISK_PI.C | computes Pi to any given number of decimal places; features disk-based swapping |
02/02/1989 04:01p | 2,854 | DROP.C | "Drops" text on screen |
08/20/1992 05:42p | 1,210 | EPRINT.CPP | filters text files, changing formfeed (CTRL-L) characters into appropriate number of newlines |
04/14/1989 04:39p | 3,081 | EXTRACT.C | extracts a run of bytes from a specified file to stdout |
11/10/1990 04:40a | 9,962 | FAKETEXT.C | analyzes text files for frequency of all "windows" of text of a given size, then creates an output file based on the frequencies of all "windows" found (I think this was based on my interest in Markov Chains) |
11/03/1989 03:50a | 11,763 | FILES.C | displays variations of full path name of each file in a given directory to stdout; optionally recurses subdirectories |
03/01/1989 12:34a | 9,020 | FINDBUG.C | finds the "Dungeon" virus on either the boot sector or all files |
04/14/1991 02:34a | 1,780 | FIX.C | removes unalphabetized lines in a file |
03/17/1991 09:56p | 14,704 | FLISTS.C | generic linked list utilities (for linked lists stored in a file) |
03/17/1991 09:55p | 2,589 | FLISTS.H | header file for flists.c |
12/05/1992 01:34p | 3,968 | FULLSPEC.C | displays full filespec of all files in current directory and below |
03/15/1990 12:26a | 1,700 | GAME.C | some sort of game I was working on (similar to Tetris?) |
01/30/1990 03:03a | 604 | GAMEGLOB.C | globals for game.c |
03/10/1990 09:04p | 313 | GAMEGLOB.H | header file for gameglob.c |
03/12/1990 03:16a | 9,918 | GAMEVID.C | video stuff for game.c |
03/10/1990 09:18p | 1,526 | GAMEVID.H | header file for gamevid.c | 09/04/1990 03:21a | 608 | INTER.C | sample code for setting interrupt vectors |
12/03/1989 02:32a | 498 | KEY.C | displays what's in the keyboard buffer |
04/06/1989 07:45p | 102 | KIM.C | test for kmvid.c |
03/08/1991 05:20p | 11,013 | KMVID.C | my video functions |
03/08/1991 05:21p | 4,772 | KMVID.H | header file for kmvid.c |
03/20/1992 03:53p | 4,332 | LATIN.C | reads standard input and writes Pig Latin or Egg Latin equivalent to standard output |
08/03/1988 06:37a | 5,091 | LATIN.MOD | reads standard input and writes Pig Latin or Egg Latin equivalent to standard output |
04/06/1989 03:30a | 63,638 | LIFE.C | John Conway's game of Life for Windows |
09/22/1993 01:51a | 24,804 | LIFE.CPP | John Conway's game of Life for Windows |
09/07/1992 03:28p | 352 | LIFE.H | header file for life.cpp |
01/26/1989 02:17p | 56,794 | LIFE0126.C | development version of Life |
08/29/1988 07:05a | 10,139 | LIFE0829.C | development version of Life |
09/05/1988 07:35p | 21,150 | LIFE0905.C | development version of Life |
09/07/1988 04:09a | 26,336 | LIFE0907.C | development version of Life |
09/09/1988 10:47p | 27,996 | LIFE0909.C | development version of Life |
09/15/1988 03:35a | 31,905 | LIFE0914.C | development version of Life |
09/21/1988 05:26p | 33,591 | LIFE0921.C | development version of Life |
11/04/1991 07:08p | 13,391 | LISTS.C | generic linked list utilities |
02/21/1993 04:00p | 13,402 | LISTS.CPP | generic linked list utilities |
02/21/1993 03:53p | 2,914 | LISTS.H | header file for lists.c and list.cpp |
10/22/1990 01:19p | 19,845 | LISTS.PAS | generic linked list utilities (for Turbo Pascal) |
10/20/1990 05:53p | 1,793 | LISTTEST.PAS | linked list test |
11/15/1988 01:49p | 15,534 | MAKENDX.MOD | reads 320x200 Doodle pictures and adds them to an .NDX as EGA images |
09/02/1989 05:52p | 6,010 | MENU.C | generic menu system |
05/04/1988 04:40p | 6,417 | MENU.PRG | generic menu system for dBase III+ |
04/14/1991 05:36p | 3,225 | MERGE.C | given two files of sorted words, merges them to stdout; if any words are duplicated, then takes the marked one |
04/13/1991 10:17p | 3,836 | MERGEALL.C | extracts and outputs words according to length |
04/27/1989 10:27p | 12,338 | MINE.C | Mine Field game |
09/14/1989 08:00p | 3,381 | MMFILT.C | filters MultiMate .DOC files and creates new file with ".DDD" extension; adds filename to first 8 characters of file, fixes bullet characters, and replaces '>' with '|' |
08/26/1992 10:00p | 8,492 | MOM.CPP | Magpie Offline Mailer; the beginning of an offline mail reader for Magpie BBS systems |
08/25/1992 05:38p | 511 | MOM.H | header file for mom.cpp |
09/07/1991 04:59a | 448 | MS2U.C | Copies stdin to stdout, converting newlines to CHR(10)'s (MS-DOS format to Unix format) |
07/25/1993 05:15p | 19,792 | MY_PI.C | computes Pi to a given number of decimal places |
09/02/1991 02:02a | 737 | NOCRLF.C | removes all instances of |
12/13/1989 04:26a | 170 | NOTMACRO.C | replaces non-consecutive newlines with carets |
05/08/1992 02:52p | 5,829 | OBJECTS.CPP | A.I. type thing for describing and querying things |
05/02/1992 04:39p | 1,845 | PALIN.PAS | tests strings for "palindrome-ness" |
03/04/1989 05:33a | 1,041 | PCB.C | copies text from stdin to stdout, removing newlines (except where explicitly requested via "\n") |
02/01/1991 03:20a | 2,425 | PERM.C | does permutations |
09/28/1989 12:01a | 575 | PFSPRINT.C | some type of printer utility |
07/25/1993 01:15p | 19,792 | PI.C | calcuate Pi to an arbitrary number of decimal places; added support for disk swapping, continuing a saved session, and variable memory usage |
1/21/1989 03:31a | 1,668 | POP.MOD | visual "pop" routine tests |
10/09/1991 04:40a | 1,565 | READSTR.C | reads string from console and echoes it; useful for batch files that want user input |
11/21/1988 09:57p | 20,822 | REFDEF.MOD | finds unreferenced identifiers and multiply defined global identifiers within a module and generates a .LST file compatible with Logitech's MOD editor |
05/15/1992 03:40p | 2,741 | ROMAN.CPP | convert Roman numerals to Arabic and vice versa |
05/06/1990 06:53p | 5,588 | RWTEST.C | performs a read/write test on every track and sector of a given drive and reports any bad sectors |
04/16/1989 07:08p | 10,620 | SEARCH.C | very, very basic grep-like utility |
04/06/1989 09:04p | 949 | SFX.C | special effects for wiping/clearing screen; apparently not completed |
04/13/1991 08:34p | 1,069 | SPLIT.C | given a SORTED text file, splits it into 26 different files, A.OUT, B.OUT, C.OUT, ... , Z.OUT, each containing words which begin with the letter of the filename |
11/16/1988 08:22p | 3,412 | SS.C | slide show demo |
11/20/1990 04:43a | 13,973 | STARDEMO.C | star field graphics demo |
04/14/1992 03:44p | 2,654 | STR.CPP | string class test |
09/07/1991 05:25a | 1,198 | STRIP.C | copies stdin to stdout, stripping characters specified |
02/13/1994 10:32p | 744 | STRUTILS.C | contains a function to add commas to floating point numbers |
01/29/1989 05:49a | 875 | TC-CRASH.C | sample code that causes Borland's Turbo-C 2.0 compiler to crash |
04/13/1989 10:20p | 1,838 | TEE.C | copies stdin to both stdout and to the file specified |
04/09/1992 09:36p | 1,242 | TEST2.CPP | class test |
08/10/1992 02:48p | 15,244 | TIMEDATE.CPP | low-level time and date functions |
08/10/1992 02:19p | 5,940 | TIMEDATE.H | header file for timedate.cpp |
12/04/1990 01:27a | 13,316 | TOKEN.C | very basic grep-like utility |
05/26/1991 06:34p | 6,227 | TXTINFO.C | similar to Unix's wc utility |
09/07/1991 04:54a | 372 | U2MS.C | copies stdin to stdout, converting chr(10) to newlines (Unix format to MS-DOS format) |
04/03/1993 08:22p | 3,399 | UNIQ.C | writes either unique or non-unique lines from stdin; similar to the Unix utility by the same name |
04/16/1989 09:27p | 3,000 | UNIQ2.C | different version of uniq.c |
11/7/1988 10:27a | 3,207 | UNPACK.MOD | unpacks a packed Doodle file |
12/22/1988 11:30p | 15,903 | VIEWC64.MOD | displays C-64 Doodle file in IBM EGA 200x320 16-color mode |
11/17/1988 10:36p | 105,000 | VLC/ | "Very Limited Compiler" (VLC): a college assignment I did in Modula-2 |
02/18/1995 04:02p | 305 | WOOD.C | prints the "99 Bottles of Beer" lyrics, only with cords of wood |
12/27/1990 08:59p | 1,160 | WORDS.C | parses words from stdin to stdout |
12/29/1990 07:41p | 1,541 | WPFILT.C | filters print-screen dumps from WP's SPELL.EXE program and dumps raw words to stdout |
10/24/1996 10:08a | 1,541 | XXXXBEER.S | PAL program that prints the words to the "99 bottles of beer" song |
Copyright © 2024 by Kim Moser (email) |
Last modified: Sun 06 January 2008 06:30:07 |