/
mud++0.33/etc/
mud++0.33/etc/guilds/
mud++0.33/help/propert/
mud++0.33/mudC/
mud++0.33/player/
mud++0.33/src/
mud++0.33/src/bcppbuilder/
mud++0.33/src/unix/
mud++0.33/src/vm/
/*
....[@@@..[@@@..............[@.................. 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-list@mailhost.net
------------------------------------------------------------------------------
vmopcodes.h
*/

#ifndef _VMOPCODES_H
#define _VMOPCODES_H

#include "osdepend.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
};

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;



#define VMFLAG_LESSER	(1 << 0)
#define VMFLAG_EQUAL	(1 << 1)
#define VMFLAG_GREATER  (1 << 2)
#define VMFLAG_NOT_EQUAL  ( VMFLAG_LESSER | VMFLAG_GREATER ) 


#endif