add adders to c func
This commit is contained in:
@@ -80,6 +80,12 @@ enum GateFuncs {
|
||||
GateFunc_Demux6,
|
||||
GateFunc_Demux7,
|
||||
GateFunc_Demux8,
|
||||
GateFunc_Adder1,
|
||||
GateFunc_Adder2,
|
||||
GateFunc_Adder4,
|
||||
GateFunc_Adder8,
|
||||
GateFunc_Adder16,
|
||||
GateFunc_Adder32,
|
||||
GateFunc_Rom4x1,
|
||||
GateFunc_Rom4x4,
|
||||
GateFunc_Rom4x8,
|
||||
@@ -199,6 +205,12 @@ GATEFUNC(Demux5) { int pa = getdata(0); if(getport(38)) { int a = getword(5, 1)
|
||||
GATEFUNC(Demux6) { int pa = getdata(0); if(getport(71)) { int a = getword(6, 1) + 7; if(pa != a) { if(pa) { setport(pa, 0); } setport(a, 1); setdata(0, a); } } else { if(pa) { setport(pa, 0); setdata(0, 0); } } }
|
||||
GATEFUNC(Demux7) { int pa = getdata(0); if(getport(136)) { int a = getword(7, 1) + 8; if(pa != a) { if(pa) { setport(pa, 0); } setport(a, 1); setdata(0, a); } } else { if(pa) { setport(pa, 0); setdata(0, 0); } } }
|
||||
GATEFUNC(Demux8) { int pa = getdata(0); if(getport(265)) { int a = getword(8, 1) + 9; if(pa != a) { if(pa) { setport(pa, 0); } setport(a, 1); setdata(0, a); } } else { if(pa) { setport(pa, 0); setdata(0, 0); } } }
|
||||
GATEFUNC(Adder1) { int v = getword(1, 1) + getword(1, 2) + getport(4); setword(1, 3, v); setport(4, (v>>1) & 1); }
|
||||
GATEFUNC(Adder2) { int v = getword(2, 1) + getword(2, 3) + getport(7); setword(2, 5, v); setport(7, (v>>2) & 1); }
|
||||
GATEFUNC(Adder4) { int v = getword(4, 1) + getword(4, 5) + getport(13); setword(4, 9, v); setport(13, (v>>4) & 1); }
|
||||
GATEFUNC(Adder8) { int v = getword(8, 1) + getword(8, 9) + getport(25); setword(8, 17, v); setport(25, (v>>8) & 1); }
|
||||
GATEFUNC(Adder16) { int v = getword(16, 1) + getword(16, 17) + getport(49); setword(16, 33, v); setport(49, (v>>16) & 1); }
|
||||
GATEFUNC(Adder32) { unsigned long long v = getword(32, 1) + getword(32, 33) + getport(97); setword(32, 65, v); setport(97, (v>>32) & 1); }
|
||||
GATEFUNC(Rom4x1) { if(getport(6)) { int a = getword(4, 1); for(int i=0; i<1; i++) { setport(5+i, getdata(a + i*16)); } } else { clearword(1, 5); } }
|
||||
GATEFUNC(Rom4x4) { if(getport(9)) { int a = getword(4, 1); for(int i=0; i<4; i++) { setport(5+i, getdata(a + i*16)); } } else { clearword(4, 5); } }
|
||||
GATEFUNC(Rom4x8) { if(getport(13)) { int a = getword(4, 1); for(int i=0; i<8; i++) { setport(5+i, getdata(a + i*16)); } } else { clearword(8, 5); } }
|
||||
@@ -319,6 +331,12 @@ GateFunc sim_logic_functions[] = {
|
||||
GATEFUNCID(Demux6),
|
||||
GATEFUNCID(Demux7),
|
||||
GATEFUNCID(Demux8),
|
||||
GATEFUNCID(Adder1),
|
||||
GATEFUNCID(Adder2),
|
||||
GATEFUNCID(Adder4),
|
||||
GATEFUNCID(Adder8),
|
||||
GATEFUNCID(Adder16),
|
||||
GATEFUNCID(Adder32),
|
||||
GATEFUNCID(Rom4x1),
|
||||
GATEFUNCID(Rom4x4),
|
||||
GATEFUNCID(Rom4x8),
|
||||
|
||||
Reference in New Issue
Block a user