/***************************************************************************/
/*                            DATAPATH SIMULATOR                           */
/*                                                                         */
/*                              By Emily Ezust                             */
/*                                   1993				   */
/*                                                                         */
/*                 Based on Andrew Tanenbaum's hypothetical                */
/*                   Complex Instruction Set Computer                      */
/*                                                                         */
/***************************************************************************/

/***************************************************************/
/*                                                             */
/* Copyright (c) 1995 by Emily Ezust                           */
/*                                                             */
/* This software is hereby licensed for non-commercial use     */
/* only.  It may be freely distributed but it may not be used  */
/* for monetary profit.  Commercial use of this software is    */
/* not permitted without an explicit written agreement with    */
/* the author.                                                 */
/*                                                             */
/***************************************************************/


/* structures header file */

typedef struct file_info_struct 
{
  FILE *fp ;
  char *file ;
} package ;

/* typedef struct 
{
  char *label;
  void (*callback) () ;
  XtPointer data;
} ActionAreaItem ;
  */
typedef struct coord_struct 
{
  int r, c;
} pair ;

typedef struct converting_struct 
{
  char alpha[5] ;
  int code ;
  int num_bits ;
} table_entry;

typedef struct pair_list 
{
  pair *coords ;
  struct pair_list *next ;
} plist ;

typedef struct screen_stuff
{
  pair *coords ;
  int *data ;
} screg ;

typedef struct info_struct 
{
  pair *alt;
  int inst_ind ;
  int match ;
} info ;


typedef struct point_struct
{
  char chr;
  pair *next ; 
  info *alt ;
  int *reg_ptr ;
  int data_changes ;
  int store_data ;
  int screg_index ; 
  int circ ;
  plist *highlights ; 
  int take_both_paths ;
} point ;

typedef struct alu_struct
{
  int Z, N ;
  int *F;
} alu_info ;

