Commit Graph

453 Commits

Author SHA1 Message Date
David Given
1fcb8c7179 Rename dgmapper.cc to something more sensible. 2021-05-29 00:05:10 +02:00
David Given
1440c3c8d6 Make the Macintosh encoder work again; convert the diskcopy reader to work with
the new geometry system.
2021-05-29 00:04:13 +02:00
David Given
2935c2d925 Replace the d64 image reader with an appropriate img reader configuration. 2021-05-27 23:47:43 +02:00
David Given
ebc25f9758 Merge from master. 2021-05-27 23:39:53 +02:00
David Given
9f1e1bb2b6 Merge pull request #271 from hharte/rpm-retry
Perform retries when calculating drive RPM.
2021-05-27 11:29:51 +02:00
David Given
4ec056900c Merge pull request #270 from hharte/track-ruler
Add ruler for track numbers.
2021-05-27 11:21:24 +02:00
Howard M. Harte
8b2ce33f83 Fix typo. 2021-05-26 23:12:09 -07:00
Howard M. Harte
44b452b30b Perform retries when calculating drive RPM.
The drive RPM measurement fails about 3% of the time.  Retry up to
five times until it succeeds, and exit with an error if it doesn't.
2021-05-26 23:02:34 -07:00
Howard M. Harte
7c3df93580 Add ruler for track numbers. 2021-05-26 22:50:13 -07:00
David Given
99b9145a0d Convert the imagereader to a simple block fetcher and hook up the geometry
mapper to it. Seems to work given some basic testing.
2021-05-27 00:06:50 +02:00
David Given
e7348eaa4f Added a functioning (I hope) sketch of the disassembling geometry mapper code. 2021-05-26 00:00:52 +02:00
David Given
bf4831be9f Migrate the Northstar code to the new framework. 2021-05-24 23:20:59 +02:00
David Given
0f83082cf0 Merge branch 'northstar' of https://github.com/hharte/fluxengine into hharte-northstar 2021-05-24 21:39:51 +02:00
David Given
60bc8ad888 Add comment fields to all the configs; fix some documentation. 2021-05-23 23:57:38 +02:00
David Given
9bf309eb5c Add physical mapping options. 2021-05-23 23:57:22 +02:00
David Given
4f0a5e854c Attempt to rework the USB handling to make the GreaseWeazle work on Windows and
Mac --- we abandon autodetection for anything other that FluxEngines as libusb
is painfully inconsistent with serial devices.
2021-05-23 18:53:25 +01:00
David Given
c669a9c808 Add libudev autodetect for GreaseWeazle devices. 2021-05-23 17:44:01 +02:00
David Given
e4d827256f Add test code for platform detection. 2021-05-23 12:42:49 +02:00
David Given
1c1ad2725e Port the Greaseweazle driver to use the serial port rather than raw libusb. 2021-05-23 12:39:41 +02:00
David Given
d18e54c5a3 Add Greaseweazle support for firmwares 22 and 24. 2021-05-23 12:01:29 +02:00
David Given
7a885e23d3 Merge branch 'greaseweazle_v024_compat' of https://github.com/hpingel/fluxengine into hpingel-greaseweazle_v024_compat 2021-05-23 10:50:35 +02:00
David Given
4614b63c30 Convert wybren1971's D64 reader and 1541 encoder to work with the new
architecture.
2021-05-21 23:34:28 +02:00
David Given
cf41b6cbb2 Merge branch 'Commodore-64-encoder' of https://github.com/wybren1971/fluxengine into wybren1971-Commodore-64-encoder 2021-05-21 23:02:04 +02:00
David Given
1997abcde6 Warning fix pass. 2021-05-21 22:12:14 +02:00
David Given
18b683d22e Add drive:N as a valid flux source and sink specifier; remove the --drive
option. Also, a bunch of option cleanup.
2021-05-20 22:14:22 +02:00
David Given
91c52e91cd Merge. 2021-05-19 23:02:08 +02:00
David Given
a1f4014738 Rework the ibm encoder to allow per-track configurations. Rename everything for
consistency.
2021-05-19 23:01:32 +02:00
David Given
8a136ac4f6 Allow imgimagewriter to write mixed-format disks; add an eco1 disk format for the VDS Eco1. 2021-05-19 22:12:23 +02:00
David Given
ea43b3dc6a Apply Windows compatability hack. 2021-05-18 22:46:57 +01:00
David Given
57fc787819 You can load config files now. 2021-05-18 22:44:41 +02:00
David Given
a0164b8de3 Rip out dataspecs everywhere. 2021-05-18 22:22:06 +02:00
David Given
9df35c1814 Fix a bunch of documentation strings. 2021-05-18 21:10:59 +02:00
David Given
9d2a5fee86 Range ends default to range start. 2021-05-18 21:09:31 +02:00
David Given
a6b2e932fa copy-flux-to works. 2021-05-18 20:13:03 +02:00
David Given
05aaa2634b Don't hard-code references to the global config in the
updateConfigForFilename() methods.
2021-05-18 19:57:23 +02:00
David Given
2c98f5c542 Convert cwftoflux to a proper flux source. 2021-05-18 19:37:43 +02:00
David Given
d246fca9df Convert scptoflux to a proper flux source. 2021-05-18 01:09:55 +02:00
David Given
c79feb405c Switch to resource path type thingies for specifying flux file types, where
appropriate. Much better.
2021-05-18 00:40:16 +02:00
David Given
b1145f8da3 Flux sink type is now detected from file extension. 2021-05-18 00:23:38 +02:00
David Given
3588d681a2 Convert fluxscp to a proper flux sink. 2021-05-17 23:28:30 +02:00
David Given
55d894ae1f Convert fluxtovcd to a proper flux sink. 2021-05-17 22:12:44 +02:00
David Given
0509caf432 Allow the .au writer to write multiple tracks. 2021-05-17 21:53:15 +02:00
David Given
5d1d807e78 Convert fluxtoau to a real flux sink. 2021-05-17 21:42:25 +02:00
David Given
22ba38b2e0 Add rawread. 2021-05-17 01:06:09 +02:00
Howard M. Harte
5b1a3173f8 Add support for North Star hard-sectored floppies.
North Star Floppy disks use 10-sector hard sectored disks with either FM
or MFM encoding.  They may be single- or double-sided.  Each of the 10
sectors contains 256 (FM) or 512 (MFM) bytes of data.  The disk has 35
cylinders, with tracks 0-34 on side 0, and tracks 35-69 on side 1.
Tracks on side 1 are numbered "backwards" in that track 35 corresponds
to cylinder 34, side 1, and track 69 corresponds to cylinder 0, side 1.

