Jump to content


Photo

Mac SE/SE/30 Ethernet Card Recreation


  • Please log in to reply
23 replies to this topic

#1 IlikeTech

IlikeTech
  • 6502
  • LocationSomewhere very cold and snowy, USA

Posted 05 January 2017 - 06:55 PM

Does anyone want to take on recreating a Mac SE PDS Ethernet card? It would be a cool project, and it would be extremely helpful.  You could probably base it on another SE Ethernet Card.

 

IlikeTech


My Macs: iBook G3, iBook G4, Mac Mini Core Solo, iMac G4, Mac SE.


#2 techfury90

techfury90
  • 68000
  • LocationCarrboro, NC, USA

Posted 05 January 2017 - 10:02 PM

Basing it on an existing card is a terrible idea. Many of the chips used on those cards are no longer available, nor do they even make sense to use today with the introduction of more integrated Ethernet controllers, e.g. Cirrus CS8900A.

Macs: MBP 13" Retina (mid-2015), MBP 13" (mid-2012), PMG4 QS02, Q950, LC; pseudo-Macs: Amiga 1200, Atari Mega ST 4.

Other systems of note: Microsoft Surface 3, IBM System i 520, iSeries 270, DEC MicroVAX 3100-40, Compaq AlphaServer DS20E, HP Integrity rx2600, Burroughs B28, IBM RT PC 6151, and many more...


#3 IlikeTech

IlikeTech
  • 6502
  • LocationSomewhere very cold and snowy, USA

Posted 05 January 2017 - 10:25 PM

I was just saying this was viable as a last resort. any other ideas?


My Macs: iBook G3, iBook G4, Mac Mini Core Solo, iMac G4, Mac SE.


#4 cb88

cb88
  • 6502

Posted 05 January 2017 - 11:02 PM

This guy has a goal of emulating cabletron SCSI ethernet + maybe others. Plus the device can probably also act as a disk drive at the same time.

 

I also mentioned Scuzzygraph emulation and he seemed interested in that as well....

 

Also basing something on something that already exists is a valid response in many cases... especially if the software/drivers for it already exists.

 

https://hackaday.io/...y-scsi-emulator

 

I'm a big fan of the the SCSI2SD but this one might have it's own niche as well... note that this uses a vintage NCR 5380 controller so isn't so much of a SCSI emulator as a multi personality SCSI device emulator...


Edited by cb88, 05 January 2017 - 11:08 PM.

68k: 4Mb Platinum Plus , 5Mb SE/30
Sparc: 2x SS2, LX, 2xSS10, SS5@70Mhz, SS20 2x85Mhz,SparcBook 3GX
Sparc64: U10@440Mhz,Blade 100, T2000@1.2 and 32Gb ram
x86: Tyan Thunder 2 ATX, Sager NP6110, Fujitsu P1120/Crusose@800Mhz

#5 techfury90

techfury90
  • 68000
  • LocationCarrboro, NC, USA

Posted 05 January 2017 - 11:17 PM

5380? Seriously? Ugh. That chip was crap in 1990, and Apple kept hocking it for several years after the fact.


Macs: MBP 13" Retina (mid-2015), MBP 13" (mid-2012), PMG4 QS02, Q950, LC; pseudo-Macs: Amiga 1200, Atari Mega ST 4.

Other systems of note: Microsoft Surface 3, IBM System i 520, iSeries 270, DEC MicroVAX 3100-40, Compaq AlphaServer DS20E, HP Integrity rx2600, Burroughs B28, IBM RT PC 6151, and many more...


#6 techknight

techknight
  • 68LC040

Posted 05 January 2017 - 11:46 PM

Sure the chips arnt available, but you can emulate the command set for those older ICs so you can use the existing drivers. Protocol translator IC. 

 

I think 90% of the ICs these early machines used were NDIS or NE1000/2000 compliant. 


Main PC: Intel core I7 920, MSI x58 platinum, Radeon4850
PB: tibook G4, ibook G4, ibook g3x2, Lombard, 160, 165, 180, 180c Duo 2300x2, Duo 270c x2, 520cPPC, 3400c, 1400c
Desktop: G3AIO, SE, SE/30, 512k, plus, LCIII, iMac G4, iMac intel, 6400/225

#7 techfury90

techfury90
  • 68000
  • LocationCarrboro, NC, USA

Posted 06 January 2017 - 12:46 AM

