Consolidate the Victor formats into each other.

This commit is contained in:
dg
2023-05-05 22:29:26 +00:00
parent f624bb6e5b
commit eb26426424
5 changed files with 39 additions and 208 deletions

View File

@@ -209,8 +209,8 @@ $(call do-encodedecodetest,mac,scripts/mac800_test.textpb,--800)
$(call do-encodedecodetest,n88basic)
$(call do-encodedecodetest,rx50)
$(call do-encodedecodetest,tids990)
$(call do-encodedecodetest,victor9k_ss)
$(call do-encodedecodetest,victor9k_ds)
$(call do-encodedecodetest,victor9k,,--612)
$(call do-encodedecodetest,victor9k,,--1224)
$(OBJDIR)/%.a:
@mkdir -p $(dir $@)

View File

@@ -8,7 +8,7 @@ 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...
the speed zone allocation on head 1 differs from head 0...
| Zone | Head 0 tracks | Head 1 tracks | Sectors | Original period (ms) |
|:----:|:-------------:|:-------------:|:-------:|:--------------------:|
@@ -40,18 +40,12 @@ Reading discs
Just do:
```
fluxengine read <format>
fluxengine read victor9k <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.
...where `<format>` can be `--612` for a single-sided disk or `--1224` for a
double-sided disk.
Writing discs
-------------
@@ -59,11 +53,10 @@ Writing discs
Just do:
```
fluxengine read victor9k_ss -i victor9k.img
fluxengine write victor9k <format> -i victor9k.img
```
**Big warning!** This uses the same triangular disk image that reading uses.
`<format>` is as above.
Useful references
-----------------

View File

@@ -33,8 +33,7 @@ FORMATS = \
smaky6 \
tids990 \
tiki \
victor9k_ds \
victor9k_ss \
victor9k \
zilogmcz \
$(OBJDIR)/src/formats/format_%.o: $(OBJDIR)/src/formats/format_%.cc

View File

@@ -1,12 +1,12 @@
comment: 'Victor 9000 / Sirius One 1224kB DSHD GCR variable sector)'
comment: 'Victor 9000 / Sirius One family'
image_reader {
filename: "victor9k_ds.img"
filename: "victor9k.img"
type: IMG
}
image_writer {
filename: "victor9k_ds.img"
filename: "victor9k.img"
type: IMG
}
@@ -261,3 +261,30 @@ encoder {
decoder {
victor9k {}
}
option_group {
comment: "Format family"
option {
name: "612"
comment: '612kB 80-track DSHD GCR'
config {
layout {
sides: 1
}
}
}
option {
name: "1224"
comment: '1224kB 80-track DSHD GCR'
config {
layout {
sides: 2
}
}
}
}

View File

@@ -1,188 +0,0 @@
comment: 'Victor 9000 / Sirius One 612kB SSHD GCR variable sector)'
image_reader {
filename: "victor9k.img"
type: IMG
}
image_writer {
filename: "victor9k.img"
type: IMG
}
layout {
tracks: 80
sides: 1
layoutdata {
sector_size: 512
physical {
start_sector: 0
}
}
layoutdata {
track: 0
up_to_track: 3
physical {
count: 19
}
}
layoutdata {
track: 4
up_to_track: 15
physical {
count: 18
}
filesystem {
start_sector: 0
count: 18
skew: 4
}
}
layoutdata {
track: 16
up_to_track: 26
physical {
count: 17
}
filesystem {
start_sector: 0
count: 17
skew: 4
}
}
layoutdata {
track: 27
up_to_track: 37
physical {
count: 16
}
filesystem {
start_sector: 0
count: 16
skew: 4
}
}
layoutdata {
track: 38
up_to_track: 47
physical {
count: 15
}
filesystem {
start_sector: 0
count: 15
skew: 4
}
}
layoutdata {
track: 48
up_to_track: 59
physical {
count: 14
}
filesystem {
start_sector: 0
count: 14
skew: 4
}
}
layoutdata {
track: 60
up_to_track: 70
physical {
count: 13
}
filesystem {
start_sector: 0
count: 13
skew: 4
}
}
layoutdata {
track: 71
up_to_track: 79
physical {
count: 12
}
filesystem {
start_sector: 0
count: 12
skew: 4
}
}
}
encoder {
victor9k {
trackdata {
clock_period_us: 2.1367 # 468kHz
post_index_gap_us: 500.0
pre_header_sync_bits: 150
post_header_gap_bits: 60
pre_data_sync_bits: 40
post_data_gap_bits: 300
}
trackdata {
head: 0
min_track: 0
max_track: 3
rotational_period_ms: 237.9
}
trackdata {
head: 0
min_track: 4
max_track: 15
rotational_period_ms: 224.5
}
trackdata {
head: 0
min_track: 16
max_track: 26
rotational_period_ms: 212.2
}
trackdata {
head: 0
min_track: 27
max_track: 37
rotational_period_ms: 199.9
}
trackdata {
head: 0
min_track: 38
max_track: 47
rotational_period_ms: 187.6
}
trackdata {
head: 0
min_track: 48
max_track: 59
rotational_period_ms: 175.3
}
trackdata {
head: 0
min_track: 60
max_track: 70
rotational_period_ms: 163.0
}
trackdata {
head: 0
min_track: 71
max_track: 79
rotational_period_ms: 149.6
}
}
}
decoder {
victor9k {}
}
filesystem {
cpmfs {
filesystem_start {
track: 5
}
block_size: 2048
dir_entries: 128
}
}