⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 opcodes.cpp

📁 在手机操作系统symbina上使用的一个脚本扩展语言的代码实现,可以参考用于自己的开发
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// OPCODES.CPP
//
// Copyright (c) 1997-2000 Symbian Ltd. All rights reserved.

#include <opcodes.h>

const OPCODEFUNC OpCode::OpCodeTable[] =
		{
		&SimpleDirectRightSideInt,
		&SimpleDirectRightSideLong,
		&SimpleDirectRightSideFloat,
		&SimpleDirectRightSideString,
		&SimpleDirectLeftSideInt,
		&SimpleDirectLeftSideLong,
		&SimpleDirectLeftSideFloat,
		&SimpleDirectLeftSideString,
		&SimpleInDirectRightSideInt,
		&SimpleInDirectRightSideLong,
		&SimpleInDirectRightSideFloat,
		&SimpleInDirectRightSideString,
		&SimpleInDirectLeftSideInt,
		&SimpleInDirectLeftSideLong,
		&SimpleInDirectLeftSideFloat,
		&SimpleInDirectLeftSideString,
		// 10h
		&ArrayDirectRightSideInt,
		&ArrayDirectRightSideLong,
		&ArrayDirectRightSideFloat,
		&ArrayDirectRightSideString,
		&ArrayDirectLeftSideInt,
		&ArrayDirectLeftSideLong,
		&ArrayDirectLeftSideFloat,
		&ArrayDirectLeftSideString,
		&ArrayInDirectRightSideInt,
		&ArrayInDirectRightSideLong,
		&ArrayInDirectRightSideFloat,
		&ArrayInDirectRightSideString,
		&ArrayInDirectLeftSideInt,
		&ArrayInDirectLeftSideLong,
		&ArrayInDirectLeftSideFloat,
		&ArrayInDirectLeftSideString,
		// 20h
		&FieldRightSideInt,
		&FieldRightSideLong,
		&FieldRightSideFloat,
		&FieldRightSideString,
		&FieldLeftSide,
		&FieldLeftSide,
		&FieldLeftSide,
		&FieldLeftSide,
		&ConstantInt,
		&ConstantLong,
		&ConstantFloat,
		&ConstantString,
		&IllegalOpCode,	// word - QI_SPECIAL
		&IllegalOpCode,	// long - QI_SPECIAL
		&IllegalOpCode,	// float - QI_SPECIAL
		&IllegalOpCode,	// string - QI_SPECIAL
		// 30h
		&CompareLessThanInt,
		&CompareLessThanLong,
		&CompareLessThanFloat,
		&CompareLessThanString,
		&CompareLessOrEqualInt,
		&CompareLessOrEqualLong,
		&CompareLessOrEqualFloat,
		&CompareLessOrEqualString,
		&CompareGreaterThanInt,
		&CompareGreaterThanLong,
		&CompareGreaterThanFloat,
		&CompareGreaterThanString,
		&CompareGreaterOrEqualInt,
		&CompareGreaterOrEqualLong,
		&CompareGreaterOrEqualFloat,
		&CompareGreaterOrEqualString,
		//40h
		&CompareEqualInt,
		&CompareEqualLong,
		&CompareEqualFloat,
		&CompareEqualString,
		&CompareNotEqualInt,
		&CompareNotEqualLong,
		&CompareNotEqualFloat,
		&CompareNotEqualString,
		&AddInt,
		&AddLong,
		&AddFloat,
		&AddString,
		&SubtractInt,
		&SubtractLong,
		&SubtractFloat,
		&StackByteAsWord,
		// 50h
		&MultiplyInt,
		&MultiplyLong,
		&MultiplyFloat,
		&RunProcedure,
		&DivideInt,
		&DivideLong,
		&DivideFloat,
		&CallFunction,
		&PowerOfInt,
		&PowerOfLong,
		&PowerOfFloat,
		&BranchIfFalse,
		&AndInt,
		&AndLong,
		&AndFloat,
		&StackByteAsLong,
		// 60h
		&OrInt,
		&OrLong,
		&OrFloat,
		&StackWordAsLong,
		&NotInt,
		&NotLong,
		&NotFloat,
		&Statement16,
		&UnaryMinusInt,
		&UnaryMinusLong,
		&UnaryMinusFloat,
		&CallProcByStringExpr,
		&PercentLessThan,		// <%
		&PercentGreaterThan,		// >%
		&PercentAdd,				// +%
		&PercentSubtract,		// -%
		// 70h
		&PercentMultiply,		// *%
		&PercentDivide,			// /%
		&IllegalOpCode,
		&IllegalOpCode,
		&ZeroReturnInt,
		&ZeroReturnLong,
		&ZeroReturnFloat,
		&NullReturnString,
		&LongToInt,
		&FloatToInt,
		&FloatToLong,
		&IntToLong,
		&IntToFloat,
		&LongToFloat,
		&LongToUInt,
		&FloatToUInt,
		// 80h
		&DropInt,
		&DropLong,
		&DropFloat,
		&DropString,
		&AssignInt,
		&AssignLong,
		&AssignFloat,
		&AssignString,
		&PrintInt,
		&PrintLong,
		&PrintFloat,
		&PrintString,
		&LPrintInt,
		&LPrintLong,
		&LPrintFloat,
		&LPrintString,
		// 90h
		&PrintSpace,
		&LPrintSpace,
		&PrintCarriageReturn,
		&LPrintCarriageReturn,
		&InputInt,
		&InputLong,
		&InputFloat,
		&InputString,
		&PokeW,		// POKEW
		&PokeL,		// POKEL
		&PokeD,		// POKED
		&PokeStr,	// POKE$
		&PokeB,		// POKEB
		&Append,		// APPEND
		&At,	// AT
		&Back,		// BACK
		// A0h
		&Beep,
		&Close,
		&Cls,
		&IllegalOpCode, // was COMPRESS
		&Copy,
		&Create,
		&Cursor,
		&Delete,
		&Erase,
		&Escape,
		&First,
		&Vector,
		&Last,
		&LClose,
		&LoadM,
		&LOpen,
		// B0h
		&Next,
		&OnErr,
		&Off,
		&OffFor,
		&Open,
		&Pause,
		&Position,
		&IoSignal, 	
		&Raise,
		&Randomize,
		&Rename,
		&Stop,
		&Trap,
		&Update,
		&Use,
		&GoTo,
		// C0h
		&Return,
		&UnLoadM,
		&Edit,
		&Screen2,
		&OpenR,
		&gSaveBit,
		&gClose,
		&gUse,
		&gSetWin,
		&gVisible,
		&gFont,
		&gUnloadFont,
		&gGMode,
		&gTMode,
		&gStyle,
		&gOrder,
		// D0h
		&IllegalOpCode,		// gInfo in Opl1993 replaced by gInfo32 in Era
		&gCls,			
		&gAt,
		&gMove,
		&gPrintWord,
		&gPrintLong,
		&gPrintDbl,
		&gPrintStr,
		&gPrintSpace,
		&gPrintBoxText,
		&gLineBy,
		&gBox,
		&gCircle,
		&gEllipse,
		&gPoly,
		&gFill,
		// E0h
		&gPatt,
		&gCopy,
		&gScroll,
		&gUpdate,
		&GetEvent,
		&gLineTo,
		&gPeekLine,
		&Screen4,
		&IoWaitStat,
		&IoYield,
		&mInit,
		&mCard,
		&dInit,
		&dItem,
		&IllegalOpCode,		// used to be SETNAME
		&IllegalOpCode,		// used to be StatusWin
		// F0h
		&Busy,
		&Lock,
		&gInvert,
		&gXPrint,
		&gBorder,
		&gClock,
		&IllegalOpCode,    // used to be memoryRight
		&IllegalOpCode, 	  // used to be memoryLeft
		&MkDir,
		&RmDir,
		&SetPath,
		&SecsToDate,
		&gIPrint,
		// FDh
		&IllegalOpCode,		
		&IllegalOpCode,		
		&NextOpcodeTable,
		// 100h
		&gGrey,
		&DefaultWin,
		&IllegalOpCode,	// used to be diamInit
#if defined(INTERNAL_RELEASE)
		&__Dummy,       // called by diamPos i% !!
#else
		&IllegalOpCode,	// used to be diamPos
#endif
		&Font,
		&Style,
		&IllegalOpCode,	// used to be useSprite
		&IllegalOpCode,	// used to be appendSprite 
		&IllegalOpCode,	// used to be drawSprite
		&IllegalOpCode,	// used to be changeSprite
		&IllegalOpCode,	// used to be posSprite
		&IllegalOpCode,	// used to be closeSprite
		&FreeAlloc,
		&IllegalOpCode,	// used to be LinkLib
		&IllegalOpCode,	// used to be rCache
		&gButton,
		// 110h
		&gXBorder,
		&IllegalOpCode,	// used to be gDrawObject
		&IllegalOpCode,	// used to be OdbInfo
		&IllegalOpCode,	// used to be CacheTidy
		&ScreenInfo,		
		&IllegalOpCode,	// used to be rCacheHdr
		&IllegalOpCode,	// used to be rCacheRec
		&IllegalOpCode, // used to be dInitS
		&CallOpxFunc,	// NEW functions for Opler1
		&Statement32,
		&Modify,
		&Insert,
		&Cancel,
		&Put,
		&DeleteTable,
		&GotoMark,
		// 120h
		&KillMark,
		&ReturnFromEval,
		&GetEvent32,
		&GetEventA32,
		&gColor,
		&SetFlags,
		&SetDoc,
		&DaysToDate,	// new function for converting result of dDATE
		&gInfo32,
		&IoWaitStat32,
		&Compact,
		&BeginTrans,
		&CommitTrans,
		&Rollback,
		&ClearFlags,
		&PointerFilter,
		// 130h
		&mCasc,
		&EvalExternalRightSideRef,	// eval right side (eg. EVAL("myvar%*2"))
		&EvalExternalLeftSideRef,	// eval left side (eg. EVAL("ADDR(myVar%)"))
//		&dCheckBox,
		&gSetPenWidth,
		&dEditMulti,
		&gColorInfo,
		&gColorBackground,
		&mCardX,
		&SetHelp,
		&ShowHelp,
		&SetHelpUid,
		&IllegalOpCode,	// filler - ADDED AFTER dCHECKBOX WAS REMOVED
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		// 140h
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		// 150h
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		// 160h
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		// 170h
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		&IllegalOpCode,	// filler
		// 180h

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -