rnd-20091123-1-src
[rocksndiamonds.git] / src / game_sp / ASM.c
index 6ef27ee39c169502a235c98a8769365588e2feea..9cad09d548a65f105ce0c765b3d27142486c994c 100644 (file)
@@ -4,7 +4,8 @@
 
 #include "ASM.h"
 
-static char *VB_Name = "modASM";
+// static char *VB_Name = "modASM";
+
 // --- Option Explicit
 
 // PseudoRegisters:
@@ -68,7 +69,11 @@ int HighByte(int Var)
 
 int SgnHighByte(int Var) // extends the signum to 16 bit
 {
+#if 1
+  short SgnHighByte;
+#else
   int SgnHighByte;
+#endif
 
   if (Var & 0x8000)
   {
@@ -124,30 +129,30 @@ void MySub(int *A, int B)
   *A = *A - B;
 }
 
-int SHR(int Var, int Count)
+int SHR(int *Var, int Count)
 {
   int SHR;
 
   int i;
 
-  if (Var & 0x8000)
+  if (*Var & 0x8000)
   {
-    Var = ((Var & 0x7FFF) / 2) | 0x4000;
+    *Var = ((*Var & 0x7FFF) / 2) | 0x4000;
   }
   else
   {
-    Var = Var / 2;
+    *Var = *Var / 2;
   }
 
   for (i = 2; i <= Count; i++)
   {
-    Var = Var / 2;
+    *Var = *Var / 2;
   }
 
   return SHR;
 }
 
-int SHL(int Var, int Count)
+int SHL(int *Var, int Count)
 {
   int SHL;
 
@@ -155,14 +160,14 @@ int SHL(int Var, int Count)
 
   for (i = 1; i <= Count; i++)
   {
-    Var = Var & 0x7FFF;
-    if ((Var & 0x4000) != 0)
+    *Var = *Var & 0x7FFF;
+    if ((*Var & 0x4000) != 0)
     {
-      Var = (2 * (Var & 0x3FFF)) | 0x8000;
+      *Var = (2 * (*Var & 0x3FFF)) | 0x8000;
     }
     else
     {
-      Var = 2 * Var;
+      *Var = 2 * *Var;
     }
   }