update tests to remove use of [Rq] flag
[fleet.git] / src / edu / berkeley / fleet / demo / Test2.java
1 package edu.berkeley.fleet.demo;
2 import edu.berkeley.fleet.api.*;
3 import static edu.berkeley.fleet.api.Instruction.Set.*;
4 import edu.berkeley.fleet.interpreter.Interpreter;
5
6 public class Test2 {
7
8     private static Instruction literal(Dock dock, int literal) {
9         return new Instruction.Set(dock, false, Predicate.Default,
10                                    SetDest.DataLatch, literal);
11     }
12     private static Instruction deliver(Dock dock) {
13         return new Instruction.Move(dock, false, Predicate.Default,
14                                     false, null, false, false, false, false, true, false);
15     }
16     private static Instruction collectAndSend(Dock dock, Destination dest) {
17         return new Instruction.Move(dock, false, Predicate.Default,
18                                     false, dock.getPath(dest,null), false, true, true, false, true, false);
19     }
20     private static Instruction recvAndDeliver(Dock dock) {
21         return new Instruction.Move(dock, false, Predicate.Default,
22                                     false, null, false, true, true, false, true, false);
23     }
24
25     public static void main(String[] s) {
26
27         Fleet fleet = new Interpreter(new String[] {
28                 "alu2",
29                 "Debug"
30             },
31             /* logging */ true);
32
33         Ship alu     = fleet.getShip("alu2",  0);
34         Ship debug   = fleet.getShip("Debug", 0);
35         Dock debugIn = debug.getDock("in");
36
37         Instruction[] instructions = new Instruction[] {
38             literal(alu.getDock("in1"), 1),
39             literal(alu.getDock("in2"), 2),
40             literal(alu.getDock("inOp"), 0 /* opcode for ADD */),
41             deliver(alu.getDock("in1")),
42             deliver(alu.getDock("in2")),
43             deliver(alu.getDock("inOp")),
44             collectAndSend(alu.getDock("out"), debugIn.getDataDestination()),
45             recvAndDeliver(debugIn),
46         };
47
48         FleetProcess fp = fleet.run(instructions);
49         BitVector bv = fp.recvWord();
50         System.out.println(bv.toLong());
51         fp.terminate();
52     }
53
54 }