You're very close- most used the National Semiconductor DP8390 Ethernet chip. The NE2000 is essentially Novell's build of the DP8390 reference design from the datasheet. 

 

Why not just write new ones? Have you ever looked at an Ethernet driver? I have. The Ungermann-Bass card for my IBM RT is made of pure unobtanium, so I decided to see about making a 3Com 3C509 work in it, since the RT just has normal ISA slots. The first thing I did was find the documentation for the 3C509 to get a feel for how drivers interact with it. It turned out to be quite simple: you basically just used a certain I/O port to send commands to, and another for reading/writing packets out of the controller's onboard buffers, and a few others for miscellaneous things like status. It didn't really sink in to me until I read the manual that Ethernet cards, for the most part, do precisely three things: send a packet, receive packets back, and report problems.

 

Most of the low level details are handled within the controller itself, you just load its buffer up with the packet you want to send, and then poke the command register to send it. When a packet comes in that matches its MAC, a group MAC, or a broadcast MAC (in normal usage), the controller fires off an interrupt when it receives the packet, you attach an interrupt handler in the driver to receive it, shut off the interrupt, then poll the status register to see what kind of interrupt it is (received packet, packet CRC error, collision detected, etc), then copies the contents of the packet from the controller's buffer into RAM, tells the controller it finished copying the packet, then repeat the status register poll, if no more work to do, switch the interrupt back on and exit the interrupt handler routine.

 

Most of the actual difficulties are handled further up the food chain by the networking stack, the driver's job is just to take Ethernet packets to/from the controller and the networking stack and report problems occurring (it's not expected to process them or take corrective action, just report them to further up the food chain)

 

 

That's it! If you've ever done microcontroller stuff a bit, particularly with interrupts, you pretty much know almost everything needed to write a network driver. 

 

I'm not promising anything right now, but. I mention the CS8900A because I've read the chip's datasheet, it's readily available, and has a native 16 bit ISA interface. Everyone forgets that ISA is just a fairly typical 16 bit parallel handshaking-controlled asynchronous bus, not very far off from PDS at all, just slower. That's okay though, because the 68k bus works like that too, you just use DTACK to insert wait states (or rather, by holding off on DTACK). You just need to sort out a few control lines and decoding logic between the PDS bus and the network controller, plus the driver.

 

I mention this because I have been toying around with the idea of making new Ethernet cards for 68k Macs for the past two or three weeks. 

 

 

Edit: also, NDIS is the Windows network card driver API. It's so simple that various open source OSes have "wrappers" that allow NDIS wrappers to run on them. That is how simple Ethernet drivers are.


Edited by techfury90, 06 January 2017 - 12:52 AM.

Macs: MBP 13" Retina (mid-2015), MBP 13" (mid-2012), PMG4 QS02, Q950, LC; pseudo-Macs: Amiga 1200, Atari Mega ST 4.

Other systems of note: Microsoft Surface 3, IBM System i 520, iSeries 270, DEC MicroVAX 3100-40, Compaq AlphaServer DS20E, HP Integrity rx2600, Burroughs B28, IBM RT PC 6151, and many more...


#8 techknight

techknight
  • 68LC040

Posted 07 January 2017 - 12:49 AM

Um... You go ahead with that lol... 

 

Driver isnt difficult, its interfacing with the rest of the OS from the driver's point of view which is fun. because MacTCP or Open Transport has to communicate with the driver somehow, so I assume the driver has to be written in such a way to be able to interface with that. 

 

I think it might be easier to reverse engineer one and modify that. 

 

But then again, its just easier to emulate a pre-existing chip so you can use the standard Apple Ethernet driver. Thats more compatible anyways. That way you can pick up the 7.5NAD disk and off you go. no 3rd party junk necessary. 


Edited by techknight, 07 January 2017 - 12:50 AM.

Main PC: Intel core I7 920, MSI x58 platinum, Radeon4850
PB: tibook G4, ibook G4, ibook g3x2, Lombard, 160, 165, 180, 180c Duo 2300x2, Duo 270c x2, 520cPPC, 3400c, 1400c
Desktop: G3AIO, SE, SE/30, 512k, plus, LCIII, iMac G4, iMac intel, 6400/225

#9 techfury90

techfury90
  • 68000
  • LocationCarrboro, NC, USA

Posted 07 January 2017 - 01:59 AM

Have you even looked at the relevant documentation?

You don't need to emulate another card if you just shove the driver in DeclROM.

