Re: Reverse Engineering the Macintosh SE PCB & Custom Chips for 1:1 reproduction
Posted: 15 Sep 2020 20:55
And then i was done.
Looks good, doesn't it? Shame it didn't bloody work and not just due to missing grounds, as i would discover to my horror later on...
So, while i put the board back down and began to ponder, i decided to have a crack at the GLU chip, which as the name implies, handles a few basic glue logic functions like selecting the floppy drive and buffering the clocks. It's a HAL16L8 part that should be easily replicated. However, i pulled the data out using the following schematic:
which, when read as a 27C020, netted me a .bin file, and using a PAL Analyzer, got something that mostly made sense, but with a whacked out /OE that was 9MB long. WinCUPL crapped its pants at almost every point, and seems to be so buggy it doesn't like being used on windows 10...
Looks good, doesn't it? Shame it didn't bloody work and not just due to missing grounds, as i would discover to my horror later on...
So, while i put the board back down and began to ponder, i decided to have a crack at the GLU chip, which as the name implies, handles a few basic glue logic functions like selecting the floppy drive and buffering the clocks. It's a HAL16L8 part that should be easily replicated. However, i pulled the data out using the following schematic:
which, when read as a 27C020, netted me a .bin file, and using a PAL Analyzer, got something that mostly made sense, but with a whacked out /OE that was 9MB long. WinCUPL crapped its pants at almost every point, and seems to be so buggy it doesn't like being used on windows 10...
Code: Select all
Name HAL16L8;
PartNo ;
Date 2020-07-13;
Revision 0.1a;
Designer Kai Robinson;
Company ;
Assembly ;
Location United Kingdom;
Device g16v8a;
/* Dedicated input pins */
pin 1 = I0; /* NC*/
pin 2 = PB6; /* PB6 */
pin 3 = IRQ; /* IRQ */
pin 4 = WRDATA; /* WRDATA */
pin 5 = ENBL1; /* /ENBL1 */
pin 6 = PA4; /* PA4 */
pin 7 = CLK; /* CLK INPUT*/
pin 8 = PA3; /* PA3 */
pin 9 = RTxCB; /* /RTxCB */
pin 11 = OE; /* OE */
/* Programmable output pins */
pin 12 = RTxCA; /* Combinatorial output */
pin 13 = OutA; /* Fixed high output w/ output enable */
pin 14 = IPL0; /* Combinatorial output w/ output enable */
pin 15 = ENABLE_L; /* Combinatorial output */
pin 16 = ENABLE_U; /* Combinatorial output */
pin 17 = FLOPPY_WR; /* Combinatorial output */
pin 18 = B6; /* Fixed high output w/ output enable */
pin 19 = FCLK; /* Combinatorial output w/ output enable - FCLK on BBU Pin 44 */
/* Output equations */
!FCLK = CLK & !OE;
B6 = 'b'1;
!FLOPPY_WR = WRDATA;
!ENABLE_U = !ENBL1 & !PA4;
!ENABLE_L = !ENBL1 & PA4;
!IPL0 = !PB6 & IRQ;
OutA = 'b'1;
!RTxCA = !PA3 & !RTxCB & !OutA
# PA3 & !RTxCB & !OutA
# !PA3 & RTxCB & !OutA
# PA3 & !RTxCB & OutA;