mirror of
				https://github.com/davidgiven/fluxengine.git
				synced 2025-10-31 11:17:01 -07:00 
			
		
		
		
	Polish documentation.
This commit is contained in:
		| @@ -39,7 +39,7 @@ If you actually have a forty track drive, you need to tell FluxEngine. This is | |||||||
| done by adding the special profile `40track_drive`: | done by adding the special profile `40track_drive`: | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| fluxengine write ibm360 40track_drive -i image.img -d drive:0 | fluxengine write ibm --360 40track_drive -i image.img -d drive:0 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| It should then Just Work. This is supported by both FluxEngine and Greaseweazle | It should then Just Work. This is supported by both FluxEngine and Greaseweazle | ||||||
|   | |||||||
| @@ -17,12 +17,14 @@ The following file systems are supported so far. | |||||||
| |:-----------------------------------------|:-----:|:------:|-------| | |:-----------------------------------------|:-----:|:------:|-------| | ||||||
| | Acorn DFS                                |   Y   |        |       | | | Acorn DFS                                |   Y   |        |       | | ||||||
| | Amiga FFS                                |   Y   |   Y    | Both OFS and FFS | | | Amiga FFS                                |   Y   |   Y    | Both OFS and FFS | | ||||||
|  | | AppleDOS / ProDOS                        |   Y   |   Y    | With a choice of sector remapping | | ||||||
| | Brother 120kB                            |   Y   |   Y    |       | | | Brother 120kB                            |   Y   |   Y    |       | | ||||||
| | Commodore CbmFS                          |   Y   |        | Only 1541 disks so far | | | Commodore CbmFS                          |   Y   |        | Only 1541 disks so far | | ||||||
| | CP/M                                     |   Y   |        | Requires configuration for each machine | | | CP/M                                     |   Y   |        | Requires configuration for each machine | | ||||||
| | FatFS (a.k.a. MS-DOS)                    |   Y   |   Y    | FAT12, FAT16, FAT32; not Atari (AFAIK!) | | | FatFS (a.k.a. MS-DOS)                    |   Y   |   Y    | FAT12, FAT16, FAT32; not Atari (AFAIK!) | | ||||||
|  | | Hewlett-Packard LIF                      |   Y   |        |       | | ||||||
| | Macintosh HFS                            |   Y   |   Y    | Only AppleDouble files may be written | | | Macintosh HFS                            |   Y   |   Y    | Only AppleDouble files may be written | | ||||||
| | Apple ProDOS                             |   Y   |        |       | | | pSOS' PHILE                              |   Y   |        | Probably unreliable due to lack of documentation | | ||||||
| | Smaky 6                                  |   Y   |        |       | | | Smaky 6                                  |   Y   |        |       | | ||||||
| {: .datatable } | {: .datatable } | ||||||
|  |  | ||||||
| @@ -38,19 +40,19 @@ Using it | |||||||
| To use, try syntax like this: | To use, try syntax like this: | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| fluxengine ls ibm180 -f drive:0 | fluxengine ls ibm --180 -f drive:0 | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| `ibm180` is the format, which selects the most common filesystem automatically. | `ibm --180` is the format, which selects the most common filesystem | ||||||
| `-f drive:0` specifies a flux source/sink, in this case a real disk. You may | automatically.  `-f drive:0` specifies a flux source/sink, in this case a real | ||||||
| also specify a flux file (read only). Disk images may be specified with `-i | disk. You may also specify a flux file (read only). Disk images may be | ||||||
| disk.img` (read/write). | specified with `-i disk.img` (read/write). | ||||||
|  |  | ||||||
| Commands which take filename paramaters typically use `-p` to indicate the path | Commands which take filename paramaters typically use `-p` to indicate the path | ||||||
| on the disk, and `-l` for the local filename. For example: | on the disk, and `-l` for the local filename. For example: | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| fluxengine putfile ibm180 -f drive:0 -p ondisk.pcx -l z.pcx | fluxengine putfile ibm --180 -f drive:0 -p ondisk.pcx -l z.pcx | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| This will copy the file `z.pcx` onto the disk and call it `ONDISK.PCX`. | This will copy the file `z.pcx` onto the disk and call it `ONDISK.PCX`. | ||||||
| @@ -83,7 +85,7 @@ default; for example, Macintosh HFS filesystems are common on 3.5" floppies. You | |||||||
| can do this as follows: | can do this as follows: | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| fluxengine format ibm1440 -f drive:1 --filesystem.type=MACHFS | fluxengine format ibm --1440 -f drive:1 --filesystem.type=MACHFS | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Some filesystems won't work on some disks --- don't try this with Amiga FFS, for | Some filesystems won't work on some disks --- don't try this with Amiga FFS, for | ||||||
|   | |||||||
| @@ -41,8 +41,9 @@ Supported features with the Greaseweazle include: | |||||||
| 	`--usb.greaseweazle.bus_type=SHUGART` or `IBMPC`; the default is `IBMPC`) | 	`--usb.greaseweazle.bus_type=SHUGART` or `IBMPC`; the default is `IBMPC`) | ||||||
|   - Apple 5.25 floppy interfaces (via `--usb.greaseweazle.bus_type=APPLE2`) |   - Apple 5.25 floppy interfaces (via `--usb.greaseweazle.bus_type=APPLE2`) | ||||||
|  |  | ||||||
| Which device types are supported depend on the hardware. Genuine Greaseweazle hardware supports SHUGART and IBMPC. | Which device types are supported depend on the hardware. Genuine Greaseweazle | ||||||
| APPLE2 is only supported with hand wiring and the Adafruit\_Floppy greaseweazle-compatible firmware. | hardware supports SHUGART and IBMPC.  APPLE2 is only supported with hand wiring | ||||||
|  | and the Adafruit\_Floppy greaseweazle-compatible firmware. | ||||||
|  |  | ||||||
| What doesn't work | What doesn't work | ||||||
| ----------------- | ----------------- | ||||||
|   | |||||||
							
								
								
									
										
											BIN
										
									
								
								doc/screenshot-details.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								doc/screenshot-details.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 28 KiB | 
							
								
								
									
										104
									
								
								doc/technical.md
									
									
									
									
									
								
							
							
						
						
									
										104
									
								
								doc/technical.md
									
									
									
									
									
								
							| @@ -95,41 +95,75 @@ For reference, here are the FDC pinouts: | |||||||
