A new version of this project is available here
The Minipro TL866 is very popular among hobbyist because of its low price and ease of use. Its list of supported chips is however somewhat limited compared to more expensive professional programmers. The E2R16v2 adapter adds support for the ROM pinout compatible EPROM of the 27C400/800/160 and C322 series.
The schematics is based on the original E2R16. It remaps the 27C4096 pins to the corresponding 27Cxxx pins. A 4-bit dip switch is used to select the 512KB bank to program for the larger chips.
A18 and A19 are trivial, they default to low and setting the corresponding switch to ON will set the address line high.
The circuit on A20 is necessary because pin 32 is assigned to VPP on the C800/C160 and to A20 on the C322. On the C322 the programming voltage should be applied to pin 13 (OE#). Dip switch 4 selects the C322 mode and re-routes VPP to the correct pin. D1 and R7 allows OE# from the programmer to work as expected while blocking the VPP voltage from flowing back into the programmer. R12 is necessary to ignore A20 on while not in C322 mode.
The design has 2 issues. The first one is the mechanical interference with the TL866 ZIF socket lever. To avoid the interference is necessary to use long headers for the U2 connections.
The second issue is incompatibility with some TL866 when programming the C322 EPROMs. The C322 OE#/VPP circuit formed by Q1 and D1 works properly only if VPP is not applied during reads. If VPP is applied Q1 will always be on preventing OE# from ever being asserted.
To use the adapter to read or write 27Cxxx EPROMs select 27c4096 and de-select "check ID" in the Minipro GUI. Set the DIP siwtch according to the 512KB bank that need to be read/written. Additionally, for programming make sure the section "IC Config Information" is set according to the datasheet of the specific EPROM being programmed.
Then read and write as usual. Repeat for every 512KB bank.