This is TriStateBuffer.m in view mode; [Download] [Up]
//
// TriStateBuffer
//
// Used to gate things onto busses (nodes).
//
#import "TriStateBuffer.h"
@implementation TriStateBuffer
- initNumBits:(int)nbits // Number of bits.
in:innode // Node from which we take value.
out:outnode // Node to take if signal is high.
gate:gatenode // 1-bit signal node.
{
[super init];
numbits = nbits; // Remember the size.
INITDEVTYPE("TriStateBuffer");
TESTNODE("IN", innode, numbits); // Make sure nodes are of correct sizes.
TESTNODE("OUT", outnode, numbits);
TESTNODE("GATE", gatenode, 1);
IN = innode; // Remember Nodes for later.
OUT = outnode;
GATE = gatenode;
return self;
}
- cycle
{
if(*([GATE getBits])) // If GATE is high,
[OUT setBits:[IN getBits]]; // copy input to output.
return self;
}
@end
//
// End of file.
//These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.