Bit nibbler
Low-level software that copies floppy disks bit by bit.
A bit nibbler is a type of software that copies data from a floppy disk one bit at a time. It operates at a very low level, directly controlling the disk drive hardware to bypass any copy protection on the disk. Although it works bit by bit, the software usually analyzes data at the byte level, only examining individual bits when handling synchronization marks, zero-gaps, and sector or track headers. When possible, nibblers work with the disk’s native low-level encoding, such as Group Coded Recording (used by Apple and Commodore), Frequency Modulation (Atari), or Modified Frequency Modulation (Amiga, Atari, IBM PC).
Software piracy became a concern once floppy disks were common. The ease of copying varied by system; in 1983, Jerry Pournelle noted that CP/M was hard to protect, so its users were less worried, while Apple, TRS-DOS, and MS-DOS users faced more issues. Apple and Commodore 64 copy protection was especially creative because most disk reading and writing was controlled by software or firmware, not hardware. Pournelle disliked copy protection and refused to review protected software except for games. He argued that every protection scheme had a hacker ready to break it, often using so-called nybble copiers that analyzed the original disk to make a copy.
The first nibble copier, Locksmith, appeared for the Apple II around 1980. It copied entire tracks at once, ignoring sector markings. This was tricky for two reasons. First, Apple disks lacked an index hole to mark track starts; drives couldn’t detect it. Tracks could begin anywhere, but the copy had to preserve the “write splice” where bits were lost or duplicated due to speed variations, roughly in the same unused area as the original. Second, Apple used special “self-sync” bytes to keep the drive controller and computer in sync. These bytes were normal data followed by a slightly longer pause, which was hard to detect reliably on read-back. Getting the self-sync bytes in the right places was essential; too many would make the track too long to fit on the destination disk.
Locksmith exploited the fact that Apple’s sync fields between sectors were usually long strings of FF (hex) bytes. It found the longest such string, typically between the last and first sectors on a track, and started writing there.
- First nibble copier
- Locksmith, introduced for the Apple II by 1980
- Copies sold (locksmith, mid-1982)
- more than 15,000
- Copy time (commodore 64, direct drive)
- approximately 60 seconds
- Copy time (commodore 64, single drive)
- 3 minutes plus several disk swaps
Lore & Background
Software piracy began to be a concern when floppy disks became the common storage media. Jerry Pournelle wrote in BYTE in 1983 that 'CP/M doesn't lend itself to copy protection' so its users 'haven't been too worried' about it, while 'Apple users, though, have always had the problem. So have those who used TRS-DOS, and I understand that MS-DOS has copy protection features'. Apple and Commodore 64 copy protection schemes were extremely varied and creative because most of the floppy disk reading and writing was controlled by software (or firmware), not by hardware. Pournelle disliked copy protection and, except for games, refused to review software that used it. He did not believe that it was useful, writing 'For every copy protection scheme there's a hacker ready to defeat it. Most involve so-called nybble copiers, which try to analyze the original disk and then make a copy'.
By 1980, the first 'nibble' copier, Locksmith, was introduced for the Apple II. These copiers reproduced copy protected floppy disks an entire track at a time, ignoring how the sectors were marked. This was harder to do than it sounds for two reasons: firstly, Apple disks did not use the index hole to mark the start of a track; their drives could not even detect the index hole. Tracks could thus start anywhere, but the copied track had to have this 'write splice', which always caused some bits to be lost or duplicated due to speed variations, roughly in the same (unused for payload data) place as the original, or it would not work. Secondly, Apple used special 'self-sync' bytes to achieve agreement between drive controller and computer about where any byte ended and the next one started on the disk. These bytes were written as normal data bytes followed by a slightly longer than normal pause, which was notoriously unreliable to detect on read-back; still, you had to get the self-sync bytes roughly right as without them being present in the right places, the copy would not work, and with them present in too many places, the track would not fit on the destination disk.
Part of the Fast Hack'em disk copy software was a nibbler used to produce copies of copy protected Commodore 64 commercial software. When using the nibbler, disk copying was done on a very low level, bit-by-bit rather than using standard Commodore DOS commands. This effectively nullified the efficacy of deliberate disk errors, non-standard track layouts, and related forms of copy prevention. Super Kit/1541 was sold by Prism Software around 1986 written by Joe Peter who also did Warp Speed and some of the VMax copy protection. It included many different copiers like a Normal Copier, Nibbler, File Copier, Super Nibbler, Disk Surgeon, and disk Editors.
Reader's Guide
The bit nibbler represents a key chapter in the cat-and-mouse struggle between software publishers and users over copy protection on early personal computers. On the Apple II, Locksmith copied disks by taking advantage of sync fields that almost always consisted of a long string of FF (hex - all '1' bits) bytes. It found the longest string of FFs, which usually occurred between the last and first sectors on each track, and began writing the track in the middle of that; also it assumed that any long string of FF bytes was a sync sequence and introduced the necessary short pauses after writing each of them to the copy. Ironically, Locksmith would not copy itself. Copy protection engineers quickly figured out what Locksmith was doing and began to use the same technique to defeat it. Locksmith countered by introducing the ability to reproduce track alignment and prevented itself from being copied by embedding a special sequence of nibbles, that if found, would stop the copy process. Henry Roberts (CTO of Nalpeiron), a graduate student in computer science at the University of South Carolina, reverse engineered Locksmith, found the sequence and distributed the information to some of the 7 or 8 people producing copy protection at the time.
Henry Roberts' thesis on software copy protection devised a way of replacing Apple’s sync field of FFs with random appearing patterns of bytes. Because the graduate student had frequent copy protection discussions with Apple’s copy protection engineer, Apple developed a copy protection system which made use of this technique. Henry Roberts then wrote a competitive program to Locksmith, Back It UP. He devised several methods for defeating that, and ultimately a method was devised for reading self sync fields directly, regardless of what nibbles they contained. The back and forth struggle between copy protection engineers and nibble copiers continued until the Apple II became obsolete and was replaced by the IBM PC and its clones. On the Commodore 64, the Super Kit/1541 program could make a copy of itself, but could not make a copy of the copy because the sync length of the original was shorter than the copy made and the loader checked for this length and the copy would have a much longer sync. The Rapidlok copy protection scheme, which used a $00 value in between sectors that caused copiers to become 'flaky' as it was an illegal GCR value, was never successfully copied in any version.
Did You Know?
- Locksmith, the first nibble copier, would not copy itself.
- Apple II disk drives could not detect the index hole, so tracks could start anywhere.
- The Rapidlok copy protection scheme used a $00 value between sectors, an illegal GCR value, and no version of it was ever successfully copied.
- Super Kit/1541 could copy itself but not a copy of itself, because the loader checked sync length.
More in Computer Storage, Part 2 1-24
Spotted an error? Know more?
Reader corrections go straight into our review queue. Suggest an edit · How this site is sourced