| ```ditaa | ```ditaa | ||||||
| :-E -s 0.75 | :-E -s 0.75 | ||||||
|  |  | ||||||
|                 +--+--+                   +--+--+    |                 +----+----+                   +----+----+    | ||||||
|      DISKCHG ---+34+33+        DISKCHG ---+34+33+ |      DISKCHG ---+ 34 + 33 +        DISKCHG ---+ 34 + 33 + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|        SIDE1 ---+32+31+          SIDE1 ---+32+31+ |        SIDE1 ---+ 32 + 31 +          SIDE1 ---+ 32 + 31 + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|        RDATA ---+30+29+          RDATA ---+30+29+ |        RDATA ---+ 30 + 29 +          RDATA ---+ 30 + 29 + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|          WPT ---+28+27+            WPT ---+28+27+ |          WPT ---+ 28 + 27 +            WPT ---+ 28 + 27 + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|        TRK00 ---+26+25+          TRK00 ---+26+25+ |        TRK00 ---+ 26 + 25 +          TRK00 ---+ 26 + 25 + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|        WGATE ---+24+23+          WGATE ---+24+23+ |        WGATE ---+ 24 + 23 +          WGATE ---+ 24 + 23 + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|        WDATA ---+22+21+          WDATA ---+22+21+ |        WDATA ---+ 22 + 21 +          WDATA ---+ 22 + 21 + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|         STEP ---+20+19+           STEP ---+20+19+ |         STEP ---+ 20 + 19 +           STEP ---+ 20 + 19 + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|    DIR/SIDE1 ---+18+17+      DIR/SIDE1 ---+18+17+ |    DIR/SIDE1 ---+ 18 + 17 +      DIR/SIDE1 ---+ 18 + 17 + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|        MOTEB ---+16+15+          MOTEB ---+16+15+ |        MOTEB ---+ 16 + 15 +          MOTEB ---+ 16 + 15 + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|        DRVSA ---+14+13+            DS3 ---+14+13+ |        DRVSA ---+ 14 + 13 +            DS3 ---+ 14 + 13 + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|        DRVSB ---+12+11+            DS2 ---+12+11+ |        DRVSB ---+ 12 + 11 +            DS2 ---+ 12 + 11 + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|        MOTEA ---+10+9 +            DS1 ---+10+9 + |        MOTEA ---+ 10 + 9  +            DS1 ---+ 10 + 9  + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|        INDEX ---+8 +7 +          INDEX ---+8 +7 + |        INDEX ---+ 8  + 7  +          INDEX ---+ 8  + 7  + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|          n/c ---+6 +5 +            DS4 ---+6 +5 + |          n/c ---+ 6  + 5  +            DS4 ---+ 6  + 5  + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|          n/c ---+4 +3 +            INU ---+4 +3 + |          n/c ---+ 4  + 3  +            INU ---+ 4  + 3  + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+ | ||||||
|        REDWC ---+2 +1 +          REDWC ---+2 +1 + |        REDWC ---+ 2  + 1  +          REDWC ---+ 2  + 1  + | ||||||
|                 +--+--+                   +--+--+ |                 +----+----+                   +----+----+    | ||||||
|  |      DISKCHG ---+ 34 + 33 +        DISKCHG ---+ 34 + 33 + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |        SIDE1 ---+ 32 + 31 +          SIDE1 ---+ 32 + 31 + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |        RDATA ---+ 30 + 29 +          RDATA ---+ 30 + 29 + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |          WPT ---+ 28 + 27 +            WPT ---+ 28 + 27 + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |        TRK00 ---+ 26 + 25 +          TRK00 ---+ 26 + 25 + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |        WGATE ---+ 24 + 23 +          WGATE ---+ 24 + 23 + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |        WDATA ---+ 22 + 21 +          WDATA ---+ 22 + 21 + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |         STEP ---+ 20 + 19 +           STEP ---+ 20 + 19 + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |    DIR/SIDE1 ---+ 18 + 17 +      DIR/SIDE1 ---+ 18 + 17 + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |        MOTEB ---+ 16 + 15 +          MOTEB ---+ 16 + 15 + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |        DRVSA ---+ 14 + 13 +            DS3 ---+ 14 + 13 + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |        DRVSB ---+ 12 + 11 +            DS2 ---+ 12 + 11 + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |        MOTEA ---+ 10 + 9  +            DS1 ---+ 10 + 9  + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |        INDEX ---+ 8  + 7  +          INDEX ---+ 8  + 7  + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |          n/c ---+ 6  + 5  +            DS4 ---+ 6  + 5  + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |          n/c ---+ 4  + 3  +            INU ---+ 4  + 3  + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|  |        REDWC ---+ 2  + 1  +          REDWC ---+ 2  + 1  + | ||||||
|  |                 +----+----+                   +----+----+ | ||||||
|                             |                             | ||||||
|               PC interface           Shugart interface |               PC interface           Shugart interface | ||||||
|   |   | ||||||
|   | |||||||
							
								
								
									
										189
									
								
								doc/using.md
									
									
									
									
									
								
							
							
						
						
									
										189
									
								
								doc/using.md
									
									
									
									
									
								
							| @@ -11,6 +11,13 @@ moving too quickly for the documentation to keep up. It does respond to | |||||||
