home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #6 / amigaacscoverdisc1998-061998.iso / games / descent / source / bios / ipx.h < prev    next >
Text File  |  1998-06-08  |  5KB  |  146 lines

  1. /*
  2. THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
  3. SOFTWARE CORPORATION ("PARALLAX").  PARALLAX, IN DISTRIBUTING THE CODE TO
  4. END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
  5. ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
  6. IN USING, DISPLAYING,  AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
  7. SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
  8. FREE PURPOSES.  IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
  9. CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES.  THE END-USER UNDERSTANDS
  10. AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.  
  11. COPYRIGHT 1993-1998 PARALLAX SOFTWARE CORPORATION.  ALL RIGHTS RESERVED.
  12. */
  13. /*
  14.  * $Source: f:/miner/source/bios/rcs/ipx.h $
  15.  * $Revision: 2.6 $
  16.  * $Author: john $
  17.  * $Date: 1995/03/29 11:19:32 $
  18.  * 
  19.  * Prototype for IPX communications.
  20.  * 
  21.  * $Log: ipx.h $
  22.  * Revision 2.6  1995/03/29  11:19:32  john
  23.  * Added broadcasting over a net.
  24.  * 
  25.  * Revision 2.5  1995/03/28  20:04:43  john
  26.  * Took away alternate server stuff.
  27.  * 
  28.  * Revision 2.4  1995/03/23  19:00:10  john
  29.  * Added user list capabitly.
  30.  * 
  31.  * Revision 2.3  1995/03/23  12:26:57  john
  32.  * Move IPX into bios lib.
  33.  * 
  34.  * Revision 2.2  1995/03/22  19:08:14  john
  35.  * Added code to fix sending packets over router... now
  36.  * we just need to make broadcasts go over router!!
  37.  * 
  38.  * Revision 2.1  1995/03/21  08:39:56  john
  39.  * Ifdef'd out the NETWORK code.
  40.  * 
  41.  * Revision 2.0  1995/02/27  11:30:16  john
  42.  * New version 2.0, which has no anonymous unions, builds with
  43.  * Watcom 10.0, and doesn't require parsing BITMAPS.TBL.
  44.  * 
  45.  * Revision 1.16  1995/02/16  17:34:52  john
  46.  * Added code to allow dynamic socket changing.
  47.  * 
  48.  * Revision 1.15  1995/01/04  21:43:27  rob
  49.  * Remove SPX size definition.
  50.  * 
  51.  * Revision 1.14  1995/01/03  13:46:18  john
  52.  * Added code that should make ipx work over different servers,
  53.  * but ifdef'd it out with SHAREWARE in ipx.c.  I haven't tested
  54.  * this, and I hope it doesn't introduce net bugs.
  55.  * 
  56.  * Revision 1.13  1994/11/02  11:37:16  rob
  57.  * Changed default socket number to a higher regions.
  58.  * 
  59.  * Revision 1.12  1994/11/01  15:56:51  rob
  60.  * Added defines for SPX socketsx.
  61.  * 
  62.  * Revision 1.11  1994/10/31  19:23:31  rob
  63.  * Added a prototype for the new object send function.
  64.  * 
  65.  * Revision 1.10  1994/09/07  13:37:25  john
  66.  * Changed default socket to 0x4000, because 
  67.  * the ipx/spx book says that we can only use
  68.  * sockets 0x4000 - 0x7fff.
  69.  * 
  70.  * Revision 1.9  1994/08/25  18:14:45  matt
  71.  * Changed socket because of packet change
  72.  * 
  73.  * Revision 1.8  1994/08/12  22:42:24  john
  74.  * Took away Player_stats; added Players array.
  75.  * 
  76.  * Revision 1.7  1994/08/09  19:31:47  john
  77.  * Networking changes.
  78.  * 
  79.  * Revision 1.6  1994/08/05  16:11:46  john
  80.  * Psuedo working version of networking.
  81.  * 
  82.  * Revision 1.5  1994/08/04  19:17:20  john
  83.  * Inbetween version of network stuff.
  84.  * 
  85.  * Revision 1.4  1994/07/29  16:08:59  john
  86.  * *** empty log message ***
  87.  * 
  88.  * Revision 1.3  1994/07/25  12:33:22  john
  89.  * Network "pinging" in.
  90.  * 
  91.  * Revision 1.2  1994/07/20  15:58:29  john
  92.  * First installment of ipx stuff.
  93.  * 
  94.  * Revision 1.1  1994/07/19  15:43:05  john
  95.  * Initial revision
  96.  * 
  97.  * 
  98.  */
  99.  
  100. #ifndef _IPX_H
  101. #define _IPX_H
  102.  
  103. // The default socket to use.
  104. #define IPX_DEFAULT_SOCKET 0x5100        // 0x869d
  105.                                                     
  106. //---------------------------------------------------------------
  107. // Initializes all IPX internals. 
  108. // If socket_number==0, then opens next available socket.
  109. // Returns:    0  if successful.
  110. //                -1 if socket already open.
  111. //                -2    if socket table full.
  112. //                -3 if IPX not installed.
  113. //                -4 if couldn't allocate low dos memory
  114. //                -5 if error with getting internetwork address
  115. extern int ipx_init( int socket_number, int show_address );
  116.  
  117. extern int ipx_change_default_socket( ushort socket_number );
  118.  
  119. // Returns a pointer to 6-byte address
  120. extern ubyte * ipx_get_my_local_address();
  121. // Returns a pointer to 4-byte server
  122. extern ubyte * ipx_get_my_server_address();
  123.  
  124. // Determines the local address equivalent of an internetwork address.
  125. void ipx_get_local_target( ubyte * server, ubyte * node, ubyte * local_target );
  126.  
  127. // If any packets waiting to be read in, this fills data in with the packet data and returns
  128. // the number of bytes read.  Else returns 0 if no packets waiting.
  129. extern int ipx_get_packet_data( ubyte * data );
  130.  
  131. // Sends a broadcast packet to everyone on this socket.
  132. extern void ipx_send_broadcast_packet_data( ubyte * data, int datasize );
  133.  
  134. // Sends a packet to a certain address
  135. extern void ipx_send_packet_data( ubyte * data, int datasize, ubyte *network, ubyte *address, ubyte *immediate_address );
  136. extern void ipx_send_internetwork_packet_data( ubyte * data, int datasize, ubyte * server, ubyte *address );
  137.  
  138. #define IPX_MAX_DATA_SIZE (542)        //(546-4)
  139.  
  140. extern void ipx_read_user_file(char * filename);
  141. extern void ipx_read_network_file(char * filename);
  142.  
  143. #endif
  144.  
  145. 
  146.