}\r
}\r
\r
+void turboXT(byte bakapee)\r
+{\r
+ //byte bakapee = 12;\r
+ __asm {\r
+ push ax\r
+ push bx\r
+ push cx\r
+ in al, 61h ; Read equipment flags\r
+ xor al, bakapee ; toggle speed\r
+ out 61h, al ; Write new flags back\r
+\r
+ mov bx, 0F89h ; low pitch blip\r
+ and al, 4 ; Is turbo mode set?\r
+ jz @@do_beep\r
+ mov bx, 52Eh ; high pitch blip\r
+\r
+@@do_beep:\r
+ mov al, 10110110b ; Timer IC 8253 square waves\r
+ out 43h, al ; channel 2, speaker\r
+ mov ax, bx\r
+ out 42h, al ; send low order\r
+ mov al, ah ; load high order\r
+ out 42h, al ; send high order\r
+ in al, 61h ; Read IC 8255 machine status\r
+ push ax\r
+ or al, 00000011b\r
+ out 61h, al ; Turn speaker on\r
+ mov cx, 2000h\r
+@@delay:\r
+ loop @@delay\r
+ pop ax\r
+ out 61h, al ; Turn speaker off\r
+ pop cx\r
+ pop bx\r
+ pop ax\r
+ }\r
+}\r
+\r
const char *nibble_to_binary(nibble x)\r
{\r
static char b[9];\r
FUNCTIONKEYFUNCTIONS0EXE\r
\r
#define FUNCTIONKEYFUNCTIONS0EXE \\r
+ if(IN_KeyDown(sc_F4)){ turboXT(12); IN_UserInput(1,1); } \\r
if(IN_KeyDown(87/*sc_F11*/)){ pageflipflop=!pageflipflop; IN_UserInput(1,1); } \\r
if(IN_KeyDown(68/*sc_F10*/)){ gvar.kurokku.fpscap=!gvar.kurokku.fpscap; IN_UserInput(1,1); } \\r
if(IN_KeyDown(sc_F9)){ pagenorendermap=!pagenorendermap; IN_UserInput(1,1); } \\r
void Startup16(global_game_variables_t *gvar);\r
void ClearMemory (global_game_variables_t *gvar);\r
void Quit (global_game_variables_t *gvar, char *error);\r
+void turboXT(byte bakapee);\r
void walktypeinfo(player_t *player, word pn);\r
void nibbletest();\r
void booleantest();\r