X-Git-Url: https://git.artsoft.org/?a=blobdiff_plain;f=src%2Fgame_sp%2FASM.c;h=9cad09d548a65f105ce0c765b3d27142486c994c;hb=ed873d89bc59f4e641134f9019ce216234b9f38f;hp=6ef27ee39c169502a235c98a8769365588e2feea;hpb=5ba7f2d9a3f07f342afdf215a3307d5487cb6d43;p=rocksndiamonds.git diff --git a/src/game_sp/ASM.c b/src/game_sp/ASM.c index 6ef27ee3..9cad09d5 100644 --- a/src/game_sp/ASM.c +++ b/src/game_sp/ASM.c @@ -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; } }