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