mud++0.35/etc/
mud++0.35/etc/guilds/
mud++0.35/help/propert/
mud++0.35/mudC/
mud++0.35/player/
mud++0.35/src/interface/
mud++0.35/src/os/cygwin32/
mud++0.35/src/os/win32/
mud++0.35/src/os/win32/bcppbuilder/
mud++0.35/src/osaddon/
mud++0.35/src/util/
/*
....[@@@..[@@@..............[@.................. 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