1 // ----------------------------------------------------------------------------
3 // ----------------------------------------------------------------------------
7 // static char *VB_Name = "modASM";
13 // --- const int ByteMask = 0xFF;
21 void Mov(int *Var, int Val)
26 void MovLowByte(int *Var, int Val)
28 *Var = (*Var & 0xFF00) | (Val & 0xFF);
31 void MovHighByte(int *Var, int Val)
37 if ((Val & 0x80) != 0)
40 *Var = (*Var & 0xFF) | Tmp;
48 LowByte = (Var & 0xFF);
49 // LowByte = ByteToInt(Tmp)
60 HighByte = ((Var & 0x7FFF) / 0x100) | 0x80;
64 HighByte = Var / 0x100;
70 int SgnHighByte(int Var) // extends the signum to 16 bit
76 SgnHighByte = ((Var & 0x7FFF) / 0x100) | 0xFF80;
80 SgnHighByte = Var / 0x100;
95 boolean GreaterOrEqual()
97 boolean GreaterOrEqual;
99 GreaterOrEqual = (0 <= cmpFlag);
101 return GreaterOrEqual;
108 Equal = (0 == cmpFlag);
113 void CMP(int A, int B)
118 void Add(int *A, int B)
123 void MySub(int *A, int B)
128 int SHR(int Var, int Count)
136 Var = ((Var & 0x7FFF) / 2) | 0x4000;
143 for (i = 2; i <= Count; i++)
151 int SHL(int Var, int Count)
157 for (i = 1; i <= Count; i++)
160 if ((Var & 0x4000) != 0)
162 Var = (2 * (Var & 0x3FFF)) | 0x8000;
173 int ByteToInt(byte B)
177 if ((B & 0x80) == 0x80)
179 ByteToInt = -(0xFF - B + 1);
189 byte IntToByte(int i)
193 // IntToByte = CByte(i & 0xFF);
194 IntToByte = (byte)(i & 0xFF);
199 void XCHG(int A, int B)