/* ....[@@@..[@@@..............[@.................. MUD++ is a written from ....[@..[@..[@..[@..[@..[@@@@@....[@......[@.... scratch multi-user swords and ....[@..[@..[@..[@..[@..[@..[@..[@@@@@..[@@@@@.. sorcery game written in C++. ....[@......[@..[@..[@..[@..[@....[@......[@.... This server is an ongoing ....[@......[@..[@@@@@..[@@@@@.................. development project. All ................................................ contributions are welcome. ....Copyright(C).1995.Melvin.Smith.............. Enjoy. ------------------------------------------------------------------------------ Melvin Smith (aka Fusion) msmith@hom.net MUD++ development mailing list mudpp@van.ml.org ------------------------------------------------------------------------------ vmopcodes.h */ #ifndef _VMOPCODES_H #define _VMOPCODES_H enum VMopcode { _VMOPC_ABORT = 0, _VMOPC_NOP ,_VMOPC_PUSHIZ ,_VMOPC_PUSHFZ ,_VMOPC_PUSHI ,_VMOPC_PUSHF , _VMOPC_POP ,_VMOPC_MPOP ,_VMOPC_EXIT ,_VMOPC_ADD ,_VMOPC_SUB , _VMOPC_MUL ,_VMOPC_DIV ,_VMOPC_MOD ,_VMOPC_ICMP ,_VMOPC_IEVAL , _VMOPC_CAST2F ,_VMOPC_CAST2I ,_VMOPC_JMP ,_VMOPC_RCALL ,_VMOPC_RET , _VMOPC_INITL ,_VMOPC_INITP ,_VMOPC_REDUCEL ,_VMOPC_POPL ,_VMOPC_PUSHL , _VMOPC_PUSHTHIS ,_VMOPC_ICALL ,_VMOPC_FCALL ,_VMOPC_SWAP ,_VMOPC_CLONE , _VMOPC_ISNULL ,_VMOPC_OCMP ,_VMOPC_INC ,_VMOPC_DEC ,_VMOPC_INCL , _VMOPC_DECL ,_VMOPC_PUSHC ,_VMOPC_SISEMPTY ,_VMOPC_SPUSHEMPTY,_VMOPC_SCONCAT , _VMOPC_SINTCAT, _VMOPC_SFLOATCAT, _VMOPC_SISNUMBER, _VMOPC_STOINT,_VMOPC_SCMP, _VMOPC_SSTARTARGS, _VMOPC_SGETARG, _VMOPC_SGETARGREST,_VMOPC_APUSH, _VMOPC_APOP, _VMOPC_ALEN, _VMOPC_AADD, _VMOPC_MOVI, _VMOPC_MOVF, _VMOPC_MOVC, _VMOPC_FCMP, _VMOPC_FEVAL, _VMOPC_LICMP, _VMOPC_LIEVAL, _VMOPC_PUSHSTAT, _VMOPC_POPSTAT, _VMOPC_SLOOKUPSWITCH, _VMOPC_ILOOKUPSWITCH, _VMOPC_ITABLESWITCH, _VMOPC_GETFIELD, _VMOPC_SETFIELD, _VMOPC_SCHARAT, _VMOPC_SCHARATL, _VMOPC_SLEEP, _VMOPC_CHECKCAST, _VMOPC_UPCAST, // Obj file only _VMOPC_CALL }; const u8 VMOPC_ABORT = (u8) _VMOPC_ABORT; const u8 VMOPC_NOP = (u8) _VMOPC_NOP; const u8 VMOPC_PUSHIZ = (u8) _VMOPC_PUSHIZ; const u8 VMOPC_PUSHFZ = (u8) _VMOPC_PUSHFZ; const u8 VMOPC_PUSHI = (u8) _VMOPC_PUSHI; const u8 VMOPC_PUSHF = (u8) _VMOPC_PUSHF; const u8 VMOPC_POP = (u8) _VMOPC_POP; const u8 VMOPC_MPOP = (u8) _VMOPC_MPOP; const u8 VMOPC_EXIT = (u8) _VMOPC_EXIT; const u8 VMOPC_ADD = (u8) _VMOPC_ADD; const u8 VMOPC_SUB = (u8) _VMOPC_SUB; const u8 VMOPC_MUL = (u8) _VMOPC_MUL; const u8 VMOPC_DIV = (u8) _VMOPC_DIV; const u8 VMOPC_MOD = (u8) _VMOPC_MOD; const u8 VMOPC_ICMP = (u8) _VMOPC_ICMP; const u8 VMOPC_FCMP = (u8) _VMOPC_FCMP; const u8 VMOPC_IEVAL = (u8) _VMOPC_IEVAL; const u8 VMOPC_FEVAL = (u8) _VMOPC_FEVAL; const u8 VMOPC_CAST2F = (u8) _VMOPC_CAST2F; const u8 VMOPC_CAST2I = (u8) _VMOPC_CAST2I; const u8 VMOPC_JMP = (u8) _VMOPC_JMP; const u8 VMOPC_RCALL = (u8) _VMOPC_RCALL; const u8 VMOPC_RET = (u8) _VMOPC_RET; const u8 VMOPC_INITL = (u8) _VMOPC_INITL; const u8 VMOPC_INITP = (u8) _VMOPC_INITP; const u8 VMOPC_REDUCEL = (u8) _VMOPC_REDUCEL; const u8 VMOPC_POPL = (u8) _VMOPC_POPL; const u8 VMOPC_PUSHL = (u8) _VMOPC_PUSHL; const u8 VMOPC_PUSHTHIS = (u8) _VMOPC_PUSHTHIS; const u8 VMOPC_ICALL = (u8) _VMOPC_ICALL; const u8 VMOPC_FCALL = (u8) _VMOPC_FCALL; const u8 VMOPC_SWAP = (u8) _VMOPC_SWAP; const u8 VMOPC_CLONE = (u8) _VMOPC_CLONE; const u8 VMOPC_ISNULL = (u8) _VMOPC_ISNULL; const u8 VMOPC_OCMP = (u8) _VMOPC_OCMP; const u8 VMOPC_INC = (u8) _VMOPC_INC; const u8 VMOPC_DEC = (u8) _VMOPC_DEC; const u8 VMOPC_INCL = (u8) _VMOPC_INCL; const u8 VMOPC_DECL = (u8) _VMOPC_DECL; const u8 VMOPC_PUSHC = (u8) _VMOPC_PUSHC; const u8 VMOPC_SISEMPTY = (u8) _VMOPC_SISEMPTY; const u8 VMOPC_SPUSHEMPTY = (u8) _VMOPC_SPUSHEMPTY; const u8 VMOPC_SCONCAT = (u8) _VMOPC_SCONCAT; const u8 VMOPC_SCMP = (u8) _VMOPC_SCMP; const u8 VMOPC_SINTCAT = (u8) _VMOPC_SINTCAT; const u8 VMOPC_SFLOATCAT = (u8) _VMOPC_SFLOATCAT; const u8 VMOPC_SISNUMBER = (u8) _VMOPC_SISNUMBER; const u8 VMOPC_STOINT = (u8) _VMOPC_STOINT; const u8 VMOPC_SSTARTARGS = (u8) _VMOPC_SSTARTARGS; const u8 VMOPC_SGETARG = (u8) _VMOPC_SGETARG; const u8 VMOPC_SGETARGREST = (u8) _VMOPC_SGETARGREST; const u8 VMOPC_APUSH = (u8) _VMOPC_APUSH; const u8 VMOPC_APOP = (u8) _VMOPC_APOP; const u8 VMOPC_ALEN = (u8) _VMOPC_ALEN; const u8 VMOPC_AADD = (u8) _VMOPC_AADD; const u8 VMOPC_MOVI = (u8) _VMOPC_MOVI; const u8 VMOPC_MOVF = (u8) _VMOPC_MOVF; const u8 VMOPC_MOVC = (u8) _VMOPC_MOVC; const u8 VMOPC_LICMP = (u8) _VMOPC_LICMP; const u8 VMOPC_LIEVAL = (u8) _VMOPC_LIEVAL; const u8 VMOPC_PUSHSTAT = (u8) _VMOPC_PUSHSTAT; const u8 VMOPC_POPSTAT = (u8) _VMOPC_POPSTAT; const u8 VMOPC_ILOOKUPSWITCH = (u8) _VMOPC_ILOOKUPSWITCH; const u8 VMOPC_SLOOKUPSWITCH = (u8) _VMOPC_SLOOKUPSWITCH; const u8 VMOPC_ITABLESWITCH = (u8) _VMOPC_ITABLESWITCH; const u8 VMOPC_GETFIELD = (u8) _VMOPC_GETFIELD; const u8 VMOPC_SETFIELD = (u8) _VMOPC_SETFIELD; const u8 VMOPC_SCHARAT = (u8) _VMOPC_SCHARAT; const u8 VMOPC_SCHARATL = (u8) _VMOPC_SCHARATL; const u8 VMOPC_SLEEP = (u8) _VMOPC_SLEEP; const u8 VMOPC_UPCAST = (u8) _VMOPC_UPCAST; const u8 VMOPC_CHECKCAST = (u8) _VMOPC_CHECKCAST; // Obj file only const u8 VMOPC_CALL = (u8) _VMOPC_CALL; #define VMFLAG_LESSER (1 << 0) #define VMFLAG_EQUAL (1 << 1) #define VMFLAG_GREATER (1 << 2) #define VMFLAG_NOT_EQUAL ( VMFLAG_LESSER | VMFLAG_GREATER ) #endif