Protocol 7.00 Screenstreaming packet format#

This document defines the packet formats for Protocol 7.00 Screenstreaming.

Note

In places, most notably in some subheaders and with the checksum, the protocol uses the same ASCII-HEX encoding as for Protocol 7.00; see ASCII-HEX for more information.

Fields represented using ASCII-HEX will reference the section from Protocol 7.00 packet format directly.

All packets with Protocol 7.00 Screenstreaming packet have the

The packet mode for this mode is the following:

Offset

Size

Field name

Description

Values

0 (0x00)

1 B

Type (T)

Basic purpose of the packet

0x00 to 0x1F

1 (0x01)

5 B

Subtype (ST)

Subtype for the packet.

5-char ASCII string depending on the type.

6 (0x06)

N B

Payload (D)

Payload, for which the format depends on the format.

6 + N (0x06 + N)

2 B

Checksum (CS)

Checksum for the packet.

2-char ASCII-HEX value, e.g. 5B.

The checksum is computed the same way as for Protocol 7.00, that is to say, it is obtained by summing all bytes from ST to D included (i.e. the entire packet except T and CS), and adding 1 to its bitwise complement.

The interpretation of the packet depends on the value of T. See the following sections for more information.

Note

The header does not specify the total size of the packet, which implies that it must be computed using the type, subtype and eventual subheader. This, unfortunately, makes it more susceptible to corruption.

0x06 – Acknowledgement packet#

The acknowledgement packet can be used to accept a synchronization, so that the sender starts sending frame packets instead of check packets. See Acknowledge a Sender for more information.

The only known subtype of this packet is 02001.

0x0B – Frame packet#

The frame packet contains a frame of the screen.

TYP01 frame format#

Such packets are sent by the fx-9860G and compatible on screenstreaming mode, and are of the following format:

Offset

Size

Field name

Description

Values

6 (0x06)

1024 B

Frame (F)

Frame data, as a 128x64 1-bit monochrome picture; see 1bpp monochrome picture format for more information.

TYPZ1 frame format#

Such packets are sent by the fx-CG series on screenstreaming modes, and are of the following format:

Warning

In this table, the offset starts at 6 instead of 0. The subheader itself is only 18 bytes long!

Offset

Size

Field name

Description

Values

6 (0x06)

6 B

Frame Length (FL)

Length of the F field.

6-char ASCII-HEX value, e.g. 001234.

12 (0x0C)

4 B

Height (H)

Height of the frame, in pixels.

4-char ASCII-HEX value, e.g. 0123.

16 (0x10)

4 B

Width (W)

Width of the frame, in pixels.

4-char ASCII-HEX value, e.g. 0123.

20 (0x14)

4B

Frame Format (FF)

Format of the frame, i.e. picture encoding in use.

1RC2, 1RC3, 1RM2

24 (0x18)

FL B

Frame (F)

Frame data.

The frame formats are the following:

FF field value

Format

Expected size

1RC2

R5G6B5 picture format

width * height * 2

1RC3

4bpp packed RGB picture format

ceil(width * height / 2)

1RM2

Dual 1bpp gray picture format

2 * height * ceil(width / 8)

TYPZ2 frame format#

Such packets can also be sent by the fx-CG series on screenstreaming modes, and are of the following format:

Warning

In this table, the offset starts at 6 instead of 0. The subheader itself is only 20 bytes long!

Offset

Size

Field name

Description

Values

6 (0x06)

8 B

Frame Length (FL)

Length of the F field.

8-char ASCII-HEX value, e.g. 00001234.

14 (0x0E)

4 B

Height (H)

Height of the frame, in pixels.

4-char ASCII-HEX value, e.g. 0123.

18 (0x12)

4 B

Width (W)

Width of the frame, in pixels.

4-char ASCII-HEX value, e.g. 0123.

22 (0x16)

4B

Frame Format (FF)

Format of the frame, i.e. picture encoding in use.

1RC2, 1RC3, 1RM2

26 (0x1A)

FL B

Frame (F)

Frame data.

Note

This is roughly equivalent to the TYPZ1 frame format, with the FL field having been changed from 6 to 8 chars to allow larger frames.

The frame formats are the same as for TYPZ1 frame format.

0x16 – Check packet#

Check packets are sent by the sender to request an acknowledgement from the receiver. See Acknowledge a Sender for more information.

The only known subtype for this mode is CAL00.