mirror of
https://github.com/cc65/cc65.git
synced 2024-08-18 10:29:06 +00:00
162 lines
4.8 KiB
C
162 lines
4.8 KiB
C
#include <pce.h>
|
|
#include <conio.h>
|
|
#include <time.h>
|
|
#include <joystick.h>
|
|
#include <string.h>
|
|
#include <stdlib.h>
|
|
|
|
static int datavar = 10;
|
|
|
|
static char hex[16] = { "0123456789abcdef" };
|
|
static char charbuf[0x20];
|
|
static char colbuf[0x20];
|
|
|
|
void main(void)
|
|
{
|
|
int stackvar = 42;
|
|
int i, j;
|
|
clock_t clk;
|
|
char* p;
|
|
unsigned char xsize, ysize, n, nn;
|
|
|
|
joy_install(&joy_static_stddrv);
|
|
|
|
clrscr();
|
|
screensize(&xsize, &ysize);
|
|
|
|
cputs("hello world");
|
|
gotoxy(0,0);
|
|
cpeeks(charbuf, 11);
|
|
gotoxy(12,0);
|
|
cputs(charbuf);
|
|
|
|
cputsxy(0, 2, "colors:" );
|
|
for (i = 0; i < 16; ++i) {
|
|
textcolor(i);
|
|
cputc(hex[i]);
|
|
}
|
|
for (i = 0; i < 16; ++i) {
|
|
gotoxy(7 + i, 2);
|
|
charbuf[i] = cpeekc();
|
|
colbuf[i] = cpeekcolor();
|
|
}
|
|
gotoxy(25, 2);
|
|
for (i = 0; i < 16; ++i) {
|
|
textcolor(colbuf[i]);
|
|
cputc(charbuf[i]);
|
|
}
|
|
|
|
textcolor(1);
|
|
|
|
gotoxy(0,4);
|
|
cprintf("datavar: %02x\n\r", datavar);
|
|
cprintf("stackvar: %02x\n\r", stackvar);
|
|
|
|
j = joy_count();
|
|
gotoxy(0,9);
|
|
cprintf("Found %d Joysticks.", j);
|
|
|
|
for (i = 0; i < 4; ++i) {
|
|
gotoxy(0, 16 + i);
|
|
p = malloc(16);
|
|
memcpy(p, "0123456789abcdef", 16);
|
|
cprintf("alloc'ed at: %04p - %c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c", p,
|
|
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]
|
|
);
|
|
}
|
|
memcpy(p, main, i = 0); /* test that a zero length doesn't copy 64K */
|
|
|
|
gotoxy(0,ysize - 1);
|
|
for (i = 0; i < xsize; ++i) {
|
|
cputc('0' + i % 10);
|
|
}
|
|
|
|
gotoxy(0,ysize - 2 - ((256 + xsize) / xsize));
|
|
for (i = 0; i < xsize; ++i) {
|
|
cputc('0' + i % 10);
|
|
}
|
|
for (i = 0; i < (xsize * 5); ++i) {
|
|
cputc('#');
|
|
}
|
|
gotoxy(0,ysize - 1 - ((256 + xsize) / xsize));
|
|
for (i = 0; i < 256; ++i) {
|
|
if ((i != '\n') && (i != '\r')) {
|
|
cputc(i);
|
|
}
|
|
}
|
|
|
|
i = get_tv();
|
|
gotoxy(30,0);
|
|
cputs("TV Mode: ");
|
|
switch(i) {
|
|
case TV_NTSC:
|
|
cputs("NTSC");
|
|
break;
|
|
case TV_PAL:
|
|
cputs("PAL");
|
|
break;
|
|
case TV_OTHER:
|
|
cputs("OTHER");
|
|
break;
|
|
}
|
|
cprintf(" %dx%d", xsize, ysize);
|
|
|
|
for(;;) {
|
|
gotoxy(13,4);
|
|
cprintf("%02x", datavar);
|
|
gotoxy(13,5);
|
|
cprintf("%02x", stackvar);
|
|
++datavar; ++stackvar;
|
|
|
|
gotoxy(0,7);
|
|
clk = clock();
|
|
cprintf("clock: %08lx", clk);
|
|
|
|
for (i = 0; i < 4; ++i) {
|
|
gotoxy(0, 11 + i);
|
|
j = joy_read (i);
|
|
cprintf ("pad %d: %02x %-6s%-6s%-6s%-6s%-6s%-6s%-6s%-6s",
|
|
i, j,
|
|
JOY_UP(j)? " up " : " ---- ",
|
|
JOY_DOWN(j)? " down " : " ---- ",
|
|
JOY_LEFT(j)? " left " : " ---- ",
|
|
JOY_RIGHT(j)? "right " : " ---- ",
|
|
JOY_BTN_I(j)? "btn I " : " ---- ",
|
|
JOY_BTN_II(j)? "btn II" : " ---- ",
|
|
JOY_SELECT(j)? "select" : " ---- ",
|
|
JOY_RUN(j)? " run " : " ---- ");
|
|
}
|
|
|
|
gotoxy(xsize - 10, 3);
|
|
nn = (n >> 5) & 1;
|
|
revers(nn);
|
|
cputc(nn ? 'R' : ' ');
|
|
cputs(" revers");
|
|
revers(0);
|
|
|
|
for (i = 0; i < 9; ++i) {
|
|
gotoxy(xsize - 10 + i, 3);
|
|
charbuf[i] = cpeekc();
|
|
colbuf[i] = cpeekrevers();
|
|
}
|
|
gotoxy(xsize - 10, 4);
|
|
for (i = 0; i < 9; ++i) {
|
|
revers(colbuf[i]);
|
|
cputc(charbuf[i]);
|
|
}
|
|
|
|
if ((n & 0x1f) == 0x00) {
|
|
nn = p[15];
|
|
((char*)memmove(p + 1, p, 15))[-1] = nn;
|
|
gotoxy(22, 19);
|
|
cprintf("%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c",
|
|
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]);
|
|
}
|
|
|
|
waitvsync();
|
|
++n;
|
|
}
|
|
}
|