📄 spx.h
字号:
#define byte unsigned char
#define word unsigned int
struct SPXECB //ECB结构定义
{
void far *link_address;
void far (*event_service_routine)(void);
unsigned char in_use;
unsigned char completion_code;
unsigned int socket_number;
unsigned char connection_id;
unsigned char reserved;
unsigned char driver_workspace [12];
unsigned char immediate_address[ 6];
unsigned int packet_count;
struct {
void far *address;
unsigned int length;
} packet [2];
};
struct SPXHEADER //SPX分组头定义
{
unsigned int checksum;
unsigned char length[2];
unsigned char transport_control;
unsigned char packet_type;
unsigned char dest_network_number [4];
unsigned char dest_network_node [6];
unsigned int dest_network_socket;
unsigned char source_network_number [4];
unsigned char source_network_node [6];
unsigned int source_network_socket;
unsigned char connection_control;
unsigned char datasream_type;
unsigned int source_connection_id;
unsigned int dest_connection_id;
unsigned int sequence_number;
unsigned int acknowledge_number;
unsigned int allocation_number;
};
struct STABUF
{
byte connect_status;
byte watchdog;
word local_connect_id;
word remote_connect_id;
word sequence_num;
word local_acknowledge_num;
word loacl_allocation_num;
word remote_acknowledge_num;
word remote_allocation_num;
byte local_socket[2];
byte immediate_address[6];
byte remote_network[4];
byte remote_node[6];
byte remote_socket[2];
word retransmit_count;
word est_roundtrip_time;
word retransmit_packets;
word suppressed_packets;
};
void spx_listen_for_sequenced_packet(struct SPXECB *ecb_ptr)
{
_ES=FP_SEG((void far *)ecb_ptr);
_SI=FP_OFF((void far *)ecb_ptr);
_BX=0x0017;
ipx_spx();
}
void spx_listen_for_connection(struct SPXECB *ecb_ptr)
{
_ES=FP_SEG((void far *)ecb_ptr);
_SI=FP_OFF((void far *)ecb_ptr);
_BX=0x0012;
_AH=1;
_AL=0xff;
ipx_spx();
}
void spx_establish_connection(struct SPXECB *ecb_ptr)
{
_ES=FP_SEG((void far *)ecb_ptr);
_SI=FP_OFF((void far *)ecb_ptr);
_BX=0x0011;
_AH=1;
_AL=0xff;
ipx_spx();
}
void spx_send_sequenced_packet(struct SPXECB *ecb_ptr,
unsigned int connection_id)
{
_ES=FP_SEG((void far *)ecb_ptr);
_SI=FP_OFF((void far *)ecb_ptr);
_DX=connection_id;
_BX=0x0016;
ipx_spx();
}
void spx_terminate_connection(struct SPXECB *ecb_ptr,
unsigned int connection_id)
{
_ES=FP_SEG((void far *)ecb_ptr);
_SI=FP_OFF((void far *)ecb_ptr);
_DX=connection_id;
_BX=0x0013;
ipx_spx();
}
void spx_get_connection_status(struct STABUF *reply_buffer,
unsigned int connection_id)
{
_ES=FP_SEG((void far *)reply_buffer);
_SI=FP_OFF((void far *)reply_buffer);
_DX=connection_id;
_BX=0x0015;
ipx_spx();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -