• Please review our updated Terms and Rules here

8 inch disks

Mike_Z

Veteran Member
Joined
Dec 1, 2013
Messages
1,713
Location
Near Milwaukee Wisconsin
I brought out my hardware and wanted to make sure that my 8 inch drives and disk were working properly before trying them on the 8080 FDC. I purchased a couple of 8" disks on ebay and found that they do not work. After looking a little closer I found that the index hole is not in the same place. The old disks that I have and work have the index hole about 10 degrees to the right of vertical, these new disk have the index hole about 30 degrees from vertical. Is this a difference between SD & DD? Can I just punch a new hole to make them work? Mike
 
Not SD and DD, but SS and DS. Yes, you can punch new holes in the corresponding place. As a matter of fact, you can punch new holes in two spots in the jacket to create "flippies".
 
So my new disks are double sided? and my old ones are single sided? Density only relates to 250k or 500k transfer rate?

What would you suggest as far as punching new holes? Could I use a paper punch? It has a 1/4" hole which is a little smaller than what is there now. AND if I punch one both sides I can use both sides? Mike
 
So my new disks are double sided? and my old ones are single sided? Density only relates to 250k or 500k transfer rate?

What would you suggest as far as punching new holes? Could I use a paper punch? It has a 1/4" hole which is a little smaller than what is there now. AND if I punch one both sides I can use both sides? Mike

Yes, the medium doesn't care about the modulation method (MFM vs. FM vs. MMFM vs. GCR).

I've used a ticket punch but a regular paper punch should work well--at that matters is that the holes be in the proper place and allow light to shine through the index hole. Punch the holes in the jacket individually. So do add SS support for a single side, you'd punch two holes--one on each side of the jacket. For SS "flippy" support, you'd punch four.
 
Say this works pretty good! I used an unusable disk and cut the media out. Then traced the new index hole and punched it out. I tried it and it didn't work. Took a couple of seconds to think that I need two holes for the light to shine through. I also needed a few seconds to think of exactly where to punch the 'flip' side holes. But they worked as well.
On another note. I have two 8" drives. One a Shugart 800 and one Siemens FD-100-8. The IMD RPM test shows good on the Shugart, but only about 310 rpm on the Siemens. The belt must be bad. I'm going to remove the belt and clean the pulley surfaces with alcohol and wipe down the belt to see if that will help. Any thoughts on that or should I find a new belt? Mike
 
Well, belts don't last forever. Clean it, then boil it in water for a few minutes, let it cool. Sometimes this is enough to bring things back.

Did you understand what I meant by a "flippy"? If you take a double-sided disk and then repeat the procedure you just did, but turn the disk over, you'' end up with another set of holes that will work if you turn the disk over. That is, a double-sided drive has two single-sides. Used on Apple IIs, but before that, on 8" drives.
 
Yeah... I get it ---- now. Do you have a source for usable 8" floppies? I purchased three from ebay and only one works completely. The other two have errors. I;ve tried to erase them and reformat them, but the trouble spots seem to remain the same. Mike
 
Can brand new disks be purchased? I just went through a box of 9 old disks and only 3 were completely usable. A couple could not be read at all and a couple only had a few errors. Since they are not good, I'm going to open them up and look at the media. I had thought of washing the media and replacing them in the case. Maybe they may work after that.

I'm also looking over the CBIOS for CP/M. I'm a complete novice when it comes to disk drive programming. Is sector 'Skew' the same as sector 'Interleave'? I have been formatting my 8" disks as 77 track, 26 sector, 128 bytes/sector, 250k transfer rate and a 1:1 interleave. Looking at the example CBIOS, it appears that there is a skew of 6 to the sectors; 1,7,13,19. So must I format my floppies with an interleave of 1:6 instead of 1:1?

Thanks Mike
 
"Skew" is one of the more abused terms of art. Some take it to mean interleave; some take it to mean the cylinder- or track-to-track offset that is sometimes used to compensate for seek latency.

