• Updated 2023-07-12: Hello, Guest! Welcome back, and be sure to check out this follow-up post about our outage a week or so ago.

Reverse Engineering the Macintosh SE PCB & Custom Chips for 1:1 reproduction

Torbar

Well-known member
If making a custom PCB, it would be interesting to make a SWIM that works with standard IBM floppy drives instead.
I like the idea of not being stuck with using the Apple drives, but the problem you'd run into with the IBM floppy drives, is it won't be able to handle 400k/800k disks, since there's a difference between how the drives read the disks/tracks.  Which is why, to write a 800k/400k disk, you need a Mac with a built in floppy drive.

Someone that knows more can probably explain in better detail why exactly that is?(Or if I'm wrong, tell me that too)

 

quorten

Well-known member
Yeah, actually @Torbar, have you seen the FluxEngine?  This basically is a board that uses IBM drives and a custom floppy disk controller to be able to read/write other formats like Macintosh 400k and 800k, via flux image streaming to a powerful computer...  point in hand, it definitely should be possible.

 

Torbar

Well-known member
Yeah, actually @Torbar, have you seen the FluxEngine?  This basically is a board that uses IBM drives and a custom floppy disk controller to be able to read/write other formats like Macintosh 400k and 800k, via flux image streaming to a powerful computer...  point in hand, it definitely should be possible.
I have not heard of it, but just looked into it a bit.  That's really cool! 

 

Kai Robinson

Well-known member
Well, apologies for the delay, been 'busy' with work lately and had 0 free energy left at the end of the day!

However, thanks to Rob Taylor, the man responsible for getting me into the reverse engineering in the first place, I now have a new toy to play with! Finally a proper PAL dumper! Will get a ZIF socket but i have everything else I need - anyone else want one? :)

DSC_0324.jpg

 

Torbar

Well-known member
@Torbar that parcel is finally on track to arrive, too - bloody customs wanted £15 to release it!! :eek:
:O

I thought it was supposed to be only for packages over like £125 had a customs charge, but apparently not.  that stinks!

 
Last edited by a moderator:

Torbar

Well-known member
Not to turn this thread into an international shipping practices thread  :lol: , but the first shipment wasn't held for customs payment or anything, right? only this most recent one?

 

max1zzz

Well-known member
:O

