Files
sibo-playground/code/SIBOSDK/include/p_zmodem.h
T
2026-07-06 18:01:36 +01:00

67 lines
2.2 KiB
C

/*
P_ZMODEM.H - Header file for Zmodem protocol
Written by John, August 1995
*/
#ifndef P_ZMODEM_H
#define P_ZMODEM_H
/* ZDLE sequences */
#define ZCRCE 'h' /* CRC next, frame ends, header packet follows */
#define ZCRCG 'i' /* CRC next, frame continues nonstop */
#define ZCRCQ 'j' /* CRC next, frame continues, ZACK expected */
#define ZCRCW 'k' /* CRC next, ZACK expected, end of frame */
#define ZRUB0 'l' /* Translate to rubout 0177 */
#define ZRUB1 'm' /* Translate to rubout 0377 */
/* Zmodem frame byte defines */
#define ZPAD 0x2A
#define ZDLE 0x18
#define ZBIN 0x41
#define ZHEX 0x42
#define ZBIN_32 0x43
#define CAN 0x18 /* Makes the ZDLE choice the worst possible */
/* P_FCONNECT service connection modes */
#define P_ZMDM_RECV 0 /* want link as acceptor/receiver of files */
#define P_ZMDM_SEND 1 /* want link as initiator/sendor of files */
#define P_ZMDM_NLOG 32 /* Max number of debug events,states we record */
/* Event types */
#define P_ZMDM_LOG_PANIC 0xC0 /* panic number */
#define P_ZMDM_LOG_COMP 0x40 /* user completion */
#define P_ZMDM_LOG_REQ 0x80 /* user request */
/* State and event log record */
typedef struct
{
UBYTE state;
UBYTE event;
} P_ZMLOG;
#define P_ZM_MAX_BUF 1030
/* Frame types that we received */
#define P_ZM_FRAME_TYPE_RQ_INIT 0
#define P_ZM_FRAME_TYPE_R_INIT 1
#define P_ZM_FRAME_TYPE_S_INIT 2
#define P_ZM_FRAME_TYPE_ACK 3
#define P_ZM_FRAME_TYPE_FILE 4
#define P_ZM_FRAME_TYPE_SKIP 5
#define P_ZM_FRAME_TYPE_NAK 6
#define P_ZM_FRAME_TYPE_ABORT 7
#define P_ZM_FRAME_TYPE_FINISH 8
#define P_ZM_FRAME_TYPE_R_POS 9
#define P_ZM_FRAME_TYPE_DATA 10
#define P_ZM_FRAME_TYPE_EOF 11
#define P_ZM_FRAME_TYPE_FILE_ERR 12
#define P_ZM_FRAME_TYPE_CRC 13
#define P_ZM_FRAME_TYPE_CHALLENGE 14
#define P_ZM_FRAME_TYPE_COMPLETE 15
#define PSEUDO_IMPLEMENTATION_SPECIFIC_FRAME 16
#define P_ZM_FRAME_TYPE_FREE_SIZE 17
#define P_ZM_FRAME_TYPE_COMMAND 18
#define P_ZM_FRAME_TYPE_STD_ERR 19
#endif // P_ZMODEM_H