Macs: MBP 13" Retina (mid-2015), MBP 13" (mid-2012), PMG4 QS02, Q950, LC; pseudo-Macs: Amiga 1200, Atari Mega ST 4.

Other systems of note: Microsoft Surface 3, IBM System i 520, iSeries 270, DEC MicroVAX 3100-40, Compaq AlphaServer DS20E, HP Integrity rx2600, Burroughs B28, IBM RT PC 6151, and many more...


#10 Cory5412

Cory5412

    Daring Pioneer of the Future

  • Administrators
  • LocationArizona, USA

Posted 07 January 2017 - 02:03 AM

Perhaps unrelated -- Just out of interest -- does the 7.5 network access disk work with Ethernet that is not Apple branded or otherwise built onto the motherboard of supported Quadras and Power Macintoshes? Or would you need to add a third party driver to it anyway?

 

If you'd need to add a driver to it anyway, what does it matter if it's an existing Asante (or other) driver or a new one?



#11 techfury90

techfury90
  • 68000
  • LocationCarrboro, NC, USA

Posted 07 January 2017 - 02:08 AM

It does, if the card has a DeclROM based driver. Not all do. I intend to include mine in DeclROM for this exact reason.

 

The reason you'd want a new one is that a) Ethernet drivers are NOT complicated (literally 1000-1500 LOC *max* for a simple one like a CS8900A), and b ) new driver development means we are no longer dependent on having to copy hardware that is getting harder and harder to find. This also opens the window to future possibilities. Making something else emulate an existing card adds significantly to the hardware BOM (aka cost), and massively increases the scope of hardware development. The trade-off is the software development requirement, but my opinion (and keep in mind, I write software for a living) is that it would take considerably less time to just build a driver from the documentation. This. Is. Not. Hard.

 

I for one think that we do not need to be cloning cards, but rather working towards independently-developed designs that can be adapted to changing component availability, etc. 


Edited by Cory5412, 07 January 2017 - 03:30 AM.

Macs: MBP 13" Retina (mid-2015), MBP 13" (mid-2012), PMG4 QS02, Q950, LC; pseudo-Macs: Amiga 1200, Atari Mega ST 4.

Other systems of note: Microsoft Surface 3, IBM System i 520, iSeries 270, DEC MicroVAX 3100-40, Compaq AlphaServer DS20E, HP Integrity rx2600, Burroughs B28, IBM RT PC 6151, and many more...


#12 techknight

techknight
  • 68LC040

Posted 09 January 2017 - 11:21 PM

This. Is. Not. Hard.

 

 

 

Then... Go... Do... It... 


Main PC: Intel core I7 920, MSI x58 platinum, Radeon4850
PB: tibook G4, ibook G4, ibook g3x2, Lombard, 160, 165, 180, 180c Duo 2300x2, Duo 270c x2, 520cPPC, 3400c, 1400c
Desktop: G3AIO, SE, SE/30, 512k, plus, LCIII, iMac G4, iMac intel, 6400/225

#13 techfury90

techfury90
  • 68000
  • LocationCarrboro, NC, USA

Posted 10 January 2017 - 03:58 AM

Did I not already make the implication that I'm working on it? ;)


Macs: MBP 13" Retina (mid-2015), MBP 13" (mid-2012), PMG4 QS02, Q950, LC; pseudo-Macs: Amiga 1200, Atari Mega ST 4.

Other systems of note: Microsoft Surface 3, IBM System i 520, iSeries 270, DEC MicroVAX 3100-40, Compaq AlphaServer DS20E, HP Integrity rx2600, Burroughs B28, IBM RT PC 6151, and many more...


#14 james_w

james_w
  • 6502
  • LocationLondon, UK

Posted 10 January 2017 - 01:31 PM

This sounds great, and techfury90's approach to me sounds like a very pragmatic one


💾 👉 hypertalking.com 
🖥 
Lisa 2/10, Original 128k (upgraded to 512k), 512k, 512k (upgraded to Plus) x2, SE (FDHD), SE (2 x 800k), SE (800k 20SC) x2, SE/30 x2, Classic x2, Colour Classic (Mystic), IIsi, IIci, LC 450, Centris 650, Quadra 605, Quadra 660AV, Quadra 700 x2, Quadra 950, Cube G4, Portable, Portable (Backlit), PB 100 x2, PB 165, PB 170, Duo 230, Duo 280c, Duo 2300c, PB 2400, PB 1400c, PB G3, PB G4 Titanium, iBook, MP 130, MP 2000 (upgraded), MP 2100, eMate 300 👽 Dynamac EL 1701, Outbound Laptop 125 x2, Outbound Notebook 2000 Passed on to other collectors: Lisa 2/5, SE/30, Portable, PB 180, Duo 280c


