Synchronet v3.19b-Win32 (install) has been released (Jan-2022).

You can donate to the Synchronet project using PayPal.

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
ref:zmodem [2020/12/01 02:12] – [Data Subpacket] Added Data Subpacket Types "notes" column with important info digital manref:zmodem [2020/12/01 22:14] – [ZMODEM Frame] typo digital man
Line 67: Line 67:
  
 ==== ZMODEM Frame ==== ==== ZMODEM Frame ====
-There 2 classes of ZMODEM Frames: +There are 2 classes of ZMODEM Frames: 
-  Hexadecimal (HEX) frames, contain only US-ASCII characters +  Hexadecimal (HEX) frames, containing only US-ASCII characters 
-  Binary (BIN16 or BIN32) frames, contain //almost// all possible 8-bit octet values+  Binary (BIN16 or BIN32) frames, containing //almost// all possible octet values
  
 === HEX Frame === === HEX Frame ===
Line 82: Line 82:
  
 ==== Frame Header ==== ==== Frame Header ====
-  <frame encoding> <frame type> <frame info> <crc>+  <frame encoding> <frame type> <frame info> <checksum>
  
-**Frame Encoding** (single byte): HEX ('''B'''), BIN16 ('''A'''), or BIN32 ('''C''').\\ +**Frame Encoding** (single byte):
-All frames sent by the "receiver" must use HEX encoding.+
  
-**Frame Type** (single byte): ZDATA, ZRPOS, ZACK, ZEOF, etc.+The //Frame Encoding// is also sometimes called the "Frame Style".
  
-**Frame Info**: Up to 15 bytes (but typically 4) of frame type-specific information. Note that later claims of //16// bytes of possible frame header data include the //Frame Type// byte.+^ Style  ^  AKA   ^ Value          ^ Frame Contents                       ^ Checksum   ^ 
 +| HEX    | ZHEX   | ASCII '''B'''  | Hexadecimal/US-ASCII characters only | 16-bit CRC | 
 +| BIN16  | ZBIN   | ASCII '''A'''  | Binary                               | 16-bit CRC | 
 +| BIN32  | ZBIN32 | ASCII '''C'''  | Binary                               | 32-bit CRC | 
 + 
 +Notes: 
 +  * All frames sent by the "receiver" must use HEX encoding.  
 + 
 +**Frame Type** (single byte): 
 + 
 +^ Type     ^ Value ^ TX((from sender))^ RX((from receiver)) ^ Info    ^ Data Subpkt    ^ Notes ^ 
 +| ZRQINIT  | 0x00  |  Y                -                  | caps    | -              | Request ZRINIT from the receiver | 
 +| ZRINIT   | 0x01  |  -                Y                  | caps    | -              | Receiver Initialized | 
 +| ZSINIT   | 0x02  |  Y                -                  | flags   | Attn sequence  | Sender Initialized | 
 +| ZACK     | 0x03  |  Y                Y                  | offset  | -              | Positive Acknowledgment | 
 +| ZFILE    | 0x04  |  Y                -                  | options | File metadata  | File information (name/len/date) | 
 +| ZSKIP    | 0x05  |  -                Y                  |         | -              | Skip (don't send) this file | 
 +| ZNAK     | 0x06  |  Y                Y                  |         | -              | Negative Acknowledgment | 
 +| ZABORT   | 0x07  |  -                Y                  |         | -              | Terminate batch file transfer | 
 +| ZFIN     | 0x08  |  Y                -                  |         | -              | Terminate transfer session | 
 +| ZRPOS    | 0x09  |  -                Y                  | offset  | -              | Reposition the send offset | 
 +| ZDATA    | 0x0A  |  Y                -                  | offset  | File contents  | One or more data subpackets follow | 
 +| ZEOF     | 0x0B  |  Y                -                  | offset  | -              | End of file reached | 
 +| ZFERROR  | 0x0C  |  -                Y                  |         | -              | File I/O error | 
 +| ZCRC     | 0x0D  |  Y                Y                  | CRC-32  | -              | File CRC request/response | 
 +| ZFREECNT | 0x11  |  Y                -                  | f-space | -              | Request free disk space | 
 + 
 +**Frame Info**: Up to 15 bytes (but typically 4) of frame type-specific information.\\ 
 +Note that later claims of //16// bytes of possible frame header data include the //Frame Type// byte.
  
 **Frame Header Integrity**: The //Frame Type// and //Frame Info// are integrity-protected with either a 16-bit or 32-bit CRC (determined by the frame encoding). **Frame Header Integrity**: The //Frame Type// and //Frame Info// are integrity-protected with either a 16-bit or 32-bit CRC (determined by the frame encoding).