My Source Code

The following are either complete or partial Assembly Language Source Code files for the programs on My Home Page . Most are written to be compiled with the A86 assembler (shareware), available at Eric Isaacson's Home Page . They will probably need to be modified slightly if you intend to compile them with another assembler.

I'm still in process of releasing my Source Code, so be patient. I'm still updating several of the programs right now, and I don't want to put Source Code here for a particular program until I update it. Keep looking here and eventually most of it will show up. If you want it and it isn't here, contact me and I might be able to send it to you.

USBSOURC
This is a single file that contains all of the source code for the DOS USB drivers, current as of January 30, 2010. Most of them are written in Assembly Language, but some are written in C++ (compiled with Borland Turbo C++ for DOS 3.0).

ALLSOURC (All files listed below - does NOT include the USB source code above)
This is a single file that contains all of the individual files described below. You can download each file one at a time, but downloading this file is easier and faster if you want more than a couple of them.

CLOCK
This is the complete source code for one of my larger, more complicated programs - CLOCK. You can download the complete, compiled version, including documentation, from My Home Page . It is a TSR that shows a CLOCK on screen all the time. It includes a hot-key that allows you to move the CLOCK around the screen, change certain internal options, etc. It also includes a working implementation of the STACK routine (below). It can be used as a "skeleton" for any TSR where you want to show something (virtually anything) in a window on the screen.

CPUCACHE
This is the complete source code for one of the small command-line utilities that is included with SLOWDOWN (you can download SLOWDOWN from My Home Page ). CPUCACHE is a utility that controls (Enables, Disables, or simply shows the Status of) the CPU Cache. Download SLOWDOWN, and read the documentation that comes with it to find out how you might be able to use CPUCACHE.

DELAY
This is the complete source code for one of the small command-line utilities that is included with SCANCODE (you can download SCANCODE from My Home Page ). DELAY is a batch file utility that simply DELAYs for a little while (the number of seconds you tell it to) and then quits. You may not see a need for a utility that simply wastes time, but it is actually quite useful. Download SCANCODE, and read the documentation that comes with it to find out how you might be able to use DELAY.

PRTSCR
This is the complete source code for my PRTSCR program. It modifies the PrintScreen routine so that the output of the screen are copied to a file instead of to a printer. This program includes several "advanced" features, such as loading itself automatically into upper memory, using DPMS or EMS memory if they are available, multiple ways of accepting Option parameters, etc.

PRTSCRFF
PrintScreen with Form Feed. This is the complete source code for my smallest, simplest program. It modifies the PrintScreen routine so that each new PrintScreen gets put on a new piece of paper. It can be used as a "skeleton" to begin writing your own TSR's. By perusing the code, you can learn how to parse the DOS command line for switches, how to trap interrupts, how to find out if your TSR is already installed in memory (using the TSR Multiplex Interrupt), how to update the program if it's already in memory, how to uninstall the program from memory, how to set ErrorLevels when your program terminates, etc.

PUTKEY
This is a small subprocedure to "stuff" a keystroke into the keyboard buffer, just as if you had typed something with the keyboard. This code is used in my MOUSKEYS and JOYKEYS programs (you can download them from My Home Page ).

SDWRGMPD
This is the complete source code for SDWRGMPD, a DOS Driver for a Microsoft SideWinder digital GamePad. You can download SDWRGMPD from My Home Page . Microsoft does not provide (or even make) drivers for any of their SideWinder products, for anything other than Win95+. They don't make drivers for DOS, or even for older versions of Windows. I suspect all SideWinder products use the same basic protocol to "talk" to the computer, and the SideWinder GamePad protocol-decoder is in SDWRGMPD. You should be able to use the source code to create DOS (or Windows) drivers for any SideWinder product, and possibly for other types of digital joysticks as well.

SERIAL
This is the complete source code for another one of my larger, more complicated programs - SERIAL. It is a TSR that is very similar to the CLOCK program above. The only difference is that it shows you the status of a SERIAL port instead of showing you the time.

SLOWDOWN
This is the complete source code for a program that Slows Down your computer so that it will run older programs. It has Hot-Keys to change the Speed of the computer "on-the-fly", and contains a working implementation of the IBM Interrupt Sharing Protocol.

Another interesting feature is its ability to recognize which DOS Window is currently running underneath Windows, and can store individual settings for each of the DOS Windows. As you switch between the Windows, the Program automatically changes its setting appropriately. It looks like you have several copies of the program loaded, when you really only have one.

This version of SLOWDOWN also has several different "methods" or "modes" it can use to slow the computer down, some of which are quite unique and quite effective. Download SLOWDOWN and give it a try!

SLOWINT1
This is the complete source code for another small TSR utility that is included with SLOWDOWN (you can download SLOWDOWN from My Home Page ). SLOWINT01 is a TSR that Slows Down the computer using a very unique method. The method is variously called "Interrupt 1" or "Debug mode" or "Trace mode" or "Single-step mode". It is actually quite complicated to discuss (far too complicated to do it justice right here). I suggest that you Download SLOWDOWN, and read the complete documentation.

Discussion Forum

My Programs (My Home Page)

Links to Other Places

E-mail: bretjohn@juno.com or bret@bretjohnson.us