View Full Version : Nibble copy
musashi5150
14 October 2005, 20:57
I've been wondering what exactly 'nibble copying' is and how it works.
I'm a coder and know the normal usage of DSKSYNC and how NDOS trackloaders work (I've coded a few myself) - but I've been getting more into cracking/copy protection (just for my own amusement - not spreading 'warez') since the CAPS images became more available.
Does nibbling rely on the DSKBYTE reg? And how do you calculate how long a track is?
Any help would be great guys! :bowdown
NOB
15 November 2005, 21:31
I think on a raw MFM track (without blocks) you can write a
maximum of 1685 longwords.
To be sure to overwrite no data the gap is about 150 longwords+
aaaa4498 (one longword) for the sync.
The rawdata is now about 1535 longwords.
But i think *possibly* a gap of 100 longwords will work too.
I am pretty sure the maximum of the raw data will differ a little from
track to track.
(more infos are welcome/SPS CAPS TEAM):D (searched your whole site):D
fiath
16 November 2005, 08:49
http://www.softpres.org/?id=glossary:nibbler
We don't do a nibble "copy". Our technique works more at the flux-transition level - so fortunately we so don't need to take guesses. Rather a good thing in preservation. :)
Photon
16 November 2005, 19:11
Don't know what NOB and Fiath are on about, but it seems he's asking how to read/write track information using the nibble method, not asking about how an MFM track is loaded or how Fiath reads his disks?
Was into nibbling at one point, but it's been 15-16 years, so I'm sure I don't remember, or I would help you for sure. :)
DeAdLy_cOoKiE
16 November 2005, 22:56
I know I fixed a lot of disk using the nibble copy feature in x-copy.
Not sure how it works exactly, but it seems that when it reaches a bad track, it keeps on reading it until it gets it right, or reads as much data that can be read before copying, or maybe the essntial parts.
IFW
17 November 2005, 13:26
A software only nibbler should blind read a track several times and try to pick whichever track data is the more likely to be correct - the mfm encoding looks correct and the data parts without the track gap area look identical or similar.
One of the many weak points in this is finding out about syncing used - normally left to the user.
fiath
17 November 2005, 13:50
Don't know what NOB and Fiath are on about, but it seems he's asking how to read/write track information using the nibble method, not asking about how an MFM track is loaded or how Fiath reads his disks?
I was replying to NOB, not the original poster.
musashi5150
17 November 2005, 14:48
Hi guys - I'd almost given up on this post :) Yeah, what I'm interested in is the algorithm/idea behind reading MFM tracks and calculating:
a) How long they are
b) Sync marks
c) any other info I might need...
So if I read a track without sync how can I tell what the sync marker might be so I can re-align? Is this VERY difficult and is it why X-Copy etc lets the user input the value?
IFW
17 November 2005, 18:40
It can be... and sometimes there are decoys on the track to prevent guessing.
Phantasm
18 December 2005, 00:49
Hi guys - I'd almost given up on this post :) Yeah, what I'm interested in is the algorithm/idea behind reading MFM tracks and calculating:
a) How long they are
b) Sync marks
c) any other info I might need...
So if I read a track without sync how can I tell what the sync marker might be so I can re-align? Is this VERY difficult and is it why X-Copy etc lets the user input the value?
a) You can figure out the length of the track without knowing the sync simply by finding the point where the data pattern starts again. This will give you the complete track size (including gap) but bear in mind that it may not be a multiple of 8 or 16 bits so it can be quite processor intensive to search for it in this way. Its much easier if you know the sync value and you can work the track size out by counting the bits between sync markers (or multiple sync markers if the format has one for each sector).
b) Theres no way to figure out the sync marks (at least I dont know of one), you could try a few common ones used by known loaders.
c) I think thats all you need to know, basically the tricky part is writing the tracks back to disk. you need to try and identify the track gap and adjust the size of the track gap based on the exact amount of space on the destination track. This is where the sync comes in because it should help you to identify the gap area.
vBulletin® v3.7.0, Copyright ©2000-2013, Jelsoft Enterprises Ltd.