David Given
d0fb85e712
Rename all the remaining layout and location variables to trackInfo (where
...
appropriate).
2022-09-16 00:20:54 +02:00
David Given
81cbd00cc8
Rename Track to TrackInfo, which better describes what it is.
2022-09-16 00:09:39 +02:00
David Given
4a565b5ea0
Split the Layout class.
2022-09-16 00:07:22 +02:00
David Given
82f61eee12
Eliminate Location in favour of Layout.
2022-09-15 23:52:07 +02:00
David Given
88fc7ff9c3
Begin cleaning up the Layout stuff.
2022-09-15 21:45:12 +02:00
David Given
9a8fc80220
Massive overhaul of how the physical/logical layout mapping is done, to make it
...
more consistent and bidirectional everywhere and just generally better.
Hopefully this fixes that pesky 1581 problem.
2022-09-15 20:23:33 +02:00
David Given
6b7e81d7fb
Move requiredSectors() to the base class.
2022-09-13 00:32:04 +02:00
David Given
dce6248193
Victor9k no longer uses collectSectors().
2022-09-13 00:22:46 +02:00
David Given
0e349ede4c
TIDS990 no longer uses collectSectors.
2022-09-13 00:19:45 +02:00
David Given
60117471a7
No more collectSectors in Brother.
2022-09-13 00:06:55 +02:00
David Given
3c23e7b047
Merge.
2022-09-12 23:58:03 +02:00
David Given
b48e1ba9e0
Remove the trivial collectSectors() methods which have been replaced by the
...
base class.
2022-09-12 23:55:52 +02:00
David Given
1267191e8e
Abstract is for Java.
2022-09-12 23:52:24 +02:00
David Given
49b6bbff37
Add sector skew support to SectorListProto; add a partial definition for the
...
Victor 9000.
2022-09-12 23:10:24 +02:00
David Given
339e9cca10
Hopefully actually fix the C64 side issue, this time, by rethinking how the IBM
...
encoder/decoder handles side swapping. We want to be able to swap everything,
or just the side bytes.
2022-09-12 22:04:58 +02:00
David Given
c63a761ca4
Actually fix the c64 1581 side issue. Turns out the data's not flipped between
...
the two sides, only the bit in the sector header...
2022-09-12 15:34:21 +02:00
David Given
3cb098f9ba
Rip out the old approach to soft sector remapping as it wasn't working.
2022-09-11 17:05:40 +02:00
David Given
dda713a6be
Remove the rest of the mapper.
2022-09-10 22:47:35 +02:00
David Given
085ad5f2a4
Actually start using the new physical sector stuff.
2022-09-10 20:43:24 +02:00
David Given
a6db36e7b3
Convert from LayoutData to Layout.
2022-09-10 19:53:05 +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
David Given
fa760b702c
Fix C automatic dependencies to actually work.
2022-06-16 19:39:47 +02:00
David Given
b025e6bb88
Remove dep/fmt completely.
2022-06-14 20:12:55 +02:00
David Given
07b1719b17
Let's try an actual vanilla Makefile.
2022-06-13 23:21:06 +02:00
David Given
15eb88e922
Convert, hopefully, the remaining encoders to do automatic disk sizing. Ther e
...
may be bugs.
2022-03-29 01:23:35 +02:00
David Given
9a299b758a
Correctly set the format byte.
2022-03-29 00:03:59 +02:00
David Given
5c68b47a29
Add missing file.
2022-03-28 00:19:02 +02: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
178aa9d32f
Remove the obsolete reader.* and rename writer.* to readerwriter.*.
2022-03-25 20:57:42 +01:00
David Given
86c5cccb08
Rename cylinder to track throughout (mostly).
2022-03-25 20:16:12 +01:00
David Given
d303067deb
Massive refactor to work in logical cylinders everywhere. The logical/physical
...
mapping is now done at the last stage and should, ideally, be automatic. I'm
sure there are bugs everywhere.
2022-03-25 00:22:28 +01:00
David Given
77a0c9f341
Typo fix.
2022-03-19 18:43:20 +01:00
David Given
fc7859dc27
Update comment about the generation of the desync sequence.
2022-03-19 18:41:03 +01:00
David Given
39d6b0525f
Fix incredibly stupid bug.
2022-03-19 18:07:10 +01:00
David Given
51e091ded6
Better documentation of the missing clock bit.
2022-03-19 14:00:35 +01:00
David Given
52407848c1
Do more sanity checks for bad sectors, improving the reads by a lot.
2022-03-19 13:55:22 +01:00
David Given
276282e847
Merge from master.
2022-03-19 00:51:59 +01:00
Jeff Epler
6cfe69634c
Merge remote-tracking branch 'origin/master' into further-apple-fixes
2022-03-08 07:45:20 -06:00
Jeff Epler
61be3714a5
apple2: encoder: Fix writing of "FF40"
...
I was writing "FF40" as "FF48": 1111 1111 0000 instead of 1111 1111 00.
This sequence of four zeros will not allow the real hardware to synchronize
to the bitstream.
With this change, I was able to boot a DOS 3.3 disk I rearranged into
"physical" order; some 'there's a disk error' raspberries occur (probably
indicating a data error within a sector) during the boot process, so
something is still obviously marginal, but this is a huge step forward.
2022-03-08 07:44:03 -06:00
Jeff Epler
0aed615ee5
Fix crash when reading disks written on real apple2
...
`readRaw8` throws an exception if you run out of data. This did not
turn up during my testing, because I was reading back a disk written by
fluxengine, so everything was aligned to the index pulse and no sector
ever straddled a revolution. On a "real" apple2-written disk, this was
not the case.
Incidentally, the "extra 0" problem exists on a real apple2-written
floppy as well.
2022-03-07 22:40:33 -06:00
David Given
aa805f81e0
Simplify.
2022-03-04 20:28:09 +01:00
David Given
93a67dadf6
Merge from master.
2022-03-04 20:19:42 +01:00
David Given
0edca836f0
Let the image reader do the physical/logical track mapping.
2022-03-03 00:18:49 +01:00
Jeff Epler
79eec41bcd
Revamp how extra zeros are handled
...
It's not OK to call seek() here. Instead, add a function which can read
an apple 8-bit flux value in terms of readRaw8 and readRawBits. Apply
this function to all the data bytes, rather than just the first one.
2022-03-02 07:45:24 -06:00
Jeff Epler
d90fcbf7ad
Handle extra 0-bits at the start of a sector
2022-03-02 07:43:45 -06:00
Jeff Epler
c4e4520058
apple2 decoder: explain the progression of sector status values
2022-03-02 07:43:43 -06:00
Jeff Epler
87cb4b6d18
Add apple2 encoder
...
This is tested with encodedecodetest.sh but is not tested on HW yet.
It's likely that the sector order (interleave) doesn't match real systems.
2022-02-28 16:22:53 -06:00
Paul Devine
f796b6b40d
works in physical victor 9000 machine
2022-02-26 14:59:09 -08:00
Howard M. Harte
d028db1ba3
northstar: Improve decode a little more.
...
seekToPattern() can skip the index hole if it doesn't find the
SYNC pattern. If this happens too close to the end of the flux
stream, it can result in a conflicted sector. In this case,
discard the sector.
2022-02-25 22:08:57 -08:00