Mano pdp8 counter.cc

From Minor Miracle Software
Jump to: navigation, search


counter.cc -- The program counter.

// counter class

#ifndef COUNTER_CC
#define COUNTER_CC

#include <iostream.h>

class counter;

ostream& operator << (ostream& os, const counter& M );

class counter {

   unsigned short us_range;
   unsigned short us_data;
   
   friend ostream& operator << (ostream& os, const counter& M )
   {
         os << M.us_data;
         return os;
   }
     
public:

   counter(short s_Range = 15)
   {
      us_range = s_Range;
      us_data = 0;
   }

   counter(const counter &V)
   {
      us_data = V.us_data;
      us_range = V.us_range;
   }

   ~counter(){}
   
   void operator = (const counter &V)
   {
        us_data = V.us_data;
        us_range = V.us_range;
   }
   
   friend counter operator ++ ( counter &M, int )
   {
       if( M.us_data == M.us_range)
           M.us_data = 0;
       else
           M.us_data++;
       return M;
   }

   friend counter operator -- (counter &M, int)
   {
       if( M.us_data == 0)
           M.us_data = M.us_range;
       else
           M.us_data--;
       return M;
   }

   void clear()
   {
      us_data = 0;
   }

   short getcount()
   {
       return us_data;
   }
};
#endif // COUNTER_CC

Internal Links

Parent Article: Mano PDP-8 Simulation Project Source Code