(RA) [ (*RA0) (*RA1) (*RA2) (*RA3) (*RA4) (*RA5) (*RA6) (*RA7) (*RA8) ] .def

(RAS) [ (*RAS0') (*RAS1') (*RAS2') (*RAS3') ] .def

(Rctl) [ (SELRAS) (SELCAS) (RASOK) (RPADENB) (DPADENB) (*RAS0') (*RAS1') (*RAS2') (*RAS3') (*CAS') (*WE') ] .def

(RD) [ (*RD00) (*RD01) (*RD02) (*RD03) (*RD04) (*RD05) (*RD06) (*RD07) (*RD08) (*RD09) 
(*RD10) (*RD11) (*RD12) (*RD13) (*RD14) (*RD15) (*RD16) (*RD17) (*RD18) (*RD19) 
(*RD20) (*RD21) (*RD22) (*RD23) (*RD24) (*RD25) (*RD26) (*RD27) (*RD28) (*RD29) 
(*RD30) (*RD31) (*RD32) (*RD33) (*RD34) (*RD35) (*RD36) (*RD37) (*RD38) (*RD39) ] .def

(AD) [ (*AD7) (*AD6) (*AD5) (*AD4) (*AD3) (*AD2) (*AD1) (*AD0) ] .def

(A) [ (*A15) (*A14) (*A13) (*A12) (*A11) (*A10)  (*A9) (*A8) ] .def

