Difference between revisions of "Victor 9000 format"
(start page, add gcr code table) |
(→GCR code table) |
||
(One intermediate revision by the same user not shown) | |||
Line 11: | Line 11: | ||
== Low level format == | == Low level format == | ||
+ | |||
+ | References: http://bitsavers.org/pdf/victor/victor9000/Victor9000TechRef_Jun82.pdf (page 86 onwards) | ||
=== GCR code table === | === GCR code table === | ||
Line 16: | Line 18: | ||
From the source code to CW 0.13 by Karsten Scheibler: | From the source code to CW 0.13 by Karsten Scheibler: | ||
+ | {| | ||
+ | | | ||
{| border="1" style="text-align:center;" | {| border="1" style="text-align:center;" | ||
! input (hex) !! output (bin) !! output (hex) | ! input (hex) !! output (bin) !! output (hex) | ||
Line 34: | Line 38: | ||
|- | |- | ||
| 7 || 10111 || 0x17 | | 7 || 10111 || 0x17 | ||
+ | |} | ||
+ | | | ||
+ | {| border="1" style="text-align:center;" | ||
+ | ! input (hex) !! output (bin) !! output (hex) | ||
|- | |- | ||
| 8 || 01001 || 0x09 | | 8 || 01001 || 0x09 | ||
Line 51: | Line 59: | ||
| F || 10101 || 0x15 | | F || 10101 || 0x15 | ||
|} | |} | ||
+ | |} | ||
+ | |||
+ | The eagle-eyed among you might just have noticed that this is the same GCR code table the Commodore 1541 uses... Hardly surprising, seeing as the 1541 is a descendant of the Commodore 8050, which was designed by Chuck Peddle, who also designed the Victor 9000. In a posting to classiccmp on the 2nd of March 2011, Tony Duell (ard p850ug1 demon co uk) says that the disc controller circuitry in the Victor is nearly identical to the circuitry in the 8050. This isn't particularly surprising on the face of it (and really makes the reverse engineering work go quicker!) | ||
+ | |||
+ | Sector Header sync marks are defined as a string of 60 or more '1' bits, followed by the sector header (data block ID, track number, sector number, and checksum). | ||
+ | |||
+ | The data header sync mark is shorter -- 5 byte-times (50 GCR bits) long -- and is followed by the "data block IO byte", data payload and 2-byte additive checksum. | ||
+ | |||
+ | Data sectors are 512 bytes in length. |
Latest revision as of 21:19, 2 March 2011
Overview
A very strange format used by the Sirius One / Victor 9000 computer. This machine ran MS-DOS and CP/M, but had a very unusual disc format:
- Variable speed -- 9-zone Z-CLV. The linear velocity of the disc is held fairly constant by rotating certain blocks of tracks slower than others, and storing more data sectors on the outer ("longer") tracks.
- GCR coding -- specifically, a 4-to-5 GCR code which looks like MFM on a timing histogram.
Other than that, they're pretty standard. A DiscFerret can accurately sample and (in theory) decode these discs.
Low level format
References: http://bitsavers.org/pdf/victor/victor9000/Victor9000TechRef_Jun82.pdf (page 86 onwards)
GCR code table
From the source code to CW 0.13 by Karsten Scheibler:
|
|
The eagle-eyed among you might just have noticed that this is the same GCR code table the Commodore 1541 uses... Hardly surprising, seeing as the 1541 is a descendant of the Commodore 8050, which was designed by Chuck Peddle, who also designed the Victor 9000. In a posting to classiccmp on the 2nd of March 2011, Tony Duell (ard p850ug1 demon co uk) says that the disc controller circuitry in the Victor is nearly identical to the circuitry in the 8050. This isn't particularly surprising on the face of it (and really makes the reverse engineering work go quicker!)
Sector Header sync marks are defined as a string of 60 or more '1' bits, followed by the sector header (data block ID, track number, sector number, and checksum).
The data header sync mark is shorter -- 5 byte-times (50 GCR bits) long -- and is followed by the "data block IO byte", data payload and 2-byte additive checksum.
Data sectors are 512 bytes in length.