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

MacBottom breakthrough

techknight

Well-known member
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

 

Gorgonops

Moderator
Staff member
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:

techknight

Well-known member
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

  • mac.zip
    9.8 MB · Views: 23
Last edited by a moderator:

markyb86

Well-known member
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:

Gorgonops

Moderator
Staff member
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:

techknight

Well-known member
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:

bear

Well-known member
"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).

 

techknight

Well-known member
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. 

 

Gorgonops

Moderator
Staff member
Try mounting with vMac/BasiliskII?

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

 

techknight

Well-known member
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

  • image.zip
    9.6 MB · Views: 20

uniserver

Well-known member
5a5d4ed1625fe_MacBottom20Ad.jpg.2999b852c0e491f8aeacc277fd867d81.jpg


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

 

techknight

Well-known member
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. 

 
Top