Beispiel #1
0
void Demo::OnKeyDown(SDLKey sym, SDLMod mod, Uint16 unicode) {

    if (sym == SDLK_ESCAPE)
        Running = false;

    if (sym == SDLK_1)
        CallMe();
}
Beispiel #2
0
int Call86(Word32 Address,Regs16 *InRegs,Regs16 *OutRegs)
{
	Word32 TempMem;
	Word8 *TrueMem;

	TempMem = AllocRealMemory(120);		/* Get real memory */
	if (TempMem) {
		TrueMem = (Word8 *)RealToProtectedPtr(TempMem);
		FastMemCpy(TrueMem,RealCode,sizeof(RealCode));

		((Word16 *)(TrueMem+1))[0] = InRegs->ds;		/* Pass the input registers */
		((Word16 *)(TrueMem+6))[0] = InRegs->es;
		((Word16 *)(TrueMem+11))[0] = InRegs->ax;
		((Word16 *)(TrueMem+14))[0] = InRegs->bx;
		((Word16 *)(TrueMem+17))[0] = InRegs->cx;
		((Word16 *)(TrueMem+20))[0] = InRegs->dx;
		((Word16 *)(TrueMem+23))[0] = InRegs->di;
		((Word16 *)(TrueMem+26))[0] = InRegs->si;
		((Word16 *)(TrueMem+29))[0] = InRegs->bp;
		((Word32 *)(TrueMem+32))[0] = Address;

		((Word16 *)(TrueMem+39))[0] = (Word16)TempMem+100;	/* Set the return data */
		((Word16 *)(TrueMem+44))[0] = (Word16)TempMem+102;
		((Word16 *)(TrueMem+48))[0] = (Word16)TempMem+104;
		((Word16 *)(TrueMem+53))[0] = (Word16)TempMem+106;
		((Word16 *)(TrueMem+58))[0] = (Word16)TempMem+108;
		((Word16 *)(TrueMem+63))[0] = (Word16)TempMem+110;
		((Word16 *)(TrueMem+68))[0] = (Word16)TempMem+112;
		((Word16 *)(TrueMem+73))[0] = (Word16)TempMem+114;
		((Word16 *)(TrueMem+78))[0] = (Word16)TempMem+116;
		((Word16 *)(TrueMem+84))[0] = (Word16)TempMem+118;
		CallMe(TempMem);		/* Call it */

		OutRegs->ds = ((Word16 *)(TrueMem+100))[0];	/* Get the result */
		OutRegs->es = ((Word16 *)(TrueMem+102))[0];
		OutRegs->ax = ((Word16 *)(TrueMem+104))[0];
		OutRegs->bx = ((Word16 *)(TrueMem+106))[0];
		OutRegs->cx = ((Word16 *)(TrueMem+108))[0];
		OutRegs->dx = ((Word16 *)(TrueMem+110))[0];
		OutRegs->di = ((Word16 *)(TrueMem+112))[0];
		OutRegs->si = ((Word16 *)(TrueMem+114))[0];
		OutRegs->bp = ((Word16 *)(TrueMem+116))[0];
		OutRegs->flags = ((Word16 *)(TrueMem+118))[0];
		DeallocRealMemory(TempMem);		/* Release the memory */
		return OutRegs->ax;
	}
	FastMemSet(OutRegs,0,sizeof(Regs16));
	OutRegs->flags = 1;
	return 0;
}
void layer3(int a, int b, int c) {
  CallMe(layer4, a + b + c);
}
Beispiel #4
0
unsigned char ISend::creat_send_thread()
{
        *cm = CallMe(70, &(ISend::send_cb), this);
	return 1;
}