More confusing is its use in CP/M terminology (not encountered in MS-DOS, BTW0. At one time, it was customary to purchase pre-formatted media. That meant that the factory usually assumed that sector 1 was immediately followed on the track by sector 2 and so forth. That is, consecutive sectors were physically placed consecutively on the disk.

But most early disk controllers could not set up for another read transfer in the "gap" space between sectors, so trying to access sectors consecutively would result in a loss of one revolution for each sector read. That is, instead of reading up to 26 sectors per revolution, it would take 26 revolutions to read all sectors on a track.

With no access to be able to reformat (on hard-sectored hardware, that might not even be possible) a disk so that each sector was placed approximately where it could be read consecutively (as in an LLF-ed hard drive), CP/M used a lookup table to translate logical sectors to physical ones, effectively creating a "logical" interleave. Thus logical sector 1 would correspond to physical sector 1, logical sector 2 would correspond to physical sector 7 and so forth. In this way, you would still be able to read an entire track of 26 sectors in 6 revolutions instead of 26.

CP/M floppies used both methods (i.e. custom format vs. lookup table); there is no real standard. Adding to that, some manufacturers employed side and cylinder skewing, so that more than one track could be consecutively read with a minimum of latency.
 
Well, add one more to the list of the confused, kinda. I think, by what you have said, is that I should format with an interleave of 1:1. Then in the CP/M CBIOS, the sector translation vector table will convert the physical sector numbers to the logical ones. In other words I do not have to interleave any sectors. The vector table and the software handle everything? Thanks Mike.
 
The issue is that it depends upon whose version of the CP/M BIOS you're using. They come in both flavors--the one that uses a lookup table and others that use a custom format.

The one remarkable thing about CP/M is that there was very little control (or even recommendations) over how vendors chose to do things. To a certain extent, early MS-DOS was that way also.
 
I don't have a vendor for the computer, it's homemade. But, the software was purchased from Digital Research. I have version 2.2 and it has the look up table. Thanks, Mike.
 
Mike_Z said:
...Can brand new disks be purchased?...

Yes, Athana below makes new diskettes as far as I'm aware.

...Is sector 'Skew' the same as sector 'Interleave'?...

Yes, but you must become aware of what DRI did in CP/M to make a mess of it.

Let's talk about normal interleave first to illustrate the basic advantage. Afterwards I'll explain the DRI implementation.

Interleave of 1:1, i.e. No Interleave, places sectors identified in their headers as progressively incrementing order around the track. This is easy to picture as the sequence of track sectors appearing under the read write head after an index mark would be, for example, 1,2,3... 26.

The reason you might want to interleave the sectors instead is that without expensive high-speed floppy controllers and without huge ram buffers, after you read a sector, you have a delay to transfer it to the host memory. While you're doing that, the floppy is still spinning and sector 2 has already rotated under the read-write head. If you now request sector 2 that passed by while you were busy, you must wait until comes around again, almost a full rotation away. This means you can only read 1 sector per revolution.

You can get around this by interleaving sectors for example at every other 5 sectors. When you format a track, sector 1 is written first, and then other sectors are written until the fifth sector position comes around and it is then formatted as sector 2. The idea is that when you read a sector and delay worst-case before asking for the next sector, that next sector should be pre-positioned to still be nearby so you seldom have to wait a full revolution. Makes sense.

So now the example becomes, read sector 1, delay during transfer as sectors spin under the read/write head, come back and request sector 2, but possibly three sectors have spun under the read-write heads while you transferred data, the floppy controller now looks for a sector 2 ID in every sector header it can now read, but a fourth sector spins under but as it doesn't have the sector 2 ID in its header, the controller waits for the next sector, when the next sector is found by the sector 2 ID in the header the floppy controller reads it in with very near minimal delay in contrast to waiting a full revolution.

Now consecutive sectors are 5 sector widths apart, so the delay to transfer, service interrupts and maybe search a sector buffer, doesn't force the floppy controller to wait a full revolution to find the next sector number. is just a fraction of a rotation away.

Roughly that's like waiting 3/26s of a revolution rather than waiting 24/26s of a revolution for it to come back around. The values of the example are illustrative estimates for a 26 sector example. Its faster because you can read 26/5 or 5 sectors per revolution instead of always waiting for the next revolution to get the next sector... about 1 sector per revolution.

That was normal Interleave.

Now we talk about the CP/M mess.

When CP/M started a lot of floppy controllers only offered 1:1 interleaving, i.e. No Interleave.

DRI wanted to have the advantage of interleave even though technology hadn't caught up for many floppy systems.

So DRI took it as a given that floppies are always formatted at 1:1 (no interleave). So they called those "physical-sectors" and implemented their version of interleave by creating the concept of a "logical sector" too. The translation of logical-to-physical sector numbers implemented the interleave.

Thus to find out where sector 2 data was really stored among the physical sectors, you used a "skew-table" to translate the logical sector to the physical sector, and then use that physical sector destination to read or write that data for logical sector 2.

The "skew-table" was the logical-to-physical sector interleave created in the firmware, not in the individual sector headers on the track as the latter would be implemented under normal interleave. The fact that the track is dependent upon firmware for any particular system, to read the data correctly, is the weakness of DRI's implementation; particularly in the age of Vintage floppy recovery.

The DRI solution does the job of interleave nicely, but its media track reads and writes being dependent on firmware, is a bad complication. Now to find consecutive sectors on a track, you don't simply increment the sector number and wait for it to arrive as you can with normal interleave, you must now consult a translation used by the computer it was written with. In one computer system, logical sector 2 might be in physical sector 7, but another system might have it in physical sector 5. That means the data can't be extracted until you know the skew pattern used and that normally means you must know what system wrote the data.

As the system ID is not written on the floppy, it can only be identified through knowledge of where the floppy came from or with a little detective work reading unconnected track sectors of raw data from the floppy and then searching for pattern evidence of connections between disjoint sectors to thus reveal the interleave for the whole floppy.

Note it wasn't long before floppy disk controller chips could implement interleave correctly when formatting tracks. It would have been nice if the skew table disappeared as soon as possible. But if you deal in vintage anyway as is more the norm today, you can't get away from this mess. You have to know what system it was formatted for so the skew table can be found.

Had normal interleave always been implemented, all you'd have to do is increment the sector and tell the floppy controller to access it. That would work for all floppies no matter what system programmed it. Note that I'm leaving the directory system of blocking out of this simplifying illustration.

Note too that CP/M implemented for some later systems dropped the skew-table approach and switched to normal interleave. They're easier to recognize because unlike skew-table use, those floppies are not formatted at 1:1 (no interleave). A 1:1 interleave on a floppy almost always means a skew-table was used.

The exception would be a floppy disk controller so well designed that it can support 1:1 interleave without missing any sectors; usually implementing buffering or direct transfer into system memory. These latter designs were rare on CP/M systems during the period of CP/Ms peak use. That's just something else that vintage access has to sleuth out.

...I have been formatting my 8" disks as 77 track, 26 sector, 128 bytes/sector, 250k transfer rate and a 1:1 interleave. Looking at the example CBIOS, it appears that there is a skew of 6 to the sectors; 1,7,13,19. So must I format my floppies with an interleave of 1:6 instead of 1:1?...

That's basically the deal. You format at 1:1 so that physical sectors follow each other consecutively around the track. CP/M using skew-tables assume that floppy formats are always formatted that way. The CBIOS shows an example of a skew-table to implement interleave; in your example every other 6 sectors. So when the system needs to access the 2nd *logical* sector it uses that table to get a *physical* sector to read/write.

Skew-Table use: physical sectors go: 1,2,3,4,5,6,7,8 etc.
Skew-Table use: logical sectors go: 1,7,13,19 etc

So to find the second logical sector, the your table says to look for physical sector 7 to locate the correct data inside.

...is that I should format with an interleave of 1:1. Then in the CP/M CBIOS, the sector translation vector table will convert the physical sector numbers to the logical ones. In other words I do not have to interleave any sectors. The vector table and the software handle everything?...

Yes (almost)

One correction, "...will convert the logical sector numbers to the physical ones..."

Physical = Floppy, a handy phonetic reminder.

Later you might want to convert to normal interleave because almost every floppy disk controller chip is capable of doing it. Its just more complexity you don't need now.

Sometimes its better to walk the path than to be shot from a cannon to the destination. :)
 
