David Given
15a69f6dcb
Make build with the new ab --- but the tests fail.
2025-03-17 22:33:54 +01:00
David Given
33d241c33e
Move common.proto into config.
2024-10-19 16:58:44 +02:00
David Given
1bcc8f45b5
Modularise encoders. Change arch to not depend on +lib.
2024-10-16 22:00:51 +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
a6981ff7ef
Split the FluxmapReader and FluxPattern files.
2024-10-02 00:42:06 +02:00
David Given
ca940d1599
Refactor core libraries into their own library.
2024-10-01 20:36:53 +02:00
David Given
f5f223f622
First steps towards reworking the build system... again.
2023-10-21 23:02:46 +02:00
dg
dcfcc6271c
Sort out a whole bunch of other things, including cleaning up the way the
...
verification source is handled.
2023-05-12 23:28:25 +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
0551ddc276
Add write support for Apple II 640kB disks.
2023-03-28 20:36:43 +00:00
dg
27a04ee22b
Add initial support for the Basis-108.
2023-03-27 23:07:59 +00:00
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
6b7e81d7fb
Move requiredSectors() to the base class.
2022-09-13 00:32:04 +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
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
1a4caccd07
Rename Sector.logicalSector to Sector.physicalSector.
2022-09-10 18:59: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
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
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
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
Howard M. Harte
8d04d17e39
Fix override warnings in decoders.
2022-02-22 22:45:39 -08:00
David Given
e8d1c90182
Fix, hopefully, the rest of the decoders.
2022-02-12 15:02:42 +01:00
David Given
0933dc1afa
Partially complete rework of all the decoders to avoid seeking inside the
...
fluxmap. This requires resetting the FluxDecoder, which loses any pending
state, resulting in bad reads for (some) formats which don't have gaps between
sectors --- the DVK MX is the main victim.
2022-02-12 00:55:09 +01:00
David Given
42cacb18bd
Lots of warning fixes. Can we switch to C++ 2A?
2021-08-04 20:29:04 +02:00
David Given
f589e094b2
Remove RawRecord, which is now obsolete.
2021-07-15 23:55:29 +02:00
David Given
ce463686dc
Convert the Apple2 decoder.
2021-07-11 12:57:41 +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
4ab8b4984d
Rename all InputProto and OutputProtos for clarity.
2021-05-15 18:05:53 +02:00
David Given
1149ad86a2
Convert the Apple2 decoder.
2021-05-15 14:04:44 +02:00
David Given
4b07c38782
Mechanical refactor to rearrange the source files into a more pleasing order.
2019-08-06 22:25:11 +02:00