Jump to content
Mac128

MacSCSI by John Bass AT LAST!

Recommended Posts

When I got my first Mac Plus I had no external floppy or harddisk, but I did have a PC and a copy of Lightspeed C3.0

 

Back then I wrote two storage drivers...

 

1. a serial floppy, using the serial driver I wrote a storage driver that would talk RS232 to the PC. The PC ran a server program that let the mac read, format and write to the IBM PC's floppy. So presumably I was the only person using Mac formatted 720k 5.25" floppies.

 

2. a RAM disk, the mac plus had 4Mb so I allocated a meg to the RAM disk to put the C compiler. When I started the machine, the first thing I did was copied the C compiler to the RAM disk. I'm sure there were other RAM disk programs available but this was long before the internet took hold.

 

From memory the storage driver only had to support synchronous operation, not async, which was a real blessing.

 

Regarding original Mac expansion, that's what the Zilog SCC was for! :)

Share this post


Link to post
Share on other sites
"Butchering"? Are you referring to this project of adding a SCSI adapter board to a 128K?

People are welcome to do what they like with their own property...

Sorry, but I had a similar reaction as Mac128 when I interpreted the post as gutting one Mac for parts use in another -- especially if the Mac you gut is in good working condition (or could easily be fixed to make it in working condition). As to the comment about people being "welcome to do what they like with their own property," I would ask you if it is okay to beat your dog to death even though he is owned by you. Your response would of course be "no, but a Mac is not a living creature." Even so, some of us here are so attached to our Macs that we treat them as such. Hence, you will often get a response from us that resembles how we might react to news of a dog-beating.

 

With that said, I am intrigued by this thread, if actually it leads to some specifics on what we must do to get a SCSI drive (or processor direct disk -- like the HyperDrive) to work on a Mac 128k or 512k with the original 64k ROMs. But in the end, we might have to recruit Andy Hertzfeld on this project before anything usable materializes. (Andy is a geek, but perhaps not geeky enough to do something like this. But personally, had I a similar experience and if I had spare time now, I would find it fun and interesting to work on a challenging project for a device I played an integral role in building some 25 years before.)

Share this post


Link to post
Share on other sites
The differences between the EP320PC2 and the 74LS10 escape me and the internet was not much help

 

Did you try octopart.com?

Share this post


Link to post
Share on other sites
Back then I wrote two storage drivers...

 

1. a serial floppy, using the serial driver I wrote a storage driver that would talk RS232 to the PC.

 

Did you indeed? }:) Lately, I've been pondering the serial port as a place to hang flash drives. I recall seeing RS-232 card readers long ago, in the early days of digital photography. Any thoughts?

Share this post


Link to post
Share on other sites
Lately, I've been pondering the serial port as a place to hang flash drives. ... Any thoughts?

 

I've thought the slickest way would be to have a microcontroller do LocalTalk and appear to the Mac as an appleshare server. Then the flash drive can stay as FAT32/FAT16 and the Mac is none the wiser.

Share this post


Link to post
Share on other sites

Indeed it would, but somehow I suspect emulating a full Appleshare file server on an affordable microcontroller would be non-trivial.

 

And why bother with FAT16/32? Assuming one were using CF, they present as ATA devices and ...

The cards themselves can of course be formatted with any type of file system such as JFS and can be divided into partitions as long as the host device can read them.

http://en.wikipedia.org/wiki/Compact_Flash#Filesystems

Share this post


Link to post
Share on other sites

Returning slightly to topic*

the Bass project / use it as a base point.
it seems to me we are closer than ever
if someone does decide to program up a new driver / 53C96 SCSI chips / It's getting the software drivers written and figured out that's tough.
the most difficult part is still going to be to adapt this driver

So as I understand it:

 

