prln("End recvData");
}
+ /*
+ private void testRecvAndSendWalkingOne(Marina marina) {
+ prln("Begin testRecvAndSendWalkingOne");
+ adjustIndent(2);
+
+ // FIXME
+ marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC, CLEAR_FLAG, CLEAR_FLAG));
+ marina.instrIn.fill(new Instruction.Move(DOCK,
+ false, /* requeueing */
+ Predicate.IgnoreOLC, /* predicate */
+ true, /* torpedoable */
+ null, /* path */
+ false, /* tokenIn */
+ true, /* dataIn */
+ false, /* latchData */
+ false, /* latchPath */
+ false, /* dataOut */
+ false /* tokenOut */
+ ));
+ marina.instrIn.fill(new Instruction.Set(DOCK,false,Predicate.IgnoreOLC, SET_FLAG, SET_FLAG));
+
+ prln("checking to confirm that A flag is cleared");
+ fatal(marina.getFlagA(), "bad A flag: "+marina.getFlagA());
+
+ prln("inserting data item in north fifo ring");
+ BitVector data = new BitVector(37, "empty");
+ BitVector addr = new BitVector(14, "empty");
+ for(int i=0; i<data.getNumBits(); i++) data.set(i, false);
+ for(int i=0; i<addr.getNumBits(); i++) addr.set(i, false);
+ marina.fillNorthProperStopper(new MarinaPacket(data, false, addr));
+
+ prln("checking to see if A flag got set");
+ fatal(!marina.getFlagA(), "bad A flag: "+marina.getFlagA());
+
+ adjustIndent(-2);
+ prln("End testRecvAndSendWalkingOne");
+ }
+*/
+
private void setOlcFromDataLatch(Marina marina) {
prln("Begin setOlcFromDataLatch");
prln("Begin testFlagC");
adjustIndent(2);
- // addr[0] == sigS
- // addr[13] == sigA
+ // Russell says:
+ // addr[14] == sigS
+ // addr[1] == sigA
+ //
+ // Adam says:
+ // Dc=1 => sigS is copied into C-flag
+ // Dc=0 => sigA is copied into C-flag
for(boolean dc : new boolean[] { false, true }) {
for(boolean c_flag : new boolean[] { true, false, true }) {
for(int i=0; i<data.getNumBits(); i++) data.set(i, false);
for(int i=0; i<addr.getNumBits(); i++) addr.set(i, false);
- int whichbit = dc ? 0 : 13;
+ int whichbit = dc ? 13 : 0;
prln("setting addr["+whichbit+"] to "+(c_flag?"1":"0"));
addr.set(whichbit, c_flag);
case 3021: recvPath(marina); break;
case 3022: testILC(marina); break;
case 3023: testTorpedoOnAnInfiniteNop(marina); break;
+ //case 3024: testRecvAndSendWalkingOne(marina); break;
case 3025: testOlcDecrementAtHighSpeed(marina); break;
default: