Commit Graph

36 Commits

Author SHA1 Message Date
David Given
d17f6116f0 Lots of symbol renaming. 2025-10-14 22:32:42 +02:00
David Given
2d6cb22e3a Looks like we're going to have to rework the reader/writer/source/sink
interfaces, so do fluxsink. This lets us test for overwriting a flux
file on writing in the GUI. HG: Enter commit message.
2025-10-14 21:54:59 +02:00
David Given
97bb563ba0 Another massive overhaul to rip out the last remaining bits of Layout. 2025-10-10 00:21:47 +02:00
David Given
e75e1a6e27 Make the track/cylinder side/head terminology more consistent. 2025-09-08 20:08:23 +02:00
David Given
786636ef5d Don't allow writing Apple 2 flux images to SCP files, because there
isn't space for the quarter-step tracks.
2025-08-17 11:42:34 +02:00
David Given
f24e4029b4 Flux sources now add the locations of their data to _extraConfig ---
which is now honoured. Fix a bunch of bugs in some of the flux sources
and sinks. The converter now actually works, maybe.
2025-08-17 00:38:25 +02:00
David Given
4ebda29171 Rename track -> cylinder in lots of places. 2025-08-16 17:39:55 +02:00
David Given
53026f3d02 Rework the way locations are handled to use the new locations
microformat rather than the old RangeProto.
2025-08-16 16:59:44 +02:00
David Given
7983a4b883 Move the external file format stuff into its own module. 2024-10-15 00:46:46 +02:00
David Given
ea4a147751 Move fluxmapreader/fluxpattern into data. 2024-10-15 00:00:27 +02:00
David Given
c5373480ba Move a lot of the data-handling utilities into their own module. 2024-10-13 13:35:48 +02:00
David Given
e1f2494966 Create a config module containing all the configuration, proto and flags
stuff.
2024-10-13 11:57:18 +02:00
David Given
9ddfa5a56b Move the logger into core. 2024-10-13 11:39:33 +02:00
David Given
ca940d1599 Refactor core libraries into their own library. 2024-10-01 20:36:53 +02: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
dae9537472 Warning fixes. 2023-07-07 21:51:24 +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
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
dg
ccd9539015 Adjust the SCP write logic so an unspecified TPI is treated as 96 (the usual). 2023-04-07 09:02:46 +00:00
dg
2b1a6dbb03 Make the scp flux sink use the layout to determine which tracks and sectors are
being written rather than the range flags directly.
2022-11-27 11:52:16 +00:00
David Given
86c5cccb08 Rename cylinder to track throughout (mostly). 2022-03-25 20:16:12 +01:00
David Given
96214bf3fd Refactor for better multi-read support. Each read is now held separately, with
F_DESYNC being deprecated, and FluxSource returns an iterator which can be used
to retry reads.
2022-03-07 00:07:42 +01:00
Jeff Epler
a6bf6f901f Error gracefully when requested to write a too-large scp image
This prevents a crash when more tracks were recorded than fit in an
scp image. When I first encountered a problem doing an 84-track operation,
this led to a segfault later on since memory was written past the end
of _fileheader, and (I think) stomped on a pointer.
2022-02-11 09:10:20 -06:00
David Given
89688394f8 Replace the upgradefluxfile builtin with a seperate upgrade-flux-file tool.
This allows us to remove all the SQL stuff from the main program, and restores
the ability to upgrade from version 2 SQL files.
2022-02-04 21:27:24 +01:00
David Given
7b0a4a057d Merge pull request #376 from tdaede/scpfix2
Fix SCP writer to always write complete revolutions.
2021-12-09 22:26:36 +00:00
Thomas Daede
0c3c08db36 SCP: Only write the last continuous fluxmap. 2021-12-06 11:47:42 -08:00
Thomas Daede
634be4ae51 Fix SCP writer to always write complete revolutions.
There were a couple of problems that needed to be fixed:

- Fluxmaps can be produced with zero index pulses by encoders.
This is somewhat ambiguous but it's assumed that this means there
is exactly one revolution.

- The SCP unindexed mode wasn't properly supported, as it should
create equal-length revolutions not aligned to indexes. However,
fluxmaps don't contain any information on rotation speed. Therefore,
drop the ability to create unindexed SCPs and slightly change the
meaning of the option to not include pre-index data.

- Real flux reads can potentially produce duplicate index pulses.
Avoid creating zero-length revs.

- Fix off-by-one error for rev count.
2021-12-06 07:41:16 -08:00
dg
18d90c44dd Rework the flux decoders to add a desync opcode for separating multiple reads
in a flux stream. Finally add a unit test for the flux decoder.
2021-12-05 14:42:57 +00:00
dtrg
8d6a811204 Correctly write the number of revolutions in SCP files. 2021-12-03 18:13:17 +00:00
Eric Anderson
181f2f38d8 s/ScpTrackStart/ScpTrackHeader/ and use in ScpTrack 2021-10-30 10:29:17 -07:00
David Given
a0164b8de3 Rip out dataspecs everywhere. 2021-05-18 22:22:06 +02:00
David Given
3588d681a2 Convert fluxscp to a proper flux sink. 2021-05-17 23:28:30 +02:00