A record of my some of my older projects. Some have been abandoned on the side of the road, and a few have progressed to completion.
  • Ruler 1995-2005

    On-screen miniature horizontal pixel ruler is graduated for 1000 pixels. Black-on-white or white-on-black modes. Topmost window mode. Right-click on ruler for menu options. Win32 executable. Handy.
    Download Ruler.exe 151552 bytes

  • FlatDB 2001
    Server-side ActiveX/COM Automation object (Internet Information Service IIS plug-in) which allows VBScript access to a comma-separated file, thus simplifying the HTML display of CSV data. Please email me for more information.
    Download FlatDB.dll, 245823 bytes

  • ChordCalc 0.9 1997
    ChordCalc displays jazz chords and plays them through your MIDI synthesizer. Like JazzCalc (see below), this program utilizes James Knapp's jazz theory concepts as described in his text, Jazz Harmony. A major feature of the program is its ability to find all the jazz chord names which correspond to any four selected notes. The program supports only four-note chords at this time, and diminished 7th chords are not included (except as dominant 7(b9) chords) since Jim gives them special treatment. This version of the program is somewhat incomplete; for example, the chord notation on the staff does not show accidentals and is not properly aligned at this time. Also, MIDI device zero is the only device supported in this version.

    This is a 32-bit program for Microsoft Windows.
    Download, 15820 bytes

  • JazzCalc 1.0 1997
    I wrote JazzCalc to help me with one of my jazz theory classes. The program allows you to select a 5, 6, 7, or 8 note mode or scale and a key signature from the menu. The selected scale is displayed with note names (spelled correctly) and the notes are indicated with red dots on a piano keyboard display. All the major, melodic minor, and harmonic minor modes can be displayed in key signatures from Fb to B#. Some of the concepts presented, such as parent scales and mode notes, are explained in the text, Jazz Harmony, by James Knapp, which is available by contacting the author at the Cornish College of the Arts (710 E. Roy Street, Seattle, 98102).

    This is a 32-bit program for Microsoft Windows. The following features from the menu are not yet implemented: Print, Chords, entire View menu, and MIDI Setup.
    Download, 15489 bytes

  • Keithley PIO-32 hardware XP device driver
    I have written a simple device driver for Windows XP which allows access to I/O ports 300h-307h for the Keithley PIO-32 ISA card. Download, 4481 bytes

    Microsoft WinPad 1.0
  • Microsoft Expedia 1994-1997
    Server Lead Developer.

  • Microsoft WinPad 1993-1994
    Kernel firmware for a handheld computer based on VLSI Corporation's Polar chipset, a low-power '386 PC on two chips.

  • Microsoft Project for Windows 1989-1993

  • Image Display 1.5 1995
    Image Display is a .GIF and .BMP browser for Windows 95 and Windows NT. By associating the appropriate file extensions with this program, the Windows File Manager becomes an easy-to-use file browser. This software features HyperGIF technology, hand-coded 32-bit assembly language for the fastest possible display of GIF files.

    Since Image Display is a native Win32 application, it does not run on Windows 3.x unless you have Win32s installed. This Win32s configuration has not been tested.
    Download, 16921 bytes

  • Mapdata 2.3 1987-1995 Dr. Robert C. Douglas and
    Mapdata is a simple choropleth mapping package for Microsoft Windows. The software was developed at the University of Pennsylvania Social Science Computing Department for broad use in the analysis of data in the social sciences. The package is used by students of economics, regional science, geography, and population studies. Mapdata encourages learning through student involvement with manipulating data sets; undergraduates learn that the key to data analysis is in the proper presentation of the data.

    This release includes a boundary file for the United States by state, and runs on Windows 2.x, 3.x, Windows NT 3.x, and Windows 95. Tab-separated (Microsoft Excel) data can be pasted into this map from the clipboard. Additional boundary files can be created by referring to the detailed boundary file information in the on-line help.
    Download, 30340 bytes
    User manual

  • ADSlid 1.9 1993-1995
    This AfterDark module allows you to create slide shows as a list of GIF or Windows BMP files. The files are faded in and faded out at a user-specified speed, or displayed instantly without unattractive visible "banding." Each image can be displayed at a specified position on the screen, with an individual zoom setting. This is a 16-bit AfterDark module for Windows. The program is distibuted as charityware; if you find it useful, please donate tax-deductible $20 to the Northwest AIDS Foundation.
    Download, 29136 bytes

  • gifencod.c (See source file for credits)
    Enhance your WEB page with GIF images created on-the-fly. This C source code, cobbled together from the far reaches of the web, compiles with GNU (gcc) on your unix host. For crude sample purposes, it currently will encode a server-resident .BMP file (Windows 3 format) into a GIF and send it as the HTTP response, when invoked like this: gifencod.cgi?foo.bmp
    Download gifencode.c, 19735 bytes

  • DUAS (Dual User Adventure System) 1982 Glenn Slayden & Webb Scales
    A large adventure game, written for the HP2000A minicomputer, which allowed the two players to interact in the adventure world while they compete from two separate terminals. A third teletype could be configured as an observer of both player's moves. A fourth teletype served as the host. This project was mostly interesting because it overcame several significant technical hurdles in a primitive computer system. The roll of punched paper tape that the game was stored on was about the same size as the roll that stored the minicomputer's operating system.

  • Reliable Plastics, Inc. 1982-1984 Glenn Slayden
    Over two years I wrote a number of programs to automate the front office of this New Jersey business. A customized order entry system was integrated with invoicing, a customer database, and shipping label printer. There was also a standalone inventory program and a job quoting system. These programs were written from scratch in Microsoft BASIC, which was compiled and linked with some assembly language routines.

  • Quiz Show 1977 Glenn Slayden
    My first program, submitted on punch cards (actually, the high-tech ones where you fill in little circles with a #2 pencil). Asks multiple choice questions and checks the responses. Click here to view the source code.

  • Other projects
    Musician - Windows algorithmic composition software--generates music in real time on your sound card's synthesizer, based on various user-defined parameters.

    NOMIS - Pattern recognition game for Windows. Remember and repeat back the pattern on the colored buttons. A new step is added to the pattern each time.

    Tic Tac Toe - Written in BASIC for the HP 2000 minicomputer at my high school, around 1984. Despite its crude teletype interface, this program was pretty sophisticated in that it never lost. It was guaranteed to either win or tie. After the program was complete, however, I realized that this aspect made it not too fun to play against.

    Tower of Hanoi - Another BASIC game, this time a graphical one for the IBM PC, written circa 1985. Using the arrow keys, you had to solve the classic puzzle in as few moves and as little time as possible.

    MIDIBox - Wirewrapped 8MHz Intel 80188 computer system with 512K SRAM, 16K ROM, and 512K AM29F040 Flash, 2x40 character Hitachi HD44780 LCD display interfaced via PAL 22V10, and 2 Intel 8530 dual SCC (serial communications controller) configured as 4 independent MIDI in/out ports. Menu driven operation via multi-purpose buttons positioned by the LCD screen, plus dedicated OK & Cancel buttons. Provision for an external follow-the-LED 88 key piano keyboard display. Firmware development for this system entails a variety of programming.

    MBoxDB - Software debugger for the above, including x86 disassembler.

    AMPMidi - Earlier PS/2 microchannel version of the above basic architecture, featuring a 16-bit dual-ported shared register to the host, and full microchannel POS support. I also prototyped an 80186 version of the hardware, which has now been salvaged for parts. It was not reliable due to address decode latency through numerous discrete TTL stages, a situation which was rectified through the use of PALs in the new version.

    Poker - Multiplayer Windows/NetDDE version of several poker games.

    Photocat - Windows image database/thumbnail/categorization program.

    TI486 VDMAD - Version of the virtual DMA device (VxD) for Windows 3.1 or Windows for Workgroups 3.11 which, in order to preserve external cache coherency, controls the 8K on-chip cache on a Texas Instruments TI486SXL (and possibly TI486SLC/TI486DLC) chip at the appropriate times. Using special TI486 registers, I flush and disable the on-chip cache during DMA operations. If this 386-pin-compatible chip is installed in a regular 80386DX system (non PS/2), this software solution maximizes performance while running Windows, without requiring a motherboard modification to support the FLUSH pin.
    Download, 7725 bytes

    Visual Statistics - Written with Dr. Eugene Kroch at the University of Pennsylvania in 1989. This Windows software allows generation of exact statistical distributions or density functions and random deviates within them. The distributions supported include the bernoulli, beta, binomial, cauchy, chi square, exponential, gamma, geometric, hypergeometric, negative binomial, normal, poisson, and uniform. The formulae can be displayed for reference. The functions can be plotted on user-defined axis ranges. Deviates can be categorized in equal-area, frequency, or count bars; density functions are shown on a continuous graph.

    Plot3D - Microsoft Windows program which calculates and displays an arbitrary view of a surface equation.

    Thai Language Learning Software - In order to improve my Thai language skills, I began writing a program to tutor me in vocabulary and writing, with vague plans for a more grandiose application (a related project is now available on the web). So far, this program features an alphabet card of the 44 consonants with .WAV files of the correct pronounciation and tone. Flash card vocabulary which supports any combination of Thai or english .WAV output, english text, transliterated text, or Thai writing was to be next on the agenda, although it looks like the project has been abandoned in favor of the web effort.

    NSM CD Player Control Software - In 1997, I wrote a controller for the NSM CD changer which accepts remote commands over a TCP/IP network. Click here to download this software. One of the network clients of this application is a TAPI phone-answering software which generates CD changer commands based on DTMF selections from any telephone.