]> git.sur5r.net Git - cc65/blob - testcode/lib/pce/conio.c
fixed screensize, timertick, revers mode
[cc65] / testcode / lib / pce / conio.c
1
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
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;
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,10);
37     cprintf("Found %d Joysticks.", j);
38
39     for (i = 0; i < 4; ++i) {
40         gotoxy(0, 17 + i);
41         p = malloc(16);
42         memcpy(p, "01234567890abcdef", 16);
43         cprintf("alloced 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],p[8],p[9],p[10],p[11],p[12],p[13],p[14],p[15]
45         );
46     }
47
48     gotoxy(0,ysize - 1);
49     for (i = 0; i < xsize; ++i) {
50         cputc('0' + i % 10);
51     }
52
53     gotoxy(0,ysize - 2 - ((256 + xsize) / xsize));
54     for (i = 0; i < xsize; ++i) {
55         cputc('0' + i % 10);
56     }
57     for (i = 0; i < (xsize * 5); ++i) {
58         cputc('#');
59     }
60     gotoxy(0,ysize - 1 - ((256 + xsize) / xsize));
61     for (i = 0; i < 256; ++i) {
62         if ((i != '\n') && (i != '\r')) {
63             cputc(i);
64         }
65     }
66
67     i = get_tv();
68     gotoxy(30,0);
69     cputs("TV Mode: ");
70     switch(i) {
71         case TV_NTSC:
72             cputs("NTSC");
73             break;
74         case TV_PAL:
75             cputs("PAL");
76             break;
77         case TV_OTHER:
78             cputs("OTHER");
79             break;
80     }
81     cprintf(" %dx%d", xsize, ysize);
82
83     for(;;) {
84         gotoxy(13,4);
85         cprintf("%02x", datavar);
86         gotoxy(13,5);
87         cprintf("%02x", stackvar);
88         ++datavar; ++stackvar;
89
90         gotoxy(0,8);
91         clk = clock();
92         cprintf("clock: %08lx", clk);
93
94         for (i = 0; i < 4; ++i)
95         {
96             gotoxy(0, 12 + i);
97             j = joy_read (i);
98             cprintf ("pad %d: %02x %-6s%-6s%-6s%-6s%-6s%-6s",
99                      i, j,
100                      (j & joy_masks[JOY_UP])?    "  up  " : " ---- ",
101                      (j & joy_masks[JOY_DOWN])?  " down " : " ---- ",
102                      (j & joy_masks[JOY_LEFT])?  " left " : " ---- ",
103                      (j & joy_masks[JOY_RIGHT])? "right " : " ---- ",
104                      (j & joy_masks[JOY_FIRE])?  " fire " : " ---- ",
105                      (j & joy_masks[JOY_FIRE2])? "fire2 " : " ---- ");
106         }
107
108         gotoxy(xsize - 10, 3);
109         j = (n >> 5) & 1;
110         revers(j);
111         cputc(j ? 'R' : ' ');
112         cputs(" revers");
113         revers(0);
114
115         waitvblank();
116         ++n;
117     }
118     for(;;);
119 }