#15 techfury90

techfury90
  • 68000
  • LocationCarrboro, NC, USA

Posted 11 January 2017 - 01:04 AM

Inside Macintosh Volume VI is my friend. I found an electronic copy on an old Apple developer CD from 1990. VI is important because the specifications network drivers conform to start on page 32

Macs: MBP 13" Retina (mid-2015), MBP 13" (mid-2012), PMG4 QS02, Q950, LC; pseudo-Macs: Amiga 1200, Atari Mega ST 4.

Other systems of note: Microsoft Surface 3, IBM System i 520, iSeries 270, DEC MicroVAX 3100-40, Compaq AlphaServer DS20E, HP Integrity rx2600, Burroughs B28, IBM RT PC 6151, and many more...


#16 anthon

anthon
  • 6502
  • LocationTwin Cities, MN

Posted 11 January 2017 - 08:01 AM

techfury90, this is great stuff. I wanted to do this, but didn't know how to start or learn how. Sounds like you've figured it out. Looking forward to reading about your progress!

#17 anthon

anthon
  • 6502
  • LocationTwin Cities, MN

Posted 11 January 2017 - 08:04 AM

I actually bought a hardcopy of volume IV a week or two ago because I couldn't find it online. I don't know why I didn't think of checking the developer cds! Duh!

Still waiting for the book to arrive... media mail is slow!

#18 techfury90

techfury90
  • 68000
  • LocationCarrboro, NC, USA

Posted 11 January 2017 - 08:37 PM

I need to get a copy of IV for... reasons. There's some non-Ethernet features in my card that I have not revealed yet and probably won't until things move further along.

 

Right now, I haven't worked out the timeline or anything, but I've got the basic concepts covered- at this point it's a pile of notes on how the thing will work combined with a WIP schematic. Most of the component selection has already been done. Right now, I'm focusing on LC PDS, as that's kind of the lowest common denominator from which the design can be adapted to other slot types like SE PDS, SE/30 PDS, and NuBus. The former two are mainly just a board layout change, NuBus will be the trickier one. I'm also working on a future plan to consolidate LC PDS and NuBus compatibility onto the same board. I think it can be done mechanically with a suitably small card- just put the NuBus connector such that when the card is installed in a LC PDS slot, the NuBus connector hangs off to the right, looking at the front of the machine. 

 

So basically, we're looking at the following left:

  • Finish schematic
  • Lay out prototype board and have it fabricated
  • Experiment/develop with assembly processes (I have most of this already figured out, just haven't put it into motion)
  • Develop device driver
  • ???
  • Profit!

Macs: MBP 13" Retina (mid-2015), MBP 13" (mid-2012), PMG4 QS02, Q950, LC; pseudo-Macs: Amiga 1200, Atari Mega ST 4.

Other systems of note: Microsoft Surface 3, IBM System i 520, iSeries 270, DEC MicroVAX 3100-40, Compaq AlphaServer DS20E, HP Integrity rx2600, Burroughs B28, IBM RT PC 6151, and many more...


#19 IlikeTech

IlikeTech
  • 6502
  • LocationSomewhere very cold and snowy, USA

Posted 12 January 2017 - 11:41 AM

Well, congrats! I would snap one up when you get to SE compatibility.

My Macs: iBook G3, iBook G4, Mac Mini Core Solo, iMac G4, Mac SE.


#20 cb88

cb88
  • 6502

Posted 16 January 2017 - 11:26 PM

Obviously a SCSI based Ethernet card caters to a different problem than built in Ethernet or add-on boards.... and doesn't have the advantage of being able to use a DeclROM driver..

 

That said it is a solution that doesn't require opening your Mac or interfering with other modifications... so there is a case for both (the built in or add-on on board is going to be better/faster most likely... but less flexible in what other mods you add).


68k: 4Mb Platinum Plus , 5Mb SE/30
Sparc: 2x SS2, LX, 2xSS10, SS5@70Mhz, SS20 2x85Mhz,SparcBook 3GX
Sparc64: U10@440Mhz,Blade 100, T2000@1.2 and 32Gb ram
x86: Tyan Thunder 2 ATX, Sager NP6110, Fujitsu P1120/Crusose@800Mhz




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users