]> 4ch.mooo.com Git - 16.git/blobdiff - src/lib/16_tail.c
[16_ca needs huge amounts of work and I should remember what needs to be done soon...
[16.git] / src / lib / 16_tail.c
index 9277d4e956869dcac40d04094a30114be8e86803..3b1cb42c3b0c9c76887689bd9dccc4f97aed0d17 100755 (executable)
@@ -81,8 +81,11 @@ void Startup16(global_game_variables_t *gvar)
 #endif\r
        IN_Startup(gvar);\r
 #endif\r
+#ifdef __16_PM__\r
        PM_Startup(gvar);\r
+       PM_CheckMainMem(gvar);\r
        PM_UnlockMainMem(gvar);\r
+#endif\r
        CA_Startup(gvar);\r
 }\r
 \r
@@ -100,7 +103,9 @@ void Startup16(global_game_variables_t *gvar)
 \r
 void Shutdown16(global_game_variables_t *gvar)\r
 {\r
+#ifdef __16_PM__\r
        PM_Shutdown(gvar);\r
+#endif\r
 #ifdef __WATCOMC__\r
 #ifdef __DEBUG_InputMgr__\r
        if(!dbg_nointest)\r
@@ -109,7 +114,9 @@ void Shutdown16(global_game_variables_t *gvar)
 #endif\r
        CA_Shutdown(gvar);\r
        MM_Shutdown(gvar);\r
+#ifdef __WATCOMC__\r
        VGAmodeX(0, 1, gvar);\r
+#endif\r
 }\r
 \r
 \r
@@ -311,7 +318,9 @@ void DebugMemory_(global_game_variables_t *gvar, boolean q)
 \r
 void ClearMemory (global_game_variables_t *gvar)\r
 {\r
+#ifdef __16_PM__\r
        PM_UnlockMainMem(gvar);\r
+#endif\r
        //snd\r
        MM_SortMem (gvar);\r
 }\r
@@ -372,73 +381,6 @@ void Quit (global_game_variables_t *gvar, char *error)
 }\r
 \r
 //===========================================================================\r
-//from http://stackoverflow.com/questions/2736753/how-to-remove-extension-from-file-name\r
-\r
-// remove_ext: removes the "extension" from a file spec.\r
-//   mystr is the string to process.\r
-//   dot is the extension separator.\r
-//   sep is the path separator (0 means to ignore).\r
-// Returns an allocated string identical to the original but\r
-//   with the extension removed. It must be freed when you're\r
-//   finished with it.\r
-// If you pass in NULL or the new string can't be allocated,\r
-//   it returns NULL.\r
-\r
-char *remove_ext (char* mystr, char dot, char sep) {\r
-       char *retstr, *lastdot, *lastsep;\r
-\r
-       // Error checks and allocate string.\r
-\r
-       if (mystr == NULL)\r
-               return NULL;\r
-       if ((retstr = malloc (strlen (mystr) + 1)) == NULL)\r
-               return NULL;\r
-\r
-       // Make a copy and find the relevant characters.\r
-\r
-       strcpy (retstr, mystr);\r
-       lastdot = strrchr (retstr, dot);\r
-       lastsep = (sep == 0) ? NULL : strrchr (retstr, sep);\r
-\r
-       // If it has an extension separator.\r
-\r
-       if (lastdot != NULL) {\r
-               // and it's before the extenstion separator.\r
-\r
-               if (lastsep != NULL) {\r
-                       if (lastsep < lastdot) {\r
-                               // then remove it.\r
-\r
-                               *lastdot = '\0';\r
-                       }\r
-               } else {\r
-                       // Has extension separator with no path separator.\r
-\r
-                       *lastdot = '\0';\r
-               }\r
-       }\r
-\r
-       // Return the modified string.\r
-\r
-       return retstr;\r
-}\r
-\r
-//from http://quiz.geeksforgeeks.org/c-program-cyclically-rotate-array-one/\r
-void rotateR(byte arr[], byte n)\r
-{\r
-       byte x = arr[n-1], i;\r
-       for (i = n-1; i > 0; i--)\r
-               arr[i] = arr[i-1];\r
-       arr[0] = x;\r
-}\r
-\r
-void rotateL(byte arr[], byte n)\r
-{\r
-       byte x = arr[n+1], i;\r
-       for (i = n+1; i > 0; i++)\r
-               arr[i] = arr[i+1];\r
-       arr[0] = x;\r
-}\r
 \r
 #ifndef __WATCOMC__\r
 char global_temp_status_text[512];\r
@@ -452,41 +394,54 @@ char global_temp_status_text2[512];
 void turboXT(byte bakapee)\r
 {\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
+               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
 #endif\r
 \r
+const char *word_to_binary(word x)\r
+{\r
+       static char b[17];\r
+       int z;\r
+\r
+       b[0] = '\0';\r
+       for (z = 16; z > 0; z >>= 1)\r
+       {\r
+               strcat(b, ((x & z) == z) ? "1" : "0");\r
+       }\r
+       return b;\r
+}\r
+\r
 const char *nibble_to_binary(nibble x)\r
 {\r
        static char b[9];\r