(Uctl) [ (*RD') (*WR') (*CE-M) (*CE-IO) (*CLK) (*IO/M') (*DONE) (*RDY) ] .def

(arb) [ (*arbrq) (*arbout') (*arbin) (*arback) (*anyarbrq) (arbrq*) (arback**) ] .def
(tim) [ (t0) (t20) (t40) (t50) (t100) (t180) (t200) (t210) (t240) ] .def

(Lctl) [ (ALE) (ILATCH) (REGL) (ADPADENB) ] .def
(ISEL) [ (ISEL0) (ISEL1) (ISEL2) (ISEL3) (ISEL4) ] .def
(OSEL) [ (OSEL0) (OSEL1) (OSEL2) (OSEL3) (OSEL4) ] .def
(IAD) [ (IAD7) (IAD6) (IAD5) (IAD4) (IAD3) (IAD2) (IAD1) (IAD0) ] .def
(OAD) [ (OAD7) (OAD6) (OAD5) (OAD4) (OAD3) (OAD2) (OAD1) (OAD0) ] .def

(InitUctl) ( (*CE-IO) lo (*CE-M) lo (*IO/M') hi (*RD') hi (*WR') hi (*ALE) lo (*CLK) lo A loarray AD loarray simstep) .cvx .def

(PulseALE) ( (*ALE) hi simstep (*ALE) lo simstep) .cvx .def

(SetADDR) (setAD setA (*ALE) hi simstep (*ALE) lo simstep AD xarray simstep) .cvx .def

(SetRAS) (2 .index SetREGL SetADDR .pop) .cvx .def

(PulseREGL) ( (*IO/M') hi (*CE-IO) hi (*ALE) hi simstep (*ALE) lo simstep (*WR') lo simstep (*WR') hi simstep (*IO/M') lo (*CE-IO) lo simstep) .cvx .def

(SetREGL) (setAD (*IO/M') hi (*CE-IO) hi (*ALE) hi simstep (*ALE) lo simstep (*WR') lo simstep (*WR') hi simstep (*IO/M') lo (*CE-IO) lo simstep AD xarray simstep) .cvx .def

(PulseBits) (0 setAD (*AD0) hi simstep RD g1array (*AD0) lo (*AD1) hi simstep RD g1array (*AD1) lo (*AD2) hi simstep RD g1array (*AD2) lo (*AD3) hi simstep RD g1array (*AD3) lo (*AD4) hi simstep RD g1array (*AD4) lo (*AD5) hi simstep RD g1array (*AD5) lo (*AD6) hi simstep RD g1array (*AD6) lo (*AD7) hi simstep RD g1array (*AD7) lo simstep RD g1array) .cvx .def

(PulseADRD) ( 0 0 0 SetRAS PulseBits () /print 0 0 1 SetRAS PulseBits () /print 0 0 2 SetRAS PulseBits () /print 0 0 3 SetRAS PulseBits () /print 128 0 0 SetRAS PulseBits () /print 128 0 1 SetRAS PulseBits () /print 128 0 2 SetRAS PulseBits () /print 128 0 3 SetRAS PulseBits () /print) .cvx .def
 
(PulseRD) (123 setAD AD xarray (ADPADENB) hi 
RD loarray
(*RD00) hi simstep AD g1array (*RD00) lo (*RD01) hi simstep AD g1array (*RD01) lo (*RD02) hi simstep AD g1array (*RD02) lo (*RD03) hi simstep AD g1array (*RD03) lo (*RD04) hi simstep AD g1array (*RD04) lo (*RD05) hi simstep AD g1array (*RD05) lo (*RD06) hi simstep AD g1array (*RD06) lo (*RD07) hi simstep AD g1array (*RD07) lo (*RD08) hi simstep AD g1array () /print (*RD08) lo (*RD09) hi simstep AD g1array (*RD09) lo 

(*RD10) hi simstep AD g1array (*RD10) lo (*RD11) hi simstep AD g1array (*RD11) lo (*RD12) hi simstep AD g1array (*RD12) lo (*RD13) hi simstep AD g1array (*RD13) lo (*RD14) hi simstep AD g1array (*RD14) lo (*RD15) hi simstep AD g1array (*RD15) lo (*RD16) hi simstep AD g1array () /print (*RD16) lo (*RD17) hi simstep AD g1array (*RD17) lo (*RD18) hi simstep AD g1array (*RD18) lo (*RD19) hi simstep AD g1array (*RD19) lo 

(*RD20) hi simstep AD g1array (*RD20) lo (*RD21) hi simstep AD g1array (*RD21) lo (*RD22) hi simstep AD g1array (*RD22) lo (*RD23) hi simstep AD g1array (*RD23) lo (*RD24) hi simstep AD g1array () /print (*RD24) lo (*RD25) hi simstep AD g1array (*RD25) lo (*RD26) hi simstep AD g1array (*RD26) lo (*RD27) hi simstep AD g1array (*RD27) lo (*RD28) hi simstep AD g1array (*RD28) lo (*RD29) hi simstep AD g1array (*RD29) lo 

(*RD30) hi simstep AD g1array (*RD30) lo (*RD31) hi simstep AD g1array (*RD31) lo (*RD32) hi simstep AD g1array () /print (*RD32) lo (*RD33) hi simstep AD g1array (*RD33) lo (*RD34) hi simstep AD g1array (*RD34) lo (*RD35) hi simstep AD g1array (*RD35) lo (*RD36) hi simstep AD g1array (*RD36) lo (*RD37) hi simstep AD g1array (*RD37) lo (*RD38) hi simstep AD g1array (*RD38) lo (*RD39) hi simstep AD g1array (*RD39) lo 

(ADPADENB) x simstep) .cvx .def

(PulseRDx) (123 setAD AD xarray (ADPADENB) hi 
RD hiarray
(*RD00) lo simstep AD g1array (*RD00) hi (*RD01) lo simstep AD g1array (*RD01) hi (*RD02) lo simstep AD g1array (*RD02) hi (*RD03) lo simstep AD g1array (*RD03) hi (*RD04) lo simstep AD g1array (*RD04) hi (*RD05) lo simstep AD g1array (*RD05) hi (*RD06) lo simstep AD g1array (*RD06) hi (*RD07) lo simstep AD g1array (*RD07) hi (*RD08) lo simstep AD g1array () /print (*RD08) hi (*RD09) lo simstep AD g1array (*RD09) hi 

(*RD10) lo simstep AD g1array (*RD10) hi (*RD11) lo simstep AD g1array (*RD11) hi (*RD12) lo simstep AD g1array (*RD12) hi (*RD13) lo simstep AD g1array (*RD13) hi (*RD14) lo simstep AD g1array (*RD14) hi (*RD15) lo simstep AD g1array (*RD15) hi (*RD16) lo simstep AD g1array () /print (*RD16) hi (*RD17) lo simstep AD g1array (*RD17) hi (*RD18) lo simstep AD g1array (*RD18) hi (*RD19) lo simstep AD g1array (*RD19) hi 

(*RD20) lo simstep AD g1array (*RD20) hi (*RD21) lo simstep AD g1array (*RD21) hi (*RD22) lo simstep AD g1array (*RD22) hi (*RD23) lo simstep AD g1array (*RD23) hi (*RD24) lo simstep AD g1array () /print (*RD24) hi (*RD25) lo simstep AD g1array (*RD25) hi (*RD26) lo simstep AD g1array (*RD26) hi (*RD27) lo simstep AD g1array (*RD27) hi (*RD28) lo simstep AD g1array (*RD28) hi (*RD29) lo simstep AD g1array (*RD29) hi 

(*RD30) lo simstep AD g1array (*RD30) hi (*RD31) lo simstep AD g1array (*RD31) hi (*RD32) lo simstep AD g1array () /print (*RD32) hi (*RD33) lo simstep AD g1array (*RD33) hi (*RD34) lo simstep AD g1array (*RD34) hi (*RD35) lo simstep AD g1array (*RD35) hi (*RD36) lo simstep AD g1array (*RD36) hi (*RD37) lo simstep AD g1array (*RD37) hi (*RD38) lo simstep AD g1array (*RD38) hi (*RD39) lo simstep AD g1array (*RD39) hi 

(ADPADENB) x simstep) .cvx .def

(printout) () .cvx .def
(g) (getnodevalue (                 ) .cvis .print ( ) .print) .cvx .def
(g1) (getnodevalue (                 ) .cvis .print ( ) .print) .cvx .def
(gn)(.dup .print (=) .print g) .cvx .def

(garray) ((gn) .cvx .arrayforall () /print) .cvx .def
(g1array) ((g1) .cvx .arrayforall () /print) .cvx .def
(xarray) ((x) .cvx .arrayforall ) .cvx .def
(loarray) ((lo) .cvx .arrayforall ) .cvx .def
(hiarray) ((hi) .cvx .arrayforall ) .cvx .def

(cycle) ((PHI1) hi simsolve .pop (PHI1) lo simsolve .pop (PHI2) hi simsolve .pop (PHI2) lo simsolve .pop printout) .cvx .def
(cycle8) (cycle cycle cycle cycle cycle cycle cycle cycle) .cvx .def
(cycle32) (cycle8 cycle8 cycle8 cycle8) .cvx .def
(cycle128) (cycle32 cycle32 cycle32 cycle32) .cvx .def
(cyclego) ((RADLOK) hi cycle cycle cycle cycle (RASDLOK) lo cycle32 cycle8 cycle8 cycle8) .cvx .def

(try) ((start) hi cycle (arbin) lo cycle32 cycle32 cycle32 (start) lo (arbin) hi cycle) .cvx .def

(setBit) (1 .index 1 .bitand 1 .eq (hi) (lo) /ifelse) .cvx .def

(setAD) ((*AD0) setBit -1 .bitshift (*AD1) setBit -1 .bitshift (*AD2) setBit -1 .bitshift (*AD3) setBit -1 .bitshift (*AD4) setBit -1 .bitshift (*AD5) setBit -1 .bitshift (*AD6) setBit -1 .bitshift (*AD7) setBit .pop) .cvx .def

(setA) ((*A8) setBit -1 .bitshift (*A9) setBit -1 .bitshift (*A10) setBit -1 .bitshift (*A11) setBit -1 .bitshift (*A12) setBit -1 .bitshift (*A13) setBit -1 .bitshift (*A14) setBit -1 .bitshift (*A15) setBit .pop) .cvx .def

(ShowRAS) (RAS g1array (SELRAS) hi (SELCAS) lo simstep RA g1array  (SELRAS) lo (SELCAS) hi simstep RA g1array) .cvx .def

(z) (SetRAS ShowRAS () /print) .cvx .def

(PulseRAS) (
0 0 1 z 0 0 2 z 0 0 4 z 0 0 8 z 0 0 16 z 0 0 32 z 0 0 64 z 0 0 128 z 
0 1 0 z 0 2 0 z 0 4 0 z 0 8 0 z 0 16 0 z 0 32 0 z 0 64 0 z 0 128 0 z 
1 0 0 z 2 0 0 z 4 0 0 z 8 0 0 z 16 0 0 z 32 0 0 z 64 0 0 z 96 0 0 z 
) .cvx .def

(pulseT) (
123 setAD simstep AD xarray simstep
RD hiarray (*RD37) lo simstep RD xarray simstep

(T0) hi simstep (0↑   ) .print pto
(T0) lo simstep (0\   ) .print pto
(T20) hi simstep (20↑  ) .print pto
(T20) lo simstep (20\  ) .print pto
(T40) hi simstep (40↑  ) .print pto
(T40) lo simstep (40\  ) .print pto
(T50) hi simstep (50↑  ) .print pto
(T50) lo simstep (50\  ) .print pto
(T100) hi simstep (100↑ ) .print pto
(T100) lo simstep (100\ ) .print pto
(T180) hi simstep (180↑ ) .print pto
(T180) lo simstep (180\ ) .print pto
(T200) hi simstep (200↑ ) .print pto
(T200) lo simstep (200\ ) .print pto
OSEL g1array
ISEL g1array
RD g1array
AD g1array
IAD g1array
OAD g1array
(T210) hi simstep (210↑ ) .print pto
(T210) lo simstep (210\ ) .print pto
(T240) hi simstep (240↑ ) .print pto
(T240) lo simstep (240\ ) .print pto) .cvx .def

(pto) (mon garray) .cvx .def

(mon) [ (SELRAS) (SELCAS) (ILATCH) (RPADENB) (DPADENB) (*RAS0') (*CAS') (*WE') (ADPADENB) ] .def

(Init) (InitUctl init = init = init = init = 0 0 0 SetRAS) .cvx .def

(DoRead) ((*CE-M) hi (*IO/M') lo setAD setA (*ALE) hi simstep (*ALE) lo simstep (*RD') lo cycle [ (START) (ADPADENB) (RDY) (RDYENB) ] garray (*arbin) lo cycle32 cycle32 cycle32  RD g1array AD g1array IAD g1array OAD g1array (*RD') hi (*arbin) hi cycle) .cvx .def

(StartRead) ((*CE-M) hi (*IO/M') lo setAD setA (*ALE) hi simstep (*ALE) lo simstep (*RD') lo cycle [ (START) (ADPADENB) (RDY) (RDYENB) ] garray (*arbin) lo)
.cvx .def

(FinishRead) (cycle32 cycle32 cycle32  RD g1array AD g1array IAD g1array OAD g1array (*RD') hi (*arbin) hi cycle) .cvx .def

(DoWrite) ((*CE-M) hi (*IO/M') lo setAD setA (*ALE) hi simstep (*ALE) lo simstep setAD (*WR') lo cycle [ (START) (ADPADENB) (RDY) (RDYENB) ] garray (*arbin) lo cycle32 cycle32 cycle32  RD g1array AD g1array IAD g1array OAD g1array [ (START) (ADPADENB) (RDY) (RDYENB) ] garray ) .cvx .def


(WR2) ((*arbin) hi cycle (*arbin) lo arb garray cycle32 cycle32 cycle32  arb garray RD g1array AD g1array IAD g1array OAD g1array (*WR') hi (*arbin) hi cycle) .cvx .def

(printout) (mon1 garray) .cvx .def

(mon1) [ (B) (C) (*RAS0') (*CAS') (*WE') (STATE) (T0) (SELRAS) (ADPADENB) (done) ] .def