lroathe
-
Content Count
3 -
Joined
-
Last visited
Blog Comments posted by lroathe
-
-
Locksmith 5.0 is the set of routines that can read and write entire tracks at 1:1 interleave. The encode/decode is done during the 32 cycle read/write loops instead of just wasting time with pha/pla etc. Back in the day, I disassembled and commented the routines but I've since lost that. I had it in mind to find the code again and disassemble it again and publish it because it's genius seems largely forgotten.Just as an aside, the code to read the disk & decode the nibbles at 1:1 was extremely complicated...not nearly as simple as that statement makes it seem. It was difficult enough to get a full track read and decoded at 2:1 in DUP. I tried to follow all the way through their code and never did get a 100% understanding of what they were doing ... of course by then I was moving on from writting 5 1/4" drive routines so I didn't give understanding it a full effort

-
I found "The Copy Protector's Notebook by Bruce Jones & Lane Roathe" which seems to be very detailed. Not the easiest read though.
If you have any questions, just ask. It's been a while, but I can probably answer some questions


more Apple ][ musings
in EricBall's Tech Projects
A blog by EricBall
Posted
Actually not quite true in practice, since many of the later copy protection schemes used custom hardware to write the data. For instance some EA games were protected by having a write head that was larger than normal (from 2x to 1.5x depending on the title) and which could not be written by a standard Disk ][. With a lot of trial and error, and knowing in advance what was required, one could "fake" the writes to a degree that the checking code would accept (but the data on the copied disk would still not actually match the original disk).
Similar uses had two drive heads, either in sync or out of sync (ie, one head 3/4 track away and 1/2 track behind). Another scheme that may or may not have used custom hardware was "perfect tracks" where the data on the disk was written in such a way that the last bit of a track completed writting just before the first bit of the track. It was possible to re-write the data, but it took special code and typically dozens to hundreds of writes to recreate.