/* *************************************************************

        Final Project                                 MMU 1996

        ######################################################
        #                                                    #
        #               A Logical Neural Network             #   
        #                                                    #
        #               A single Ram Unit                    #
        #                                                    #
        ######################################################

        Albrecht Schmidt                              17.09.96

        FILE: CRam.h                               Version 1.0

   ************************************************************* */

#ifndef _CRam_h
#define _CRam_h

#include <stdio.h>

enum ramState { off,   on };

class CRam
{
  private:
     long ramsize;
     int inputs;
     ramState *memory;

  protected:
     void CRam::error(char *msg);
     void CRam::warning(char *msg);

  public:
     CRam::CRam(int no_inp);
     CRam::CRam(FILE *fd);
     CRam::~CRam();
     void CRam::Save(FILE *fd);
     int CRam::Store(double *add, int len, ramState val = on);
     int CRam::Store(long add, ramState val = on);
     ramState CRam::Recall(double *add, int len);
     ramState CRam::Recall(long add);
     void CRam::Reset();
     void CRam::Print();

     long CRam::Vect2int(double *vect, int len);
};

#endif
