Commit Graph

34 Commits

Author SHA1 Message Date
David Given
7095c03e28 Fix a whole pile of missing 'override' keywords. 2024-01-22 20:55:38 +01:00
David Given
533b217c8f Eliminate the broken tpi system for a simple drive/format type field. 2023-10-29 21:10:14 +01:00
David Given
f5f223f622 First steps towards reworking the build system... again. 2023-10-21 23:02:46 +02:00
dg
1d77ba6429 ImageReaders can now contribute config. 2023-05-12 22:20:13 +00:00
dg
42e6c11081 Migrate to a new global config object. 2023-05-10 23:13:33 +00:00
dg
9ba3f90f1e Change the global config variable to a globalConfig() function. 2023-05-10 22:07:17 +00:00
dg
6b990a9f51 Overhaul the TPI stuff; now both the drive and the layout have a TPI setting,
which must be set.
2023-05-10 19:58:44 +00:00
dg
d4b55cd8f5 Switch from Logger() to log(). 2023-05-09 22:47:36 +00:00
dg
baaeb0bca7 Fix mangled formatting caused by clang-format. 2023-05-09 21:39:35 +00:00
dg
466c3c34e5 Replace the Error() object with an error() function which takes fmt
formatspecs, making for much cleaner code. Reformatted everything.

This actually happened in multiple steps but then I corrupted my local
repository and I had to recover from the working tree.
2023-05-09 20:59:44 +00:00
Thomas Daede
f8257e697a D88: Use the data length field to seek past any extra data.
This will effectively ignore the field length if it is shorter
than the sector size (or 0).
2022-10-02 16:45:51 -07:00
David Given
0ddfd3bead Merge pull request #605 from tdaede/fix_physical_sector_ordering
D88/NFD: Add physical layout before adding sector.
2022-10-02 20:46:38 +02:00
Thomas Daede
ef5f7ec9c3 D88/NFD: Add physical layout before adding sector.
Partially fixes #603, it is still busted if the number of
tracks is specified larger than what is in the image, which
used to work.
2022-10-01 19:43:17 -07:00
Thomas Daede
69c60c4026 Force density setting for D88/NFD.
This fixes #560 (partially).

I do not understand how the protobuf parsing stuff works enough
to make it detect optional fields.
2022-10-01 18:48:12 -07:00
David Given
dda713a6be Remove the rest of the mapper. 2022-09-10 22:47:35 +02:00
David Given
415aa82a6f The top-level tracks and heads fields are now inferred automatically from the
layout if not set, so we don't have to set them everywhere.
2022-09-10 22:29:27 +02:00
David Given
085ad5f2a4 Actually start using the new physical sector stuff. 2022-09-10 20:43:24 +02:00
David Given
1a4caccd07 Rename Sector.logicalSector to Sector.physicalSector. 2022-09-10 18:59:06 +02:00
David Given
3256b4f627 Eliminate the IBM trackdata sector layout stuff in favour of the layout{}
clause.
2022-08-27 23:23:28 +02:00
Thomas Daede
498558c2b1 Add n88basic sector gaps to d88 reader for PC-88 DD disks.
The values used for 1.2MB HD disks are too narrow for the
PC-88's disk controller.
2022-08-09 21:47:34 -07:00
David Given
adff739a5d Partial conversion to do automatic scaling of flux based on the disk rotation
speed. Although, something seems to have broken for 5.25" disks.
2022-03-27 23:50:32 +02:00
David Given
29f181f9bf Change the readers to correctly set the physical track for each sector using
the mapper (where appropriate).
2022-03-25 20:50:57 +01:00
David Given
86c5cccb08 Rename cylinder to track throughout (mostly). 2022-03-25 20:16:12 +01:00
David Given
ba3f806616 Move a lot of drive parameters into a toplevel drive{} config rather than
leaving them in the source/sink configs (which means they have to be set
twice).
2022-03-13 21:13:56 +01:00
David Given
23b9e9ef5f The image readers now log to the logger. 2022-02-27 00:20:20 +01:00
Thomas Daede
dfb461b05c D88: Add 2D (40 track double density) support.
This assumes a 360rpm drive, and double stepping.

If fluxengine supports the concept of 40 vs 80 track drives in the
future, it might make sense for this to assume a 300rpm drive
instead.
2022-01-28 10:50:36 -08:00
David Given
8fb2ad1986 Automatically set the number of heads and cylinders where appropriate. 2022-01-26 23:53:16 +01:00
David Given
c4e29e74b2 Support HCS as well as CHS format in the image reader/writer. 2022-01-10 23:49:25 +01:00
David Given
17787b97d4 Merge pull request #371 from tdaede/d88hd
Set media density automatically for D88 format.
2021-12-07 21:54:58 +00:00
Thomas Daede
bb5d62fe69 Remove per-track sector check from D88.
It's no longer needed to be this strict.
2021-12-06 10:13:30 -08:00
Thomas Daede
9056b23eaa Set FM gap fill byte in D88. 2021-12-06 08:10:02 -08:00
Thomas Daede
66f82f764d Set media density automatically for D88 format. 2021-12-04 10:31:17 -08:00
Thomas Daede
04b91377c9 Use per-track encoding specified in D88 files.
This supports varying sector sizes, counts, and modulation on
a per-track basis. It also supports writing sectors in the
original order.
2021-12-04 03:36:06 -08:00
Thomas Daede
8a3cd14723 Add minimal D88 image format reader.
This implements a subset of D88, only supporting the first floppy
in an image. It only supports images with equal sector sizes,
equal numbers of sectors per track, and no bad sectors.
2021-12-03 02:18:29 -08:00