1 #include <pce.h>
2 #include <conio.h>
3 #include <time.h>
4 #include <joystick.h>
5 #include <string.h>
6 #include <stdlib.h>
7
8 static int datavar = 10;
9
main(void)10 void main(void)
11 {
12 int stackvar = 42;
13 int i, j;
14 clock_t clk;
15 char* p;
16 unsigned char xsize, ysize, n, nn;
17
18 joy_install(&joy_static_stddrv);
19
20 clrscr();
21 screensize(&xsize, &ysize);
22
23 cputs("hello world");
24 cputsxy(0, 2, "colors:" );
25 for (i = 0; i < 16; ++i) {
26 textcolor(i);
27 cputc('X');
28 }
29 textcolor(1);
30
31 gotoxy(0,4);
32 cprintf("datavar: %02x\n\r", datavar);
33 cprintf("stackvar: %02x\n\r", stackvar);
34
35 j = joy_count();
36 gotoxy(0,9);
37 cprintf("Found %d Joysticks.", j);
38
39 for (i = 0; i < 4; ++i) {
40 gotoxy(0, 16 + i);
41 p = malloc(16);
42 memcpy(p, "0123456789abcdef", 16);
43 cprintf("alloc'ed at: %04p - %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", p,
44 p[0],p[1],p[2],p[3],p[4],p[5],p[6],p[7],
45 p[8],p[9],p[10],p[11],p[12],p[13],p[14],p[15]
46 );
47 }
48 memcpy(p, main, i = 0); /* test that a zero length doesn't copy 64K */
49
50 gotoxy(0,ysize - 1);
51 for (i = 0; i < xsize; ++i) {
52 cputc('0' + i % 10);
53 }
54
55 gotoxy(0,ysize - 2 - ((256 + xsize) / xsize));
56 for (i = 0; i < xsize; ++i) {
57 cputc('0' + i % 10);
58 }
59 for (i = 0; i < (xsize * 5); ++i) {
60 cputc('#');
61 }
62 gotoxy(0,ysize - 1 - ((256 + xsize) / xsize));
63 for (i = 0; i < 256; ++i) {
64 if ((i != '\n') && (i != '\r')) {
65 cputc(i);
66 }
67 }
68
69 i = get_tv();
70 gotoxy(30,0);
71 cputs("TV Mode: ");
72 switch(i) {
73 case TV_NTSC:
74 cputs("NTSC");
75 break;
76 case TV_PAL:
77 cputs("PAL");
78 break;
79 case TV_OTHER:
80 cputs("OTHER");
81 break;
82 }
83 cprintf(" %dx%d", xsize, ysize);
84
85 for(;;) {
86 gotoxy(13,4);
87 cprintf("%02x", datavar);
88 gotoxy(13,5);
89 cprintf("%02x", stackvar);
90 ++datavar; ++stackvar;
91
92 gotoxy(0,7);
93 clk = clock();
94 cprintf("clock: %08lx", clk);
95
96 for (i = 0; i < 4; ++i) {
97 gotoxy(0, 11 + i);
98 j = joy_read (i);
99 cprintf ("pad %d: %02x %-6s%-6s%-6s%-6s%-6s%-6s%-6s%-6s",
100 i, j,
101 JOY_UP(j)? " up " : " ---- ",
102 JOY_DOWN(j)? " down " : " ---- ",
103 JOY_LEFT(j)? " left " : " ---- ",
104 JOY_RIGHT(j)? "right " : " ---- ",
105 JOY_BTN_I(j)? "btn I " : " ---- ",
106 JOY_BTN_II(j)? "btn II" : " ---- ",
107 JOY_SELECT(j)? "select" : " ---- ",
108 JOY_RUN(j)? " run " : " ---- ");
109 }
110
111 gotoxy(xsize - 10, 3);
112 nn = (n >> 5) & 1;
113 revers(nn);
114 cputc(nn ? 'R' : ' ');
115 cputs(" revers");
116 revers(0);
117
118 if ((n & 0x1f) == 0x00) {
119 nn = p[15];
120 ((char*)memmove(p + 1, p, 15))[-1] = nn;
121 gotoxy(22, 19);
122 cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
123 p[0],p[1],p[ 2],p[ 3],p[ 4],p[ 5],p[ 6],p[ 7],
124 p[8],p[9],p[10],p[11],p[12],p[13],p[14],p[15]);
125 }
126
127 waitvsync();
128 ++n;
129 }
130 }
131