meta data for this page
  •  

This is an old revision of the document!


Drive Analog Characteristics

The Analog Characteristic test is used to perform an analysis of the analog electronics and signal filtering that takes place within you floppy drive. Reading it takes a fair bit of knowledge about how a floppy drive functions at a low level, but it is still possible for a novice to glean the essential bits of the test in order to make sure that their drive is functioning properly or is suitable for imaging a particular disk format.


What do all these graphs mean?

The test screen is comprised of 3 separate graphs

The Noise test in the lower left gives us a base line for the density of noise that is generated by the drive when in “full panic” mode. Having a high noise level here doesn't mean that a drive is bad or will have trouble reading a disk. It is more the representation of the worst-case scenario of a drive trying to read a disk but it cannot find any data. Many drives have an automatic gain control function that tries to increase the sensitivity of the read head in order to lock in on the flux transitions on the disk. Unfortunately, the sensitivity can be turned up so much that the drive starts making up data that doesn't actually exist. The graph shows the number of “fake” transitions that the drive sends per rotation.

It is important to remember that floppy drives are analog devices and not digital ones. It reads an analog signal from the floppy disk and sends a pulse every time it sees the signal change (the floppy drive controller has the job of turning those pulses into digital bits). In order for the drive to send pulses at the appropriate time, they used various combinations of read amplifiers, filtering, and a good smattering of assumptions about the incoming signal. These help the drive determine if a signal is happening “too fast” and should be ignored, or “too slow” and we should turn up the amplifier because it must be missing some data. Many computer systems used pretty similar ways of storing data to a disk, like FM or MFM encoding that defined rules for how flux transitions should be organized on disk to represent data, and double density or high density media that allowed for differing densities or rates of flux transitions. Many drive manufacturers focused on these encoding standards and therefore when we ask it to read some other form of encoding, they can potentially run into issues doing so. The Window Stability graph at the top of the window is the analysis of what the drive can and cannot process reliably. The gray vertical lines show the results for individual tests at various flux frequencies long lines are high success rate, and short or no line means lower success rate. The gold line in the graph is a breakdown of the signal reliability along with factoring in things like spindle motor speed fluctuations and such. The most important thing you need to recognize in this graph is the durations which are covered with the gold line pinned to the top which is 100% reliability. The above graph shows that the signal is 100% stable from 3.75µs through to 19µs. If you aren't familiar with how data is stored on disks at a very low level, then that range of stability probably means absolutely nothing to you. And as an expert in this, I could give you the definitive answer of “well, it depends on what kind of disks you want to be imaging”. Here is a quick table of some popular disk formats:

Media Encoding Platform 100% Stability Required
5.25 DD MFM 360K PC 4µs - 8µs
5.25 HD MFM 1.2M PC 2µs - 4µs
5.25 DD Apple GCR 143K Apple II 4µs - 12µs (up to 16µs recommended)
5.25 DD Commodore GCR 170K C64 3.25µs - 12µs
5.25 HD Victor 9000 GCR 612K 1.25µs - 7.5µs
3.5 DD MFM 720K PC 4µs - 8µs
3.5 HD MFM 1.44M PC 2µs - 4µs
3.5 DD Apple GCR 800K Mac (in PC drive) 2.5µs - 12.0µs

The screen shot above shows the stability of a 5.25 DD drive. In looking at the table above, the drive is capable of reading all of the 5.25 DD formats except for the Commodore GCR. The C64 requires stability down to 3.25µs, but this drive is only stable down to 3.75µs. And indeed when using this drive to image C64 disks, there are many errors in the first half of disks.

The First Injection Timing graph is a bit more complex to explain and for the most part is irrelevant to most users. If you really want to know, there is some details about what it is showing in the last section of this page.


Test settings

There are only 2 setting for the analog test. The first is to choose the Density. This allows you to specify the density used for the test Low (DD) of High (HD). Be sure to use the proper media type with each setting or you will not get accurate results. For PC drives that support low and high density operation, many used different sets of filters for each density. The screen shots below show the same drive set to different densities with low on the left, and high on the right. The gold line clearly shows that the characteristics of the drive are quite different for each density.

The other setting is View. This allows you to perform the tests slightly differently. There is a Heads mode that put the head in the center of the disk and performs analysis on each head (in a 2 headed drive). The bottom drive head (head 0) will be shown on the bottom half of the graph, and the top head (head 1) will be shown on the top half. The other option is Outer and Inner Tracks which will perform the test with the head at each end of the media. The physical spacing of fluxes differs on the outer vs inner tracks, and so this lets you see how different the drive deals with each end.


My graph doesn't look anything like that.

If your graph looks like below (or worse) with no 100% stability, then the first thing to do is try to clean your drive head(s). There can also be an issue with the floppy disk you are testing with, such as physically shedding the media surface or the incorrect density. If cleaning heads and changing disks doesn't resolve the issue, it is possible that there is an issue with the drive itself.


How exactly does this work?

The primary analog test uses a test track that is comprised of a whole bunch of smaller tests. A test has a header, gap, payload, and settle field. The header contains information about the specific test (like the gap size). Following that is the gap (no flux area) whose duration ranges from 1µs to 48µs in 250ns increments. Then there is a payload which is a special bit sequence that is used to be able to detect bit slip, desynchronization, and other conditions. And then the settle which is a bit pattern that lets the analog amplifier/gain control/whatever cool down before the next test.

What it is checking for is the integrity of the gap and payload. If the gap is clean (no bits injected) and the payload is as well, then that is a success and it adds to the gray lines in the Stability graph. In the case of a failure, the payload is checked for integrity and if the payload is intact, then we check the gap. If the gap has a spurious transition (injected bit), then the time offset from the last flux transition of the header to the first spurious transition is recorded onto the First Injection Timing graph at the bottom.