Changes

no edit summary
Line 4: Line 4:     
== VT/VX/VY/VZ Commodores ==
 
== VT/VX/VY/VZ Commodores ==
 +
 +
=== Unlock Procedure ===
 +
 +
Before any configuration data can be read or written, the cluster must be in an "unlocked" state. This is achieved using a challenge-response authentication mechanism (also known as a seed/key pair). A seed can be requested from the cluster by issuing a Mode <code>11</code> request, followed by table number <code>00</code>. The cluster will respond with Mode <code>11</code> and two bytes that form the seed. The key value is calculated and sent as a write to table <code>01</code> in Mode <code>11</code>. For details on calculating key values, see [[GM:Seed/Key|GM Seed/Key]]. The tables below illustrate the unlocking procedure.
 +
 +
Seed request
 +
 +
{|class="wikitable"
 +
! Length (bytes) !! Field !! Value !! Notes
 +
|-
 +
| align="center" | 1 || ID || align="center" | <code>F2</code> ||
 +
|-
 +
| align="center" | 1 || Length || align="center" | <code>57</code> ||
 +
|-
 +
| align="center" | 1 || Mode || align="center" | <code>11</code> ||
 +
|-
 +
| align="center" | 1 || Table || align="center" | <code>00</code> ||
 +
|-
 +
| align="center" | 1 || Checksum || align="center" | <code>A6</code> ||
 +
|}
 +
 +
Seed response
 +
 +
{|class="wikitable"
 +
! Length (bytes) !! Field !! Value !! Notes
 +
|-
 +
| align="center" | 1 || ID || align="center" | <code>F2</code> ||
 +
|-
 +
| align="center" | 1 || Length || align="center" | <code>59</code> ||
 +
|-
 +
| align="center" | 1 || Mode || align="center" | <code>11</code> ||
 +
|-
 +
| align="center" | 2 || Seed || align="center" | ''S'' || 16-bit Seed Value
 +
|-
 +
| align="center" | 1 || Checksum || align="center" | ''c'' ||
 +
|}
 +
 +
Key transmission
 +
 +
{|class="wikitable"
 +
! Length (bytes) !! Field !! Value !! Notes
 +
|-
 +
| align="center" | 1 || ID || align="center" | <code>F2</code> ||
 +
|-
 +
| align="center" | 1 || Length || align="center" | <code>59</code> ||
 +
|-
 +
| align="center" | 1 || Mode || align="center" | <code>11</code> ||
 +
|-
 +
| align="center" | 1 || Table || align="center" | <code>01</code> ||
 +
|-
 +
| align="center" | 2 || Key || align="center" | ''K'' || 16-bit Key Value
 +
|-
 +
| align="center" | 1 || Checksum || align="center" | ''c'' ||
 +
|}
 +
 +
Key response
 +
 +
{|class="wikitable"
 +
! Length (bytes) !! Field !! Value !! Notes
 +
|-
 +
| align="center" | 1 || ID || align="center" | <code>F2</code> ||
 +
|-
 +
| align="center" | 1 || Length || align="center" | <code>58</code> ||
 +
|-
 +
| align="center" | 1 || Mode || align="center" | <code>11</code> ||
 +
|-
 +
| align="center" | 2 || Status || || Equals key ''K'' on successful unlock, <code>FFFF</code> on failure.
 +
|-
 +
| align="center" | 1 || Checksum || align="center" | <code>F8</code> ||
 +
|}
    
=== Configuration Tables ===
 
=== Configuration Tables ===