#include #include #include #include #include "jclkcook.h" int get_cookie (long cookie, long *value) { long *cookiejar = (long *)Setexc(0x168,-1); if (cookiejar) { while (*cookiejar) { if (*cookiejar==cookie) { if (value) *value = *++cookiejar; return 1; } cookiejar += 2; } } return 0; } char *hotkeystring(int x) { static char string[80]; *string = 0; if (x & 2) strcat(string, "LeftShift+"); if (x & 1) strcat(string, "RightShift+"); if (x & 4) strcat(string, "Control+"); if (x & 8) strcat(string, "Alternate+"); if (*string) string[strlen(string)-1] = 0; return string; } void vypis(long adr) { JCLKSTRUCT *jclk = (JCLKSTRUCT *)adr; if (jclk->name != CLOCKY_IDENT) { printf("This is not my Clocky!\n"); getchar(); return; } if (jclk->version < CLOCKY_VERSION) { printf("Too old Clocky - get newer\n"); getchar(); return; } #define BOO(x) (jclk->parametry.x) ? "[Yes]" : "[No] " while((Kbshift(-1)&15) != 14) { printf("\33H"); printf("Hotkey combination: %s\n", hotkeystring(jclk->hotshift)); printf("Seekey combination: %s\n", hotkeystring(jclk->hottime)); printf("Show time: %s\t", BOO(ShowTime)); printf("Look at time with Seekeys: %s\n", BOO(ShowKuk)); #if 0 printf("Zobrazovat datum vlevo od ‡asu: %s\n", BOO(Showdate)); printf("Zobrazovat den v t˜dnu a symboly: %s\n", BOO(Showday)); printf("Zobrazovat roky a sekundy: %s\n", BOO(Showyear)); #endif printf("Show CapsLock sign: %s\n", BOO(ShowCaps)); printf("Offer external hotkeys: %s\n", BOO(KbdEHC)); printf("Dead keys: %s\t", BOO(Kbddead)); printf("ASCII code via numeric keypad: %s\n", BOO(Kbdasci)); printf("Turn off keyboard click sound: %s\t", BOO(Kbdcink)); printf("Turn off system bell sound: %s\n", BOO(Kbdbell)); printf("Keyboard layout: "); switch(jclk->parametry.Kbdlayo) { case 0: printf("do not change\n"); break; case 1: printf("the ROM one\n"); break; case 2: printf("the first predefined\n"); break; case 3: printf("the second predefined\n"); break; } printf("\n"); printf("Mouse accelerator active: %s\t", BOO(Miscmys)); if (jclk->parametry.Miscmys) printf("Accelerate: %s\n", jclk->parametry.Misc4x ? "four times" : "twice"); printf("Special Latin2 conversion on printer output: %s\n", BOO(Miscprnt)); printf("MegaSTE Turbo 16 MHz + cache: %s\t", BOO(Miscturb)); printf("Colour inversion on boot: %s\n", BOO(Miscinv)); #if 0 printf("Zvukov‚ znamen¡ ka‘dou hodinu: %s\n", BOO(Misctut)); #endif printf("\n"); printf("Screen saver is active (countdown runs): %s\n", BOO(Saveron)); #if 0 printf("SS hl¡d  Modem1 CD: %s\n", BOO(SaveMod1)); printf("SS hl¡d  Modem2 CD: %s\n", BOO(SaveMod2)); printf("SS akce - zhasnout barvy/st©¡dat inverzi: %s\n", BOO(Saveact1)); printf("SS tvrd¨¡ akce - extern¡ takt pro Shifter/vypnout VGA: %s\n", BOO(Saveact2)); #endif printf("Remaining time to screen saver action: %d\n", jclk->saverlen - jclk->savecount); printf("\nAlt+Control+key: actual_key = %02x (for JCLKTOOL.SET)\n", jclk->actual_key); printf("\nPress Left Shift+Control+Alt to quit..."); } } main(void) { long adr; if (get_cookie('JCLK', &adr)) { vypis(adr); } else { printf("JoyCookie not found\n"); getchar(); return -1; } return 0; }