Given that the discovery of this listing (three cheers, Mac128!) does indeed get us "closer than ever", and requires only reading and writing to two addresses, and that at least some adaption of Bass's source code will be necessary to allow for modern drives and modern parts; is it at all conceivable that it could be adapted to:

 

  • faster SCSI chips (such as this one)
  • IDE/ATAPI controllers
  • 8-bit ISA cards, (and thence IDE, NICs, etc) as has been demonstrated on PIC and AVR micros
  • embedded USB host controllers such as the £8.25 Vinculum and its various ready-rolled versions

while still appearing to the System/Finder as a known object?

 

DOVE MacSnap SCSI adapter / looks exactly like the John Bass schematics, though with a few more resisters and capacitors as well as terminators
Scans?
uses the same 5380 SCSI chip / requires 128K ROMs, which suggests that it relies on the SCSI software and drivers within the ROMs /. the Dove board might work perfectly well with the 64K ROMs as long as the drivers and formatting software are present in the System file.

Conversely, is extracting the routines from the 128k ROM and inserting them in the startup System an option?

 

*(I know that my imagination runs ahead of my knowledge at times. I am trying to be constructive here, I swear :b&w: Feel free to run with any of these thoughts, shoot them down, or ignore them)

Share this post


Link to post
Share on other sites
DOVE MacSnap SCSI adapter / looks exactly like the John Bass schematics, though with a few more resisters and capacitors as well as terminators
Scans?

Charlieman has some good shots of them on his site: http://www.vintagemacworld.com/macsnap.html

is extracting the routines from the 128k ROM and inserting them in the startup System an option?

I've been ruminating on that very issue. I think the problem is that even if it were possible to extract the SCSI resources and properly insert them into an earlier system, the 128K ROM has a startup routine that tells the Mac to look for the SCSI devices on the chain. Even if these drivers were in the System, they would load after startup, so that routine would not work to load the HD, and would still require some kind of drive mounting routine added to the FInder. I'm sure there's more to it than that, but it's worth a look I suppose.

Share this post


Link to post
Share on other sites

Sure, I realise that that would still not result in a bootable HD - but that's the case with any HD on a pre-Plus Mac, correct?

Share this post


Link to post
Share on other sites
Sure, I realise that that would still not result in a bootable HD - but that's the case with any HD on a pre-Plus Mac, correct?

Yes, my point being that the routine in the 128K ROM should only be applicable at startup and therefore some kind of mounting software would have to be written to load a drive after the fact, even if it's possible to use the 128K code wholesale.

I see discussion of such is proceeding at the parallel 'fritter thread.

Yes, I've duplicate posted all around the web ... I have no idea who is lurking where, but the 'fritter site got some prompt attention to the technical side of the project ...

Share this post


Link to post
Share on other sites
Sure, I realise that that would still not result in a bootable HD - but that's the case with any HD on a pre-Plus Mac, correct?

Yes, my point being that the routine in the 128K ROM should only be applicable at startup and therefore some kind of mounting software would have to be written to load a drive after the fact, even if it's possible to use the 128K code wholesale.

 

Apparently there's some kind of hook in the original Mac's/Mac Plus ROMs one can use to get your code loaded at boot time. Of course, the code has to be sitting in an eeprom (or similar) at the proper address for this to work, but if you're plugging stuff into the ROM sockets anyway, this shouldn't be a problem. The problem is resurrecting that ancient bit of Mac hacker/programmer knowledge enough to know the specifics.

 

I ran into a guy at the Goodwill Computer Store years ago who programmed some of those old Mac products and we talked about it at length. From memory, there's some point where the Mac jumps the program counter to a high address in the ROM (I'm a little vague here) and then jumps right back or something like that. At that point, you can insert a chip at the proper address to intercept the execution. I think that's what he told me. I got his card. Perhaps I should email him and see if he wants to resurrect some old memories.

Share this post


Link to post
Share on other sites

Apparently there's some kind of hook in the original Mac's/Mac Plus ROMs one can use to get your code loaded at boot time. Of course, the code has to be sitting in an eeprom (or similar) at the proper address for this to work, but if you're plugging stuff into the ROM sockets anyway, this shouldn't be a problem.

