changed reading hint
[gromacs/adressmacs.git] / src / gmxlib / comlib.c
blobbc0b0165b6f2be550801f478a953ec14300732fb
1 /*
2 * $Id$
3 *
4 * This source code is part of
5 *
6 * G R O M A C S
7 *
8 * GROningen MAchine for Chemical Simulations
9 *
10 * VERSION 2.0
12 * Copyright (c) 1991-1999
13 * BIOSON Research Institute, Dept. of Biophysical Chemistry
14 * University of Groningen, The Netherlands
16 * Please refer to:
17 * GROMACS: A message-passing parallel molecular dynamics implementation
18 * H.J.C. Berendsen, D. van der Spoel and R. van Drunen
19 * Comp. Phys. Comm. 91, 43-56 (1995)
21 * Also check out our WWW page:
22 * http://md.chem.rug.nl/~gmx
23 * or e-mail to:
24 * gromacs@chem.rug.nl
26 * And Hey:
27 * Green Red Orange Magenta Azure Cyan Skyblue
29 static char *SRCID_comlib_c = "$Id$";
31 #define DUALC_PORT 0xb0001000 /* Communication area */
32 #define DUAL_PORT 0xb0000000 /* Data area */
33 #define RX_CMD 8*0x18 /* Command receive */
34 #define TX_CMD 8*0x19 /* Command transmitt */
35 #define RX_DAT 8*0x1a /* Data receive single byte */
36 #define TX_DAT 8*0x1b /* Data transmit single byte */
38 #include "comlib.h"
40 volatile static unsigned char *dualcp=(unsigned char *)DUALC_PORT;
42 void put_serverbyte(unsigned char data)
44 dualcp[TX_DAT]=data;
45 dualcp[TX_CMD]=0x01;
46 while(dualcp[TX_CMD]&0x01);
49 unsigned char get_serverbyte()
51 unsigned char data;
53 while((dualcp[RX_CMD]&0x01)==0x00);
54 data=dualcp[RX_DAT];
55 dualcp[RX_CMD]=0x00;
56 return data;
59 void get_serverdata(void *data,int size)
61 char *p;
63 for(p=data; size>0; size--) *(p++)=get_serverbyte();
66 void put_serverdata(void *data,int size)
68 char *p;
70 for(p=data; size>0; size--) put_serverbyte(*(p++));