1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
#include <stdio.h>
#include <stdlib.h>
#define N 64
static void
gen_inputtest (void)
{
int i;
printf ("// Input test program\n");
printf ("#include \"vu.mac\"\n");
printf (".gpr VUTMP\n");
printf (".gpr TMP\n");
for (i = 0; i < N; i += 2)
{
printf (".input I%d_L %d\n", i, i);
printf (".input I%d_R %d\n", i, i + 1);
}
for (i = 0; i < N; i += 2)
{
if (!(i % 16))
printf (".parm G%x 0 group\n", i);
printf (".parm IVU%d 0 stereopeak\n", i);
}
for (i = 0; i < N; i += 2)
{
printf ("ACC3(TMP, I%d_L, 0, 0)\n", i);
printf ("VU(IVU%d_L, TMP)\n", i);
printf ("ACC3(TMP, I%d_R, 0, 0)\n", i);
printf ("VU(IVU%d_R, TMP)\n", i);
}
}
static void
gen_outputtest (void)
{
int i;
printf ("// Output test program\n");
printf ("#include \"vu.mac\"\n");
printf (".parm VU 0 stereopeak\n");
printf (".gpr VUTMP\n");
printf (".gpr TMP\n");
printf (".gpr TMP_L\n");
printf (".gpr TMP_R\n");
printf (".send TEST_L 0\n");
printf (".send TEST_R 1\n");
for (i = 0; i < N; i += 2)
{
printf (".output O%d_L %d\n", i, i);
printf (".output O%d_R %d\n", i, i + 1);
}
for (i = 0; i < N; i += 2)
{
if (!(i % 16))
printf (".parm G%x 0 group\n", i);
printf (".parm OUT%d 0 stereo\n", i);
}
printf ("ACC3(TMP_L, TEST_L, 0, 0)\n");
printf ("ACC3(TMP_R, TEST_R, 0, 0)\n");
printf ("VU(VU_L, TMP_L)\n");
printf ("VU(VU_R, TMP_R)\n");
for (i = 0; i < N; i += 2)
{
printf ("MACS(O%d_L, 0, TMP_L, OUT%d_L)\n", i, i);
printf ("MACS(O%d_R, 0, TMP_R, OUT%d_R)\n", i, i);
}
}
int
main (int argc, char *argv[])
{
if (argc < 2)
exit (-1);
if (strcmp (argv[1], "in") == 0)
gen_inputtest ();
if (strcmp (argv[1], "out") == 0)
gen_outputtest ();
exit (0);
}
|