I have no problem believing that as the ROMs were the only socketed chips on the motherboard to allow this, combined with the fact that engineers already snuck in a way to expand the RAM against Job's wishes. I'm sure Jobs even resisted a socketed ROM. Wanna bet the argument about potential bugs was made merely to allow the socket? While it was easy to spot a suspicious change to the hardware, spotting a "hook" in the ROM code would have been much harder for Jobs. This is likely how some of the CPU & RAM expansion boards work which have EPROMs that override the motherboard ROMs on bootup.

Share this post


Link to post
Share on other sites

The SCSI board is simple, and if you happen across a Micah internal SCSI hard drive kit which existed for both the Mac Plus and the Mac 128 / 512, you'll have essentially the Bass SCSI port. Micah's SCSI adapter added 2 ROM sockets so the DRVR could be present at boot, and a 64K ROM Mac could boot from its hard disk. Find a Fat Mac with a Micah Drive and you've got your ROM driver.

 

That said, if the criterion is non-destructive, build a Bass style SCSI card, plug it into the ROM sockets, and plug in a pair of Plus ROMs. That'll give you the code you need to access the SCSI port, and nothing needs to be soldered or otherwise messed with on your pristine 128K motherboard. The biggest hassle is feeding a SCSI ribbon cable out thru the battery compartment door, the floppy opening, or the security slot. If you're gonna do an internal drive, you're going to have to do some real hacking & drilling, add a power supply and a fan, so figure an external SCSI drive.

 

You can unplug everything and go back to bone stock. If the criterion is keeping the Mac 100% "original", then the whole idea of an internal SCSI / flash / HD / whatever is out, right? If your criterion of "original" is 64K ROMs, then you've got to persuade someone who knows 68K assembler and the 64K ROMs inside out to spend 3 man-months to write a driver for you, and that ain't gonna happen. It seems to me some are arguing that they want to turn an original 128K Mac into a Mac Plus but keep it original without turning it into a Plus. :?:

 

A 128K is so very limited by the tiny bit of RAM, it doesn't work very well with a hard disk. If you have an "Original 128K", then leave it alone. Admire it. Think how it's appreciating in value. Show it off to your friends. Just don't expect to do much more than draw pictures with MacPaint and write short documents with MacWrite.

Share this post


Link to post
Share on other sites
It seems to me some are arguing that they want to turn an original 128K Mac into a Mac Plus but keep it original without turning it into a Plus. :?:=

I do have a stock 128k logic board myself with the original 64k ROMs, but I prefer to use a 512k logic board instead, since it too has the 64k ROMs plus enough RAM to be quite usable. I simply would like to have the best of both worlds. If there existed a driver for the 64k ROMs, then I perhaps I could track down a SCSI SSD which would eliminate the need for an internal fan and perhaps would be low power enough to not even warrant a secondary PSU.

 

If a 64k ROM compatible SCSI driver really is impractical to create, then it would be nice to have the means to switch between the 128k and 64k ROMs (via mechanical flip switch on the back). Yes, I know I could accomplish the same tasks I desire simply by having a Mac Plus sitting next to my Mac 512k, and I could just use the Plus when I needed SCSI access. But having a single machine that could do both would be better. It would take up less desk space. But most of all it simply would be impressive a single machine that could do that. It would still be "original" in a major way, plus it would have features that only a 512ke, Plus or higher have -- SCSI access.

 

As to that 3 months of hard coding work, I wouldn't necessarily rule that out. For truly, if I had experience with 68k assembler programming and if I were retired, I can tell you for a fact that would be on my list of fun projects to tackle. Not sure if I am alone in thinking that way, but I do know there are some on this list far older than myself who might be willing to give it a try, perhaps some day. Some may consider such a "waste of time." But then again, some people may consider our posting on a vintage computing site to also be a waste of time. Let's face it, we're sort of geeky. And this is one of those geeky, but not completely impossible, projects to dream about. It keeps the vintage computing enthusiasm alive and kicking.

