Skip to content

Commit 556bf02

Browse files
Per Mårtenssonkeirf
authored andcommitted
Add support for enable TG43 (pin 2) signal from track 60 on read to enable postcompensation filter
1 parent 11b57c8 commit 556bf02

1 file changed

Lines changed: 12 additions & 3 deletions

File tree

src/greaseweazle/tools/read.py

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,9 @@ def read_with_retry(usb: USB.Unit, args, t) -> Tuple[Flux, Optional[HasFlux]]:
6262

6363
usb.seek(t.physical_cyl, t.physical_head)
6464

65+
if args.gen_tg43:
66+
usb.set_pin(2, cyl < 60)
67+
6568
flux = read_and_normalise(usb, args, args.revs, args.ticks)
6669
if args.fmt_cls is None:
6770
print(f'{tspec}: {flux.summary_string()}')
@@ -95,6 +98,8 @@ def read_with_retry(usb: USB.Unit, args, t) -> Tuple[Flux, Optional[HasFlux]]:
9598
if retry != 0:
9699
usb.seek(0, 0)
97100
usb.seek(t.physical_cyl, t.physical_head)
101+
if args.gen_tg43:
102+
usb.set_pin(2, cyl < 60)
98103
seek_retry += 1
99104
retry = 0
100105
retry += 1
@@ -239,8 +244,11 @@ def main(argv) -> None:
239244
help="do not overwrite an existing file")
240245
parser.add_argument("--pll", type=track.PLL, metavar="PLLSPEC",
241246
help="manual PLL parameter override")
242-
parser.add_argument("--densel", "--dd", type=util.level, metavar="LEVEL",
247+
densel_group = parser.add_mutually_exclusive_group(required=False)
248+
densel_group.add_argument("--densel", "--dd", type=util.level, metavar="LEVEL",
243249
help="drive interface density select on pin 2 (H,L)")
250+
densel_group.add_argument("--gen-tg43", action="store_true",
251+
help="generate TG43 signal for 8-inch drive on pin 2 from track 60. Enable postcompensation filter")
244252
parser.add_argument("--reverse", action="store_true",
245253
help="reverse track data (flippy disk)")
246254
parser.add_argument("file", help="output filename")
@@ -280,14 +288,15 @@ def main(argv) -> None:
280288
if args.format:
281289
print("Format " + args.format)
282290
try:
283-
if args.densel is not None:
291+
if args.densel is not None or args.gen_tg43:
284292
prev_pin2 = usb.get_pin(2)
293+
if args.densel is not None:
285294
usb.set_pin(2, args.densel)
286295
with open_image(args, image_class) as image:
287296
util.with_drive_selected(
288297
lambda: read_to_image(usb, args, image), usb, args.drive)
289298
finally:
290-
if args.densel is not None:
299+
if args.densel is not None or args.gen_tg43:
291300
usb.set_pin(2, prev_pin2)
292301
except USB.CmdError as err:
293302
print("Command Failed: %s" % err)

0 commit comments

Comments
 (0)