#INCLUDE "/home/amu5/users/georget/Phd/Simul/Defs/defs.inc"
#INCLUDE "hostio.inc"
#USE "/home/amu5/users/georget/Phd/Simul/library"


PROC ARMst(CHAN OF SP fs, ts, []INT memory)

  #USE "hostio.lib"

  #USE "/home/amu5/users/georget/Phd/Simul/Simseq/ARMstCore/ARMstCore"
  
  #USE "/home/amu5/users/georget/Phd/Simul/Memory/Mem"
  #USE "/home/amu5/users/georget/Phd/Simul/Simseq/IOprocess"
  
  CHAN OF BUNDLE  MemDabt0,MemDabt1,AMemDabt1, AMemDabt0, 
                  MrrDin, MrrPAbtin, MrrAin,
                  MEMad, MEMd, MEMc, MEMa:

  [46]CHAN OF DEB.MESSAGE screen:
  CHAN OF DEB.MESSAGE to.screen:
  CHAN OF BYTE Out.Char:
  CHAN OF [3]INT Read.Write:
  
     
  CHAN OF INT To.memory:
  VAL INT report IS NO.TRACE:  --TRACE  TRACE.OUT  NO.TRACE             
  VAL INT evaluate IS EVALUATE: --EVALUATE  NO.EVALUATE 
  VAL INT preemption IS PREEMPTION.ON: --PREEMPTION.OFF  PREEMPTION.ON 

  PAR
    ARMstCore(MemDabt0,MemDabt1,AMemDabt1, AMemDabt0, 
              MrrDin, MrrPAbtin, MrrAin,
              MEMad, MEMd, MEMc, MEMa, [screen FROM 0 FOR 44], report, evaluate,preemption)

    Mem(MemDabt0,MemDabt1,AMemDabt1, AMemDabt0, 
              MrrDin, MrrPAbtin, MrrAin,
              MEMad, MEMd, MEMc, MEMa,
          To.memory, [screen FROM 44 FOR 2], Out.Char, Read.Write, report)

    monitor(screen, to.screen,report,evaluate)


    IOprocess(fs,ts, to.screen, To.memory,Out.Char, Read.Write)
:


    
