Commit Graph

1754 Commits

Author SHA1 Message Date
David Given
40a42c65c1 The rotational speed message is now done via the logger. 2022-02-21 22:21:46 +01:00
David Given
e14030e369 Actually start using bits of the decoder framework. 2022-02-21 22:02:28 +01:00
David Given
c6cef191a7 Start work on setting the controls in the main window. 2022-02-21 00:57:39 +01:00
David Given
6ca9f83bfe Add the main threading stuff. 2022-02-21 00:14:27 +01:00
David Given
b3fcdc5f40 Come up with a UI design I'm happy with. Start work on the disk visualiser. 2022-02-20 22:41:47 +01:00
David Given
c6591cc11a Start using wxformbuilder for GUI design. 2022-02-20 00:07:47 +01:00
David Given
e31ba479b2 Merge from master. 2022-02-19 23:38:51 +01:00
David Given
659b668012 Merge pull request #463 from hharte/improve_micropolis_decoder
Improve micropolis decoder
2022-02-19 22:34:14 +00:00
Howard M. Harte
d69944dd8c Micropolis: Add support for MZOS checksum.
Vector MZOS uses a different sector checksum than the standard
Micropolis checksum used by MDOS, CP/M and OASIS.  Automatically
detect the checksum on the disk by default, but allow the user
to force the use of a specific checksum using the
--decoder.micropolis.checksum_type parameter.
2022-02-19 14:10:56 -08:00
Howard M. Harte
a25111e411 Micropolis: Improve decode.
* Discard a partial sector at the end of the track.
    * Do not seek to the index mark for the first sector.
    * Use a 64-bit pattern to match the SYNC.
    * If SYNC is found too early, search for a subsequent SYNC.
    * While decoding the sector record, enforce the SYNC pattern
      and track ID.
