EMIT
EMIT(op, opnd); /* do checks, ensure space */
#define ASTERN(sop, pos) EMIT(sop, HERE()-pos)
EMIT(OEND, 0);
EMIT(OEND, 0);
EMIT(OOR2, 0); /* offset is very wrong */
EMIT(OLPAREN, subno);
EMIT(ORPAREN, subno);
EMIT(OBOL, 0);
EMIT(OEOL, 0);
EMIT(OANY, 0);
EMIT(OOR2, 0); /* offset very wrong... */
EMIT(OBOL, 0);
EMIT(OEOL, 0);
EMIT(OANY, 0);
EMIT(OBOW, 0);
EMIT(OEOW, 0);
EMIT(OLPAREN, subno);
EMIT(ORPAREN, subno);
EMIT(OBACK_, i);
EMIT(O_BACK, i);
EMIT(OBOW, 0);
EMIT(OEOW, 0);
EMIT(OANYOF, freezeset(p, cs));
EMIT(OCHAR, (uch)ch);
EMIT(OBOW, 0);
EMIT(OEOW, 0);
EMIT(OOR2, 0);
EMIT(OOR2, 0); /* offset very wrong... */
csr = SROMSEL ; EMIT;
csr = SROMSEL | SROMRD; EMIT;
csr ^= SROMCS; EMIT;
csr ^= SROMCLKON; EMIT;
csr ^= SROMCLKOFF; EMIT; /* clock low; data not valid */
csr ^= SROMCLKON; EMIT; /* clock high; data valid */
csr ^= SROMCLKOFF; EMIT;
csr ^= SROMCS; EMIT;
csr = 0; EMIT;
csr = SROMSEL ; EMIT;
csr = SROMSEL | SROMRD; EMIT;
csr ^= SROMCSON; EMIT;
csr ^= SROMCLKON; EMIT;
csr ^= SROMCLKOFF; EMIT; /* clock low; data not valid */
csr ^= SROMDOUT; EMIT; /* clock low; invert data */
EMIT;
csr ^= SROMCLKON; EMIT; /* clock high; data valid */
csr ^= SROMCLKOFF; EMIT;
csr ^= SROMCLKON; EMIT; /* clock high; data valid */
csr ^= SROMCLKOFF; EMIT; /* clock low; data not valid */
csr = SROMSEL | SROMRD; EMIT;
csr = 0; EMIT;