mirror of
https://github.com/davidgiven/fluxengine.git
synced 2025-10-31 11:17:01 -07:00
Consolidate the Victor formats into each other.
This commit is contained in:
4
Makefile
4
Makefile
@@ -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 $@)
|
||||
|
||||
@@ -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
|
||||
-----------------
|
||||
|
||||
@@ -33,8 +33,7 @@ FORMATS = \
|
||||
smaky6 \
|
||||
tids990 \
|
||||
tiki \
|
||||
victor9k_ds \
|
||||
victor9k_ss \
|
||||
victor9k \
|
||||
zilogmcz \
|
||||
|
||||
$(OBJDIR)/src/formats/format_%.o: $(OBJDIR)/src/formats/format_%.cc
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user