BioNet was a GEMDOS network extension from BIODATA GmbH.
Three functions are added to the GEMDOS, which allow the BioNet Client to communicate with a 'Nap' hosted by the Nap Server. A server can run multiple Nap, each of them is identified by a nap_handle associated to a internal NAP_COM structure.
| Number | Meaning
|
| 91 | nap_io() Nap input/output
This function is the legacy function for bidirectional communication with the server. nap_io is divided into the nap_in_s and nap_out_s functions, which are executed one after the other. The return value is the number of returned bytes. Syntax: int32_t gemdos( 91, int16_t nap_handle, int8_t *buf_out, int32_t len_out, int8_t *buf_in, int32_t len_in); |
| 130 | nap_in_s() Nap input
This function writes data to the server. Returns the number of transferred bytes. Syntax: int32_t gemdos( 130, int16_t nap_handle, int32_t mode, int32_t count, int8_t *buffer); |
| 131 | nap_out_s() Nap output
This function reads data from the server. Returns the number of transferred bytes. Syntax: int32_t gemdos( 131, int16_t nap_handle, int32_t mode, int32_t count, int8_t *buffer); |
The mode parameter is stored into the field nap_wert by the server. Values from 0 to -9L are reserved by BioNet100. The client can set mode to a value less than -9L to acquire a lock, or to 0L to release the lock. If no transfer is required, count should be set to 0.
The NAP_COM structure is defined as follows:
typedef struct
{
int16_t nap_handle; /* Nap handle that identifies a program */
int32_t nummer; /* BioNet client number */
int16_t status; /* Status of the client */
/* Bit 0: nap_in_s is active */
/* Bit 1: nap_out_s is active */
/* Bit 2: first data burst */
/* Bit 3: last data burst */
/* Bit 4: fatal error */
int32_t ret_wert; /* If bit 4 of status is set, specifies */
/* the message sent to the client: */
/* 0 = 'Cant repair protocoll-error...' */
/* 1 = 'Repairing protocoll-error...' */
int32_t nap_wert; /* If nonzero, prevents other client to */
/* communicate with this Nap. By default, */
/* set to nummer. This value is returned */
/* as error-code to other client */
int8_t *in_buffer; /* Pointer to the data buffer that holds */
/* either the data to read from nap_in_s, */
/* or command data for nap_out_s */
int8_t *out_buffer; /* Pointer to the data buffer that holds */
/* the data to send to the client through */
/* nap_out_s. */
int32_t ges_count; /* Total number of data to send/receive */
int32_t akt_count; /* Current number of data to send/receive */
}
Note: The BioNet server complies to the XBRA protocol with ID 'BioS'.
See also: GEMDOS BIOS function list XBIOS function list