12 Commits

Author SHA1 Message Date
David Given
ec16931f3a Update documentation for -c. 2025-08-20 21:23:02 +02:00
David Given
4bcbf2b089 Fix bad documentation which got checked in somehow. 2024-10-16 21:17:43 +02:00
David Given
ca8f2a886e Was this the problem? 2024-10-15 22:45:50 +02:00
David Given
854b3e9c59 Better autogenerated documentation. 2023-05-25 21:14:41 +02:00
dg
a62346c515 Add short names to each profile. 2023-05-07 21:49:14 +00:00
dg
76450d00bf Tidy. 2023-05-07 19:53:57 +00:00
dg
71a7f3554e Remember to actually add the documentation files... 2023-05-07 18:40:24 +00:00
dg
5c3f422a53 First pass at automatic document generation. 2023-05-07 18:36:30 +00:00
dg
bcfc0217dc Consolidate the Northstar formats into each other. 2023-05-05 20:29:45 +00:00
David Given
9086f18413 Update documentation. 2021-07-19 22:39:14 +02:00
David Given
bf4831be9f Migrate the Northstar code to the new framework. 2021-05-24 23:20: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