meta data for this page
  •  

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
adv:hardsectorconf [2022/07/26 20:30] diskblitzadv:hardsectorconf [2023/06/12 13:11] (current) – Add sectorVerify 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 ''hardsector_config.json''. 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. Whenever you edit the ''hardsector_config.json'', you will need to restart the Applesauce client in order to have it load the changes.
 +
 +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 - //Required//\\ String - //Required//\\
-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 is only used for informational purposes.
  
-ex: ''"name": "North Star"''+ex: ''"name": "North Star SD"''
  
 === settings === === settings ===
Line 20: Line 23:
 ex: ''"settings": "525NorthStar_Hard10x256"'' ex: ''"settings": "525NorthStar_Hard10x256"''
  
 +=== fastname ===
 +String - //Required//\\
 +This is used by the Fast Imager when displaying the name of this format.
 +
 +ex: ''"fastname": "North Star"''
  
 === export === === export ===
Line 26: Line 34:
  
 ex: ''"export": ["northstar_nsi"]'' ex: ''"export": ["northstar_nsi"]''
 +
 +=== enabled ===
 +[Boolean] - //Required//\\
 +Set to ''true'' if you would like this named format definition to be considered when analyzing disks. If no value is provided, then it defaults to ''false''.
 +
 +ex: ''"enabled": true''
  
  
Line 148: Line 162:
  
 ex: ''"addrMarker": "FB"'' ex: ''"addrMarker": "FB"''
 +
 +=== addrMarkerBitMask ===
 +String - //Optional//\\
 +Address field marker bit mask to apply - value in hex.
 +
 +ex: ''"addrMarkerBitMask": "0F"''
  
 === addrFieldSize === === addrFieldSize ===
Line 224: Line 244:
 === addrCksumRefIn === === addrCksumRefIn ===
 Boolean\\ Boolean\\
-If true, then the data bytes will be reflected (bit-endian reversed (eg: 0x80 becomes 0x01)) on input to the checksum algorithm. If no value is provided, then it defaults to ''false''.+If ''true'', then the data bytes will be reflected (bit-endian reversed (eg: 0x80 becomes 0x01)) on input to the checksum algorithm. If no value is provided, then it defaults to ''false''.
  
 ex: ''"addrCksumRefIn": true'' ex: ''"addrCksumRefIn": true''
Line 230: Line 250:
 === addrCksumRefOut === === addrCksumRefOut ===
 Boolean\\ Boolean\\
-If true, then the result of the checksum algorithm will have its data reflected (bit-endian reversed) on output. If no value is provided, then it defaults to ''false''.+If ''true'', then the result of the checksum algorithm will have its data reflected (bit-endian reversed) on output. If no value is provided, then it defaults to ''false''.
  
 ex: ''"addrCksumRefOut": true'' ex: ''"addrCksumRefOut": true''
Line 297: Line 317:
 === trackVerify === === trackVerify ===
 Boolean - //Only used if trackDerived is "data"//\\ Boolean - //Only used if trackDerived is "data"//\\
-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 ''false''.+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 ''false''.
  
 ex: ''"trackVerify": true'' ex: ''"trackVerify": true''
Line 345: Line 365:
  
 ex: ''"sectorBitSize": 8'' ex: ''"sectorBitSize": 8''
 +
 +=== sectorVerify ===
 +Boolean - //Only used if sectorDerived is "data"//\\
 +Set to ''true'' if you would like to validate that the sector number matches the physical sector number. If no value is provided, then it defaults to ''false''.
 +
 +ex: ''"sectorVerify": true''
  
 ---- ----
Line 360: Line 386:
  
 ex: ''"dataMarker": "FB"'' ex: ''"dataMarker": "FB"''
 +
 +=== dataMarkerBitMask ===
 +String - //Optional//\\
 +Data field marker bit mask to apply - value in hex. The length of the bit mask should equal the length of the marker.  This value is used to "mask off" particular bits to exclude them from consideration when locating a marker.  A binary value of 1 in any position will retain that bit for comparison.  A binary value of 0 in any position will exclude that bit from comparison.
 +
 +ex: ''"dataMarkerBitMask": "0F"''
  
 === dataStartIndex === === dataStartIndex ===
Line 442: Line 474:
 === dataCksumRefIn === === dataCksumRefIn ===
 Boolean\\ Boolean\\
-If true, then the data bytes will be reflected (bit-endian reversed (eg: 0x80 becomes 0x01)) on input to the checksum algorithm. If no value is provided, then it defaults to ''false''.+If ''true'', then the data bytes will be reflected (bit-endian reversed (eg: 0x80 becomes 0x01)) on input to the checksum algorithm. If no value is provided, then it defaults to ''false''.
  
 ex: ''"dataCksumRefIn": true'' ex: ''"dataCksumRefIn": true''
Line 448: Line 480:
 === dataCksumRefOut === === dataCksumRefOut ===
 Boolean\\ Boolean\\
-If true, then the result of the checksum algorithm will have its data reflected (bit-endian reversed) on output. If no value is provided, then it defaults to ''false''.+If ''true'', then the result of the checksum algorithm will have its data reflected (bit-endian reversed) on output. If no value is provided, then it defaults to ''false''.
  
 ex: ''"dataCksumRefOut": true'' ex: ''"dataCksumRefOut": true''