Back in the late 80's and early 90's I worked for Infotron Systems (later Gandalf Technologies) which manufactured data communications equipment. A lot of Infotron’s equipment was based on the 6502 microprocessor, so much so that they designed and manufactured their own 6502 in circuit emulator the IF65. The IF65 was a great tool for both developing embedded 6502 software and for troubleshooting 6502 hardware. The IF65 was mainly used in house, but I know of at least one other company that Infotron sold them to. Fortunately, I ran across a working IF65 at a flea market a long time ago. Since there isn’t much information about this device online I decided it would be a good idea to document it the things that I remember about out.
IF65 Font Panel

Baud Rate – This is used to set the terminal baud rate. The front panel has a convenient table that lists the supported baud rate.
Trap Address – When the CPU accesses this address a sync pulse us generated. This function was really useful for trouble shooting address decoding hardware. You could set and trap address and then from the console start a continuous read or write to this address. You would then have one oscilloscope channel trigger on the sync pulse and then use the second channel to probe the circuit so you could see the state of the signal at the time of the address access.
Product Reset – Resets the CPU running the product.
Force Trap - ???
Monitor Reset – Resets the internal CPU.
Address Trap Condition – These are used along with the trap address to determine if you want a sync pulse on a Read, Write, and/or op code access.
NMI/Scope Sync - ???
Read Write/Read Only – I believe this controlled the internal IF65 memory.
Auto Start/Off - ?
Devel Clock/Product Clock – Controls whether the CPU clock should come from the product, or from the internal IF65 clock.
Readable Switches – The state of these switches could be read by code running on the device using a special BRK instruction.
Devel Mem/Product Mem – Switch between the memory on the product and memory in the IF65.
Single Step/Full Speed – Allows the software to run normally or to single step.
Terminal Select – In the IF/65 position the terminal will be connected to the internal IF65 monitor program. When in the modem position it will connect to whatever is connect to the modem port on the back of the device. At the time this was commonly connected to a main frame computer. The Both position connected both the monitor and modem which allowed you to download program from the mainframe into the IF65 memory.
Trap Data/Program Data – When in the Trap position the Display Data would show whatever value was on the bus when a trap condition was hit. In the Program position the display was controllable from software using a special BRK instruction.
Trap – This light lights up whenever a trap condition is hit.
ZIF Socket – EPROM reader/programmer
Sync Pulse – Pulses when a trap condition is hit
GND – Grounding point.
IF65 Font Panel

Terminal - RS232 connection to a terminal that provides access to the internal monitor program.
To Modem - RS232 connection to host computer. This can be used to download software from the host to the IF65 memory.
T-Network - These three DB25 connectors are simply hooked up in parallel. I don't remember exactly how this was used.
MPU Front
MPU Front
MPU Back
MPU Back
MPU Baby Front
MPU Baby Front
MPU Baby Back
MPU Baby Back
MEM Front
MEM Front
MEM Back
MEM Back
Interface Front
Interface Front
Interface Back
Interface Back
ICE Box Front
ICE Box Front
ICE Box Back
ICE Box Back

DU – Dump [addr1] through [addr2] – Dump memory
DE – Debug T = On/Off
DI – Disassemble [addr1] through [addr2] – Disassemble memory
WR – Write Hex [addr1] through [addr2] – Dump memory in Intel hex format
WA – Watchdog [addr1]
EP – EPROM programmer menu
EX - Exclusive OR [addr1] through [addr2] – XOR and display memory
R – Registers – Display CPU registers
TE – Terminal I/O Opcode BRK On/Off
TR P – Transfer product to development
TR D – Transfer development to product
TO R – Toggle register trace
TO O – Toggle opcode BRK check
TO D – Toggle Disassemble Trace
TO C - Toggle conditional trap byte
Y - Set Y register = [data]
U - User RAM Test [addr1] through [addr2]
I - ?
PR - Set processor status register = [data]
PC – Set program counter = [data]
AS – Assembler from [addr]
AC – Set accumulator = [data]
SW – Switch display address = [addr]
SE – Search from [add1] through [addr2] for (A= ASCII/H = Hex)
ST – Set stack pointer = [data]
SY – Show symbol table
/ - Edit memory
F – Fill memory [addr1] through [addr2] = [data]. Note: If addr1 and addr2 are the same the monitor will continuously write to the address until it is stopped.
X – Set X register = [data]
M – Display eight bytes from memory
N – Input memory [addr1] [up to 8 bytes]
B – Set BRK register
V – Verify On/Off
CO - Conditional Trap Byte = [data]
CA – Call address [addr]
CH – Checksum [addr1] through [addr2]
L – Load 6502 Hex
J – Jump to address [addr]
H – Hex Intel loader
G – Go n instrucitons [n]