1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-15 17:30:06 +00:00

added a second test that checks all available characters (including inverse)

This commit is contained in:
mrdudz 2020-07-14 15:00:43 +02:00
parent f99a44d8e1
commit 3558c0796d

View File

@ -11,6 +11,8 @@
#if defined(__C64__)
#define VRAMPEEK(x) (*(char*)(0x0400 + (x)))
#define VRAMPOKE(x, y) *(char*)(0x0400 + (x)) = (y)
#define CRAMPEEK(x) ((*(char*)(0xd800 + (x))) & 15)
#define CRAMPOKE(x, y) *(char*)(0xd800 + (x)) = (y)
#else
#error "this target is not supported yet"
@ -78,5 +80,83 @@ int main(void)
bordercolor(COLOR_GREEN);
cputs("all fine");
}
cputs(" - press a key ");
cursor(1);
cgetc();
cursor(0);
clrscr();
bordercolor(COLOR_BLACK);
/* output all characters directly to the scree */
c = 0;
for (y = 0; y < 16; y++) {
for (x = 0; x < 16; x++) {
VRAMPOKE((y * 40) + x, c);
CRAMPOKE((y * 40) + x, c & 15);
c++;
}
}
/* read the characters with conio peek functions and output with conio */
for (y = 0; y < 16; y++) {
for (x = 0; x < 16; x++) {
gotoxy(x, y);
c1 = cpeekc();
c2 = cpeekrevers();
c = cpeekcolor();
gotoxy(x + 0x14, y);
revers(c2);
textcolor(c);
cputc(c1);
}
}
revers(0);
textcolor(COLOR_WHITE);
gotoxy(0, 17);
cputs("press a key to compare ");
cursor(1);
cgetc();
cursor(0);
/* compare the two outputs */
for (y = 0; y < 16; y++) {
for (x = 0; x < 16; x++) {
c = COLOR_GREEN;
c1 = VRAMPEEK((y * 40) + x);
c2 = VRAMPEEK((y * 40) + x + 0x14);
if (c1 != c2) {
c = COLOR_RED;
err = 1;
}
c1 = CRAMPEEK((y * 40) + x);
c2 = CRAMPEEK((y * 40) + x + 0x14);
if (c1 != c2) {
c = COLOR_RED;
err = 1;
}
CRAMPOKE((y * 40) + x, c);
CRAMPOKE((y * 40) + x + 0x14, c);
}
}
/* show the result */
revers(0);
textcolor(COLOR_WHITE);
gotoxy(0, 17);
if (err) {
bordercolor(COLOR_RED);
cputs("errors detected");
} else {
bordercolor(COLOR_GREEN);
cputs("all fine");
}
cputs(" - press a key ");
cursor(1);
cgetc();
cursor(0);
return 0;
}