Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -128,6 +128,7 @@ choices because they can store multiple types of file system.
| [`commodore`](doc/disk-commodore.md) | Commodore: 1541, 1581, 8050 and variations | 🦄 | 🦄 | CBMFS |
| [`eco1`](doc/disk-eco1.md) | VDS Eco1: CP/M; 1210kB 77-track mixed format DSHD | 🦖 | | CPMFS |
| [`epsonpf10`](doc/disk-epsonpf10.md) | Epson PF-10: CP/M; 3.5" 40-track DSDD | 🦖 | | CPMFS |
| [`epsonqx10`](doc/disk-epsonqx10.md) | Epson QX-10: CP/M; 5.25" 40-track DSDD | 🦖 | 🦖 | CPMFS |
| [`f85`](doc/disk-f85.md) | Durango F85: 461kB 5.25" 77-track SS | 🦖 | | |
| [`fb100`](doc/disk-fb100.md) | Brother FB-100: 100kB 3.5" 40-track SSSD | 🦖 | | |
| [`hplif`](doc/disk-hplif.md) | Hewlett-Packard LIF: a variety of disk formats used by HP | 🦄 | 🦄 | LIF |
Expand Down
88 changes: 88 additions & 0 deletions doc/disk-epsonqx10.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
Epson QX-10
====
## CP/M; 5.25" 40-track DSDD
<!-- This file is automatically generated. Do not edit. -->

The Epson QX-10 is a Z80-based CP/M microcomputer with two internal 5.25"
double-sided drives. The drives are 48 TPI, soft-sectored, double-density
MFM at 250 kbit/s and 300 RPM, with 40 usable tracks per side (tracks
0-39). The hardware lists 80 physical tracks, but the standard formats use
only 40 per side at 48 TPI.

The QX-10 shipped with CP/M and also with Epson's Valdocs environment;
different operating system distributions used different logical geometries on
otherwise identical media, so "QX-10 format" is not a single layout.
FluxEngine distinguishes three variants found in the wild and documented in
Epson's CP/M External Reference Spec (B2.20, 24 Feb 84) and the QX-10
User's Guide (James Hansen copy), and in the QX-10 Technical Manual
Troubleshooting guide (May 83).

All variants are 5.25" DSDD, soft-sectored (single index hole), MFM,
250 kbit/s, 300 RPM, 48 TPI, 40 cylinders, 2 sides. Sector numbering is
1-based and the controller uses the normal IBM scheme.

## Options

- Format variants:
- `300`: 300kB 5.25" 40-track DSDD, 16 sectors x 256 bytes
- `380`: 380kB 5.25" 40-track DSDD, 10 sectors x 512 bytes
- `320`: 320kB 5.25" 40-track DSDD mixed bootable

## Examples

To read:

- `fluxengine read -c epsonqx10 --300 -s drive:0 -o epsonqx10.img`
- `fluxengine read -c epsonqx10 --380 -s drive:0 -o epsonqx10.img`
- `fluxengine read -c epsonqx10 --320 -s drive:0 -o epsonqx10.img`

## 320kB conventional variant (16 x 256 bytes)

The layout most commonly meant by "Epson QX-10 format" in disk-imaging and
CP/M transfer utilities:

* 40 tracks x 2 sides x 16 sectors x 256 bytes = 327,680 bytes
* Formatted capacity listed as 328 kbyte in the QX-10 Technical Manual
Troubleshooting guide; nominal CP/M capacity ~300 kB after reserving
2 system tracks.

Use this for a typical QX-10 CP/M data disk if you do not know which
variant you have.

## 400kB alternate / Valdocs-associated variant (10 x 512 bytes)

Identical physical geometry and rotation speed, but each track holds
10 sectors of 512 bytes (5,120 bytes/track) instead of 16 x 256
(4,096 bytes/track):

* 40 tracks x 2 sides x 10 sectors x 512 bytes = 409,600 bytes raw
* Nominal CP/M capacity ~380 kB after 2 system tracks.

The Epson CP/M External Reference Spec identifies both this and the
16 x 256 layout as QX-10 formats; the BIOS listing notes the standard
implementation as 512-byte sectors with 10 sectors per track.

## 396kB mixed-format bootable variant

Some QX-10 system/boot media use a mixed organisation: early tracks use
256-byte sectors while later tracks use 512-byte sectors. The operating
system, directory and boot code occupy the early tracks.

