As shown in the schematic, the address toggle switches, the data switches, and the LEDs are connected to the PROM device directly. Vpp +24V is supplied by DC/DC converter. Since the PGM signal need 50ms single pulse, a one-shot multi vibrator NE555 is used. For a reading mode, Vpp is applied +5V and an output enable of the PROM is set active. For a programming mode, Vpp is applied +24V and an output enable is set inactive. If you press the write switch here, the 50 ms programming pulse is generated, then the data value will be written to the PROM. The following is a photo of the internal structure.
When the erased PROM is read in reading mode, all the bits are correctly high. In the program mode, set the address and data with switches and operate the write switch to program the data. To program is to make the bits low level. When the programming is done, you can check the written values again in reading mode.
As above, it can be said that this programmer works correctly. However, depending on the type of PROM, switching between a reading mode and a program mode while the power-on state could destroy the device. So, the mode switching need to do in power-off state.
If I tried manually programming 2 kbytes of data, it took about 5 hours. I also needed a lot of concentration so that I wouldn't make a mistake to set binary values by toggle switches byte by byte. This is a tough, but the basics of PROM behavior are well understood.
Reference: MM2716E 16,384-Bit(2048 x 8)UV Erasable PROM, National Semiconductor (datasheet)