]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_tail.c
showing row and colum drawing i optimized it to only draw at the end of walk. this...
[16.git] / src / lib / 16_tail.c
index 6ebe442dac85b44c365608ca8932f11e1284ceb2..41379e326ab0ebb14bb1a75ab8a830aac70164ee 100755 (executable)
@@ -388,6 +388,44 @@ void walktypeinfo(player_t *player, word pn)
        }\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