Jump to content
IlikeTech

Mac SE/SE/30 Ethernet Card Recreation

Recommended Posts

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

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites

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/project/18974-tiny-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

Share this post


Link to post
Share on other sites

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. 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Have you even looked at the relevant documentation?

 

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

Share this post


Link to post
Share on other sites

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?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

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!

Share this post


Link to post
Share on other sites

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).

Share this post


Link to post
Share on other sites

If you can Ethernet a C64 you can make one for the SE, you just need to make a driver for a ready made Ethernet board.

 

In this day and age SCSI to WIFI would be a better alternative to Ethernet.

Share this post


Link to post
Share on other sites

Cool thing about a SCSI to WiFi adapter would be for the early powerbooks. 

 

Imagine an all-in-one storage/WiFi solution for the powerbook considering the early ones never had an expansion bus other than the Duo. 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×