home *** CD-ROM | disk | FTP | other *** search
/ Amiga ACS 1998 #6 / amigaacscoverdisc1998-061998.iso / games / descent / source / bios / demo.c < prev    next >
Text File  |  1998-06-08  |  2KB  |  89 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. #include <i86.h>
  14. #include <dos.h>
  15. #include <stdio.h>
  16. #include <string.h>
  17. #include <malloc.h>
  18. #include <stdlib.h>
  19. #include <conio.h>
  20.  
  21. #include "types.h"
  22. #include "timer.h"
  23. #include "mono.h"
  24. #include "ipx.h"
  25. #include "error.h"
  26. #include "dpmi.h"
  27. #include "key.h"
  28.  
  29. char temp1[512];
  30.  
  31.  
  32. void stuff_key( ushort code )
  33. {
  34.     ushort * buffer = (ushort *)0x41e;
  35.     ushort * ptr = (ushort *)0x41c;
  36.     buffer[*ptr] = code << 8;
  37.     *ptr = *ptr + 1;
  38.     if ( *ptr > 15 ) *ptr = 0;
  39. }
  40.  
  41. void _far my_timer()
  42. {
  43.     char c;
  44.     int k, size = ipx_get_packet_data( temp1 );
  45.  
  46.     if ( size > 0 )    {
  47.         stuff_key( temp1[0] );
  48.     }
  49.     
  50.     k = key_inkey();
  51.     c = key_to_ascii(k);
  52.  
  53.     if ( c < 255 )    {
  54.         stuff_key( c );
  55.         temp1[0] = c;
  56.         ipx_send_broadcast_packet_data( temp1, 1 );
  57.     }
  58.  
  59. }
  60.  
  61. void main()
  62. {
  63.     char c;
  64.     int i, k,size;
  65.     char temp[100];
  66.     char temp1[512];
  67.     
  68.     setbuf(stdout, NULL);    // unbuffered output via printf
  69.     dpmi_init(0);
  70.     minit();
  71.     mopen( 0, 9, 1, 78, 15, "Debug Spew");
  72.     mopen( 1, 2, 1, 78,  5, "Errors & Serious Warnings");
  73.     key_init();
  74.     timer_init();
  75.  
  76.     ipx_init( IPX_DEFAULT_SOCKET-10, 1 );
  77.  
  78.     ipx_read_user_file( "descent.usr" );
  79.     ipx_read_network_file( "descent.net" );
  80.  
  81.     timer_set_function( my_timer );
  82.  
  83.     printf( "\nType something and then hit Enter to send (Esc Quits)...\n" );
  84.  
  85.     system( "4dos" );
  86. }
  87.  
  88. 
  89.