Commit Graph

96 Commits

Author SHA1 Message Date
David Given
928ffbd7af Convert the Macintosh decoder. 2021-07-11 15:58:40 +02:00
David Given
25ebad2448 Convert the IBM decoder. 2021-07-11 15:56:20 +02:00
David Given
dd951dc0ed Convert the Fb100 decoder (which I think got lost in the last big refactor). 2021-07-11 15:54:04 +02:00
David Given
aed9e44b6b Convert the Durango F85 decoder. 2021-07-11 15:50:35 +02:00
David Given
1fa2547aff Convert the C64 decoder. 2021-07-11 13:04:07 +02:00
David Given
164ceb845e Convert the Brother decoder. 2021-07-11 13:01:56 +02:00
David Given
ce463686dc Convert the Apple2 decoder. 2021-07-11 12:57:41 +02:00
David Given
92aa28cac2 Convert the AES Lanier decoder. 2021-07-11 12:55:05 +02:00
David Given
f8674230ed Add prototypes for all the decoders because it's easier to do them in one go... 2021-07-11 12:52:34 +02:00
David Given
326969e488 Clean up the Amiga decoder. 2021-07-11 12:34:40 +02:00
David Given
4cbb75df60 Merge pull request #273 from davidgiven/amiga
Fix the Amiga encoder after the protobuf rewrite.
2021-07-06 23:05:45 +01:00
David Given
56cbf39d59 Finally make the Amiga encoder work properly. Do some FM/MFM/bits refactoring. 2021-07-05 23:16:03 +02:00
David Given
0092dec49e Hopefully make writing C64 disks work again by fixing the logical:physical
track mapping.
2021-07-03 12:09:10 +02:00
David Given
3447689c19 Don't crash when trying to encode tracks with no data. 2021-07-03 11:38:45 +02:00
David Given
aed5a02ee1 Remove flag references from the Amiga encoder. 2021-05-28 16:58:28 +02:00
David Given
fb2dbe25cd Add missing file. 2021-05-24 23:33:40 +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
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
a1f4014738 Rework the ibm encoder to allow per-track configurations. Rename everything for
consistency.
2021-05-19 23:01:32 +02:00
David Given
9df35c1814 Fix a bunch of documentation strings. 2021-05-18 21:10:59 +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
98d5a2dad9 Add missing file. 2021-05-15 18:07:05 +02:00
David Given
4ab8b4984d Rename all InputProto and OutputProtos for clarity. 2021-05-15 18:05:53 +02:00
David Given
f741ad058e Convert the ZilogMcz decoder. 2021-05-15 17:40:20 +02:00
David Given
2512a4fc32 Convert the Victor9k decoder. 2021-05-15 17:29:59 +02:00
David Given
5554d5e608 Convert the TIDS990 encoder and decoder. 2021-05-15 17:24:20 +02:00
David Given
48d5ed2ff9 Convert the MX decoder. 2021-05-15 17:06:28 +02:00
David Given
f46e444aa2 Convert the Micropolis decoder. 2021-05-15 14:10:08 +02:00
David Given
1149ad86a2 Convert the Apple2 decoder. 2021-05-15 14:04:44 +02:00
David Given
ebe678b18b Fix IBM sector base default; convert the ampro configuration. 2021-05-15 13:47:34 +02:00
David Given
93dcc7e242 Convert the image readers and Mac encoder and decoder. 2021-05-15 12:33:22 +02:00
David Given
243eea33e9 Convert the FB100 decoder. 2021-05-15 12:11:11 +02:00
David Given
38a8367f62 Convert the F85 decoder. 2021-05-15 12:05:31 +02:00
David Given
f7c31281e0 Convert the C64 decoder to the new configuration scheme. Also convert all the
imagewriters.
2021-05-15 00:25:32 +02:00
David Given
c8d0950979 Convert the Amiga encoder and decoder to the new system. 2021-05-15 00:06:39 +02:00
David Given
a4ff59eccb Remember to actually hook the aeslanier decoder up. 2021-05-14 23:42:01 +02:00
David Given
57e81ee72e Convert the AES Lanier decoder to the new configuration system. 2021-05-14 23:39:07 +02:00
David Given
5a186b6960 Rename all protos to end with 'Proto' to avoid name conflicts. 2021-05-13 18:05:08 +02:00
David Given
f9510c54b2 Split the encoder/decoder configuration away from inputs and outputs. Make the
test pattern creator a flux source.
2021-05-13 17:23:06 +02:00
David Given
3a8ddf8025 The writer now works with the new config system. 2021-05-13 15:55:05 +02:00
David Given
9d0804eff4 Convert the IBM decoder to use the new config system. 2021-05-12 23:42:38 +02:00
wybren1971
e01a7110ac Added format bytes (disk ID) to header from BAM 2021-05-12 14:55:32 +02:00
wybren1971
295325a20b Added some checks on sector status 2021-05-12 10:11:51 +02:00
wybren1971
f92814b24b Added option to write d64 images back to disk 2021-05-11 19:54:50 +02:00
David Given
a8f1469d36 Flesh out the proto config stuff some more. 2021-05-10 22:38:04 +02:00
David Given
1b0ec50711 Add lots more protobuf machinery. 2021-05-07 23:38:31 +02:00
David Given
1b5b170557 Add support for possibly writing 40-track disks on an 80-track drive. 2021-05-07 22:01:20 +02:00
wybren1971
333f2aba54 added a bool for FM or MFM coding 2021-05-06 14:17:05 +02:00