ctx_struct my_ctx;
ctx_struct parent_ctx;
-/* IDs of remote instances */
+/**
+ * IDs of remote instances
+ */
int RInstance[255];
-/* Direct connection channels */
+
+/**
+ * Direct connection channels
+ */
int DirConn[255];
-/* graphic vars */
+/**
+ * Graphic variables
+ */
int fcol, bcol, curx=0, cury=0;
-/* Macro to decode addressing modes : */
+/**
+ * Macro to decode addressing modes:
+ */
#define getargument(a, argnr) \
switch (eop->args[ argnr ]) \
{ \
}
/**
- * Load code and prototypes from file
+ * Loads code and prototypes from files
+ * Files have following extensions:
+ * .ccd - compiler code
+ * .pcd - program code
+ * .trd - traced debug
+ * @param _filename Filename of file to read.
*/
static void load(char *_filename)
{
}
/**
- * Establish configuration parameters
+ * Establishes configuration parameters
+ * Creates two sockets for program run
*/
static void initiate(int argc, char **argv)
{
usage();
}
-
+/**
+ *
+ */
void decode(){
extopcode *eop;
getargument(a3, 2);
}
-/* -------------------------------------------------------------------- */
-
-
+/**
+ * Sends message to graph module.
+ * @param msg Message to send.
+ */
void send_to_graph(G_MESSAGE *msg)
{
write(graph_sock, msg, sizeof(G_MESSAGE));
}
+/**
+ * Reads message from graph module.
+ * @param msg Message to read.
+ */
int read_from_graph(G_MESSAGE *msg)
{
fd_set rset,wset;
if (FD_ISSET(graph_sock, &rset))
return(read(graph_sock,msg,sizeof(G_MESSAGE)));
}
- return(0);
+ return 0;
}
+/**
+ * Reads message from net module.
+ * @param msg Message to read.
+ */
int read_from_net(MESSAGE *msg)
{
fd_set rset,wset;
if (FD_ISSET(net_sock, &rset))
return(read(net_sock, msg, sizeof(MESSAGE)));
}
- return(0);
+ return 0;
}
-/* Get graphic resource number */
+/**
+ * Gets graphic resource number
+ */
int get_graph_res()
{
MESSAGE msg;
}
-/* writeln string */
+/**
+ * Writes string line (ended with new line character)
+ */
void writeln_str(char *s)
{
G_MESSAGE msg;
send_to_graph(&msg);
}
-/* write string */
+/**
+ * Writes string
+ * @param s String to write
+ */
void write_str(char *s)
{
G_MESSAGE msg;
send_to_graph(&msg);
}
-/* write char */
+/**
+ * Writes char
+ * @param a Character to write
+ */
void write_char(char a)
{
G_MESSAGE msg;
}
-/* read char */
+/**
+ * Reads char
+ * @return Read character
+ */
char read_char()
{
char ch;
return ch;
}
-/* read line */
+/**
+ * Reads line
+ */
void read_line()
{
G_MESSAGE msg;
st = read_from_graph(&msg);
if (st > 0)
if ((msg.msg_type == MSG_GRAPH) &&
- (msg.param.pword[0]== GRAPH_READLN_RESPONSE))
+ (msg.param.pword[0] == GRAPH_READLN_RESPONSE))
break;
}
}
-/* read string */
+/**
+ * Reads string
+ * @param s Buffer to store string.
+ */
void read_str(char *s)
{
char ss[255];
st = read_from_graph(&msg);
if (st > 0) {
if ((msg.msg_type == MSG_GRAPH) &&
- (msg.param.pword[0]==GRAPH_READSTR_RESPONSE)) {
- strcpy(ss,msg.param.pstr);
+ (msg.param.pword[0] == GRAPH_READSTR_RESPONSE)) {
+ strcpy(ss, msg.param.pstr);
break;
}
}
}
/**
- * send message to kernel
+ * Sends message to kernel
+ * @param msg Message to send to kernel
*/
void send_to_kernel(MESSAGE *msg)
{
write(internal_sock, msg, sizeof(MESSAGE));
}
-/* send message to net */
-/* 2010 returns 1 if ok and 0 if node desn't exists */
+/**
+ * Sends message to net
+ * @return Returns 1 if ok and 0 if node desn't exists (since 2010)
+ */
int send_to_net(MESSAGE *msg)
{
int k, len;
}
-
void send_ready()
{
int sock, len;
fcntl(DirConn[parent_ctx.node], F_GETFL, 0));
}
+/**
+ * strcpy(filename, argv[2]);
+ * strcpy(ProgName, argv[2]);
+ *
+ * argv[1] = base name of this interpreter instance.
+ * For network there is created argv[1].net socket
+ * For graphics there is created argv[1].gr socket
+ * argv[2] = up to 80 characters string (with terminating \0). It is used to
+ * load selected program
+ * argv[3] = if exists and is equal to 'r', this is a remote call
+ */
int main(int argc, char **argv)
{
/* initialize executor */