Commit graph

286 commits

Author SHA1 Message Date
Keir Fraser
f155a3dcbf usb: Let NoClickStep fail silently in Unit.seek() error path. 2022-02-09 16:02:33 +00:00
Keir Fraser
ffdecb17bc usb: Special error report path for BadCylinder only for Seek command.
Refs #159
2022-02-03 09:15:47 +00:00
Keir Fraser
2db8e3e0a3 setup.sh: Ensure that wheel package is installed before building c_ext
Refs #157
2022-01-29 13:29:14 +00:00
Keir Fraser
848324987f gw.py: Pretty-print a warning about missing version.py file. 2022-01-29 12:59:04 +00:00
Keir Fraser
467c147083 gw rpm: Print 3dp and print summary stats.
Refs #156
2022-01-28 16:54:18 +00:00
Keir Fraser
1bf858c1ae gw read,write,erase: Improved --rpm/--fake-index arg parsing
1. Rename --rpm to --adjust-speed.
2. --adjust-speed and --fake-index take a SPEED option.
   SPEED can be floating-point and any of ms,us,ns,scp,rpm.
Refs #156
2022-01-28 16:54:14 +00:00
Keir Fraser
f5915c0ba7 flux: Correctly generate WriteoutFlux when write is not index cued.
Refs #156
2022-01-28 16:54:10 +00:00
Keir Fraser
2796652506 gw read.write,erase: New option --fake-index=N to fake an index at N rpm.
Useful when the disk drive provides no index pulse (eg. flipped 5.25" disk)
Refs #156
2022-01-28 16:54:00 +00:00
Keir Fraser
233034f327 gw read/write: All format decoders adjust raw data to correct track speed (RPM).
When reads are not index-synced (gw read, gw write verify) use a measurement
we took previously, for flux.ticks_per_rev (fixes crash).

Fixes #153
2022-01-27 11:39:59 +00:00
Keir Fraser
920d944e76 gw: Clean up metavar names in command-line help strings 2022-01-26 08:12:49 +00:00
Keir Fraser
62bf6a3ff9 gw read: Re-seek after N retries.
Fixes #154
2022-01-26 08:08:19 +00:00
Keir Fraser
7c5f825ec8 flux: Fix Flux.append() to support new flux acquired at a different sample rate. 2022-01-25 17:01:33 +00:00
Keir Fraser
d56fe22761 TSPEC: New step=1/d syntax to divide logical cylinder by 'd'
eg. "c=0-81/2:step=1/2" will read sequential cylinders on a 40T drive,
mapping them to logical cylinders 0,2,4,...,80
Refs #150
2022-01-11 13:52:42 +00:00
Keir Fraser
375a40006e TSPEC: New cylinder syntax <min>-<max>/<step>
Eg. c=0-10/2 <=> c=0,2,4,6,8,10
Refs #150
2022-01-11 13:42:48 +00:00
Keir Fraser
df5f97bbfa gw erase: New option --hfreq to write a high-frequency flux signal.
This usually creates a No Flux Area. It is the same erasure method
as used by Supercard Pro software.
Refs #152
2022-01-11 13:26:08 +00:00
Keir Fraser
3dbea17c84 gw seek: Handle flippy-modded drive inward stepping 2022-01-11 13:12:30 +00:00
Keir Fraser
c6afd30251 gw convert: Fix --out-tracks to default to c= and h= from --tracks.
Continue to ignore all other --tracks sub-options for defaults.
2022-01-10 16:33:46 +00:00
Keir Fraser
3553b3272d 1581/d81: Disk sides are physically swapped (sector H bytes are swapped).
Refs #149
2022-01-08 22:45:18 +00:00
Keir Fraser
5edf7d496c gw convert: Respect cyl/head conversion ops in trackspec passed to --tracks=.
Add a new option --out-tracks= for changing output behaviour.
Refs #149
2022-01-08 22:45:07 +00:00
Keir Fraser
5d138aa505 hfe: Auto-detect output bitrate, or require it to be manually specified 2022-01-05 14:39:55 +00:00
Keir Fraser
0bb855fa01 gw convert: Fix print_summary() for partial sumamry dicts. 2022-01-05 14:26:56 +00:00
Keir Fraser
ad10f6403a gw: Require Python version >= 3.7.
Earlier versions are EOL, and gw may be using features which do
not exist in these earlier versions (it's untested).
2022-01-05 13:32:18 +00:00
Keir Fraser
b07ffb6a8b gw: Configure stderr line buffering on Python 3.7+ 2022-01-05 13:18:10 +00:00
Keir Fraser
92c8f04cf0 gw read, write, erase: Tidy up per-track logging 2022-01-05 09:35:15 +00:00
Keir Fraser
3583fa7079 scp: More robust input parsing. Fixes handling older FluxEngine image files.
Fixes #131
2022-01-05 08:39:55 +00:00
Keir Fraser
73b0200b79 gw: Update the test-build warning message 2022-01-04 14:00:52 +00:00
Keir Fraser
9e81373f4e gw rpm: Number of iterations configurable. Tweak output. 2022-01-04 13:40:05 +00:00
Thomas Daede
b864ec5721 Add command to measure spindle RPM
Fixes #57
2022-01-04 13:29:03 +00:00
Keir Fraser
0f22bb8a2c gw erase: Get rid of line overwrites. 2022-01-04 13:24:51 +00:00
Keir Fraser
cf0579c101 gw write: Get rid of line overwrites. Barf on raw input file with missing sectors. 2022-01-04 13:23:18 +00:00
Keir Fraser
9ffb18ad96 Redirect stdout to stderr.
1. Keeps stdout clean for future use
2. stderr is unbuffered, so wrappers can pipe the output line-by-line
Fixes #141
2022-01-04 13:08:43 +00:00
Keir Fraser
f1fd55c414 Better summary string for MasterTrack 2022-01-04 12:02:05 +00:00
Keir Fraser
6e60c29fb7 codec/ibm: Fix bitslices past end of bitarray. 2022-01-04 12:01:22 +00:00
Keir Fraser
dabc6478fc gw convert: New subcommand to convert between image formats 2022-01-04 11:41:09 +00:00
Keir Fraser
14864b63f3 Add struct.error to list of always-backtrace exceptions 2022-01-03 21:16:14 +00:00
Keir Fraser
970760e6a3 gw read: Allow format verification only, output raw stream (--raw) 2022-01-03 15:19:19 +00:00
Keir Fraser
62eb40e777 gw read: Remove option --rate and make it an HFE sub-option instead.
Eg. "gw read my.hfe::bitrate=500" to read a high-density micro-diskette
2022-01-03 14:23:22 +00:00
Keir Fraser
c7ea8d9f7c gw info: Add a hardware model name for Adafruit.
Refs #142
2022-01-03 00:41:38 +00:00
Keir Fraser
409fad2956 In strings, "Greaseweazle" -> "Device" or "Greaseweazle device" 2022-01-03 00:29:53 +00:00
Keir Fraser
5d8e296f59 gw: Update --device help text to mention COM/serial port 2022-01-03 00:23:53 +00:00
Keir Fraser
9537af3617 gw read: Save partial output file on Ctrl-C exit
Fixes #91
2022-01-02 11:44:29 +00:00
Keir Fraser
b65409e7e9 gw read: New option -n/--no-clobber prevents overwriting existing files
Fixes #92
2022-01-02 11:33:49 +00:00
Keir Fraser
28eb1ac5b8 seek: Check TRK0 signal after seek is completed 2022-01-02 10:53:50 +00:00
Keir Fraser
8bb20bd78d Bump required firmware version to v0.31 2022-01-02 10:36:03 +00:00
Keir Fraser
4648d417ab Add 'hswap' option to trackspec 2021-12-31 11:44:35 +00:00
Keir Fraser
aec79f7e63 Format SF7/SF700 -> SF7000 2021-12-31 11:26:31 +00:00
Keir Fraser
6d5965ba78 Windows: Fix build of Python C extension using setuptools-60.x
We need to install using pip, rather than invoking setup.py directly.

Fixes #137
2021-12-30 09:38:11 +00:00
Keir Fraser
bff764a9e8 Support .SF7 file extension for Sega SF7 image files. 2021-12-29 12:16:47 +00:00
Keir Fraser
11ad4e544d Support Sega SF7 (SF-7000) 2021-12-29 08:39:28 +00:00
Keir Fraser
22940df78f Fix up cx_Freeze excludes list: 'email' is a dependency for 'requests' 2021-12-28 17:34:14 +00:00