diff --git a/src/conio/GNUmakefile b/src/conio/GNUmakefile index 97bc0e4a1b2317d70a79d3f2443ad61611a16630..e08470b16296e277710aa728b532bfbb3463e898 100644 --- a/src/conio/GNUmakefile +++ b/src/conio/GNUmakefile @@ -68,3 +68,7 @@ $(MTOBJODIR)$(DIRSEP)ciolib_res${OFILE}: ciolib.rc syncicon64.ico ciolib.manifes @echo Creating $< ... $(QUIET)${WINDRES} $(WINDRESFLAGS) -O coff -i ciolib.rc -o $@ endif + +quittest: quittest.c $(CIOLIB-MT_BUILD) + ${QUIET}$(CC) $(CFLAGS) $(MT_CFLAGS) $(LDFLAGS) $(MT_LDFLAGS) $(XPDEV-MT_LDFLAGS) quittest.c -o $@ $(CIOLIB-MT_LIBS) $(XPDEV-MT_LIBS) + diff --git a/src/conio/quittest.c b/src/conio/quittest.c new file mode 100644 index 0000000000000000000000000000000000000000..1b1222e364ffc7e4a069b901ee9e06b4a0175851 --- /dev/null +++ b/src/conio/quittest.c @@ -0,0 +1,52 @@ +#include "ciolib.h" +#include "genwrap.h" + +int main(int argc, char **argv) +{ + int mode = CIOLIB_MODE_AUTO; + for (int i = 1; i < argc; i++) { + switch(argv[i][0]) { + case 'G': + mode = CIOLIB_MODE_GDI_FULLSCREEN; + break; + case 'g': + mode = CIOLIB_MODE_GDI; + break; + case 'S': + mode = CIOLIB_MODE_SDL_FULLSCREEN; + break; + case 's': + mode = CIOLIB_MODE_SDL; + break; + case 'X': + mode = CIOLIB_MODE_X_FULLSCREEN; + break; + case 'x': + mode = CIOLIB_MODE_X; + break; + default: + puts("GgSsXx"); + exit(0); + } + } + + initciolib(mode); + + for (;;) { + if(!kbhit()) + SLEEP(100); + int k = getch(); + if (k == 0 || k == 0xe0) + k = k | (getch() << 8); + switch(k) { + case 'q': + exit(1); + case CIO_KEY_QUIT: + cputs("Got quit\n"); + break; + default: + cprintf("Key: %d (q to quit)\n", k); + break; + } + } +}