# Vault 7: Projects

This publication series is about specific projects related to the Vault 7 main publication.

### Protego

# PIC24FJ64GA0XX -- Flash Programming Specification

- 1
- 2
…
- 38
- 39
- 40
- 41
- 42
…
- 51
- 52

PIC24FJXXXGA0XX
DS39768D-page 40 © 2008 Microchip Technology Inc.
5.2.12 QVER COMMAND
The QVER command queries the version of the
programming executive software stored in test
memory. The “version.revision” information is returned
in the response’s QE_Code using a single byte with the
following format: main version in upper nibble and
revision in the lower nibble (i.e., 23h means version 2.3
of programming executive software).
Expected Response (2 words):
1BMNh (where “MN” stands for version M.N)
0002h
5.3 Programming Executive
Responses
The programming executive sends a response to the
programmer for each command that it receives. The
response indicates if the command was processed
correctly. It includes any required response data or
error data.
The programming executive response set is shown in
Table 5-2. This table contains the opcode, mnemonic
and description for each response. The response format
is described in Section 5.3.1 “Response Format”.
TABLE 5-2: PROGRAMMING EXECUTIVE
RESPONSE OP CODES
5.3.1 RESPONSE FORMAT
All programming executive responses have a general
format consisting of a two-word header and any
required data for the command.
5.3.1.1 Opcode Field
The opcode is a 4-bit field in the first word of the
response. The opcode indicates how the command
was processed (see Table 5-2). If the command was
processed successfully, the response opcode is PASS.
If there was an error in processing the command, the
response opcode is FAIL and the QE_Code indicates
the reason for the failure. If the command sent to
the programming executive is not identified, the
programming executive returns a NACK response.
5.3.1.2 Last_Cmd Field
The Last_Cmd is a 4-bit field in the first word of
the response and indicates the command that the
programming executive processed. Since the program-
ming executive can only process one command at a
time, this field is technically not required. However, it
can be used to verify that the programming executive
correctly received the command that the programmer
transmitted.
15 12 11 0
Opcode Length
Field Description
Opcode Bh
Length 1h
Opcode Mnemonic Description
1h PASS Command successfully
processed
2h FAIL Command unsuccessfully
processed
3h NACK Command not known
Field Description
Opcode Response opcode
Last_Cmd Programmer command that
generated the response
QE_Code Query code or error code.
Length Response length in 16-bit words
(includes 2 header words)
D_1 First 16-bit data word (if applicable)
D_N Last 16-bit data word (if applicable)
15 12 11 8 7 0
Opcode Last_Cmd QE_Code
Length
D_1 (if applicable)
...
D_N (if applicable)

- 1
- 2
…
- 38
- 39
- 40
- 41
- 42
…
- 51
- 52