2022-02-19 14:10:44 -08:00
Howard M. Harte
6866d5d3fa Require 16 sectors for Micropolis disks. 2022-02-19 14:10:35 -08:00
David Given
21b3d1c521 Remove stuff which is too modern for Ubuntu. 2022-02-19 22:56:13 +01:00
David Given
f2bdd1cc49 More work on the logger overhaul: the reader should be done now. 2022-02-19 22:48:44 +01:00
David Given
9f09794ae6 Merge pull request #461 from hharte/fix_upgrade_windows
upgrade-flux-file: Fix for Windows
2022-02-19 21:29:54 +00:00
Howard M. Harte
6a1fb3d829 upgrade-flux-file: Fix for Windows
Close the database and remove the input file prior to renaming.
2022-02-19 13:14:25 -08:00
David Given
631b9768af Attempt to fix the BK formats. 2022-02-17 23:57:23 +01:00
Eugene Bolshakoff
a2d9db85cb adjust some numbers 2022-02-17 19:20:50 +01:00
David Given
4cb9d0b50a Merge pull request #458 from davidgiven/atarist
Fix the Atari ST profiles
2022-02-16 22:24:48 +01:00
David Given
73f37ef289 Update Atari ST documentation. 2022-02-16 22:06:26 +01:00
David Given
dbda19a209 Make sure that Atari ST disks ignore any spurious sector 66, because of
FastCopy.
2022-02-16 22:03:15 +01:00
David Given
0d7de7bbc0 Add support for ignoring certain sectors (needed for FastCopy disks on the
Atari ST).
2022-02-16 22:02:50 +01:00
David Given
649b78611c Work-in-progress logging overhaul. 2022-02-16 21:24:17 +01:00
Eugene Bolshakoff
22a21d76a4 trying to set clock_mhz the same as for ibm 2022-02-15 15:31:39 +01:00
David Given
5668a74aef Forgot to check in the build script. 2022-02-13 21:21:10 +01:00
David Given
482638601a Add missing files. 2022-02-13 21:07:01 +01:00
David Given
1bfe518f74 First draft (very bad) agat340 decoder. 2022-02-13 20:53:23 +01:00
David Given
eeb5ba40fb Merge pull request #455 from jepler/serial-behavior-improvements
Some quality of life improvements for Adafruit generic GW-compatibles
2022-02-13 12:43:18 +01:00
Jeff Epler
33bd912476 Some quality of life improvements for Adafruit generic GW-compatibles
The addition of the new tcsetattr call fixes a problem where interrupting
fluxengine during a flux read will leave data in the device and/or Linux's
serial buffers, so that the next invocation of fluxengine will fail similar
to
```
Error: command returned garbage (0x27 != 0x0 with status 0x31)
```
(the specific value differs because it's actually flux data)

Merely changing the existing tcsetattr call to specify TCSAFLUSH was not
enough; moving it after the 200ms pause seems to be enough.

Note that it doesn't seem feasible in our USB stack to make DTR reset
the device, since that would take down the USB stack and require a fresh
USB connection.

The addition of the special case for `rlen == 0` in read is for when the
GW-compatible board is reset or crashes and usb-disconnects during a
reading operation. Without this change, fluxengine spins forever at 100%
of a CPU, repeating a read().  After the change, this will cause
the host computer to print messages like:
```
  2.1: 200 ms in 68928 bytes
  3.0: Error: serial read returned no data (device removed?)
```
and exit.

I only tested these changes on Linux (Debian with kernel 5.10) and in
particular I don't know if/how it will work on a Mac.
2022-02-12 22:04:18 -06:00
David Given
33f1084f0a Merge from master. 2022-02-13 00:20:12 +01:00
David Given
e8a9b7cae3 Merge pull request #454 from davidgiven/mx
Fix a regression in the MX decoder.
2022-02-13 00:05:24 +01:00
David Given
f6b1d9c493 Fix a regression in the MX decoder. 2022-02-12 23:37:20 +01:00
David Given
624c34b378 Merge pull request #453 from davidgiven/mx
Fix regressions caused by the decoder change.
2022-02-12 22:56:57 +01:00
David Given
bc6753e5bf Correctly record sector positions. 2022-02-12 22:42:40 +01:00
David Given
c539debc84 Fix the Amiga decoder, which got broken with the decoder change. Also fix the
encoder which was always broken (but Amigas apparently didn't care).
2022-02-12 22:42:15 +01:00
David Given
830f4cec0f Merge pull request #452 from davidgiven/mx
Prevent bad reads on gapless formats.
2022-02-12 15:32:36 +01:00
David Given
03dd9e6e83 Add back support for capturing raw records. 2022-02-12 15:16:25 +01: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
610b7fe95c Merge pull request #451 from jepler/scp-84track
Support 84-track SCP files
2022-02-11 16:25:35 +01:00
Jeff Epler
a6bf6f901f Error gracefully when requested to write a too-large scp image
This prevents a crash when more tracks were recorded than fit in an
scp image. When I first encountered a problem doing an 84-track operation,
this led to a segfault later on since memory was written past the end
of _fileheader, and (I think) stomped on a pointer.
2022-02-11 09:10:20 -06:00
Jeff Epler
ca2e37e852 Include 168 track data headers
According to version 2.2 of the SCP image specification
<https://www.cbmstuff.com/downloads/scp/scp_image_specs.txt>
the number of Track Data Entries for a floppy can be up to 168,
so that up to 84 tracks can be recorded (e.g., fluxengine -c 0-83).

> BYTES 0x10-0x2AF (for floppy image files) are a table of longwords with each entry being
> an offset to a Track Data Header (TDH) for each track that is stored in the image.  The table
> is always sequential.  There is an entry for every track, with up to 168 entries supported for
> floppy disks.  This means that floppy disk images of up to 84 tracks with sides 0/1 are possible.
2022-02-11 09:08:59 -06:00
David Given
d1ffaaa327 Merge pull request #449 from davidgiven/macdsk
Change the mac profiles to produce simple sector images rather the DiskCopy files.
2022-02-08 22:04:48 +01:00
David Given
8b7f551505 Change the mac profiles to produce simple sector images rather the DiskCopy
files (as that seems to be what most people typically use).
2022-02-08 21:21:22 +01:00
David Given
759b3f8fcd Merge pull request #447 from adafruit/master
fix 2 byte pack for revolution count
2022-02-08 20:04:57 +01:00
lady ada
9ec56f1dfa fix 2 byte pack for revolution count 2022-02-08 11:43:20 -05:00
David Given
84e997949f Merge. 2022-02-06 22:14:11 +01:00
David Given
f82bd45fec Pull out extension profiles into their own section of the documentation list. 2022-02-06 22:13:26 +01:00
David Given
3863724007 Merge pull request #443 from davidgiven/upgrade
Rework flux file upgrading and remove the Sqlite dependency.
2022-02-04 22:16:31 +01:00
David Given
7e0ed9fe93 Try to fix the build on Windows and OSX. 2022-02-04 22:00:44 +01:00
David Given
945e3f3c5f Typo fix. 2022-02-04 21:29:56 +01:00