----- Original Message -----
From: "Jecel Assumpcao Jr." <jecel at merlintec.com>
To: "General Discussion: On-Topic and Off-Topic Posts"
<cctalk at classiccmp.org>
Sent: Thursday, June 21, 2012 2:54 AM
Subject: Mac PALs (was: Interested in learning 68000 hard/soft)
Tony Duell wrote on Wed, 20 Jun 2012 22:01:06 +0100
(BST)
I haev my own compelte scheamtics of the Mac+
(both boards, keyboard,
mouse, disk drive), but of course nothing definite on the PALs.
Back in 2005 someone posted the sources for all the PALs, I looked at
them, but didn't save a local copy. A quick search only showed the
source for the TSM (timing state machine) circuit in
I did a clean room implementation of the PALs in 1987 that was better
(27% performance increase over the original) but don't have a copy of
the sources (I do have access to a machine with the actual PALs with my
design, however).
Speaking of missing documentation, I also built 3 machines with the
68000 and 2 with the 68020 but didn't keep any of the documentation
(other than pictures of two of them). I am not sure building something
like that today is such an interesting project. If you do it in
wirewrap, then having everything 16 (or 32) bits wide can get very
tiring. You could go with the 68008 to deal with this, but a 6809
machine would be almost as fast and the components would be easier to
find.
-- Jecel
p.s,: here are the PAL equations copied from the thread I mentioned
above (in case people have problems getting to it in the future):
16MBUF C16M 8M MU RAMEN ROMEN AS UDS LDS GND
TSEN CAS0 CAS1 RAS TC 1M 4M 2M DTACK VCC
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:= 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 * /1M * RAS * 2M +
/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
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