This is the MM74C923 4 X 5 keypad encoder. It will encode up to a maximum of 20 keys into a 5 bit binary value. Inputs and outputs are virtually the same as the actual chip except I have added a clock select (CLK SEL) input to tell the chip to use the internal or external clock
CLK SEL = L - internal clock
CLK SEL = H - external clock
since CircuitVerse does not have a simple pushbutton switch, a few AND and Or Gates are needed to get the "Button" to work correctly. As well, because of the slow clock rate (50ms) you have to hold the button for about a second for it to register. See the test circuit for example.
Since the actual encoding is done with an EEPROM, you can change what values are output for each X-Y key combination which is great if you have a custom keypad. Remember the X outputs and Y inputs are active Low.
Even though the MM74C923 has a latched output, I'm still feeding the key value to a 4 bit register which is set to load by the Data Available (DA) output from the MM74C923.
The data sheet can be found here. http://www.datasheet-pdf.com/PDF/MM74C923-Datasheet-Fairchild-455716