Info-IBMPC Free Program Library ------------------------------- (Support files are shown in lowercase) The following programs may be FTP'ed to any ARPANET/MILNET site from [ISIB] using username ANONYMOUS, password GUEST to FTP. Subdirectories are in the form ABOMB.BAS This program supposedly simulates a nuclear attack on New York. This attack consists of "just 9 1 MT bombs exploding at an altitude of 8000 feet." Sound, color graphics, and news reports are combined to make a sobering point. 9/15/85 ADDRIVE.BAT This file will create ADDRIVE.COM. ADDRIVE is used with the SUPERDRIVE ramdisk (AST). Normally, you must open the system unit and reset switches on the motherboard to use SUPERDRIVE. This resets the 'switches' in RAM, so no hardware switching is required. CCRJW%UMCVMB.BITNET@WISCVM.WISC.EDU (Richard Winkel) Mon, 01 Dec 86 12:30:24 CST ADDPATH.C ADDPATH adds (or removes) directories from your search path. If you try to add a directory that is already in the path it won't get duplicated. Directories need not be fully qualified in the ADDPATH command. They will be resolved relative to the current directory. Jim Anderson 3/15/87 ASCII.C "Stupid Ascii File Dump Routine" Ya'akov_Miles%UBC.MAILNET@MIT-MULTICS.ARPA, 15 Sep 86 ASCIIPRT.CAT is a program written in postscript by Brian Reid of Adobe. Send this file to the printer followed by the ASCII file to be printed, followed by a control-D. nate@RINSO.LCS.MIT.EDU (Nathan Liskov) 4/7/87 ASK.CAT a program similar to BATQUES which allows you to write ASK.OLD interactive batch files. Compared to BATQUES, this program has the following features: 1) easier to use; no need to lookup ASCII table 2) option to select case (in)sensitivity 3) can print ANY character (including '$') in the prompt Peter Wu 4/21/86 Newer version is written in C and supports many more features. We are keeping the old version around as some people may be interested in this as an example of assembly language programming. Updated: 11/29/86 ASTCLOCK.C For use by those with AST 6-pack clock-calendar cards and the PC/IX Unix system. This program, when placed in /etc/rc (Unix's autoexec.bat), will check and read the card's clock/calendar properly. 6/23/84 ASYNC.CAT Loadable device driver for COMM ports. Mike Higgins The Computer Entomologist P.O. Box 197 Duncans Mills, CA 95430 8/1/86 ATTRIB.MAC From net.sources; see CMR-ATTRIB.* for more details. R.D. Eager BENCH.PAS Turbo Pascal Benchmark program. 5/27/87 BATCD.ASM Allows a batch file to change directories (just like the CD command), but to read the new directory from the "standard input file" instead of the command line. 1/3/84 1/4/84 BATQUES.ASM Allows interactive responses to questions within .BAT files. In essence this allows a BATCH-DRIVEN menu. 1/1/84 BIGSH.C For hamsters using PC-Xenix only: 2 wedgies that get around the 1 megabyte file size limit imposed by IBM and Microsoft. BIGSH.C is a wedge for /bin/sh and BIGCSH.C is a wedge for /bin/csh. The author's ingenious trick is documented in BIGSHELL.DOC. 6/28/85 BITUUDEC.C UUdecoder for files shipped over bitnet. It ignores extra blanks and allows uudecoding of multiple files using wild card features. BL.ASM This program -- basically an improved CLS command -- blanks the screen but leaves the cursor at the TOP line of the screen (as opposed to CLS, which dangles the cursor at the SECOND line... tsk.. tsk..). 6/26/85 BOOTCODE.ASM Bootwriter - Reads the boot sector from drive C and merges the partition table to the boot program which follows, and then writes it all back to drive C, overlaying what is there. The resultant boot program will prompt for the desired system (Xenix or Dos) when booting. 3/28/85 BREAK.ASM Have you ever, while debugging a program, frantically struck the key trying to terminate the program, which has locked itself in an infinite loop? If you just answered "yes" to that long and silly question, then this program could be for you. In this code there is a routine to call to establish the interceptor, and one which MUST be called to dis-establish it. When control-break is hit, if the CS:IP is in the user code, the program is terminated upon return from the keyboard interrupt handler. This has been tested with Lattice C 2.14 S model code on a Hercules monochrome card. No keyboard enhancers were in use. According to the author this code is "very, very, very delicate hackery and has been tested only in a restricted environment. No guarantees are made, but it is up to each user to determine if this can work in his/her environment." 8/21/85 BREAKUP.C This program can be used to break up a digest into its component messages. 4/23/86. BUF160.ASM This program expands the typeahead buffer to 160 characters (instead of 15). Written by John Socha for the Socha's Toolbox column in Softalk for the IBM PC, Nov 83. 10/13/84 5/2/85 CANNON.BAS Cannon-aiming game complete with sound effects. 12/12/82 CHECK87.ASM This Intel program properly checks for the presence of either an 8087 or an 80287 coprocessor. All IBM's "Guide to Operation" manuals issued before April 1983 show the coprocessor switches exactly opposite what they should be! 3/30/85 CHGPATH.C Allows you the make permanent changes to the PATH environment string from the DOS command line without having to retype the entire PATH command string. Chgpath uses the DeSmet C88 C compiler package, v2.51 Written by Scott Mason 4050 Jay Em Circle Ellicott City, MD 21043 with routines from John M Sellens and Dan Lewis Russell Nelson 4/29/87 CKCOMPAQ.ASM CKCOMPAQ.ASM looks at the copyright notice in the Bios rom to see if the machine is indeed a Compaq. SET_CLIK.ASM sets the key click parameter in the Compaq. SET_CLIK.ASM is included in this file. 3/3/85 CLEAR.ASM For DOS 2.0: Clears the screen from DOS in any mode. (No weird bars in graphics mode here, eh!) 8/25/83 CMR-ATTRIB.ASM Modified attrib.asm to twiddle archive bit. I also made a couple of other minor changes. I changed the command parser to make '.*' the default when the file name extension is not specified. I changed the command parser to accept ";" as a delimiter. I changed the command parser to accept multiple attributes. In the case of incompatible attributes the last one wins. The user should be aware that there are some other differences between this program and the dos 3.10 attrib command. The dos attrib command lists the entire drive and path when listing files, while this program lists only as much of the path as the user specified. Original program was written by Bob Eager, Herne Bay, England. Craig Milo 3-Feb-86 COMM.C Terminal emulator written in DeSmet C with assembler for all I/O routines. New functions are easy to add. For hamsters with other compilers, the only part likely to fail to work is the assembler for I/O: it is in-stream, using the "#asm" construct for in-stream assembler. Thus, you'll need to edit all assembler into an external assembler file and invent headers and trailers to implement the C calling convention for your compiler. A termcap file for this terminal emulator is also included. 4/6/84 COM_PKG1.ASM Fully interrupt-driven, high speed, serial I/O package adapted from code by John Romkey and Jerry Saltzer of MIT. Implements a library of communcations routines callable from Microsoft Pascal. GLASSTTY.PAS, included in this file,is an example terminal program that calls it. 12/28/83 COM_PKG2.ASM New version of the MIT communications package supports both serial ports simultaneously, has XON/XOFF flow control built in, can be used direct or through a modem, keeps running counts of comm errors, and works with the PC, XT, jr and clones as well. (Whew!) It uses assembly language calling conventions. GLASSTTY.ASM is a test driver for it that emulates a teletype. 3/28/84 COM_PKG3.ASM An adaptation of COM_PKG1 for the UCSD p-System. Alastair Milne , 29 May 86 COMPRESS.C Emulates the Unix COMPRESS utility on MS-DOS machines. Uses adaptive Lempel-Ziv coding techniques to compress files or even directories. Compressed files are identified by a .Z or .XZ extension. For those who run MS-DOS version 3.0 or later, the program can be saved in three different files, COMPRESS.EXE, UNCOMPRE.EXE, and ZCAT.EXE, and it will decide what to do, based on which name was used - just like the Unix version of the program. Those with MS-DOS version 2.xx will have to call it "COMPRESS.EXE" and control its behavior with its options. 12/4/85 CONTOUR.C Finds contours of a tabulated function of two variables. Input is a list of z values on a rectangular grid. Output is a list of X and Y values of points on the contours, with one point per line. Can calculate capacitance. The output file is appropriate for display by GRAPH. PLATES.POT is a sample input file. contour2.c,plates.pot,contour.doc included in file. See LAPLACE.C CONVERT.BAS Converts binary to and from ASCII .HEX files and is nice enough to give you instructions if you ask. ("gimme help, eh?" ... .. . .. . "ok!") 3/3/83 CPUID.ASM This program will determine the cpu type and numeric coprocessor type in an IBM-PC (or compatible). This is the source code directly from the April 1986 issue of PC Tech Journal. 4/13/86 CRC.PAS A practical implementation of the cyclic redundancy check written in Turbo Pascal. Some assembly code borrowed from a recent MS-DOS Kermit (don't worry; 'tis acknowledged in the source code). 11/30/85 CRC2.PAS A documented set of routines to calculate CRC's, written for Turbo Pascal, inspired by CRC.PAS. David Dantowitz, Feb 86 CRCK.ASM Written in Mark Williams 8086 Assembler, it generates acceptable CRC16's. It is based on a paper written by Stuart Wecker at DEC. It uses a lookup table of variable size (dependent on memory available). This version uses a rather large 256 word table. 1/1/85 CURPOS.ASM Procedure to position the cursor using Lattice C calling conventions. 9/2/83 CTLENABL.ASM patches DOS *in memory* when run. It works for PCDOS3.0-3.3, and MSDOS 3.x all OEM's I've tried. You execute the command in your AUTOEXEC.BAT file and it does the in memory patch of DOS to enable control U and controlW editing. 5/28/87 DATES.TUR Dates is a program that keeps a list of 1-line memos, each consisting of a date or range of dates, and a comment. When run, it displays calendars for three months (previous, current, and next), the first dozen lines of memos on file, the date of the first memo, and the prompt. Bruce Hillyer 5/8/86 DEBUG.HELP The notorious DEBUG Cheat Sheet, maintained by Henry Schaffer. Corrections, suggestions, and comments are requested. 1/18/86 DEFEND.BAS Defend cities from descending missiles. Requires joystick, game control adapter, color/graphics card and of course, BASICA. 12/12/82 DIAL.SRC is a program that is used to dial a number through using a hayes modem. This program is capable of finding the phone number in a data base. Yuval Rakavy 4/20/87 DIFFER.SPT A file comparison program written in SPITBOL. It supposedly fries dried and coagulated latex (i.e., it burns rubber!) and includes line numbers from the input files. Should also run under Minnesota Snobol4 with only slight changes. 2/14/84 DIRLIB.C Dirlib is the "dirlib package" implemented for MS-DOS and Microsoft C. Matt Weinstein 25-Feb-86 DOS-HELP This subdirectory contains 52 DOS 2.1* help files, which (subdirectory) cover DOS commands and concepts. Very useful for beginners and handy for experienced people as well. 1/18/86 DOS.INTERRUPTS This is the "new and improved DOS List of Interrupt dos-int.doc Vectors." Considerable work was put into this by John Ruschmeyer, Bill Frolik, and Ross M. Greenberg. This list is a MUST for hamburger-types who must hack and hack for a living! 8/6/85 DSKWATCH.ASM Resident program to report intermittant disk I/O errors, before DOS reports them after trying 5 times. Error handling remains with DOS. E r r o r s r e p o r t e d: No Response No response from disk Failed Seek Could not locate data NEC Error Controller error Bad CRC Seen Circular Redundancy Check error DMA overrun CPU too busy to allow data on bus (unusual) Impos Sector NEC tried to read non existent sector No Addr Mark No address mark on disk W Protected Write protected disk Err Unknown Severe problem; NEC doesn't know what happened N o t e: Some copy protected disks will show disk errors, which is part of the protection scheme. A u t h o r: Steve Holzner in PC Magazine Vol. 4 No. 12, p. 263. 10/6/85 DU.BAS This program lists the number of bytes occupied by each directory on the default disk. For each directory, it indicates: Actual number of bytes in files Number of bytes in sectors to contain those files Number of files Storage efficiency. Documentation is included in the program. 12/31/85 DU.C This (MSC 4.00) C program implements a Un*x like du program. It computes the size of (sub)directory trees. Tom Vijlbrief {seismo|...}!mcvax!tnosoes!cogpsi!tom TNO Institute for Perception P.O. Box 23 Phone: +31 34 63 14 44 3769 DE Soesterberg The Netherlands 7/11/87 DUMP.ASM This is a filter that transforms the standard input stream into a HEX and ASCII dump and sends it to the standard output. Both input and output can be redirected, e.g. DUMP in-name > out-name. If just a filename is given on the command line, e.g. DUMP filename, the file will be read and dumped to the console. By Richard G. Markley with enhancements by Ted Shapin. 12/18/85 DVORAK86.ASM As described in May 83's BYTE, DVORAK86 becomes part dvorakxt.asm of Bios and implements a Dvorak keyboard. To use, assemble it and convert it to a .COM file. Run it once and it will stay resident. To invoke Dvorak keyboard, do a Ctrl-Enter; to return to normal keyboard, do a Ctrl-Esc. 7/31/83 6/13/85 EEL This subdirectory serves as the home of orphan (subdirectory) Epsilon EEL code. EEL code may be snarfed by Epsilon owners only. Contributions are welcome. Please refer to the file EELCODE.LIST to see brief descriptions of each EEL program. ["EEL" stands for Epsilon Extension Language.] 11/17/85 EGADEMO.PAS A little demo program that takes advantage of the 640x350 by 16 color graphics capabilities of the IBM Enhanced Graphics Adapter when used with the Enhanced Color Monitor. Since Turbo Pascal 3.0 doesn't support this particular mode, interrupt 10H is used for all the plotting. The graphics primitives that are used are plot_point, and plot_line (draw a line). 11/30/85 EGASMALL.ASM This program by Thomas Hoffmann (published in the April 85 issue of PC_Tech_Journal dedicated to the EGA board) allows 43 lines per screen on the Enhanced Color Display. It fixes some bugs in the EGA BIOS related to the displaying of the cursor (the code included in the IBM Seminar Proceedings on the EGA does NOT work). A DEBUG patch for Wordstar -- so that you can display 43 lines instead of the normal 24 -- is explained in EGASMALL.DOC. 6/15/85 ENVRPT.ASM Examines the environment and gives return codes for batch inquiry. (or) 1/24/85 ENVSEARCH.C Searches the environment for a variable and returns the string which is its value. Compile with MAIN #defined to generate a standalone program which expects a variable name as an argument and prints out its value. This was written in DeSmet C. 8/12/85 EPR.C A useful listing program for the Epson printers which allows format control appropriate to applications like listings, etc. Debugged by, and new features added by Craig Milo Rogers. Now supports Lattice-C (version 2.12) as well as CI C-86. The original EPR.C (before Craig started fiddling with the code) is now called EPR.ORG. 7/28/84 12/13/85 EVAL.PAS Eval does arithmetic from the command line. Written in in Microsoft Pascal. Bruce Hillyer 4/5/86 EXEC.ASM Equivalents of the Unix EXEC function. EXEC2 is for EXE files and EXEC3 is for COM files. See EXEC.DOC for details. 4/20/84 5/12/84 EXECTEST.ASM Example of how to call the DOS EXEC function from an assembly language program. 9/20/84 EXTND.INC This include file contains macros for use with MASM so that you can use the new instructions in the NEC 8088 clone - NEC V20/V30. Found in a BBS. 1/18/86 EXTNDH.ASM This extends the DOS limit on number of open files past the default limit of 20. Can be called by any programming language. If Microsoft C assembly flag is turned on exthdh will also extend the 20 file limit imposed by the C run time library. Billy 11/12/86 FCOMP.C File comparison program. Compares two ASCII text files, prints a discription (guaranteed to be of minimum length) of the differences. Optionally prints an edit script which will tell EDLIN how to change the first file into the second. This can let you save space by saving difference files rather than multiple copies. Based on program by Miller and Meyers in Software - Practice & experience. (jrv@mitre-bedford, March 86) FILEHEX.ASM Dumps diskette files in hex. Mainly useful as a simple model for new assembly language programmers. 8/2/82 FIX.ASM Terminate/stay-res. patch for CLONE bios bug in Date/Alt-Keypad. Program to correct overflow error in BIOS int 1Ah time-of-day. Also fixes error in ALT - KEYPAD ascii entry. "Ya`akov N. Miles" Mon, 24 Nov 86 00:14:21 pst FORTH A public domain implementation of FORTH 83 is available (big) on the Arpanet SIMTEL20 system in the directory MICRO:. Runs only under CP/M-86. 11/25/83 GENRAND.BAS Creats random-file-access routines in a "nice" fashion, by taking a simple data file and producing a set of ASCII basic files. Thus, by changing the simple data file you can make major revisions to the (less-then-simple) subroutines with ease. Brief documentation is included. Brent W Baccala 26 Jan 87 GET.C A program to get and modify the DOS master copy of the environment. Written in Microsoft C. , 28 Sep 86 GETARGS.C Parses command line arguments pointed to by ARGV as directed by an array supplied by the programmer. Only "switches" (arguments starting with '-') are handled. Switches can set flags, set variables, set strings, or cause procedures to be executed. ARGC and ARGV are modified to reflect the removal of all switches. Switch errors generate a help message. (From Holub's article in Dr. Dobb's #103, May 1985) 9/23/85 GDIR.C Gdir is an enhancement over DOS's dir command. It includes file attributes in its display, allows you to perform directories of hidden and system files, and also allows you to recursively check all of a directory's subdirectories as well. Robert S. Lenoil 6/12/86 GLASSMODEM.ASM A simple TTY emulator for the IBM Voice Communication Application Program Interface. This isn't particularly useful as a terminal emulator, but should be instructive to anyone wishing to program the VCAPI. GETMEM.PAS A leetle teeny weeny demo program written in Turbo Pascal that shows available memory by looking at page 0 (the PSP, field 2) of the currently running program, grabbing "size of memory" integer (16-byte paragraph count). 'Tis useful as an instructional sample for young Turbo Pascal hamsters. 11/17/85 GRAPH GRAPH takes pairs of points (two numbers per line) (subdirectory) from a file or standard input as x- and y- values bench.c and plots them on the screen, connected by graph.c straight lines. Axes with convenient values are scale.c chosen automatically. Labels, lines of different g31.c styles, widths, and/or colors, or markers of g32.c different shapes may be specified. There are now gh.c device drivers for: Zenith Z-100, CGA, EGA, ghi.c Hercules, HP 7470A and Houstin Instruments DMP-29 ghp.c plotters, and CIE LIPS-10 laser printer. Other gli.c revisions since 6/8/86 include capacity for 5000 gpc.c data points, and multiple input files. gz.c Equivalent to the UNIX program GRAPH. G31.C and font9.c G32.C are a portable implementation of the CORE gh.c graphics standard. The above are in directory core.doc . graph.doc 5/17/87 GREP.C DECUS GREP, converted for the IBM PC with CI-C86 C Compiler June 1983 by David N. Smith, and modified November 1985 by Larry Afrin. Larry's modifications are: 1) Definition of DeSmet preprocessor variable for use with the DeSmet C compiler, 2) Exclusion of inclusion of the file under DeSmet compilation, and 3) Upper/lower case differentiation to conform to Unix GREP. Copyright (c) 1980, DECUS Modified further by Joe Newcomer to include wildcard expansion ability for shell, among other modifications. 11/30/85 1/12/86 GREP.LAT LATTICE-C grep: when linked with PARSE.C (also included) you can say: grep key *.c Regular expressions are not supported just simple keys. HASHTAB.C Portable symbol table routines written by Allen Holub and published in the Feb 87 issue of Dr. Dobb's. Maketab() returns a pointer to a newly created symbol table (similar to fopen()). Addsym() adds a symbol, allocates an associated data area from the heap of the specified size, and returns a pointer to it. Findsym() returns the same pointer. Symbol deletion and sorted symbol printout also provided. Hash table size is specified at execution time and governs speed of access, but the table can grow gracefully to any size. HERCBIOS.ASM Plus support sofware. HERCBIOS.COM is a terminate- and-stay-resident program which takes over some functions from ROM BIOS INT 10h, providing IBM-compatible graphics modes 6 (640 by 200) and 7 (monochrome text) and adding mode 8: Hercules graphics (720 by 348). Other functions are just passed through to the existing ROM BIOS. HERCBIOS was written by Dave Tutelman at AT&T in New Jersey. HQSORTS.DOC H-Q-SORTS.DOC is the mini documentation for 2 sort programs brought to you by James R. Van Zandt. HSORT.C is a general purpose heapsort James wrote that is based on algorithms by Jon Bentley and sort interface routines by Allen I. Holub. It sorts N objects in worst-case time proportional to N*log(N). QSORT.C is a general purpose quicksort by Allen. Including a #define for DEBUG will make these sorts stand-alone programs which will sort argv and print the result, along with all the intermediate stages. This is quite instructive if you want to see how the sorts work. 8/6/85 HZPCSAVE.ASM A version of SCRNSAVE modified to work on Heath/Zenith 150 PC's. This is a program that blanks the screen after 3 minutes of no activity and wakes up when any key is pressed. 3/28/85 HZ100 A collection of programs for the Heath/Zenith H/Z-100 (subdirectory) computer is kept in the subdirectory . Send a msg to INFO-HZ100-REQUEST@RADC-TOPS20 if you want to get on the H/Z-100 mailing list. 12/23/84 H2INC.C does a primitive job of translating C language header files into assembly language include files. It is a valuable tool for systems that include both C and assembly components that use common constant declarations. With H2INC, only the C header file needs be maintained; the assembly include file can be generated automatically via a make file. This removes the chance of having inconsistent constant declarations between your C and assembly modules. Robert Lenoil 6/18/87 IBMCUR.C The programs IBMCUR and IBMPRT set the cursor and print characters directly in the display's screen memory. Additionally, the programs SAVESCRN and RESTSCRN save the screen buffer and restore it, so that you can pop up menus or windows and restore the screen when removing them without redrawing the whole screen. Runs only under PC/IX. 6/23/84 INPUT.C Input is a program which allows batch files to ask users for a string and then branch depending on the string entered. 5/4/86 INT Craig Rogers' version of the MIT comm package. It uses (subdirectory) a dozen files or so. You will need all the files to do anything useful so FTP the entire subdirectory, eh. $CONTENTS describes the various files. It supports large and small model Lattice C, DOS 1.1 and DOS 2.0 as well as a stand alone mode. Both COM1 and COM2 are supported simultaneously. A package is included for line printer support. The subdirectory contains a dumb terminal program and a null modem program written in Lattice C that call the package. 12/28/83 INTHDLR.PAS A Turbo package to ease the use of interrupt routines written in Turbo Pascal by allowing you to install ordinary Turbo procedures as interrupt handlers without the need for gobs of inline statements within each procedure. Jim Hague 4/19/86 IHC.C This program converts between Intel HEX and standard BIN (ie COM) files. 10/29/86 IO5150.PAS TURBO Pascal device driver for IBM 5150 PC aux serial port. Illustrates use of interrupt vectors in TURBO. 9/7/84 JOYTEST.PAS Turbo Pascal program that implements a fast a/d converter for joy sticks. dantowitz%eagle1.DEC@decwrl.DEC.COM, 3 Feb 1987 KERMIT Kermit is a checksummed file transfer system. It also (1/small) includes a partial H19/Z19 terminal emulator. There are versions for TOPS-20, Unix, the PC, Apple II, CP/M, etc. The full KERMIT library is in [CU20B]KER:MS*.* Contact INFO-KERMIT-REQUEST@CU20B to be placed on on the INFO-KERMIT mailing list. 8/8/83 1/9/85 KEYCODES.ASM Program KEYCODES.ASM reads the keyboard codes produced at the keyboard i/o port (by installing a special INT 9 handler) and displays the key codes of every key typed. All key-make and key-break codes are shown. The program is intended for PCs, and for ATs operating the keyboard in PC-compatibility mode (the normal keyboard mode). This program is intended to be an aid to persons with clone keyboards having poorly documented nonstandard features/keys. jcm@ORNL-MSR.ARPA (James A. Mullens) 2/14/87 KOMM.ASM An interrupt-driven device driver for the serial ports. KOMM.INFO may be of interest: The author points out a specific DOS routine that may "bug" device drivers (such as this program) and kindly provides a remedy. (IBM has refused to acknowledge this problem, of course.) NOTE: So as not to be confused with the COMM.C (and COMM.DOC) files also in our public domain library, we took the liberty of changing this program's name (which the author affectionately called "COMM.ASM") to KOMM.ASM. 6/21/85 LAPLACE.C Solves Laplace's equation in 2 dimensions with arbitrary boundaries. Uses relaxation on a rectangular grid with integer arithmetic, automatic adjustments when specified boundaries don't fall on grid points. LAPLACE starts with a coarse grid, then uniformly subdivides it to improve accuracy. Input file is suitable for GRAPH, which can be used to check the boundaries, and SPLINE, which can help prepare curved boundaries. Output is suitable for CONTOUR, which will find equipotentials. PLATES is a sample data file, and PLATES.POT (see catalog entry for CONTOUR) is a sample output. Requires SOLVE.C and HSORT.C (elsewhere in the library). File includes plates and laplace.doc. LEX.C A Lexical Analyser Generator. From UNIX converted to DeSmet C. James H. Coombs 7/22/86 LIST.PAS A simple address label printing program. It is written in MicroSoft Pascal and should be simple to change for printers other then the FX-80. [Not to be confused with LIST60.ASM, which is sometimes referred to as LIST.ASM] 12/12/83 LIST60.ASM This handy hack, also called LIST, allows many ways of displaying ASCII text files. It's good to use when using an editor is overkill (I know some people will disagree with that statement but...) and TYPE is too lame! [Not to be confused with LIST.PAS, which is something entirely different!] 11/17/85 LPTX.ASM This program intercepts the BIOS interrupt 17, the line printer-handlerinterrupt. It will redirect the output of LPT1, LPT2, or LPT3 to a disk file. All three redirects may be active at the same time. Not compatible with DOS 3.2. 5/2/85 LSPELL.PAS LSPELL is a TEST version of a simple but useful document speller based on Borland International's Turbo Lightning. Christopher J. Dunford The Cove Software Group 10057-2 Windstream Drive Columbia, MD 21044 (301) 992-9371 CompuServe 76703,2002 12/10/85 (wu@ames-aero, feb 86) LX.C LATTICE-C for the unix routines ls,lf, and ll. You define the symbols LF LL or LS and the whole thing should build. jchvr@ihlpg.ATT.COM (Hartong) 4/12/87 MAEK.C The simple MAKE facility from Allen Holub's article in Dr. Dobbs #106. Performs actions required to update a file if the dependent files have been changed. For example, performs compilations if source files have been edited. Dependencies and actions must be described in the file MKFILE. [See also MAKE.C and MAKE.H in our snarfer's library -koji] 8/25/85 MAKE.C Lattice/MS C source for a Unix-like "make" command. Creates batch files for recompilation, etc. [See also MAEK.C and MAEK.DOC -koji] 6/29/84 MALLOC.C Here is a replacement for the standard malloc, realloc, calloc, free, sbrk, and brk for Microsoft C 4.0. It was written to satisfy the need for a 'debugging malloc' in the MSC4.0 environment on the PC. It can be used in production code with impunity, though it isn't as efficient space-wise as the standard set of routines. The core routines have been tested in all memory models - but as noted, there will need to be some work on the debug code to make it function properly in other than small code, small data. kent@ncoast.UUCP (Kent Williams) 6/18/87 MARK3.ASM A utility to set attributes of files, flicking the mode bits. After assembling and linking, run it through EXE2BIN to create a .COM file. Usage is as follows: MARK path\filespec /xxxx, where x may be: R for read-only, H for hidden, S for system, A for archive, N for normal (all attribute bits off), Q for quite (no messages) All other attributes are ignored if N is present. The filespec may include wildcards. 1/8/86 MATH.C A library of math routines written in Lattice C. Includes trig functions, exponentials, roots, etc. From a public bboard system in San Francisco. 3/23/84 MEMSIZ.ASM This is a simple assembly program that prints the amount of free memory in your MS-DOS hamster. 10/1/85 MEMVIEW.BAS Allows user to explore PC memory. 3/4/87 MIZAR Mizar is a system, developed originally in Poland, (subdirectory) that reads logical proofs written in a particular syntax and verifies their correctness. Mizar-MSE is the system's current stage of development in Unix Pascal at UConn, and is the source for this adaptation. Ftp this whole for maximum enjoyment. 7/1/85 MODEM2 File transfer system and H19/Z19 emulator. Full (big) checksum and retransmit of bad blocks supported. For description and pointers to the source files see DigestV1 #9. The Modem program is also kept in MODEM.*. 8/23/82 MORSE.BAS This is a Morse code practice program, suitable for those studying for their Amateur Radio license. Speed varies among BASIC/BASICA/BASCOM so some tuning may be needed. 9/13/85 MOWED.ASM Sets the CRT to any mode, including the graphics modes not settable by the MODE command. 9/18/83 MPREP.PAS This is a general-purpose macro preprocessor and version control program, useful for all languages. , 29 Dec 86 MRESLINE.ASM These are two fast line drawing routines, one for medium HRESLINE.ASM resolution and one for high resolution. They may be called from Turbo Pascal. 4/30/86 MV.C Yet another MV program? This is one of the few MV that moves/renames sub-directories in addition to moves/renames files. It uses a non-recursive algorithm (therefore more efficient) to move sub-directories. When source contains wildcards, command line options let you select files only or sub-directories only or both. Invisible files/sub-directories can also be operated on. Works on DOS 3.xx and 2.xx. Need Microsoft C compiler version 3 or 4 or IBM C compiler version 1, and macro assembler. (pwu@unix.macc.wisc.edu, 9/8/86). NANSI.CAT Nansi.sys is a console driver which understands ANSI control sequences. It has several advantages over ANSI.SYS (the driver supplied with DOS): 1. It supports new escape sequences (see below). 2. It provides MUCH faster output under certain conditions. 3. It supports the 43-line mode of the EGA. 4. The darned bell is now 1/4 second instead of 1/2 second. NASHMORE.C Originally called PC-MORE but renamed with the author's permission so that it won't be confused with other PC-MORE's, this is a possible replacement for the PC-DOS utility MORE.COM. NASH-MORE accepts filenames on the command line as well as from pipes. It allows forward paging by the screenful, half screenful, or line. It will also rewind the file, call up an editor on the file, push to an inferior COMMAND.COM, and do other niceties. Written in CI C86, version 2.20G. 12/13/85 NEATLIST.BAS After NEATLIST.BAS is appended to a BASIC/BASICA program and is executed, it generates a structured listing which indents for IF-THEN-ELSE , WHILE/WEND, FOR and 2 spaces for GOTO/GOSUB. At the end of the program, it lists the number of lines, number of statements and the number of REMarks. Remarks are indented and prefaced by an '*'. Multiple Remarks are contiguous. Single or Beginning/ Ending REMarks are given an additional space. 1/17/86 NETIO.ASM MONITOR.ASM, used in conjunction with the device driver NETIO.ASM allows DOS console I/O calls to be transmitted across an IBM PCNet local area network (or other NETBIOS compatible network). The documentation file contains patches to Kermit that allow it to be run over the network. This code is a good source language example of how to access IBM's net BIOS. 1/19/86 NEWBELL.ASM Shortens the bell (by intercepting some ROM code) until the next boot. You can change the bell's length and frequency. 3/3/83 1/25/85 4/10/85 NLIST.PAS This is a menu-driven, ASCII file listing program for Epson-compatible printers. It's written in Turbo Pascal (version 3.0) and provides a number of printing options. Written by Nate Liskov. 1/18/86 NUMBER.C Puts line numbers on an ASCII file. Written in Lattice C. 4/16/83 OLDER.ASM Compares the ages of two files. Requires DOS 2.0 or greater. Usage: OLDER . Return value is 1 if is older than , 0 if is newer (or if doesn't exist). Return value can be sensed as ERRORLEVEL by .BAT files. 2/23/84 OTHELLO.FOR This program plays the game of Othello (sometimes known as Reversi). It is written in Microsoft Fortran 77. It plays a very strong game! Adapted from code in the PC-Blue library. 5/5/84 PACMAN.BAS From the PC-BLUE library. Requires the color/graphics adaptor. Should be compiled for proper speed. 3/29/84 PAGE.C Prints out files, converting tabs to spaces and inserting a formfeed every 66 lines. PARINT.ASM PARINT.COM detects parity errors, logs them on the printer if possible, beeps, and returns to program execution. The system does not halt when this program is resident. Parity error checking is terminated after first error is detected. The error message includes the time of the event. If the printer is not available, errors are logged to the screen. TESTNMI.ASM documents problems in early PC NMI handling routines. Original code by David G. Hunter of Byte magazine. Necessary modifications for the early model (1981) IBM PC made by Lawrence B. Afrin. 1/1/85 PAS2C.C This is a simple program to convert Pascal keywords and operators to C. jcm@ORNL-MSR.ARPA, 30 Jan 87 PASTOOLS.PAS 3 Pascal routines: ENV returns the value of a string from the current environment, ARGC returns the count of the parameters on the command line, and ARGV returns the i-th command line parameter in a string. 3/21/84 PATCH.ASM This patch goes into the IBM distributed RAM Disk and causes a rotating action symbol symbol to be displayed in the upper-left corner of the screen (Mono or Color) whenever the RAM Disk is accessed. (and) 6/15/85 PHONE.C The enclosed file, PHONE.C, implements an electronic address book. The syntax is: PHONE search_string [phone_book] The search string is a string to search for. Phone_book is a filename of a text file containing the entries to search through. If phone_book is omitted, the environment variable PHONEBOOK is used. The only rule for the data file is that a blank line separates entries. PHONE searches the phone book and prints any entries that contain search_string. PHONE was written in Microsoft C for MS-DOS. It will also compile unchanged on Berkeley Unix systems. Robert Lenoil 6/19/87 PLOT.ASM This is an assembly language line drawing package that can be incorporated into assembly language graphics programs. 8/15/83 PLOT.PAS This is a set of Pascal routines written and tested in IBM Pascal which can be used to perform the basic graphics functions of selecting a color and using it to plot and draw on IBM's color graphics system for the PC. Uses the ANSI.SYS device driver. 7/13/84 POST.PAS This is a Turbo Pascal menu driven ascii to postscript conversion program. It allows a number of useful options including font size, font style, pagination, header addition, output-to-disk, two fonts per page, etc. It is a little smart about tabs but does not have knowledge of character widths. Still it is useful as a basic printer driver for lucky people with access to an Apple LaserWriter. Latest version has landscape mode. nate@RINSO.LCS.MIT.EDU (Nathan Liskov) 4/25/86 Updated 4/7/87 PRINTCOM.INFO This is an informative description of the internals of the DOS 3.1 PRINT.COM. The author suggests that it be used as a guide for those wishing to implement background tasks under DOS 3.1. 9/1/85 PSEUDO-BSD The subdirectory consists of (subdirectory) 17 files and support files that make up the BSD commands F77, CC, PC, and AR for MS-DOS machines. These commands are NOT compilers or librarians; they merely parse the BSD-type commands and then execute the appropriate MS-DOS command(s). Ftp the whole subdirectory and read READ.ME and ANNOUNCEMENT.TXT for more detailed info. "Sugoi stuff!" 6/5/85 PUSHDIR.ASM PUSHDIR will push the current drive and working directory onto a stack capable of holding 6 directories (this can be expanded by changing the source and re-compiling). POPDIR will pop the last directory pushed by PUSHDIR. It checks first to see if PUSHDIR has been run, and if not, gives an error message. John Friend, PC Magazine, Vol.5 Num.10, p.243 Brent W Baccala 7/15/86 RAMDISK.C This is a RAM disk driver written in Microsoft C with a short assembly language interface to DOS and a utility program to locate device drivers and display device information. Walter V. Dixon , 16 Sep 86 RMPGDSK.ASM Here follows the MASM 1.0 (yes 1.0!) source for a ram disk for EMM memory. hplabs!felix!leviton@seismo.CSS.GOV (Dan'l Leviton) 2/20/87 REBOOT.BAT Running REBOOT.BAT invokes DEBUG, which will then create a file REBOOT.COM which has the same effect as CTL-ALT-DEL. An amazing hack! 5/18/84 REFORMAT.PAS Reorganizes floppy and hard disks. Looks at all files on a disk, both in the root directory and in all subdirectories, to find out whether they are contiguous. If at least one file is not contiguous, a complete reorganization is done. Reformat.pas is a collection of files. Now works with DOS 2.0 thru DOS 3.1. Jos Wennmacker 4/19/86 Updated David Kirschbaum 5/14/86 Updated 9/24/86 for DOS 3 REFS.PAS Compile this program under TURBO PASCAL to create REFS.COM. REFS finds references in scientic manu- scripts. It will list references found and the number of times they occur to a file, printer, or system console. There's more detailed info in the source code. 4/8/85 5/16/85 REMIND.ASM is a program that can pop up a small reminder on line 25 of your screen at a given time. It displays messages via the ROM BIOS, and thus will work on any IBM BIOS-compatible machine with any display hardware in any graphics mode. The syntax is: REMIND time message, where time is one or two hour digits followed by a colon and two minute digits. REMIND can also be entered without any arguments, in which case the pending, or if none, the previous message is shown. Program requires SETTIME.ASM Robert S. Lenoil 6/12/86 RENAME.PAS RENAME is a Turbo Pascal program that will rename any file-type, including directories! The author says, "I uses the DOS call 17H to perform the function." The solution that the author submerged his mind into is given in _PC_Magazine_ (August 6, 1985 issue) on page 222. 8/6/85 ROOTPATH.C Converts a pathname argument to root based cannonical form rootpath determines the current directory, appends the path argument (which may affect which disk the current directory is relative to), and qualifies "." and ".." references. The result is a complete, simple, path name with drive specifier. Robert Lenoil 7/17/86 RS232.TXT Everything you ever wanted to know about RS232 cables. David Kirschbaum SALLY.ASM As the author didn't supply us with a name for this program, we at Info-IBMPC took the liberty (we enjoy taking liberties of many things) of naming this program "Sally". This set of macros lets deprived assembly language programmers who don't have MASM 3.0 with SAL write structured assembly language code... 7/28/85 SAVSCR.ASM Similar in concept to TOPS-20 PHOTO, this program allows you to save any text screen to a disk file when the PrtSc key is pressed. Useful when working on program documentation. Updated 11 Feb 86 to handle EGA board 9/27/85 SCREEN.ASM Screen management program from Nov 83 Byte. It allows you to reset the foreground and background colors while in other programs, and to change modes. 12/18/83 SCRNCOLR.ASM Intercepts characters on the way to the IBM PC screen handler and, if they are for white on black or black on white, changes to whatever color attributes user assigns. Fixed and update by Frank DaCruz, 7/16/86. 1/1/84 SCRNDUMP.BAS Produces full page hard copies of Hercules screen-image files. Notto baddo, eh. 5/8/84 SCROLLK.ASM As described in May 83's Softalk PC, SCROLLK becomes part of DOS and implements the Scroll Lock key as a toggle. When in scroll lock mode, the scrolling stops after 23 continuous lines of output, left-shift resumes scrolling (until the next stop), and right-shift resumes scrolling only as long as key remains down; when not in scroll lock mode, scrolling doesn't stop. 7/11/83 SDL31.ASM Sorted Directory List. User has control over many options. Another handy utility. Ages 5 and up. 11/21/85 SERIAL.ASM Serial I/O routine which inserts itself into memory and changes the ROM bios interupt vectors for RS232 I/O to use interupt driven I/O. 12/3/83 SETENV.C This program, when executed in a batch file, will read standard input (the keyboard) and will set an environment variable to that value. Thus batch files can ask questions of the user. Jim Carter , 16 Sep 86 SETTIME.ASM is a program to set the BIOS timer to the correct time of day. It is useful mostly for programs like REMIND.COM, which require the BIOS timer to accurately reflect the time, even though DOS may be getting the time directly from a clock card, via the clock.sys device driver. The syntax is: SETTIME. SETTIME gets the time from DOS, and writes it to the BIOS timer. Robert S. Lenoil 6/12/86 SHAR.C This allows you to package several C source files for porting to a Unix system. The DeSmet C compiler converts "\n" to "\r\n" so the resulting file should be run through a "\r" remover (such as tr -d '\015'). The archive uses the "cat" format and goes to file called "shar.out". 6/20/85 SIDEWAYS.PAS Prints files sideways on an Epson printer. It makes use of the characters in the PC's ROM for the graphics mode of the CRT. The characters in the file are `looked up' and then the graphics mode of the printer is used for output. 3/5/84 SIMTERM.SRC This terminal simulator provides the capability to run `vi' (or anything using `curses') and can INDEED upload/download using XMODEM for error checking and access to BBSs. It emulates a Hewlett Packard 2621 terminal. A Unix TERMCAP file is included in the source. The file SIMTERM.SRC contains both Pascal and Assembly language sources as well as yet another async communications driver and many useful Pascal routines for screen manipulation. 9/2/84 SINE.C The SINE.C example program from Dr Dobb's Journal, May 1986. The article describes a simple plotting routine for the IBM EGA in high resolution (640x350) graphics mode. Author is Nabajyoti Barkakati. Mark Colan , Thu, 29 May 86 SLOTMACH.BAS A simple slot machine game adapted from David Ahl's old book of 101 computer games. Works with either display card and has interesting sound effects. From the PC-BLUE software compendium. 3/23/84 SOLVE.C Solves linear systems. Based on FORTRAN program in "Computer Methods for Mathematical Computations" by Forsythe, Malcolm, and Moler. SPEAKER.C Routines to use the speaker. Written in (Lattice?) C. 9/15/83 SPLINE.C Generates splines under tension and allows general curves and multiple independent curves in the same file. Text input and output files like the UNIX program. Written in C by J.R. Van Zandt, based on algorithms by A.K. Cline. 5/17/86 STARTUP.C The purpose of this code is to ask the user (usually at startup, hence the name) whether the monochrome or color display is to be used. Whatever display is selected will be enabled; the other will be blanked and its cursor turned off. This "blanks" the screen without having to fiddle with the 6845 chip. 7/12/86 STAYRES.PAS The following is quoted from the source code: (contains A Turbo "stay-resident" program clobbers the DOS several register stack. It jumps over the Turbo run-time INCLUDE files) initialization code that would set up the program registers and environment. Secondly, a stay-resident program could not ordinarily issue file I/O since that would clobber DOS interrupt registers. Therefore, this code proposes an inline solution, providing a Turbo entry stack for "stay-resident" programs and allowing those programs to issue DOS I/O and other interrupts. This Turbo stay-resident demo has been put together to perform both DOS I/O and BIOS interrupts. It has also been tested for re-entrancy and recursiveness on an IBM PC with PC-DOS. Separate the INCLUDE files, compile to a COM file and execute with the Alt-F10 key. It will also free its memory and return to DOS with the Ctrl-Home key at the "Press a key" prompt. (Illustrated in the STAYXIT file, which is an INCLUDE file.) Maximum free dynamic memory should be between A40-B00 since this demo uses a recursive stack. The authors of this very useful code are: Lane H. Ferris (Stay Resident Code) Neil J. Rubenking (Directory code and ideas) Jim Everingham (The Window Manager/Editor) 8/6/85 STORE.BAT This program keeps track of files that have been backed up. (It assumes a file called BACKUP.DIR exists.) Filenames, along with the dates they were backed up, are stored in BACKUP.DIR. 5/6/85 STRIP15.ASM This useful hack strips Wordstar-unique characters strip15.txt and replaces four or more consecutive spaces with strip15.doc tabs (something that some other tab programs didn't do correctly). That is, it converts WS document files to regular ASCII format. David used the guts of TABS (another public domain file alignment utility) whilst writing STRIP15. STRIP15.DOC is in David's words, "a typical horrible 8-bit WS document file." STRIP15.TXT is the same file -- this program's documentation -- after STRIP15 worked on it. If you know that you're not going to be particularly thrilled by this demonstration, and you just want the program and its docs, then just FTP the .ASM and .TXT files. 11/2/85 SURFMODL.DIG SURFMODL is a general-purpose surface undigest.pas modeling program for the IBM PC written entirely in Turbo Pascal. Surface modeling is the science of producing realistic three-dimensional images on a computer display, and is often mistakenly called "solids modeling". undigest.pas breaks up this large file into seperate modules. Ken Van Camp 4/4/87 SWAP.ASM Switches between monochrome display and graphics display. 8/14/82 10/23/82 SWAPKEY.ASM Assembly language program which swaps the backslash and left shift keys on IBM PC. May not work with certain PC versions or clones because it accesses a specific ROM location. 9/13/84 SWCHAR.ASM This program that will either report or set the SWITCHAR from the DOS command level. Requires DOS 2. See also SWITCHAR.PAS and SWITCHAR.ASM. 8/26/83 3/27/84 SWITCHAR.DOC For lumberjacks who use MS-DOS and PC-Xenix only: 2 programs -- written by different authors -- that basically do the same thing. SWITCHAR.PAS, a Turbo Pascal program, and SWITCHAR.ASM (author's intended name was UNIVERSE.ASM) both change the SWITCH character ("\" to "/", or vice versa) with the UNDOCUMENTED Int 21H, function 37H call. Further information about both programs, such as command syntax, is available in SWITCHAR.DOC. The Editors of INFO-IBMPC and Gordon Letwin of Microsoft warn that use of this undocumented "feature" of DOS can get you into trouble. Proceed at your own risk, eh. .DOC file contains both .PAS and .ASM files 7/8/85 (Pascal) 7/5/85 (Assembler) SWPKEYAT.ASM For all you AT users who "hate" the ill-positioned "ESC" key, this program's for you. It intercepts the AT's keyboard hardware interrupt to swap the "ESC" and "~" (tilde) keys, then returns to the ROM BIOS for the remainder of the keyboard interrupt processing. Should eventually become a classic for AT users. SWPKEYAT.DOC and the actual source contain much more information. The documentation also includes a patch for Lugaru's Epsilon 2.02. 7/10/85 TAD.ASM Programs from PC Tech Journal by Will Fastie which allow setting of date and time of the PC/AT real-time clock under Dos 3.0. 3/3/85 TAGS.C I now have a working TAGS system for C and Epsilon. For those of you who don't know what TAGS is, it allows you to find the file which contains a definition if you know the name of the object being defined. For example, you are looking at a call on procedure xYzzY, and want to see what it does. Fine. Invoke TAGS by typing Alt-., give it the name xYzzY, and suddenly before your very orbs is the definition point for the function! If the cursor is sitting somewhere before a word, that word is the default name to look up and so A-. CR usually suffices. Requires Epsilon and Lattice C 7/12/86 TANDY232.ASM Patches the Tandy 2000 BIOS so it won't lock up at random times during RS232 I/O. This patch is available free for non-commercial use. (See author's restrictions in copyright notice.) 10/6/85 TECO.CAT The TECO (TExt COntext) editor is a non-visual, character oriented editor which was developed at the Massachussets Institute of Technology in the late 1960s as part of a project in artificial intelligence. When fully implemented, TECO supports conditionals, branching, and forms its own unique programming language, in fact EMACs was originally written in TECO !!! My version is considerably simplified from full-blown TECO, but it still is very powerful, allowing the user to edit BINARY (ie .EXE) as well as simple ASCII files, changing the value of arbitrary bytes anywhere in the file. "Ya`akov N. Miles" 11/25/86 THELP.PAS THELP is a Turbo Pascal on-line help utility that's written in Turbo Pascal itself. This is just the right gift for a hamster using Turbo Pascal. The author says, "Many people have complained that the Turbo Pascal manual, being bound like a paperback, will not lie flat on the desk and is, therefore, hard to use. THELP partially alleviates this problem by making the manual unnecessary for all but the most difficult problem." This is a really neat hack and if you want more details, consult THELP.MAN. 8/5/85 TIMESTUFF.ASM Enclosed are three programs TIMESERV.ASM, STIME.ASM, and NOSET.ASM intended as examples of downloading the time from a machine on the network, and of a simple way to prevent a user from modifying the time on his workstation. They were developed using Novell's NETBIOS interface. 9/10/86 TOADADD.PAS Turbo Pascal Inline routines for MS-DOS systems. First release permits you to add numeric strings to numeric strings, or integers to numeric strings. This gives you a handle on manipulating literally infinitely large numbers. (When the number depicts more than the number of objects in the universe, that's a pretty good definition of infinite, ne?) More to follow subtraction, multiplication, division, etc. (Keep your eyes peeled for TOADMATH.PAS.) submitted by David Kirschbaum, Toad Hall 6/6/86 TOADLOND.SHA Long Integer manipulation routines for Turbo Pascal. David Kirschbaum 6/17/87 TOADPURG.ASM Purges diskettes by writing all tracks (and verifying with a readback and positive test) with first 1's, then 0's, then random data (just like NSA wants it for purging classified disks). Uses Int 13H, so probably PC clones only. Handles all floppy formats (D8, S8, D9, S9, QD15). (QD15 untested!) submitted by David Kirschbaum, Toad Hall TOADWHAT.SHR Memory resident WHATIS help utility. Turbo Pascal 3.0 submitted by David Kirschbaum, Toad Hall David Kirschbaum 5/10/84 4/8/85 TOUCH.C Please find below a MSDOs version of TOUCH for lattice-c Please use or abuse at your own risk. TREE.BAS A Christmas demo program for the holiday season written by Gregory and Cathleen Horne. A great deal of work was put into the graphics and music. Requires BASICA and a color graphics card. Runs on PC's, XT's, AT's, and clones. Nice! 12/17/85 TTPRINT.C TTPRINT (Toshiba Tiny Print) is a filter program for Toshiba 24 pin printers that prints ASCII text in very very small letters using the 180 dpi plot mode on the 1351/1341/351/341 series printers. Using this, one can print up to 396 characters wide, by 242 lines per page. You will also go blind trying to read the output. 1/26/87 TWOSCRN.PAS A Turbo Pascal demo program that allows the "near simultaneous use of mono and color screens." The methodology was given in a PC Tutor column in _PC_ magazine and our kind author translated it from Basic to Turbo Pascal. The previous screen (be it color or mono) and cursor position remain intact when you return to it. 6/17/85 UNIX.TERMINAL These programs implement a terminal simulator that works (big) well with UNIX systems. The main part of the program is written in BASIC, with a small assembly language program. The Basic compiler is required. The Unix side of the ftp is written in C. Submitted by BillW@SRI-KL. 10/11/82 UNIXCLIB.ASM A collection of routines to supplement the ones that come with the DeSmet C package. These routines are: a Unix-like SLEEP(3) routine; a routine that checks to see whether a file exists or not; and new versions of the "braindamaged" DeSmet versions of SETJMP() and LONGJMP() [Larry's versions are Unix-like; DeSmet's SETJMP/LONGJMP really has no concept of a JMP_BUF, meaning that LONGJMP can only jump to the location set in the most recent SETJMP]. Larry invites contributions to this supplemental library. All his routines are in assembler so far, but he welcomes high-level routines. Contributions don't necessarily have to be for the DeSmet package -- any useful functions are welcome. 10/14/85 UPDATE.C Version 2.00. This DeSmet C program copies new or altered files with confirmation. Designed for copying files from a ramdisk before powering down. Optionally copies an entire directory subtree, creating subdirectories of the destination directory as needed. Execute with the parameter '?' to get help message. The files EXEC.O (part of the DeSmet library) and GETARGS.C are required. 9/23/85 Updated: 2/7/87 UUENCODE.C Berkeley Unix (TM) programs to encode a file into printing characters and then decode it to its original form. Useful for sending binary files to a remote system. uudecode.c also included. Upgraded to MSC 3.0 and DOS by Gregory Hicks 5/12/87 9/7/84 VARVDISK.ASM The electronic disk from the DOS 2.0 manual has been modified and enhanced in this version. The size of it is made variable. See V2 #79 for details. 10/20/83 VDSK.ASM The electronic disc from the DOS 2.0 manual. To use, (big) assemble it and convert it into a .COM file. Install it in your CONFIG.SYS file. It will appear as D:. VERDISK.ASM "A quick way to check on the condition of floppy disks, to give warning of impending failure." It uses the PC disk I/O call (INT 13) to verify the readability of each sector on the disk. All verify errors are reported, indicating the error type (drive seek, controller, CRC, missing sector, missing addr mark), the side, track and sector, and the number of unsuccessful retries (up to a max of 5). The batch ERRORLEVEL is also set as a return code. All PC and AT floppy formats are supported. Command syntax is explained in VERDISK.DOC. 7/5/85 WHERE.PAS This is another "WHEREIS"-like file locator, written in IBM Pascal. It starts at the root directory and then tries all subdirectories. Wildcard indicators such as '*' and '?' are accepted in the search string. 1/18/86 WHEREIS.ASM Takes a file name or pattern (e.g., *.BAS) as an argument and finds where it is in the file system by starting at the root and working down through all the sub-directories. [Updated by Tom Brengle so that "WHEREIS filename" does the same thing as "WHEREIS filename.*"] 2/18/84 10/23/85 WHETST.FOR Whetstone Fortran benchmark program. See H.J. Curnow and B.A. Wichmann, "A Synthetic Benchmark", Computer J., V19 #1, Feb. 1976, pp. 43-49. Current timing list follows program. 11/4/82 WINDOW.CAT This is a package providing a screen windowing extension to the BIOS. The driver program is written in Turbo Pascal V1.0 and assembler. 6/9/84 6/17/84 XLISP.SOURCE XLISP is an experimental programming language combining some of the features of LISP with an object-oriented extension. It was implemented by David Betz to allow experimentation with object-oriented programming on small computers. A recent article in BYTE magazine (Mar'85) describes some of the highlights of the XLISP (v1.2) implementation. The copy currently in the ProgramLibrary is a newer version (still being actively maintained/enhanced by Betz). According to him, "...Future versions of XLISP will continue to migrate towards compatibility with Common Lisp." The Program Library copy of XLISP is composed of three parts, (1) A Short User's Manual, (2) The XLISP Sourcecode, and (3) A Small Collection of Sample '*.LSP' files. The User's Manual is a short summary of the XLISP implementation written by David Betz, and includes some notes about how to handle bug reporting. It is fairly informative and is less than 40 pages in length (approx 50Kb ASCII file). The SourceCode and the Samples are each bundled in separate Unix(tm) 'shell archive' modules. To unpack them, FTP them to a local file and execute the archive (i.e. type 'sh '). If you are not running under Unix(tm), you can either write a undbundling procedure or edit each of these ASCII files 'manually' (SourceCode: 162K bytes, Samples: 10K bytes). The C-code itself is very modular and very well documented, making further extensions and/or enhancements very attractive. XLISP has been ported to an impressive variety of small computers, including the PDP-11 under Unix(tm), the VAX-11 with VAX/VMS or Berkeley VAX/Unix(tm), and 8088/8086 with CP/M-86 or MS-DOS (PC-DOS 2.00). A version is currently being developed for a M68000 under CP/M-68K and also for the Apple Macintosh. 3/12/85 YALS.ARCH This is an MSDOS version of the Unix(tm) directory lister "ls". The program was developed under MSDOS 3.1 and runs on versions 2.0 and up. 9/10/86 yaniv@taurus.bitnet or tykucinski@nyuacf.bitnet Computer Science Dept., Tel-Aviv University, Tel-Aviv, ISRAEL. or 3 East, 66 St., New York, NY, 10021. YAMAKE Yet Another Version of Make. This is an example of (subdirectory) what public domain ought to do: code from other public domain programs (like make.c and exec.asm) were used to build a bigger, better program. This Make is very close to Unix Make, except for archive retrieval and a few other things that are due to MS-DOS limitations. Runs under MS-DOS 2.1 and up, and compiles under Lattice 2.15E and CI C-86 2.20M. There are 13 files here in . 11/30/85 See EELCODE.LIST for programs in the EEL programming language.