TSM : 16R4 TSM is a 16R4 device whose major function is control of the dynamic RAM. For inputs, it has the decoded RAM enable signal, along with the address and data strobes from the processor which signify whether the data transfer will be low byte, hi byte, or word. From these the RAS and CAS strobes are generated, and the row/column address multiplexer is controlled. Until there were PALs, this type of dynamic RAM control function required either about 10-20 discrete TTL packages, or a 40 pin LSI dynamic RAM controller which usually didn't do what you wanted anyway. /TSEN0 /CS 11 10 GND /CASL O 12 9 I /LDS /CASR O 13 8 I /UDS /RAS R 14 7 I /AS TC R 15 6 I /ROM C1M R 16 5 I /RAM C4M R 17 4 I VID/u* C2M O 18 3 I C8M /DTACK O 19 2 I C16M Vcc 20 1 CLK C16M From Kryten's (now gone) page: Apple Mac Timing State Machine, PAL16R8 NB: Not verified yet! PAL16R8 PAL DESIGN SPECIFICATIONS 16MBUF C16M 8M MU RAMEN ROMEN AS UDS LDS GND TSEN CAS0 CAS1 RAS TC 1M 4M 2M DTACK VCC RAS is the DRAM Row Address Strobe. RAS: = /4M * /RAS + 8M * 4M * /RAS + + /8M * 4M * /2M * /RAS + 8M * /4M * 1M * RAS + 8M * /4M * /1M * 2M * RAS + /8M * 4M * /1M * RAS * LDS + /8M * 4M * /1M * RAS * UDS + /8M * 4M * /1M * RAS * /LDS * /UDS * /CAS0 + TC goes to the LAG and to the video counter (U1F) TC:= 8M + /4M + 2M + /1M + RAS 1M: = /8M * 4M * /2M * 1M * /RAS + /1M * 8M * /4M * /RAS + /1M * /8M * 4M * 2M * /RAS + /1M * RAS + /1M * /8M * /4M * /RAS + /1M * 8M * 4M * /RAS 4M: = 1M * RAS + 8M * 4M * 2M * /1M * RAS + /8M * /4M * /1M * RAS + 8M * /4M * 2M * /1M * RAS + /8M * 4M * /2M * /RAS + there may be a line missing here..... 2M: = /C16M * /8M * /4M * /RAS + /2M + /8M + /4M + /2M + /1M + * /TC + C16M * /2M + /C16M * /8M * /4M * /1M * RAS * /ROMEN * /RAMEN * /AS + /2M * 4M + /2M * 8M * /4M *1M * MU DTACK := /C16M * /8M * /4M * /RAS * /AS * /ROMEN * RAMEN + /C16M * /8M * /4M * /1M * /RAS * /AS * /RAMEN * ROMEN + /C16M * /8M * /4M * 1M * /RAS * /AS * /RAMEN * ROMEN * /MU + /C16M * /8M * 4M * /1M * RAS * /AS * /RAMEN * /ROMEN + /DTACK * /UDS + /DATACK * /LDS + /DATACK * /RAS This is probably not right for the Mac Plus... CAS0: = 4M * /2M * /RAS * /DTACK * /RAMEN * ROMEN * /LDS * MU + 4M * /2M * 1M * /RAS * MU + /CAS0 + /RAS + 8M + 4M + /2M * /1M * RAS * /DTACK + /CAS0 * /2M + /1M CAS1: = 4M * /2M * /RAS * /DTACK * /RAMEN * ROMEN * /UDS * MU + 4M * /2M * 1M * /RAS * MU + /CAS1 + /RAS