• Hello MLAers! We've re-enabled auto-approval for accounts. If you are still waiting on account approval, please check this thread for more information.

MacBottom breakthrough

I have been a little busy lately. 

I think I may have had a breakthrough on the serial SCC based MacBottom. 

I was brainstorming thinking about how to obtain a driver for the MacBottom. That driver is long since gone. Mac128K had figured this out too. But I never gave up. 

Well, I had a hunch. maybe its a chicken in the egg syndrome? Would it be possible the driver of the MacBottom is also on the harddrive itself? Well, why not? 

ding.ding.ding....

I found a guy that would read MFM drives with the beaglebone. Told him the controller, I sent him the drive, and he dumped it into a RAW file for me. It wont mount in anything I have, HFVExplorer wont mount it, nothing mounts it. 

But i digress... 

I opened the file in Hex Workshop, did some skimming through. It appears the original owner used this drive to back up another drive called a "purple 20" with +DiskFit. This diskfit backup is still on the MacBottom. 

Inside the diskfit backup, the Purple 20 stuff was in there. The Purple 20 drive appears to be the boot drive, it has a Utilities Folder, and a System Folder. 

Further down in the hex code, sure enough purple 20 was his boot volume, And you guessed it. MacBottom drivers and utilities.... BAM... i love hunches, and i love when they are right. 

Problem is, How do i extract the information out of this file? the file has a ton of personal information so I dont know if i should post the raw dump. Maybe send it to a member here that thinks they can get the HFS/MFS volume to mount and extract the stuff. 

20141007_090426.jpg

 
To second the "DD" suggestion: I'm guessing the RAW dump probably has several sectors worth of partition tables/driver-specific ID information that's going to mess up trying to simply mount the whole file. Can you determine where the HFS file system actually starts (and possibly ends) and trim the file down to that?

(Glancing at a reference on how HFS filesystems are structured I'd suggest looking at an HFS disk image and getting an idea what the boot blocks at LB positions 0 and 1 look like; those should be followed immediately by the "Master Directory Block". Hopefully those same parts of the filesystem are identical on the MacBottom. The only thing I worry about a *little bit* when you say this is a "RAW" dump is if the dump might include extraneous information between sectors. As I recall the formats for 800k Mac floppies and the HD-20 had a block of, what was it, 20 bytes? of "meta information" tacked on the end of each 512 byte sector. Do you see something like that in your raw file? I believe that's something left over from the Lisa and the Mac never used it, so I'm not sure if that information exists in "disk image" or emulator formats.)

 
Last edited by a moderator:
This drive contains 520 byte sectors. I am going to go ahead and post this file. I will need someone more adept at filesystems than I, that is one of the few things about Macintosh I dont know, and thats filesystems and thier internal structures. 

Maybe dougg3, bbraun, or bigmessowires could chime in on this one. 

I attached the raw dump, and its associated log. there were a few bad sectors. 

mac.zip

here is the dump log

root@beaglebone:~/mfm# ./mfm_read -a --tran /tmp/mac.raw --ext /tmp/mac.ext
Found drive at select 1
Returning to track 0
Drive RPM 3555.2
Header CRC Information:
Polynomial 0x1021 length 16 initial value 0x0
Controller type MacBottom
Sector length 524, Data CRC Information:
Polynomial 0xa00805 length 32 initial value 0x0
Number of heads 4 number of sectors 17 first sector 0
Interleave: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Drive supports buffered seeks (ST412)
Number of cylinders 612, 21.8 MB

Command line to read disk:
--sectors 17,0 --heads 4 --cylinders 612 --header_crc 0x0,0x1021,16,0 
--data_crc  0x0,0xa00805,32,5 --format MacBottom --sector_length 524 --retries
50 --drive 1 --interleave 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
Returning to track 0
ECC Corrections on cylinder 447 head 1: 12(3)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 4(4) and 6(6)
Cyl 554 head 2 Missed sector between 9(9) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 4(4) and 6(6)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 4(4) and 6(6)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 4(4) and 6(6)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Cyl 554 head 2 Missed sector between 9(9) and 12(12)
Cyl 554 head 2 Missed sector between 12(12) and 14(14)
Retries failed cyl 554 head 2
Bad sectors on cylinder 554 head 2: 0 4 6 8 9 10H 11H 12 13 14 15 16
ECC Corrections on cylinder 554 head 2: 5(1)
Retries failed cyl 562 head 2
Bad sectors on cylinder 562 head 2: 14 15
Found cyl 0 to 611, head 0 to 3, sector 0 to 16
Expected 41616 sectors got 41602 good sectors, 2 bad header, 12 bad data
2 sectors corrected with ECC. Max bits in burst corrected 3
Track read time in ms min 28.587458 max 3547.281375 avg 55.713803
 

Attachments

Last edited by a moderator:
So I created a 1MB HFS volume and just threw random files from a Quadra restore CD on it, until it was basically full. Problem is, I really don't know what to look for, 1MB HFS volume turned into a 7MB text file. The beginning and end of the file are all zeroes. \

EDIT: "Code" formatting doesn't work on this theme.

 
Last edited by a moderator:
RE: all those dead sectors: by any chance does the drive mechanism have a sticker on it showing where the bad blocks are located? (That was standard procedure with MFM/RLL drives.) I'm guessing another thing that *might* be on the preamble of the disk is a bad block list that instructs the formatter to skip the bad areas; the question there would be if HFS has a mechanism for marking bad blocks on a filesystem level or if it's up to the driver of the storage device to present all the good blocks as a flawless virtual space. That's something that off the top of my head I have absolutely no idea about. If it's the latter piecing the filesystem back together may involve having to stitch two non-contiguous chunks of sectors together.

... also, what's with the "interleave 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16" statement? Does that mean it's detected the interleave and the sectors are in the correct order, or does it mean "unknown" and the sectors might be in any order?

 
Last edited by a moderator:
Its rumning through all possible interleaves until a match i suppose. I didnt create the software or dump. I sent it off to a guy who did.

 
Last edited by a moderator:
"interleave 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16" means it is formatted with 17 sectors per track, with a 1:1 interleave (sectors numbered in rotational order).

 
GOT IT....

Used HFSExplorer to open it, after removing the first 2 cylanders from the image file, and scrapping the first 12 bytes of ever 532 byte sector. 

now it opens, but i am only getting the data forks of all the files with HFSExplorer. 

Tried HFV explorer, but it wont open. 

 
Try mounting with vMac/BasiliskII?

Can't believe I was right about that 532 byte sector thing.

 
Fixed image:

Nothing stands out as being the driver, however I know its in there. i seen multiple instances of MacBottom in the hex file. So, I think there is a DRVR resource somewhere that needs extracted.

image.zip

 

Attachments

5a5d4ed1625fe_MacBottom20Ad.jpg.2999b852c0e491f8aeacc277fd867d81.jpg


http://www.68kmac.com/Mac128/macbottom.html

 
Got it to mount in basilisk II. Bad thing is, the Finder/System appears corrupt to some degree. Which is bad, because it likely contains the drivers. 

 
Back
Top