QIC-3010 and QIC-3020¶
QIC-3010-MC and QIC-3020-MC are the 900 Oe successors to QIC-80. They keep QIC-80's structure (MFM, 32-sector segments, floppy-style sector IDs, the same header segment and volume table) and raise the density and track count. This page describes only what differs from QIC-80-MC; everything not listed here is the same.
Sources: QIC-3010-MC Rev H, 27 Aug 97 (qic3010h.pdf); QIC-3020-MC Rev H, 20 Mar 96 (qic3020h.pdf).
Recording parameters¶
| Parameter | QIC-80 | QIC-3010 | QIC-3020 | Source |
|---|---|---|---|---|
| Method | MFM | MFM | MFM | §3.1 |
| Tape speed | 34 ips | 22.6 ips | 22.6 ips | §3.4 |
| Standard data rate | 500 kbit/s | 500 kbit/s | 1 Mbit/s | §3.4 |
| Density | 14,700 bpi | 22,125 bpi | 44,250 bpi | §3.5 |
| Media | 550 Oe | 900 Oe | 900 Oe | §3.3 |
| Tracks, 0.250 in | 28 | 40 | 40 | Cover |
| Tracks, 0.315 in | 36 | 50 | 50 | Cover |
As with QIC-80, each standard allows "other speeds and compatible transfer rates". Tapewyrm records the rate the drive reports in each capture. On the bench a TEAC FT-3010 reported 500 kbit/s with a QIC-3010 tape referenced, and a Colorado 1400 reported 1 Mbit/s with no tape referenced.
Note
Earlier drafts of Tapewyrm's design gave QIC-3010 and QIC-3020 rates of 1 and 2 Mbit/s. Those are drive modes some drives offer, not the standards' rates.
Segments and sector IDs¶
The segment layout (§5.3.2) has the same fields and order as QIC-80. Only the gap lengths change; for example QIC-3010 uses 224 + 15 bytes of gap 3 and 276 bytes of gap 4B, against QIC-80's 218 + 15 and 274. A floppy controller's MFM decoder does not depend on gap lengths, so Tapewyrm decodes all three formats the same way.
Sector IDs and the coordinate algebra are identical (§5.3.1): FSC 1–128, FTK 0–254, 1,020 segments per floppy side. The longer tracks need more floppy sides: a 300 ft QIC-3020 tape at 429 segments per track has a maximum FSD of 16 and 17,160 segments.
Segments per track¶
Both standards use a variable format (§5.4.1), with a smaller segment pitch than QIC-80:
| Standard | Minimum segments per track | 300 ft example |
|---|---|---|
| QIC-80 | int((length_in × 0.97 − 1.36 + 0.68) / 23.88) |
— |
| QIC-3010 | int((length_in × 0.97 − 1.36 + 0.452) / 15.936) |
219 |
| QIC-3020 | int((length_in × 0.97 − 1.36 + 0.226) / 8.131) |
429 |
QIC-3010 and QIC-3020 share track counts, so a header's tracks and segments per track can fit both. See Cartridges for how Tapewyrm resolves that.
Header differences¶
The format parameter record has the QIC-80 layout (§7.1), with these differences:
| Offset | Size | QIC-3010 / QIC-3020 | Source |
|---|---|---|---|
| 4 | 1 | Format code 04 (variable). QIC-3020 also defines 06 for tapes with more than 65,535 segments, for example 1,000 ft × 0.315 in. |
QIC-3020-MC Rev H §7.1 |
| 5 | 1 | Unused (QIC-80 Rev N: revision level) | §7.1 |
| 6–13 | 4 × 2 | Header, duplicate header, first and last data segment as words. Unused (zero) under code 06. |
QIC-3020-MC Rev H §7.1 |
| 26 | 1 | Tracks per cartridge: 40 or 50 | §7.1 |
| 234–249 | 4 × 4 | Code 06 only: header, duplicate header, first and last data segment as doublewords. |
QIC-3020-MC Rev H §7.1 |
| 256 | — | Start of the bad-sector map, same 3-byte entries as QIC-80. | QIC-3020-MC Rev H §7.1–7.2 |
Format code 6 exists only in QIC-3020, so a header with code 6 identifies the standard on its own. Under code 6 the volume table uses the QIC-113 §5 entry layout, which replaces the start and end segment words at bytes 4–7 with a doubleword count of segments used.
Hole-imprint bad segments¶
Tracks near the BOT and EOT holes pick up hole imprints. Both standards require the format to map whole segments bad within 4 segments of BOT and EOT on certain tracks (§7.2.1):
| Tape width | Tracks mapped bad near the holes |
|---|---|
| 0.250 in | 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27 |
| 0.315 in | 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37 |
Expect these segments in the bad-sector map of every QIC-3010 or QIC-3020 tape. They are not damage.
Tapewyrm notes¶
- Modules. The same as QIC-80:
tapewyrm.codec.mfm,qiclib.place,qiclib.geometry,qiclib.header. Track counts come from the cartridge profiles, not a separate table. - Bench. A factory-preformatted QIC-3010 400 ft tape (Report Tape Status
0x64) and an extended-length QIC-3020 cartridge (40 × 1,475 segments) have been read. - Format code 6 is not handled.
qiclib.headerreads the bad-sector map as a fixed-format mask for every format code other than 4, which is wrong for code 6, and it does not read the doubleword segment fields at 234–249. The QIC-113 §5 volume table entry used under code 6 is not implemented either. No code-6 tape has been seen.