|
|
1.1 root 1: #ifndef __CSB_DOT_H
2: #define __CSB_DOT_H
3:
4: /*
5: * _CSB.H 5.20A June 8, 1995
6: *
7: * The Greenleaf Comm Library
8: *
9: * Copyright (C) 1984-1995 Greenleaf Software Inc. All Rights Reserved.
10: *
11: * NOTES
12: *
13: * This header file has the declarations necessary for accessing the
14: * "private" CompuServe B+transfer support routines. Every private
15: * routine has a name that starts with an underscore. Since the private
16: * routines are actually found in several different files, there is no
17: * way to make them truly private, but the high end user would be best
18: * off just ignoring these routines.
19: *
20: * MODIFICATIONS
21: *
22: * April 29, 1994 5.00A : Initial release
23: */
24:
25: #define BPLUS_SEND_AHEAD_BUFFERS 5 /* Number of buffers before ACK */
26: /* is expected */
27: #define BPLUS_DEFAULT_PACKET_SIZE 1031
28: #define BPLUS_MASK_LO_RANGE 0x01
29: #define BPLUS_MASK_HI_RANGE 0x10
30:
31: /*
32: * CompuServe B+ quoting levels and mask
33: */
34: #define BPLUS_QUOTING_LEVEL_0 0 /* No qouting level */
35: #define BPLUS_QUOTING_LEVEL_1 1
36: #define BPLUS_QUOTING_LEVEL_2 2
37: #define BPLUS_QUOTING_LEVEL_3 3
38: #define BPLUS_QUOTING_MASK 4
39:
40:
41: typedef enum {
42: BPLUS_GET_DLE,
43: BPLUS_DLE_SEEN,
44: BPLUS_DLE_B_SEEN,
45: BPLUS_GET_DATA,
46: BPLUS_GET_CHECKSUM,
47: BPLUS_GET_CRC_16,
48: BPLUS_GET_CRC_32,
49: BPLUS_VERIFY_CRC,
50: BPLUS_VERIFY_CHECKSUM,
51: BPLUS_VERIFY_PACKET,
52: BPLUS_SEND_NAK,
53: BPLUS_SEND_ACK,
54: BPLUS_SEND_ENQ,
55: BPLUS_RESEND_PACKETS
56: } BPLUS_ACTION;
57:
58:
59: #define NORMAL_MODE 0
60: #define ESCAPE_SEQ_MODE 1
61: #define BPLUS_LOW_RANGE 7
62: #define BPLUS_HIGH_RANGE 11
63: #define BPLUS_PLUS_PACKET_SIZE 18
64:
65:
66: typedef struct pending_info {
67: int seq_num;
68: int packet_size;
69: unsigned char *packet;
70: } PENDING_PACKET;
71:
72: typedef struct _csb_options {
73: int transfer_complete;
74: int s_seq_num;
75: int buffer_size;
76: int char_timeout;
77: int last_character;
78: int not_masked;
79: int packets_not_acked;
80: PENDING_PACKET pending[ BPLUS_SEND_AHEAD_BUFFERS ];
81: int pending_count;
82: int next_packet;
83: char check_crc;
84: int sent_enq;
85: int last_ack;
86: int quoting;
87: char mask[ 32 ];
88: } _CSB_DATA;
89:
90: int GF_CONV _BPTransfer( XFER *bplus );
91: unsigned short int GF_CONV _CalculateBPlusCRC16( unsigned short crc,
92: unsigned char c );
93:
94: #endif /* #ifdef __CSB_DOT_H */
95:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.