FluxEngine's profile for this is:

* tracks 0-1 (cylinders 0-1, both sides): 16 sectors x 256 bytes
* tracks 2-39: 10 sectors x 512 bytes

Raw capacity with that split is 4 tracks x 4,096 + 76 tracks x 5,120 =
405,504 bytes; however, this also gives the same ~380 kB of user space,
as for the 400kB format, but with less reserved operating system space.

## References

* [QX-10 Technical Manual Troubleshooting, May 83 (bitsavers)](http://www.bitsavers.org/pdf/epson/QX-10/QX-10_Technical_Manual_Troubleshooting_May83.pdf)
* [QX-10 Operations u1 (bitsavers)](http://www.bitsavers.org/pdf/epson/QX-10/QX-10_Operations_u1.pdf)
* [CP/M-80 Epson QX-10 External Reference Spec B2.20, 24 Feb 84 (vtda)](https://vtda.org/docs/computing/Epson/QX-10/CPM-80_Epson_QX-10_External_Reference_Spec_B2.20_24Feb84.pdf)
* [Epson QX-10 User's Guide, James Hansen (bad copy 2) (vtda)](https://vtda.org/docs/computing/Epson/QX-10/Epson_QX-10_Users_Guide_JamesHansen(bad_copy2).pdf) - mixed layout
* [QX-10 detail page](https://www.vintagecomputer.net/fjkraan/comp/qx10/detail.html)
* [PF-10 vs QX-10 note: PF-10 is 3.5" 512 bytes/sector](https://github.com/davidgiven/fluxengine/blob/master/java/com/cowlark/fluxengine/arch/epsonpf10.textpb)

188 changes: 188 additions & 0 deletions java/com/cowlark/fluxengine/arch/epsonqx10.textpb
Original file line number Diff line number Diff line change
@@ -0,0 +1,188 @@
shortname: 'Epson QX-10'
comment: 'CP/M; 5.25" 40-track DSDD'
read_support_status: DINOSAUR
write_support_status: DINOSAUR

documentation:
<<<
The Epson QX-10 is a Z80-based CP/M microcomputer with two internal 5.25"
double-sided drives. The drives are 48 TPI, soft-sectored, double-density
MFM at 250 kbit/s and 300 RPM, with 40 usable tracks per side (tracks
0-39). The hardware lists 80 physical tracks, but the standard formats use
only 40 per side at 48 TPI.

The QX-10 shipped with CP/M and also with Epson's Valdocs environment;
different operating system distributions used different logical geometries on
otherwise identical media, so "QX-10 format" is not a single layout.
FluxEngine distinguishes three variants found in the wild and documented in
Epson's CP/M External Reference Spec (B2.20, 24 Feb 84) and the QX-10
User's Guide (James Hansen copy), and in the QX-10 Technical Manual
Troubleshooting guide (May 83).

All variants are 5.25" DSDD, soft-sectored (single index hole), MFM,
250 kbit/s, 300 RPM, 48 TPI, 40 cylinders, 2 sides. Sector numbering is
1-based and the controller uses the normal IBM scheme.
>>>

documentation:
<<<
## 320kB conventional variant (16 x 256 bytes)

The layout most commonly meant by "Epson QX-10 format" in disk-imaging and
CP/M transfer utilities:

* 40 tracks x 2 sides x 16 sectors x 256 bytes = 327,680 bytes
* Formatted capacity listed as 328 kbyte in the QX-10 Technical Manual
Troubleshooting guide; nominal CP/M capacity ~300 kB after reserving
2 system tracks.

Use this for a typical QX-10 CP/M data disk if you do not know which
variant you have.
>>>

documentation:
<<<
## 400kB alternate / Valdocs-associated variant (10 x 512 bytes)

Identical physical geometry and rotation speed, but each track holds
10 sectors of 512 bytes (5,120 bytes/track) instead of 16 x 256
(4,096 bytes/track):

* 40 tracks x 2 sides x 10 sectors x 512 bytes = 409,600 bytes raw
* Nominal CP/M capacity ~380 kB after 2 system tracks.

The Epson CP/M External Reference Spec identifies both this and the
16 x 256 layout as QX-10 formats; the BIOS listing notes the standard
implementation as 512-byte sectors with 10 sectors per track.
>>>

documentation:
<<<
## 396kB mixed-format bootable variant

Some QX-10 system/boot media use a mixed organisation: early tracks use
256-byte sectors while later tracks use 512-byte sectors. The operating
system, directory and boot code occupy the early tracks.

FluxEngine's profile for this is:

* tracks 0-1 (cylinders 0-1, both sides): 16 sectors x 256 bytes
* tracks 2-39: 10 sectors x 512 bytes

Raw capacity with that split is 4 tracks x 4,096 + 76 tracks x 5,120 =
405,504 bytes; however, this also gives the same ~380 kB of user space,
as for the 400kB format, but with less reserved operating system space.
>>>

documentation:
<<<
## References

* [QX-10 Technical Manual Troubleshooting, May 83 (bitsavers)](http://www.bitsavers.org/pdf/epson/QX-10/QX-10_Technical_Manual_Troubleshooting_May83.pdf)
* [QX-10 Operations u1 (bitsavers)](http://www.bitsavers.org/pdf/epson/QX-10/QX-10_Operations_u1.pdf)
* [CP/M-80 Epson QX-10 External Reference Spec B2.20, 24 Feb 84 (vtda)](https://vtda.org/docs/computing/Epson/QX-10/CPM-80_Epson_QX-10_External_Reference_Spec_B2.20_24Feb84.pdf)
* [Epson QX-10 User's Guide, James Hansen (bad copy 2) (vtda)](https://vtda.org/docs/computing/Epson/QX-10/Epson_QX-10_Users_Guide_JamesHansen(bad_copy2).pdf) - mixed layout
* [QX-10 detail page](https://www.vintagecomputer.net/fjkraan/comp/qx10/detail.html)
* [PF-10 vs QX-10 note: PF-10 is 3.5" 512 bytes/sector](https://github.com/davidgiven/fluxengine/blob/master/java/com/cowlark/fluxengine/arch/epsonpf10.textpb)
>>>

image_reader {
filename: "epsonqx10.img"
type: IMAGETYPE_IMG
}

image_writer {
filename: "epsonqx10.img"
type: IMAGETYPE_IMG
}

decoder {
ibm {}
}

filesystem {
type: CPMFS
cpmfs {
filesystem_start {
track: 2
}
block_size: 2048
dir_entries: 64
}
}

option_group {
comment: "$formats"

option {
name: "300"
comment: '300kB 5.25" 40-track DSDD, 16 sectors x 256 bytes'
set_by_default: true

config {
layout {
format_type: FORMATTYPE_40TRACK
tracks: 40
sides: 2
layoutdata {
sector_size: 256
physical {
start_sector: 1
count: 16
}
}
}
}
}

option {
name: "380"
comment: '380kB 5.25" 40-track DSDD, 10 sectors x 512 bytes'

config {
layout {
format_type: FORMATTYPE_40TRACK
tracks: 40
sides: 2
layoutdata {
sector_size: 512
physical {
start_sector: 1
count: 10
}
}
}
}
}

option {
name: "320"
comment: '320kB 5.25" 40-track DSDD mixed bootable'

config {
layout {
format_type: FORMATTYPE_40TRACK
tracks: 40
sides: 2
layoutdata {
track: 0
up_to_track: 1
sector_size: 256
physical {
start_sector: 1
count: 16
}
}
layoutdata {
track: 2
up_to_track: 39
sector_size: 512
physical {
start_sector: 1
count: 10
}
}
}
}
}
}
2 changes: 1 addition & 1 deletion java/com/cowlark/fluxengine/gui/VisualiserPanel.java
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ public VisualiserPanel(ImageViewModel model)
{
this.model = model;

setPreferredSize(dimensionPts(300, 600));
setPreferredSize(dimensionPts(250, 500));

Viewable.cast(model.getDisk()).onChange(From.ALL, it -> diskChanged());
}
Expand Down
2 changes: 1 addition & 1 deletion javatests/com/cowlark/fluxengine/data/FormatsTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ public void returnsNullForUnknownName()
@Test
public void returnsAllConfigNames()
{
assertThat(Formats.all()).hasSize(38);
assertThat(Formats.all()).hasSize(39);
assertThat(Formats.all()).contains("ibm");
assertThat(Formats.all()).contains("_global_options");
}
Expand Down
Loading