| `--help` or `help` depending on context. There are some common properties, | `--help` or `help` depending on context. There are some common properties, | ||||||
| described below. | described below. | ||||||
|  |  | ||||||
|  | If possible, try using the GUI, which should provide simplified access for most | ||||||
|  | common operations. | ||||||
|  |  | ||||||
|  | <div style="text-align: center"> | ||||||
|  | <a href="doc/screenshot-details.png"><img src="doc/screenshot-details.png" style="width:60%" alt="screenshot of the GUI in action"></a> | ||||||
|  | </div> | ||||||
|  |  | ||||||
| ### Core concepts | ### Core concepts | ||||||
|  |  | ||||||
| FluxEngine's job is to read magnetic data (called _flux_) off a disk, decode | FluxEngine's job is to read magnetic data (called _flux_) off a disk, decode | ||||||
| @@ -68,10 +75,10 @@ Here are some sample invocations: | |||||||
| ``` | ``` | ||||||
| # Read an PC 1440kB disk, producing a disk image with the default name | # Read an PC 1440kB disk, producing a disk image with the default name | ||||||
| # (ibm.img) | # (ibm.img) | ||||||
| $ fluxengine read ibm1440 | $ fluxengine read ibm --1440 | ||||||
|  |  | ||||||
| # Write a PC 1440kB disk to drive 1 | # Write a PC 1440kB disk to drive 1 | ||||||
| $ fluxengine write ibm1440 -i image.img -d drive:1 | $ fluxengine write ibm --1440 -i image.img -d drive:1 | ||||||
|  |  | ||||||
| # Read a Eco1 CP/M disk, making a copy of the flux into a file | # Read a Eco1 CP/M disk, making a copy of the flux into a file | ||||||
| $ fluxengine read eco1 --copy-flux-to copy.flux -o eco1.ldbs | $ fluxengine read eco1 --copy-flux-to copy.flux -o eco1.ldbs | ||||||
| @@ -90,30 +97,31 @@ $ cat config.textpb | |||||||
| encoder { | encoder { | ||||||
|   ibm { |   ibm { | ||||||
|     trackdata { |     trackdata { | ||||||
| 	  emit_iam: false |       emit_iam: false | ||||||
| 	} |     } | ||||||
|   } |   } | ||||||
| } | } | ||||||
| $ fluxengine write ibm1440 config.textpb -i image.img | $ fluxengine write ibm --1440 config.textpb -i image.img | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| ...or you can specify them on the command line: | ...or you can specify them on the command line: | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| $ fluxengine write ibm1440 -i image.img --encoder.ibm.trackdata.emit_iam=false | $ fluxengine write ibm --1440 -i image.img --encoder.ibm.trackdata.emit_iam=false | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| Both the above invocations are equivalent. The text files use [Google's | Both the above invocations are equivalent. The text files use [Google's | ||||||
| protobuf syntax](https://developers.google.com/protocol-buffers), which is | protobuf syntax](https://developers.google.com/protocol-buffers), which is | ||||||
| hierarchical, type-safe, and easy to read. | hierarchical, type-safe, and easy to read. | ||||||
|  |  | ||||||
| The `ibm1440` string above is actually a reference to an internal configuration | The `ibm` string above is actually a reference to an internal configuration file | ||||||
| file containing all the settings for writing PC 1440kB disks. You may specify | containing all the settings for writing PC disks, and the `--1140` refers to a | ||||||
| as many profile names or textpb files as you wish; they are all merged left to | specific definition inside it. You may specify as many profile names or textpb | ||||||
| right.  You can see all these settings by doing: | files as you wish; they are all merged left to right.  You can see all these | ||||||
|  | settings by doing: | ||||||
|  |  | ||||||
| ``` | ``` | ||||||
| $ fluxengine write ibm1440 --config | $ fluxengine write ibm --1440 --config | ||||||
| ``` | ``` | ||||||
|  |  | ||||||
| The `--config` option will cause the current configuration to be dumped to the | The `--config` option will cause the current configuration to be dumped to the | ||||||
| @@ -131,29 +139,30 @@ different task. Run each one with `--help` to get a full list of | |||||||
| (non-configuration-setting) options; this describes only basic usage of the | (non-configuration-setting) options; this describes only basic usage of the | ||||||
| more common tools. | more common tools. | ||||||
|  |  | ||||||
|   - `fluxengine read <profile> -s <flux source> -o <image output>` |   - `fluxengine read <profile> <options> -s <flux source> -o <image output>` | ||||||
|  |  | ||||||
| 	Reads flux (possibly from a disk) and decodes it into a file system image. |     Reads flux (possibly from a disk) and decodes it into a file system image. | ||||||
| 	`<profile>` is a reference to an internal input configuration file |     `<profile>` is a reference to an internal input configuration file | ||||||
| 	describing the format. |     describing the format. `<options>` may be any combination of options | ||||||
|  |     defined by the profile. | ||||||
|  |  | ||||||
|   - `fluxengine write <profile> -i <image input> -d <flux destination>` |   - `fluxengine write <profile> -i <image input> -d <flux destination>` | ||||||
|  |  | ||||||
| 	Reads a filesystem image and encodes it into flux (possibly writing to a |     Reads a filesystem image and encodes it into flux (possibly writing to a | ||||||
| 	disk). `<profile>` is a reference to an internal output configuration file |     disk). `<profile>` is a reference to an internal output configuration file | ||||||
| 	describing the format. |     describing the format. | ||||||
|  |  | ||||||
|   - `fluxengine rawread -s <flux source> -d <flux destination>` |   - `fluxengine rawread -s <flux source> -d <flux destination>` | ||||||
|  |  | ||||||
| 	Reads flux (possibly from a disk) and writes it to a flux file without |     Reads flux (possibly from a disk) and writes it to a flux file without doing | ||||||
| 	doing any decoding. You can specify a profile if you want to read a subset |     any decoding. You can specify a profile if you want to read a subset of the | ||||||
| 	of the disk. |     disk. | ||||||
|  |  | ||||||
|   - `fluxengine rawwrite -s <flux source> -d <flux destination>` |   - `fluxengine rawwrite -s <flux source> -d <flux destination>` | ||||||
|  |  | ||||||
| 	Reads flux from a file and writes it (possibly to a disk) without doing any |     Reads flux from a file and writes it (possibly to a disk) without doing any | ||||||
| 	encoding. You can specify a profile if you want to write a subset of the |     encoding. You can specify a profile if you want to write a subset of the | ||||||
| 	disk. |     disk. | ||||||
|  |  | ||||||
|   - `fluxengine merge -s <fluxfile> -s <fluxfile...> -d <fluxfile` |   - `fluxengine merge -s <fluxfile> -s <fluxfile...> -d <fluxfile` | ||||||
|  |  | ||||||
| @@ -165,20 +174,20 @@ more common tools. | |||||||
|  |  | ||||||
|   - `fluxengine inspect -s <flux source> -c <cylinder> -h <head> -B` |   - `fluxengine inspect -s <flux source> -c <cylinder> -h <head> -B` | ||||||
|  |  | ||||||
| 	Reads flux (possibly from a disk) and does various analyses of it to try |     Reads flux (possibly from a disk) and does various analyses of it to try and | ||||||
| 	and detect the clock rate, display raw flux information, examine the |     detect the clock rate, display raw flux information, examine the underlying | ||||||
| 	underlying data from the FluxEngine board, etc. There are lots of options |     data from the FluxEngine board, etc. There are lots of options but the | ||||||
| 	but the command above is the most useful. |     command above is the most useful. | ||||||
|  |  | ||||||
|   - `fluxengine rpm` |   - `fluxengine rpm` | ||||||
|  |  | ||||||
| 	Measures the rotation speed of a drive. For hard-sectored disks, you |     Measures the rotation speed of a drive. For hard-sectored disks, you | ||||||
| 	probably want to add the name of a read profile to configure the number of |     probably want to add the name of a read profile to configure the number of | ||||||
| 	sectors. |     sectors. | ||||||
|  |  | ||||||
|   - `fluxengine seek -c <cylinder>` |   - `fluxengine seek -c <cylinder>` | ||||||
|  |  | ||||||
| 	Seeks a drive to a particular cylinder. |     Seeks a drive to a particular cylinder. | ||||||
|  |  | ||||||
| There are other tools; try `fluxengine --help`. | There are other tools; try `fluxengine --help`. | ||||||
|  |  | ||||||
| @@ -198,19 +207,19 @@ FluxEngine supports a number of ways to get or put flux. When using the `-s` or | |||||||
|  |  | ||||||
|   - `drive:<n>` |   - `drive:<n>` | ||||||
|  |  | ||||||
| 	 Read from or write to a specific drive. |     Read from or write to a specific drive. | ||||||
|    |    | ||||||
|   - `<filename.flux>` |   - `<filename.flux>` | ||||||
|  |  | ||||||
| 	Read from or write to a native FluxEngine flux file. |     Read from or write to a native FluxEngine flux file. | ||||||
|    |    | ||||||
|   - `<filename.scp>` |   - `<filename.scp>` | ||||||
|  |  | ||||||
| 	Read from or write to a Supercard Pro `.scp` flux file. |     Read from or write to a Supercard Pro `.scp` flux file. | ||||||
|    |    | ||||||
|   - `<filename.cwf>` |   - `<filename.cwf>` | ||||||
|  |  | ||||||
| 	Read from a Catweasel flux file. **Read only.** |     Read from a Catweasel flux file. **Read only.** | ||||||
|    |    | ||||||
|   - `<filename.a2r>` |   - `<filename.a2r>` | ||||||
|  |  | ||||||
| @@ -218,8 +227,8 @@ FluxEngine supports a number of ways to get or put flux. When using the `-s` or | |||||||
|  |  | ||||||
|   - `kryoflux:<directory>` |   - `kryoflux:<directory>` | ||||||
|  |  | ||||||
| 	Read from a Kryoflux stream, where `<path>` is the directory containing the |     Read from a Kryoflux stream, where `<path>` is the directory containing | ||||||
| 	stream files. **Read only.** |     the stream files. **Read only.** | ||||||
|    |    | ||||||
|   - `flx:<directory>` |   - `flx:<directory>` | ||||||
|  |  | ||||||
| @@ -228,53 +237,54 @@ FluxEngine supports a number of ways to get or put flux. When using the `-s` or | |||||||
|  |  | ||||||
|   - `erase:` |   - `erase:` | ||||||
|  |  | ||||||
| 	Read nothing --- writing this to a disk will magnetically erase a track. |     Read nothing --- writing this to a disk will magnetically erase a track. | ||||||
| 	**Read only.** |     **Read only.** | ||||||
|    |    | ||||||
|   - `testpattern:` |   - `testpattern:` | ||||||
|  |  | ||||||
| 	Read a test pattern, which can be written to a disk to help diagnosis. |     Read a test pattern, which can be written to a disk to help diagnosis. | ||||||
| 	**Read only.** |     **Read only.** | ||||||
|    |    | ||||||
|   - `au:<directory>` |   - `au:<directory>` | ||||||
|  |  | ||||||
| 	Write to a series of `.au` files, one file per track, which can be loaded |     Write to a series of `.au` files, one file per track, which can be loaded | ||||||
| 	into an audio editor (such as Audacity) as a simple logic analyser. **Write |     into an audio editor (such as Audacity) as a simple logic analyser. | ||||||
| 	only.** |     **Write only.** | ||||||
|    |    | ||||||
|   - `vcd:<directory>` |   - `vcd:<directory>` | ||||||
|  |  | ||||||
| 	Write to a series of `.vcd` files, one file per track, which can be loaded |     Write to a series of `.vcd` files, one file per track, which can be loaded | ||||||
| 	into a logic analyser (such as Pulseview) for analysis. **Write only.** |     into a logic analyser (such as Pulseview) for analysis. **Write only.** | ||||||
|  |  | ||||||
| ### Image sources and destinations | ### Image sources and destinations | ||||||
|  |  | ||||||
| FluxEngine also supports a number of file system image formats. When using the | FluxEngine also supports a number of file system image formats. When using the | ||||||
| `-i` or `-o` options (for input and output), you can use any of these strings: | `-i` or `-o` options (for input and output), you can use any of these strings: | ||||||
|  |  | ||||||
|   - `<filename.adf>`, `<filename.d81>`, `<filename.img>`, `<filename.st>`, `<filename.xdf>` |   - `<filename.adf>`, `<filename.d81>`, `<filename.img>`, `<filename.st>`, | ||||||
|  |     `<filename.xdf>` | ||||||
|  |  | ||||||
| 	Read from or write to a simple headerless image file (all these formats are |   Read from or write to a simple headerless image file (all these formats are | ||||||
| 	the same). This will probably want configuration via the |   the same). This will probably want configuration via the | ||||||
| 	`input/output.image.img.*` configuration settings to specify all the |   `input/output.image.img.*` configuration settings to specify all the | ||||||
| 	parameters. |   parameters. | ||||||
|    |    | ||||||
|   - `<filename.diskcopy>` |   - `<filename.diskcopy>` | ||||||
|  |  | ||||||
| 	Read from or write to a [DiskCopy |   Read from or write to a [DiskCopy | ||||||
| 	4.2](https://en.wikipedia.org/wiki/Disk_Copy) image file, commonly used by |   4.2](https://en.wikipedia.org/wiki/Disk_Copy) image file, commonly used by | ||||||
| 	Apple Macintosh emulators. |   Apple Macintosh emulators. | ||||||
|    |    | ||||||
|   - `<filename.td0>` |   - `<filename.td0>` | ||||||
|  |  | ||||||
| 	Read a [Sydex Teledisk TD0 |   Read a [Sydex Teledisk TD0 | ||||||
| 	file](https://web.archive.org/web/20210420224336/http://dunfield.classiccmp.org/img47321/teledisk.htm) |   file](https://web.archive.org/web/20210420224336/http://dunfield.classiccmp.org/img47321/teledisk.htm) | ||||||
| 	image file. Note that only uncompressed images are supported (so far). |   image file. Note that only uncompressed images are supported (so far). | ||||||
|  |  | ||||||
|   - `<filename.jv3>` |   - `<filename.jv3>` | ||||||
|  |  | ||||||
| 	Read from a JV3 image file, commonly used by TRS-80 emulators. **Read |   Read from a JV3 image file, commonly used by TRS-80 emulators. **Read | ||||||
| 	only.** |   only.** | ||||||
|  |  | ||||||
|   - `<filename.dim>` |   - `<filename.dim>` | ||||||
|  |  | ||||||
| @@ -382,38 +392,27 @@ behaviour. | |||||||
|  |  | ||||||
|   - `--drive.revolutions=X` |   - `--drive.revolutions=X` | ||||||
|  |  | ||||||
|     When reading, spin the disk X times. X |     When reading, spin the disk X times. X can be a floating point number. The | ||||||
| 	can be a floating point number. The default is usually 1.2. Some formats |     default is usually 1.2. Some formats default to 1.  Increasing the number | ||||||
| 	default to 1.  Increasing the number will sample more data, and can be |     will sample more data, and can be useful on dubious disks to try and get a | ||||||
| 	useful on dubious disks to try and get a better read. |     better read. | ||||||
|  |  | ||||||
|   - `--drive.sync_with_index=true|false` |   - `--drive.sync_with_index=true|false` | ||||||
|  |  | ||||||
|     Wait for an index pulse |     Wait for an index pulse before starting to read the disk. (Ignored for write | ||||||
| 	before starting to read the disk. (Ignored for write operations.) By |     operations.) By default FluxEngine doesn't, as it makes reads faster, but | ||||||
| 	default FluxEngine doesn't, as it makes reads faster, but when diagnosing |     when diagnosing disk problems it's helpful to have all your data start at | ||||||
| 	disk problems it's helpful to have all your data start at the same place |     the same place each time. | ||||||
| 	each time. |  | ||||||
|  |  | ||||||
|   - `--drive.index_source=X` |   - `--drive.index_mode=X` | ||||||
|  |  | ||||||
| 	Set the source of index pulses when reading or writing respectively. This |     Set the source of index pulses when reading or writing respectively. This | ||||||
| 	is for use with drives which don't produce index pulse data. `X` can be |     is for use with drives which don't produce index pulse data. `X` can be | ||||||
| 	`INDEXMODE_DRIVE` to get index pulses from the drive, `INDEXMODE_300` to |     `INDEXMODE_DRIVE` to get index pulses from the drive, `INDEXMODE_300` to | ||||||
| 	fake 300RPM pulses, or `INDEXMODE_360` to fake 360RPM pulses.  Note this |     fake 300RPM pulses, or `INDEXMODE_360` to fake 360RPM pulses.  Note this | ||||||
| 	has no effect on the _drive_, so it doesn't help with flippy disks, but is |     has no effect on the _drive_, so it doesn't help with flippy disks, but is | ||||||
| 	useful for using very old drives with FluxEngine itself. If you use this |     useful for using very old drives with FluxEngine itself. If you use this | ||||||
| 	option, then any index marks in the sampled flux are, of course, garbage. |     option, then any index marks in the sampled flux are, of course, garbage. | ||||||
|    |  | ||||||
|   - `--flux_source.rescale=X, --flux_sink.rescale=X` |  | ||||||
|    |  | ||||||
|   When reading or writing a floppy on a drive that doesn't match the |  | ||||||
|   original drive RPM, the flux periods can be scaled to compensate. |  | ||||||
|    |  | ||||||
|   For example, to read or write a PC-98 1.2MB (360rpm) floppy using a 300rpm |  | ||||||
|   floppy drive: |  | ||||||
|    |  | ||||||
|   `--flux_source.rescale=1.2 --flux_sink.rescale=1.2` |  | ||||||
|  |  | ||||||
| ## Visualisation | ## Visualisation | ||||||
|  |  | ||||||
| @@ -439,8 +438,8 @@ wrote to do useful things. These are built alongside FluxEngine. | |||||||
|  |  | ||||||
|   - `brother120tool`, `brother240tool` |   - `brother120tool`, `brother240tool` | ||||||
|  |  | ||||||
| 	Does things to Brother word processor disks. These are [documented on the |   Does things to Brother word processor disks. These are [documented on the | ||||||
| 	Brother disk format page](disk-brother.md). |   Brother disk format page](disk-brother.md). | ||||||
|    |    | ||||||
| ## The recommended workflow | ## The recommended workflow | ||||||
|  |  | ||||||
| @@ -466,13 +465,13 @@ $ fluxengine read brother -s brother.flux -o brother.img --decoder.write_csv_to= | |||||||
| Apart from being drastically faster, this avoids touching the (potentially | Apart from being drastically faster, this avoids touching the (potentially | ||||||
| physically fragile) disk. | physically fragile) disk. | ||||||
|  |  | ||||||
| If the disk is particularly dodgy, you can force FluxEngine not to retry | If the disk is particularly dodgy, you can force FluxEngine not to retry failed | ||||||
| failed reads with `--retries=0`. This reduces head movement. **This is not | reads with `--decoder.retries=0`. This reduces head movement. **This is not | ||||||
| recommended.** Floppy disks are inherently unreliable, and the occasional bit | recommended.** Floppy disks are inherently unreliable, and the occasional bit | ||||||
| error is perfectly normal; FluxEngine will retry and the sector will read | error is perfectly normal; FluxEngine will retry and the sector will read fine | ||||||
| fine next time. If you prevent retries, then not only do you get bad sectors | next time. If you prevent retries, then not only do you get bad sectors in the | ||||||
| in the resulting image, but the flux file itself contains the bad read, so | resulting image, but the flux file itself contains the bad read, so attempting a | ||||||
| attempting a decode of it will just reproduce the same bad data. | decode of it will just reproduce the same bad data. | ||||||
|  |  | ||||||
| See also the [troubleshooting page](problems.md) for more information about | See also the [troubleshooting page](problems.md) for more information about | ||||||
| reading dubious disks. | reading dubious disks. | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user