コード例 #1
0
ファイル: control.c プロジェクト: chpatton013/CPE315
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]);
}
コード例 #2
0
ファイル: CalcRoman.cpp プロジェクト: kordax/Stroustrup
Rom get_rom()
{
	char ch;
	string value;
	cin >> ch;
	while (is_roman(ch))
	{
		value += ch;
		cin >> ch;
	}
	cin.unget();
	return Rom(number, value);
};
コード例 #3
0
ファイル: CalcRoman.cpp プロジェクト: kordax/Stroustrup
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");
	}
}
コード例 #4
0
ファイル: romTest.c プロジェクト: chpatton013/CPE315
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);
}