mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
75 lines
2.9 KiB
Markdown
75 lines
2.9 KiB
Markdown
Disk: Victor 9000
|
|
=================
|
|
|
|
The Victor 9000 / Sirius One was a rather strange old 8086-based machine
|
|
which used a disk format very reminiscent of the Commodore format; not a
|
|
coincidence, as Chuck Peddle designed them both. They're 80-track, 512-byte
|
|
sector GCR disks, with a variable-speed drive and a varying number of sectors
|
|
per track --- from 19 to 12. Disks can be double-sided, meaning that they can
|
|
store 1224kB per disk, which was almost unheard of back then. Because the way
|
|
that the tracks on head 1 are offset from head 0 (this happens with all disks),
|
|
the speed zone allocation on head 1 differ from head 0...
|
|
|
|
| Zone | Head 0 tracks | Head 1 tracks | Sectors | Original period (ms) |
|
|
|:----:|:-------------:|:-------------:|:-------:|:--------------------:|
|
|
| 0 | 0-3 | | 19 | 237.9 |
|
|
| 1 | 4-15 | 0-7 | 18 | 224.5 |
|
|
| 2 | 16-26 | 8-18 | 17 | 212.2 |
|
|
| 3 | 27-37 | 19-29 | 16 | 199.9 |
|
|
| 4 | 38-47\* | 30-39\* | 15 | 187.6 |
|
|
| 5 | 48-59 | 40-51 | 14 | 175.3 |
|
|
| 6 | 60-70 | 52-62 | 13 | 163.0 |
|
|
| 7 | 71-79 | 63-74 | 12 | 149.6 |
|
|
| 8 | | 75-79 | 11 | 144.0 |
|
|
|
|
(The Original Period column is the original rotation rate. When used in
|
|
FluxEngine, the disk always spins at 360 rpm, which corresponds to a rotational
|
|
period of 166 ms.)
|
|
|
|
\*The Victor 9000 Hardware Reference Manual has a bug in the documentation
|
|
and lists Zone 4 as ending with track 48 on head 0 and track 40 on head 1.
|
|
The above table matches observed data on various disks and the assembly
|
|
code in the boot loader, which ends Zone 4 with track 47 on head 0
|
|
and track 39 on Head 1.
|
|
|
|
FluxEngine can read and write both the single-sided and double-sided variants.
|
|
|
|
Reading discs
|
|
-------------
|
|
|
|
Just do:
|
|
|
|
```
|
|
fluxengine read <format>
|
|
|
|
```
|
|
|
|
...where `<format>` can be `victor9k_ss` or `victor9k_ds`.
|
|
|
|
For `victor9k_ss` you should end up with an `victor9k.img` which is 627200 bytes long.
|
|
For `victor9k_ds` you should end up with an `victor9k.img` which is 1224192 bytes long.
|
|
|
|
**Big warning!** The image is triangular, where each track occupies a different
|
|
amount of space. Victor disk images are complicated due to the way the tracks
|
|
are different sizes and the odd sector size.
|
|
|
|
Writing discs
|
|
-------------
|
|
|
|
Just do:
|
|
|
|
```
|
|
fluxengine read victor9k_ss -i victor9k.img
|
|
```
|
|
|
|
**Big warning!** This uses the same triangular disk image that reading uses.
|
|
|
|
|
|
Useful references
|
|
-----------------
|
|
|
|
- [The Victor 9000 technical reference manual](http://bitsavers.org/pdf/victor/victor9000/Victor9000TechRef_Jun82.pdf)
|
|
|
|
- [DiskFerret's Victor 9000 format guide](https://discferret.com/wiki/Victor_9000_format)
|
|
|