void control(SD(sd), const Signals& OpCode, const Signals& Out) { Signal bits(WORDSIZE, "ROM Output"); loadRom(controlRom, ROMSIZE * WORDSIZE, "controlUnitRom.txt"); Rom(SD(sd, "1a"), OpCode, bits, ROMSIZE, WORDSIZE, controlRom); for (int ndx = 0; ndx < NUM_BITS; ++ndx) Or(SD(sd, "1a"), (bits[ndx], Zero), Out[ndx]); }
Rom get_rom() { char ch; string value; cin >> ch; while (is_roman(ch)) { value += ch; cin >> ch; } cin.unget(); return Rom(number, value); };
Rom Rom_stream::get() { if (is_full) { Rom rr = get_buffer(); return rr; }; char ch; Rom r; cin >> ch; switch (ch) { case '(': case ')': case '=': case '+': case '-': case '*': case '/': return Rom(ch); case 'X': case 'I': case 'V': case'M': case'C': cin.unget(); r = get_rom(); r.ival = calculate_int(r.value); return r; default: error("wrong input"); } }
void simnet() { // input to ROM Signal address(4, "address"); Switch("1a", address[3], '3'); Switch("1a", address[2], '2'); Switch("1a", address[1], '1'); Switch("1a", address[0], '0'); // output from ROM Signal bits(8, "ROM Output"); // burn the rom loadRom(romContents, NUM_WORDS, "romfile.txt"); // instantiate the rom Rom("1b", address, bits, ROMSIZE, WORDSIZE, romContents); Probe("1c", bits); }