Hacker News new | past | comments | ask | show | jobs | submit login

That was to make the disk writable.

There was a copy protection on the Atari computers that was actually super simple. Having hacked on some games on the Apple, I decided to give the Atari machines a go, and those did a very interesting thing when loading software, and that thing was to make sound. One beep sound per sector!

Ultima II was protected using the "bad sector" method. Basically, the commercial disk was mastered in such a way that a sector, or group of them, would fail to read properly. Users could not make these disks easily, and that was the protection.

I was about to start disassembling the program and decided to try something:

Booting the official disk highlighted a bad read some number of reads in. You could hear it. Beep, beep, beep, bfzfzfzfzf [pause], beep, beep, beep...

My solution was to just open the disk drive door at the right time. Count the beeps, open door, let errors happen close door, play game.

I never did begin to disassemble that game on Atari machines. :D




Ha, I remember that.

The more-clever Atari copy protection involved the publishers using a customized drive to write two consecutive sectors with the same sector number. The loading program would request that sector twice in succession, so as the drive head finished reading the first one it would immediately read the second... which had different contents.

If you simply duplicated the disk, the drive would not read the sector twice and you'd be missing critical data.

There was a chip you could install in your Atari drive called the Happy Enhancement to defeat this.


I added this one to my 810. Screwed it up when I did it myself (note: 1st time ever soldering should not be done on your one and only disk drive) and got the folks at Happy to fix my botched job. The chip was really interesting: it basically gave extremely low level access to the drive to copy protected disks, but it was also leverged by their "Warp" disk operating system which was both faster than the Atari system and also was able to read wonky disks that the regular drives hiccuped on.


I respect the effort!

I still have my 800, Trak drive, and Commodore 1702. Mint condish. The 1702 needs to be re-capped, though, for sure. Last time I tried it, the shape of the picture was wonky.


> My solution was to just open the disk drive door at the right time. Count the beeps, open door, let errors happen close door, play game.

I found a "funny" like that with an Ensoniq Mirage that had been fitted with a PC floppy drive. "Modern" PC floppy drives use a /DISKCHANGE pin that goes low when a disk is in and "chucked" on the motor spindle but the head hasn't moved off the end stop. As soon as the head moves, /DISKCHANGE goes high. "Old fashioned" Shugart drives use the same pin for /READY, which is low when there's a disk in the drive and the motor is at speed.

The Mirage software checks for /READY at the start of any disk read or write, but once it's running it doesn't bother. It just keeps going until every sector is read, whether the disk is ready or not. If you pop the disk out halfway through a read, eventually it'll fail because it can't find the sector, not because the disk is no longer ready. If you use a PC floppy, it'll start to read the first time you put a disk in, but any subsequent ones will fail because the head has moved so /READY is no longer low.

So what was happening was it would boot, <CLUNK TUNK TUNK TUNK TUNK TUNK TUNK TUNK TUNK TUNK TUNK> as it zeroed the head and read in ten tracks, then sit there flashing ".n.d" meaning "No Disk" when it tried to load the first sample, because it loads the OS, does some internal tasks, then loads a sample off the disk. The head has moved, the disk is no longer ready, it thinks you've got no disk in. Worse, because the software expects a bunch of things to be loaded into RAM, pressing more or less anything except "LOAD" will crash it as it reads garbage where it should read jump tables.

So, for quite a while now, I let it load the OS, then in the half a second it's clearing RAM and tuning the filters, I hit the eject button and pop the disk back in. One day I'll either get the right drive, make an adaptor for the drive, or patch the OS to solve the problem ;-)


That's a good one!

Operator addendum: plz eject disk and quickly insert again...

I have an old laptop with some dev tools on it that also runs XP. I use it lightly and it has a bad fan.

Set to entirely passive cooling?

Nope. BIOS wants to see the fan spin, so...

Sitting near that laptop is one of those computer air cans. At power on, wait about a second, shoot fan with air, BIOS sees spin, system check passes and just don't run the machine past passive cooling limits.


Most copy programs would ignore those bad sectors and so they wouldn't be on the copies. But you could actually use a sector editor to write the bad sectors to copied disk and that was usually enough to make them work.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: