Steven D. Nichols has just released 6502em a 6502 emulator for DOS 3.1 or better.
What It Is
----------
6502em is a 6502 microprocessor emulator with a minimum of Commodore 64 and
Commodore 128 compatible KERNAL input output/routines which are called from
the KERNAL jump table. I wrote this version of the emulator back in 1994 and
either never had documentation (likely) or lost it.
This emulator is slow. It's inefficient because it is written in Basic
(A High Level Language). The sourcecode is commented and a BASIC programmer
should have no problem figuring out how it works. More features can be added
(have at it...).
It supports all documented 6502 instructions except SEI, and CLI which are
ignored. Undocumented instructions are not supported. Just run the program
and it will ask for a program start address and filename(s). All files are
expected to have a 2 byte memory load address which are the first 2 bytes of
the file, which is the memory location in the emulator where the file will be
loaded.
There are no C64 memory mapped features, meaning direct calls to BASIC or
KERNAL roms are not supported, ALL I.O. is through the kernal jump table,
and are emulated by the emulator.
The emulator can be found at http://www.ml1compiler.org/