Share this post


Link to post
Share on other sites
If a 64k ROM compatible SCSI driver really is impractical to create, then it would be nice to have the means to switch between the 128k and 64k ROMs (via mechanical flip switch on the back).

That's do-able, too. Put two sets of ROM sockets on your SCSI adapter with a switch. A SCSI ROM isn't impossible, it's just a lot of work for a problem that's already been solved. Micah's ROMs were written by Steve Brecher, a real Mac Guru, and he spent six months refining and debugging them. I suppose I am missing something, but I don't see the allure of the 64K ROM. The 128K ROMs contain the same code and toolbox as the original with bug fixes, and also support HFS, SCSI, and the rudiments of AppleTalk, among other things, *and* they were written by the genuine Mac team. If you enjoy writing drivers, a SCSI driver for the original Mac is a fine way to spend your summer. I promise you'll learn a lot! :)

 

Has anyone else seen a Micah drive? It appears they are much more rare than HyperDrives. IMHO, they were a more elegant solution, since they didn't require a CPU clip, drilling holes in the chassis, pop rivets, etc.

Share this post


Link to post
Share on other sites
Put two sets of ROM sockets on your SCSI adapter with a switch.

Ah, it sounds so simple, but what exactly do you switch? I brought this up in another thread and it was suggested the ROMs could be stacked and the switch would toggle between a single pin that enabled the ROMs.

 

As that article suggests, I'd also like to switch between 128K & 512K as well. So one Mac would basically be a 128K, 512K, 512Ke and 512K-Plus in one box.

Has anyone else seen a Micah drive?

No but now that you've clued me onto it, I will keep my eyes peeled. But isn't the driver only for the Micah drive? It wouldn't work on any other SCSI drive, right?

Share this post


Link to post
Share on other sites

The switch goes to the chip enable pins. I don't remember the pin number off hand, but if you're building a Bass adapter, it should be noted on the diagram. Micah's ROM should work with most early SCSI drives and a Bass-style adapter. The Micah HD used a SMS 3100 SCSI-to-MFM controller card and any of the 20 MB MFM drives of the day, NEC being the most reliable of the lot.

Share this post


Link to post
Share on other sites
Apparently there's some kind of hook in the original Mac's/Mac Plus ROMs

 

I ran into a guy at the Goodwill Computer Store years ago who programmed some of those old Mac products and we talked about it at length.

 

BTW, the guy I ran into at Goodwill all those years ago was H3NRY. :-) I'm glad he's here now.

Share this post


Link to post
Share on other sites
On 4/26/2009 at 4:33 AM, Mac128 said:

After a long journey, I've finally located the fabled Dr. Dobb's articles written by John Bass detailing his SCSI solution for the original Macintosh 128K & 512K utilizing the original 64K ROM. I have published the PDF file at this link (Beware it is a 6MB file).

Anyone got the file above ? The link is just a frameset with the PDF on one frame, and the PDF itself is not found (Error 404)

Share this post


Link to post
Share on other sites
On 5/20/2020 at 7:32 AM, demik said:

Anyone got the file above ? The link is just a frameset with the PDF on one frame, and the PDF itself is not found (Error 404)

I don't know if there ever was a file.  If there was, I was stupid for not having downloaded it back in 2009 when this thread was started.  I spent a lot of time Googling for it recently but came up with nothing.  Hopefully someone can provide it.  I hate it when useful information resources like this are lost forever.

Share this post


Link to post
Share on other sites
8 hours ago, sfiera said:

Nice find!

 

After reviewing that article, I took note that John Bass says his software really only handles drives up to 5MB, suggesting additional software to partition the drive if you go beyond 5MB to keep the sheer number of files from bogging down the system.

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

×