/*
 * Processor.java:
 *
 * An abstract class, representing a processor. This object could be
 * subclassed with different objects, to obtain different versions of
 * the processor, to be selected at runtime, if we have enough time to
 * implement multiple versions.
 *
 * Changes:
 *   25/01/1999 - sgf22 - Created.
 */

abstract class Processor {
  // Object variables
  Memory mem;
  TapeReader in;
  Teletype out;
  
  Accumulator acc;
  Address scr;
  ShortWord orderCode;
  LongWord multiplier, multiplicand;

  // Constructor method
  abstract Processor(Memory mem, TapeReader in, Teletype out);
 
  // Single step method
  abstract void execute();
}
