Line 39: |
Line 39: |
| |- | | |- |
| | [[#0x00020A04]] || 0x4 || 0x14 | | | [[#0x00020A04]] || 0x4 || 0x14 |
| + | |- |
| + | | [[#0x00021104]] || 0x4 || 0x8 |
| + | |- |
| + | | [[#0x00021204]] || 0x4 || 0x8 |
| + | |- |
| + | | [[#0x00021304]] || 0x4 || 0x8 |
| + | |- |
| + | | [[#0x00021A04]] || 0x4 || 0x14 |
| |- | | |- |
| | [[#0x00023104]] || 0x4 || 0x8 | | | [[#0x00023104]] || 0x4 || 0x8 |
Line 119: |
Line 127: |
| |- | | |- |
| | 0x10 || 0x2 || 16bit value copied to output_struct+0x6. | | | 0x10 || 0x2 || 16bit value copied to output_struct+0x6. |
| + | |} |
| + | |
| + | == 0x00021104 == |
| + | This is implemented in the app with the cmd to use being specified via an input param. |
| + | |
| + | See [[#0x00021A04]]. |
| + | |
| + | Reply: |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset || Size || Description |
| + | |- |
| + | | 0x4 || 0x2 || Data, copied to an output struct as an 16bit value. |
| + | |- |
| + | | 0x6 || 0x1 || [[#CRC]] over the previous 0x3-bytes. |
| + | |} |
| + | |
| + | == 0x00021204 == |
| + | See [[#0x00021104]]. |
| + | |
| + | == 0x00021304 == |
| + | See [[#0x00021104]]. |
| + | |
| + | == 0x00021A04 == |
| + | The app uses cmd [[#0x00020000]] first. When u8 reply_x5 from that cmd is >=0x20, it proceeds to use cmd 0x00021A04. Otherwise, the following cmds are used, with the output being written to the output_struct: [[#0x00021104]] (output_struct+0x0), [[#0x00021204]] (output_struct+0x2), [[#0x00021304]] (output_struct+0x4). |
| + | |
| + | Then, if any of the 16bit output fields in output_struct are set to 0xCAFE, a flag is set to 0x2 (same field used for invalid-CRC, which uses value 0x1 for that). Then this returns 0. |
| + | |
| + | Reply: |
| + | |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Offset || Size || Description |
| + | |- |
| + | | 0x4 || 0x2 || 16bit value copied to output_struct+0x0. |
| + | |- |
| + | | 0x6 || 0x1 || [[#CRC]] over the previous 0x2-bytes. |
| + | |- |
| + | | 0x7 || 0x1 || Padding. |
| + | |- |
| + | | 0x8 || 0x2 || 16bit value copied to output_struct+0x2. |
| + | |- |
| + | | 0xA || 0x1 || [[#CRC]] over the previous 0x2-bytes. |
| + | |- |
| + | | 0xB || 0x1 || Padding. |
| + | |- |
| + | | 0xC || 0x2 || 16bit value copied to output_struct+0x4. |
| + | |- |
| + | | 0xE || 0x1 || [[#CRC]] over the previous 0x2-bytes. |
| + | |- |
| + | | 0xF || 0x1 || Padding. |
| |} | | |} |
| | | |