Last edited:
It's also worth pointing out that several implementations use more than one interleave. For example, some systems used 1:1 on the boot tracks (all you're doing is reading in one sector after another), the directory tracks used 2:1 (lookup doesn't take a lot of CPU time) and the remainder used 3:1 for the data, since it had to go through the file interface code.

I believe that some versions of ISIS did this as well. "Interleave" is a very old term--it goes back to core memory and coffee-table sized disks--and precedes the floppy by quite a long time.

"Skew" is usually the term to describe the "slip" in format from one track to another. Consider: on some 8" drives, track-to-track stepping could be performed in 6 msec. or less; once on track, the advice was to allow for 15 msec. for head "settling" . Now compare that with the rotational time of 167 msec, so if you time your skew, you can be right on the next track's sector if you place it right--that's "skew" in the traditional sense--the position of each track is skewed by a certain amount.

It doesn't matter as much on hard disks, because you're looking at rotational latency that's only a tenth of that of a floppy.

But you can dig up floppy formatting programs for DOS that do indeed have cylinder-to-cylinder skew built in.

And some CP/M formats use a "lookup table" of sorts to do skewing; e.g. Cifer CP/M.

Then there are implementations that completely re-map the order of things, for example, the National BLC 86/128 CP/M. The directory is placed on side 1, cylinder 39, then allocation is performed from there to the end of the disk, then in reverse to the beginning of the disk.

There were lots of CP/M variations...
 
Geeezzz..... As I said earlier, I'm a novice when it comes to disk drive programing and understanding. Now after I've read this I still have a lot to learn. I've got to say that I appreciate what you guys provide here, Most of this stuff isn't available in documentation anywhere. Currently, I'm reading as much as I can find about drives and formats and how to make a Cold Load Starter. I'm sure you'll see more questions from me later. Again, Thanks a million, Mike
 
Mike_Z said:
...Most of this stuff isn't available in documentation anywhere.

That's true and in all honesty most floppy disk controller firmware screwed up but still work in the vast majority of situations. Mostly the problem is in regard to the choices of various gap sizes.

It was the lack of documentation and the poor quality of documentation that was available that led to this. The FDC chip spec's often just listed the two IBM formats and took no position on anything else.

The important thing is that even with those mistakes, the interface mostly worked fine. There was enough margin in the floppy format and most floppy use were on drives that were well within tolerances.

The specification for track formats with gap settings are all about worst-case conditions that rarely could occur, like taking a floppy written on a drive with one extreme tolerance setting and then putting it into another drive with the other end of extreme tolerance settings. Statistically that isn't going to happen to many people.

But if you're IBM, you want a specification so that you know its designed right, and if you ship a massive amount of floppies, this level of safety means they're not going to have a bunch of complaints caused by these extremes.

Usually formats got into noticeable trouble as they packed more sectors or bigger sectors on the track by using the ideal drive characteristics to calculate available capacity on the track. This made those formats more likely to corrupt sector headers by data overwrites. But better floppy drive motor controls also lessened the problem.

Some implementations just used the same gaps in the IBM spec's without realizing that longer sectors require certain gaps to be longer. Gap3 is usually the first to cause problems particularly as the sector size is increased.

But these issues seldom come up, and when they do, they're seldom recognized as the cause. Blame it on the floppy. :)

...I'm reading as much as I can...to make a...(Cold Boot Loader)...

Which floppy disk controller (FDC) chip are you using in your design?
 
Last edited:
I've got a copy of one of those poorly written documents from my work designing the SD Systems Versa-Floppy-Winchester III (VFW-III) back in 1983. Its a Shugart document that did more harm than good and the endless, careless errors makes it dangerous to release to the vintage community.

The document writers switch back and forth with values from the wrong floppies sizes and sometimes just flip wrong formulas until they look right (but aren't). It wreaks of work done by an intern and a sloppy mentor that didn't check the work much at all.

Neither apparently understood the IBM research document on *floppy formats for tolerance in drives and clock speeds* that it was likely based upon. I read that IBM paper in 1983 and filed it away as an interesting but not immediately applicable read as the Shugart document *appeared* to be. That IBM paper is probably still in my desk at SD Systems, inside a building that was torn down about 20 years. :)

This reminds me of the document from 1979 I came across
http://bitsavers.org/pdf/shugart/_specs/SA850_450_Read_Channel_Analysis_Dec79.pdf

Where it appears they were trying to document how the read channels of their drives actually worked.

I would guess by 1983 anyone who had come from IBM and actually knew how their products actually worked were long gone.

Do you remember any more what lab the IBM paper had come out of? I would have probably have been either Boulder or Rochester
where most of the floppy work was done.
 
Back
Top