In a production environment it is often easier for production staff to duplicate micro's.
The BEL Dual Programmer has 2 channels, and so you can use one channel for the micro to be read, and the other channel for the micro to be duplicated.
Select the channel to use with "PP06 -unit=1"
PP06 -CP0 -CP1
PP06 -config=0x1234
Then the ID locations are perfect for this. Give each version unique IDLOC, and use this as the filename for the hex files. The user can take any code protected micro from existing product, put it in the duplicator, and get a correctly duplicated unit.
In fact the "master" micro can hold arbitary code anywhere you can read it, not just in the IDLOCS. You are simply looking for a signature that will identify a specific hex file. For many of the micros, the data that is read from the program of a code protected unit still forms a unique signature for that version.
One PC running windows, dos, or linux, can easily be used with 3 or more cheap printer ports and BEL Dual programmers to make a 3 station programmer.
You can explicitly tell PP06 what printer port to use, either as an LPT#, or explicitly as the base address of the port
PP06 -LPT=0x378
PP06 -LPT3 remember that linux uses -lp0 to -lp2
If only one is working at once, then there are no issues with this. If you expect them to be used simultaeneously, then you will have to look carefully at how they multi-task. Bear in mind that timing does not matter for the self-timed flash micros like 16F628,877 etc. These are likely to work under windows or linux. (note that the DOS version can't multi-task as it goes direct to the timer hardware)
These are specifically intended for easily making custom pc controlled ATE equipment like this