The North Star sector format does not include any head positioning
information.  As such, reads from North Star floppies need to be
synchronized with the index pulse, in order to properly identify the
sector being read.  While there is a command line option:
--sync-with-index, that does this, the North Star reader forces this
behavior by default.

MFM sectors have 32 bytes of 00's followed by two sync characters,
specified in the North Star MDS manual as 0xFBFB.

This is true for most disks; however, I found a few disks, including an
original North Star DOS/BASIC v2.2.1 DQ disk, that uses 0xFBnn, where
nn is an incrementing pattern.

While searching for the start of a sector header, seekToPattern()
ignores the sector pulses.  If a sector header cannot be decoded for any
reason, seekToPattern() will advance past one or more sector pulses.
For this reason, the _hardSectorId is calulated after the sector header
is found.

Due to the nature of the track ordering on side 1, an .nsi image reader
and writer are provided for double-sided disks.  The .nsi image format
supports both single- and double-sided disks; however, single-sided .nsi
images are equivalent to .img images.
2021-05-16 15:41:55 -07:00
David Given
b926f5a692 Setting boolean config fields works. 2021-05-16 23:00:34 +02:00
David Given
471ccf281c Allow setting cylinder and head ranges. 2021-05-16 18:11:40 +02:00
David Given
e4b5e4c502 Make Kryoflux streams again. 2021-05-16 00:25:41 +02:00
David Given
2de3b4f92e Make rawwrite work (which replaces erase and writeflux). 2021-05-15 23:30:58 +02:00
David Given
225a93330d Rename more config stuff. 2021-05-15 22:37:29 +02:00