/* testdaud.c 21 Dec. 1981 11:54 am PST (Monday) */
extern char IRESET, I9513, I8237, I8259, EAII;
extern int encrypt(), decrypt(), encend(), chav();
extern char getchar();
extern int clklo;
extern char *aiadr(), *aoadr();
char key[8], buf[160];
struct ecb {
char *kp, *srcp, *dstp;
int count;
};
struct ecb cbea, cbeb, cbd;
char *ina, *inb, *lasto;
int lastic;
/* Test DMA encryption */
main()
{
initworld();
for (;;) {
if (clklo != lastic) {
lastic = clklo;
if (lastic & 1) encrypt(&cbea);
else encrypt(&cbeb);
if (lasto == 0) lasto = aoadr() + 0x0700;
cbd.dstp = lasto;
encw();
decrypt(&cbd);
lasto += 160;
if (lasto >= (char *) 0x9000) lasto -= 0x1000;
encw();
};
}; /* end of forever loop */
};
encw()
{
while(!encend()) {
if (clklo != lastic) {
initworld();
break;
};
};
};
initworld()
{
int i;
intoff();
intinit();
putstring("\rDMA Audio test\r");
portstr(&IRESET);
audoff();
portstr(&I9513);
portstr(&I8259);
audon();
lasto = 0;
for (i=0; i<8; i++) key[i] = 0x01;
inton();
portstr(&I8237);
portstr(&EAII);
ina = 0x3e00;
inb = 0x3ea0;
cbea.kp = key;
cbea.srcp = ina;
cbea.dstp = buf;
cbea.count = 160;
cbeb.kp = key;
cbeb.srcp = inb;
cbeb.dstp = buf;
cbeb.count = 160;
cbd.kp = key;
cbd.srcp = buf;
/* cbd.dstp = res; */
cbd.count = 160;
while (aiadr() > (char *) 0x3e10) ;
clklo = 0;
lastic = clklo;
};
audini()
{
int i;
i = i;
};
ptimi()
{
int i;
i = i;
};