52
Command Summary
send a 128 byte block of data followed by that blocks high and low CRC16 bytes. The display then
performs a CRC check on the data receive and ACKs if it matches that which was sent. Transfer
continues with a block count and continues in this way until the end of file is reached. Files may be
padded with 255 values to reach an even multiple of 128 bytes in size, but the download command will
always report true size. Once the end of the upload file is reached, the host should transmit a single end
of transmission byte. If the end of file is expected, the display will ACK one last time.
Table 45: XModem File Upload Protocol
Host
Display
Comments
254
Command Prefix
220
XModem Upload Command
133
Command Byte One
6
Command Byte Two
48
Command Byte Three
1
File ID LSB
0
File ID MSB
1
File Type
0
Size LSB
0
Size
1
Size
0
Size MSB
67
C (If file fits)
1
Start of Header
128
Block Count
127
Inverted Block Count (255-Count)
<128 B>
128 Byte Data Block
30
*
CRC MSB
71
*
CRC LSB
6
ACK (NAK if counts don’t match)
…
…
…
4
End of Transmission
6
ACK (NAK if EOT is not expected)
Table 46: XModem File Download Protocol
Host Display
Comments
254
Command Prefix
221
XModem Download Command
133
Command Byte One
6
Command Byte Two
48
Command Byte Three
1
File ID LSB
0
File ID MSB
1
File Type
0
Size LSB (NAK if not found)
0
Size
1
Size
0
Size MSB
67
C
1
Start of Header
128
Block Count
127
Inverted Block Count (255-Count)
<128 B>
128 Byte Data Block
30
*
CRC MSB
71
*
CRC LSB
6
ACK (NAK if counts don’t match)
…
…
…
4
End of Transmission
6
ACK (NAK if EOT is not expected)
Table 47: XModem Message Bytes
Value
Action
Description
1
Start of Header
Begin upload transfer
4
End of Transmission
End completed upload transfer
6
Acknowledged
Transfer successful, upload continues
21
Not Acknowledged
Transfer failed, upload aborted
67
C
Confirmation that file will fit
*Note:
CRC bytes are calculated using the XMODEM CRC-CCITT algorithm available at:
http://www.matrixorbital.ca/appnotes/XModem/ymodem.txt
.