Category : Network Files
Archive   : LASER.ZIP
Filename : NETBIOS.H

 
Output of file : NETBIOS.H contained in archive : LASER.ZIP
/* NETBIOS.H - include file for NetBIOS calls and definitions */
/* - written by Paul McGinnis, AST Research, Inc. - Data Comm Support */
/* - Dept. 430 - September 1988. */


typedef unsigned char byte;
typedef unsigned int word;


/* Structure of Network Control Block (NCB) */
typedef struct
{
byte NCB_COMMAND; /* command */
byte NCB_RETCODE; /* function return code */
byte NCB_LSN; /* local session number */
byte NCB_NUM; /* number of network name */
word NCB_BUFFER_OFFSET; /* offset of message buffer */
word NCB_BUFFER_SEGMENT; /* segment of message buffer */
word NCB_LENGTH; /* length of message buffer */
byte NCB_CALLNAME[16]; /* name of session user is talking to */
byte NCB_NAME[16]; /* user's network name */
byte NCB_RTO; /* receive time-out in 500 ms. incrs. */
byte NCB_STO; /* send time-out - 500 ms. increments */
word NCB_POST_OFFSET; /* offset of "no-wait" interrupt call */
word NCB_POST_SEGMENT; /* segment of "no-wait" interrupt */
byte NCB_LANA_NUM; /* adapter number (must be 0 or 1) */
byte NCB_CMD_CPLT; /* command completion status */
byte NCB_RESERVE[14]; /* Reserved area for Token-Ring */
} NCB;


/* NetBIOS error return codes - returned in NCB_RETCODE */
#define ERR_success 0 /* NetBIOS command completed normally */
#define ERR_bad_buffer_length 1 /* Bad send or status buffer size */
#define ERR_invalid 3 /* invalid NetBIOS command */
#define ERR_timeout 5 /* Command time-out has expired */
#define ERR_buffer_too_small 6 /* Receive buffer not big enough */
#define ERR_bad_session_num 8 /* Bad value in NCB_LSN */
#define ERR_no_RAM 9 /* LAN card doesn't have enough memory*/
#define ERR_session_closed 0xa /* This session is closed */
#define ERR_cancel 0xb /* Command has been closed */
#define ERR_dup_local_name 0xd /* Name already exists for this PC */
#define ERR_name_table_full 0xe /* Local name table is full */
#define ERR_active_session 0xf /* Can't delete name - used in session*/
#define ERR_sess_table_full 0x11 /* Local session table is full */
#define ERR_no_listen 0x12 /* Remote PC not listening for call */
#define ERR_bad_name_num 0x13 /* Bad value in NCB_NUM field */
#define ERR_no_answer 0x14 /* No answer to CALL or no such remote*/
#define ERR_no_local_name 0x15 /* No such name in local name table */
#define ERR_duplicate_name 0x16 /* Name is in use elsewhere on net */
#define ERR_bad_delete 0x17 /* Name incorrectly deleted */
#define ERR_abnormal_end 0x18 /* Session aborted abnormally */
#define ERR_name_error 0x19 /* 2 or more identical names in use! */
#define ERR_bad_packet 0x1a /* Bad NetBIOS packet on network */
#define ERR_card_busy 0x21 /* network card is busy */
#define ERR_too_many_cmds 0x22 /* Too many NetBIOS commands queued */
#define ERR_bad_card_num 0x23 /* bad NCB_LANA_NUM - must be 0 or 1 */
#define ERR_cancel_done 0x24 /* command finished while cancelling */
#define ERR_no_cancel 0x26 /* Command can't be cancelled */
#define ERR_busy 0xff /* Still processing command */


/* NetBIOS functions list - "WAIT" calls wait until command completes */
/* while the others jump to the routine in NCB_POST when the NetBIOS */
/* command completes and does an interrupt. */
#define RESET 0x32 /* Reset adapter card and tables */
#define CANCEL 0x35 /* Cancel command. NCB_BUFFER = cmd. */

#define STATUS 0xb3 /* status information for adapter */
#define STATUS_WAIT 0x33

#define TRACE 0xf9 /* Token-Ring protocol trace */
#define TRACE_WAIT 0x79

#define UNLINK 0x70 /* unlink from IBM Remote Program */

#define ADD_NAME 0xb0 /* Add name to name table */
#define ADD_NAME_WAIT 0x30

#define ADD_GROUP_NAME 0xb6 /* Add group name to name table */
#define ADD_GROUP_NAME_WAIT 0x36

#define DELETE_NAME 0xb1 /* Delete name from name table */
#define DELETE_NAME_WAIT 0x31

#define CALL 0x90 /* Start session with NCB_NAME name */
#define CALL_WAIT 0x10

#define LISTEN 0x91 /* Listen for call */
#define LISTEN_WAIT 0x11

#define HANG_UP 0x92 /* End session with NCB_NAME name */
#define HANG_UP_WAIT 0x12

#define SEND 0x94 /* Send data via NCB_LSN */
#define SEND_WAIT 0x14

#define SEND_NO_ACK 0xf1 /* Send data without waiting for ACK */
#define SEND_NO_ACK_WAIT 0x71

#define CHAIN_SEND 0x97 /* Send multiple data buffers */
#define CHAIN_SEND_WAIT 0x17

#define CHAIN_SEND_NO_ACK 0xf2 /* Send multiple buffers without ACK */
#define CHAIN_SEND_NO_ACK_WAIT 0x72

#define RECEIVE 0x95 /* Receive data from a session */
#define RECEIVE_WAIT 0x15

#define RECEIVE_ANY 0x96 /* Receive data from any session */
#define RECEIVE_ANY_WAIT 0x16

#define SESSION_STATUS 0xb4 /* status of all sessions for name */
#define SESSION_STATUS_WAIT 0x34

#define SEND_DATAGRAM 0xa0 /* send un-ACKed message */
#define SEND_DATAGRAM_WAIT 0x20

#define SEND_BCST_DATAGRAM 0xa2 /* send broadcast message */
#define SEND_BCST_DATAGRAM_WAIT 0x22

#define RECEIVE_DATAGRAM 0xa1 /* receive un-ACKed message */
#define RECEIVE_DATAGRAM_WAIT 0x21

#define RECEIVE_BCST_DATAGRAM 0xa3 /* receive broadcast message */
#define RECEIVE_BCST_DATAGRAM_WAIT 0x23

  3 Responses to “Category : Network Files
Archive   : LASER.ZIP
Filename : NETBIOS.H

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/