meta data for this page
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionNext revisionBoth sides next revision | ||
adv:hardsectorconf [2022/06/13 06:33] – diskblitz | adv:hardsectorconf [2023/06/12 12:52] – Add addr/data marker bit masks david-schmidt | ||
---|---|---|---|
Line 1: | Line 1: | ||
====== Adding Support for a Hard Sectored Disk Format ====== | ====== Adding Support for a Hard Sectored Disk Format ====== | ||
+ | As of Applesauce 1.66, it is possible for users to be able to add their own format definitions to be used by Applesauce. When you add a format, it will automatically be recognized everywhere in the client software such as the Disk Analyzer and Fast Imager. In order to add new formats, there is an Applesauce directory in your Documents folder. Within this folder there is a Formats one that contains the file '' | ||
+ | |||
+ | Creating a format definition is a highly technical process and if you are not very familiar with how disks are structured, this will likely seem a daunting task. | ||
The hard sector configuration files are text files in JSON format. The root object of the JSON should be an array. A single file can have as may format descriptions as desired. | The hard sector configuration files are text files in JSON format. The root object of the JSON should be an array. A single file can have as may format descriptions as desired. | ||
Line 10: | Line 13: | ||
=== name === | === name === | ||
String - // | String - // | ||
- | This is a descriptive name of the format. It is only used for informational purposes. | + | This is a descriptive name of the format. It must be unique, but otherwise |
- | ex: ''" | + | ex: ''" |
=== settings === | === settings === | ||
Line 20: | Line 23: | ||
ex: ''" | ex: ''" | ||
+ | === fastname === | ||
+ | String - // | ||
+ | This is used by the Fast Imager when displaying the name of this format. | ||
+ | |||
+ | ex: ''" | ||
=== export === | === export === | ||
Line 26: | Line 34: | ||
ex: ''" | ex: ''" | ||
+ | |||
+ | === enabled === | ||
+ | [Boolean] - // | ||
+ | Set to '' | ||
+ | |||
+ | ex: ''" | ||
Line 148: | Line 162: | ||
ex: ''" | ex: ''" | ||
+ | |||
+ | === addrMarkerBitMask === | ||
+ | String - // | ||
+ | Address field marker bit mask to apply - value in hex. | ||
+ | |||
+ | ex: ''" | ||
=== addrFieldSize === | === addrFieldSize === | ||
Line 170: | Line 190: | ||
ex: ''" | ex: ''" | ||
- | === dataCksumIndex | + | === addrCksumIndex |
Int - // | Int - // | ||
Byte index of the start of the stored checksum relative to the address marker (0 = address marker). | Byte index of the start of the stored checksum relative to the address marker (0 = address marker). | ||
- | ex: ''" | + | ex: ''" |
=== addrCksumByteSize === | === addrCksumByteSize === | ||
Line 202: | Line 222: | ||
Byte index of the last byte of the address field that needs to be checksummed, | Byte index of the last byte of the address field that needs to be checksummed, | ||
- | ex: ''" | + | ex: ''" |
=== addrCksumInit === | === addrCksumInit === | ||
Line 222: | Line 242: | ||
ex: ''" | ex: ''" | ||
- | === addrCksumRevIn | + | === addrCksumRefIn |
Boolean\\ | Boolean\\ | ||
- | If true, then the data bytes will have their bit-endian reversed (eg: 0x80 becomes 0x01) on input to the checksum algorithm. If no value is provided, then it defaults to '' | + | If '' |
- | ex: ''" | + | ex: ''" |
- | === addrCksumRevOut | + | === addrCksumRefOut |
Boolean\\ | Boolean\\ | ||
- | If true, then the result of the checksum algorithm will have its bit-endian reversed on output. If no value is provided, then it defaults to '' | + | If '' |
- | ex: ''" | + | ex: ''" |
=== addrEpilog === | === addrEpilog === | ||
Line 297: | Line 317: | ||
=== trackVerify === | === trackVerify === | ||
Boolean - //Only used if trackDerived is " | Boolean - //Only used if trackDerived is " | ||
- | Set to true if you would like to validate that the track number matches the physical track number. If no value is provided, then it defaults to '' | + | Set to '' |
ex: ''" | ex: ''" | ||
Line 360: | Line 380: | ||
ex: ''" | ex: ''" | ||
+ | |||
+ | === dataMarkerBitMask === | ||
+ | String - // | ||
+ | Data field marker bit mask to apply - value in hex. | ||
+ | |||
+ | ex: ''" | ||
=== dataStartIndex === | === dataStartIndex === | ||
Line 384: | Line 410: | ||
|16add|16-bit add| | |16add|16-bit add| | ||
|12adc|16-bit add with carry| | |12adc|16-bit add with carry| | ||
- | |crc16|IBM 3740 16-bit | + | |crc16|16-bit |
ex: ''" | ex: ''" | ||
Line 440: | Line 466: | ||
ex: ''" | ex: ''" | ||
- | === dataCksumRevIn | + | === dataCksumRefIn |
Boolean\\ | Boolean\\ | ||
- | If true, then the data bytes will have their bit-endian reversed (eg: 0x80 becomes 0x01) on input to the checksum algorithm. If no value is provided, then it defaults to '' | + | If '' |
- | ex: ''" | + | ex: ''" |
- | === dataCksumRevOut | + | === dataCksumRefOut |
Boolean\\ | Boolean\\ | ||
- | If true, then the result of the checksum algorithm will have its bit-endian reversed on output. If no value is provided, then it defaults to '' | + | If '' |
- | ex: ''" | + | ex: ''" |
=== dataEpilog === | === dataEpilog === |