A form of PAL in which the outputs emerge through output cells, an output cell being a logic circuit that is programmable for a number of characteristics. These characteristics include the choice of positive or negative logic, whether the output can be used as an input, whether it is to be fed back into the circuit, whether it is to emerge via a latch, and whether it is to be tri-state.