PC Historian Finds Puzzling Game Diskette Image 232
This past weekend, Trixter — a self-proclaimed IBM PC historian — picked up some old software for his archive. What he didn't count on was a couple of additional Avantage titles that had never been released into the wild. If this weren't enough of a find, one of these titles provided Trixter with an interesting puzzle: the diskette for Mental Blocks is apparently hand-formatted to work on both C64 and IBM (on a single side, not the "flippy disks" of old). Quite an interesting little piece of history.
Not really that hard... (Score:5, Informative)
(wow...my first slashdot post in like 5+ years...something I actually can know stuff about! LOL)
I wanted to email Trixter this but couldn't find a contact email.
It's been now about 25 years but I still have parts of the C64 ROM's memorized. There was a time that I knew pretty much what every byte in the 64k(*) of memory was for cold without needing a reference manual. Having said that:
This wouldn't have been all that hard to do by somebody who had intimiate knowledge of *both* IBM and C64 formats I'd imagine. First, I doubt it was done 'by hand' as in a manual sector by sector copy. A program would have been written, using a slave-master 2 drive config, to stream from the source drive to the dest. drive using a list ot sectors/tracks and/or using a simple formula to calc where the tracks should go. You simply would pick areas on the C64 side that you would want reserved for the IBM side and vica versa. Knowing both IBM and C64 MFM structures would allow you to pick "safe" areas for both formats.
Oh, and the directory structure of the C64 did indeed live on track 18. All the other data blocks where chained out as a linked list from the entry in this track.
All that would have been really needed is:
#1) Format the disk for IBM and use whatever areas you need via a streamed block by block copy from Src to Dst.
#2) Noting which tracks are "safe" to use on the C64, simply write a program to format track by track and write the C64 data, streaming again.
Ingenious, but really not that hard at all...
(*) Well, more like ~80k with the shadow RAM near the top of the 64k range...
Ted
ST/Amiga Format (Score:5, Informative)
The short-lived, dual-format ST/Amiga Format [wikipedia.org] magazine from the late 1980s also had an appropriately dual-format cover-disk - somehow combining the apparently wildly-incompatible ST and Amiga floppy disk formats.
I've no idea how it was done (although the fact that many STs had single-sided floppy drives may have had something to do with it) - and while it could have been extremely useful to publish games in such a manner at the time, I don't know that was ever done either.
I get the impression that there was a lot of deep magic involved in these enhanced disk formats, copy protection systems and so on. I'm sure the name Rob Northen [reversers.net] appeared on the front of a later ST Format cover disk - as the supplier of the fancy files-limited-to-particular-sides-of-disk format used to not deprive single-sided drive owners the contents of the entire double-sided disk...
Probably the coolest thing ever! (Score:5, Informative)
This is a cool hack. From what it looks like, this is possible because DOS put the boot sector and the root directory in the beginning of the disk, whereas the C64 made the sane choice of putting it in the middle (think about it, this minimizes seek times). Now the directory (or, more precisely, the File Allocation Table (=FAT)) contains information on so-called bad blocks, i.e. blocks that the OS shouldn't write to because they were known to be bad. If you label the blocks that you put the C64 data into as bad blocks, then DOS is not going to overwrite the C64 data. Now you do the same in the C64 FS and bang -- double OS format created. And it's read/write!
I wonder if someone managed to format a disk such that one was also able to share the data space between the different OSs?
Re:Not really that hard... (Score:4, Informative)
I thought C64 floppy drives were notoriously hard to emulate because the drive was programmable and the disc often contained a program made to read its own content?
In which case you could pretty much do what you wanted, loader-program location excepted.
Re:Not really that hard... (Score:5, Informative)
Poor choice of words, since the C64 (well, the 1541) didn't even use MFM. ;-)
These aren't just two different filesystems; we're talking about two different encoding schemes used on the same medium, on a track-by-track basis.
Not hard? Ok, fine, once you've thought of it, you can do it. Weird and a historical curiosity? You betcha!!
Re:Not really that hard... (Score:3, Informative)
Nit: The 1541's directory structure lived on track 18, not the C64's.
Track 18 was chosen because it was in the middle. That was the typical way Commodore did it back in the day -- So 4040s, 2031s, 1540s and 1541s had track 18 directories, but 8050s, 8250s, and SFD-1001s had them on track 40.
No idea where the harddrive dirs were, I couldn't afford one.
Re:Not really that hard... (Score:5, Informative)
Oops- forgot to add, of course if you didn't do copy-protection at the disk level (as I'm guessing the case is here, hard enough to make it dual format!), this wasn't an issue. You just interwove the data so neither side (C64/IBM) really knew about the other, or cared really. If it wasn't linked via an entry in track 18 the C64/1541 had no business "looking" at a track/block). Not sure what the deal was on the IBM side but I'd guess simular.
Ted
Atari 800/C64 disks (Score:3, Informative)
If memory serves me right, the disks you're thinking of were from Mastertronic or possibly Epyx (specifically, World Championship Karate, the only game by Epyx I had on floppy). There's a chance that it could have been one of Datasoft's games as well.
Re:Hybrid disks - not a novel idea after all! (Score:3, Informative)
See my response above -- "Mac/PC" hybrid disks actually use two different filesystems. Macintosh CDs use the HFS/HFS+ filesystem. People took advantage of this to make dual-filesystem hybrid disks. (On the other hand, having two partitions with different filesystems on one disk was old hat by the time data CDs were around.)
Starglider 2 (Score:3, Informative)
This game used a custom hybrid format so the same game disk worked on both ATARI ST and AMIGA.
http://en.wikipedia.org/wiki/Starglider_2 [wikipedia.org]
Re:ST/Amiga Format (Score:4, Informative)
To be pedantic, the Amiga had a very flexible diskette drive controller. The drives themselves were essentially the same as drives used in PC clones, aside from having a diskette presence detect switch which was generally omitted in PC drives. As I recall, PC drives (even 5-1/4" ones) could be plugged into the Amiga and used, but the computer wouldn't automatically notice diskette insertions because of the missing switch. The Amiga used odd-ball 23-pin D-sub connectors for the disk drive, but they could be made out of DB-25 connectors with a Dremel tool.
The Amiga stored 880K (IIRC) on a 720K disk because it simply crammed more sectors on each track. The PC's controller would write a sector at a time, so its disk format required gaps between the sectors to allow it to write a sector without stomping on either of the adjacent sectors. The Amiga's diskette drive controller could write an entire track in one pass, so the Amiga format could dispense with both large inter-sector gaps and sector interleaving. The Amiga could also read and write PC disks (with appropriate software that bypassed the regular filesystem code), by simply programming the diskette controller to put fewer sectors on each track and place them farther apart.
Some folks liked to use nonstandard formats which crammed even more data on the diskette by using more than 80 tracks. Many diskette drives of the day were capable of stepping the head out beyond track 80, but how many tracks would vary from drive to drive. Thus, these nonstandard diskette formats weren't as portable as the normally-formatted ones, since hacker A might be able to write one or two more tracks on their diskette drive than hacker B's drive could handle.
Now, I think that the Macintosh drives of that era were physically different somehow, but I don't remember the details. I vaguely recall that there was a product that allowed the Amiga to emulate a Macintosh, and it had some sort of electronic doohickey that installed between the computer and the diskette drive to let the Amiga read/write Macintosh diskettes. Or maybe it required a completely different diskette drive... my memory is fuzzy.
This conversation does bring back memories, though! I remember having a flaky diskette drive and being too poor to either replace it or have it fixed by a pro, so I had to do a ham-fisted re-alignment by loosening the stepper motor and turning it by hand until it read some random disk semi-reliably! Hmm, I think I even did that in the snake-infested snow, uphill in both directions. :-)
This is nothing new (Score:4, Informative)
When I had my Amiga 1000 we had software that could do an Amiga, Macintosh, and MS-DOS format on the same floppy disk. You took like 100K to 200K parts of the disk and made a mini-format for each standard.
There used to be software that made mini-standards and it was affordable for game companies to use the same floppy disk with two or more versions of their game on two different partitions of a floppy disk.
For example one was a MFM format for the PC and the other was a GCR format for the C64.
That was old school hacking, before "War Games" and people trying to crack computers and security and writing viruses. It is more of a computer hobbyist style of tweaking a computer that we computer geeks liked to use back in those days when being a "hacker" meant you wrote useful code that nobody else could to do impossible things like one floppy disk that supports two different formats at the same time. Back in the old days when programmers used machine code and assembly language and BASIC interpreters with peek and poke statements. Long before the GUI revolution and long before script-kiddies called themselves the new hackers, and are really crackers and not hackers at all.
Re:Hybrid disks - not a novel idea after all! (Score:5, Informative)
It's also shockingly cool because my understanding of C64 vs. IBM formatting indicates that the read/write method is entirely different between the two, making it physically impossible for one machine to run emulation to extract info from a drive of the other.
The trick is that, if you limit each OS to half of the disk, you can do this. Each OS only uses its half and doesn't try to read or understand the other's.
IBM-standard floppies put the master directory information on the first tracks on the disk. Commodore floppies put this information on track 18 of 35, halfway in. (Fun note: you could actually run out of directory space if you put a bunch of small files on the disk and filled up track 18. There were utilities that would extend the directory links to track 19 in this case.)
So tracks 1-17 were the IBM part, and 18-35 were the C-64 part. No shared data. I think Commodore floppies only stored 110 K of data.
Re:Hybrid disks - not a novel idea after all! (Score:4, Informative)
to install W95, you needed about 60MB worth of CAB files. The rest of the stuff on the disc could safely be ignored. W98 and 98SE were 95MB. ME was 130. NT4 was 55MB. W2K was 120 or so.
I had (and still have) a CD that I made, which included W95 OSR2, W95 OSR2 French, W98SE, W98SE French, and NT4 English/French install discs, all on a single 650MB disc. And I'll go one better: because of options that were available in the install ini files, they were all headless installs, and didn't need me to choose any options or enter a product key. :)
Re:Not really that hard... (Score:2, Informative)
My inital post wasn't really specific enough in it's terminolgy. It was almost painful to bang out as I was dealing with some pretty old memories! :p
When I said "side" I should have really said something like "from the view of the (C64/IBM)". I wasn't really talking about sides of the disk, but the 'view' you take when working on one system or the other.
For the actual physical layout, it looks like one side of the floppy itself was used in it's entirity for the IBM data. The other side of the floppy had interwoven C64 and IBM data. On the hybrid side the 'free block table' (there is an "proper" name for this I cannot remember) was filled so all sectors were marked as in-use, the file marked as no-delete, etc was done.
Also - the disks themselves had those little notches that had to be present (physical write-protection) else you couldn't modify the contents at all anyway. This was probably the case for this diskette (or would have been if it went into production).
Ted
Re:Hybrid disks - not a novel idea after all! (Score:4, Informative)
The Commodore 1541 floppy drive stored 170K
Re:Hybrid disks - not a novel idea after all! (Score:3, Informative)
It wasn't so much that the formats were different as it was the controllers. The catweasel can write to both formats using a standard 1.2mb 5.25" PC floppy drive.
Re:Hybrid disks - not a novel idea after all! (Score:3, Informative)
to install W95, you needed about 60MB worth of CAB files.
No, I have Win95 on 13 floppy disks = 18.72MB.
Re:Hybrid disks - not a novel idea after all! (Score:4, Informative)
4) Pop disk into PC drive, and either use a custom utility, or just use the FORMAT command specifying that only tracks out to 17 be formatted (FORMAT A: /T:17 /N:9). This allows BOTH sides of the disk to be formatted up to track 17, giving you about 180K to play with.
Right, except that, if you actually read the post, you'd know that what I found was that every even track != 0 was C64 and every odd track *and* the entire second side was IBM.
I mean, come on, I posted a FAT dump as a screenshot. So no, it wasn't truly that easy (even though our definition of "easy" is a lot different than most people's). It required a little more planning, and manual patching of *both* filesystems.
Re:Hybrid disks - not a novel idea after all! (Score:3, Informative)
I think Commodore floppies only stored 110 K of data.
They stored 160 KB per side of a 5-1/4" disk. These were accessed by the 1541 and 1571 drives.
The 1581 drives stored 800 KB per 3-1/2" disk. You could even partition the disk as I recall!
*sigh* those were the days...