The XXX class implements a functioning logical XXX gate for use with our CPU simulator.
XXX myXXXGate;
Function | Parameter(s) | Return value |
---|---|---|
XXX() | none | pointer/variable instantiation of the newly allocated XXX gate |
XXX() is the parameterless constructor that is responsible for creating a new instance of an XXX.
reset() will reset both inputs coming into the XXX to FALSE values.
myXXXGate.reset();
Function | Parameter(s) | Return value |
---|---|---|
void reset() | no parameters | none |
set(bool) will take the parameter and set both inputs to that value.
myXXXGate.set(true);
Function | Parameter(s) | Return value |
---|---|---|
void set() | bool | none |
set(bool, bool) will take the parameter and set each input to a unique value.
bool a = true; bool b = false; ... myXXXGate.set(a, b);
Function | Parameter(s) | Return value |
---|---|---|
void set() | bool, bool | none |
get() will retrieve the output of the XXX.
bool output = myXXXGate.get();
Function | Parameter(s) | Return value |
---|---|---|
bool get(int) | none | boolean value of gate's output |
XXX.h
#ifndef _XXX_H #define _XXX_H class XXX { public: XXX(); void set(); void set(bool); void set(bool, bool); bool get(); private: bool input1; bool input2; }; #endif
XXX.cc
#include "XXX.h" XXX::XXX() { input1 = input2 = false; } void XXX::set() { input1 = input2 = false; } void XXX::set(bool value) { input1 = input2 = value; } void XXX::set(bool val1, bool val2) { input1 = val1; input2 = val2; } bool XXX::get() { bool result = false; if ((input1 == true) || (input2 == true)) { result = true; } return (result); }
XXXtest.cc
#include <cstdio> #include "XXX.h" int main() { bool a, b; a = true, b = false; printf("--------------------\n"); printf("TRUE is: %d\n", true); printf("FALSE is: %d\n", false); printf("--------------------\n\n"); XXX myXXXGate; printf(" a b | x \n"); printf("-----+---\n"); for(int temp = 0; temp <=3; temp++) { a = temp & 0x02; b = temp & 0x01; //if(temp & 0x02) a = true; //else a = false; //if(temp & 0x01) b = true; //else b = false; ////switch(temp) ////{ //// case 0: //// a = false; //// b = false; //// break; //// case 1: //// a = false; //// b = true; //// break; //// case 2: //// a = true; //// b = false; //// break; //// case 3: //// a = true; //// b = true; //// break; ////} myXXXGate.set(a, b); printf(" %d %d | %d\n", a, b, myXXXGate.get()); } printf("---------\n"); return(0); }