NOTICE! Use of this site signifies acceptence of the Contract for site usage

This page contains source and executable versions of programs I've written over the years.

For now, this will be kind of bare -- just two major programs I've written. More will be added later.

VIM stands for VIrtual Machine. Long ago, I wrote an interpreter for x86 machine code. Setup as a debugger, it handles up to REAL MODE 80286 code.

Since this is a debugger, I can't let a bad program take out the interrupt vectors, DOS, or whatever. Hence the "Virtual" in the name -- VIM takes whatever memory it can get, and sets up the interpreter to use a "virtual" processor. So, when the interpreter uses Interrupts, DOS, etc, it's using the virtual copy, so that a bad program destroying them won't hurt VIM, the real DOS, real interrupt vectors, etc.

CODEGEN is a disasembler that I wrote, based on the VIM instruction decoder.

While it is limited to COM programs (and other non-segmented files, such as boot records, etc) and small-memory-model EXE programs, it is more intelligent and more flexible than any other disassembler that I've seen.


These pages last modified 1/10/2001