I thought it was supposed to be only for packages over like £125 had a customs charge, but apparently not.  that stinks!
"Gifts" up to a value of £35 or "Commercial Shipments" up to a value of £19 attract no import charges (That's including the cost of postage, and due to the cost of shipping these days almost no shipments will fall under these limits) anything over this will attract import VAT (20% + a £8 - £12 handling charge). There is a point where shipments may also attract duty or other import charges but I'm not 100% sure at what value this is

Sometimes packages will slip through without getting a charge applied to them, but this is unfortunately quite rare

Yeah, shipping into the UK sucks :(

 
Last edited by a moderator:

Torbar

Well-known member
"Gifts" up to a value of £35 or "Commercial Shipments" up to a value of £19 attract no import charges (That's including the cost of postage, and due to the cost of shipping these days almost no shipments will fall under these limits) anything over this will attract import VAT (20% + a £8 - £12 handling charge). There is a point where shipments may also attract duty or other import charges but I'm not 100% sure at what value this is

Sometimes packages will slip through without getting a charge applied to them, but this is unfortunately quite rare

Yeah, shipping into the UK sucks :(
Ah, thanks for clearing that up.  That sucks.  Not sure what I put down as the value of the first shipment, and if I put it as a gift or a commercial shipment, but I'm sure the value+postage was over 35GBP (Postage alone was 20GBP), so that one must have slipped by.

first one I did the customs form by hand, 2nd one I did online.  Maybe the first one they couldn't read my handwriting  :lol:

 

cheesestraws

Well-known member
@Kai Robinson  sorry to drag this back to original topic ;) could you post the latest version of the BOM?  Perhaps I'm missing something but the only version I could see here, you said you'd made some changes to after it was posted, I think...

 

Kai Robinson

Well-known member
Code:
* Partlist from file: MacintoshSE.lay6" / 07/11/2020 00:32:29
*
* Name	Value
*

C1	100nF
C2	100nF
C3	100nF
C4	33uF 16v
C5	33 pF
C6	100nF
C7	100nF
C8	100nF
C9	100nF
C10	100nF
C11	33uF 16v
C12	100nF
C13	33uF 16v
C15	100nF
C16	33uF 16v
C17	100nF
C18	33pF
C19	10pF
C20	100nF
C21	100nF
C22	100nF
C23	100nF
C24	100nF
C25	100nF
C26	33uF 16v
C27	100nF
C28	100nF
C29	100nF
C30	100nF
C31	100nF
C32	33uF 16v
C33	100nF
C34	33uF 16v
C35	100nF
C36	1uF 16v
C37	33uF 16v
C38	33uF 16v
C39	100nF
C40	68pF
C41	100nF
C42	100nF
C43	100nF
C44	100nF
C45	100nF
C46	100nF
C47	100nF
C48	100nF
C49	100nF
C50	100nF
C51	100nF
C52	100nF
C53	100nF
C54	100nF
C55	100nF
C56	100nF
C57	100nF
C58	100nF
C59	100nF
C60	100nF
C61	100nF
C62	33uF 16v
C63	100nF
C64	100nF
C65	100nF
C66	100nF
C67	100nF
CR1	1N4150
CR2	1N4150
CR3	1N4150
J1	EAR			Kobiconn 161-3520-EX
J2	SERIAL			TE 5749268-1
J3	SERIAL			TE 5749268-1
J4	EXT SCSI		Amphenol L77SDB25S1ACH4R
J5	INT SCSI		Molex 87831-5019
J6	EXT FLOPPY
J7	UPPER DRIVE		Molex 87831-5920
J8	LOWER DRIVE		Molex 87831-5920
J9	ADB			TE 5749181-1
J10	ADB			TE 5749181-1
J11	Speaker
J12	MAIN			Molex 39-28-1143
J13	PDS			TE 5535032-4
J14	SIMM			PE Connectors HWS9229
J15	SIMM			PE Connectors HWS9229
J16	1x3 HEADER
L1	33uH
L2	33uH
L3	33uH
L4	Ferrite Bead
Q1	2N3904
R1	10k
R2	10
R3	47
R4	47
R5	560k
R6	10
R7	10
R8	1.2k
R9	47
R10	47
R11	1k
R12	150
R13	1k
R14	470
R15	1k
R16	3.3k			
R17	10k
R18	1k
R19	10
R20	75
R21	3.3k
R22	47
R23	47
R24	47
R25	560
R26	3.3k
R27	3.3k
R28	47
R29	47
R30	47
R31	10k
R32A	47
R33A	47
R34	10k
R35	150
R36	150
R37	39
R38	39
R39A	47
R40A	47
R41	3.3k
R42	39
R43	3.3k
R44	3.3k
R45	3.3k
R46	3.3k
R47	3.3k
R48	3.3k
RP1	39			Bourns 4610X-102-390LF
RP2	39			Bourns 4610X-102-390LF
U1C	SND
U2B	FILTER			Bourns 4120R-601-250/201
U2C	26LS30
U2E	74ACT257
U2F	74ACT257
U3C	26LS32
U4B	FILTER			Bourns 4120R-601-250/201
U4C	26LS32
U4D	MC3488A
U4E	BBU
U5D	85C30 SCC
U6B	58C30 SCSI
U6D	ROM HIGH
U7D	ROM LOW
U7E	MC68000
U8B	FILTER			
U8D	SWIM
U9D	GLU
U10C	ADB
U10D	16 Mhz Clock		
U11A	ADB FILTER		HALO LD11-0246FLF (24uH Common Mode 1:1:1:1 Choke)
U11B	FILTER			Bourns 4120R-601-250/201
U11C	RTC
U11D	Rockwell 338-6523 TPI
U11F	74FCT245
U12F	74FCT245
Y1	32.768 KHz
 

Kai Robinson

Well-known member
Well it's a success, reads consistently as a 27C020 - no matter the manufacturer - although the AM27C020 seems to work best. 

So - here's the final code revision for the GLU logic - anyone able to verify this against the GLU's own description in Apple's own hardware manual?

 

Name glu ;
PartNo 00 ;
Date 07/11/2020 ;
Revision 01 ;
Designer Kai Robinson ;
Company Atmel ;
Assembly None ;
Location ;
Device virtual ;

/* Dedicated input pins */

pin 1 = CLK; /* Input */
pin 2 = PB6; /* Input */
pin 3 = IRQ; /* Input */
pin 4 = WRDATA; /* Input */
pin 5 = ENABLE1; /* Input */
pin 6 = PA4; /* Input */
pin 7 = 16MCLK; /* Input */
pin 8 = PA3; /* Input */
pin 9 = RTXCB; /* Input */
pin 11 = OE; /* Input */

/* Programmable output pins */

pin 12 = RTXCA; /* Combinatorial output */
pin 13 = OUTA; /* Fixed high output */
pin 14 = BBUIRQ; /* Combinatorial output w/ output enable */
pin 15 = ENABLEL; /* Combinatorial output */
pin 16 = ENABLEU; /* Combinatorial output */
pin 17 = FLOPPYWR; /* Combinatorial output */
pin 18 = nc; /* Fixed high output */
pin 19 = FCLK; /* Combinatorial output w/ output enable */

/* Output equations */

!FCLK = 16MCLK & !OE;
nc = 'b'1;
!FLOPPYWR = WRDATA;
!ENABLEU = !ENABLE1 & !PA4;
!ENABLEL = !ENABLE1 & PA4;
!BBUIRQ = !PB6 & IRQ;
OUTA = 'b'1;
!RTXCA = !PA3 & !RTXCB & !OUTA
# PA3 & !RTXCB & !OUTA
# !PA3 & RTXCB & !OUTA
# PA3 & !RTXCB & OUTA;

/* End */




DSC_0328.jpg

glu.jpg

 

quorten

Well-known member
`OUTA` and `RTXCA` look suspect, `RTXCA` will always be one with that logic so apparently you cannot enable synchronous modem use?  Not like you could ever do it in earlier Macintosh computers... I'm guessing the hardware manual's passing mention of this is because the feature was cancelled late in the product development.

Otherwise, I'd say everything else looks good when also consulting the VIA register layouts in the hardware manual.

Also, I've looked a little into implementing a BBU clone and started coding up some Verilog.  I'd say implementing  the embedded asynchronous DRAM controller feels like it's the most complicated part, that being said most of the rest of the BBU functions are simple combinatorial logic or counting loops for things like scanning the video buffer, sound buffer, etc.

Mentioning the BBU, one thing I don't quite understand is how the Macintosh SE controls the boot-time memory overlay.  Earlier Macintoshes used a VIA register bit to control the switch, but there is no such bit reserved in the Macintosh SE's VIAs.

Also, perusing emulator source code seems to have reached the limit of its helpfulness at this point, looks like a lot of how Mini vMac, MAME (formerly MESS), and PCE implement the finer details of Macintosh SE BBU emulation is through borrowing an emulation of a Macintosh Plus and patching ROM hacks in place for SCSI support.

 

quorten

Well-known member
Well if those Maxells aren't already exploded from sitting in inventory they must have something good about them!  I have to admit, it's tempting to see leaded solder-in batteries being sold... yeah you could just solder in another battery for a more authentic looking board, but it's totally punitive to not use a battery holder or connector of some sort.

 
Top